软件工程(第2版)第5章-结构化分析与设计

上传人:清晨86****784 文档编号:213903677 上传时间:2021-11-22 格式:PPT 页数:119 大小:4.56MB
返回 下载 相关 举报
软件工程(第2版)第5章-结构化分析与设计_第1页
第1页 / 共119页
软件工程(第2版)第5章-结构化分析与设计_第2页
第2页 / 共119页
软件工程(第2版)第5章-结构化分析与设计_第3页
第3页 / 共119页
软件工程(第2版)第5章-结构化分析与设计_第4页
第4页 / 共119页
软件工程(第2版)第5章-结构化分析与设计_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《软件工程(第2版)第5章-结构化分析与设计》由会员分享,可在线阅读,更多相关《软件工程(第2版)第5章-结构化分析与设计(119页珍藏版)》请在金锄头文库上搜索。

1、软件工程软件工程第第5 5章章 结构化分析与设计结构化分析与设计复旦大学计算机科学技术学院 软件工程(第二版)结构化方法结构化方法一种面向数据流的传统软件开发方法以数据流为中心构建软件的分析模型和设计模型分为: 结构化分析(Structured Analysis 简称SA) 结构化设计(Structuresd Design 简称SD) 结构化程序设计(Structured Programmin 简称SP)2复旦大学计算机科学技术学院 软件工程(第二版)内容摘要内容摘要 结构化分析方法概述 数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射

2、 初始结构图的改进 小结3复旦大学计算机科学技术学院 软件工程(第二版)内容摘要内容摘要 结构化分析方法概述结构化分析方法概述 数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射 初始结构图的改进 小结4复旦大学计算机科学技术学院 软件工程(第二版)结构化分析方法结构化分析方法发展历史 提出:20世纪60年代末到70年代初 成熟:20世纪70年代末到80年代中期主要思想:抽象与自顶向下的逐层分解(控制复杂性的两个基本手段)5复旦大学计算机科学技术学院 软件工程(第二版)抽象与分解抽象与分解 抽象:忽略一个问题中与当前目标无关的那些方面,以

3、便更充分地关注与当前目标有关的方面 分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止 随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)2.42.32.22.121431.31.21.1X6复旦大学计算机科学技术学院 软件工程(第二版)结构化分析过程结构化分析过程 理解当前的现实环境,获得当前系统的具体模型(物理模型) 从当前系统的具体模型抽象出当前系统的逻辑模型 分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型 为目标系统的逻辑模型作补充7复旦大学计算机科学技术学院 软件工程(第二版)结构化分析模型的描述结构化分析模型的描述 数据字典是模

4、型的核心,它包含了软件使用和产生的所有数据的描述 数据流图:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流,数据流图中的数据流、文件、数据项、加工在数据字典中描述,反映加工逻辑的加工规约用“小说明”描述实体-关系图 数据流图状态转换图数据字典8复旦大学计算机科学技术学院 软件工程(第二版)结构化分析模型的描述结构化分析模型的描述 实体关系图:用于数据建模,描述数据字典中数据之间的关系,数据对象的属性用“数据对象描述”描述 状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下系统的状态迁移,控制规约用来描述软件控制方面的附加信息实体-关

5、系图 数据流图状态转换图数据字典9复旦大学计算机科学技术学院 软件工程(第二版)内容摘要内容摘要 结构化分析方法概述 数据流图数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射 初始结构图的改进 小结 数据流图定义 数据流图的画法10复旦大学计算机科学技术学院 软件工程(第二版)数据流图数据流图 Data Flow Diagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模,基本元素包括:数据流(data flow):由一组固定成分的数据组成,代表数据的流动方向加工(process):描述了输入数据

6、流到输出数据流的变换,即将输入数据流加工成输出数据流文件(file):用于保存某些数据,供以后使用源或宿(source or sink):表示存在于软件系统之外的人员或组织11复旦大学计算机科学技术学院 软件工程(第二版)源或宿源或宿 存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此也称为源点和终点 例如,对一个考务处理系统而言 考生向系统提供报名单(输入数据流),所以考生是考试系统(软件)的一个源 考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿 源或宿用相同的图形符号表示 当数据流从该符号流出时表示是源 当数据流

7、流向该符号时表示是宿 当两者皆有时表示既是源又是宿 12复旦大学计算机科学技术学院 软件工程(第二版)加工和文件加工和文件加工:描述输入数据流到输出数据流的变换 每个加工用一个定义明确的名字标识 至少有一个输入数据流和一个输出流 可以有多个输入数据流和多个输出数据流文件:保存数据信息的外部单元 每个文件用一个定义明确的名字标识 由加工进行读写 DFD中称为文件,但在具体实现时可以用文件系统实现,也可以用数据库系统实现13复旦大学计算机科学技术学院 软件工程(第二版)数据流数据流 每个数据流用由一组固定成分的数据组成并拥有一个定义明确的名字标识 如:运动会管理系统中,报名单(数据流)由队名、姓名

