《结构化分析与设计》PPT课件.ppt
《《结构化分析与设计》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)根据缺书登记表采购所缺的教材,通知学生补购。按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。待购教材到货后,根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构化分析与设计 结构 化分 设计 PPT 课件

链接地址:https://www.31ppt.com/p-5568162.html