软件工程与CMM:王立福教授解析软件过程成熟度

需积分: 32 23 下载量 168 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"这篇资料是北大王立福教授在2012年软件工程研修班上的课程,主要讲解了关于软件能力成熟度模型(CMM)的总结,结合软件工程的基础知识,深入探讨了软件开发的过程、需求、方法学以及CMM在提升软件过程能力中的作用。" 在软件工程领域,CMM,即能力成熟度模型,是一个用于评估和改进软件开发过程的框架。它由五个不同的成熟度等级组成,分别是初始级、可重复级、已定义级、已管理级和持续优化级。这个模型旨在指导软件组织逐步提升其过程能力和产品质量。 1. **软件能力成熟度等级框架**: - **初始级**:过程通常是随机的,依赖于个人的努力,缺乏标准化和文档化。 - **可重复级**:建立了基本的项目管理过程,能够重复以前的成功。 - **已定义级**:所有主要的软件过程都已被文档化、标准化,并在整个组织中被理解并遵循。 - **已管理级**:使用定量方法来管理过程和产品质量,实现对过程性能的预测和控制。 - **持续优化级**:组织持续改进其过程,基于数据做出决策,以实现更高的效率和质量。 2. **CMM的核心思想**: - 过程改善是逐级递进的,不能跳跃。要达到更高的成熟度级别,必须先完成低级别的所有关键过程域(Key Process Areas, KPA)的目标。 - 等级的内部结构提供了过程演化的路径,每个级别建立在前一级的基础之上,确保过程的系统性和稳定性。 3. **软件工程的其他方面**: - **软件过程**:涵盖了软件开发的各个阶段,包括需求分析、设计、实现、集成、测试和维护。 - **软件需求与系统/产品需求规约**:是软件开发的起点,也是测试和验证的标准。 - **软件开发方法学**:包括结构化方法、面向对象方法、面向数据结构方法等多种方法,用于指导实际的开发活动。 - **软件开发的本质**:软件开发是将问题域的概念和处理逻辑映射到不同抽象层的过程,如需求、设计、实现和部署。 4. **软件工程的目标**: - 实现功能性、可用性、合算性的平衡,通过工程原则、技术活动和管理方法,按预算和时间表交付满足用户需求的软件产品。 通过理解和应用CMM,软件组织可以系统地提升其过程能力,减少错误,提高生产力,最终交付更高质量的软件产品。王立福教授的讲解深入浅出,有助于理解软件开发的本质和工程实践。