第3章结构化分析与设计.ppt
《第3章结构化分析与设计.ppt》由会员分享,可在线阅读,更多相关《第3章结构化分析与设计.ppt(120页珍藏版)》请在课桌文档上搜索。
1、第3章 结构化分析与设计,3.1 概述3.1.1 结构化分析与设计的由来 1.瀑布模型的首次实践 结构化分析(SA,Structured Analysis)与结构化设计(SD,Structured Design)是瀑布模型的首次实践。,2.SA 与 SD 的流程结构化分析(工具:DFD、PSPEC)分析模型(分层DFD图)+SRS结构化设计(工具:SC图)初始设计模型(初始SC图)最终设计模型(最终SC图)注:DFD:数据流图(Data Flow Diagram)PSPEC:加工说明(Process SPECification)SRS:软件需求规格说明书(Software Requiremen
2、t Specification)SC:结构图(Structure Chart),3.基本任务与指导思想(1)结构化分析SA有两个主要任务:建立分析模型 通过对问题及其环境的理解、分析和综合,建立分析模型。该模型包括问题所涉及的信息流、功能、性能、用户界面及设计约束等,它是形成需求说明书、进行软件设计的基础。,编写需求规格说明书(SRS)在完全弄清用户对软件系统的确切要求的基础上,用“需求规格说明书”(SRS)把用户的需求表达出来。需求规格说明书为开发人员和用户提供软件开发完成时质量评价的依据。SRS应该具有准确性;SRS应该防止二义性;SRS应该直观、易读、易于修改。,SA的主要指导思想 抽象
3、与分解(Abstraction and decomposition)抽象(Abstraction)是控制复杂性的基本策略之一。在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。在软件需求分析阶段,在最高抽象级别上,用“做什么”来描述问题。然后不断具体化(分解)。抽象的层次愈低,呈现的细节愈多。,(2)结构化设计软件设计分两个阶段完成:软件设计=总体设计+详细设计 总体设计又称概要设计,进行总体结构设计和系统接口设计,把用数据流图(DFD)表示的系统分析模型转换为用结构图(SC)表示的系统结构模型。详细设计用以确定各个软件组件(模块)的操作(算法)和数据
4、结构。,SC 图分两步完成:初始设计模型(初始SC图)最终设计模型(最终SC图)初始SC图 总体设计 最终SC图 软件设计 详细设计:完成模块说明软件设计的指导思想分解与细化 采用“自顶向下、逐步细化(Top-Down Stepwise Refinement)”的开发方法。,3.1.2 SA模型的组成与描述例3.1 教材销售系统第一步:通过对现实环境的调查研究,获取当前系统的具体模型(物理模型)。,学生,图3.1 学生购买教材的当前系统模型(物理模型),购书申请,张秘书,购书发票,王会计,购书证明,李出纳,领书单,赵保管,学生,书,学生,图3.2 学生购买教材的逻辑模型(当前系统),购书单,审
5、查有效性,购书发票,开发票,有效购书单,开领书单,领书单,发书,学生,书,第二步:分析需求,建立系统分析模型(逻辑模型),包括当前系统和目标系统的逻辑模型。,学生,图3.3 目标系统的逻辑模型,购书单,审查并开发票,发票,开领书单,领书单,发书,学生,书,第三步:编写需求规格说明书。第四步:验证需求,完善和补充对目标系统的描述。,学生,图3.4 改进了的目标系统逻辑模型,购书单,审查并开发票,发票,开领书单,领书单,学生,无效书单,软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。,目标系统,当前系统,物理模型,
6、逻辑模型,模型化,抽象化,物理模型,逻辑模型,具体化,实例化,导出,怎么做,做什么,图3.5 SA模型的组成,实体联系图(E-R图),状态变换图(STD),数据流图(DFD),数据对象说明,加工说明,数据字典 DD,控制说明,1.SA模型的组成,早期的(传统的)结构化分析模型是面向数据流的,采用“自顶向下、逐层分解”的分析策略,以数据字典(DD,Data Dictionary)、数据流图(DFD,Data Flow Diagram)、和加工说明(PSPEC,Process SPECification)为主要工具,建立系统的逻辑模型(功能建模)。,扩充后的结构化分析模型,将建模技术扩展到数据建模
7、和行为建模,以数据字典(DD,Data Dictionary)、实体-联系图(Entity-Relation Diagram,E-R图)、状态-迁移图(State Transform Diagram,STD)等为工具,从不同视点建立系统的分析模型。本课程主要讲述传统的结构化分析模型,2.SA模型的描述工具传统的结构化分析采用3种描述工具:数据流图(DFD)、数据字典(DD)和 加工规格说明(PSPEC)。,(1)数据流图(DFD)组成符号(数据流图中的 4 种图形元素),加工(Prosess):对数据流进行操作或变换。,数据源点或终点(又称外部实体:系统外的人员或组织),数据流(Data Fl
8、ow):数据在系统内传播的路径。,数据文件(Data File 或Data Store):文件与加工之间的数据流可以不命名;从文件流出的数据流表示读文件或查询文件;流向文件的数据流表示写文件或修改文件。,审查并开发票1,开领书单2,学生,学生,教材存量表,购书单,无效书单,发票,领书单,各班学生用书表,图3.7 教材销售系统的数据流图,DFD的性质 DFD 不能表示控制结构,如选择结构或循环结构。在需求分析中,常常用一组DFD图由粗到细地表示不同级别上的功能模型,称之为分层数据流图。,(2)数据字典(DD)数据字典的作用:对软件系统中的每个数据规定一个定义条目,以保持数据在系统中的一致性。数据
9、字典中主要包括以下三类条目:数据流、数据文件 和 数据项。,数据字典定义式中的符号,符 号 含 义 举 例 定义为 与 x=ab.|.或 x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a).连结符 x=1.9*注释 综合的例:x=a|b+c+(d),数据流(条目):给出DFD中数据流的定义,列出数据流的各组成数据项,通常写成公式的形状。例3.3 发票学号+姓名+书号+单价+数量+总价+书费合计 对较长和较复杂的数据流,可分层次描述,使条目更清楚。如上述数据流“发票”可表示为:发票(学号)姓名发票行书费合计发票行书号+单价+数量+总价,数据文件(条目):对数据文件的定义。例3
10、.4文件名:各班学生用书表组成:系编号专业和班编号年级+书号 也可写成公式的形状,如:各班学生用书表=系编号专业和班编号年级+书号,数据项(条目):包含在数据流或数据文件中的数据项,一般都应在字典中设置相应的条目。例如:系编号=2数字2*二位数字,如01,12*年级=F/M/J/S*F:一年级(Freshman);M:二年级(sophoMore);J:三年级(Junior);S:四年级(Senior)*,(3)加工规格说明:(Process SPECification,PSPEC)对数据流图的每一个基本加工,必须有一个加工说明,其主要内容如下所示:(1)加工名;(2)加工编号;(3)输入数据流
11、;(4)输出数据流;(5)加工逻辑;(6)执行频率。其中最重要的是加工逻辑。,加工逻辑描述基本加工如何把输入数据流变换为输出数据流的加工策略,而不需描述实现加工的细节。加工逻辑通常采用结构化语言(Structured Langauge)、判定表(Decision Table)、或 判定树(Decision Tree)作为描述工具。,结构化语言(Structured Language)是一种介于自然语言和形式化语言之间的语言。结构化语言可使用顺序、选择、循环等控制结构,其中选择和循环结构可分为内外二层,外层有严格的语法,内层语法比较灵活,可以用自然语言来表示。结构化语言的三种基本控制结构:顺序结
12、构选择结构:if_then_else 或 switch_do;循环结构:while_do 或 for_do 或 do_while。,例3.6 售书系统中“审查并开发票”的加工逻辑,对购书单上的的每一个书号if(学生用书表中无此书号)then 把书号写到出错通知上else 按书号检索“教材存量表”,获得该书的单价和库存量 if(库存量购书单上的数量)then 进行缺书登记 else 将书号、单价、数量、总价等写入发票;更新“教材存量表”。,判定表或判定树判定表(Decision Table):如果某个加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。例3.7 某公司对推销员的奖励办法:
13、(1)每周推销金额10000元,按预收货款是否超过50%,分别奖励推销额的6%或4%;(2)每周推销金额10000元,按预收货款是否超过50%,分别奖励推销额的8%或5%;(3)对于月薪1000元的推销员,分别另发鼓励奖300、200 和 500、300元。,判定表,(1)列出所有的条件,填写判定表的左上限。(2)列出所有的操作,填写判定表的左下限。(3)列出所有的条件组合,填写判定表右上限。(4)将每一组合指定的操作,添入右下限相应的位置上。,图3.9 判定表的示例,判定表的构造步骤:(1)列出所有基本条件,填写判定表的左上限。在本例中,奖金的发放依据 3 个条件:推销金额、预收货款、月薪。
14、,(详细补充:)判定表,(2)列出所有的基本操作,填写判定表的左下限。在本例中,奖金的发放操作有奖金率和鼓励奖。(3)列出所有的条件组合,确定组合的个数,填写判定表右上限。在本例中,3个条件均有2种取值,组合个数应该是:222=8。(4)将每一组合指定的操作,添入右下限相应的位置。,图3.9 判定表的示例,判定树(Decision Tree)判定树也是用来表达加工逻辑的一种工具。有时它比判定表更直观。,推销金额 预收货款 推销员工资 奖金率 1000 8%+500 50%1000 8%10000 1000 5%+300 50%1000 5%推销奖金策略 1000 6%+300 50%1000
15、6%10000 1000 4%+200 50%1000 4%图3.10 判定树的示例,(思考题)下面是货运收费策略:计算铁路运费时,若收件地点在本省以内,快件每公斤1.5元,慢件每公斤1元。若收件地点在外省,快件每公斤2元,慢件每公斤1.5元。请分别用判定表和判定树表示。,(1)判定表(货运收费策略),(2)判定树,货运收费策略,本省,快件,每公斤1.5元,外省,货运类型,收件地点,运费,慢件,每公斤1 元,快件,每公斤2 元,慢件,每公斤1.5元,3.1.3 SD模型的组成与描述 1.SD模型的组成,过程设计,接口设计,体系结构设计(SC图),数据设计,图3.11 SD模型的组成,2.SD模
16、型的描述工具体系结构设计是用来确定软件结构的,其描述工具为结构图(Structure Chart),简称SC图。(1)SC图的组成符号:SD方法约定:(1)用矩形框表示模块;(2)用箭头或直线表示模块间的调用关系;(3)在调用线的两旁用短箭头表示传入和传出模块的数据流。,A,B,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)传出模块 从
17、上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出流。(c)变换模块 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。,(d)源模块 处于传入部分的始端,它不调用其它模块。它传送的数据流叫做物理输入流。(e)漏(终)模块 处于传出部分的末端,它不调用其它模块。它传送的数据流叫做物理输出流。(f)控制模块 对所有下属模块进行协调和管理的模块。它只调用其它模块,不受其它模块调用。,(2)SC图中的模块调用(a)简单调用,A,B,C,X,Y,Z,Z,(b)选择调用:用菱型符号表示。(c)循环调用:用叠加在调用线始端的环形表示。,A,B,C,A,B
18、,C,D,(a)选择调用示意图,(b)循环调用示意图,画SC图的注意事项(1)同名的模块在SC图中仅出现一次;(2)模块之间的调用关系只能从上而下,因而模块间的调用关系可以用直线表示;(3)同一层模块的调用次序,习惯上自左到右。,3.2 结构化系统分析(SA,Structured Analysis)结构化分析就是使用 DFD、DD、结构化语言、判定表和判定树等工具,来建立一种称为结构化说明书(即需求规格说明书)的目标文档。结构化分析的基本步骤是:(1)自顶向下对系统进行功能分解,画出分层的DFD图;(2)编制 DD 和 PSPEC;(3)写出SRS(需求规格说明书)。,3.2.1 画分层数据流
19、图 大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不可能一次将它们画完整。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。每分解一次,系统的加工数量就增多一些,加工的功能也更具体一些。继续重复这种分解,直到所有的加工都足够简单为止。不需再分解的加工称为“基本加工”。上述分解方法称为“自顶向下、逐步细化”(Top-Down Stepwise Refinement)。,分层的数据流图,数据流图绘制步骤(1)画系统的顶层图:顶层图表示系统与外部实体之间的数据交换关系。顶层图只包含一个加工(加工名即为系统名);顶层图描述系统与外部实体之间的数据流;顶层图只
20、有一张。,(2)画系统的内部:第二层DFD图(有些教科书上称为层图):分解顶层图为若干个加工,系统有几个功能,就分解为几个加工;描述加工与外部实体之间、加工与数据文件之间、加工与加工之间的数据流。第二层图只有一张,图中的加工号为“,,n”。,画更下层数据流图(第3层图、第4层图、.)时,则分解上层图中的加工,直到图中尚未分解的加工都足够简单为止。子图号就是父图中被分解的加工号;子图中加工号由图号、小数点和序号组成。,例3.8 教材购销系统,功能如下:(1)根据教学计划,向学生供应所需的教材。系统接受学生的购书单,检验购书单。若教材库存量充足,进行售书处理,即修改教材存量表,给学生开发票和领书单
21、,学生凭单到书库领书;若教材库存量不足,对脱销的教材进行缺书登记。(2)根据缺书登记表采购所缺的教材,通知学生补购。按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。待购教材到货后,根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书登记表中取出缺书单进行售书处理。,例3.8 教材购销系统,功能如下:(1)根据教学计划,向学生供应所需的教材。系统接受学生的购书单,检验购书单。若教材库存量充足,进行售书处理,即修改教材存量表,给学生开发票和领书单,学生凭单到书库领书;若教材库存量不足,对脱销的教材进行缺书登记。(2)根据缺书登记表采购所缺的教材,通知学
22、生补购。按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。待购教材到货后,根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书登记表中取出缺书单进行售书处理。,教材购销系统,书库保管员,学生,购书单,领书单,缺书单,进书通知,图3.14 顶层图,(p52),(p52),1销售,2采购,学生,书库保管员,进书通知,教材存量表,缺书登记表,购书单,领书单,缺书单,进书通知,图3.15 第二层图,1.1审查有效性,1.2购书数量审核,进书通知,F1教材存量表,F2 缺书登记表,购书单,领书单,F3 学生用书表,暂缺书单,图3.16 第三层图:图1 销售子系
23、统,1.6产生补售书单,1.5登记缺书,1.4登记售书和打印领书单,F4 售书登记表,发票,有效购书单,补售书单,图3.17 第三层DFD采购子系统,.修改教材库存和待购量,.按书号汇总缺书,.按出版社统计缺书,缺书登记表,教材存量表,待购教材表,教材一览表,进书通知,进书通知,缺书单,3.2.2 编写数据定义(数据字典)与加工说明最底层的DFD图包含了系统的全部数据和加工。在底层图中,从数据的终点开始,沿着DFD图一步步向数据源点回溯,较易看清数据流中每一个数据项的来龙去脉,也易于搞清每个数据文件的组成以及各个加工的加工策略。,例如,图3.16中,“领书单”是主要输出数据流,按:领书单 发票
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 化分 设计

链接地址:https://www.desk33.com/p-1273672.html