软件工程课件:5%-第05章 结构化分析与设计.ppt

上传人(卖家):罗嗣辉 文档编号:2046077 上传时间:2022-01-21 格式:PPT 页数:110 大小:598.50KB
下载 相关 举报
软件工程课件:5%-第05章 结构化分析与设计.ppt_第1页
第1页 / 共110页
软件工程课件:5%-第05章 结构化分析与设计.ppt_第2页
第2页 / 共110页
软件工程课件:5%-第05章 结构化分析与设计.ppt_第3页
第3页 / 共110页
软件工程课件:5%-第05章 结构化分析与设计.ppt_第4页
第4页 / 共110页
软件工程课件:5%-第05章 结构化分析与设计.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

1、复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程2/110 一种面向数据流的传统软件开发方法一种面向数据流的传统软件开发方法 以数据流为中心构建软件的分析模型以数据流为中心构建软件的分析模型和设计模型和设计模型 分为:分为: 结构化分析(Structured Analysis 简称SA) 结构化设计(Structuresd Design 简称SD) 结构化程序设计(Structured Programmin 简称SP)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程3/110 结构化分析方法概述结构化分析方法概述 数据流图数据流图 分

2、层数据流图的审查分层数据流图的审查 数据字典数据字典 描述基本加工的小说明描述基本加工的小说明 结构化设计概述结构化设计概述 数据流图到软件体系结构的映射数据流图到软件体系结构的映射 初始结构图的改进初始结构图的改进 小结小结复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程4/110 数据流图数据流图 分层数据流图的审查分层数据流图的审查 数据字典数据字典 描述基本加工的小说明描述基本加工的小说明 结构化设计概述结构化设计概述 数据流图到软件体系结构的映射数据流图到软件体系结构的映射 初始结构图的改进初始结构图的改进 小结小结复旦大学计算机科学与工程系复旦大学计算

3、机科学与工程系 软件工程课程软件工程课程5/110 发展历史发展历史 提出:20世纪60年代末到70年代初 成熟:20世纪70年代末到80年代中期 主要思想:主要思想:抽象抽象与自顶向下的逐层与自顶向下的逐层分解分解(控制复杂性的两个基本手段控制复杂性的两个基本手段) 抽象:在每个抽象层次上忽略问题的内部复杂性,只关注整个问题与外界的联系 分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程6/110 抽象:从作为整体的软件系统开始抽象:从作为整体的软件系统开始(第一层第一层),每一每一抽象层次上只关

4、注于系统的输入输出抽象层次上只关注于系统的输入输出 分解:将系统不断分解为子系统、模块分解:将系统不断分解为子系统、模块 随着分解层次的增加,抽象的级别越来越低,也随着分解层次的增加,抽象的级别越来越低,也越接近问题的解越接近问题的解(算法和数据结构算法和数据结构)2.42.32.22.121431.31.21.1X复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程7/110 理解当前的现实环境,获得当前系统的具理解当前的现实环境,获得当前系统的具体模型体模型(物理模型物理模型) 从当前系统的具体模型抽象出当前系统的从当前系统的具体模型抽象出当前系统的逻辑模型逻辑模

5、型 分析目标系统与当前系统逻辑上的差别,分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型建立目标系统的逻辑模型 为目标系统的逻辑模型作补充为目标系统的逻辑模型作补充复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程8/110 数据字典是模型的核心,它数据字典是模型的核心,它包含了软件使用和产生所有包含了软件使用和产生所有数据的描述数据的描述 数据流图:用于功能建模,数据流图:用于功能建模,描述系统的输入数据流如何描述系统的输入数据流如何经过一系列的加工变换逐步经过一系列的加工变换逐步变换成系统的输出数据流变换成系统的输出数据流 实体实体关系图:用于数据建关

