《结构化分析与设计》PPT课件.ppt

上传人:牧羊曲112 文档编号:5568162 上传时间:2023-07-28 格式:PPT 页数:171 大小:1.19MB
返回 下载 相关 举报
《结构化分析与设计》PPT课件.ppt_第1页
第1页 / 共171页
《结构化分析与设计》PPT课件.ppt_第2页
第2页 / 共171页
《结构化分析与设计》PPT课件.ppt_第3页
第3页 / 共171页
《结构化分析与设计》PPT课件.ppt_第4页
第4页 / 共171页
《结构化分析与设计》PPT课件.ppt_第5页
第5页 / 共171页
点击查看更多>>
资源描述

《《结构化分析与设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构化分析与设计》PPT课件.ppt(171页珍藏版)》请在三一办公上搜索。

1、第3章 结构化分析与设计 Chapter 3 Structured Analysis and Design,3.1 概述3.1.1 结构化分析与设计的由来 1.瀑布模型的首次实践,2.SA与SD的流程结构化分析(工具:DFD、PSPEC)分析模型(分层DFD图)+SRS 结构化设计(工具:SC图)初始设计模型(初始SC图)最终设计模型(最终SC图)注:数据流图(DFD,Data Flow Diagram)加工说明(PSPEC,Process SPECification)软件需求规格说明书”(SRS,Software Requirement Specification)结构图(SC,Struct

2、ure Chart),3.基本任务与指导思想(1)结构化分析SA有两个主要任务:建立分析模型(Build Analysis Model)通过对问题及其环境的理解、分析和综合,建立分析模型。该模型包括问题所涉及的信息流、功能、性能、用户界面及设计约束等,它是形成需求说明书、进行软件设计的基础。,编写需求规格说明书(SRS)在完全弄清用户对软件系统的确切要求的基础上,用“需求规格说明书”(SRS)把用户的需求表达出来。需求规格说明书为开发人员和用户提供软件开发完成时质量评价的依据。SRS应该具有准确性;SRS应该防止二义性;SRS应该直观、易读、易于修改。,The SRS have some ch

3、aracteristics.CorrectConsistentUn-ambiguityFeasibleTestable需求规格说明书的特征:1、正确性。2、一致性:文档前后有无冲突?3、需求是无二义的吗?涉众的理解是一致的。4、可行性:需求是否可行?解决方案是否存在?5、可测试性:需求是可测试的。,SA的主要指导思想 抽象与分解(Abstraction and decomposition)抽象(Abstraction)是控制复杂性的基本策略之一。在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。在软件需求分析阶段,在最高抽象级别上,用“做什么”来描述问

4、题。然后不断具体化(分解)。抽象的层次愈低,呈现的细节愈多。,SA法概述,分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决(如右图)。,一、SA法的基本思想 结构化分析方法的基本思想是“分解”和“抽象”。,抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。,软件工程,9,自顶向下地进行功能分解,W,W1,W1.1,W1.2,W1.3,1、建立当前系统的“具体模型”。,三、SA法的描述方法1、分层的数据流图2、数据词典3、描述加工逻辑的

5、结构化语言、判定表及判定树,二、SA法的步骤,4、为了对目标系统做完整的描述,还需要考虑人机界面和其他一些问题。,3、建立目标系统的逻辑模型。,2、抽象出当前系统的逻辑模型。,(2)结构化设计软件设计分两个阶段完成:软件设计=总体设计+详细设计 总体设计(General Design;又称概要设计,Preliminary Design),进行总体结构设计和系统接口设计,把用数据流图(DFD)表示的系统分析模型转换为用结构图(Structure Chart,SC)表示的系统结构模型。详细设计(Detail Design)用以确定各个软件组件(模块)的数据结构和操作(算法)。,SC 图分两步完成:

6、初始设计模型(初始SC图)最终设计模型(最终SC图)初始SC图 总体设计 最终SC图 软件设计 详细设计:完成模块说明软件设计的指导思想分解与细化(Decomposition and Refinement)采用“自顶向下、逐步细化(Top-Down Stepwise Refinement)”的开发方法。,软件工程,13,概要设计,又称总体设计,基本任务将系统划分成模块结构形式;决定每个模块的功能;模块间的调用关系。主要产品:模块说明书:模块的组成及模块间的条用关系。模块的描述:功能、界面、过程、注释 功能:模块的输入、输出及其功能 界面:参数的传递关系 过程:模块内部实现,在详细设计完成后补充

