2019/8/21软件工程质量保证体系2019/8/21ISO9000ISO9000是一个质量体系,制定了质量保障的规范与标准ISO9001是适用于硬件、软件、流程材料和服务四大类的9000族标准,包含20个子项我国已建立等同采用的质量保障标准族GB/T190002019/8/21ISO9000-3软件开发、供应、维护中应用ISO9001的指南是指南,不是标准强调的是供应商和顾客的关系,不是工程师该如何做2019/8/21CMM应美国联邦政府评估软件供应商的能力的要求,由美国卡内基—梅隆大学软件工程研究院推出的能力成熟度模型;将软件企业的生产能力划分为5个成熟度等级,等级愈高的企业,其软件过程的可见度愈好、软件过程的可控性愈高、产品性能的预见性以及软件项目的风险评估亦愈来愈准确。企业的生产能力以及产品质量也就愈来愈高;强调企业软件生产过程的持续改进;此外CMM也不仅仅应用于软件开发组织内,它也可作为认证机构的认证工具和用户考核一个企业是否达到其所要求的能力的依据。2019/8/21CMM家族CMM集成产品集SA-CMM(软件获取能力成熟度模型):用于单位获取和采购基于软件的应用系统的软件过程SE-CMM(系统工程能力成熟度模型):描述一个单位为保证实现一个好的系统工程的主要元素IDEAL模型;一个单位用于启动、规划和实现过程改善措施蓝图的模型,概括了建立一个成功的过程改善项目的必要步骤。2019/8/21CMM的五层体系结构初始级(1)可重复级(2)已定义级(3)已管理级(4)优化级(1)训练过程标准化、一致化过程可预计过程持续改进过程2019/8/21CMM结构成熟度级别关键过程区域关键惯例CMM级别关键惯例目标关键过程区域关键惯例成熟度级别2019/8/21CMM五级特征初始级:企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。可重复级:建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于以往项目的经验来计划与管理新的项目。定义级:有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。定量管理级:企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案,要对所有项目的重要的过程活动进行生产率和质量的度量。软件产品因此具有可预期的高质量。优化级:整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程进行修改的建议。2019/8/21PSP使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出高质量的软件。为基于个体和小型群组软件过程的优化提供了具体而有效的途径。其研究与实践填补了CMM的空白。2019/8/21个体软件过程PSP的演化个体管理基线PSP0并行过程工作时间记录程序差错记录程序差错类型标准个体过程循环PSP3循环开发个体规划过程PSP1程序规模估计测试报告个体质量管理PSP2编码评审设计评审PSP1.1任务规划进度安排PSP2.1设计模板PSP0.1编码标准软件规模度量过程改善建议2019/8/21TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。2019/8/21实现TSP方法需要具备的条件整个软件开发小组至少应在CMM的第二级(可重复层)。全体软件开发人员必须经过PSP的培训。开发小组成员应在2到20个人之间。2019/8/21CMM、PSP和TSP组成的软件过程框架CMMPSPTSP原则技能费用期限组织级能力高质量的产品个人的技能建立生产并交付建立2019/8/21CMM对企业的要求和帮助基于CMM模型的软件成熟度实践要求要求尽量采用更加规范的开发标准和方法;使用更加科学和精确的度量手段;选择更便于管理和使用的开发工具.因此造成了整个工程的可重构性、可分解性和最优化;明确了整个项目中必要和不必要的工作;明确了整个项目的风险,以及各个阶段进行评估的指标与应急措施2019/8/21ISO9000与CMM的关系ISO9000相当于CMM二级和三级的一部分内容(有人称为2.5级)CMM和ISO9000认证本身没有优劣之分CMM是一个动态的过程对于预算、项目周期管理等ISO9000涉及不够的内容,CMM有所覆盖2019/8/21ISO9000与CMM的区别ISO9000是通用的国际标准,适用于各类组织。CMM是美国军方为评价软件供应商的质量水平,委托SEI开发的一个评价模型,只用于软件业。CMM更详细,更专业。ISO9000只建立了一个可接受水平,而CMM是一个具有五个水平的评估工具。ISO9000聚焦于供应商和用户间的关系,而CMM更关注软件的开发过程。2019/8/21TickIT-欧洲的规则是根据ISO9000认证软件开发组织的体系(system)是为软件的需要对ISO9000的诠释(interpretation)包括对审核员的表现和竞争力的一组标准要求包括对审核员标准化培训的课程包括审核员注册的程序(scheme)从事TickIT认证的认证机构的认可制度2019/8/21ISO9000认证ISO9000:机构必须经过认可人员必须取得注册经认可的认证中心可发证书结论只有通过或不通过2019/8/21CMM认证(1)CMM:评审员由SEI认定/授权每隔两年重新评定一次资格基本要求是:至少10年软件开发/质量保证经验至少两年软件项目管理经验评估框架同ISO9000类似结果报SEI评定结果有五个等级2019/8/21CMM认证(2)目前全球通过CMM五级的企业已有23家印度通过CMM5级的企业就有15家CMM在中国北京鼎新信息系统开发有限公司ASDC(中国首家通过CMM2级评审)沈阳东大阿尔派软件股份有限公司(成功通过CMM2级评审)摩托罗拉中国软件中心(通过国际CMM顶级5级认证)联想软件事业部(通过CMM2级)2019/8/21TickIT认证TickIT:机构必须取得UKAS(英国皇家认可委员会)的认可审核员必须是TickIT审核员(经过专门的认可)其它基本同ISO9000一致2019/8/21软件企业的认证与认可选择在数量上,软件、计算机及相关企业采用ISO9000认证的为最多。欧洲的企业较多地采取TickIT/ISO9001认证的方式。申请CMM认证的多为美国的公司或者是有美国背景的公司。在已取得CMM认证的企业当中,以CMM2级居多,能够达到5级的企业寥寥可数,甚至3、4级的都不多2019/8/21软件开发过程指南:RUP是软件工程化过程,它提供了在开发机构中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下确保满足最终用户需求的高质量产品。RUP对于所有的关键开发活动提供了能使用准则模板工具指导来进行访问的知识基础。2019/8/21RUP最佳实践迭代的开发软件需求管理使用基于构件的体系结构可视化软件建模验证软件质量控制软件变更2019/8/21RUP中的关键概念2019/8/21RUP中的角色2019/8/21RUP中的文档模板2019/8/21RUP过程2019/8/21RUP工作流2019/8/21计算机辅助软件工程:CASECASE工具帮助软件工程管理者和实践者完成与软件过程相关的每一个活动。CASE结构组成CASEToolsIntegrationFrameworkPortabilityServicesOperatingSystemHardwarePlatformEnvironmentArchitecture2019/8/21CASE工具的分类(1)业务过程工程工具过程建模与管理工具项目计划工具风险分析工具项目管理工具需求跟踪工具协调和管理工具文档工具2019/8/21CASE工具的分类(2)质量保证工具数据库管理工具软件配置管理工具分析和设计工具原型和仿真工具界面设计和开发工具原型工具编程工具Web开发工具和集成与测试工具等