6、系图:用于数据建模,描述数据字典中数据之模,描述数据字典中数据之间的关系间的关系实体实体-关系图关系图 数据流图数据流图状态转换图状态转换图数据数据字典字典 状态转换图:用于行为建模,描述系统接收哪些外状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况部事件,以及在外部事件的作用下的状态迁移情况复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程9/110 结构化分析方法概述结构化分析方法概述 分层数据流图的审查分层数据流图的审查 数据字典数据字典 描述基本加工的小说明描述基本加工的小说明 结构化设计概述结构化设计概述 数据流图到

7、软件体系结构的映射数据流图到软件体系结构的映射 初始结构图的改进初始结构图的改进 小结小结复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程10/110 Data Flow Diagram(简称简称DFD):描述输入:描述输入数据流到输出数据流的变换数据流到输出数据流的变换(即加工即加工)过程,过程,用于对系统的功能建模,基本元素包括:用于对系统的功能建模,基本元素包括:数据流数据流(data flow):由一组固定成分的数据组成,代表:由一组固定成分的数据组成,代表数据的流动方向数据的流动方向加工加工(process):描述了输入数据流到输出数据流的变换,:描述了

8、输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流即将输入数据流加工成输出数据流文件文件(file):使用文件、数据库等保存某些数据结果供以:使用文件、数据库等保存某些数据结果供以后使用后使用源或宿源或宿(source or sink):由一组固定成分的数据组成,:由一组固定成分的数据组成,代表数据的流动方向代表数据的流动方向复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程11/110 存在于软件系统之外的人员或组织,表示软件存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此系统输入数据的来源和输出数据的去向,因此也称为源点

9、和终点也称为源点和终点 例如,对一个考务处理系统而言 考生向系统提供报名单考生向系统提供报名单(输入数据流输入数据流),所以考生是考试系统,所以考生是考试系统(软件软件)的一个源的一个源 考务处理系统要将考试成绩的统计分析表考务处理系统要将考试成绩的统计分析表(输出数据流输出数据流)传递传递给考试中心,所以考试中心是该系统的一个宿给考试中心,所以考试中心是该系统的一个宿 源或宿用相同的图形符号表示源或宿用相同的图形符号表示 当数据流从该符号流出时表示是源当数据流从该符号流出时表示是源 当数据流流向该符号时表示是宿当数据流流向该符号时表示是宿 当两者皆有时表示既是源又是宿当两者皆有时表示既是源又

10、是宿 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程12/110 加工:描述输入数据流到输出数据流加工:描述输入数据流到输出数据流的变换的变换 每个加工用一个定义明确的名字标识 至少有一个输入数据流和一个输出流 可以有多个输入数据流和多个输出数据流 文件:保存数据信息的外部单元文件:保存数据信息的外部单元 每个文件用一个定义明确的名字标识 由加工进行读写 DFD中称为文件,但在具体实现时可以用文件系统实现也可以用数据库系统等实现复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程13/110 每个数据流用由一组固定成分的数据组成每个数据

11、流用由一组固定成分的数据组成并拥有一个定义明确的名字标识并拥有一个定义明确的名字标识 如:运动会管理系统中,报名单(数据流)由队名、姓名、性别、参赛项目等数据组成 数据流的流向数据流的流向 从一个加工流向另一个加工 从加工流向文件(写文件) 从文件流向加工(读文件) 从源流向加工 从加工流向宿复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程14/110图书库存入库单 图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据帐单复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程15

12、/110 描述一个加工的多个数据流之间的关系描述一个加工的多个数据流之间的关系 星号():表示数据流之间存在“与”关系 所有输入数据流同时存在时,才能进行加工处理所有输入数据流同时存在时,才能进行加工处理 或加工处理的结果是同时产生所有输出数据流或加工处理的结果是同时产生所有输出数据流 加号():表示数据流之间存在“或”关系 至少存在一个输入数据流时才能进行加工处理至少存在一个输入数据流时才能进行加工处理 或加工处理的结果是至少产生一个输出数据流或加工处理的结果是至少产生一个输出数据流 异或( ):表示数据流之间存在“异或”(互斥)关系 必须存在且仅存在一个输入数据流时,才能进行加工处理必须存