7、进来 注释:对模块的一些限制和约束。参加人员:高级设计人员。,软件工程,14,详细设计基本概念,基本任务:描述模块执行过程;局部数据组织;控制流和每一步具体加工要求及实现细节描述方式:图形描述:流程图、盒图、问题分析图 语言描述:PDL 表格描述:判定表 参加人员:初级软件人员,3.1.2 SA模型的组成与描述例3.1 教材销售系统第一步:通过对现实环境的调查研究,获取当前系统的具体模型(物理模型)。,学生,图3.1 学生购买教材的当前系统模型(物理模型),购书申请,张秘书,购书发票,王会计,购书证明,李出纳,领书单,赵保管,学生,书,学生,图3.2 学生购买教材的逻辑模型(当前系统),购书单

8、,审查有效性,购书发票,开发票,有效购书单,开领书单,领书单,发书,学生,书,第二步:分析需求,建立系统分析模型(逻辑模型),包括当前系统和目标系统模型。,关注系统的功能,而不是执行功能的人或机构,学生,图3.3 目标系统的逻辑模型,购书单,审查并开发票,发票,开领书单,领书单,发书,学生,书,第三步:编写需求规格说明书。第四步:验证需求,完善和补充对目标系统的描述。通过目标系统的人-机界面,和用户一起确认目标系统功能;复审需求说明,补充迄今尚未考虑过的细节。,学生,图3.4 改进了的目标系统逻辑模型,购书单,审查并开发票,发票,开领书单,领书单,学生,无效书单,软件开发是要实现目标系统的物理

9、模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。,目标系统,当前系统,物理模型,逻辑模型,模型化,抽象化,物理模型,逻辑模型,具体化,实例化,导出,怎么做,做什么,图3.5 SA模型的组成,实体关系图(E-R图),状态转换图(STD),数据流图(DFD),数据对象说明,加工说明,数据字典 DD,控制说明,1.SA模型的组成,早期的(传统的)结构化分析模型是面向数据流的,采用“自顶向下、逐层分解”的分析策略,以数据字典(DD,Data Dictionary)、数据流图(DFD,Data Flow Diagram)、和加工说明(PSPEC,Pr

10、ocess SPECification)为主要工具,建立系统的逻辑模型(功能建模)。,扩充后的结构化分析模型,将建模技术扩展到数据建模和行为建模,以数据字典(DD,Data Dictionary)、实体-联系图(Entity-Relation Diagram,E-R图)、状态-迁移图(State Transform Diagram,STD)等为工具,从不同视点建立系统的分析模型。本课程主要讲述传统的结构化分析模型,2.SA模型的描述工具传统的结构化分析采用3种描述工具:数据流图(DFD)、数据字典(DD)和 加工说明(PSPEC)。,(1)数据流图(DFD)组成符号(数据流图中的4种图形元素)

11、,加工(Prosess):对数据流进行操作或变换,数据源点或终点(又称外部实体:系统外的人员或组织),数据流(Data Flow):数据在系统内传播的路径,数据文件(Data File 或Data Store):文件与加工之间的数据流可以不命名;从文件流出的数据流表示读文件或查询文件;流向文件的数据流表示写文件或修改文件。,(2)DFD的性质:需求分析中,用分层的数据流图来表示。,审查并开发票1,开领书单2,学生,学生,教材存量表,购书单,无效书单,发票,领书单,各班学生用书表,图3.7 教材销售系统的数据流图,软件工程,26,描述银行取款过程的数据流图,DFD的性质 DFD 不能表示控制结构

12、,如选择结构或循环结构。在需求分析中,常常用一组DFD图由粗到细地表示不同级别上的功能模型,称之为分层数据流图。,(2)数据字典(DD)数据字典的作用:对软件系统中的每个数据规定一个定义条目,以保持数据在系统中的一致性。出现在软件中的数据可分为3种情况:只含一个数据的数据项;由多个数据项组成的数据流;数据文件。,数据字典定义式中的符号,符 号 含 义 举 例 定义为 与 x=ab.|.或 x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a).连结符 x=1.9*注释 综合的例:x=a|b+c+(d),数据流(条目):给出DFD中数据流的定义,列出该数据流的各组成数据项,通常写

