




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 软件设计过程 的技术与方法 软件设计过程的技术与方法 10.1 软件工程方法学 10.2 软件工程的标准化 10.3 软件设计常用的文档类型及作用 10.4 能力成熟度模型CMM 10.1软件工程方法学 软件工程方法学 10.1.1 软软件开发发流程与软软件工程方法学 软软件工程方法学是指导导和管理软软件开发发的应应用工程学 科,一个软软件的开发发流程不外乎涉及三个方面的内容:分析 、软软件设计设计 和实现实现 。随着开发发方法的不断进进步,人们设们设 计计了不同的软软件生命周期模型。对对不同生命周期模型实现实现 过过程的演化反映了软软件工程方法的进进化。纵观软纵观软 件工程方 法的进进化过过程,经历经历 了从概念的提出到相关技术术的研究, 再到软软件工程方法学的形成;从相关工具的形成,再到相关 工具的实现实现 等一系列的过过程,逐步形成当前指导软导软 件开发发 的技术术基础础。软软件工程方法的每一步发发展都充分体现现了在 保证产证产 品质质量前提下提高开发发速度的基本目标标。 软件工程方法学 10.1.2 软软件工程基本方法 软软件工程方法在软软件开发发的长长期过过程中随着软软件工程 技术术的不断进进步而不断完善,软软件工程的基本方法经历经历 了 传统传统 的结结构化方法、面向对对象方法、软软件过过程方法和构件 工程方法四个阶阶段的演变变。虽虽然软软件工程方法取得了很大 的进进步,但是当前采用的软软件开发发方法主要还还是结结构化方 法、面向对对象方法。因为对为对 相当数量的软软件系统统来说说,以 上两种方法,尤其是结结构化方法,仍然是目前较为较为 有效的 软软件开发发方法。在本教材中主要使用结结构化方法和面向对对 象方法描述软软件开发发的基本过过程。 软件工程方法学 1.结结构化方法 结结构化方法是按功能将问题问题 分解抽象成模块块、建立模 块块和模块块之间间的调调用关系来进进行软软件开发发的。它的基本思 想是将系统统中的功能与数据相分离。 结结构化方法是一种围绕围绕 功能来组织软组织软 件系统统的方法, 在这这种方法中,系统统的基本构成要素是模块块,它是一种实实 现现系统单统单 一功能的程序单单元。模块块具有输输入、输输出、内部 数据和过过程等基本要素。 软件工程方法学 2.面向对对象方法 面向对对象开发发方法是继结继结 构化开发发方法之后,着重解 决系统统需求变变化和维护维护 困难难等问题问题 而发发展起来的一种全新 的方法。面向对对象方法是一种围绕围绕 真实实世界中的事物来组组 织软织软 件系统统的全新方法。在这这种方法中,系统统的基本构成 要素是对对象。从软软件开发发人员员的角度来看,对对象是一种将 数据和处处理这这些数据的操作合并在一起的程序单单元;从用户户 的角度来看,对对象是一种具有某些属性和行为为的事物。对对 象可以是具体的,也可以是概念性的。对对象具有标识标识 惟一 性、分类类性、多态态性、继继承性和封装性等基本特性。 软件工程方法学 3.软软件过过程方法 软软件过过程方法起始于软软件开发发的过过程思想。随着软软件 工程不同开发发模型的相继继提出,开发发人员员从注重软软件开发发 的各个独立活动动步骤发骤发 展到探究以软软件开发过发过 程中的方法 、机制等内容为为基础础的思维维方式,逐渐渐形成了软软件开发发的 过过程概念。 软件工程方法学 软件过程概念在1984年10月召开的第一届国际软件过 程讨论会上首次正式提出,并将软件过程定义为:“软件过程 (Software Process)是在软件生存期中所实施的一系列 活动的集合,且每个活动可由一些任务组成。” 进入20世纪90年代,国际标准化组织(ISO)和国际电 器电子工程师学会(IEEE)分别推出软件过程标准, 将软件过程概念进一步扩展为多视面(Multi View)的过程 。它把软件过程定义为“软件生命周期过程或软件过程组, 是指软件生命周期中的一系列相关过程。过程是活动的集合 ,活动是任务的集合,任务则起到把输入加工成输出的作用 。活动的执行可以是顺序的、迭代的(重复的)、并行的、 嵌套的或者是有条件地引发的。它从合同、工程、运作、管 理等视面研究软件生存期中所涉及的各种过程和活动。” 软件工程方法学 软件过程方法是为建立软件过程所必须实施的一系列工 程化的活动,它的研究对象是与此有关的方法、工具和环境 。它的出现被认为是人们对软件工程方法认识的又一次质的 飞跃。它促使软件开发人员把注意力从抽象的软件生命周期 模型转向对软件项目成功起着关键作用的过程细节。 软件工程方法学 4.构件工程方法 基于构件的软软件工程(Component-Based Software Engineering,CBSE)是强调调使用可复用的软软件构件来设设 计计和构造基于计计算机的系统统。它借鉴鉴了工业业界开发发新产产品 中的使用已有部件,而不是一切都从头头开始设计设计 的成功经经 验验。 软件工程方法学 软件复用的基础是由专门的软件企业生产的软件组件( Component),即构件。软件开发人员在软件开发时可大 量复用这些规范的、高效的软件构件,以达到降低软件的开 发费用,提高软件的生产效率和提高软件质量的目的。 在基于构件的软件工程方法的实施中,包含领域工程 和基于构件的开发这两个并行的工程活动。领域工程是在应 用领域探索可以复用的内容,这些内容包括功能模块、操作 和数据。 软件工程方法学 基于构件的开发包括以下基本过程: (1)以客户的需求为基础,确定满足欲开发目标系统的体 系结构。 (2)在可复用构件库中找出与本系统开发有关的构件。 (3)根据目标系统的体系结构确定符合要求的构件。 (4)对构件进行适应性修改,使其更好地满足系统集成的 要求。 (5)集成构件以形成子系统和应用整体。在开发中,若构 件库中已存在的构件不能满足系统开发的要求,还需要订制 符合系统开发要求的构件。 软件工程方法学 10.1.3 软软件对对象与方法选择选择 软软件工程方法的选择选择 与软软件系统统的特征有密切的关系 ,在软软件的设计设计 中一般涉及两类类常见见的软软件系统统。一类类系 统统需求明确而且不随设计过设计过 程变变化,这类这类 系统统的设计设计 目 标标及功能可以预预先指定。在实际应实际应 用中属于这类这类 系统统的有 工艺稳艺稳 定的生产过产过 程的计计算机控制系统统、通讯设备讯设备 的控制 系统统或者是计计算机中的操作系统统、编译编译 程序、数据库库系统统 等系统软统软 件。这类这类 系统统的开发发,与传统传统 的工程方法十分类类 似,一般先进进行规规范的需求分析,需求规规格说说明书书可以制 定得非常精确和完整。在严严格的组织组织 管理下采用以瀑布模 型和结结构化分析及设计为设计为 代表的传统软传统软 件工程方法。 软件工程方法学 这这种软软件开发发方法的主要特征是强调调生命周期前期的 需求分析,假设设用户户的需求可以完全预预先获获取,认为认为 在后 期的开发过发过 程中这这个需求分析的结结果是稳稳定的,基本不变变 的。这类软这类软 件系统统的开发过发过 程是有规规律的、可预预先计计划的 ,通常这类这类 系统统也称为过为过 程驱动驱动 的系统统。在目前大多数软软 件系统统的开发发中,上述方法仍然对软对软 件开发发有着十分重要 的指导导意义义,尤其是在项项目管理方面。在实际应实际应 用设计设计 中 ,即使是对对一些复杂杂的、不确定的软软件系统统的开发发,仍然 可以在开发过发过 程中部分地使用传统传统 的软软件工程方法。 软件工程方法学 在软件系统的开发中,用户的需求在大多数情况下是模 糊的或随时间变化的。在这一类系统的开发中,甚至在系统 开发完成后,在用户的使用过程中,用户还会由于需求的变 化提出修改的要求。这类系统的变化是在用户对系统的认识 不断深化和要求更加确切的情况下而驱动的,所以这类系统 一般也称为用户驱动的系统。例如在各行各业中普遍使用的 管理信息系统、决策支持系统以及某些面向终端用户需要的 系统等。开发这一类系统需要采用反复试探的技术,这类系 统必须具有快速、简便地进行调整的特性。因此所用的开发 方法也必须能迅速构建,反复试用和改进以满足变化和渐进 的要求。这就对可提高软件系统的稳定性、可修改性和可重 用性的面向对象方法、构件方法以及其他更新的开发方法提 出了需求。 软件工程方法学 从上面的分析可以看出,要充分地对开发对象予以考虑 ,以选择合适的软件开发方法。这不但需要开发人员对所开 发的系统进行仔细地分析、理解和认识,也需要在软件的开 发中积累经验,以便根据实际的问题选择适当的方法以经济 、快捷的方式达到应用系统的目的。 10.2软件工程的标准化 软件工程的标准化 软件工程的基本思路是借助工程的方法开发软件,因此 将工程中成熟的技术和方法应用在软件工程中是一条简捷、 必要的途径。在各类工程技术中,标准化技术对工程项目的 顺利实施、保证工程质量起到了重要的作用。采用标准化的 方法,首先可以在企业内建立起最佳的生产秩序、技术秩序 、安全秩序、管理秩序,使企业的生产活动和经营管理活动 井然有序,避免混乱。另外,还可以获得最佳的社会效益和 经济效益,因为一个标准的制定不仅要考虑标准在技术上的 先进性,还要考虑经济上的合理性。 软件工程的标准化 在软件的开发过程中,随着软件生命周期的演化,涉及 许多技术、管理以及确认与验证工作。用规范的方法和要求 来提供统一操作规程和衡量标准,使软件开发的各个工作环 节都有章可循,保证软件开发的最佳效益,对软件的成功开 发有重要的作用。难怪有人认为,软件开发的工程化和标准 化是克服软件危机的有效途径。 软件工程的标准化 10.2.1 软软件工程标标准化的意义义 软软件工程标标准化是随着软软件工程学的蓬勃发发展而产产生 、发发展起来的。通过过开展软软件工程标标准化,可以将软软件开 发发中复杂杂、多样样、无序的事物或概念转变为简单转变为简单 、规规整、 有序的事物或概念,以求在一定范围围内达成某种共识识,满满 足软软件开发发技术发术发 展的需要。软软件工程标标准化对实现资对实现资 源共享,大幅度缩缩短软软件开发发周期,节节省软软件的开发经费发经费 和运行维护维护 成本,改进产进产 品的安全性、通用性、可靠性和 可维护维护 性,提高生产产效率、节节省资资源等都有重要的意义义, 由此可以获获得巨大的社会效益和经济经济 效益。由于计计算机信 息技术术在新一轮轮技术术革命中起着领导领导 与促进进作用,其特征 决定了软软件工程标标准化实实施的重要性。 软件工程的标准化 10.2.2 软软件工程标标准化的内容 由于软软件工程是一项针对软项针对软 件开发发的复杂杂的系统统工程 ,因此它涉及的领领域也是多方面的。它不仅仅包括软软件开发发 的管理、工程和产产品,也包括职业术语职业术语 等方面的内容。软软 件工程的标标准化一般从两个方面来规规范软软件的开发发:(1) 程序设计语设计语 言的标标准化。为为某一程序设计语设计语 言规规定若干个 标标准子集,对对于语语言的实现实现 者和用户户都带带来了很大方便。 (2)软软件过过程的标标准化。为软为软 件生命周期各个阶阶段的工 作建立标标准或规规范。例如国家标标准GB/T155381995软软 件工程标标准分类类法就是有关软软件工程标标准的分类标类标 准。 软件工程的标准化 软件工程标准涉及到过程管理、产品管理、资源管理以 及确认与验证等多方面的内容,具体说它包括过程标准 涉及方法、技术、度量等;产品标准涉及需求、设 计、部件、描述、计划、报告等;专业标准涉及职别 、道德准则、认证、特许、课程等;记法标准涉及术 语、表示法、语言等。 软件工程的标准化 10.2.3 常用的标标准 由于软软件工程的标标准化有着非常重要的作用,所以有 关软软件开发发的各个级别级别 的组织组织 、机构都制定了相关的标标准 ,在一定的范围围内得到了广泛的认认可和贯彻贯彻 。从标标准化的 角度来说说,标标准制定可根据制定机构和适用范围围分为为国际际 标标准、国家标标准、行业标业标 准、企业业(机构)标标准以及项项目 (课题课题 )标标准五个层层次。 软件工程的标准化 1.国际标际标 准 国际标际标 准是“由国际标际标 准化团团体通过过的标标准”( GB3935.183标标准化基本术语术语 第一部分)。1991年 ISO.IEC公布的国际标际标 准定义义是:由国际标际标 准化组织组织 通过过的 并公开发发布的标标准。 国际标际标 准化团团体是指ISO(International Standards Organization)、IEC(International Electro-technical Commission)以及由ISO公布的其他27个国际组织际组织 (其 中,ISO、IEC是两个最大的国际标际标 准化组织组织 )。到目前为为 止,ISO和IEC共发发布国际标际标 准1万多个。 软件工程的标准化 从属性上来说说,国际标际标 准有着广泛的代表性和权权威性 ,世界各国和一些国际际化的组织组织 在制定它们们的标标准时时都参 考了国际标际标 准。对软对软 件工程标标准化有重要意义义的是,在20 世纪纪60年代初,ISO建立了“计计算机与信息处处理技术术委员员会 ”,简简称ISO/TC97,专门负责专门负责 与计计算机有关的标标准化工作 。从此,软软件工程标标准化有了快速的发发展。 软件工程的标准化 2.国家标标准 由某个国家政府或国家级级的机构制定或批准,是本国内 各级标级标 准必须须服从、不得与之相抵触的标标准,是一个国家 标标准体系的主体和基础础,是全国范围围内都必须须遵守的标标准 ,有一定的强制性。中华华人民共和国国家技术监术监 督局是我 国的最高标标准化机构,它所公布实实施的标标准称为为中华华人民 共和国国家标标准,简简称为为“国标标(GB)”。现现在,我国已批 准了若干软软件工程标标准。我国制定和推行标标准化工作的总总 原则则是向国际标际标 准靠拢拢。在中国标标准化工作“九五”计计划和 2010年远远景目标纲标纲 要中确定的“九五”期间标间标 准化工作的奋奋 斗目标标中指出:到2000年,争取将ISO、IEC现现有标标准,除 因地理、气候及基本技术术等原因不能采用的外,都要转转化 为为我国标标准,国家标标准中采用国际标际标 准和国外先进标进标 准的 应应达到60%。 软件工程的标准化 在“九五”期间标准化工作的主要任务中,“要采取措施 ,加快采用国际标准和国外先进标准的步伐。要认真落实采 标政策,研究制定新的保证措施,力争九五末实现主要行 业采标率达到70%以上的目标”,以达到提高我国工业和科 技水平、促进国际交流的目的。 从1983年起,中国已陆续制定和发布了20项与软件开 发有关的国家标准。这些标准可分为4类:基础标准、开发标 准、文档标准和管理标准。 软件工程的标准化 除我国制定的国家标准以外,世界上其他国家也都有自 己制定的国家标准。目前世界上比较有影响的国家标准有: 美国国家标准(ANSI)、英国国家标准(BS)、德国国家 标准(DIN)、日本国家标准(JIS)、法国国家标准(NF )等。 软件工程的标准化 3.行业标业标 准 由行业标业标 准化主管机构或某一领领域的标标准化组织团组织团 体 批准、发发布,适用于某个业务领业务领 域的标标准。由于这这些标标准 的颁颁布者在自己技术领术领 域的权权威性,它们们在软软件开发发工作 中一直起着巨大的推动动和促进进作用。目前较较有影响的行业业 标标准有IEEE(Institute of Electrical and Electronics Engineers美国电电气与电电子工程师师学会)下属的软软件标标准 技术术委员员会(SESS)颁颁布的标标准、GJB(中华华人民共和 国国家军军用标标准)、DOD_STD(Department Of Defense-Standards美国国防部标标准)和MIL_S(Military- Standard美国军军用标标准)等。 软件工程的标准化 4.企业规业规 范 企业规业规 范是由企(事)业业或其上级级有关机构批准、发发 布的规规范性企业业内部标标准。企业标业标 准规规范所属的企业业,包 括公司规规范、工厂规规范等,它们们一般根据本企业软业软 件工程 工作的需要,由企业业批准、发发布,适用于本部门门。例如, 我国东东大阿尔派软软件公司制定的一系列软软件开发发的规规范及 标标准。 软件工程的标准化 5.项项目规规范 项项目规规范是指在一个项项目的实实施过过程中,为为了使项项目 能够顺够顺 利执执行和收到满满意的效果,由项项目的组织组织 者制定, 并为该项为该项 任务专务专 用的软软件工程规规范。它是在该项该项 目软软件 开发发、供应应和维护维护 中的指导导性规规范。 10.3 软件设计常用的 文档类型及其作用 软件设计常用的文档类型及其作用 随着计算机技术的不断进步和应用领域的扩大,软件 功能也越来越丰富,这必然导致计算机软件开发工作越来越 复杂。目前,几乎所有成熟的商业软件都是靠一个开发团队 齐心协力、有序的工作开发出来的。对于这种团队化的软件 开发模式,软件项目管理的成功与否是控制开发成本的关键 环节。这里面,贯穿其中的重要因素软件文档起着举 足轻重的作用。软件文档就是以书面或其他形式在整个软件 工程过程中对开发过程或结果所做的说明性或规范性的描述 文本。从某种意义上来说,文档是软件开发规范的体现和指 南。 软件设计常用的文档类型及其作用 10.3.1 软软件设计设计 文档在软软件开发发中的作用 根据软软件的定义义,计计算机软软件不仅仅仅仅 包括程序,还应还应 该该包括一整套文档资资料。在软软件开发过发过 程中,总总是产产生和 使用大量的信息。因此,这这些文档资资料是随软软件开发过发过 程 而产产生的,并且要和程序代码码完全对应对应 配套。其意义义是软软 件开发组织发组织 的管理人员员可以使用这这些文档资资料来管理和评评 价软软件开发发工程的各个阶阶段进进展状况,提高了软软件开发过发过 程的能见见度和工程管理效能;软软件开发发人员员可以利用它们们作 为为通信工具,在软软件开发过发过 程中准确地交流信息,以提高 开发发效率;同时时它还还是评评价开发发人员员在一定阶阶段的工作成 果的依据和阶阶段结结束的标标志。对对于软软件维护维护 人员员而言,这这 些文档资资料更是至关重要必不可少的,它有利于使用工程 化的原则则和方法来指导软导软 件的维护维护 。 软件设计常用的文档类型及其作用 因此,规范、齐全、有效的软件开发文档会使软件开发 活动更科学、规范,更有成效。缺乏必要的文档资料或者文 档资料不合格,必然给软件开发和维护带来许多严重的困难 和问题。所以,在使用工程化的原理和方法来指导软件的开 发和维护时,应当充分注意软件文档的编制和管理。 软件设计常用的文档类型及其作用 10.3.2 软软件设计设计 文档的类类型 软软件文档是用自然语语言、特别设计别设计 的形式语语言或者介 于两者之间间的半形式语语言(结结构化语语言)以及图图形对软对软 件 开发过发过 程进进行的描述或定义义。在形式上有图图表(称之为为工 作表格)和文本资资料(称之为为文档或文件)两类类。按照文 档产产生和使用的范围围,软软件文档大致可分为为用户户文档、开 发发文档和管理文档三种类类型。软软件文档结结构见见下页页。 软件设计常用的文档类型及其作用 软件文档 、用户文档 用户手册;操作手册; 维护修改建议;软件需求规格说明书 、开发文档 软件需求规格说明书;数据需求说明书; 概要设计说明书; 详细设计说明书; 数据库设计说明书; 可行性研究报告; 项目开发计划 、管理文档 项目开发计划;测试计划; 测试报告; 开发进度月报开发总结报告 软件设计常用的文档类型及其作用 为了规范软件开发文档的编制,国家标准局在 1988年1月发布了计算机软件开发规范和计算机软件 产品开发文档编制指南(GB856788)两个标准作为软 件开发人员工作的准则和规程。在指南中建议软件开发过程 中产生以上14种文档并给出了上述文档的编制指导。同时 指南也是以上14种文档编写质量的检验准则。在软件开发 工作中,对有关文档的细节要求,为达到规范和统一,开发 人员在文档编制时应尽量按照标准规定的格式和内容来进行 。有关的格式、内容和要求可以参考附录或查找相关的标准 。 软件设计常用的文档类型及其作用 10.3.3 编编制软软件设计设计 文档应应遵循的原则则 在软软件项项目的开发发中,应应根据要求编编制相关文档。文 档的编编制是一个随着软软件的开发发而不断进进化的工作过过程。 需经过经过 从形成最初轮轮廓,经经反复检查检查 和修改,直到程序和 文档正式交付使用的完整过过程。每一步都需要工作人员员的 精心工作。在文档编编制时时,既要保证证文件编编制的质质量、体 现现每个开发项发项 目的特点,又要注意经济经济 性。在计计算机软软 件产产品开发发文档编编制指南(GB856788)中给给出了文 档编编制时时要考虑虑的三条因素。 软件设计常用的文档类型及其作用 1.文档的使用者 在软软件开发发文档中,每一种文档都具有特定的使用对对 象。这这些对对象包括个人或小组组、软软件开发单发单 位的成员员或社 会上的公众、从事软软件工作的技术术人员员、管理人员员或领导领导 干部等。他们们期待着使用这这些文档来进进行工作,例如对软对软 件的设计设计 、程序的编编写、测试测试 、使用、维护维护 或进进行计计划管 理等。因此,这这些文档的作者必须须了解自己的读读者,这这些 文档的编编写必须须注意适应应自己的特定读读者的水平、特点和 要求。使编编写出的文档有明确的针对针对 性,真正对软对软 件开发发 工作有指导导意义义。 软件设计常用的文档类型及其作用 2.重复性 在软软件文档的编编制中,为为便于使用,需要一些必要的 重复,较较明显显的重复有两类类。引言是每一种文档都要包含 的内容,以向读读者提供总总的梗概。第二类类明显显的重复是各 种文档中的说说明部分,如对对功能性能的说说明、对输对输 入和输输 出的描述、系统统中包含的设备设备 等。这这是为为了方便使用每种 文档的读读者,每种产产品文档应该应该 自成体系,尽量避免读读一 种文档时时又不得不去参考另一种文档。 软件设计常用的文档类型及其作用 3.灵活性 鉴鉴于软软件开发发是具有创创造性的脑脑力劳动劳动 ,也鉴鉴于不 同软软件在规规模上和复杂杂程度上差别别极大,在文档编编制工作 中允许许有一定的灵活性。这这种灵活性表现现在: (1)应编应编 制的文档种类类。软软件开发发者可以针对针对 一项项具 体的软软件开发项发项 目调调整文档的数量,也可以把几种文档合 并成一种。 (2)文档的详细详细 程度。文档的详细详细 程度可以根据任务务 的规规模、复杂杂性和项项目负责负责 人对该软对该软 件的开发过发过 程及运 行环环境与所需要的详细详细 程度的判断来决定。 软件设计常用的文档类型及其作用 (3)文档的扩展。当被开发系统的规模非常大(例如源 码超过100万行)时,一种文档可以分成几卷编写。 (4)节的扩张与缩并。文档的编制中,所有的条目都可 以扩展,以适应实际需要。反之,如果有些细节不是必需的 ,也可以根据实际情况缩并。 (5)程序设计的表现形式。程序的设计可以使用流程图 的形式、判定表的形式,也可以使用其他表现形式,如程序 设计语言(PDL)、问题分析图(PAD)等。 (6)文档的表现形式。可以使用自然语言,也可以使用 形式化语言或图表的形式。 软件设计常用的文档类型及其作用 (7)文档的其他种类。可以建立一些特殊的文档种类要求 ,例如软件质量保证计划、软件配置管理计划等,这些要求 可以包含在本单位的文档编制实施规定中。 文档的编制应针对所开发的项目,对软件维护有指导意 义。软件文档的编制应在软件生命周期中,随着各个阶段工 作的开展适时编制。其中,有的仅反映某一个阶段的工作, 有的则需跨越多个阶段(如图10.2)。 软件设计常用的文档类型及其作用 一个完整规范的文档应向软件管理部门或向用户说明以 下内容: 哪些需求要被满足(What); 软件在什么环境中实现,所需信息从哪里来(Where); 开发时间如何安排(When); 开发(或维护)工作打算由谁来做(Who); 需求应如何实现(How); 为什么要进行这些软件开发或维护修改工作(Why)等。 软件设计常用的文档类型及其作用 图10.2 软件生存期各阶段与各种文档编制的关系 10.4 能力成熟度模型CMM 能力成熟度模型CMM 10.4.1 CMM模型简简介 软软件能力成熟度模型CMM是英文(Capacity Maturity Model)的简简称。1986年,美国卡内基梅隆大学软软件工 程研究所(简简称SEI)为为了满满足美国联联邦政府评评估软软件供 应应商软软件开发发能力的要求开始研究并建立此模型。1991年 正式推出了CMM1.0版。CMM自问问世以来备备受关注,在一 些发发达国家和地区得到了广泛应应用,成为为衡量软软件公司软软 件开发发管理水平的重要参考因素和软软件过过程改进进的工业标业标 准。并在此基础础上形成了国际标际标 准(ISO.IEC15504)。据 了解,美国、印度、日本等软软件开发发技术术水平高的国家已 有许许多软软件公司通过过了CMM不同等级级的认证认证 。 能力成熟度模型CMM 软件是一种产品,与其他产品一样,软件产品的质量在 很大程度上取决于构建软件时所使用的软件开发方法和维护 过程的质量。软件过程是人员密集和设计密集的作业过程, 有素高效的训练是建立起支持实现成功改进软件过程的基础 。CMM描述的这个框架正是把软件过程从无定规的混沌过 程向训练有素的成熟过程演化的途径。从这一方面来讲, CMM代表着目前软件发展的一种思路,一种提高软件过程 能力的途径,尽管它存在着某些不足。例如,成熟级别、关 键过程域、公共属性和关键实践还需要在软件行业进一步深 入地讨论和修订,但它确实为软件行业的发展提供了一个良 好的框架,是促使软件过程能力提高的有用工具。 能力成熟度模型CMM 软件过程包括软件开发的各种活动、技术和工具。因此 ,它实际上既包括软件技术方面又包括管理方面。CMM策 略力图改进软件过程的管理,而在技术方面的改进是它的必 然结果。 对于软件能力成熟度模型CMM,SEI是这样解释的: 它是“对于软件组织在定义、实现、度量、控制和改善 其软件过程的进程中各个发展阶段的描述。这个模型便于确 定软件组织的现有过程能力和查找出软件质量及过程改进方 面的最关键的问题,从而为选择过程改进战略提供指南”。 从其属性上来说,CMM是软件管理工程的一个部分。 能力成熟度模型CMM 从CMM模型制定的基本思想来看,导致软件质量问题 的主要因素就是软件过程能力低。其中最关键的问题是开发 者管理软件过程的方法不当。这是因为软件产品是一种高度 复杂的逻辑聚合体,有着高度的不可见性。所以软件产品的 质量有难于定义、难于度量和难于管理的特点。 能力成熟度模型CMM 因此软件开发技术和方法不是决定生产率和软件质量的 惟一重要因素。从世界上计算机技术发达国家的软件企业的 经验来看,一个企业的软件能力更取决于该企业的过程能力 ,特别是在软件开发和生产中的成熟度。其过程能力越是成 熟,该企业的软件生产能力就越有保证。企业中缺乏工程化 的软件开发质量保证手段必将成为制约整个软件产业发展的 瓶颈。因此,从提高我国软件的开发和生产能力,提高软件 整体水平的角度出发,逐步在软件企业实施CMM被认为是 一条有效的途径。 能力成熟度模型CMM 10.4.2 能力成熟度的等级级 根据CMM提供的阶阶梯式进进化框架,软软件开发组织发组织 的 能力成熟度可分为为5个等级级。在每个等级级中各有不同的行为为 特征(见见表10.1)。 表10.1 CMM各等级级下的行为为特征 CMM等级级 行 为为 特 征 优优化级级 过过程变变更管理、技术变术变 更管理、缺陷管理 已管理级级 软软件质质量管理、定量过过程管理 已定义级义级 同行专专家评审评审 、组际协调组际协调 、软软件产产品工程、集成软软 件 管理、培训训大纲纲、组织过组织过 程定义义、组织过组织过 程焦点 可重复级级 软软件配置管理、软软件质质量保证证、软软件子合同管理、 软软件合同跟踪和监监督、软软件项项目策划、需求管理 初始级级 软软件开发发无规规范;软软件过过程不确定、无计计划、无秩序 能力成熟度模型CMM 1.初始级级 初始级级的软软件过过程是未加定义义的随意过过程,不具备稳备稳 定的环环境用于软软件开发发和维护维护 ,缺乏健全的管理惯惯例。项项 目的执执行是随意甚至是混乱的,其软软件过过程能力无法预计预计 。有些企业虽业虽 然制定了一些软软件工程规规范,但这这些规规范基 本上不能覆盖基本的关键过键过 程要求,而且执执行没有政策、 资资源等方面的保证证,它们们几乎没有什么过过程是经过经过 定义义的 ,项项目能否成功完全取决于个人的能力。它们们的软软件过过程 总总是随着软软件开发发工作的推进进而处处于变变更和调调整之中。 能力成熟度模型CMM 2.可重复级级 第二级级的焦点集中在软软件项项目管理过过程的制度化上。 顾顾客的需求和本组织组织 的工作产产品是受控的,并且建立起了 基本的项项目管理惯惯例。一个可管理的过过程是可重复的过过程 ,这这个可重复的过过程能逐渐进渐进 化和成熟。第二级级的管理过过 程包括了需求管理、项项目管理、质质量管理、配置管理和子 合同管理五个方面,以追踪成本进进度和功能性。其中项项目 管理分为计为计 划过过程和跟踪监监控过过程两个过过程。从管理角度 讲该级讲该级 的管理过过程是一个按计计划执执行的、阶阶段可控的软软件 开发过发过 程。 能力成熟度模型CMM 3.已定义级义级 第三级级是把第二级级定义义的管理的基本过过程的执执行步骤骤 以文档和标标准的形式固定下来,针对针对 各个基本过过程建立起 文档化的“标标准软软件过过程”。它要求制定企业业范围围的工程化 标标准,而且无论论是管理还还是工程开发发都需要一套文档化的 标标准,并将这这些标标准集成到企业软业软 件开发标发标 准过过程中去。 所有开发发的项项目需根据这这个标标准过过程,经严经严 格的审审批程序 剪裁出该项该项 目的过过程,并通过执过执 行这这些过过程来开发发和维维 护软护软 件。标标准化的软软件过过程有助于软软件经经理和技术术人员员更 有效地履行他们们的职责职责 ,使软软件开发发真正变为变为 工业业生产产活 动动。 能力成熟度模型CMM 4.已管理级级 第四级级的管理是量化的管理。组织对组织对 所有过过程都要建 立相应应的度量方式,对对所有产产品的质质量(包括工作产产品和 提交给给用户户的产产品)都制定出明确的度量指标标,对对跨项项目 的重要软软件过过程活动动的效率和质质量予以度量,并且可以利 用本组织组织 的软软件过过程数据库库,来汇汇集各项项目软软件过过程产产 生的数据并加以分析。这这些度量和分析应应是详详尽的,并且 可用于理解和控制软软件过过程和产产品。 能力成熟度模型CMM 5.优优化级级 第五级级的目的是通过过定量的反馈实现馈实现 持续续的过过程改进进 。所谓谓持续续的过过程改进进是指可根据过过程执执行的反馈馈信息来 改善下一步的执执行过过程,即优优化执执行步骤骤。这这里所讲讲的反 馈馈是从过过程以及对对新想法和技术术的分析中提炼炼出来的。如 果一个企业业达到了这这一级级,那么表明该该企业业具备备足够够的手 段用于事先发现过发现过 程的长处长处 和短处处以及防止发发生缺陷;它 拥拥有丰富的软软件过过程成功经验经验 的数据,并且可用于对对新技 术进术进 行分析并提出对对本组织软组织软 件过过程的更改建议议;它能发发 现现那些可能发发掘出最佳软软件工程惯惯例的合理化建议议并使之 在整个组织组织 里实现转实现转 化。这样这样 它就可以根据实际实际 的项项目 性质质、技术术等因素,不断调调整软软件生产过产过 程以求达到最佳 ,进进而提高软软件的质质量和生产产率。 能力成熟度模型CMM 这种分级的思路就是把一个组织执行软件过程的成熟程 度分成循序渐进的几个阶段。这与软件组织提高自身能力的 实际推进过程相吻合。随着各个阶段的不断推进,软件开发 生产的计划精度越来越高,单位工程的生产周期越来越短, 单位工程的成本越来越低。企业通过使用这个模型,就能一 个等级一个等级地逐步提高它们的软件开发及生产能力。 能力成熟度模型CMM 10.4.3 CMM与ISO9000系列标标准 在国际标际标 准中,ISO9000系列标标准是为为促进进国际贸际贸 易而发发布的,其目的是为为供、需双方对质对质 量达成共识识,是 在贸贸易活动动中建立相互信任关系的基础础。目前,ISO9000 系列认证认证 已经经成为为企业证业证 明它的产产品质质量和工作质质量的依 据。 在ISO9000系列标标准中,强调质调质 量不是在产产品的检验检验 中得到的,而是在生产产的全过过程中形成的。与质质量管理有 关的标标准有ISO9001、ISO9002和ISO9003三个。其中, ISO9001是ISO9000系列标标准中一个非常重要的质质量保证证 标标准,也是软软件机构推行质质量认证认证 工作的一个基础标础标 准。 为为了更好的在我国推广,我国已将它转转化为为国家推荐标标准 (GB.T190011994)。 能力成熟度模型CMM CMM和ISO9001都以全面质质量管理为为理论论基础础,都针针 对过对过 程进进行描述,但二者的设计设计 思路不同,属于两个不同 的体系。CMM专门针对软专门针对软 件领领域,而ISO9001适用范围围 很广(如硬件、软软件、流程性材料和服务务等),存在很大 差别别。 ISO9001被认为认为 是适用于所有各类专业领类专业领 域的一种质质 量保证证模式。对对于软软件组织组织 来说说,尽管加上了ISO9000-3 ,其全称为为“质质量管理和质质量标标准”的第三部分,作为为在软软 件开发发、供应应和维护维护 中的实实施指南。但是,ISO9001似乎 仍然不够贴够贴 切,留给审给审 核员员做解释释的回旋余地相当大。于 是就软软件能力评评定而言,按ISO9001进进行认证时认证时 ,不确定 性很大。 能力成熟度模型CMM 因此,这这将导导致同是通过过了ISO9001认证认证 的软软件组织组织 ,它们们的软软件能力可能会有很大的差别别。CMM是专门针专门针 对软对软 件行业设计业设计 的一种描述软软件过过程能力的模型,考虑虑到 按ISO9001对软对软 件组织进组织进 行认证审认证审 核时时存在的较较大不确定 性,在设计设计 CMM时时,注意到了尽量缩缩小审审核员员解释释的回 旋余地。因此,不仅对仅对 每个关键过键过 程方面给给出了明确的目 标标和体现这现这 些目标标的各个关键惯键惯 例,而且对对各个关键惯键惯 例 都给给出了明确的定义义和详细详细 的说说明,所以按CMM进进行评评 估时时能有较较大的一致性和可靠性。 能力成熟度模型CMM CMM的另一个重要价值值在于它把众多的Common Sense整合成完整的知识识体系,CMM中贯贯穿着抓主要矛盾 的哲学思想,它的分级级思想与ISO9000有很大的区别别,其 实质实质 就是承认资认资 源总总是相对对不足的,问题问题 不可能一下子全 部解决,要分几步(等级级)走,每一步要抓一些关键键的因 素。CMM强调调的是持续续的过过程改进进通过评过评 估,可以 给给出一幅描述企业实际综业实际综 合软软件过过程能力的“成熟轮轮廓”; 而ISO9001涉及的是质质量体系的最低可接受标标准,其审审核 结结果只有两个:达到(包括“整改”后达到)就“通过过”,没有 达到就“不通过过”。 能力成熟度模型CMM CMM和ISO9001这这两者的最大相似之处处就是它们们都起 到了过过程要描述和改进进按规规程的作用。ISO9001的基本要 求是在整个质质量控制活动动中每个重要过过程都应该应该 文档化并 且每个交付件都需要接受质质量检查检查 ,要求编编制出指导书导书 或 指南之类类的文件,用以说说明应该应该 做什么或应该应该 如何做。在 CMM中,同样样强调过调过 程和惯惯例要“文档化”。CMM强调调要 求记录记录 信息以便供该过该过 程以后使用或供改善该过该过 程用,这这 相当于ISO9001中的质质量记录记录 证证明所要求的质质量是 否达到和质质量体系能否有效运行。在CMM中,虽虽然有的问问 题谈题谈 的还还不够够充分,但大体上包容了ISO9001,而 ISO9001却不能包容CMM。 能力成熟度模型CMM 在实施过程中,对于一个软件组织,软件过程改进应该 以CMM为基础(也可以再补充一些ISO9001的内容),瞄 准CMM的要求进行软件过程改进将有助于促进本组织通过 ISO9001认证审核。就软件过程改进而言,CMM给出的指 南更详细并且视野更宽阔,因此,对于软件过程改进, CMM应该是较好的选择。 能力成熟度模型CMM 10.4.4 应应用CMM CMM的用途主要有两个:软软件开发组织发组织 用它来改进进开发发 和维护软维护软 件的过过程;政府或商业业企业业用它来评评价与一个特 定的软软件公司签订软签订软 件项项目合同的风险风险 。 1.软软件过过程评评估和软软件能力评评价 软软件能力成熟度模型CMM建立了一套准则则,用于描述 成熟软软件组织组织 的特性。这这些准则则可以由软软件组织组织 用于改进进 它们们的开发发和维护软维护软 件的过过程,也可以由政府或商业组织业组织 用来评评价与某公司签订软签订软 件项项目合同时时所涉及到的风险风险 。 能力成熟度模型CMM 根据SEI在1993年2月发布的 软件能力成熟度模型1.1版本技术报告中的归纳,CMM的 使用方式大体可分为三种: (1)软件过程改进(SPI Software Process Improvement)。利用CMM来指导软件开发组织进行软件 过程的持续改进。 (2)软件过程评价(SPA Software Process Assessment)。利用CMM来评价一个组织的软件过程状 态,发现与软件过程直接相关的问题,以获取上层对软件过 程改进工作的支持。 (3)软件能力评估(SCE Software Capability Evaluation)。用于判断承包商的软件开发能力或监督软 件承包商的软件开发活动。 能力成熟度模型CMM 从软件工程的角度讲,CMM对软件项目的质量起着保 障的作用。因此,对软件开发组织而言,在软件开发的过程 中利用CMM进行软件过程改进或软件工程评价是CMM应用 的主要方式。因此,如何将其应用于软件的开发,帮助企业 在激烈的市场竞争中获得优势是CMM在软件企业中应用的 关键所在。 为了在应用中取得预期的效果,在实践中要注意贯彻 CMM研制时确定的以下目标: (1)以实践为基础; (2)反映最好的实践经验; (3)反映那些从事软件过程改进、软件过程评价和软件 能力评估的人员的需要; (4)形成书面文件供大众使用。 能力成熟度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纪检监察组财务知识培训课件
- 谐振腔原理应用课件
- 2025定制环保建筑材料供应合同
- 2025版水利工程施工劳务分包合同范本
- 2025版云计算解决方案投资买卖合同书
- 2025年草料加工与销售企业合作合同
- 2025年二手车居间业务佣金分配合同
- 2025别墅区物业设施设备更新改造合同
- 2025年度柴油质量检测与认证居间服务协议
- 2025版生猪养殖基地与屠宰企业产销合作协议书
- 4.《花之歌》教学设计-2024-2025学年统编版语文六年级上册
- 诉讼业务培训课件
- 12345热线培训课件
- 危险废弃物管理培训试题(附答案)
- 2025国投生物制造创新研究院有限公司招聘(31人)考试备考试题及答案解析
- 多彩的超轻泥教学课件
- 新学期,新征程+课件-2025-2026学年高二上学期开学第一课主题班会
- 赛事租赁用品租赁模式分析报告
- 学校防坠楼安全知识培训课件
- 护士长领导力提升与团队管理技巧
- 产前筛查答案及试题(附答案)
评论
0/150
提交评论