13、在且仅存在一个输入数据流时,才能进行加工处理 或加工处理的结果是产生且仅产生一个输出数据流或加工处理的结果是产生且仅产生一个输出数据流复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程16/110 George Miller在著名的论文在著名的论文“神奇的数神奇的数字字7加减加减2:我们处理信息的能力的某种:我们处理信息的能力的某种限制限制”中指出:人们在一段时间内的短期中指出:人们在一段时间内的短期记忆似乎限制在记忆似乎限制在59件事情之内件事情之内 根据自顶向下逐层分解的思想将数据流图根据自顶向下逐层分解的思想将数据流图画成层次结构画成层次结构 每个层次画在独立

14、的数据流图中,加工个每个层次画在独立的数据流图中,加工个数可数可大致大致控制在控制在“7加减加减2”的范围中的范围中复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程17/110 顶层图只有代表整个软件系统的顶层图只有代表整个软件系统的1个加工,个加工,描述了软件系统与外界描述了软件系统与外界(源或宿源或宿)之间的数之间的数据流据流 顶层图中的加工经分解后的图称为顶层图中的加工经分解后的图称为0层图层图(只有只有1张张) 中间层图中至少有一个加工中间层图中至少有一个加工(也可以有多也可以有多个个)在下层图中分解成一张子图在下层图中分解成一张子图 处于最底层的图称为底

15、层图,其中所有的处于最底层的图称为底层图,其中所有的加工不再分解成新的子图加工不再分解成新的子图复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程18/110 顶层图只有一个代表整个软件系统的加工,顶层图只有一个代表整个软件系统的加工,该加工不必编号。该加工不必编号。 0层图中的加工编号分别为层图中的加工编号分别为1,2,3, 子图号:若父图中的加工号子图号:若父图中的加工号x分解成某一分解成某一子图,则该子图号记为子图,则该子图号记为“图图x” 子图中加工的编号:若父图中的加工号为子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图中的的加工分解成

16、某一子图,则该子图中的加工编号分别为加工编号分别为x.1、x.2、x.3复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程19/110 简化的资格和水平考试的考务处理系统简化的资格和水平考试的考务处理系统 分成多个级别,如初级程序员、程序员、分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试条件的考生都可参加某一级别的考试 考试的合格标准将根据每年的考试成绩由考试的合格标准将根据每年的考试成绩由考试中心确定考试中心确定 考试的阅卷由阅卷站进行,因此,阅卷工考试的阅卷由阅卷站进行

17、,因此,阅卷工作不包含在软件系统中作不包含在软件系统中复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程20/110 1对考生送来的报名单进行检查对考生送来的报名单进行检查 2对合格的报名单编好准考证号后将准考证送对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站给考生,并将汇总后的考生名单送给阅卷站 3对阅卷站送来的成绩清单进行检查,并根据对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者考试中心制订的合格标准审定合格者 4制作考生通知单送给考生制作考生通知单送给考生 5进行成绩分类统计进行成绩分类统计(按地区、年龄、

18、文化程按地区、年龄、文化程度、职业、考试级别等分类度、职业、考试级别等分类)和试题难度分析,和试题难度分析,产生统计分析表产生统计分析表复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程21/110 报名单地区序号姓名文化程度职业报名单地区序号姓名文化程度职业考试级别通信地址考试级别通信地址 正式报名单准考证号报名单正式报名单准考证号报名单 准考证地区序号姓名准考证号考试准考证地区序号姓名准考证号考试级别考场级别考场 考生名单准考证号考试级别考生名单准考证号考试级别其中其中w表示表示w重复多次重复多次 考生名册正式报名单考生名册正式报名单 统计分析表分类统计表难度分

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

