第九章软件质量管理与质量保证课件

上传人:沈*** 文档编号:241656362 上传时间:2024-07-13 格式:PPTX 页数:120 大小:385.52KB
返回 下载 相关 举报
第九章软件质量管理与质量保证课件_第1页
第1页 / 共120页
第九章软件质量管理与质量保证课件_第2页
第2页 / 共120页
第九章软件质量管理与质量保证课件_第3页
第3页 / 共120页
点击查看更多>>
资源描述
第九章第九章 软件质量管理与质量保证软件质量管理与质量保证9.1 9.1 软件质量软件质量9.1.19.1.1 影响软件质量的因素影响软件质量的因素n人的因素人的因素n软件需求软件需求n测试的局限性测试的局限性n质量管理的困难质量管理的困难n软件人员的传统习惯软件人员的传统习惯n开发规范开发规范n开发工具支持不够开发工具支持不够什么是软件质量成本成本可靠可靠维护维护及时及时交付交付正确正确功能功能功能功能成本成本及时及时交付交付软件质量的若干侧面软件质量的若干侧面9.1.2 McCall提出的表明软件质量提出的表明软件质量 的的1111个质量特性个质量特性使用性使用性 测试性测试性正确性正确性 维护性维护性可靠性可靠性 移植性移植性效率效率 重用性重用性完整性完整性 互操作性互操作性适应性适应性(灵活性灵活性)9.1.3 产品质量与过程质量产品质量与过程质量产品质量产品质量开发技术开发技术 成本、成本、时间、进度时间、进度过程质量过程质量人员素质人员素质影响产品质量的影响产品质量的4 4个方面个方面9.2 9.2 软件质量保证软件质量保证 质量保证也是一个过程质量保证也是一个过程,已列入国,已列入国际标准际标准“ISO/IEC 12207信息技术信息技术-软件生存期过程软件生存期过程”中。中。9.2.1 9.2.1 质量保证的主要功能质量保证的主要功能F质量方针的制定和展开质量方针的制定和展开F质量保证方针的质量保证标准的制定质量保证方针的质量保证标准的制定F质量保证体系的建立和管理质量保证体系的建立和管理F各阶段的质量评审各阶段的质量评审9.2.2 9.2.2 质量保证的实施质量保证的实施 质量度量方法ISOISO建议的软件质量评价标准分为三级建议的软件质量评价标准分为三级:高层高层:质量需求评价准则质量需求评价准则(SQRC)中层中层:质量设计评价准则质量设计评价准则(SQDC)低层低层:质量度量评价准则质量度量评价准则(SQMC)ISO建议的软件质量度量模型建议的软件质量度量模型正正 确确 性性可可 跟跟 踪踪 性性完完 备备 性性准准 确确 性性容容 错错 性性简简 洁洁 性性模模 块块 性性通通 用用 性性扩扩 充充 性性可可 容容 性性效效 率率安安 全全 性性可维护性可维护性适适 应应 性性连连 接接 性性SQDCSQDCSQRCSQRCSQMCSQMC可可 用用 性性一一 致致 性性由各使用由各使用单位根据单位根据实际情况实际情况决定决定能用于软件质量定量评价的软件度量能用于软件质量定量评价的软件度量H美国国防部美国国防部ADAD报告报告:把质量表现形式把质量表现形式 归纳为归纳为190190多个多个 问题问题;HIEEEIEEE质量标准词典规定质量标准词典规定:3939组度量公式组度量公式3939个度量项分为四级个度量项分为四级:0 0级级:已公式化已公式化,尚未被运行有效确认尚未被运行有效确认1 1级级:已为软件界采用已为软件界采用,应用范围有限应用范围有限2 2级级:已被软件界接受已被软件界接受,已取得一定经验已取得一定经验3 3级级:软件界已广泛使用软件界已广泛使用,已取得相当经验已取得相当经验3 3级的级的8 8个度量项个度量项(1)(1)缺陷密度缺陷密度(2)(2)需求可追踪性需求可追踪性(3)Halstead(3)Halstead软件科学软件科学(4)McCabe(4)McCabe复杂性度量复杂性度量(5)(5)发现发现k k个缺陷的平均时间个缺陷的平均时间(6)(6)按耗时作故障分析按耗时作故障分析(7)(7)平均故障时间平均故障时间(8)(8)故障率故障率 9.2.3 9.2.3 技术评审技术评审 软件评审是一个软件评审是一个“过滤器过滤器”,用于用于“净化净化”软件工程各项活动软件工程各项活动9.39.3 软件可靠性软件可靠性硬件系统故障率硬件系统故障率0 0t tZ(t)Z(t)软件系统故障率软件系统故障率0 0t tZ(t)Z(t)9.3.1 9.3.1 基本概念基本概念软件可靠性定义软件可靠性定义 在给定在给定时间间隔内时间间隔内和特定的和特定的环境下,软件按规格说明成功环境下,软件按规格说明成功运行的概率。运行的概率。软件可靠性的主要指标软件可靠性的主要指标 借用硬件可靠性的定量度量方法来借用硬件可靠性的定量度量方法来度量软件的可靠性:度量软件的可靠性:MTBF:平均故障间隔时间平均故障间隔时间 MTTF:平均故障时间平均故障时间t1t1,t2,.,tn:t2,.,tn:失效时间失效时间MTTFn ni=1i=1n n1 1t ti i软件可靠性定义的要素软件可靠性定义的要素(1)(1)环境条件环境条件 规定软件的使用环境规定软件的使用环境 (输入数据要求和环境输入数据要求和环境)(2)(2)规定时间规定时间 时间时间t t是随机变量。是随机变量。(3)(3)规定的功能规定的功能(4)(4)成功运行成功运行9.4 9.4 质量管理、质量认证与质量审核 质量管理的类型质量管理的类型:(1)(1)质量检验型管理质量检验型管理(2)(2)全面质量管理全面质量管理(3)(3)质量认证质量认证软件质量保证体系的研究和主要技术软件质量保证体系的研究和主要技术 目前国际上软件过程质量管理最主要目前国际上软件过程质量管理最主要的三个典型代表:的三个典型代表:CMM/PSP/TSPISO9000系列系列ISO/IEC15504 过程与软件质量管理过程与软件质量管理 随着软件技术和软件应用的发展,随着软件技术和软件应用的发展,以过以过程为中心程为中心的软件开发、生产与质量管理是现的软件开发、生产与质量管理是现代软件产业的时代特征。代软件产业的时代特征。质量形成于过程,高可信、高质量的软质量形成于过程,高可信、高质量的软件必须依赖对软件过程的管理。件必须依赖对软件过程的管理。过程与软件质量管理过程与软件质量管理 ISO9000 2000ISO9000 2000版将过程定义为版将过程定义为“一组将输入一组将输入转化为输出的相互关联或相互作用的活动转化为输出的相互关联或相互作用的活动”软件过程分为:软件过程分为:软件工程过程:软件工程过程:软件开发和生产的过程,软件开发和生产的过程,如:需求分析、设计、编码、如:需求分析、设计、编码、测试等过程;测试等过程;软件管理过程:软件管理过程:对软件开发和生产的过程进对软件开发和生产的过程进 行管理的过程,行管理的过程,如:项目策划过程、跟踪监控过如:项目策划过程、跟踪监控过 程、质量保证过程程、质量保证过程软件支持过程:软件支持过程:对软件开发和生产的过程进对软件开发和生产的过程进 行支持的过程,行支持的过程,如:评审过程、培训过程、如:评审过程、培训过程、质量过程。质量过程。技术改进与过程改进的关系技术改进与过程改进的关系 技术改进必须与过程改进同时并举技术改进必须与过程改进同时并举低技术低技术高技术高技术过程过程成熟成熟过程过程不成熟不成熟低风险途径低风险途径高风险高风险途径途径原始态原始态理想态理想态可能无结果途径可能无结果途径 软件工程的五个发展方向软件工程的五个发展方向方向说明技术 组织 管理编程方法编程方法例如:结构化编程例如:结构化编程 面向对象编程面向对象编程高高低低低低形式化方法形式化方法例如例如:Z语言、语言、CSP、高高低低低低计算机辅助软件工程计算机辅助软件工程 例如:例如:CASE工具工具高高低低低低软件开发模型软件开发模型例如例如:瀑布模型、瀑布模型、高高中中低低软件工程过程软件工程过程探讨软件过程探讨软件过程(包括开包括开发过程、软件支持过程发过程、软件支持过程或维护过程等或维护过程等)的管理的管理和改进。和改进。例如:例如:CMM SPICE BOOTSTRAP SPERM高高高高高高软件过程的管理模式 CMM:软件过程管理与改进:软件过程管理与改进 CMM是是软件工程过程软件工程过程学科中的一个管学科中的一个管理与改进软件过程的模式,也是一种衡量软理与改进软件过程的模式,也是一种衡量软件开发能力和成熟度的标准。件开发能力和成熟度的标准。CMM/PSP/TSP技术流派技术流派 CMM(软件能力成熟度模型:软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究是由美国卡内基梅隆大学的软件工程研究所所(SEI:Software Engineering Institute)受美国国防部评受美国国防部评估软件供应商能力的要求,估软件供应商能力的要求,1986年开始研究制定,并年开始研究制定,并在美国,随后在全世界推广实施的一种软件评估标准,在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。主要用于软件开发过程和软件开发能力的评估和改进。CMM标准共分标准共分五个等级五个等级,由低到高分别为,由低到高分别为:初始级、初始级、可重复级、已定义级、定量管理级和优化级可重复级、已定义级、定量管理级和优化级。1998年年SEI启动了启动了CMMI(CMM Integration)CMMI通过提供统一的过程改进框架,消除了不同通过提供统一的过程改进框架,消除了不同模型之间的不一致和重复性,可望成为今后软件过模型之间的不一致和重复性,可望成为今后软件过程改进领域比较稳定的一个实用模型。程改进领域比较稳定的一个实用模型。目前目前SEI正在进行二个方面的扩充:正在进行二个方面的扩充:将质量管理的理念和思想向人力资源管理方面扩将质量管理的理念和思想向人力资源管理方面扩展展(PSP/TSP/P-CMM);将过程技术与产品线技术融合;将过程技术与产品线技术融合;如如2000年推出的软件产品线年推出的软件产品线PLP(Products Line Practice)和和COTS(Commercial Off The Shelf)ISO 9000标准系列 19871987年年ISO公布公布ISO9000质量管理和质量保证标准质量管理和质量保证标准系列。系列。至至19971997年底,约年底,约100100个国家、地区推行个国家、地区推行ISO9000质量质量认证活动;认证活动;ISO 9000ISO 9000族列标准现有族列标准现有2020个标准,分为五类:个标准,分为五类:(1)质量术语标准:质量术语标准:ISO8402-1994ISO8402-1994(2)质量保证标准质量保证标准(3)质量管理标准质量管理标准(4)质量管理和质量保证标准的选用和实施指南质量管理和质量保证标准的选用和实施指南(5)支持性技术标准支持性技术标准ISO 9000主体可分为两组:主体可分为两组:n用于用于“需方对供方要求质量保证需方对供方要求质量保证”的标准的标准:9001 9003n用于用于“供方建立质量保证体系供方建立质量保证体系”的标准:的标准:90049001、9002、9003的区别的区别其对象的工序范围不同:其对象的工序范围不同:9001范围最广,包括从设计到售后服务;范围最广,包括从设计到售后服务;9002是是9001 的子集;的子集;9003是是9002 的子集。的子集。ISO/IEC15504 1998年年SPICE(Software Process Improvement and Capability dTermination)项项目组织发表用于确定自我能力改造和进行目组织发表用于确定自我能力改造和进行软件供应商能力的国际标准软件供应商能力的国际标准ISO/IEC15504.该标准覆盖了过程评估、过程改进和该标准覆盖了过程评估、过程改进和过程能力确认等指南和模型。过程能力确认等指南和模型。目前,有关组织正在就目前,有关组织正在就CMMI和和15504标准的标准的兼容性兼容性问题进行探讨,很有可能问题进行探讨,很有可能CMMI会最终和会最终和ISO/IEC 15504标准兼容,标准兼容,并同时支持和兼容并同时支持和兼容CMM。CMM模型及其实践模型及其实践 在在CMM模型及其实践中模型及其实践中,企业的企业的过程能力过程能力被被作为一项关键因素予以考虑。所谓过程能力作为一项关键因素予以考虑。所谓过程能力,是是指把企业从事软件开发和生产的过程本身透明化、指把企业从事软件开发和生产的过程本身透明化、规范化和运行的强制化。这样一来规范化和运行的强制化。这样一来,就可以把软就可以把软件开发及生产过程中成功或失败的经验教训变成件开发及生产过程中成功或失败的经验教训变成今后可以借鉴和吸取的营养今后可以借鉴和吸取的营养,大大加快软件生产大大加快软件生产的成熟程度提高。的成熟程度提高。在软件开发过程中在软件开发过程中,一些关键的过程域一些关键的过程域(KPA)可以被识别出来可以被识别出来,成为某些成为某些CMM模型方法中的衡模型方法中的衡量基准。利用过去软件工程发展的成果量基准。利用过去软件工程发展的成果,侧重这些侧重这些关键过程域的实施关键过程域的实施,将会有效地建立一个过程将会有效地建立一个过程,加加快软件企业成熟度的提升。快软件企业成熟度的提升。CMM级别级别世界软件企业世界软件企业通过通过CMM的数量的数量世界软件企业世界软件企业通过通过CMM的份额的份额5级级 41家家 3%4级级 54家家 4%3级级 232家家 17%2级级 438家家 32%1级级 600家家 44%CMM一共有一共有5级,级,18个关键过程域(个关键过程域(KPA),),52个目标,个目标,300多个关键实践。据美国卡内基多个关键实践。据美国卡内基.梅隆梅隆大学大学SEI统计,至统计,至2001年年6月底,月底,CMM的认证情况的认证情况如下表所示。如下表所示。过程成熟度框架过程成熟度框架要区分不成熟和成熟软件组织要区分不成熟和成熟软件组织需要构造一个软件过程成熟度框架需要构造一个软件过程成熟度框架,它描述一条从无序到有序的软件过程的它描述一条从无序到有序的软件过程的进化途径,框架是支持持续改进的基础。进化途径,框架是支持持续改进的基础。软件过程成熟度框架包括四个概念:软件过程成熟度框架包括四个概念:软件过程软件过程软件过程能力软件过程能力软件过程性能软件过程性能软件过程成熟度:软件过程成熟度:CMM分为五级分为五级软件过程成熟度的五个等级软件过程成熟度的五个等级0 1 2 3 4 5软件过程能力软件过程能力成熟度等级成熟度等级优化级(5)管理级(4)不断改进的过程不断改进的过程定义级(3)重复级(2)初始级(1)可预测的过程可预测的过程标准的一致的过程标准的一致的过程有纪律的过程有纪律的过程 级别级别特点特点1 初始级初始级 软件开发过程是一个软件开发过程是一个偶然的甚至无序的过程偶然的甚至无序的过程,很少有很少有明确的定义明确的定义,成功完全依赖于个体的能力成功完全依赖于个体的能力.2 重复级重复级实施实施基本的项目管理基本的项目管理:跟踪软件成本、进度和功能。跟踪软件成本、进度和功能。依照以往项目成功的经验来建立基本的过程规则,使依照以往项目成功的经验来建立基本的过程规则,使得其他相似项目能重复以往的成功。得其他相似项目能重复以往的成功。3 定义级定义级软件过程的管理和实行方法都已软件过程的管理和实行方法都已文档化、标准化文档化、标准化,使,使开发商有一个开发过程的标准。即所有项目都可以依开发商有一个开发过程的标准。即所有项目都可以依照标准来开发和维护软件。照标准来开发和维护软件。4 管理级管理级定义了评估软件过程和产品质量的定义了评估软件过程和产品质量的度量度量。利用此度量。利用此度量对软件过程和产品做出推断和控制。对软件过程和产品做出推断和控制。5 优化级优化级系统地引导新理念及技术的反馈,从而不断改进软件系统地引导新理念及技术的反馈,从而不断改进软件过程。过程。5个成熟度等级在开发过程中变化的显著特点个成熟度等级在开发过程中变化的显著特点 五级成熟度的特性五级成熟度的特性等级等级1 初始级初始级CMM1杰出的主管和优秀的队伍杰出的主管和优秀的队伍项目成功项目成功 CMM1一般的主管和队伍一般的主管和队伍项目成功难以预测项目成功难以预测 等级等级2 重复级重复级项目经验项目经验定义准则定义准则和跟踪和跟踪新的类新的类似项目似项目再成功再成功 五级成熟度的特性五级成熟度的特性等级等级3 定义级定义级CMM重复重复定义软件过程定义软件过程可视和可控可视和可控等级等级4管理级管理级软件过程能力软件过程能力量化量化改进与预测改进与预测等级等级5优化级优化级已有的技术等级等级2424中的改进中的改进已有的技术等级等级5 5中的优化中的优化新的技术 CMM的内部结构与定义的内部结构与定义能力成熟度模型的结构能力成熟度模型的结构过程能力成熟度等级关键过程域包含共同特点被规划成关键实践包含指示目标完成规范化阐述活动描述关键过程域关键过程域优化级(5)过程更改管理过程更改管理技术改革管理技术改革管理缺陷预防缺陷预防管理级(4)软件质量管理软件质量管理定量过程管理定量过程管理每一个关键过程域每一个关键过程域指出了改进过程能指出了改进过程能力的主要过程力的主要过程定义级(3)同行评审同行评审组间协调组间协调软件产品工程软件产品工程集成软件管理集成软件管理培训大纲培训大纲组织过程定义组织过程定义组织过程集点组织过程集点重复级(2)软件配置管理软件配置管理软件质量保证软件质量保证软件子合同管理软件子合同管理软件项目跟踪和监督软件项目跟踪和监督软件项目策划软件项目策划需求管理需求管理初始级(1)CMM成熟度等级的评估成熟度等级的评估评估步骤:评估步骤:1.项目项目关键实践关键实践(被执行活动被执行活动)的性能评分的性能评分2.评定评定关键过程域关键过程域所达到的目标所达到的目标3.项目的成熟度等级项目的成熟度等级评定评定4.有多个项目的等级来评定有多个项目的等级来评定组织组织(软件商软件商)的成熟度等级的成熟度等级 重复级的关键实践重复级的关键实践需求管理:需求管理:执行约定执行约定执行能力执行能力被执行活动被执行活动测量和分析测量和分析检查检查软件项目计划:软件项目计划:软件项目跟踪和监督:软件项目跟踪和监督:管理级的关键实践管理级的关键实践组织过程定义组织标准软件过程集成软件管理项目定义软件过程定量分析项目定义软件过程性能控制数据软件过程性能在定义的范围内定量过程管理改进定义过程管理定义过程管理 软件质量管理软件质量管理软件质量管理定量过程管理软件产品管理集成软件管理管理级管理级定义级定义级实现定量目标实现定量目标:软件产品软件产品定量分析定量分析:项目定义项目定义 软件过程软件过程实践实践:项目定义项目定义 软件过程软件过程建立建立:项目定义项目定义 软件过程软件过程 软件过程评估和软件能力评价软件过程评估和软件能力评价软件过程评估软件过程评估:集中关注一个组织所需集中关注一个组织所需 改进之处及其轻重缓急;改进之处及其轻重缓急;软件能力评价软件能力评价:集中关注识别一个特定集中关注识别一个特定 项目再进度要求和预算项目再进度要求和预算 限制内构造出高质量软限制内构造出高质量软 件所面临的风险。件所面临的风险。软件过程评估和软件能力评价的差别软件过程评估和软件能力评价的差别是在开放、合作的是在开放、合作的环环境境中进行的;中进行的;目的目的在于暴露问题和在于暴露问题和帮助经理和工程师改帮助经理和工程师改进他们组织的软件过进他们组织的软件过程;程;软件过程评估软件过程评估软件能力评价软件能力评价是在更为面向审计是在更为面向审计的的环境环境中进行的,中进行的,评价的评价的目的目的与金钱与金钱密切相关,评估评密切相关,评估评价组的推荐意见将价组的推荐意见将影响挑选承制方或影响挑选承制方或投放资金。投放资金。统一软件开发过程统一软件开发过程RUPRUP(Rational Unified Process)是是Rational公司公司1998年发布的通用的软件开发过程框架年发布的通用的软件开发过程框架RUP是一种软件工程过程是一种软件工程过程;统一了各种开发方法统一了各种开发方法;使用统一建模语言使用统一建模语言UML RUP和和CMM相辅相成相辅相成;软件企业使用软件企业使用RUP很容易达到很容易达到CMM3级的要求级的要求;RUP可以作为可以作为CMM3级所要求的机构标准软件级所要求的机构标准软件 过程过程;RUP的特点的特点 用例驱动用例驱动;架构为核心架构为核心;增量迭代的开发过程增量迭代的开发过程;第十章第十章 软软 件件 复复 用用10.110.1软件复用概述 10.1.110.1.1软件复用的定义 软件复用就是通过对已有软件的各种知识来软件复用就是通过对已有软件的各种知识来建立新的软件。这些软件知识包括建立新的软件。这些软件知识包括:领域知识领域知识开发经验开发经验设计决定设计决定体系结构体系结构需求需求设计设计编码编码测试测试文档等文档等 复用的益处复用的益处 提高软件生产率,降低软件生产代价提高软件生产率,降低软件生产代价 提高软件质量提高软件质量 其它:其它:系统对用户体现较多的一致性系统对用户体现较多的一致性系统具有较好的互操作性系统具有较好的互操作性推动标准化推动标准化支持原型开发支持原型开发10.1.210.1.2软件复用的过程n抽象抽象:从已有软件制品的简要描述中抽取从已有软件制品的简要描述中抽取 本质信息本质信息(即可复用部分即可复用部分),),摒弃细节摒弃细节n选取选取:即用户根据已有软件制品的抽象即用户根据已有软件制品的抽象,寻寻 找、比较最合适他需要的制品找、比较最合适他需要的制品(可复可复 用件用件)n特化特化:即对已有制品即对已有制品(可复用件可复用件)的修改或形成的修改或形成 它的一个实例它的一个实例(例化后的复用件例化后的复用件)n集成集成:将例化后的复用件集成为应用系统将例化后的复用件集成为应用系统 10.1.3 10.1.3 软件复用的粒度软件复用的粒度软件复用的粒度软件复用的粒度(按粒度从大到小按粒度从大到小)可分为五类可分为五类:代码和设计拷贝代码和设计拷贝源代码的复用源代码的复用设计和软件体系结构复用设计和软件体系结构复用应用程序生成器应用程序生成器领域特定的软件体系结构领域特定的软件体系结构 10.1.4 10.1.4 软件复用的形式软件复用的形式根据复用活动跨越的领域可分为根据复用活动跨越的领域可分为:垂直垂直(纵向纵向)复用复用水平水平(横向横向)复用复用根据实现复用的途径可分为根据实现复用的途径可分为:组装式复用组装式复用生成式复用生成式复用根据复用的方式可分为根据复用的方式可分为:黑盒复用黑盒复用白盒复用白盒复用 面向对象技术存在的问题面向对象技术存在的问题 模型和概念尚未统一模型和概念尚未统一 要求使用面向对象技术的人员较高要求使用面向对象技术的人员较高 面向对象复用处于初级阶段面向对象复用处于初级阶段 工程上难以实施工程上难以实施 基于面向对象的基于面向对象的构件软件构件软件应运而生应运而生 10.10.2 构件技术 构件构件(componentcomponent)可以复用的软件成可以复用的软件成分,可被用来构造其他软件。分,可被用来构造其他软件。它可以是:它可以是:被封装的对象类被封装的对象类 类树类树 功能模块功能模块 软件框架(软件框架(framwork)软件架构(或体系结构软件架构(或体系结构Architecture)文档文档 分析件分析件 设计模式等设计模式等 分类分类(1)(1)按开发过程分为:按开发过程分为:分析件分析件 设计件设计件 程序件程序件 数据件数据件(2)(2)按功能分为三层:按功能分为三层:基础层:基本数据构件、系统支撑构件基础层:基本数据构件、系统支撑构件 中间层:各种通用构件中间层:各种通用构件 顶层:针对领域的专用构件或子系统构件顶层:针对领域的专用构件或子系统构件 分类分类(3)(3)按使用方式分为:按使用方式分为:动态构件动态构件 静态构件静态构件 (4)(4)按构件结构分为:按构件结构分为:原子构件原子构件 多个构件聚集的组合构件多个构件聚集的组合构件 语言语言 应用软件开发过程可提供的语言:应用软件开发过程可提供的语言:(1)(1)构件描述语言构件描述语言(2)(2)构件编程语言构件编程语言(3)(3)过程控制语言过程控制语言 研究构件软件的两个核心:研究构件软件的两个核心:(1)(1)如何提取可复用构件如何提取可复用构件(2)(2)如何组装成系统并能实现互操作如何组装成系统并能实现互操作 基于构件的应用软件开发模型基于构件的应用软件开发模型:第一阶段:需求获取第一阶段:需求获取 第二阶段:领域分析第二阶段:领域分析 第三阶段:系统集成第三阶段:系统集成 域分析域分析 域分析过程可大致归纳以下步骤:域分析过程可大致归纳以下步骤:(1)发现并描述可重用的实体;发现并描述可重用的实体;(2)对这些实体及它们之间的关系进行对这些实体及它们之间的关系进行 抽象化、一般化和参数化;抽象化、一般化和参数化;(3)对可重用的实体进行分类、归并,对可重用的实体进行分类、归并,以备日后重用。以备日后重用。软件构件的开发软件构件的开发.需求及设计级软部件需求及设计级软部件2.2.代码级软部件代码级软部件 可复用构件可复用构件一个可复用构件应具备的条件:一个可复用构件应具备的条件:独立性独立性 完整性完整性 可标识性可标识性 一般性一般性 适应性适应性 可靠性可靠性 标准化标准化 构件接口技术构件接口技术 目前广泛流行的具有代表性的构件目前广泛流行的具有代表性的构件模型主要有模型主要有:对象管理组织对象管理组织(OMG)的的CORBAMicrosoft的的COM+SUN公司的公司的EJB/J2EE 对象技术规范对象技术规范CORBA标准标准CORBA(Common Object Request Broker Architecture 公共对象请求代理体系结构公共对象请求代理体系结构)国际国际OMG组织颁布的一系列有关对象组织颁布的一系列有关对象技术的规范之一技术的规范之一CORBA给出多种环境下的面向对象的给出多种环境下的面向对象的编程范例编程范例 构件软件连接技术规范构件软件连接技术规范 OLE和和DCOM标准标准OLE(Object Linking and Embedding)对象连接与嵌套技术对象连接与嵌套技术 OLE是一组可扩充的应用程序协议,它是一组可扩充的应用程序协议,它使得一个应用程序能够紧密正确地使用另一使得一个应用程序能够紧密正确地使用另一个应用程序的服务。个应用程序的服务。遵循遵循OLE协议的应用程序能够创建包含协议的应用程序能够创建包含来自由其它应用程序创建的文档中链接和嵌来自由其它应用程序创建的文档中链接和嵌入的文档,这样的文档称为入的文档,这样的文档称为载体文档。载体文档。OLE的对象模型的对象模型COM(Component Object Model)定义对象接口与构件定义对象接口与构件统一的数据传送机制统一的数据传送机制结构化存储技术(复合文件)结构化存储技术(复合文件)DCOM的技术规范的技术规范 DCOM是微软的分布式计算策略是微软的分布式计算策略 COM运行在单机上运行在单机上 DCOM组件运行在分布式网络上组件运行在分布式网络上构件库(构件库(component librarycomponent library)构件库系统应提供的主要功能:构件库系统应提供的主要功能:构件的存储、管理、检索构件的存储、管理、检索标准化库的浏览、维护标准化库的浏览、维护主要技术问题:主要技术问题:构件分类构件分类构件检索构件检索软件复用的根本困难软件复用的根本困难不同基准线上的类比不同基准线上的类比不断提高的复用要求不断提高的复用要求精神产品与物质产品精神产品与物质产品领域的广阔性领域的广阔性 专向领域的复用及领域分析专向领域的复用及领域分析 专向领域的复用的目标是在一个特定的专向领域的复用的目标是在一个特定的领域中实现软件复用。领域中实现软件复用。可复用的软件架构:把各个可复用构可复用的软件架构:把各个可复用构件连接到一起的软件架构。件连接到一起的软件架构。帐册帐册上级系统接口上级系统接口供货员供货员销售事件销售事件商品商品商品一览表商品一览表超市销售管理系统的软件架构超市销售管理系统的软件架构收款机收款机领域分析领域分析针对一类应用系统的共同应用领域进行系统针对一类应用系统的共同应用领域进行系统化分析,以发现该领域的共同认识、需求及化分析,以发现该领域的共同认识、需求及应用系统的共同特征。应用系统的共同特征。领域分析的主要输出:领域分析的主要输出:对刻画该领域应用系统的对象、操作及其对刻画该领域应用系统的对象、操作及其 关系的认识;关系的认识;对可能在该领域一个以上的应用系统中出现的共对可能在该领域一个以上的应用系统中出现的共 同的对象、操作、关系的认识;同的对象、操作、关系的认识;对该领域不同应用系统差异的认识;对该领域不同应用系统差异的认识;描述上述对象、操作、关系的公共词汇表;描述上述对象、操作、关系的公共词汇表;描述该领域系统共性的领域需求模型;描述该领域系统共性的领域需求模型;对该领域所有应用系统都适应的参考体系结构。对该领域所有应用系统都适应的参考体系结构。基于构件基于构件/构架的软件开发构架的软件开发 构构 件件 开开 发发分析分析 设计设计 编程编程 测试测试领域分析领域分析系统系统测试测试构架细化构架细化构件提交构件提交领域知识领域知识领域专家经验领域专家经验现有系统资料现有系统资料领域构领域构件需求件需求构件构件/构架库构架库领域构架领域构架领领域域构构件件系统系统开发开发系统专用构件系统专用构件应用应用系统系统构件生产线构件生产线领域构架领域构架领域构件领域构件问题域问题域用户需求用户需求系统生产线系统生产线专专 用用 构构 件件 开开 发发分析分析 设计设计 编程编程 测试测试 系系 统统 组组 装装 分析分析 设计设计 编程编程 青鸟系统发展思路青鸟系统发展思路JB2JB2系统系统专用专用(应用应用)平台平台专用专用(应用应用)平台平台应用软件应用软件 系统系统应用软件应用软件 系统系统应用软件系统组装平台应用软件系统组装平台异构平台异构平台构架库构架库构件库构件库.仓库管理系统仓库管理系统 剪剪 裁裁支持支持.基于构件基于构件构架模式的构架模式的应用系统集应用系统集成环境成环境 软件生产线软件生产线应用构件提取车间 应用构件库构件生产车间 构件库组装车间领域 1领域 2应用系统.标准规范 与 质量保证1 12 23 34 41基础构件,2功能构件 3接口构件,4用户界面构件 第十一章第十一章 软件项目管理与计划软件项目管理与计划11.1 11.1 软件工作范围软件工作范围软件计划的第一个任务软件计划的第一个任务;包括包括:软件的功能、软件的功能、性能、性能、接口接口:硬件、硬件、软件软件(已有且须与新开发已有且须与新开发 软件连接的软件软件连接的软件)、操作人员、操作人员、可靠性可靠性11.2 11.2 资源资源人人工具工具确定确定 技能要求技能要求 工作期限工作期限 开始时间开始时间硬件硬件 宿主机宿主机 目标机目标机 专用设备专用设备软件软件 支持软件支持软件 实用软件实用软件各阶段管理人员和技术人员参与情况各阶段管理人员和技术人员参与情况管理人员管理人员人人员员参参加加程程度度计划计划需求需求分析分析概要设计概要设计编码编码详细详细设计设计单元单元测试测试确认确认测试测试组装测试组装测试初级技初级技术人员术人员高级技高级技术人员术人员高高低低11.3 11.3 成本估算成本估算11.3.1 1.3.1 成本估算方法成本估算方法(1)(1)专家估算法专家估算法(2)(2)类推估算法类推估算法(3)(3)算式估算法算式估算法可能影响成本模型结果的各种成本因素可能影响成本模型结果的各种成本因素 类型类型 成本因素成本因素系统规模系统规模 1.1.程序指令的估算条数程序指令的估算条数 2.2.交付的机器指令数交付的机器指令数 3.3.交付的源语言指令数交付的源语言指令数 4.4.新指令的百分比新指令的百分比 5.5.书写指令的百分比书写指令的百分比 6.6.判定指令的数目判定指令的数目 7.7.非判定指令的数目非判定指令的数目 8.8.信息存储和检索指令的百分比信息存储和检索指令的百分比 9.9.交付代码的百分比交付代码的百分比 可能影响成本模型结果的各种成本因素可能影响成本模型结果的各种成本因素 类型类型 成本因素成本因素数据库数据库 10.10.数据库中词数数据库中词数系统复杂性系统复杂性 11.11.估算整个复杂性的级别估算整个复杂性的级别 12.12.接口的复杂性接口的复杂性 13.13.系统的唯一性系统的唯一性 14.14.难度难度 15.15.硬件硬件-软件接口软件接口 16.16.程序结构的考虑程序结构的考虑 17.17.文件文件.报告和应用程序的数目报告和应用程序的数目可能影响成本模型结果的各种成本因素可能影响成本模型结果的各种成本因素 类型类型 成本因素成本因素系统复杂性系统复杂性 18.18.生存期人力总数生存期人力总数 开发期人力总数开发期人力总数 测试和验证期人力总数测试和验证期人力总数 19.19.生存期总时间生存期总时间,开发期总时间开发期总时间 20.20.作业类型作业类型程序类型程序类型 21.21.文档文档 24.24.环境与项目属性环境与项目属性 27.27.M ML/PL/P=M M :人力人力L L:指令数指令数P P :常数常数,单位单位:指令数指令数/人人.日日11.3.1 1.3.1 成本估算模型成本估算模型(1)(1)IBMIBM模型模型(2)SLIM(2)SLIM(3)COCOMO(3)COCOMO模型模型(1)(1)IBMIBM模型模型工作量工作量 E=5.2 L (人人-月月)项目持续时间项目持续时间 D=4.1 L (月月)项目人员要求项目人员要求 S=0.54 E (人人)文档页数文档页数 DOC=49 L (页页)0.910.910.310.310.60.61.011.01(2)SLIM(2)SLIM模型模型(Putnam(Putnam模型模型)源代码行数源代码行数 L L=CkK td1 13 34 43 3K:整个生存周期的工作量整个生存周期的工作量 (人人-年年)td:开发持续时间开发持续时间 (年年)Ck:技术状态常数技术状态常数(3)COCOMO(3)COCOMO模型模型基本基本COCOMOCOCOMO模型模型:组织型(组织模式)组织型(组织模式)半独立型半独立型(半分离模式半分离模式)嵌入型(嵌入模式)嵌入型(嵌入模式)中间中间COCOMOCOCOMO模型模型:组织型(组织模式)组织型(组织模式)半独立型半独立型(半分离模式半分离模式)嵌入型(嵌入模式)嵌入型(嵌入模式)11.4 11.4 进度安排进度安排11.4.1 1.4.1 各阶段工作量的分配各阶段工作量的分配系统整个生存期系统整个生存期活动工作量分配活动工作量分配 系统开发阶段系统开发阶段活动工作量分配活动工作量分配概要概要设计设计详细详细设计设计编码编码单元单元测试测试组装组装,确确认测试认测试系统定义系统定义维护维护组装组装,确认测试确认测试单元测试单元测试编码编码详细设计详细设计概要设计概要设计需求与定义需求与定义11.4.2 1.4.2 制定开发进度制定开发进度 进度表进度表编码编码功能功能 1 1设计设计需求需求测试测试编码编码功能功能 2 2设计设计需求需求测试测试任务任务周周1 12 23 34 4n n.1 12 23 34 4n n.文档编写文档编写评审评审11.5 11.5 软件软件配置管理(配置管理(SCM)软件配置:软件生存期各阶段的交付项软件配置:软件生存期各阶段的交付项 (各种文档和可执行代码)(各种文档和可执行代码)软件配置管理:软件配置管理:交付项管理问题,交付项管理问题,用于:用于:标记变化;标记变化;控制变化;控制变化;保证变化被适当地实现;保证变化被适当地实现;向其他可能有兴趣的人员报告变化向其他可能有兴趣的人员报告变化11.5.1 11.5.1 基线基线IEEE(IEEE Std.610.12-1990)定义基线如下:定义基线如下:已经通过正式复审和批准的某规约或产品已经通过正式复审和批准的某规约或产品,它它因此可以作为进一步的基础因此可以作为进一步的基础,并且知只能通过正式并且知只能通过正式的变化控制过程的改变的变化控制过程的改变.基线是软件开发的里程碑基线是软件开发的里程碑,标志是有一个标志是有一个或多软件配置项的交付或多软件配置项的交付,并且这些配置项已经并且这些配置项已经经过正式技术复审而获得认可经过正式技术复审而获得认可.最常见的软件基线最常见的软件基线系统工程系统工程需求分析需求分析软件设计软件设计编码编码测试测试发布发布系统规约系统规约软件需求规约软件需求规约设计规约设计规约源代码源代码测试计划测试计划/过程过程/数据数据可操作的系统可操作的系统11.5.2 11.5.2 软件配置管理过程软件配置管理过程 SCM的五个任务的五个任务:标识配置对象标识配置对象 版本控制版本控制 修改控制修改控制 配置审计配置审计 配置状况报告配置状况报告第十二章第十二章软件工程标准化与软件文档软件工程标准化与软件文档12.1 12.1 软件工程标准的类型软件工程标准的类型12.2 12.2 软件工程标准的层次软件工程标准的层次12.3 12.3 中国的软件工程标准化中国的软件工程标准化12.4 12.4 软件质量认证软件质量认证12.1 软件工程标准的类型软件工程标准的类型F 过程标准过程标准F 产品标准产品标准F 专业标准专业标准F 记号标准记号标准12.2 软件工程标准的层次软件工程标准的层次F 国际标准国际标准F 国家标准国家标准F 行业标准行业标准F 企业标准企业标准F 项目规范项目规范 国家标准举例国家标准举例:lGB-中华人民共和国国家技术监督局中华人民共和国国家技术监督局公公布布lANSI-美国国家标准协会美国国家标准协会lFIPS(NBS)-美国商务部国家标准局美国商务部国家标准局 联邦信息处理标准联邦信息处理标准lBS -英国国家标准英国国家标准lDIN-德国标准协会德国标准协会lJIS -日本工业标准日本工业标准 行业标准举例行业标准举例:lIEEE-美国电气与电子工程师学会美国电气与电子工程师学会 SESS-软件标准分技术委员会软件标准分技术委员会ANSI/IEEE str 828-1983软件配置管理计划标准软件配置管理计划标准lGJB-中华人民共和国国家军用标准中华人民共和国国家军用标准 GJB 437-88军用软件开发规范军用软件开发规范 GJB 438-88军用软件文档编制规范军用软件文档编制规范lDOD-STD 美国国防部标准美国国防部标准lMIL-S 美国军用标准美国军用标准12.3 12.3 中国的软件工程标准化中国的软件工程标准化 国标分类国标分类:F 基础标准基础标准F 开发标准开发标准F 文档标准文档标准F 管理标准管理标准中国的软件工程国家标准中国的软件工程国家标准基础标准基础标准l软件工程术语软件工程术语 GB/T 11457-89l信息处理信息处理-数据流程图、程序流程图数据流程图、程序流程图的文的文 件符号编制及约定件符号编制及约定GB 1526-891(ISO 5807-85)l软件工程标准分类法软件工程标准分类法GB/T 15538-95l信息处理信息处理-程序构造及其表示法的约定程序构造及其表示法的约定 GB 13502-92(ISO 8631)l信息处理信息处理-单命中判定表规范单命中判定表规范 GB/T 15535-95(ISO 5806)l信息处理系统信息处理系统 计算机系统配置图符号及其约定计算机系统配置图符号及其约定 GB/T 14085-93(ISO 8790)中国的软件工程国家标准中国的软件工程国家标准开发标准开发标准l软件开发规范软件开发规范 GB 8566-88l计算机软件单元测试计算机软件单元测试 GB/T 15532-95l软件支撑环境软件支撑环境l信息处理信息处理-按记录组处理顺序文卷的程序按记录组处理顺序文卷的程序 流程流程 (ISO 6593-85)l软件维护指南软件维护指南 GB/T 14079-93中国的软件工程国家标准中国的软件工程国家标准文档标准文档标准l软件文档管理指南软件文档管理指南l计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南 GB 8567-88l计算机软件需求说明编制指南计算机软件需求说明编制指南 GB 9585-88(ANSI/IEEE 829)l计算机软件测试文件编制指南计算机软件测试文件编制指南 GB 9386-88(ANSI/IEEE 830)中国的软件工程国家标准中国的软件工程国家标准管理标准管理标准计算机软件配置管理计划规范计算机软件配置管理计划规范 GB/T12505-90(IEEE 828)l信息技术信息技术 软件产品评价软件产品评价-质量特征及其使质量特征及其使用指南用指南GB/T12260-96(ISO/IEC9126-91)l计算机软件质量保证计划规范计算机软件质量保证计划规范 GB 12504-90(ANSI/IEEE 829)l计算机软件可靠性和可维护性管理计算机软件可靠性和可维护性管理 GB/T 14394-93l质量管理和质量保证标准质量管理和质量保证标准 第三部分第三部分:在软件开发、供应和维护中的使在软件开发、供应和维护中的使用指南用指南 GB/T 19000.3-94(ISO9003-3-93)软件工程复习软件工程复习根据软件工程教学大纲1.软件与软件工程软件与软件工程n基本概念软件工程的定义软件危机软件工程学的范畴软件生存周期软件工程的3个要素(方法、工具、过程)n软件工程模式(特点、相互的区别、适用范围)瀑布式模型原型模型阿 增量模型螺旋模型2.软件需求和分析原则软件需求和分析原则 n分析任务n需求获取的内容n需求分析的主要工具(DFD、DD、)n需求规格说明书的主要内容3.传统的分析方法传统的分析方法 n结构化分析方法(SA)(特点、描述方式)n数据流图(DFD)(课设:顶图外部项的处理)n数据字典(DD)(课设:数据流、文件、数据项,描述不规范)n 过程说明(即:小说明)4.设计概念和原则设计概念和原则 n设计的基本原则(抽象、细化、模块化、软件体系结构、控制层次、数据结构、软件过程、信息隐藏)n模块化设计模块的独立性内聚性(偶然性、逻辑性、时间性、过程性、通讯性、顺序性、功能性内聚)耦合性(非直接、数据、标记、控制、外部、公共、内容耦合)n体系结构设计的准则:模块的规模适中确保模块的作用范围在控制范围之内软件结构的深度、宽度及模块的扇入扇出要适中n数据设计的原则:(1)用于功能和行为的系统分析原则也适用于数据设计。(2)应确定所有的数据结构及每项上的操作。(3)建立数据字典,用来定义数据和程序设计。(4)低层的数据设计,应在设计过程的后期进行。(5)数据结构的表达式,应当是那些有名的模型。(6)开发数据结构及操作的实用库。(7)软件设计和编程语言应支持抽象数据类型的规格说明和实现。5.传统的设计方法传统的设计方法 n结构化设计(SD)(即:面向数据流的设计)n结构图(SC图)n软件结构的典型形式(变换型、事务型)nDFDSC的转换方法(课设:对于复杂的、多层分解的DFD,如何转换成SC)n结构化程序设计方法(SP)n详细设计描述方法(程序流程图、N-S图、PAD图、IPO图、PDL语言)n非结构化程序流程图转化为结构化程序流程图6.面向对象方法学面向对象方法学 n基本概念面向对象的观点:面向对象=对象+分类+继承+通信Coad和Yourdon类和对象、属性、操作、消息、封装、继承、多态问题论域、领域分析、应用分析n面向对象软件的开发过程:分析阶段高层设计类的开发实例的建立组装测试维护nOOA的基本原则建立信息域模型描述功能表达行为分解模型,以揭示更多细节早期模型表示问题的本质,后期模型提供实现细节nOOA的任务n标识类和对象(外部实体、物、发生或事件、角色、组织单位、位置、结构)nCoad和Yourdon方法Coad&Yourdon的OOD模型(OOA的5个层次,4个组元)表达形式(对象、类、分类结构、装配结构、链、消息)nRambaugh方法(OMT,对象建模技术)3种模型(对象模型、动态模型、功能模型)对象模型的描述方法(类图、实例图、链与关联、聚集、一般化与继承、阶的表示)动态模型的描述方法(状态图、事件跟踪图、事件、状态、触发条件、活动、动作)功能模型的描述方法(DFD)3个模型分别描述的内容OMT方法的特点n统一建模语言UMLUML的构造块UML的5个视图7.软件测试和确认软件测试和确认 n概念软件测试定义软件测试定义测试的目标测试的目标成功的测试成功的测试n白盒测试方法逻辑覆盖法逻辑覆盖法(特点、覆盖能力的比较、测试用例设计)n黑盒测试方法等价类划分法(测试用例的设计)边界值法n软件测试步骤(单元测试、组装测试、确认测试、系统测试)n驱动模块和桩模块(作用)8.软件项目的管理软件项目的管理 n概念项目管理的范围(3个P:人员、问题、过程)COCOMO模型面向的3种类型软件(组织模式、半分离模式、嵌入模式)基本COCOMO模型计算公式9.软件过程和度量软件过程和度量 n软件复用复用的范围领域工程结构模型结构点n再工程再工程逆向工程软件重构正向工程nCMM的基本概念软件过程成熟度框架的5个级别软件过程评估软件能力评价10.软件工具与环境软件工具与环境 n基本概念CASECASE工具分类集成框架集成化CASE环境(I-CASE)n生活中的辛苦阻挠不了我对生活的热爱。7月-247月-24Saturday,July 13,2024n人生得意须尽欢,莫使金樽空对月。17:33:47 17:33:47 17:33 7/13/2024 5:33:47 PMn做一枚螺丝钉,那里需要那里上。7月-2417:33:47 17:33 Jul-2413-Jul-24n日复一日的努力只为成就美好的明天。17:33:47 17:33:47 17:33 Saturday,July 13,2024n安全放在第一位,防微杜渐。7月-247月-2417:33:47 17:33:47 July 13,2024n加强自身建设,增强个人的休养。2024 年7月13日5:33 下午7月-247月-24n精益求精,追求卓越,因为相信而伟大。13 七月 20245:33:47 下午17:33:47 7月-24n让自己更加强大,更加专业,这才能让自己更好。七月 245:33 下午7月-2417:33 July 13,2024n这些年的努力就为了得到相应的回报。2024/7/13 17:33:4717:33:47 13 July 2024n科学,你是国力的灵魂;同时又是社会发展的标志。5:33:47 下午5:33 下午17:33:47 7月-24n每天都是美好的一天,新的一天开启。7月-247月-2417:33 17:33:47 17:33:47 Jul-24n相信命运,让自己成长,慢慢的长大。2024/7/13 17:33:47Saturday,July 13,2024n爱情,亲情,友情,让人无法割舍。7月-242024/7/13 17:33:477月-24谢谢大家!谢谢大家!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!