13、成公式的形状。例3.3 发票学号+姓名+书号+单价+数量+总价+书费合计 对较长和较复杂的数据流,可分层次描述,使条目更清楚。如上述数据流“发票”可表示为:发票(学号)姓名发票行书费合计发票行书号+单价+数量+总价,数据文件(条目):对数据文件的定义。例3.4文件名:各班学生用书表组成:系编号专业和班编号年级+书号 也可写成公式的形状,如:各班学生用书表=系编号专业和班编号年级+书号,数据项(条目):包含在数据流或数据文件中的数据项,一般都应在字典中设置相应的条目。例如:系编号=2数字2*二位数字,如01,12*年级=F/M/J/S*F:一年级(Freshman);M:二年级(sophoMor

14、e);J:三年级(Junior);S:四年级(Senior)*,软件工程,33,存折格式,软件工程,34,存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,(3)加工说明(条目):(Process SPECification,PSPEC)对数据流图的每一个基本加工,必须有一个加工说明,其主要内容如下所示:(1)加工名;(2)加工编号;(3)输入数据流;(4)输出数据流;(5

15、)加工逻辑;(6)执行频率。其中最重要的是加工逻辑。,加工逻辑描述基本加工如何把输入数据流变换为输出数据流的加工策略,而不需描述实现加工的细节。加工逻辑通常采用结构化语言(Structured Langauge)、判定表(Decision Table)、或 判定树(Decision Tree)作为描述工具。,结构化语言(Structured Language)是一种介于自然语言和形式化语言之间的语言。结构化语言可使用顺序、选择、循环等控制结构,其中选择和循环结构可分为内外二层,外层有严格的语法,内层语法比较灵活,可以用自然语言来表示。结构化语言的三种基本控制结构:顺序结构选择结构:if_the

16、n_else 或 switch_do;循环结构:while_do 或 for_do 或 do_while。,例3.6 售书系统中“审查并开发票”的加工逻辑,对购书单上的的每一个书号if(学生用书表中无此书号)then 把书号写到出错通知上else 按书号检索“教材存量表”,获得该书的单价和库存量 if(库存量购书单上的数量)then 进行缺书登记 else 将书号、单价、数量、总价等写入发票;更新“教材存量表”。,软件工程,39,结构化语言特点:,简单,易学,少二义性。不好处理组合条件。,判定表或判定树判定表(Decision Table)如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判

17、定表来描述比较合适。,软件工程,41,判定表,特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。,通常由四部分组成。条件框 条件定义。操作框 操作的定义。条件条目 各条件的取值及组合。操作条目 在各条件取值组合下所执行的操作。,例如:对商店每天的营业额所收税率,软件工程,42,例3.7 某公司对推销员的奖励办法:(1)每周推销金额10000元,按预收货款是否超过50%,分别奖励推销额的6%或4%;(2)每周推销金额10000元,按预收货款是否超过50%,分别奖励推销额的8%或5%;(3)对于月薪1000元的推销员,分别另发鼓励奖300、200 和 500、300元。,图3.9 判定表的

18、示例,判定树(Decision Tree)判定树也是用来表达加工逻辑的一种工具。有时它比判定表更直观。,推销金额 预收货款 推销员工资 奖金率 1000 8%+500 50%1000 8%10000 1000 5%+300 50%1000 5%推销奖金策略 1000 6%+300 50%1000 6%10000 1000 4%+200 50%1000 4%图3.10 判定树的示例,软件工程,46,例子:商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else(欠款未超期)发批准书,发货单 else(发货单金额未超

19、过$500)if 欠款超过60天 then 发批准书,发货单及赊欠报告 else(欠款未超期)发批准书,发货单,软件工程,47,以“检查发货单”为例,软件工程,48,判定树,3.1.3 SD模型的组成与描述 1.SD模型的组成,过程设计,接口设计,体系结构设计(SC图),数据设计,图3.11 SD模型的组成,2.SD模型的描述工具体系结构设计是用来确定软件结构的,其描述工具为结构图(Structure Chart),简称SC图。(1)SC图的组成符号:SD方法约定:(1)用矩形框表示模块;(2)用箭头或直线表示模块间的调用关系;(3)在调用线的两旁用短箭头表示传入和传出模块的数据流。,A,B,