20、)、考生通知书(送往考生)、统计分析表(送往考试中心)额外的输出流(考虑系统的健壮性):不合格报名单(返回给考生),错误成绩清单(返回给阅卷站) 顶层图通常没有文件顶层图通常没有文件复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程23/110考务处理系统考试中心考生不合格报名单阅卷站错误成绩清单成绩清单考生名单合格标准报名单准考证考生通知单统计分析表复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程24/110 以下确定加工、数据流、文件、源或宿的以下确定加工、数据流、文件、源或宿的一般方法适用于一般方法适用于0层图及其各层子图层图及其

21、各层子图 确定加工:将父图中某加工分解而成的子确定加工:将父图中某加工分解而成的子加工加工 根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解 根据业务处理流程确定加工:分析父图中待分解加工的业务处理流程,业务流程中的每一步都可能是一个子加工 特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工,例如:编制准考证号正式报名单合格报名单复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程25/110 确定数据流确定数据流 在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边

22、界上的输入/输出数据流 分解后的子加工之间应增添相应的新数据流表示加工过程中的中间数据 如果某些中间数据需要保存以备后用,那么可以成为流向文件的数据流 同一个源或加工可以有多个数据流流向一个加工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:读取银行卡信息客户银行卡数据密码复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程26/110 确定文件确定文件 如果父图中该加工存在读写文件的数据流,则相应的文件和数据流都应画在子图中 在分解子图中,如果需要保存某些中间数据以备后用,则可以将这些数据组成一个新的文件 新文件(首次出现的文件)至少应有一

23、个加工为其写入记录,同时至少存在另一个加工来读该文件的记录 注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程27/110 确定源和宿确定源和宿 0层图和其它子图中通常不必画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中 最终得到考务处理系统最终得到考务处理系统0层图层图 根据功能分解方法识别出两个加工:考试报名、统计成绩 数据流 继承顶层图中的输入数据流和输出数据流继承顶层图中的输入数据流和输出数据流 定义二个加工之间的数据流:由于这二个加工分别在考试定义二个加工之间的数据流:由于这

24、二个加工分别在考试前后进行,因此登记报名单所产生的结果前后进行,因此登记报名单所产生的结果“考生名册考生名册”应应作为文件保存以便考试后由统计成绩加工引用作为文件保存以便考试后由统计成绩加工引用复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程28/110考生名册1考试报名报名单考生名单不合格报名单准考证2统计成绩统计分析表合格标准考生通知单错误成绩清单成绩清单复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程29/110 复杂的加工可以继续分解成复杂的加工可以继续分解成1张张DFD子图子图 分解方法分解方法 将该加工看作一个小系统,该加

25、工的输入/输出数据流就是这个假设的小系统的输入/输出数据流 然后采用画0层图的方法,画出该加工的子图 以以0层图中加工层图中加工1(考试报名考试报名)为例为例 根据业务处理流程来确定由加工1的分解 与加工1相关的业务流程:首先检查考生送来的报名单,然后编准考证号,并产生准考证,最后产生考生名单和考生名册(文件)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程30/110 3个子加工:检查报名单、编准考证号、登记考个子加工:检查报名单、编准考证号、登记考生生 “合格报名单合格报名单”和和“正式报名单正式报名单”是新增加的是新增加的数据流,其它数据流都是加工数据流,其

26、它数据流都是加工1原有的原有的 在加工在加工1的分解中没有新的文件产生的分解中没有新的文件产生1.3登记考生考生名单1.2编准考证号准考证 正式报名单1.1检查报名单合格报名单报名单不合格报名单考生名册复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程31/1102.5分析试题难度难度分析表2.4分类统计成绩分类统计表考生名册2.3制作通知单考生通知单2.2审定合格者正式成绩清单合格标准试题得分清单2.1检查成绩清单成绩清单正确成绩清单错误成绩清单复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程32/110 1画系统的输入和输出画系统的

