软件工程:概念、过程与方法学

需积分: 31 73 下载量 141 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"北大王立福《软件工程》自考课件中的框图和PAD图在软件工程中的应用" 在软件工程中,有效的软件开发和评估不仅需要理解具体的操作,还需要深入理解其背后的原理。北京大学软件工程国家工程研究中心的王立福教授在2009年的课程中阐述了这一观点,强调了对软件开发本质和基本手段的认识。软件工程涵盖了从需求获取到系统验证的全过程,并通过不同的方法学和过程模型来支撑。 在课程的一、概论部分,王立福教授探讨了软件开发的本质,即从问题域到不同抽象层之间概念和计算逻辑的映射。这个映射过程涉及到需求分析,以及数据抽象和过程抽象。例如,数据抽象是将问题空间的概念转化为模型化概念,如将人物张山映射为对象;而过程抽象则是将问题空间的处理逻辑转化为可构造的计算逻辑,如计算学生的平均成绩。 框图作为一种软件设计的第二种表达方式,被用于逐步求精的设计过程中。它通过简单的图形表示,如s1、s2等,来描述系统的各个部分和它们之间的关系。这种表达方式有助于简化复杂性,使设计更加清晰易懂。 第三种表达,PAD图(Problem Analysis Diagram),是软件设计中另一种重要的工具。PAD图以树状结构展示程序的逻辑流程,它支持递归和并发,使得复杂程序结构的展现更为直观。 软件过程的讨论涉及到开发活动中涉及的步骤和这些活动的组织。软件需求及系统/产品需求规约是软件开发的起点,它们为产品的确认和测试提供了基准。软件开发方法学,如结构化方法、面向对象方法、面向数据结构方法等,提供了解决问题的不同路径。每种方法学都有其特定的实现途径和理论基础,如结构化方法主要基于过程抽象,面向对象方法则依赖于数据抽象。 CMM(Capability Maturity Model for software)是评估和改进软件开发过程能力的框架,确保能产出正确的系统或产品。它关注的是过程成熟度,以提升软件开发的质量和效率。 王立福教授的课程涵盖了软件工程的基础知识结构,从本质到方法学,再到过程模型和质量保障,全面地阐述了软件开发的各个环节。这些知识对于理解和实践软件工程至关重要,有助于开发者构建高质量的软件系统。