结构化分析与设计.ppt
《结构化分析与设计.ppt》由会员分享,可在线阅读,更多相关《结构化分析与设计.ppt(169页珍藏版)》请在三一办公上搜索。
1、软件工程,第5章 结构化分析与设计,结构化方法,一种面向数据流的传统软件开发方法以数据流为中心构建软件的分析模型和设计模型分为:结构化分析(Structured Analysis 简称SA)结构化设计(Structuresd Design 简称SD)结构化程序设计(Structured Programmin 简称SP),内容摘要,结构化分析方法概述数据流图分层数据流图的审查数据字典描述基本加工的小说明结构化设计概述数据流图到软件体系结构的映射初始结构图的改进小结,内容摘要,5.1结构化分析方法概述5.2数据流图5.3分层数据流图的审查5.4数据字典5.5描述基本加工的小说明5.6结构化设计概述
2、5.7数据流图到软件体系结构的映射5.8初始结构图的改进小结,5.1结构化分析方法,发展历史提出:20世纪60年代末到70年代初成熟:20世纪70年代末到80年代中期主要思想:抽象与自顶向下的逐层分解(控制复杂性的两个基本手段)抽象:在每个抽象层次上忽略问题的内部复杂性,只关注整个问题与外界的联系分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止,5.1.1结构化分析方法中的抽象与分解,抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构),5.
3、1.2结构化分析过程,理解当前的现实环境,获得当前系统的具体模型(物理模型)从当前系统的具体模型抽象出当前系统的逻辑模型分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型为目标系统的逻辑模型作补充,5.1.3结构化分析模型的描述,数据字典是模型的核心,它包含了软件使用和产生所有数据的描述数据流图:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流实体关系图:用于数据建模,描述数据字典中数据之间的关系,状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况,内容摘要,5.1结构化分析方法概述5.2数据流图5.3分层数据流
4、图的审查5.4数据字典5.5描述基本加工的小说明5.6结构化设计概述5.7数据流图到软件体系结构的映射5.8初始结构图的改进小结,5.2数据流图,Data Flow Diagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模。,5.2数据流图,Data Flow Diagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模。,数据流(data flow):由一组固定成分的数据组成,代表数据的流动方向,加工(process):描述了输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流,文件(file):使用文件
5、、数据库等保存某些数据结果供以后使用,源或宿(source or sink):由一组固定成分的数据组成,代表数据的流动方向,源或宿,存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此也称为源点和终点例如,对一个考务处理系统而言考生向系统提供报名单(输入数据流),所以考生是考试系统(软件)的一个源考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿源或宿用相同的图形符号表示当数据流从该符号流出时表示是源当数据流流向该符号时表示是宿当两者皆有时表示既是源又是宿,加工和文件,加工:描述输入数据流到输出数据流的变换每个加工用一个定
6、义明确的名字标识至少有一个输入数据流和一个输出流可以有多个输入数据流和多个输出数据流文件:保存数据信息的外部单元每个文件用一个定义明确的名字标识由加工进行读写DFD中称为文件,但在具体实现时可以用文件系统实现也可以用数据库系统等实现,数据流,每个数据流用由一组固定成分的数据组成并拥有一个定义明确的名字标识如:运动会管理系统中,报名单(数据流)由队名、姓名、性别、参赛项目等数据组成数据流的流向从一个加工流向另一个加工从加工流向文件(写文件)从文件流向加工(读文件)从源流向加工从加工流向宿,示例:图书订购系统DFD,财务报表,经理,帐务数据库,数据流图的扩充符号,描述一个加工的多个数据流之间的关系
7、星号():表示数据流之间存在“与”关系所有输入数据流同时存在时,才能进行加工处理或加工处理的结果是同时产生所有输出数据流加号():表示数据流之间存在“或”关系至少存在一个输入数据流时才能进行加工处理或加工处理的结果是至少产生一个输出数据流异或():表示数据流之间存在“异或”(互斥)关系必须存在且仅存在一个输入数据流时,才能进行加工处理或加工处理的结果是产生且仅产生一个输出数据流,数据流图的扩充符号,对数据流图进行分层,George Miller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在59件事情之内根据自顶向下逐层分解的思想将数
8、据流图画成层次结构每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中,数据流图的各个层次,顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流顶层图中的加工经分解后的图称为0层图(只有1张)中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图处于最底层的图称为底层图,其中所有的加工不再分解成新的子图,图和加工的编号,顶层图只有一个代表整个软件系统的加工,该加工不必编号。0层图中的加工编号分别为1,2,3,子图号:若父图中的加工号x分解成某一子图,则该子图号记为“图x”子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图
9、中的加工编号分别为x.1、x.2、x.3,图和加工的编号,顶层,中 间 层,底 层,0图,1图,2图,画分层数据流图的步骤,1画系统顶层图2画系统内部3画加工内部4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解),分层数据流图示例资格和水平考试的考务处理系统,简化的资格和水平考试的考务处理系统分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试考试的合格标准将根据每年的考试成绩由考试中心确定考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中,资格和水平考试的考务处理系统功能需求,1对考生送来的报名单进行检查2对合格的报名单编
10、好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站3对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者4制作考生通知单送给考生5进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表,资格和水平考试的考务处理系统部分数据流的组成,报名单地区序号姓名文化程度职业考试级别通信地址正式报名单准考证号报名单准考证地区序号姓名准考证号考试级别考场考生名单准考证号考试级别其中w表示w重复多次考生名册正式报名单统计分析表分类统计表难度分析表考生通知单准考证号姓名通信地址考试级别考试成绩合格标志,系统的输入输出(顶层图),确定源或宿:考生、
11、阅卷站和考试中心它们都既是源又是宿顶层图唯一的加工:软件系统(考务处理系统)确定数据流:系统的输入/输出信息输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心)输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心)额外的输出流(考虑系统的健壮性):不合格报名单(返回给考生),错误成绩清单(返回给阅卷站)顶层图通常没有文件,Step1:考务处理系统顶层图,考试中心,考生,不合格报名单,阅卷站,考生通知单,统计分析表,Step2:系统内部(0层图)-1,以下确定加工、数据流、文件、源或宿的一般方法适用于0层图及其各层子
12、图确定加工:将父图中某加工分解而成的子加工根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解根据业务处理流程确定加工:分析父图中待分解加工的业务处理流程,业务流程中的每一步都可能是一个子加工特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工,例如:,系统内部(0层图)-2,确定数据流在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边界上的输入/输出数据流分解后的子加工之间应增添相应的新数据流表示加工过程中的中间数据如果某些中间数据需要保存以备后用,那么可以成为流向文件的数据流同一个源或加工可以
13、有多个数据流流向一个加工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:,系统内部(0层图)-3,确定文件如果父图中该加工存在读写文件的数据流,则相应的文件和数据流都应画在子图中在分解子图中,如果需要保存某些中间数据以备后用,则可以将这些数据组成一个新的文件新文件(首次出现的文件)至少应有一个加工为其写入记录,同时至少存在另一个加工来读该文件的记录注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写,系统内部(0层图)-4,确定源和宿0层图和其它子图中通常不必画出源和宿有时为了提高可读性,可以将顶层图中的源和宿画在0层图中最终得到考务处理系统0层图根据功能
14、分解方法识别出两个加工:考试报名、统计成绩数据流继承顶层图中的输入数据流和输出数据流定义二个加工之间的数据流:由于这二个加工分别在考试前后进行,因此登记报名单所产生的结果“考生名册”应作为文件保存以便考试后由统计成绩加工引用,考务处理系统0层图,考生名册,不合格报名单,考生通知单,Step3:加工内部(1n层图),复杂的加工可以继续分解成1张DFD子图分解方法将该加工看作一个小系统,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流然后采用画0层图的方法,画出该加工的子图以0层图中加工1(考试报名)为例根据业务处理流程来确定由加工1的分解与加工1相关的业务流程:首先检查考生送来的报
15、名单,然后编准考证号,并产生准考证,最后产生考生名单和考生名册(文件),考务处理系统加工1子图,3个子加工:检查报名单、编准考证号、登记考生“合格报名单”和“正式报名单”是新增加的数据流,其它数据流都是加工1原有的在加工1的分解中没有新的文件产生,正式报名单,Step4:考务处理系统加工2子图,内容摘要,结构化分析方法概述数据流图分层数据流图的审查数据字典描述基本加工的小说明结构化设计概述数据流图到软件体系结构的映射初始结构图的改进小结,分层数据流图的审查,检查图中是否存在错误或不合理(不理想)的部分一致性:分层DFD中不存在矛盾和冲突完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工
16、等元素本节将从分层DFD的一致性和完整性、构造分层DFD时需注意的问题以及分解程度等几个方面来说明如何审查分层DFD的合理性,分层数据流图的一致性,父图与子图平衡任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致数据守恒一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生多余的数据流:加工未使用其输入数据流中的某些数据项 局部文件一个加工的输出数据流不能与该加工的输入数据流同名,父图与子图不平衡的实例,加工2的输入数据流有M和N,输出数据流是T而子图(右图)边界上的输入数据流是N,输出数据流是S和T,父图与
17、子图平衡的实例,注意:如果父图某加工的一个数据流,对应于子图中几个数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这个数据流,那么它们仍算是平衡的,a:考生通知单;b:统计分析表;b1:分类统计表;b2:难度分析表;c:错误成绩清单;d成绩清单;e合格标准。,数据不守恒的实例,由于“正式成绩清单”中缺少“考生通知单”中的姓名、通信地址等数据,这些数据也无法由加工2.3自己产生,因此,加工2.3不满足数据守恒的条件,正确成绩清单,错误成绩清单,由此可见:1.数据流的组成对DFD是有影响的2.构建DFD与建立数据字典应交替进行,以便于对分层DFD的校验,局部文件,考虑分层数据流中一个文件
18、应画在哪些DFD中,而不该画在哪些DFD中任何一个文件都应同时包含读和写该文件的数据流,除非该文件是当前系统与另一个软件系统所共享(应在需求说明中指明)在一张DFD中当一个文件作为若干个加工之间的交界面(一个写另一个读)时该文件应画出在一张DFD中当一个文件仅与一个加工进行读写操作,并且在该DFD的父(祖先)图中未出现过该文件则该文件是相应加工的内部文件,在当前DFD中不应画出一个文件一旦在某张DFD中画出,那么在它的子孙图中应根据父图与子图平衡的原则画出该文件在子孙图中,这个文件可能只有读或写文件中的一种数据流,局部文件示例,“试题得分清单”文件是加工2的局部文件,根据抽象原则不应该将这类表
19、示加工细节的局部文件画在其父图(如图c)中,正确的画法是图a和b,考生名册,(b)子图,试题得分清单,考生名册,(c)含局部文件的父图,试题得分清单,考生名册,加工的输出数据流不能与该加工的输入数据流同名,同一个加工的输出数据流和输入数据流即使组成成份相同,仍应对它们取不同的名字,以表示它们是不同数据流例如,“报名单”和“合格报名单”允许一个加工有二个相同的数据流分别流向二个不同的加工,分层数据流图的完整性,每个加工至少有一个输入数据流和一个输出数据流在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流
20、),并保持与数据字典的一致 分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约,其它需注意的问题-1,适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命名对象的实际含义名字应反映整个对象(如数据流、加工),而不是仅反映它的某一部分避免使用空洞的、含义不清的名字,如数据、信息、处理、统计等如果发现某个数据流或加工难以命名时,往往是DFD分解不当的征兆,此时应考虑重新分解画数据流而不是画控制流判断准则:这条线上是否有数据流过,其它需注意的问题-2,避免一个加工有过多的数据流当一个加工存在许多数据流时往往意味着分解不合理解决办法:重新分解1)把需要重新分解的某
21、张图(含有该复杂加工的图)的所有子图连接成一张图2)把连接后的图重新划分成几个部分,使各部分之间的联系最小3)重新定义父图,即第2)步中的每个部分作为父图中的一个加工4)重新建立各子图,即第2)步中的每个部分都是一张子图5)为所有的加工重新命名和编号,数据流图重新分解示例,其它需注意的问题-3,分解尽可能均匀理想目标:任何两个加工的分解层数之差不超过1应尽可能使分解均匀,对于分解不均匀的情况应重新分解先考虑稳定状态,忽略琐碎的枝节先考虑稳定状态下的各种问题,暂时不考虑系统如何启动、如何结束、出错处理以及性能等问题随时准备重画对于一个复杂的软件系统,往往要经过反复多次的重画和修改才能构造出完整、
22、合理、满足用户需求的分层DFD分析阶段遗漏下来的一个错误,到开发后期要化费几百倍代价来纠正这个错误,分解的程度,可参照以下几条与分解有关的原则:7加减2分解应自然,概念上合理、清晰只要不影响DFD的易理解性,可适当多分解几个加工,以减少层数一般说来,上层分解得快些(即多分解几个加工),下层分解得慢些(即少分解几个加工)分解要均匀,1 问题描述:1)顾客将订票单交给预订系统(1)如是不合法订票单,则输出无效订票信息;(2)对合法的订票以及预交款要登录到一个记账文件中;(3)系统有航班目录文件,根据填写的施行时间和目的地为顾客安排航班;(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并
23、记录到票单文件中;2)在指定日期内顾客用取票单换取机票(1)系统根据票单文件对取票单进行有效性检查,无效的输出无效取票信息;(2)持有有效取票单的顾客在补交了剩余款后将获得机票;(3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。试根据要求画出分层的数据流图。,2某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。2)如果是想注销原来已选修的课程,则由注销人员在课程文件
24、、学生文件和帐目文件上做相应的修改,并给学生注销单。3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。要求:对以上问题画出数据流程图。,3高孝录取统分子系统有如下功能:(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流程图,4某网站发帖子系统有如下功能:(1)记录发帖内容:访客在表单中输入文字,系统进行检查,无误后将内容存入文件。(2)显示帖子内容:读出文件,按一定格式显示在屏幕上。请根据要求画出该系统的数据流程图,5A校的考务系统具有下述功能
25、:输入报名单,自动编制准考证号,输出准考证号,输入成绩清单,输出成绩通知单,输出成绩分布单,输入合格标准、输出录取通知单,进行试题难度分析、输出难度分析表。,6某校教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,可进行如下功能的处理:查询成绩:查询成绩以及从名次表中得到名次信息。学籍管理:根据学生总成绩排出名次信息。成绩处理:处理单科成绩并输入成绩表中。就以上系统功能画出0层,1层的DFD图。,7某高校学分制学生选课系统,有如下要求:学生根据学期开学开课清单填写选课单;学生选课系统对每个学生选课单进行处理,根据教学计划检查该学生是否有尚未取得学分的必修课,如果有则要求重修
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 化分 设计
链接地址:https://www.31ppt.com/p-5299265.html