27、输入和输出 2画系统内部画系统内部 3画加工内部画加工内部 4重复第重复第3步,直至每个尚未分解的加步,直至每个尚未分解的加工都足够简单工都足够简单(即不必再分解即不必再分解)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程33/110 结构化分析方法概述结构化分析方法概述 数据流图数据流图 数据字典数据字典 描述基本加工的小说明描述基本加工的小说明 结构化设计概述结构化设计概述 数据流图到软件体系结构的映射数据流图到软件体系结构的映射 初始结构图的改进初始结构图的改进 小结小结复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程34/1

28、10 检查图中是否存在错误或不合理检查图中是否存在错误或不合理(不理想不理想)的部分的部分 一致性:分层DFD中不存在矛盾和冲突 完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素 本节将从分层本节将从分层DFD的一致性和完整性、构的一致性和完整性、构造分层造分层DFD时需注意的问题以及分解程度时需注意的问题以及分解程度等几个方面来说明如何审查分层等几个方面来说明如何审查分层DFD的合的合理性理性复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程35/110 父图与子图平衡父图与子图平衡任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工

29、的输入/输出数据流保持一致 数据守恒数据守恒一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生多余的数据流:加工未使用其输入数据流中的某些数据项 局部文件局部文件 一个加工的输出数据流不能与该加工的输一个加工的输出数据流不能与该加工的输入数据流同名入数据流同名复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程36/110 加工加工2的输入数据流有的输入数据流有M和和N,输出数据,输出数据流是流是T 而子图而子图(右图右图)边界上的输入数据流是边界上的输入数据流是N,输出数据流是输出数据流是S和和T123ABCMNT2.

30、12.22.3NPSTQ复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程37/110 注意:如果父图某加工的一个数据流,对应于子图中几注意:如果父图某加工的一个数据流,对应于子图中几个数据流,而子图中组成这些数据流的数据项全体正好个数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这个数据流,那么它们仍算是平衡的等于父图中的这个数据流,那么它们仍算是平衡的e2.52.42.32.22.1b2b1acdb21acde(a) 父图(b) 子图a:考生通知单;b:统计分析表;b1:分类统计表;b2:难度分析表;c:错误成绩清单;d成绩清单;e合格标准。复旦大学计

31、算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程38/110由于由于“正式成绩清单正式成绩清单”中缺少中缺少“考生通知单考生通知单”中中的姓名、通信地址等数据,这些数据也无法由加的姓名、通信地址等数据,这些数据也无法由加工工2.3自己产生,因此,加工自己产生,因此,加工2.3不满足数据守恒不满足数据守恒的条件的条件考生名册2.5分析试题难度难度分析表2.4分类统计成绩分类统计表2.3制作通知单考生通知单2.2审定合格者正式成绩清单合格标准试题得分清单2.1检查成绩清单成绩清单正确成绩清单错误成绩清单由此可见:由此可见:1.1.数据流的组成对数据流的组成对DFDDFD是有影响

32、的是有影响的2.2.构建构建DFDDFD与建立数据字典应交替进行,与建立数据字典应交替进行,以便于对分层以便于对分层DFDDFD的校验的校验复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程39/110 考虑分层数据流中一个文件应画在哪些考虑分层数据流中一个文件应画在哪些DFD中,中,而不该画在哪些而不该画在哪些DFD中中 任何一个文件都应同时包含读和写该文件的数据流,除非该文件是当前系统与另一个软件系统所共享(应在需求说明中指明) 在一张DFD中当一个文件作为若干个加工之间的交界面(一个写另一个读)时该文件应画出 在一张DFD中当一个文件仅与一个加工进行读写操作,

