软件工程基础:王立福DFD分析与软件开发探讨

需积分: 37 19 下载量 33 浏览量 更新于2024-08-15 收藏 3.61MB PPT 举报
"这篇资料是王立福教授关于2011版自考软件工程的课件,重点讲解了软件工程的基础知识,包括软件开发的本质、软件过程、需求及系统规约、软件开发方法学以及CMM(软件成熟度模型)。课件中提到通过‘打碎’和‘分派’来构建0层DFD,用于描述图书管理系统的各个处理事务,如借还书、咨询,以及涉及到的各种文件和信息。同时,提到了数据库设计的问题。" 在软件工程中,"打碎"和"分派"是数据流图(DFD)创建过程中的两个关键步骤,用于将复杂的系统分解为更小、更易管理的部分。0层DFD通常表示系统的最高抽象级别,描述了系统的主要功能和数据流。在这个例子中,0层DFD包括处理借还书事务、处理咨询事务,以及涉及的多个文件,如目录文件、借书文件、读者文件、罚款单等,这些都是图书管理系统的核心组成部分。同时,保持输入与输出的一致性是DFD设计的重要原则,确保系统功能的正确性和完整性。 软件工程的基础在于理解软件开发的本质和手段。软件开发的本质是将问题域(即实际问题)映射到不同的抽象层,包括数据抽象和过程抽象。数据抽象是指将问题空间的概念转化为模型化概念,如将"张山"映射为对象,而过程抽象则涉及将问题空间的处理逻辑转化为解空间的处理逻辑,如计算学生成绩的过程。这两个抽象过程在需求分析阶段尤为重要,常用的方法有面向对象方法和结构化方法。 软件过程涵盖了软件开发的所有活动及其组织,从需求获取、系统分析、设计、编码、测试到维护,每个阶段都有其特定的任务和交付物。软件需求及系统/产品(需求)规约是软件开发的起点,它们定义了软件应具备的功能、性能和其他非功能需求,也是后续测试和验证的标准。 软件开发方法学如结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法等,提供了实现开发过程的不同途径。CMM(软件成熟度模型)则关注如何提升开发过程的能力,确保能够持续产出高质量的软件产品。 课件中还提到了软件生存周期过程,包括软件工程过程的支持和管理技术,这些都构成了软件工程的基本知识结构。正确理解和运用这些知识是成功开展软件开发的关键。