软件工程:从DFD到MSD的转化与方法学探索

需积分: 12 1 下载量 169 浏览量 更新于2024-08-23 收藏 3.53MB PPT 举报
"王福利软件工程课件-过程指导" 在软件工程中,过程指导是非常关键的一环,它关乎到软件开发的效率和质量。本文档主要由北京大学软件工程国家工程研究中心的王福利教授讲解,旨在深入理解软件开发的本质和基本手段,并通过具体的任务分解来阐述如何将数据流图(DFD)转化为模块结构图(MSD),以及软件生命周期过程的建立和支持。 首先,软件工程的基础是有效地进行软件开发和评估,要求我们不仅要知道怎么做,还要理解为什么这么做。软件工程试图回答软件开发的核心问题,包括开发的本质、涉及的活动、需求获取、开发方法以及过程成熟度模型(如CMM)等。 一、软件开发的本质是将问题域中的概念和计算逻辑映射到不同的抽象层,这个过程中包含了数据抽象和过程抽象。数据抽象关注问题空间的概念如何转换为模型化概念,如面向对象方法中的对象创建。而过程抽象则关注问题空间的处理逻辑如何转换为解空间的计算逻辑,如结构化方法在设计过程中的应用。 二、软件过程涉及一系列有组织的活动,从需求获取到软件交付。DFD转化为MSD是总体设计的重要任务,分为两步。对于变换型数据流图和事务型数据流图,它们分别对应数据转换和事务处理的过程。变换设计关注数据的输入、处理和输出,而事务设计则关注于系统对事务的响应和处理流程。 三、软件需求和系统/产品需求规约是软件开发的起点,它们定义了产品的功能和非功能特性,是后续测试和验证的依据。 四、软件开发方法学提供了实现开发活动的路径,包括但不限于结构化方法、面向对象方法、面向数据结构的方法和维也纳开发方法等。每种方法学都有其适用场景和原则,如结构化方法适合过程导向的设计,面向对象方法强调对象的封装、继承和多态性。 五、CMM模型关注的是软件开发过程的能力和成熟度,旨在确保过程的质量和一致性,以提高最终产品的可靠性。 软件工程生存周期过程的支持包括活动的组织、顺序和管理技术,这些都构成了软件工程的基本知识结构。需求分析、设计、编码、测试和维护等活动都是在这个框架下有序进行的。 王福利教授的软件工程课件详尽地讲解了软件开发的各个环节,强调了从DFD到MSD的转化过程,以及软件开发的本质和支撑技术,对于理解和实践软件工程有着重要的指导意义。