33、并且在该DFD的父(祖先)图中未出现过该文件则该文件是相应加工的内部文件,在当前DFD中不应画出 一个文件一旦在某张DFD中画出,那么在它的子孙图中应根据父图与子图平衡的原则画出该文件 在子孙图中,这个文件可能只有读或写文件中的一种数据流在子孙图中,这个文件可能只有读或写文件中的一种数据流复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程40/110“试题得分清单试题得分清单”文件是加工文件是加工2的局部文件,根据抽象原则的局部文件,根据抽象原则不应该将这类表示加工细节的局部文件画在其父图不应该将这类表示加工细节的局部文件画在其父图(如图如图c)中,正确的画法是图中

34、,正确的画法是图a和和b21(a) 父图考生名册(b) 子图2.52.42.32.22.1试题得分清单考生名册(c) 含局部文件的父图21试题得分清单考生名册复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程41/110 同一个加工的输出数据流和输入数据流即同一个加工的输出数据流和输入数据流即使组成成份相同,仍应对它们取不同的名使组成成份相同,仍应对它们取不同的名字,以表示它们是不同数据流字,以表示它们是不同数据流 例如,“报名单”和“合格报名单” 允许一个加工有二个相同的数据流分别流允许一个加工有二个相同的数据流分别流向二个不同的加工向二个不同的加工复旦大学计算机

35、科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程42/110 每个加工至少有一个输入数据流和一个输出数每个加工至少有一个输入数据流和一个输出数据流据流 在整套分层数据流中,每个文件应至少有一个在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件加工读该文件,有另一个加工写该文件 分层数据流图中的每个数据流和文件都必须命分层数据流图中的每个数据流和文件都必须命名名(除了流入或流出文件的数据流除了流入或流出文件的数据流),并保持与,并保持与数据字典的一致数据字典的一致 分层分层DFD中的每个基本加工中的每个基本加工(即不再分解子图的即不再分解子图的加工加工)都

36、应有一个加工规约都应有一个加工规约复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程43/110 适当命名:每个数据流、加工、文件、源适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命和宿都应被适应地命名,名字应符合被命名对象的实际含义名对象的实际含义名字应反映整个对象(如数据流、加工),而不是仅反映它的某一部分避免使用空洞的、含义不清的名字,如数据、信息、处理、统计等如果发现某个数据流或加工难以命名时,往往是DFD分解不当的征兆,此时应考虑重新分解 画数据流而不是画控制流画数据流而不是画控制流 判断准则:这条线上是否有数据流过复旦大学计算机科

37、学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程44/110 避免一个加工有过多的数据流避免一个加工有过多的数据流 当一个加工存在许多数据流时往往意味着分解不合理 解决办法:重新分解 1)把需要重新分解的某张图把需要重新分解的某张图(含有该复杂加工的图含有该复杂加工的图)的所有子图的所有子图连接成一张图连接成一张图 2)把连接后的图重新划分成几个部分,使各部分之间的联系最把连接后的图重新划分成几个部分,使各部分之间的联系最小小 3)重新定义父图,即第重新定义父图,即第2)步中的每个部分作为父图中的一个加步中的每个部分作为父图中的一个加工工 4)重新建立各子图,即第重新建立各子图,

38、即第2)步中的每个部分都是一张子图步中的每个部分都是一张子图 5)为所有的加工重新命名和编号为所有的加工重新命名和编号复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程45/110( b ) 原加工2子图222.12.32.42.5HJICKLEMN( d ) 重新分解后的父图452321ABHGJICKLDEMFPN( a ) 原父图34512HABJICKLDEMFPNG( c ) 合并4532.42.52.22.12.31FABHJICKLDEMPNG复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程46/110 分解尽可能均匀分解

39、尽可能均匀 理想目标:任何两个加工的分解层数之差不超过1 应尽可能使分解均匀,对于分解不均匀的情况应重新分解 先考虑稳定状态,忽略琐碎的枝节先考虑稳定状态,忽略琐碎的枝节 先考虑稳定状态下的各种问题,暂时不考虑系统如何启动、如何结束、出错处理以及性能等问题 随时准备重画随时准备重画 对于一个复杂的软件系统,往往要经过反复多次的重画和修改才能构造出完整、合理、满足用户需求的分层DFD 分析阶段遗漏下来的一个错误,到开发后期要化费几百倍代价来纠正这个错误复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程47/110 可参照以下几条与分解有关的原则:可参照以下几条与分解有

