王立福教授讲解软件工程:从概论到CMM

5星 · 超过95%的资源 需积分: 32 31 下载量 196 浏览量 更新于2024-07-28 收藏 3.86MB PPT 举报
“北大王立福教授的2012年软件工程研修班课件,包含843页PPT,涵盖了软件工程的基础知识,包括软件过程、需求分析、开发方法学以及CMM等内容,旨在深入理解软件开发的本质和实践。” 在软件工程中,王立福教授首先探讨了软件开发的本质。他强调软件开发不仅仅是编程,而是通过计算机科学理论、技术和工程管理原则,按照预定的时间和预算来创建满足用户需求的软件产品。这一过程涉及到多个抽象层次的映射,包括问题空间、需求、设计、实现和部署。软件模型成为连接问题域与不同计算逻辑的关键,不同的抽象层对应不同的概念模型和计算模型。 软件过程是软件开发中的核心环节,它包含了从需求分析、设计、实现、集成到部署和维护等一系列活动。每个阶段都有其特定的任务和产出,比如需求阶段需要清晰地定义用户需求并形成需求规格书;设计阶段则需要将需求转化为设计方案;实现阶段将设计方案转化为可执行的代码;集成和部署确保软件在实际环境中正常运行;维护阶段则是对软件进行持续改进和修复。 软件需求及系统产品规约是软件开发的起点,它们提供了测试和确认软件是否符合预期的标准。需求分析不仅要明确功能性的需求,还要考虑非功能性需求,如可用性、经济性和工程目标。有效的需求规约可以降低后期的修改成本,提高软件质量。 在软件开发方法学部分,教授提到了结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法等多种方法,每种方法都有其适用的场景和优势。例如,结构化方法适合于大型系统的开发,强调模块化的思想;面向对象方法则注重对象的封装、继承和多态性,适用于复杂系统的建模。 最后,CMM(Capability Maturity Model for software)是用于评估和改进软件开发过程成熟度的框架。它提供了一套逐步改进的过程,帮助组织提升软件开发过程的效率和质量,以确保能够持续交付正确的软件产品。 总结来说,这门课程全面覆盖了软件工程的核心概念和实践,不仅探讨了软件开发的本质,还提供了实际操作的方法和工具,对于理解和提升软件工程的专业技能有着重要的指导意义。