软件工程与CMM:王立福教授讲解软件开发过程

需积分: 32 23 下载量 15 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"缺陷能有效预防即-北大王立福教授 软件工程2012研修班课件" 在软件工程中,缺陷预防是一项至关重要的实践。缺陷能有效预防意味着软件项目团队能够深入分析缺陷产生的原因,对软件过程进行详尽的评估,以防止相同类型的缺陷再次出现。这通常涉及到对错误发生模式的识别,通过改进流程、增加检查机制和培训团队成员来避免重复犯错。同时,团队还需要分享他们的经验教训,确保其他项目组也能从中学习,提高整体的质量控制水平。 软件工程是一个多层面的学科,它关注软件开发的全过程,包括从需求获取到软件维护的各个阶段。北京大学软件工程国家工程研究中心的王立福教授在2011年的课程中强调了软件过程的重要性,这是开发过程中一系列相互关联的活动,如需求分析、设计、编码、测试和维护。这些活动的有序组织有助于确保软件项目的成功。 软件需求和系统/产品需求规约是软件开发的起点,它们定义了软件必须满足的功能和非功能特性,为后续的开发和测试提供了基准。需求不仅是产品或系统确认的依据,也是评估软件是否符合预期的关键标准。 软件开发方法学探讨了不同的开发策略,例如结构化方法、面向对象方法、面向数据结构的方法和维也纳开发方法(VDM)。这些方法学提供了实现开发过程的不同途径,帮助团队选择最适合他们项目的方法。 CMM(Capability Maturity Model for software)是评估和改进软件开发过程能力的一种框架。它强调通过渐进式改进和技术创新来提升组织的软件过程能力,确保能持续产出高质量的产品。CMM的实施涵盖了从初始级到优化级的过程成熟度,每个级别都代表了组织在过程管理和效率上的提升。 软件开发的本质是将问题域的概念和处理逻辑映射到软件的不同抽象层,如需求、设计、实现和部署。这个过程涉及创建一系列的模型,从概念模型到设计模型,再到实现模型和部署模型,目的是在不同的抽象层次上理解和解决问题。软件模型反映了从客观事物系统到运行平台的映射,考虑了操作系统的差异、编程语言的选择以及中间件和应用框架的使用,以适应各种计算环境。 总而言之,软件工程是综合运用计算机科学、工程管理原则和方法,按照预定义的时间和预算来创建满足用户需求的软件产品。它要求采用合适的开发范式,应用适当的方法,提供必要的工程支持,并实施有效的工程管理,以确保软件产品的功能性、可用性、经济性和质量。