40、关的原则: 7加减2 分解应自然,概念上合理、清晰 只要不影响DFD的易理解性,可适当多分解几个加工,以减少层数 一般说来,上层分解得快些(即多分解几个加工),下层分解得慢些(即少分解几个加工) 分解要均匀复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程48/110 结构化分析方法概述结构化分析方法概述 数据流图数据流图 分层数据流图的审查分层数据流图的审查 描述基本加工的小说明描述基本加工的小说明 结构化设计概述结构化设计概述 数据流图到软件体系结构的映射数据流图到软件体系结构的映射 初始结构图的改进初始结构图的改进 小结小结复旦大学计算机科学与工程系复旦大学计

41、算机科学与工程系 软件工程课程软件工程课程49/110 数据流图与数据字典是密不可分的,两者数据流图与数据字典是密不可分的,两者结合起来构成软件的逻辑模型结合起来构成软件的逻辑模型(分析模型分析模型) 数据字典由字典条目组成,每个条目描述数据字典由字典条目组成,每个条目描述DFD中的一个元素中的一个元素 数据字典条目包括:数据流、文件、数据数据字典条目包括:数据流、文件、数据项项(组成数据流和文件的数据组成数据流和文件的数据)、加工、源、加工、源或宿或宿 加工逻辑的详细说明可以用“小说明”来描述(5.5节)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程50/11

42、0nm83符符 号号名名 称称举举 例例定义为定义为x 表示表示x由由组成组成与与ab 表示表示a和和b,或或a,b表示表示a或或b或或ab表示表示a或或b重复重复a 表示表示a重复重复0或多次或多次重复重复a 表示表示a重复重复3到到8次次()可选可选(a) 表示表示a重复重复0或或1次次基本数据元素基本数据元素a 表表a是基本数据是基本数据复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程51/110 不同的开发组织或团队可以根据项目的需不同的开发组织或团队可以根据项目的需要定义字典条目的描述内容要定义字典条目的描述内容 字典条目中的描述内容主要包括字典条目中的

43、描述内容主要包括 DFD元素的基本信息(名称、别名、简述、注解) 定义(数据类型、数据组成) 使用特点(取值范围、使用频率、激发条件) 控制信息(来源、去向、访问权限)等复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程52/110 名称:数据流名名称:数据流名(可以是中文名或英文名可以是中文名或英文名) 别名:名称的另一个名字别名:名称的另一个名字 简述:对数据流的简单说明简述:对数据流的简单说明 数据流组成数据流组成:描述数据流由哪些数据项组成:描述数据流由哪些数据项组成 数据流来源:描述数据流从哪个加工或源流出数据流来源:描述数据流从哪个加工或源流出 数据流去

44、向:描述数据流流入哪个加工或宿数据流去向:描述数据流流入哪个加工或宿 数据量:系统中该数据流的总量数据量:系统中该数据流的总量如考务处理系统中“报名单”的总量是100000张或者单位时间处理的数据流数量,如80000张/天 峰值:某时段处理的最大数量峰值:某时段处理的最大数量如每天上午9:00至11:00处理60000张表单 注解:对该数据流的其它补充说明注解:对该数据流的其它补充说明复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程53/110 数据流组成是数据流条目的核心,它列出数据流组成是数据流条目的核心,它列出组成该数据流的各数据项,例如:组成该数据流的各数

45、据项,例如: 培训报名单姓名单位课程 运动员报名单队名姓名性别参赛项目 当一个数据流的组成比较复杂时,可以将当一个数据流的组成比较复杂时,可以将其分解成几个数据流,例如:其分解成几个数据流,例如: 课程课程名任课教师教材时间地点 时间地点星期几第几节教室3131复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程54/110发票单位名称商品名数量单价金额发票单位名称商品名数量单价金额 总金额日期总金额日期(营业员营业员)单位名称商品名商品名数量数量单价单价金额金额总金额总金额日期营业员51复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程5

