CMM软件能力成熟度模型解析-王立福软件工程

需积分: 23 15 下载量 121 浏览量 更新于2024-08-15 收藏 3.53MB PPT 举报
"王立福2011年的软件工程自考资料,主要涵盖了软件工程的基础、软件过程、软件需求、开发方法学以及CMM(软件能力成熟度模型)等内容。" 在软件工程中,CMM(软件能力成熟度模型)是一个重要的理论框架,用于评估和改进软件开发过程的成熟度。CMM由五个不同的成熟度等级构成: 1. **初始级**:这是最基础的级别,软件过程通常是无序的,依赖于个人的努力和直觉。在这个阶段,项目的成功很大程度上取决于个体的能力。 2. **可重复级**:在这个级别,基本的项目管理实践已经建立,可以重复以前的成功。项目结果的可预测性增强。 3. **已定义级**:在此阶段,软件过程被形式化并文档化,整个组织内有一套标准的过程来指导开发。这使得项目可以在整个组织内一致地执行。 4. **已管理级**:软件过程和产品的质量得到了系统的度量和控制,对过程的改变可以被有效管理,以保持质量和性能的稳定性。 5. **持续优化级**:最高级别,组织能够持续地改进其过程,基于量化反馈和创新,实现过程效率和产品质量的持续提升。 CMM强调通过过程改善逐步达到更高的成熟度级别,每个级别都建立在前一级的基础之上,不能跳跃式发展。这一框架的基础是各级别的内部结构,包括关键过程域(KPA)的实现,这些KPA是提升过程能力的关键要素。 软件开发的本质是将问题域(问题空间)中的概念和逻辑映射到解域(计算空间)中的模型和逻辑。这涉及到数据抽象和过程抽象的过程,例如通过需求分析、面向对象方法或结构化方法来形成计算逻辑和客体。同时,软件生存周期过程包括了从需求分析、设计、编码、测试到维护等一系列活动,这些活动需要有序组织和管理。 软件工程的基础包括理解软件开发的本质,掌握软件生存周期中的各个阶段,以及选择合适的开发方法,如结构化方法、面向对象方法等。此外,软件需求和系统/产品需求规约是开发的起点,它们是产品确认和测试的标准。开发方法学则提供了如何进行开发活动的指导,如面向数据结构的方法、维也纳开发方法等。 支持/管理技术与方法,如软件工具、版本控制、项目管理工具等,对于软件工程的实践至关重要,它们提供了一个有效的平台,帮助团队实现软件开发过程的规范化和高效化。CMM为软件组织提供了一条从无序到有序、从不可预测到可预测的发展路径,是提高软件开发能力和质量的有效工具。