20、C,X,Y,Z,Z,传入模块,X,Y,传出模块,Y,X,变换模块,X,Y,控制模块,X,X,Y,Y,SC图中允许使用的6种模块,源模块,X,漏模块,X,(a),(b),(c),(d),(e),(f),(a)传入模块 从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入流。(b)传出模块 从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出流。(c)变换模块 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。,(d)源模块 处于传入部分的始端,它不调用其它模块。它传送的数据流叫做物理输入流。(e)漏(终)模块 处于

21、传出部分的末端,它不调用其它模块。它传送的数据流叫做物理输出流。(f)控制模块 对所有下属模块进行协调和管理的模块。它只调用其它模块,不受其它模块调用。,(2)SC图中的模块调用(a)简单调用,A,B,C,X,Y,Z,Z,(b)选择调用:用菱型符号表示。(c)循环调用:用叠加在调用线始端的环形表示。,A,B,C,A,B,C,D,(a)选择调用示意图,(b)循环调用示意图,画SC图的注意事项(1)同名的模块在SC图中仅出现一次;(2)模块之间的调用关系只能从上而下,因而模块间的调用关系可以用直线表示;(3)同一层模块的调用次序,习惯上自左到右。,3.2 结构化系统分析(SA,Structured

22、 Analysis)结构化分析就是使用 DFD、DD、结构化语言、判定表和判定树等工具,来建立一种称为结构化说明书(即需求规格说明书)的目标文档。结构化分析的基本步骤是:(1)自顶向下对系统进行功能分解,画出分层的DFD图;(2)编制DD和PSPEC;(3)写出SRS。,3.2.1 画分层数据流图 大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不可能一次将它们画完整。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。每分解一次,系统的加工数量就增多一些,加工的功能也更具体一些。继续重复这种分解,直到所有的加工都足够简单为止。不需再分解的加工称为“基本

23、加工”。上述分解方法称为“自顶向下、逐步细化”(Top-Down Stepwise Refinement)。,分层的数据流图,数据流图绘制步骤(1)画系统的输入和输出(顶层图):顶层图表示系统与外部实体之间的数据交换关系。顶层图只包含一个加工(加工名即为系统名);顶层图描述系统与外部实体之间的数据流,即系统从哪些外部实体接收数据,发送数据到哪些外部实体。顶层图只有一张,,(2)画系统的内部:第二层DFD图(有些教科书上称为层图):分解顶层图为n个加工,系统有几个功能,就分解为几个加工;描述加工与外部实体之间、加工与数据文件之间、加工与加工之间的数据流。第二层层图只有一张,图中的加工号为“,,n

24、”。,画更下层数据流图(第3层图、第4层图、.)时,则分解上层图中的加工,直到图中尚未分解的加工都足够简单为止。子图号就是父图中被分解的加工号;子图中加工号由图号、小数点和序号组成。,软件工程,63,在多层数据流图中顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据;底层流图是指其加工不需再做分解的数据流图,它处在最底层;中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,首先要注意抽取数据流图的四种成分:源点/终点、处理、数据存储和数据流,软件工程,64,参考原则一个加工每次分解得到的子加工数最多不要超过7个。分解要自然,概念

25、上要合理、清晰。只要不影响数据流图的易理解性,可适当地多分解成几部分,以减少分解图的层数。一般在上层可分解得快些,而在中、下层应分解得慢些。,例3.8 教材购销系统,功能如下:(1)根据教学计划,向学生供应所需的教材。系统接受学生的购书单,检验购书单。若教材库存量充足,进行售书处理,即修改教材存量表,给学生开发票和领书单,学生凭单到书库领书;若教材库存量不足,对脱销的教材进行缺书登记。(2)根据缺书登记表采购所缺的教材,通知学生补购。按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。待购教材到货后,根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书

26、登记表中取出缺书单进行售书处理。,教材购销系统,购书,售书,教材购销系统,书库保管员,学生,购书单,领书单,无效书单,缺书单,进书通知,图3.14 顶层图,(p52),1销售,2采购,学生,书库保管员,进书通知,教材存量表,缺书登记表,购书单,领书单,无效书单,缺书单,进书通知,图3.15 第二层图,1.1审查有效性,1.2购书数量审核,进书通知,F1教材存量表,F2 缺书登记表,购书单,领书单,无效书单,F3 学生用书表,暂缺书单,图3.16 第三层图:图1 销售子系统,1.6产生补售书单,1.5登记缺书,1.4登记售书和打印领书单,F4 售书登记表,发票,有效购书单,补售书单,学生,采购,

