清华软件工程课件第05章_结构化分析与设计
- 格式:ppt
- 大小:7.69 MB
- 文档页数:112
软件工程结构化分析与设计软件工程结构化分析与设计简介软件工程结构化分析与设计(Software Engineering Structured Analysis and Design)是软件工程的重要环节之一,旨在将复杂的软件系统分解为相对简单的模块,从而便于理解、开发和维护。
结构化分析结构化分析是软件工程中的一种需求分析方法,通过对用户需求进行分析,将系统功能划分为不同的模块,以及模块之间的关系和交互。
结构化分析采用基于流程图的图形化表示方法,通常使用数据流图(Data Flow Diagram,简称DFD)来描述系统的功能流程。
结构化设计结构化设计是在结构化分析的基础上,进一步定义每个模块内部的结构和功能。
它将模块细化为更小的子模块,通过设计各个模块之间的接口和通信方式,确保系统能够协调运作。
结构化设计通常使用结构图来表示系统的模块组织结构,其中最常见的就是层次图(Hierarchy Chart)和结构图(Structure Chart)。
优势与挑战结构化分析与设计的主要优势在于可以将复杂系统分解为简单的模块,使得系统的开发和维护更加容易。
结构化分析与设计还能够提高系统的可靠性和可扩展性。
,结构化分析与设计也面临一些挑战。
结构化分析与设计需要面对不断变化的需求,需要具备较好的适应性和灵活性。
结构化分析与设计也需要考虑系统的性能、安全性等方面的需求,以保证系统能够满足用户的要求。
软件工程结构化分析与设计是软件工程中重要的一环,通过将复杂的系统分解为简单的模块,并设计模块之间的关系和接口,实现系统的有效开发和维护。
结构化分析与设计能够提高系统的可靠性、可扩展性和易开发性,但也需要面对需求变化和其他挑战。
希望通过软件工程结构化分析与设计,我们可以开发出更好的软件系统,满足用户的需求。
山东轻工业学院教师授课教案课程名称:软件工程课程代码:0310040学分: 3课程类别:选修课开课单位: 信息科学与技术学院授课班级:计科07-12授课教师:赵培英山东轻工业学院教务处制第五章结构化分析与设计一、结构化分析概述1.主要思想:抽象: 从作为整体的软件系统开始, 每一抽象层次上只关注于系统的输入输出分解: 自顶向下逐层分解, 不断分解为子系统, 模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解( 算法和数据结构) 2.结构化分析过程•获得当前系统的具体模型(物理模型)•抽象出当前系统的逻辑模型•分析建立目标系统的逻辑模型•为目标系统的逻辑模型作补充3.结构化分析模型•DD:核心,包含所有数据的描述•DFD:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流•ERD:用于数据建模,描述DD中数据之间的关系•状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况二、数据流图1.Data Flow Diagram(简称DFD):•描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模。
•基本元素包括:p88图示例:图书订购系统DFD•数据流图的扩充符号:描述一个加工的多个数据流之间的关系星号(*):表示数据流之间存在“与”关系加号(+):表示数据流之间存在“或”关系异或(⊕):表示数据流之间存在“异或”(互斥)关系2.对数据流图进行分层•George Miller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在5~9件事情之内•根据自顶向下逐层分解的思想将数据流图画成层次结构•每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中3.数据流图的各个层次•顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流•顶层图中的加工经分解后的图称为0层图(只有1张)•中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图•处于最底层的图称为底层图,其中所有的加工不再分解成新的子图4.图和加工的编号•顶层图只有一个代表整个软件系统的加工,该加工不必编号。