软件工程方法学与CMM:王立福教授2012研修班

需积分: 32 23 下载量 48 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"北大王立福教授的软件工程2012研修班课件" 在软件工程领域,王立福教授的课程深入探讨了软件开发的各个方面,旨在帮助学员理解软件开发的本质、过程和方法。以下是根据标题、描述和部分内容提炼的关键知识点: 一、软件工程基础 软件工程是应用计算机科学、工程管理原则和技术来实现符合用户需求的软件产品的学科。它关注工程目标,如功能、可用性和经济性,并通过一系列有序的工程技术活动来达成。 二、软件开发过程 1. **需求分析**:软件开发始于需求分析,明确目标陈述,包括特定需求,这是软件开发的启始点和测试的标尺。 2. **设计阶段**:在需求明确后,进行设计选择适合的工具,构建系统原型,强调关键技术和风险。 3. **原型实现**:开发人员依据设计建造原型,使之对客户可见或体现技术风险。 4. **评估与反馈**:通过客户试用或其他评估方法,对原型进行检验,收集反馈以进行改进。 三、软件开发方法学 1. **结构化方法**:早期主流的开发方法,强调自顶向下、逐步求精的设计。 2. **面向对象方法**:以对象为中心,强调封装、继承和多态,如Java和C++。 3. **面向数据结构方法**:以数据结构为基础,如数据库管理系统的设计。 4. **维也纳开发方法(VDM)**:一种形式化的软件开发方法,用于规格说明和验证。 四、软件生存周期模型 软件生存周期模型描述了软件从诞生到消亡的过程,包括需求分析、设计、实现、集成、部署和维护等阶段。不同的模型如瀑布模型、迭代模型、敏捷开发等提供了不同的开发路径。 五、CMM(Capability Maturity Model for software) CMM是一种评估和改进软件开发过程成熟度的框架,旨在确保开发过程的质量和效率,达到预期的产品或系统。 六、软件开发的本质 软件开发的本质是将问题域的概念和处理逻辑映射到不同抽象层,包括问题空间、需求、设计、实现和部署。这种映射涉及概念模型、设计模型、实现模型和部署模型的转换,以适应不同的计算逻辑和运行平台。 软件工程是一个综合性的学科,涵盖了理论、技术、管理和工程实践。正确理解和应用这些原理,对于高效、成功地开发软件至关重要。