27、学生,图3.17 第三层DFD采购子系统,.修改教材库存和待购量,.按书号汇总缺书,.按出版社统计缺书,缺书登记表,教材存量表,待购教材表,教材一览表,进书通知,进书通知,缺书单,书库保管员,销售,3.2.2 编写数据定义(数据字典)与加工说明最底层的DFD图包含了系统的全部数据和加工。在底层图中,从数据的终点开始,沿着DFD图一步步向数据源点回溯,较易看清数据流中每一个数据项的来龙去脉,也易于搞清每个数据文件的组成以及各个加工的加工策略。,例如,图3.16中,“领书单”是主要输出数据流,按:领书单 发票 有效购书单 购书单的次序回溯,可以得到各数据流、数据文件以及加工说明的定义,如:领书单

28、学号+姓名+书号+数量发票学号+姓名+书号+单价+数量+总价+书费合计有效购书单学号+姓名+书号+数量教材存量表书号+单价+数量,3.2.3 需求分析的复审(Requirement Review)需求分析的文档完成后,应由用户、系统分析员、设计人员等组成的复审小组进行复审。复审的重点是文档的完整性、易改性和易读性,尽可能多地发现文档中存在的矛盾、冗余和遗漏。以下是几个注意点:,(1)注意DFD图的加工编号:在数据流图中,需按层给加工编号。编号表明该加工所处的层次及上下层的父子关系。顶层图中的加工不编号。第二层图中的加工编号为:,n。第三层图中的加工编号为:1.1,1.2,;2.1,2.2,;n

29、.1,n.2,等,以此类推。,(2)不论加工、数据文件和数据流,都应该命名(文件与加工之间的数据流可以不命名)。(3)每个加工必须既有输入流,又有输出流。一个加工的输出流不应与输入流同名。,(4)父图和子图的平衡:父图(中某个加工)和(相应的)子图的输入流和输出流(在数量和名称上)应分别保持一致,称为父图和子图的平衡。(若父图的一个数据流对应子图中的几个数据流,而组成这些数据流的数据项全体正好是父图中的这个数据流,也算是平衡的。),软件工程,77,父图与子图的平衡,软件工程,78,不平衡的父图与子图,1.3,发票,领书单,学生姓名,书费总价,领书单,(a)父图,父图和子图平衡的示意图,(b)子

30、图,(发票=学生姓名+书费总价),(5)分解的速度宜均匀:同一图中的各个加工,分解的步子应大致均匀,保持同步扩展。每一加工每次可分为24个加工,最多不超过7个。,软件工程,81,(6)未区分局部文件和局部外部项,规则除底层DFD需画出全部文件外,各中间层的DFD仅显示处于加工之间的接口文件,其余文件均不必画出。,软件工程,82,(p52),1销售,2采购,学生,书库保管员,进书通知,教材存量表,缺书登记表,购书单,领书单,无效书单,缺书单,进书通知,图3.15 第二层图,销售是处于采购之外的一个外部项第三层DFD采购子系统,.修改教材库存和待购量,.按书号汇总缺书,.按出版社统计缺书,缺书登记

31、表,教材存量表,待购教材表,教材一览表,进书通知,进书通知,缺书单,书库保管员,销售,总结:画DFD的4步骤1、抽取数据流图的四种成分:源点或终点、处理、数据存储和数据流。2、绘制基本系统模型顶层数据流图,基本系统模型3、细化基本系统模型,描绘系统的主要功能功能级数据流图在图中给处理和数据存储都加了编号,这样做的目的是便于引用和追踪。4、对功能级数据流图中描绘的系统主要功能进一步细化模块级数据流图,软件工程,86,经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。,实例:医院病房监护系

32、统,监视病情,更新病历,系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历 3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。,顶层:,例2 医院病房监护系统,第一层:,医院病房监护系统顶层DFD图,第三层:加工“中央监视”分解,医院病房监护系统三层DFD图,医院病房监护系统分层DFD图,(第3章 补充习题)17.某银行储蓄系统功能是:将储户填写的存款单或取款单输入系统。如果是存款,系统将储户的存款信息(姓名、住址、存款日期、存款类型、存款金额、利率等)记录在帐户文件中,并打印存款清单给储户;如果是取款,系统先查询帐户文件,并打印取款清单给储户。(1)画出该问题