8、、性别、参赛项目等数据组成 数据流的流向 从一个加工流向另一个加工 从加工流向文件(写文件) 从文件流向加工(读文件) 从源流向加工 从加工流向宿14复旦大学计算机科学技术学院 软件工程(第二版)示例示例:图书订购系统:图书订购系统DFDDFD图书库存入库单图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据账单出库单15复旦大学计算机科学技术学院 软件工程(第二版)数据流图的扩充符号数据流图的扩充符号描述一个加工的多个数据流之间的关系 星号():表示数据流之间存在“与”关系 所有输入数据流同时存在时,才能进行加工处理 或者加工处理

9、的结果是同时产生所有输出数据流 加号():表示数据流之间存在“或”关系 至少存在一个输入数据流时,才能进行加工处理 或者加工处理的结果至少产生一个输出数据流 异或( ):表示数据流之间存在“异或”(互斥)关系 必须存在且仅存在一个输入数据流时,才能进行加工处理 或者加工处理的结果产生且仅产生一个输出数据流16复旦大学计算机科学技术学院 软件工程(第二版)对数据流图进行分层对数据流图进行分层 George Miller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在59件事情之内 根据自顶向下逐层分解的思想将数据流图画成层次结构 每个层

10、次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中17复旦大学计算机科学技术学院 软件工程(第二版)数据流图的各个层次数据流图的各个层次 顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流 顶层图中的加工经分解后的图称为0层图(只有1张) 中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图 处于最底层的图称为底层图,其中所有的加工不再分解成新的子图18复旦大学计算机科学技术学院 软件工程(第二版)图和加工的编号图和加工的编号 顶层图只有一个代表整个软件系统的加工,该加工不必编号。 0层图中的加工编号分别为1,2,3, 子图号:若父图中的

11、加工号x分解成某一子图,则该子图号记为“图x” 子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、x.319复旦大学计算机科学技术学院 软件工程(第二版)分层数据流图示例分层数据流图示例资格和水平考试的考务处理系统资格和水平考试的考务处理系统 简化的资格和水平考试的考务处理系统 分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试 考试的合格标准将根据每年的考试成绩由考试中心确定 考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中20复旦大学计算机科学技术学院 软件工程(第二版)资格和

12、水平考试的考务处理系统资格和水平考试的考务处理系统功能需求功能需求1对考生送来的报名单进行检查2对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站3对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者4制作考生通知单送给考生5进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表21复旦大学计算机科学技术学院 软件工程(第二版)资格和水平考试的考务处理系统资格和水平考试的考务处理系统部分数据流的组成部分数据流的组成 报名单地区序号姓名文化程度职业考试级别通信地址 正式报名单准考证号报名单 准考证地区序号姓名准考

13、证号考试级别考场 考生名单准考证号考试级别 考生名册正式报名单 统计分析表分类统计表难度分析表 考生通知单准考证号姓名通信地址考试级别考试成绩合格标志22复旦大学计算机科学技术学院 软件工程(第二版)画系统的输入输出画系统的输入输出( (顶层图顶层图) ) 确定源或宿:考生、阅卷站和考试中心 它们都既是源又是宿 顶层图唯一的加工:软件系统(考务处理系统) 确定数据流:系统的输入/输出信息 输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心) 输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心) 额外的输出流(考虑

14、系统的健壮性):不合格报名单(返回给考生),错误成绩清单(返回给阅卷站) 顶层图通常没有文件23复旦大学计算机科学技术学院 软件工程(第二版)考务处理系统顶层图考务处理系统顶层图考务处理系统考试中心考生不合格报名单阅卷站错误成绩清单成绩清单考生名单合格标准报名单准考证考生通知单统计分析表24复旦大学计算机科学技术学院 软件工程(第二版)画系统内部画系统内部(0(0层图层图)-1)-1 以下确定加工、数据流、文件、源或宿的一般方法适用于0层图及其各层子图 确定加工:确定父图中某加工分解而成的子加工 根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解 根据

15、业务处理流程确定加工:分析父图中待分解加工的业务处理流程,业务流程中的每一步都可能是一个子加工 特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工,例如:编制准考证号正式报名单合格报名单25复旦大学计算机科学技术学院 软件工程(第二版)画系统内部画系统内部(0(0层图层图)-2)-2 确定数据流 在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边界上的输入/输出数据流 分解后的子加工之间应增添相应的新数据流表示加工过程中的中间数据 如果某些中间数据需要保存以备后用,那么可以成为流向文件的数据流 同一个源或加工可以有多个数据流流向一个加

16、工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:读取银行卡信息客户银行卡数据密码26复旦大学计算机科学技术学院 软件工程(第二版)画系统内部画系统内部(0(0层图层图)-3)-3 确定文件 如果父图中该加工存在读写文件的数据流,则相应的文件和数据流都应画在子图中 在分解子图中,如果需要保存某些中间数据以备后用,则可以将这些数据组成一个新的文件 新文件(首次出现的文件)至少应有一个加工为其写入记录,同时至少存在另一个加工来读该文件的记录 注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写27复旦大学计算机科学技术学院 软件工程(第二版)画系统内部画系统内部(0(0层图层图)-4)-4 确定源和宿 0层图和其它子图中通常不必画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中 最终得到考务处理系统0层图 根据功能分解方法识别出两个加工:考试报名、统计成绩 数据流 继承顶层图中的输入数据流和输出数据流 定义二个加工之间的数据流:由于这二个加工分别在考试前后进行,因此登记报名单所产生的结果“考生名册”应作为文件保存以便考试后由统计成绩加工

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号