1、1,第2章 软件过程标准化与工程化,内容:4软件工程标准的分类、层次软件文档的种类及其编写要求软件质量的特性常用的软件质量保证与过程改进的体系重点:3软件文档种类与编写要求软件质量要素ISO9000、CMM,2,2.1 软件工程标准,2.1.1 软件工程标准 定义:协调开发项目的各个阶段和各个部分之间的联系和衔接的统一的约束和规定。标准化的目的提高质量(可靠性、可维护性、可移植性)提高技术水平规范管理提高效率降低成本,3,软件工程标准分类( GBT 155381995软件工程标准分类法 )4过程标准 方法、技术、度量产品标准 需求、设计、部件、描述、计划、报告专业标准 职别、道德准则、认证、特
2、许、课程记法标准 术语、表示法、语言,4,2.1.2 软件工程标准的层次5,国际标准提供各国参考(ISO International Standards Organization) 国家标准政府或国家级的机构制定或批准(GBGuo Biao ANSIAmerican National Standards Institute) 行业标准(IEEEInstitute of Electrical and Electronics Engineers) 企业规范 项目规范2.1.3 中国的软件标准4 基础标准 开发标准 文档标准 管理标准,5,2.2 软件文档与编写要求2,1、定义:指某种数据媒体和其中
3、所记录的数据。 2、内容:在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。3、特点:它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。,6,4、作用7,1)提高软件开发过程的能见度。(记录开发过程中的事件) 2)检查进度和开发质量,实现对软件开发的工程管理。阶段性成果的标志。 3)提高开发效率。(对各个阶段的工作都进行周密思考、全盘权衡、早期发现错误,及时加以纠正,减少返工) 4)便于协调以后的软件开发、使用和维护。作为开发人员在一定阶段的工作成果和结束标志。 提供对软件的运行、维护和培训的有关信息,便于管理人员、开
4、发人员、操作人员、用户之间的协作、交流和了解。 便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需要的软件提供依据。,7,2.1.1文档的分类2,形式分类: 开发过程中填写的各种图表,称之为工作表格 应编制的技术资料或技术管理资料(文档或文件)软件文档的编制,可以用自然语言,特别设计的形式语言,介于两者之间的半形式语言(结构化语言),各类图形表示、表格来编制文档。,8,产生和使用的范围分类3,1.开发文档5 1)可行性研究报告(技术、经济、法律) 2)软件需求说明书(功能、性能、界面、运行环境) 3)数据要求说明书(数据采集、逻辑关系) 4)概要设计说明书(总体结构、数据结构、模
5、块划分) 5)详细设计说明书(算法)2.管理文档5 1)项目开发计划(团队组织、进度、经费、资源调度) 2)测试计划 3)测试分析报告 4)开发进度月报 5)项目开发总结,9,3. 用户文档 1)用户手册 2)操作手册 3)维护修改建议,10,2.2.2 文档编制的要求,1、时间要求,11,2 文档的内容,12,3.文档质量要求(5),1)针对性面向读者对象。管理文档、用户文档, 不应过多使用软件的专用术语。 2) 精确性文档的行文应当准确,无二义。文档的内容应当是协调一致,没有矛盾的。 3) 清晰性文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性。 4) 完整性任何一个文档都应当
6、是完整的、独立的,自成体系。 5) 灵活性应根据具体的软件开发项目,决定编制的文档种类。,13,2.3 软件质量(4),根据ANSI729-1983定义:软件质量是“软件产品满足规定的和隐含的需求的能力有关特性和特征的全体”。根据ISO/IEC9126定义:软件质量特性(software quality characteristics)是用以描述和评价软件产品质量的一组属性。一个软件质量特性可被细地成多级子特性。功能(正确)性、可靠性、易使用性、效率、可维护性、可移植性软件质量度量(software quality metric)是能被用来确定特定软件产品某一特性值的一种定量尺度和方法。,14
7、,1.功能性满足明确或隐含的需求的那些功能。 2.可靠性在给定的环境条件下,按设计要求,成功地运行程序的概率。用平均失效间隔时间 MTBF 表示。 3.易使用性用户为使用软件所需作的努力和对这样的使用所作的评价。 4.效率效率是与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。 5.可维护性可维护性与进行指定的修改所需的努力 6.可移植性软件可从某一环境转移到另一环境的能力,15,2.4.1 质量保证的概念,质量保证是为了提供足够的信任证据,证明组织有关的各类实体有能力满足质量要求所进行的有计划、有组织的活动。 质量保证的目的是 内部质量保证:在组织内部向管理者提供信任保证
8、; 外部质量保证:向顾客或第三方认证提供信任保证;,2.4 软件质量保证与两个保证体系,16,评价标准CMU SEI(美国卡内基梅隆大学软件工程研究所)1987年推出CMM (Capability Maturity Model) 即软件过程能力成熟度模型 ISO(国际标准化组织)1994, 1997, 2000 年推出ISO 9001, ISO 9000-3,即建立和维持质量体系的标准 ISO/IEC(国际标准化/组织/国际电工委员会)1997年推出ISO/IEC TR 15504 SPICE (Software Process Improvement and Capability dEter
9、mination),即软件过程改进和能力评估标准 DOD(美国国防部)1984年推出MIL STD 498,即软件过程改进标准BOOTSTRAP Institute(欧共体)1994年推出BOOTTSTRAP,即软件过程评估(基于CMM)标准,17,2.4.3 软件质量管理的两个标准(3),CMM (Capability Maturity Model) 即软件过程能力成熟度模型(美国卡内基梅隆大学软件工程研究所)1987年推出 ISO 9000-3 (建立和维持质量体系的标准) 特点(5) ISO9000系列标准和SWCMM模型,都是质量管理系统。 ISO9000系列标准对质量进行控制,但不管
10、如何改进。 SWCMM着眼于控制与改进(能力改进和过程改进),主要针对软件产业,产业个性比较明显,标准的要求比较细。 一般来说通过SWCMM三级认证的组织,基本上都可以通过ISO9000标准的认证。 对软件企业来说ISO9000系列标准可以作为申请更高标准SWCMM的基础,总体上SWCMM更细、更深、更广。,18,软件过程成熟度模型(SWCMM),评估软件过程时遵循的原则:(6) 软件产品的质量取决于生产该产品的过程质量。 软件过程是一个可管理、可测量和可改进的过程。 软件过程的质量受其支持技术的影响。 用于软件工程的技术水平应与过程的成熟度相适应。 软件过程成熟度是指对过程计划或定义水平、过
11、程实施水平、过程管理和控制水平、过程改善潜力等指标的综合评价。 分为 5 级。,19,1、成熟度等级,20,特点:过程执行杂乱无序 达到本级标准:过程活动无一定秩序,开发过程的可重复性差 升级要解决的关键问题:项目计划管理、配置管理、软件质量保证,特点:过程管理工作依赖管理人员的技能 达到本级标准:使项目管理处于严格控制之下,严格的项目计划和追踪、子合同管理、需求变更和产品基线控制 升级要解决的关键问题:培训、技术评审、标准,21,特点:过程可定义、可执行 达到本级标准:定义一个适合该组织的软件过程,有正规的文档化的规范,并能根据不同项目的要求裁剪和优化这个软件过程 升级要解决的关键问题:过程
12、度量、过程分析、质量计划,特点:过程管理工作依赖管理人员的技能 达到本级标准:使项目管理处于严格控制之下,严格的项目计划和追踪、子合同管理、需求变更和产品基线控制 升级要解决的关键问题:培训、技术评审、标准,22,特点:过程可定义、可执行 达到本级标准:定义一个适合该组织的软件过程,有正规的文档化的规范,并能根据不同项目的要求裁剪和优化这个软件过程 升级要解决的关键问题:过程度量、过程分析、质量计划,特点:过程成为可度量的 达到本级标准:为定义好的过程建立一套详细的度量机制,为产品和过程设立质量目标,度量软件过程和产品 升级要解决的关键问题:改善技术、问题分析、防止出错,23,特点:通过反馈来
13、改善过程 达到本级标准:用第4级建立的度量机制,不断地指导过程改善,技术革新和防止出错 升级要解决的关键问题:自动化、反馈技术,特点:过程成为可度量的 达到本级标准:为定义好的过程建立一套详细的度量机制,为产品和过程设立质量目标,度量软件过程和产品 升级要解决的关键问题:改善技术、问题分析、防止出错,24,2.关键过程领域 KPA(Key Process Area),引导软件机构改进软件过程的要点,称为关键过程领域。它确定了实现一个成熟度级必需解决的问题。 每一个关键过程领域确定一组相应的活动,完成这些活动,就可认为已达到了改进过程能力的一组重要的目标。,25,关键过程领域,26,3.关键实践
14、,关键实践是对关键过程领域起关键作用的方针、规程、措施、活动以及相关基础设施的建立。每个关键过程领域所包含的关键实践涉及5个方面:执行约定、执行能力、执行活动、测量和分析、验证实施,人们统称为5个共同特征。,27,ISO 9000-3标准及软件质量认证,ISO9000体系(5) ISO 9000 质量管理和质量保证标准选择和使用的导则 ISO 9001 质量体系设计开发、生产、安装和服务中的质量保证模式 ISO 9002 质量体系生产和安装中的质量保证模式 ISO 9003 质量体系最终检验和测试中的质量保证模式 ISO 9004 质量管理和质量体系要素导则1、ISO9000的应用(4) 硬件
15、:有形产品 软件:无形产品(智力产品) 流程性材料:将原料转化为某一特定状态的产品。 服务:活动,28,2. ISO 9000 系列标准的主导思想(4+1),强调质量并非在产品检验中得到,而是形成于生产的全过程。 必须使影响产品质量的全部因素在生产全过程中始终处于受控状态。 企业具有持续提供符合要求产品的能力。(ISO9000认证) 质量管理必须坚持进行质量改进。关于软件(2) 以ISO 9000系列标准的追加形式,另行制定出ISO 9000-3标准。 ISO 9000-3成为“使9001适用于软件开发、供应及维护”的“指南”。,29,1. 指导思想(7) 1)必须有短期效益这种动力来驱动,作
16、为产业的战略发展,国家或行业相关部门可以以适当的标准来强行推动。 2)分步实施、重点突破的策略。 3)要求组织最高领导者认识到软件工程化的作用和效益。 4)必须与组织的内部实际情况密切联系,充分认识SWCMM和ISO9000系列标准,仔细分析软件开发组织目前的状况,包括存在的问题,找出相应的解决办法,制订合理的总体方案。,2.4. 5 软件过程工程化(宏观),30,5)要根据组织工程化程度的具体情况选择性引入或裁剪软件工程标准作为企业标准和项目标准,就能基本解决表示的完备性、统一性和清晰性。 6)借鉴传统工业的工程化过程。 7)项目开发过程中采用相应的辅助工具,不但会提高开发效率,也会大大的降
17、低软件工程化工作的复杂度。,31,2. 软件过程工程化的实施步骤,(1)实施前的准备工作 1)成立相应的工程化项目组。 2)确定组织的基本目标。 3)培训准备。 4)组织内初步调研。 5)软件工程化工作的总体规划。 6)项目工作计划 7)项目培训计划。 8)可行性分析。,32,(2)实施工作 软件过程工程化的实施工作包括: 1)现状调研。 2)确定总体方案和阶段性目标。 3)先选择试点项目。 4)选择参加试点项目人员。 5)实施控制。,33,(3)实施结束与持续改进顺利通过SWCMM的二级和三级认证作为项目实施工作的结束。实施结束后,整个组织建立起可妥善定义的软件开发过程。实施后的持续改进和软件工程化工作以及后续四级、五级的实施归入相应的职能部门(如:软件工程过程组)完成,主要负责对项目数据的采集和分析,改进以后过程的实施等。,