33、的数据流图的顶层图 和 第二层图。(2)以公式的形式建立数据流条目“存款单”。,(第3章补充习题)17.某银行储蓄系统功能是:将储户填写的存款单或取款单输入系统。如果是存款,系统将储户的存款信息(姓名、住址、存款日期、存款类型、存款金额、利率等)记录在帐户文件中,并打印存款清单给储户;如果是取款,系统先查询帐户文件,并打印取款清单给储户。(1)画出该问题的数据流图的顶层图 和 第二层图。(2)以公式的形式建立数据流条目“存款单”。,3.3 结构化系统设计(SD,Structured Design)3.3.1 SD概述 1.面向数据流的设计和面向数据结构的设计 按照出发点的不同,传统的软件设计又

34、可分为面向数据流的设计和面向数据结构的设计两大类。前者以结构化设计(Structured Design,SD)为主要代表,后者以Jackson方法为主要代表。,在面向数据流的方法中,数据流是考虑一切问题的出发点。在分析阶段,用数据流图来表示系统的逻辑模型;在设计阶段,按照数据流图的不同类型(变换型或事务型)将它们转换为相应的软件结构图。,Jackson方法以数据结构作为分析与设计的基础,认为算法的结构在很大程度上依赖于它要处理的问题的数据结构,因此可以由该问题的数据结构导出它的程序结构。面向数据结构的设计方法主要用于小型数据处理系统的开发,一般情况下也适合于在详细设计阶段使用.,2.从分析模型

35、导出设计模型,数据字典,状态迁移图,过程设计,接口设计,体系结构设计(SC),数据设计,软件工程,97,数据设计把分析阶段创建的信息域模型转变成实现软件所需要的数据结构。体系结构设计确定了程序的主要结构元素(即程序构件)之间的关系。接口设计的结果描述了软件内部、软件与协作系统之间以及软件与使用者之间的通信方式。过程设计把程序体系结构中的结构元素,变换成对软件构件的过程性描述。在软件设计期间我们所做出的决策,将最终决定软件开发能否成功,更重要的是,这些设计决策将决定软件维护的难易程度。,3.3.2 SD的步骤:从DFD图到SC图1.数据流图的类型:有两种形式,即变换型(Transform Flo

36、w)和 事务型(Transaction Flow)。,(1)变换型结构(Transform Flow)变换型结构由三部分组成:传入路径(Afferent Path)、变换中心(Transform Center)和传出路径(Efferent Path)。流经这3个部分的数据流分别称为:传入流、变换流和传出流。变换中心的任务是:通过计算或处理,把系统的传入流变换为传出流。,传入流,变换流,传出流,变换型结构,组成传入路径变换中心传出路径,数据流传入流变换流传出流,变换中心:通过计算或处理,将系统的传入流变为传出流。又称加工中心。,传入流:离输入始端最远但仍可被看作系统输入的那些数据流。,传出流:离

37、输出末端最远但仍可被看作系统输出的那些数据流。,基本模型,数据流,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,传入部分,变换中心,传出部分,图3.23 变换型结构的模型,(2)事务型结构(Transaction Flow)事务型结构由至少一条接收路径(Receive Path)、一个事务中心(Transaction Center)和若干条动作路径(Action Path)组成。当外部信息沿着接收路径进入系统后,经过事务中心处理,获得某一个特定值,并据此启动某一动作路径的操作。示意图如下:,事务中心,接收路径,动作路径,图3.21 事务型结构的基本模型,软

38、件工程,103,事务型,组成一条接受路径一个事务中心若干条动作路径,特征具有在多种事务中执行某类事务的能力。,基本模型,事务中心通常位于DFD图中多条动作路径的起点;向事务中心提供信息的路径,是系统的接受路径;动作路径通常不止一条,且每条均具有自己的结构特性(变换或事务型),2.SD方法的步骤,SD方法规定了下列4个步骤:(1)重审数据流图,必要时可再次进行修改或细化;(2)鉴别数据流图的结构特征,确定它是属于变换型还是事务型;(3)按照SD方法规定的一组规则(变换映射或事务映射),把DFD图转换为初始的SC图;,变换型DFD图,初始SC图,变换映射,事务型DFD图,初始SC图,事务映射,(4

39、)优化初始的SC图,获得最终的SC图。,软件工程,105,两种映射方法变换映射事务映射,变换型DFD图,事务型DFD图,初始SC图,初始SC图,变换映射,事务映射,适用于将变换型结构的DFD图转换为初始软件结构图。步骤如下:1、区分传入、传出和变换中心三个部分,在DFD图上标明它们的分界线(1)变换中心的任务:通过计算或处理,把系统的逻辑输入变换(或加工)为系统的逻辑输出。(2)逻辑输入(传入数据项):离物理输入端(输入始端)最远,但仍可以被看作系统输入的那些数据流。,5.2.3 变换映射,(3)逻辑输出(传出数据项):离物理输出端(输出末端)最远,但仍可以被看作系统输出的那些数据流。(4)数

