软件工程基础:王立福教授讲解开发本质与方法

需积分: 31 73 下载量 112 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"北大王立福的《软件工程》自考课件,涵盖了软件开发的基础、过程、需求、开发方法学以及CMM等核心内容,强调了软件开发的本质是问题域到不同抽象层的映射,并介绍了结构化、面向对象等开发方法。" 在王立福教授的《软件工程》课程中,他深入探讨了软件开发的关键方面,旨在让学生理解并掌握有效的软件开发和测评方法。课程内容包括: 1. **概论** - 这一部分主要讨论软件开发的本质和基本手段。软件开发不仅仅是编写代码,更是对问题域的理解和抽象,通过各种方法将问题转化为可执行的解决方案。 2. **软件过程** - 强调了软件开发过程中涉及的各种活动及其组织方式,包括软件生存周期模型的建立和活动的顺序安排。 3. **软件需求及系统/产品(需求)规约** - 需求是软件开发的起点,它们定义了产品的功能和非功能特性,同时也是产品验证和测试的依据。 4. **软件开发方法学** - 探讨了不同的开发方法,如结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法等,这些方法提供了实现开发过程的路径。 5. **CMM(Capability Maturity Model for software)** - CMM是评估和改进软件开发过程能力的框架,确保能产出高质量的产品。 课程还特别提到了几种UML(统一建模语言)图表,如对象图、构件图、包图、部署图、组合结构图以及USE CASE图、活动图、通讯图、交互概观图和定序图。这些图表在软件设计中起到关键作用,帮助开发者可视化系统结构、行为和交互。 软件开发的本质在于将问题域的概念和逻辑映射到解决方案的不同抽象层。数据抽象和过程抽象是两个核心抽象过程,分别对应于形成计算的客体和构造可执行的计算逻辑。需求分析是这些映射的基础,而结构化方法和面向对象方法则是常见的实现手段。 举例来说,面向对象方法在需求分析阶段将问题空间中的概念映射为模型化的对象,而结构化方法则用于将处理逻辑转化为可构造的计算逻辑。此外,交互图如计算学生成绩的示例,展示了需求分析和设计阶段如何使用面向对象方法来理解和表达系统的行为。 王立福教授的《软件工程》课件提供了一个全面的框架,帮助学习者理解软件开发的各个方面,从理论到实践,从需求获取到过程改进,全方位地培养软件工程师的能力。