版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章系统分析
——结构化分析方法第二章系统分析
——结构化分析方法本节内容:结构化方法概述结构化建模工具数据流图数据字典描述语言/方法本节内容:结构化方法概述为什么需要建模?软件工程中模型的概念 对客观世界的问题领域进行抽象并用某种描述方法给予表示的结果称为模型。特点 由于软件工程中多数模型是用于表示问题领域中的元素以及元素间的关系或相互作用等,故在建模过程中应该注意问题域中有什么对象,应该选择什么样的关系或动作,然后用适当的模型给予表示。为什么需要建模?软件工程中模型的概念1、结构化方法概述分析建模的开始于20世纪60-70年代,但结构化分析方法的第一次出现是作为另一个重要课题—“结构化设计”的附属品。其目的是需要一种图形符号体系来表示数据和对数据进行变换的处理,这些处理最终能被映射到软件体系结构的设计中。结构化分析这个词汇最初由DouglasRoss提出,由DeMarco进行了推广,定义了创建信息流模型的关键图形符号。1、结构化方法概述分析建模的开始于20世纪60-70年代,但一种面向数据流的传统软件开发方法,以数据流为中心构建软件的分析模型和设计模型。分为:结构化分析(StructuredAnalysis简称SA)结构化设计(StructuresdDesign简称SD)结构化程序设计(StructuredProgrammin简称SP)1、结构化方法概述一种面向数据流的传统软件开发方法,以数据流为中心构建软件的分主要思想:抽象与自顶向下的逐层分解
(控制复杂性的两个基本手段)抽象:在每个抽象层次上忽略问题的内部复杂性,只关注整个问题与外界的联系。分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止。1、结构化方法概述主要思想:抽象与自顶向下的逐层分解
(控制复杂性的两个基本手抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出。分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)。2.42.32.22.121431.31.21.1X抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关2、结构化建模主要工具数据字典:是模型的核心。数据流图(DFD图):描述数据流在系统中流动的过程,及对数据流进行变换的功能,用于功能建模。实体关系图(ER图):描述数据对象间的关系,用于数据建模。状态迁移图(STD图):描述对外部事件的响应方式,表示系统的各种行为模式(称为状态)以及在状态间进行变迁的方式,用于行为建模。
2、结构化建模主要工具数据字典:是模型的核心。3、数据流图DataFlowDiagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模,基本元素包括:数据流(dataflow):由一组固定成分的数据组成,代表数据的流动方向;加工(process):即处理,描述输入数据流到输出数据流的变换;文件(file):使用文件、数据库等保存某些数据结果供以后使用;源或宿(sourceorsink):即外部实体,表示数据输入源和输出汇点,用实体名字来表示;或或或3、数据流图DataFlowDiagram(简称DFD)(1)源或宿存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此也称为源点和终点。例如,对一个图书馆信息管理系统而言读者向系统提供查询条件(输入数据流),所以读者是管理系统的一个源管理系统向供货商发出购书请求(输出数据流),所以供货商是管理系统的一个源源或宿用相同的图形符号表示当数据流从该符号流出时表示是源当数据流流向该符号时表示是宿当两者皆有时表示既是源又是宿(1)源或宿存在于软件系统之外的人员或组织,表示软件系统输入(2)加工和文件加工:描述输入数据流到输出数据流的变换每个加工用一个定义明确的名字标识至少有一个输入数据流和一个输出流可以有多个输入数据流和多个输出数据流文件:保存数据信息的外部单元每个文件用一个定义明确的名字标识由加工进行读写DFD中称为文件,但在具体实现时可以用文件系统实现也可以用数据库系统等实现(2)加工和文件加工:描述输入数据流到输出数据流的变换(3)数据流每个数据流用由一组固定成分的数据组成并拥有一个定义明确的名字标识如:图书馆管理系统中,读者信息(数据流)由编号、姓名、性别、有效证件号码、联系方式、登记日期、有效期等数据组成数据流的流向从一个加工流向另一个加工从加工流向文件(写文件)从文件流向加工(读文件)从源流向加工从加工流向宿(3)数据流每个数据流用由一组固定成分的数据组成并拥有一个定例:图书订购系统DFD图书库存入库单图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据帐单库存状态查询信息/库存变化库存状态库存查询采购单例:图书订购系统DFD图书库存入库单图书代理商书库收费制作财数据流图的扩充符号描述一个加工的多个数据流之间的关系星号(*):表示数据流之间存在“与”关系所有输入数据流同时存在时,才能进行加工处理或加工处理的结果是同时产生所有输出数据流加号(+):表示数据流之间存在“或”关系至少存在一个输入数据流时才能进行加工处理或加工处理的结果是至少产生一个输出数据流异或(⊕):表示数据流之间存在“异或”(互斥)关系必须存在且仅存在一个输入数据流时,才能进行加工处理或加工处理的结果是产生且仅产生一个输出数据流数据流图的扩充符号描述一个加工的多个数据流之间的关系
多个数据流之间的关系
多个数据流之间的关系对数据流图进行分层根据自顶向下逐层分解的思想将数据流图画成层次结构GeorgeMiller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在5~9件事情之内每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中对数据流图进行分层根据自顶向下逐层分解的思想将数据流图画成层数据流图的各个层次顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流。顶层图中的加工经分解后的图称为0层图(只有1张)。中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图。处于最底层的图称为底层图,其中所有的加工不再分解成新的子图。数据流图的各个层次顶层图只有代表整个软件系统的1个加工,描述图和加工的编号顶层图只有一个代表整个软件系统的加工,该加工不必编号。0层图中的加工编号分别为1,2,3,…(或1.0,2.0…)子图号:若父图中的加工号x分解成某一子图,则该子图号记为“图x”子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、x.3…图和加工的编号顶层图只有一个代表整个软件系统的加工,该加工不数据流图的分层示意图顶层0层1层n层…数据流图的分层示意图顶层0层1层n层…实例说明——图书馆信息管理系统(1)书籍管理书籍类别管理:增、删除、改等管理。书籍信息管理:新书入库,书籍信息修改,管理员按不同方式查询、统计,读者按不同方式查询。出版社信息管理:增、删除、改等管理。图书注销:从书籍信息表中删去破损的书籍记录。(2)读者管理读者类别信息管理:增、删除、改等管理。读者信息管理:办理、挂失、暂停借、注销阅卡,录入、修改、删除读者信息。(3)借阅管理借书管理:根据借阅卡编号和图书编号,进行借书登记。把超期图书以列表的形式显示出来,并以电子邮件或打印成书面通知读者。提供读者网上查询自己的借阅情况(包括超期提示)。续借管理:提供读者在符合规定的情况下网上续借。还书管理:在借阅信息表中找到相应的记录,将借书记录删除,更新该记录的相应数据(图书信息表)。根据违反规定情况计算和登记罚款记录。实例说明——图书馆信息管理系统(1)书籍管理顶层图顶层图0层图0层图1层图——对1.0的分解1层图——对1.0的分解1层图——对2.0的分解1层图——对2.0的分解1层图——对3.0的分解1层图——对3.0的分解2层图(底层图)
——对3.2的分解(1)2层图(底层图)2层图(底层图)
——对3.2的分解(2)2层图(底层图)总结:画分层数据流图的步骤1.画系统的输入和输出2.画系统内部3.画加工内部4.重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)总结:画分层数据流图的步骤1.画系统的输入和输出绘制数据流程图的规则对于源点/宿点:数据不能直接从源点移动到宿点。必须由加工移动数据;否则该数据流不在DFD上出现;源点/宿点的标签时名词短语;
正确:绘制数据流程图的规则对于源点/宿点:正确:绘制数据流程图的规则对于加工:不存在只有输出的加工处理,如果只有输出,那它必定是一个源点;不存在只有输入的加工处理,如果只有输入,那它必定是一个宿点;加工处理的标签是动词短语。绘制数据流程图的规则对于加工:对于文件(数据存储):数据不能从一个文件直接移到另一个文件,数据必须由加工移动;数据不能直接从外部源点移动到文件;数据不能直接从文件移动到外部宿点;文件标签是名词短语。绘制数据流程图的规则对于文件(数据存储):绘制数据流程图的规则绘制数据流程图的规则对于数据流:一个数据流在符号之间的流动是单向的。若是双向移动,应用两个单独的箭头表示。数据流中分叉意味着完全相同的数据从一个共同的位置转向两个或多个不同的加工、文件或外部实体。数据流不能直接回到它离开的同一个加工。另外必须至少有一个加工操作该数据流、产生另外的数据流和最初的数据流返回给开始的加工。到达文件的数据流意味着更新(增、删、改)。离开文件的数据流意味着检索或使用。数据流的标签是名词短语。在同一箭头上所有流作为一个包一起移动时,可以在一个箭头上出现多个数据流名词短语。绘制数据流程图的规则对于数据流:第二章系统分析—结构化分析方法课件分层数据流图的审查检查图中是否存在错误或不合理(不理想)的部分一致性:分层DFD中不存在矛盾和冲突完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素其他需要注意的问题分层数据流图的审查检查图中是否存在错误或不合理(不理想)的部(1)分层数据流图的一致性父图与子图平衡任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致数据守恒一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生多余的数据流:加工未使用其输入数据流中的某些数据项局部文件一个加工的输出数据流不能与该加工的输入数据流同名(1)分层数据流图的一致性父图与子图平衡父图与子图不平衡的实例加工2的输入数据流有M和N,输出数据流是T而子图(右图)边界上的输入数据流是N,输出数据流是S和T123ABCMNT2.12.22.3NPSTQ父图与子图不平衡的实例加工2的输入数据流有M和N,输出数据流父图与子图平衡的实例注意:如果父图某加工的一个数据流,对应于子图中几个数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这个数据流,那么它们仍算是平衡的.e2.52.42.32.22.1b2b1acdb21acde(a)父图(b)子图父图与子图平衡的实例注意:如果父图某加工的一个数据流,对应于数据不守恒的实例由于“正式成绩清单”中缺少“考生通知单”中的姓名、通信地址等数据,这些数据也无法由加工2.3自己产生,因此,加工2.3不满足数据守恒的条件考生名册2.5分析试题难度难度分析表2.4分类统计成绩分类统计表2.3制作通知单考生通知单2.2审定合格者正式成绩清单合格标准试题得分清单2.1检查成绩清单成绩清单正确成绩清单错误成绩清单由此可见:
1.数据流的组成对DFD是有影响的2.构建DFD与建立数据字典应交替进行,以便于对分层DFD的校验数据不守恒的实例由于“正式成绩清单”中缺少“考生通知单”中的加工的输出数据流不能与该加工的输入数据流同名同一个加工的输出数据流和输入数据流即使组成成份相同,仍应对它们取不同的名字,以表示它们是不同数据流。例如,“报名单”和“合格报名单”允许一个加工有二个相同的数据流分别流向二个不同的加工。加工的输出数据流不能与该加工的输入数据流同名同一个加工的输出(2)分层数据流图的完整性每个加工至少有一个输入数据流和一个输出数据流在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典的一致分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约(2)分层数据流图的完整性每个加工至少有一个输入数据流和一个(3)其它需注意的问题适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命名对象的实际含义名字应反映整个对象(如数据流、加工),而不是仅反映它的某一部分避免使用空洞的、含义不清的名字,如数据、信息、处理、统计等如果发现某个数据流或加工难以命名时,往往是DFD分解不当的征兆,此时应考虑重新分解画数据流而不是画控制流判断准则:这条线上是否有数据流过(3)其它需注意的问题适当命名:每个数据流、加工、文件、源和避免一个加工有过多的数据流当一个加工存在许多数据流时往往意味着分解不合理解决办法:重新分解1)把需要重新分解的某张图(含有该复杂加工的图)的所有子图连接成一张图2)把连接后的图重新划分成几个部分,使各部分之间的联系最小3)重新定义父图,即第2)步中的每个部分作为父图中的一个加工4)重新建立各子图,即第2)步中的每个部分都是一张子图5)为所有的加工重新命名和编号避免一个加工有过多的数据流数据流图重新分解示例(b)原加工2子图2.22.12.32.42.5HJICKLEMN(d)重新分解后的父图452’32”1ABHGJICKLDEMFPN(a)原父图34512HABJICKLDEMFPNG(c)合并4532.42.52.22.12.31FABHJICKLDEMPNG数据流图重新分解示例(b)原加工2子图2.22.12.局部文件考虑分层数据流中一个文件应画在哪些DFD中,而不该画在哪些DFD中任何一个文件都应同时包含读和写该文件的数据流,除非该文件是当前系统与另一个软件系统所共享(应在需求说明中指明)在一张DFD中当一个文件作为若干个加工之间的交界面(一个写另一个读)时该文件应画出在一张DFD中当一个文件仅与一个加工进行读写操作,并且在该DFD的父(祖先)图中未出现过该文件则该文件是相应加工的内部文件,在当前DFD中不应画出一个文件一旦在某张DFD中画出,那么在它的子孙图中应根据父图与子图平衡的原则画出该文件在子孙图中,这个文件可能只有读或写文件中的一种数据流局部文件考虑分层数据流中一个文件应画在哪些DFD中,而不该画(3)其它需注意的问题分解尽可能均匀理想目标:任何两个加工的分解层数之差不超过1应尽可能使分解均匀,对于分解不均匀的情况应重新分解先考虑稳定状态,忽略琐碎的枝节先考虑稳定状态下的各种问题,暂时不考虑系统如何启动、如何结束、出错处理以及性能等问题随时准备重画对于一个复杂的软件系统,往往要经过反复多次的重画和修改才能构造出完整、合理、满足用户需求的分层DFD分析阶段遗漏下来的一个错误,到开发后期要化费几百倍代价来纠正这个错误(3)其它需注意的问题分解尽可能均匀4、数据字典数据流图与数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)数据字典由字典条目组成,每个条目描述DFD中的一个元素数据字典条目包括:数据流、文件、数据项(组成数据流和文件的数据)、加工、外部实体。4、数据字典数据流图与数据字典是密不可分的,两者结合起来构成数据字典的描述符号数据字典的描述符号(1)数据字典的构成数据字典(DD,DataDictionary):对于数据流图中出现的所有被命名的图形元素加以定义,使得每一个图形元素的名字都有一个确切的解释。其定义应是严密的、精确的,无二义性的,它由以下内容组成:数据流词条数据元素词条数据文件词条加工词条外部实体(1)数据字典的构成数据字典(DD,DataDiction数据流词条数据流名称唯一标识数据流的名称简要描述简要介绍该数据流的作用,即它产生的原因和结果数据流来源来源于何处数据流去向流向何处数据流组成描述该数据流的内部数据元素的组成备注需要的情况下描述数据流量和流通量等信息数据流词条数据流名称唯一标识数据流的名称简要描述简要介绍该数例:图书馆管理系统DFD的数据字典1、数据流词条(1)数据流名:图书信息说明:图书信息是图书信息的描述;数据流来源:图书馆管理系统。 数据流去向:图书馆管理人员 数据流定义:图书信息=图书编号+ISBN+作者+出版社+价格+书架号+{借阅情况}例:图书馆管理系统DFD的数据字典数据字典1、数据流词条(2)数据流名:读者信息 说明:读者信息是读者的描述信息; 数据流来源:图书馆管理系统。 数据流去向:图书馆管理人员和读者 数据流定义:读者信息=读者编号+姓名+性别+有效证件号码+联系方式数据字典数据字典1、数据流词条(3)数据流名:借阅信息 说明:借阅信息是读者借阅图书的情况; 数据流来源:图书馆管理系统 数据流去向:图书馆管理员和读者 数据流定义:借阅信息=读者编号+{图书编号+借书日期+应还日期}数据字典数据元素词条数据元素名称唯一标识数据元素的名称或编号简要描述简要描述该数据元素的作用,以及位于哪一个数据结构内类型数字、字符等类型长度该数据类型规定的取值范围,例如姓名的长度为60个字符取值范围该姓名的取值范围必须大于2个字符且小于60个字符备注数据元素词条数据元素名称唯一标识数据元素的名称或编号简要描述数据字典2、数据元素(1)数据元素名:姓名 说明:读者(借阅图书)名称,来自“读者基本信息表”; 数据类型:字符型 长度:60 取值范围:GB2312
备注:无数据字典数据文件词条数据文件名称唯一标识数据文件的名称简要描述简要描述该数据文件存放的是什么数据输入数据写入该数据文件的数据内容或数据结构输出数据从该数据文件读出的数据内容或数据结构数据文件组成描述该数据文件的数据结构组成存储方式数据文件的操作方式以及关键字备注数据文件词条数据文件名称唯一标识数据文件的名称简要描述简要描数据字典3、数据文件词条(1)数据文件名:读者信息表 简述:存放的是读者的基础信息数据。 数据文件组成:表单形式存储 文件内容:读者信息表=学号+姓名+性别+出生日期+有效证件号码+联系方式+登记日期+有效期至; 存储方式:以学生学号/教工工资号为记录关键字升序排列数据字典数据字典2、数据文件词条(2)数据文件名:借阅信息表 简述:存放的是借书信息数据。 数据文件组成:表单形式存储 文件内容:借阅信息表=图书编号+读者编号+借阅日期+应还日期+状态 存储方式:以图书编号和读者编号为记录关键字升序排列数据字典加工词条加工名称唯一标识加工的名称简要描述描述加工逻辑和规则以及功能简述加工编号反映该加工的层次输入数据流描述进入该加工的一个或多个数据流输出数据流描述流出该加工的一个或多个数据流加工逻辑简述该加工的逻辑或规则(参见加工逻辑说明一节)备注加工词条加工名称唯一标识加工的名称简要描述描述加工逻辑和规则3、加工词条加工名称:过期罚款管理加工描述:过期还书罚款加工过程加工编号:3.2.2输入数据流:过期信息输出数据流:罚款数加工规则:BEGIN
读取过期信息;
读取图书基本信息;
按每天0.5元计算罚款金额;
IF罚款金额>图书价格的3倍
THEN罚款金额=图书价格的3倍;输出罚款金额;END3、加工词条外部实体词条外部实体名称唯一标识外部实体的名称简要描述指明该实体的性质以及与系统之间的关系有关数据流指明该外部实体与系统之间交互的数据流有哪些备注外部实体词条外部实体名称唯一标识外部实体的名称简要描述指明外部实体词条3、实体词条实体名称:管理员简要描述:管理图书借阅等
一切事宜数据流:1、借还(还)书信息2、罚款信息外部实体词条3、实体词条5、加工逻辑说明在写基本加工逻辑的说明时,应满足如下的要求:对数据流图的每一个基本加工,必须有一个加工逻辑说明;加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则;加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。5、加工逻辑说明在写基本加工逻辑的说明时,应满足如下的要求:加工逻辑的描述方法结构化语言:介于自然语言和形式语言之间的一种半形式语言判定表:适用于加工逻辑包含多个条件,而不同的条件组合需做不同的动作判定树:判定表的变种,它本质上与判定表是相同的,只是表示形式不同加工逻辑的描述方法结构化语言:介于自然语言和形式语言之间的一(1)结构化英语PDL结构化英语也称为PDL,是一种介于自然语言和形式化语言之间的半形式化语言。它是在自然语言基础上加了一些限制而得到的语言,是使用有限的词汇和有限的语句来描述加工逻辑。
其词汇表由英语命令动词、数据词典中定义的名字、有限的自定义词和控制结构关键词:IF_THEN_ELSEWHILE_DOREPEAT_UNTILCASE_OF等组成。其动词的含义要具体,尽可能少用或不用形容词和副词。
(1)结构化英语PDL结构化英语也称为PDL,是一种介于自然结构化语言书写加工规约注意事项语句力求精炼语句必须易读、易理解、无二义主要使用祈使句,祈使句中的动词要明确表达要执行的动作所有名字必须是数据字典中有定义的名字不使用形容词、副词等修饰语不使用含义相同的动词,如“修改”、“修正”等可以使用常用的算术和关系运算符总之要尽可能精确、无二义、简明扼要、易理解结构化语言书写加工规约注意事项语句力求精炼3、加工词条(1)加工3.2.2:过期罚款管理加工逻辑:BEGIN
读取过期信息;
读取图书基本信息;
按每天0.5元计算罚款金额;
IF罚款金额>图书价格的3倍
THEN罚款金额=图书价格的3倍;输出罚款金额;END3、加工词条(2)判定表判定表的组成元素条件桩(ConditionStub):列出各种条件的对象,如发货单金额,赊欠天数等,每行写一个条件对象条件条目(Conditienentry):列出各条件对象的取值,条件条目的每一列表示了一个可能的条件组合动作桩(actionstub):列出所有可能采取的动作,如发出发货单等,每行写一个动作动作条目(actioneutry):列出各种条件组合下应采取的动作“审批发货单”加工的判定表发货单金额>500>500≤500≤500赊欠天数>60≤60>60≤60发不批准通知√发出批准书√√√发出发货单√√√发出赊欠报告√(2)判定表判定表的组成元素“审批发货单”加工的判定表发货单判定表的其它形式发货单金额>500≤500-赊欠天数>60>60≤60发不批准通知√发出批准书√√发出发货单√√发出赊欠报告√发货单金额≤5000011发货单金额>5001100赊欠天数≤600101赊欠天数>601010发不批准通知√发出批准单√√√发出发货单√√√发出赊欠报告√“审批发货单”加工的简化判定表“审批发货单”加工的另一种判定表判定表的其它形式发货单金额>500≤500-赊欠天数>60>(3)判定树本质上与判定表是相同的,只是表示形式不同例如“审批发货单”加工逻辑的判定树描述入下:(3)判定树本质上与判定表是相同的,只是表示形式不同5、状态迁移图状态迁移图(STD),是一种描述系统的状态、以及相互转化关系的图形方式。一般有四要素。①现态:是指当前所处的状态。②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。也可概括为:状态、迁移条件。5、状态迁移图状态迁移图(STD),是一种描述系统的状态、以①状态框:用方框表示状态,包括所谓的“现态”和“次态”。②条件及迁移箭头:用箭头表示状态迁移的方向,并在该箭头上标注触发条件。③节点圆圈:当多个箭头指向一个状态时,可以用节点符号(小圆圈)连接汇总。④动作框:用椭圆框表示。⑤附加条件判断框:用六角菱形框表示。电梯系统的状态迁移图①状态框:用方框表示状态,包括所谓的“现态”和“次态”。
状态迁移表除了状态迁移图,我们还可以用表格的形式来表示状态之间的关系。这种表一般称为状态迁移表。作为状态迁移图的有益补充状态迁移表除了状态迁移图,我们还可以用表格的形式来表示状态SA方法的适用范围:
主要适用于数据处理,特别是大型管理信息系统的需求分析,主要用于分析系统的功能,是一种直接根据数据流划分功能层次的分析方法。SA方法的特点:
(1)表达问题时尽可能使用图形符号的方式,这样即使非计算机专业人员也易于理解;(2)设计数据流图时只考虑系统必须完成的基本功能,不需要考虑如何具体地实现这些功能。小结:SA方法的适用范围:小结:作业:完成智能停车场收费系统的数据流程图和数据字典设计。作业:完成智能停车场收费系统的数据流程图和数据字典设计。第二章系统分析
——结构化分析方法第二章系统分析
——结构化分析方法本节内容:结构化方法概述结构化建模工具数据流图数据字典描述语言/方法本节内容:结构化方法概述为什么需要建模?软件工程中模型的概念 对客观世界的问题领域进行抽象并用某种描述方法给予表示的结果称为模型。特点 由于软件工程中多数模型是用于表示问题领域中的元素以及元素间的关系或相互作用等,故在建模过程中应该注意问题域中有什么对象,应该选择什么样的关系或动作,然后用适当的模型给予表示。为什么需要建模?软件工程中模型的概念1、结构化方法概述分析建模的开始于20世纪60-70年代,但结构化分析方法的第一次出现是作为另一个重要课题—“结构化设计”的附属品。其目的是需要一种图形符号体系来表示数据和对数据进行变换的处理,这些处理最终能被映射到软件体系结构的设计中。结构化分析这个词汇最初由DouglasRoss提出,由DeMarco进行了推广,定义了创建信息流模型的关键图形符号。1、结构化方法概述分析建模的开始于20世纪60-70年代,但一种面向数据流的传统软件开发方法,以数据流为中心构建软件的分析模型和设计模型。分为:结构化分析(StructuredAnalysis简称SA)结构化设计(StructuresdDesign简称SD)结构化程序设计(StructuredProgrammin简称SP)1、结构化方法概述一种面向数据流的传统软件开发方法,以数据流为中心构建软件的分主要思想:抽象与自顶向下的逐层分解
(控制复杂性的两个基本手段)抽象:在每个抽象层次上忽略问题的内部复杂性,只关注整个问题与外界的联系。分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止。1、结构化方法概述主要思想:抽象与自顶向下的逐层分解
(控制复杂性的两个基本手抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出。分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)。2.42.32.22.121431.31.21.1X抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关2、结构化建模主要工具数据字典:是模型的核心。数据流图(DFD图):描述数据流在系统中流动的过程,及对数据流进行变换的功能,用于功能建模。实体关系图(ER图):描述数据对象间的关系,用于数据建模。状态迁移图(STD图):描述对外部事件的响应方式,表示系统的各种行为模式(称为状态)以及在状态间进行变迁的方式,用于行为建模。
2、结构化建模主要工具数据字典:是模型的核心。3、数据流图DataFlowDiagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模,基本元素包括:数据流(dataflow):由一组固定成分的数据组成,代表数据的流动方向;加工(process):即处理,描述输入数据流到输出数据流的变换;文件(file):使用文件、数据库等保存某些数据结果供以后使用;源或宿(sourceorsink):即外部实体,表示数据输入源和输出汇点,用实体名字来表示;或或或3、数据流图DataFlowDiagram(简称DFD)(1)源或宿存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此也称为源点和终点。例如,对一个图书馆信息管理系统而言读者向系统提供查询条件(输入数据流),所以读者是管理系统的一个源管理系统向供货商发出购书请求(输出数据流),所以供货商是管理系统的一个源源或宿用相同的图形符号表示当数据流从该符号流出时表示是源当数据流流向该符号时表示是宿当两者皆有时表示既是源又是宿(1)源或宿存在于软件系统之外的人员或组织,表示软件系统输入(2)加工和文件加工:描述输入数据流到输出数据流的变换每个加工用一个定义明确的名字标识至少有一个输入数据流和一个输出流可以有多个输入数据流和多个输出数据流文件:保存数据信息的外部单元每个文件用一个定义明确的名字标识由加工进行读写DFD中称为文件,但在具体实现时可以用文件系统实现也可以用数据库系统等实现(2)加工和文件加工:描述输入数据流到输出数据流的变换(3)数据流每个数据流用由一组固定成分的数据组成并拥有一个定义明确的名字标识如:图书馆管理系统中,读者信息(数据流)由编号、姓名、性别、有效证件号码、联系方式、登记日期、有效期等数据组成数据流的流向从一个加工流向另一个加工从加工流向文件(写文件)从文件流向加工(读文件)从源流向加工从加工流向宿(3)数据流每个数据流用由一组固定成分的数据组成并拥有一个定例:图书订购系统DFD图书库存入库单图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据帐单库存状态查询信息/库存变化库存状态库存查询采购单例:图书订购系统DFD图书库存入库单图书代理商书库收费制作财数据流图的扩充符号描述一个加工的多个数据流之间的关系星号(*):表示数据流之间存在“与”关系所有输入数据流同时存在时,才能进行加工处理或加工处理的结果是同时产生所有输出数据流加号(+):表示数据流之间存在“或”关系至少存在一个输入数据流时才能进行加工处理或加工处理的结果是至少产生一个输出数据流异或(⊕):表示数据流之间存在“异或”(互斥)关系必须存在且仅存在一个输入数据流时,才能进行加工处理或加工处理的结果是产生且仅产生一个输出数据流数据流图的扩充符号描述一个加工的多个数据流之间的关系
多个数据流之间的关系
多个数据流之间的关系对数据流图进行分层根据自顶向下逐层分解的思想将数据流图画成层次结构GeorgeMiller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在5~9件事情之内每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中对数据流图进行分层根据自顶向下逐层分解的思想将数据流图画成层数据流图的各个层次顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流。顶层图中的加工经分解后的图称为0层图(只有1张)。中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图。处于最底层的图称为底层图,其中所有的加工不再分解成新的子图。数据流图的各个层次顶层图只有代表整个软件系统的1个加工,描述图和加工的编号顶层图只有一个代表整个软件系统的加工,该加工不必编号。0层图中的加工编号分别为1,2,3,…(或1.0,2.0…)子图号:若父图中的加工号x分解成某一子图,则该子图号记为“图x”子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、x.3…图和加工的编号顶层图只有一个代表整个软件系统的加工,该加工不数据流图的分层示意图顶层0层1层n层…数据流图的分层示意图顶层0层1层n层…实例说明——图书馆信息管理系统(1)书籍管理书籍类别管理:增、删除、改等管理。书籍信息管理:新书入库,书籍信息修改,管理员按不同方式查询、统计,读者按不同方式查询。出版社信息管理:增、删除、改等管理。图书注销:从书籍信息表中删去破损的书籍记录。(2)读者管理读者类别信息管理:增、删除、改等管理。读者信息管理:办理、挂失、暂停借、注销阅卡,录入、修改、删除读者信息。(3)借阅管理借书管理:根据借阅卡编号和图书编号,进行借书登记。把超期图书以列表的形式显示出来,并以电子邮件或打印成书面通知读者。提供读者网上查询自己的借阅情况(包括超期提示)。续借管理:提供读者在符合规定的情况下网上续借。还书管理:在借阅信息表中找到相应的记录,将借书记录删除,更新该记录的相应数据(图书信息表)。根据违反规定情况计算和登记罚款记录。实例说明——图书馆信息管理系统(1)书籍管理顶层图顶层图0层图0层图1层图——对1.0的分解1层图——对1.0的分解1层图——对2.0的分解1层图——对2.0的分解1层图——对3.0的分解1层图——对3.0的分解2层图(底层图)
——对3.2的分解(1)2层图(底层图)2层图(底层图)
——对3.2的分解(2)2层图(底层图)总结:画分层数据流图的步骤1.画系统的输入和输出2.画系统内部3.画加工内部4.重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)总结:画分层数据流图的步骤1.画系统的输入和输出绘制数据流程图的规则对于源点/宿点:数据不能直接从源点移动到宿点。必须由加工移动数据;否则该数据流不在DFD上出现;源点/宿点的标签时名词短语;
正确:绘制数据流程图的规则对于源点/宿点:正确:绘制数据流程图的规则对于加工:不存在只有输出的加工处理,如果只有输出,那它必定是一个源点;不存在只有输入的加工处理,如果只有输入,那它必定是一个宿点;加工处理的标签是动词短语。绘制数据流程图的规则对于加工:对于文件(数据存储):数据不能从一个文件直接移到另一个文件,数据必须由加工移动;数据不能直接从外部源点移动到文件;数据不能直接从文件移动到外部宿点;文件标签是名词短语。绘制数据流程图的规则对于文件(数据存储):绘制数据流程图的规则绘制数据流程图的规则对于数据流:一个数据流在符号之间的流动是单向的。若是双向移动,应用两个单独的箭头表示。数据流中分叉意味着完全相同的数据从一个共同的位置转向两个或多个不同的加工、文件或外部实体。数据流不能直接回到它离开的同一个加工。另外必须至少有一个加工操作该数据流、产生另外的数据流和最初的数据流返回给开始的加工。到达文件的数据流意味着更新(增、删、改)。离开文件的数据流意味着检索或使用。数据流的标签是名词短语。在同一箭头上所有流作为一个包一起移动时,可以在一个箭头上出现多个数据流名词短语。绘制数据流程图的规则对于数据流:第二章系统分析—结构化分析方法课件分层数据流图的审查检查图中是否存在错误或不合理(不理想)的部分一致性:分层DFD中不存在矛盾和冲突完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素其他需要注意的问题分层数据流图的审查检查图中是否存在错误或不合理(不理想)的部(1)分层数据流图的一致性父图与子图平衡任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致数据守恒一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生多余的数据流:加工未使用其输入数据流中的某些数据项局部文件一个加工的输出数据流不能与该加工的输入数据流同名(1)分层数据流图的一致性父图与子图平衡父图与子图不平衡的实例加工2的输入数据流有M和N,输出数据流是T而子图(右图)边界上的输入数据流是N,输出数据流是S和T123ABCMNT2.12.22.3NPSTQ父图与子图不平衡的实例加工2的输入数据流有M和N,输出数据流父图与子图平衡的实例注意:如果父图某加工的一个数据流,对应于子图中几个数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这个数据流,那么它们仍算是平衡的.e2.52.42.32.22.1b2b1acdb21acde(a)父图(b)子图父图与子图平衡的实例注意:如果父图某加工的一个数据流,对应于数据不守恒的实例由于“正式成绩清单”中缺少“考生通知单”中的姓名、通信地址等数据,这些数据也无法由加工2.3自己产生,因此,加工2.3不满足数据守恒的条件考生名册2.5分析试题难度难度分析表2.4分类统计成绩分类统计表2.3制作通知单考生通知单2.2审定合格者正式成绩清单合格标准试题得分清单2.1检查成绩清单成绩清单正确成绩清单错误成绩清单由此可见:
1.数据流的组成对DFD是有影响的2.构建DFD与建立数据字典应交替进行,以便于对分层DFD的校验数据不守恒的实例由于“正式成绩清单”中缺少“考生通知单”中的加工的输出数据流不能与该加工的输入数据流同名同一个加工的输出数据流和输入数据流即使组成成份相同,仍应对它们取不同的名字,以表示它们是不同数据流。例如,“报名单”和“合格报名单”允许一个加工有二个相同的数据流分别流向二个不同的加工。加工的输出数据流不能与该加工的输入数据流同名同一个加工的输出(2)分层数据流图的完整性每个加工至少有一个输入数据流和一个输出数据流在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典的一致分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约(2)分层数据流图的完整性每个加工至少有一个输入数据流和一个(3)其它需注意的问题适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命名对象的实际含义名字应反映整个对象(如数据流、加工),而不是仅反映它的某一部分避免使用空洞的、含义不清的名字,如数据、信息、处理、统计等如果发现某个数据流或加工难以命名时,往往是DFD分解不当的征兆,此时应考虑重新分解画数据流而不是画控制流判断准则:这条线上是否有数据流过(3)其它需注意的问题适当命名:每个数据流、加工、文件、源和避免一个加工有过多的数据流当一个加工存在许多数据流时往往意味着分解不合理解决办法:重新分解1)把需要重新分解的某张图(含有该复杂加工的图)的所有子图连接成一张图2)把连接后的图重新划分成几个部分,使各部分之间的联系最小3)重新定义父图,即第2)步中的每个部分作为父图中的一个加工4)重新建立各子图,即第2)步中的每个部分都是一张子图5)为所有的加工重新命名和编号避免一个加工有过多的数据流数据流图重新分解示例(b)原加工2子图2.22.12.32.42.5HJICKLEMN(d)重新分解后的父图452’32”1ABHGJICKLDEMFPN(a)原父图34512HABJICKLDEMFPNG(c)合并4532.42.52.22.12.31FABHJICKLDEMPNG数据流图重新分解示例(b)原加工2子图2.22.12.局部文件考虑分层数据流中一个文件应画在哪些DFD中,而不该画在哪些DFD中任何一个文件都应同时包含读和写该文件的数据流,除非该文件是当前系统与另一个软件系统所共享(应在需求说明中指明)在一张DFD中当一个文件作为若干个加工之间的交界面(一个写另一个读)时该文件应画出在一张DFD中当一个文件仅与一个加工进行读写操作,并且在该DFD的父(祖先)图中未出现过该文件则该文件是相应加工的内部文件,在当前DFD中不应画出一个文件一旦在某张DFD中画出,那么在它的子孙图中应根据父图与子图平衡的原则画出该文件在子孙图中,这个文件可能只有读或写文件中的一种数据流局部文件考虑分层数据流中一个文件应画在哪些DFD中,而不该画(3)其它需注意的问题分解尽可能均匀理想目标:任何两个加工的分解层数之差不超过1应尽可能使分解均匀,对于分解不均匀的情况应重新分解先考虑稳定状态,忽略琐碎的枝节先考虑稳定状态下的各种问题,暂时不考虑系统如何启动、如何结束、出错处理以及性能等问题随时准备重画对于一个复杂的软件系统,往往要经过反复多次的重画和修改才能构造出完整、合理、满足用户需求的分层DFD分析阶段遗漏下来的一个错误,到开发后期要化费几百倍代价来纠正这个错误(3)其它需注意的问题分解尽可能均匀4、数据字典数据流图与数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)数据字典由字典条目组成,每个条目描述DFD中的一个元素数据字典条目包括:数据流、文件、数据项(组成数据流和文件的数据)、加工、外部实体。4、数据字典数据流图与数据字典是密不可分的,两者结合起来构成数据字典的描述符号数据字典的描述符号(1)数据字典的构成数据字典(DD,DataDictionary):对于数据流图中出现的所有被命名的图形元素加以定义,使得每一个图形元素的名字都有一个确切的解释。其定义应是严密的、精确的,无二义性的,它由以下内容组成:数据流词条数据元素词条数据文件词条加工词条外部实体(1)数据字典的构成数据字典(DD,DataDiction数据流词条数据流名称唯一标识数据流的名称简要描述简要介绍该数据流的作用,即它产生的原因和结果数据流来源来源于何处数据流去向流向何处数据流组成描述该数据流的内部数据元素的组成备注需要的情况下描述数据流量和流通量等信息数据流词条数据流名称唯一标识数据流的名称简要描述简要介绍该数例:图书馆管理系统DFD的数据字典1、数据流词条(1)数据流名:图书信息说明:图书信息是图书信息的描述;数据流来源:图书馆管理系统。 数据流去向:图书馆管理人员 数据流定义:图书信息=图书编号+ISBN+作者+出版社+价格+书架号+{借阅情况}例:图书馆管理系统DFD的数据字典数据字典1、数据流词条(2)数据流名:读者信息 说明:读者信息是读者的描述信息; 数据流来源:图书馆管理系统。 数据流去向:图书馆管理人员和读者 数据流定义:读者信息=读者编号+姓名+性别+有效证件号码+联系方式数据字典数据字典1、数据流词条(3)数据流名:借阅信息 说明:借阅信息是读者借阅图书的情况; 数据流来源:图书馆管理系统 数据流去向:图书馆管理员和读者 数据流定义:借阅信息=读者编号+{图书编号+借书日期+应还日期}数据字典数据元素词条数据元素名称唯一标识数据元素的名称或编号简要描述简要描述该数据元素的作用,以及位于哪一个数据结构内类型数字、字符等类型长度该数据类型规定的取值范围,例如姓名的长度为60个字符取值范围该姓名的取值范围必须大于2个字符且小于60个字符备注数据元素词条数据元素名称唯一标识数据元素的名称或编号简要描述数据字典2、数据元素(1)数据元素名:姓名 说明:读者(借阅图书)名称,来自“读者基本信息表”; 数据类型:字符型 长度:60 取值范围:GB2312
备注:无数据字典数据文件词条数据文件名称唯一标识数据文件的名称简要描述简要描述该数据文件存放的是什么数据输入数据写入该数据文件的数据内容或数据结构输出数据从该数据文件读出的数据内容或数据结构数据文件组成描述该数据文件的数据结构组成存储方式数据文件的操作方式以及关键字备注数据文件词条数据文件名称唯一标识数据文件的名称简要描述简要描数据字典3、数据文件词条(1)数据文件名:读者信息表 简述:存放的是读者的基础信息数据。 数据文件组成:表单形式存储 文件内容:读者信息表=学号+姓名+性别+出生日期+有效证件号码+联系方式+登记日期+有效期至; 存储方式:以学生学号/教工工资号为记录关键字升序排列数据字典数据字典2、数据文件词条(2)数据文件名:借阅信息表 简述:存放的是借书信息数据。 数据文件组成:表单形式存储 文件内容:借阅信息表=图书编号+读者编号+借阅日期+应还日期+状态 存储方式:以图书编号和读者编号为记录关键字升序排列数据字典加工词条加工名称唯一标识加工的名称简要描述描述加工逻辑和规则以及功能简述加工编号反映该加工的层次输入数据流描述进入该加工的一个或多个数据流输出数据流描述流出该加工的一个或多个数据流加工逻辑简述该加工的逻辑或规则(参见加工逻辑说明一节)备注加工词条加工名称唯一标识加工的名称简要描述描述加工逻辑和规则3、加工词条加工名称:过期罚款管理加工描述:过期还书罚款加工过程加工编号:3.2.2输入数据流:过期信息输出数据流:罚款数加工规则:BEGIN
读取过期信息;
读取图书基本信息;
按每天0.5元计算罚款金额;
IF罚款金额>图书价格的3倍
THEN罚款金额=图书价格的3倍;输出罚款金额;END3、加工词条外部实体词条外部实体名称唯一标识外部实体的名称简要描述指明该实体的性质以及与系统之间的关系有关数据流指明该外部实体与系统之间交互的数据流有哪些备注外部实体词条外部实体名称唯一标识外部实体的名称简要描述指明外部实体词条3、实体词条实体名称:管理员简要描述:管理图书借阅等
一切事宜数据流:1、借还(还)书信息2、罚款信息外部实体词条3、实体词条5、加工逻辑说明在写基本加工逻辑的说明时,应满足如下的要求:对数据流图的每一个基本加工,必须有一个加工逻辑说明;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考物理总复习专题七电场第2讲电势能、电势、电势差练习含答案
- 《品牌规划方案》课件
- 高中信息技术 《虚拟现实初探》教案 沪教版选修5
- 八年级物理下册 第九章 压强 第1节 压强第2课时 压强的综合运用教案(新版)新人教版
- 2024年五年级数学上册 三 游三峡-小数除法信息窗2 除数是小数的小数除法除法教案 青岛版六三制
- 2024-2025版新教材高中化学 第2章 第2节 第2课时 离子反应教案 鲁科版必修第一册
- 2023九年级数学下册 第24章 圆24.4 直线与圆的位置关系第3课时 切线长定理教案 (新版)沪科版
- 2024年七年级生物下册 2.1.3营养物质的吸收和利用教学设计 (新版)冀教版
- 应急管理工作格言
- 食堂管理制度概要
- 【8物(科)期中模拟】合肥市2023-2024学年八年级上学期期中模拟物理作业试卷
- 情商与智慧人生学习通超星期末考试答案章节答案2024年
- 液化气站双重预防体系手册
- 盘扣式卸料平台施工方案
- 《无人驾驶航空器飞行管理暂行条例》考试复习题库(含答案)
- 2024年榆林交通投资建设集团有限公司招聘笔试冲刺题(带答案解析)
- 空乘人员生涯发展展示
- 新探索研究生英语(基础级)读写教程参考答案Language-focus
- 习近平总书记关于教育的重要论述研究学习通章节答案期末考试题库2023年
- 毕业设计毕业论文热压机的PLC控制设计
- 新重症医学科优质护理服务实施方案
评论
0/150
提交评论