40、据在系统中流动时,不仅在通过变换中心时要被变换,在传入路径和传出路径上,其内容和形式也可能发生变化。故变换中心又称为“中心加工”,以区别于数据在传入传出过程中的其它加工。(5)划分的结果可能会受经验的影响,但必须从实际情况出发,对DFD图作认真和细致的分析(6)几种可能遇到的情况及其处理方法,软件工程,108,有些系统没有中心加工,系统的逻辑输入和逻辑输出是完全相同的数据流,应将DFD划分为传入和传出两部分,不要强求一律硬分成三个部分。除传入部分外,在变换中心甚至传出部分也可能从系统外接受某些输入数据流,称为二次传入数据。该数据不应当作传入部分的一部分。有些DFD图可能失之太粗,缺少应有的细节

41、,可考虑对自己用于分析的DFD进行补充。,软件工程,110,完成“第一级分解”,建立初始SC图的框架。包括顶层控制模块和第一层模块。两种画法:a.顶层控制模块+传入、传出和中心变换3个一层模块b.顶层控制模块+按照传入、传出实际数据流数和中心变换模块数确定数量的模块,软件工程,111,Mc,MT,MA,ME,c,e,w,u,c,e,w,u,Mc,P,c,R,ME1,ME2,MA1,MA2,Q,e,e,p,c,p,r,r,w,u,w,u,3.3.3 变换映射(Transform Mapping),变换映射的3个主要步骤:(1)划分DFD图的边界:区分传入部分、传出部分和变换中心;(2)建立初始S

42、C图的框架:进行第一级分解,设计上层模块顶层和第一层;(3)分解SC图的各个分支:进行第二级分解,设计传入分支、传出分支和变换中心的中、下层模块。,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,例 3.9 第一步:划分DFD图的边界:区分传入部分、传出部分和变换中心。,图 3.23 划分传入部分、传出部分和变换中心,传入部分,变换中心,传出部分,第二步:完成第一级分解,设计上层模块顶层和第一层。(1)顶层只包含一个用于控制的主模块。(2)第一层包括传入、传出和中心变换3个模块,分别代表系统的3个相应分支。,MT(变换模块),MC(主模块),MA(传入模块)

43、,ME(传出模块),c,e,c,e,u,w,u,w,顶层,第一层,图3.24(a)第一级分解后的SC图,软件工程,116,第一级分解后的SC,第三步:完成第二级分解,细化SC图的各个分支(1)传入分支的模块分解:模块的调用顺序与加工顺序相反(逆向移动)。,MA(传入模块),C,c,e,图3.25(a)传 入分支的分解,B,A,E,D,c,b,a,e,d,传入分支的分解(2),(2)传出分支的模块分解:模块的调用顺序与加工顺序相同(正向移动)。,ME(传出模块),w,u,图3.26 传出分支的分解,W,V,U,w,v,u,传出分支的分解,(3)变换中心分支的模块分解:模块的调用顺序按加工顺序自左

44、向右排列。,MT(变换模块),w,u,图3.27 变换中心分支的分解,Q,P,R,r,c,e,e,p,r,c,p,w,u,MT,MC,MA,ME,c,e,c,e,u,w,u,w,顶层,第一层,图3.28 从图3.23导出的初始的变换型SC图,C,E,Q,P,R,W,U,c,p,e,p,r,r,u,w,w,u,B,A,D,V,b,a,d,e,c,v,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,传入部分,变换中心,传出部分,f1,f2,f3,f4,图3.23(a)改进的变换型DFD图,物理输入,物理输出,逻辑输入,逻辑输出,MT,MC,MA,ME,c,e,c

