软件工程基础:王立福谈数据流图分类与软件开发本质

需积分: 23 15 下载量 31 浏览量 更新于2024-08-15 收藏 3.53MB PPT 举报
"数据流图分类-2011 王立福 软件工程自考" 本文主要探讨了软件工程中的核心概念和方法,由北京大学软件工程国家工程研究中心的王立福在2009年4月提出。文章着重强调了理解软件开发的本质和基本手段的重要性,并详细阐述了软件开发过程的各个方面。 一、软件开发的本质 软件开发的本质在于将问题域转化为不同抽象层的概念和计算逻辑映射。这个过程包括数据抽象和过程抽象。例如,将现实世界中的对象如“张山”映射为模型化的概念,通过需求分析使用面向对象方法来实现。另一方面,问题空间的处理逻辑被转换为解空间的处理逻辑,这通常涉及到结构化方法,基于过程抽象的原则,以构建可执行的计算逻辑。 二、软件过程 软件过程涵盖了软件开发的所有活动及其组织。它不仅包括需求获取、系统/产品需求规约,还涉及软件开发方法学的选择和实施,以及软件开发成熟度模型(如CMM)的应用,以确保过程能力和产品质量。 三、软件需求及系统/产品需求规约 软件开发的起点是明确的需求,它们定义了产品的功能和性能要求。需求规约是测试和验证产品的基准,确保产品满足预期的目标。 四、软件开发方法学 软件开发方法学是指导开发活动的框架。文中提到了结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法等。每种方法学都有其特定的实现路径,如结构化方法用于过程抽象,而面向对象方法则侧重于数据抽象。 五、CMM(Capability Maturity Model for software) CMM是一种评估和改进软件开发过程成熟度的模型,旨在提高软件质量、效率和可靠性。通过遵循CMM,可以确保开发出正确的产品或系统。 六、数据流图分类 数据流图是软件工程中常用的一种分析工具,分为变换型和事务型。变换型数据流图通常表示输入数据经过一系列处理后变为输出数据的过程,而事务型数据流图则关注于处理一系列独立的事务。 总结来说,软件工程是将现实世界的问题转化为计算机可处理的形式,涉及多层面的抽象和逻辑映射。理解并掌握软件工程的基础知识和方法,对于有效进行软件开发和测评至关重要。通过深入学习和实践,开发者能够更好地理解和应用这些理论,提高软件项目的成功率。