1594385187594Page1of85内部资料注意保密CMM等级2的关键过程域组织机构和角色虽然CMM力图不依赖任何特定的组织机构和模型,但是在阐述CMM的实践时必须一致地使用与某种组织机构和角色有关的术语,而它们可能不同于任何具体组织所用的组织机构和角色。以下几节描述在解释CMM关键实践时所必需的与组织、项目及角色有关的各种概念。2.1需求管理需求管理的目的是在顾客和将处理顾客需求的软件项目之间建立对顾客需求的共同理解。需求管理包括和顾客一起建立和维护有关软件项目需求的协议,该协议称作“分配给软件的系统需求”。“顾客”可解释为系统工程组、销售组、另一个内部组织、或者一个外部顾客。协议既包括技术需求、又包括非技术需求(例如交付日期)。该协议形成估计、策划和跟踪整个软件生存周期内软件项目活动的基础。将系统需求分配给软件、硬件和其它系统成分的工作可能由软件工程组之外的组(例如系统工种组)完成,软件工种组可能对此分配无直接控制,在项目约束范围内,软件工程组采取恰当步骤以保证对分配给软件的需求建档、并加以控制,该组负责处理分配给软件的系统需求。为实现此控制,软件工种组评审初始的和经修改的分配给软件的系统需求,以便在它们被纳入软件项目之前使问题得以解决。每当改变分配给软件的系统需求时,都要调整受到影响的软件计划,工作产品和活动,使其与更新后的需求保持一致。目标目标1分配给软件的系统需求是受控的,建立供软件工程和管理使用的基线。目标2软件计划、产品和活动与分配给软件的系统需求保持一致。执行约定约定1项目遵循一书面的、组织上的方针去管理分配给软件的系统需求。在这些实践中,分配给软件的系统需求称为“分配需求”(allocatedrequirements)。分配需求是系统需求的子集,它将用系统的软件成分来实现。分配需求是软件开发计划的主要输入。软件需求分析详细描述和提炼分配需求,并生成文档化的软件需求。该方针一般规定:1.对分配需求建立文档。2.由下列人员评审分配需求:——软件经理,和——其它受到影响的组。受到影响的组的例子有:——系统测试组,——软件工程组(包括所有小组,例如软件设计小组),——系统工程组,——软件质量保证组,——软件配置管理组,和——文档支持组。1594385187594Page2of85内部资料注意保密3.更改软件计划工作产品和活动,以便和分配需求的改变保持一致。执行能力能力1对每个项目,建立分析系统需求并将其分配到硬件、软件和其它系统成分的职责。分析和分配系统需求不是软件工程组的职责,而是他们工作的先决条件。该职责包括:1.在项目整个生存期内,管理系统需求和它们的分配,并对其建立文档。2.实现对系统需求及其分配的更改。能力2对分配需求建立文档。分配需求包括:1.影响和确定软件项目活动的非技术性需求(即:协议、条件、和(或)合同条款)。协议、条件和合同条款的例子包括:——要交付的产品,——交付日期,和——里程碑。2.对软件的技术需求。技术需求的例子有:——最终用户、操作员、支持、或集成功能;——性能要求:——设计约束;——编程语言;和——界面需求。3.用于确认软件产品满足分配需求的验收准则。能力3提供足够的用以管理分配需求的资源和投资。1.指派在应用领域和软件工程方面有验和技能的个人去管理分配需求。2.使得支持管理需求活动的工具是可用的。支持工具的例子有:——电子表格程序,——配置管理工具,和——跟踪工具,——测试管理工具。能力4软件工程组和其它软件一有关组的成员受到培训以便完成他们的需求管理活动。培训的例子包括:项目所使用的方法、标准、规程应用领域。执行的活动活动1在分配需求被纳入软件项目之前,软件工程组评审它们。1.鉴别出不完整的和遗漏的分配需求。1594385187594Page3of85内部资料注意保密2.评审分配需求,确定它们是否:——用软件来实现是可行的和恰当的,——被清晰和正确地阐述,——是相互一致的,和——是可测试的。3.负责分析和分配系统需求的组评审任何被识别出是有潜在问题的分配需求,并作出必要的更改。4.和受到影响的组协商由分配需求引起的约定。受到影响的组的例子包括:——软件工程组(包括所有的小组,例如软件设计小组),——软件估计组,——系统工程组,——软件质量保证组,——软件配置管理组,——合同管理组,和——文档支持组。参考软件项目策划关键过程区域的活动6,以便找到包括协商约定的实践。活动2软件工程组采用分配需求作为软件计划、工作产品和活动的基础。分配需求:1.被进行管理和控制。“进行管理和控制”意味着在给约定时间(过去或现在)使用的工作产品的版本是已知的(即版本控制),而且以受控的方式引进更改(即更改控制)。如果希望有比“进行管理和控制”所蕴含的更加正规的手续,则工作产品可置于配置管理的完备的纪律之下,正如在软件配置管理关键过程区域中所描述的。2.是软件开发计划的基础。3.是制定软件需求的基础。活动3评审对分配需求的更改,将其纳入软件项目。1.评估它对现有约定的影响,合适时协商更改。——对组织外部的个人和组所作约定的更改由高级管理者参与评审。参考软件项目策划关键过程区域活动4和软件项目跟踪和监督关键过程区域活动3以便找到包括对组织外部所作约定的实践。——和受到影响的组协商组织内部约定的更改。参考软件项目跟踪和监督关键过程区域的活动5,6、7和8,以便找到包括对约定的更改进行协商的实践。2.对由于分配需求的更改造成的对软件计划、工作产品和活动必须作的更改要加以:——识别,——评价,——风险评估,——文档化,——规划,——传达到受到影响的组个人,和——跟踪直到结束。测量和分析测量1进行测量并将测量结果用以确定对分配需求的管理活动状态测量的例子包括:——每个分配需求的状态;——关于分配需求的更改活动;和——对分配需求更改的累积数,包括所建议的、未解决的、已批准的和已并入系统基线的总数。验证实施1594385187594Page4of85内部资料注意保密验证1高级管理者参与定期评审那些管理分配需求的活动。高级管理者定期评审的主要目的是保证在合适的抽象层次上并以及时的方式了解和洞察软件过程。评审间隔应该满足组织的需要,只要存在获得例外情况报告的合适机制,间隔可以长。参考软件项目跟踪和监督关键过程区域的验证1,以便找到包括高级管理者监督评审的典型内容的实践。验证2项目经理既定期地又事件一驱动地参与评审那些管理分配需求的活动。参考软件项目跟踪和监督关键过程区域的验证2以便找到扬项目管理者监督评审的典型的实践。软件质量保证组评审和(或)审计管理分配需求的活动和工作产品,并报告其结果。参考软件质量保证关键过程区域。至少,这些评审和(或)审计要验证:1.分配需求是已评审的,且在软件工程组承担它们之前,问题已经解决。2.当分配需求更改进,软件计划、工作产品和活动已经合适地修改。3.由分配需求的更改导致的对约定的更改已与受影响的组织协商过。验证3软件质量保证组评审和(或)审计管理分配需求的活动和工作产品,并报告其结果。参考软件质量保证关键过程区域。至少,这些评审和(或)审计要验证:1.分配需求是已评审的,且在软件工程组承担它们之前,问题已经解决。2.当分配需求更改进,软件计划、工作产品和活动已经合适地修改。3.由分配需求的更改导致的对约定的更改已与受影响的组织协商过。2.2软件项目策划软件项目策划的目的是为完成软件工程和管理软件项目制定合理的计划。软件项目策划包含估计待完成的工作,建立必要的缩写和确定进行该工作的计划。软件策划首先作出有关待完成的工作和其它定义及界定软件项目的约束和目标(由需求管理关键过程区域的实践所建立的)的陈述。软件策划过程包括以下步骤:估计软件工作产品规模及所需的资源,制定时间表,鉴别和评估软件风险和协商约定。为了制定软件计划(即计划开发计划),可能需要重复地通过这些步骤。该计划提供完成和管理软件项目活动的基础,并按照软件项目的资源、约束和能力,阐述对软件项目的顾客作的约定。目标目标1对供策划和跟踪软件项目用的软件估计已建立文档。目标2软件项目的活动和约定是有计划的并已建立文档。目标3受影响的组和个人同意他们的关于软件项目的约定。执行约定约定11594385187594Page5of85内部资料注意保密指定项目软件经理负责协商约定和制定项目软件开发计划。约定2项目遵循书面的组织的用于策划软件项目的方针。该方针一般规定:1.将分配给软件的需求用作为策划软件项目的基础。参考需求管理关键过程区域的活动2。2.在下列人员之间协商软件项目的约定:——项目经理,——项目软件经理,和——其它的软件经理。3.和其它的工程组协商他们介入该软件活动的事宜,并记入文档。其它工程组的例子包括:——系统工程组,——硬件工程组,和——系统测试组。4.影响的组评审项目的:——软件规模估计,——工作量和成本估计,——进度,和——其它约定。受影响的组的例子有:——软件工程组(包括的所有的小组,例如软件设计小组),——软件估计组,——系统工程组,——系统测试组,——软件质量保证组,——软件配置管理组,——合同管理组,和——文档支持组。5.高级管理者评审所有的对组织外部的个人和组所作的软件项目约定。6.对项目的软件开发计划进行管理和控制。在所有这些实践中术语“软件开发计划”习惯上指的是管理软件项目的全面的计划。采用“开发”术语并有不是有意排除软件维护项目或软件支持项目,应在每个项目的上下文中恰当的解释该术语。“进行管理和控制”意味着在给定时间(过去或现在)使用的工作产品的版本是已知的(即版本控制),而且以受控的方式引进更进(即更改控制)。如果希望有比“进行管理和控制”所蕴含的更高程度的控制,则工作产品可置于配置管理的完备的纪律之下,正如在软件配置管理关键过程区域中所描述的。执行能力能力1对软件项目存在文档化的经批准的工作陈述。1.工作陈述包括:——工作的范围,——技术目标和对象,——对顾客和最终用户的识别,这些实践中所12.512指的最终用户是顾客指定的最终用户或最终用户的代表。——要求实施的标准,——安排的职责,——成本和进度的约束及目标,——软件项目和其它组织间的依赖关系。其它组织的例子有:——顾客,——子承包商,和——合资伙伴,□资源限制和目标,和1594385187594Page6of85内部资料注意保密□对开发和(或)维护的其它和约束和目标,2.工作陈述由下列人员评审:□项目经理,□项目软件经理,□其它软件经理,和□其它受影响的组,3.对工作陈述进行管理和控制。能力2安排制定软件开发计划的职责。1.项目软件经理,直接工作或通过委托代表,协调项目的软件策划。2.以可追踪,可说明的方式分解对软件产品和活动的职责,并将其安排给软件经理。软件工作产品的例子包括:——适当时,交付给予外部雇客或最终用户的工作产品。——供其它工程组使用的工作产品;和——供软件工程组内部命名用的主要工作产品。能力3为策划软件项目提供足够的资源和投资。1.在可能处,可以例用对正在策划的软件项目的应用领域有专门知识的有经验的个人来制定软件开发计划。2.使得支持软件项目策划的工具合用。支持工具的例子有:——电子表格程序,——估计模型,和——项目策划和调度程序,能力4介入软件策划的软件经理,软件工程师和其它个人,在适用于其职责范围的软件估计和策划规程方面受到培训。执行的活动活动1软件工程组参加项目建议群组,1.软件工程组与下列各方面工作有关:□建议的准备的提交,□说明的讨论和提交,和□对影响软件项目的约定作更改而进行的协商。2.软件工程组评审所建议的项目的约定,项目约定的例子包括:——项目的技术目标和对象;——系统和软件的技术解,——软件预算、进度和资源;和——软件标准和规程。活动2在整个项目策划的早期阶段起动软件项目策划,此两项策划平行进行。活动31594385187594Page7of85内部资料注意保密1.在项目的整个生存期内,软件工程组和其受影响的组一起参加整个项目的策划。2.软件工程组评审项目层的计划。活动4高级管理者参加按照已文档化