45、,e,u,w,u,w,顶层,第一层,图3.28(a)从图3.23(a)导出的初始的变换型SC图,C,E,Q,P,R,W,U,c,p,e,p,r,r,u,w,w,u,B,A,D,V,b,a,d,e,c,v,Get f1,f1,Get f2,f2,Put f3,f3,f4,Put f4,3.3.4 事务映射(Transaction mapping),事务映射的3个主要步骤:(1)划分DFD图的边界:区分事务中心、接收部分(接收路径)和发送部分(发送路径);(2)建立初始SC图的框架,设计上层模块顶层和第一层;(3)分解和细化接收分支和发送分支,完成初始的SC图。,事务分析的映射方法,A,T,B,a

46、,C,D,a1,例 3.10 第一步:划分DFD图的边界:区分事务中心、接收部分和发送部分。,图 3.29 事务型DFD图的划分,a2,a3,接收部分(输入流),事务中心,动作路径部分(活动流),第二步:设计上层模块顶层和第一层。(1)顶层只包含一个用于控制的主模块。(2)第一层包括接收和发送2个模块,分别代表系统的2个分支。,MC(主模块),A(接收模块),T(发送模块),a,a,顶层,第一层,图3.30 事务型SC图的上层结构,第三步:分解和细化接收分支和发送分支。(1)接收分支负责接收数据,通常只有一个接收模块。(2)发送分支的发送模块是一个调度模块,它控制下层的所有动作模块。,MC(主

47、模块),A(接收模块),T(发送模块),a,a,顶层,第一层,从图3.29导出的初始的事务型SC图,B,C,D,a1,a2,a3,软件工程,130,1、在DFD图上确定事务中心、接受部分(包括接受路径)和发送部分(包含全部动作路径)事务中心通常位于DFD图中多条动作路径的起点;向事务中心提供信息的路径,是系统的接受路径;动作路径通常不止一条,切每条均具有自己的结构特性(变换或事务型)。,总结:事务分析步骤,软件工程,131,软件工程,132,2、画出SC图框架,把DFD图的三个部分分别映射为事务控制模块、接受模块和动作发送模块,事务控制,接收,发送,事务控制 事务 分析发送,软件工程,133,

48、接受分支一般具有变换特性,可对其进行变换分析;动作分支典型的可映射为4层:P-处理层、T-事务层、A-操作层、D-细节层。A、D常可被P、T共享。,3、分解和细化接受和发送分支,完成初始的SC图,用户命令交互子系统,读用户命令,密码命令,密码,显示信息,系统参数数据,用户命令,读系统数据,配置信息,显示信息和状态,命令分析处理,读密码,命令类型,开/关命令,建立配置文件,原配置数据,激活/非活动系统,与文件中密码比较,格式化配置数据,配置命令,检验信息过程,重试信息,四位数字,检验信息,检验信息,A/D信息,格式化配置数据,格式化配置数据,用户命令交互子系统的SC,用户执行模块,读用户命令,命

49、令处理,软件工程,136,混合结构一例,总体为变换型结构传入路径为事务型结构,软件工程,137,软件工程,138,面向数据流方法的设计过程,3.3.5 优化初始SC图的指导规则,1.对模块划分的原则模块的行数应控制在10100行的范围。,2.高扇入/低扇出的原则扇入(fan-in):一个模块直接上级模块的个数。扇入高则上级模块多,能够增加模块利用率。扇出(fan-out):一个模块直接下级模块的个数。扇出低则下级模块少,可以减少模块调用和控制的复杂度。通常扇出数以34为宜,不要超过7个。,M,M,(a)模块M的扇入,(b)模块M的扇出,图3.32 模块的扇入和扇出,如果一个模块的扇出数过大(煎

50、饼形结构),就意味着该模块过分复杂,需要协调和控制过多的下属模块,应当适当增加中间层使扇出减少(塔形结构)。,(a)煎饼形结构,(b)塔形结构,图3.33 增加中间层可减少扇出,M,A,图3.34 瓮形结构,总的考虑是:顶层扇出数低一些,中间层扇出数高一些,底层扇入数高一些,形成瓮形结构。,B,J,K,N,L,3.3.6 教材购销系统的总体结构,例3.11 从高校教材销售子系统的DFD图导出SC图。第一步:细化并修改DFD图。(1)在图3.15(p52)中,加工1(销售)和加工2(采购)之间的数据流“进书通知”替换为:增加一个“进书登记表”文件,供销售子系统和采购子系统之间交换信息。(2)把图

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号