46、5/110名称:文件名名称:文件名别名:同数据流条目别名:同数据流条目简述:对文件的简单说明简述:对文件的简单说明文件组成文件组成:描述文件的记录由哪些数据项组成:描述文件的记录由哪些数据项组成(与数据流条与数据流条目中的文件组成描述方法相同目中的文件组成描述方法相同)写文件的加工:描述哪些加工写文件写文件的加工:描述哪些加工写文件读文件的加工:描述哪些加工读文件读文件的加工:描述哪些加工读文件文件组织:描述文件的存储方式文件组织:描述文件的存储方式(顺序、索引顺序、索引),排序的关键,排序的关键字字使用权限:描述各类用户对文件读、写、修改的使用权限使用权限:描述各类用户对文件读、写、修改的使

47、用权限数据量:文件的最大记录个数数据量:文件的最大记录个数存取频率:描述对该文件的读写频率存取频率:描述对该文件的读写频率注解:对该文件的其它补充说明注解:对该文件的其它补充说明复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程56/110名称:数据项名名称:数据项名别名:同数据流条目别名:同数据流条目简述:对数据项的简单描述简述:对数据项的简单描述数据类型:描述数据项的类型,如整型、实型、字符串等数据类型:描述数据项的类型,如整型、实型、字符串等计量单位:指明数据项值的计量单位,如公斤、吨等计量单位:指明数据项值的计量单位,如公斤、吨等取值范围:描述数据项允许的值

48、域,如取值范围:描述数据项允许的值域,如1100编辑方式:描述该数据项外部表示的编辑方式,如编辑方式:描述该数据项外部表示的编辑方式,如23,345.67与其它数据项的关系:描述该数据项与数据字典中其它数据与其它数据项的关系:描述该数据项与数据字典中其它数据项的关系项的关系注解:对数据项的其它补充说明注解:对数据项的其它补充说明复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程57/110名称:加工名名称:加工名别名:同数据流条目别名:同数据流条目加工号加工号: 加工在加工在DFD中的编号中的编号简述:对加工的功能的简要说明简述:对加工的功能的简要说明输入数据流:描

49、述加工的输入数据流,包括读哪些文件名输入数据流:描述加工的输入数据流,包括读哪些文件名输出数据流:描述加工的输出数据流,包括写哪些文件名输出数据流:描述加工的输出数据流,包括写哪些文件名加工逻辑加工逻辑:简要描述加工逻辑,或者对加工规约的索引:简要描述加工逻辑,或者对加工规约的索引基本加工的加工逻辑用小说明描述,在加工条目中可填写对加工规约的索引非基本加工分解而成的DFD子图已反映了它的加工逻辑,不必书写小说明异常处理:描述加工处理过程中可能出现的异常情况,及其处理方异常处理:描述加工处理过程中可能出现的异常情况,及其处理方式式加工激发条件:描述执行加工的条件,如,加工激发条件:描述执行加工的

50、条件,如,“身份认证正确身份认证正确”,“收到报名单收到报名单”执行频率:描述加工的执行频率,如,每月执行一次,每天执行频率:描述加工的执行频率,如,每月执行一次,每天0点执行点执行注解:对加工的其它补充说明注解:对加工的其它补充说明复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程58/110 名称:源或宿的名名称:源或宿的名(外部实体名外部实体名) 别名:同数据流条目别名:同数据流条目 简要描述:对源或宿的简要描述简要描述:对源或宿的简要描述(包括指明该外包括指明该外部实体在部实体在DFD中是用作中是用作“源源”,还是,还是“宿宿”,还,还是是“既是源又是宿既是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(软件工程课件:5%-第05章 结构化分析与设计.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|