第3章_结构化分析与设计_第1页
第3章_结构化分析与设计_第2页
第3章_结构化分析与设计_第3页
第3章_结构化分析与设计_第4页
第3章_结构化分析与设计_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 结构化分析与设计结构化分析与设计概述概述结构化结构化系统分析系统分析结构化系统设计结构化系统设计模块化设计模块化设计3.1 概述概述3.1.1 结构化分析与设计的由来结构化分析与设计的由来 1. 瀑布模型的首次实践瀑布模型的首次实践 结构化分析结构化分析 (SA, Structured Analysis) 与结构化设计与结构化设计 (SD, Structured Design) 是是瀑布模型的首次实践。瀑布模型的首次实践。 2. SA 与与 SD 的流程的流程结构化分析结构化分析( 工具工具: DFD、PSPEC )分析模型分析模型( 分层分层DFD图图 ) + SRS结构化设计结

2、构化设计(工具工具:SC图图) 初始设计模型初始设计模型(初始初始SC图图) 最终设计模型最终设计模型(最终最终SC图图)注:注: DFD:数据流图(:数据流图(Data Flow Diagram) PSPEC:加工说明(:加工说明(Process SPECification) SRS:软件需求规格说明书:软件需求规格说明书( Software Requirement Specification) SC:结构图(:结构图( Structure Chart )3. 基本任务与指导思想基本任务与指导思想 (1)结构化分析结构化分析SA有两个主要任务有两个主要任务:建立分析模型建立分析模型 通过对问

3、题及其环境的理解、分析和通过对问题及其环境的理解、分析和综合,建立分析模型。该模型包括问题综合,建立分析模型。该模型包括问题所涉及的信息流、功能、性能、用户界所涉及的信息流、功能、性能、用户界面及设计约束等,它是形成需求说明书、面及设计约束等,它是形成需求说明书、进行软件设计的基础进行软件设计的基础。 编写编写需求规格说明书需求规格说明书(SRS) 在完全弄清用户对软件系统的确切要求在完全弄清用户对软件系统的确切要求的基础上,用的基础上,用“需求规格说明书需求规格说明书”( SRS)把用户的需求表达出来。把用户的需求表达出来。 需求需求规格规格说明书为开发人员和用户提供说明书为开发人员和用户提

4、供软件开发完成时质量评价的依据软件开发完成时质量评价的依据。 SRS应该具有准确性;应该具有准确性; SRS应该防止二义性;应该防止二义性; SRS应该直观、易读、易于修改。应该直观、易读、易于修改。 SA的主要指导思想的主要指导思想 抽象与分解抽象与分解 ( Abstraction and decomposition ) 抽象抽象(Abstraction)是控制复杂性的基本是控制复杂性的基本策略之一。在软件工程中,从系统定义到策略之一。在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。在软件决方法的抽象化过程的一次

5、细化。在软件需求分析阶段,在最高抽象级别上,用需求分析阶段,在最高抽象级别上,用“做什么做什么”来描述问题。然后不断具体化来描述问题。然后不断具体化(分解)。抽象的层次愈低,呈现的细节(分解)。抽象的层次愈低,呈现的细节愈多。愈多。(2)结构化设计结构化设计软件设计分两个阶段完成软件设计分两个阶段完成:软件设计软件设计 = 总体设计总体设计 + 详细设计详细设计 总体设计又称概要设计,进行总体设计又称概要设计,进行总体结总体结构设计构设计和系统接口设计,把用数据流图和系统接口设计,把用数据流图(DFD)表示的系统分析模型转换为用结)表示的系统分析模型转换为用结构图(构图(SC )表示的系统结构

6、模型。)表示的系统结构模型。 详细设计用以确定各个软件组件详细设计用以确定各个软件组件(模模块块)的操作的操作(算法算法)和和数据结构数据结构。 SC 图分两步完成:图分两步完成:初始设计模型初始设计模型(初始初始SC图图) 最终设计模型最终设计模型(最终最终SC图图) 初始初始SC图图 总体设计总体设计 最终最终SC图图 软件设计软件设计 详细设计详细设计 : 完成模块说明完成模块说明软件设计的指导思想软件设计的指导思想分解与细化分解与细化 采用采用“自顶向下、逐步细化自顶向下、逐步细化(Top-Down Stepwise Refinement )”的开发方法。的开发方法。3.1.2 SA模

7、型的组成与描述模型的组成与描述例例3.1 教材销售系统教材销售系统第一步第一步: 通过对现实环境的调查研究通过对现实环境的调查研究, 获取获取当前系统的当前系统的具体模型具体模型(物理模型物理模型) 。图图3.1 学生购买教材的当前系统模型学生购买教材的当前系统模型(物理模型物理模型)学学生生购书购书申请申请张张秘书秘书购书购书发票发票王王会计会计购书购书证明证明李李出纳出纳领书领书单单赵赵保管保管学学生生书书图图3.2 学生购买教材的逻辑模型(当前系统)学生购买教材的逻辑模型(当前系统)学学生生购书购书单单审查审查有效性有效性购书购书发票发票开开发票发票有效有效购书单购书单开领开领书单书单领

8、书领书单单发书发书学学生生书书第二步:分析需求,第二步:分析需求,建立建立系统分析模型系统分析模型(逻逻辑模型辑模型),包括,包括当前系统和目标系统的逻辑当前系统和目标系统的逻辑模型模型。图图3.3 目标系统的逻辑模型目标系统的逻辑模型学学生生购书购书单单审查并审查并开发票开发票发票发票开开领书单领书单领书单领书单发书发书学学生生书书第三步:第三步:编写需求规格说明书编写需求规格说明书。第四步:第四步:验证需求,完善和补充对目标系验证需求,完善和补充对目标系统的描述统的描述。图图3.4 改进了的目标系统逻辑模型改进了的目标系统逻辑模型学学生生购书单购书单审查并审查并开发票开发票发票发票开开领书

9、单领书单领书单领书单学学生生无效书单无效书单软件开发是要实现软件开发是要实现目标系统的物理模型目标系统的物理模型。需。需求分析的任务就是借助于求分析的任务就是借助于当前系统的逻辑模型当前系统的逻辑模型导出目标系统的逻辑模型导出目标系统的逻辑模型,解决目标系统,解决目标系统“做做什么什么”的问题。的问题。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化导导出出怎么做怎么做做什么做什么图图3.5 SA3.5 SA模型的组成模型的组成实体联系图实体联系图(E-R图图)状态状态变换变换图图 (STD)数据对

10、象说明数据对象说明加工说明加工说明数据数据字典字典 DD控制说明控制说明1. SA模型的组成模型的组成早期的(早期的(传统的)结构化分析传统的)结构化分析模型是模型是面向数据流面向数据流的,采用的,采用“自顶向下、逐层自顶向下、逐层分解分解”的分析策略,以数据字典(的分析策略,以数据字典(DD, Data Dictionary)、数据流图(、数据流图(DFD,Data Flow Diagram)、和加工说明、和加工说明(PSPEC, Process SPECification)为主要为主要工具,建立系统的逻辑模型(功能建工具,建立系统的逻辑模型(功能建模)。模)。扩充后的结构化分析模型,将建模

11、技术扩扩充后的结构化分析模型,将建模技术扩展到数据建模和行为建模,以数据字典(展到数据建模和行为建模,以数据字典(DD, Data Dictionary)、实体、实体-联系图联系图( Entity - Relation Diagram, E-R图图)、状态、状态-迁移图迁移图(State Transform Diagram , STD)等为工具,等为工具,从不同视点建立系统的分析模型。从不同视点建立系统的分析模型。本课程主要讲述传统的结构化分析模型本课程主要讲述传统的结构化分析模型2. SA模型的描述工具模型的描述工具传统的结构化分析采用传统的结构化分析采用3种描述工具种描述工具: 数据流图数

12、据流图(DFD)、数据字典数据字典(DD) 加加工规格说明工规格说明(PSPEC 。(1) 数据流图数据流图(DFD) 组成符号组成符号(数据流图中的数据流图中的 4 种图形元素种图形元素)加工加工 (Prosess):对数据流进行操作或变换。对数据流进行操作或变换。数据源点或终点数据源点或终点 (又称又称外部实体外部实体:系统外的:系统外的人员或组织人员或组织数据流数据流(Data Flow):数据在系统内传播的路径。数据在系统内传播的路径。数据文件数据文件(Data File 或或Data Store): 文件与加文件与加工之间的数据流可以不命名;从文件流出的工之间的数据流可以不命名;从文

13、件流出的数据流表示读文件或查询文件;数据流表示读文件或查询文件; 流向文件的流向文件的数据流表示写文件或修改文件。数据流表示写文件或修改文件。审查并审查并开发票开发票1开开领书单领书单2学学生生学学生生教材存量表教材存量表购书单购书单无效书单无效书单发票发票领书单领书单各班学生用书表各班学生用书表图图3.7 教材销售系统的数据流图教材销售系统的数据流图 DFD的性质的性质 DFD 不能表示控制结构,如选择结构不能表示控制结构,如选择结构或循环结构。或循环结构。 在需求分析中在需求分析中,常常用一组常常用一组DFD图由粗图由粗到细地表示不同级别上的功能模型,称之到细地表示不同级别上的功能模型,称

14、之为分层数据流图。为分层数据流图。(2)数据字典数据字典(DD)数据字典的作用数据字典的作用: 对软件系统中的每个对软件系统中的每个数据规定一个定义条目,以保持数据在数据规定一个定义条目,以保持数据在系统中的一致性。系统中的一致性。数据字典数据字典中主要包括以下三类条目中主要包括以下三类条目:数据流、数据流、 数据文件数据文件 和和 数据项数据项。数据字典定义式中的符号数据字典定义式中的符号符符 号号 含含 义义 举举 例例 定义为定义为 与与 x = ab.|. 或或 x = a | b . 或或 m.n 重复重复 x = a, x = 3a8(.) 可选可选 x = (a) . 连结符连结

15、符 x = 1 . 9* * 注释注释 综合的例综合的例: x = a | b + c + ( d )数据流数据流(条目条目):给出给出DFD中数据流的定义,列中数据流的定义,列出数据流的各组成数据项出数据流的各组成数据项,通常写成公式的形状。通常写成公式的形状。例例3.3 发票学号发票学号+ 姓名姓名+书号书号+单价单价+数量数量+总价总价+ 书费合计书费合计 对较长和较复杂的数据流对较长和较复杂的数据流,可分层次描述,使可分层次描述,使条目更清楚。如上述数据流条目更清楚。如上述数据流“发票发票”可表示为:可表示为: 发票学号发票学号 姓名发票行书费合计姓名发票行书费合计发票行书号发票行书号

16、 + 单价单价 + 数量数量 + 总价总价数据文件数据文件(条目条目): 对数据文件的定义。对数据文件的定义。 例例3.4文件名:各班学生用书表文件名:各班学生用书表组成组成:系编号专业和班编号年级系编号专业和班编号年级+书书号号 也可写成公式的形状,如:也可写成公式的形状,如:各班学生用书表各班学生用书表=系编号专业和班编号系编号专业和班编号年级年级+书号书号数据项数据项 (条目条目): 包含在数据流或数据文件中的包含在数据流或数据文件中的数据项,一般都应在字典中设置相应的条目。数据项,一般都应在字典中设置相应的条目。 例如:例如: 系编号系编号 = 2数字数字2 *二位数字,如二位数字,如

17、01,12 * 年级年级 = F / M / J / S * F:一年级一年级 ( Freshman ); M:二年级二年级 ( sophoMore ); J:三年级(三年级(Junior );); S:四年级四年级 ( Senior ) *(3)加工规格说明加工规格说明: (Process SPECification, PSPEC)对数据流图的每一个基本加工,必须有一个对数据流图的每一个基本加工,必须有一个加工说明加工说明, 其主要内容如下所示其主要内容如下所示: (1)加工名加工名; (2)加工编号加工编号; (3)输入数据流;输入数据流; (4)输出数据流;输出数据流; (5)加工逻辑加

18、工逻辑; (6)执行频率。执行频率。其中最重要的是加工逻辑。其中最重要的是加工逻辑。加工逻辑描述基本加工如何把输入数加工逻辑描述基本加工如何把输入数据流变换为输出数据流的加工策略,而据流变换为输出数据流的加工策略,而不需描述实现加工的细节。不需描述实现加工的细节。加工逻辑通常采用加工逻辑通常采用结构化语言结构化语言(Structured Langauge)、)、 判定表判定表(Decision Table)、 或或 判定树判定树(Decision Tree)作为描述工具。作为描述工具。结构化语言结构化语言(Structured Language)是一种介于自然语言和形式化语言之间的语言。是一种

19、介于自然语言和形式化语言之间的语言。结构化语言可使用顺序、选择、循环等控制结结构化语言可使用顺序、选择、循环等控制结构,其中选择和循环结构可分为内外二层,外层构,其中选择和循环结构可分为内外二层,外层有严格的语法,内层语法比较灵活,可以用自然有严格的语法,内层语法比较灵活,可以用自然语言来表示。语言来表示。结构化语言的三种基本控制结构:结构化语言的三种基本控制结构:顺序结构顺序结构选择结构:选择结构: if_then_else 或或 switch_do ;循环结构:循环结构: while_do 或或 for_do 或或 do_while 。例例3.6 售书系统中售书系统中“审查并开发票审查并开

20、发票”的加工逻辑的加工逻辑对购书单上的的每一个书号对购书单上的的每一个书号if ( 学生用书表中无此书号学生用书表中无此书号) then 把书号写到出错通知上把书号写到出错通知上else 按书号检索按书号检索“教材存量表教材存量表”,获得该书的单价和库存获得该书的单价和库存量量 if (库存量库存量10000 10000 10000 10000 10000 10000 10000 10000预收贷款预收贷款 50% 50%50%50%50%50%50%50%月薪月薪10001000100010001000100010001000奖金率奖金率8%8%5%5%6%6%4%4%鼓励奖鼓励奖50030

21、0300200判定树判定树( Decision Tree)判定树也是用来表达加工逻辑的一判定树也是用来表达加工逻辑的一种工具。有时它比判定表更直观。种工具。有时它比判定表更直观。 推销金额推销金额 预收货款预收货款 推销员工资推销员工资 奖金率奖金率 1000 8%+5001000 8%+500 50%50% 1000 8%1000 8% 10000 10000 1000 5%+3001000 5%+300 50%50% 1000 5%1000 5%推销奖金策略推销奖金策略 1000 6%+3001000 6%+300 50%50% 1000 6%1000 6% 1000010000 1000

22、 4%+200 1000 4%+200 50%50% 1000 4%1000 4%图图3.10 3.10 判定树的示例判定树的示例(思考题思考题) 下面是货运收费策略:计算铁路运费时,若下面是货运收费策略:计算铁路运费时,若收件地点在本省以内,快件每公斤收件地点在本省以内,快件每公斤1.5元,慢件元,慢件每公斤每公斤1元。若收件地点在外省,快件每公斤元。若收件地点在外省,快件每公斤2元,慢件每公斤元,慢件每公斤1.5元。请分别用判定表和判定元。请分别用判定表和判定树表示。树表示。(1) 判定表判定表(货运收费策略货运收费策略)决策规则号决策规则号1234收件地点收件地点本省本省本省本省外省外省

23、外省外省货运类型货运类型快件快件慢件慢件快件快件慢件慢件每公斤每公斤1.0 元元每公斤每公斤1.5 元元每公斤每公斤2.0 元元(2) 判定树判定树货运收费货运收费策略策略本省本省快快件件每公斤每公斤1.5元元外省外省货运类型货运类型收件地收件地点点运费运费慢件慢件每公斤每公斤1 元元快快件件每公斤每公斤2 元元慢件慢件每公斤每公斤1.5元元3.1.3 SD模型的组成与描述模型的组成与描述 1. SD模型的组成模型的组成过程设计过程设计接口设计接口设计体系结构设计体系结构设计(SC图图)数据设计数据设计图图3.11 SD模型的组成模型的组成2. SD模型的描述工具模型的描述工具体系结构设计是用

24、来确定软件结构的,其描体系结构设计是用来确定软件结构的,其描述工具为结构图(述工具为结构图(Structure Chart),简称简称SC图图。 (1) SC图的组成符号图的组成符号: SD方法约定方法约定: (1)用矩形框表示模块用矩形框表示模块; (2)用箭头或直线表示模块间的调用关系用箭头或直线表示模块间的调用关系; (3)在调用线的两旁用短箭头表示传入和传出在调用线的两旁用短箭头表示传入和传出模块的数据流。模块的数据流。ABCX,YZZSC图中允许使用的图中允许使用的6种模块种模块传入模块传入模块XY传出模块传出模块YX变换模块变换模块XY控制模块控制模块XXYY源模块源模块X漏模块漏

25、模块X(a)(b)(c)(d)(e)(f)(a) 传入模块传入模块 从下属模块取得数据,经从下属模块取得数据,经过某些处理过某些处理, 再将其传送给上级模块。它再将其传送给上级模块。它传送的数据流叫做逻辑输入流。传送的数据流叫做逻辑输入流。(b) 传出模块传出模块 从上级模块获得数据,进从上级模块获得数据,进行某些处理,再将其传送给下属模块。它行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出流。传送的数据流叫做逻辑输出流。(c) 变换模块变换模块 它从上级模块取得数据,它从上级模块取得数据,进行特定的处理,转换成其它形式进行特定的处理,转换成其它形式, 再传再传送回上级模块。送回上

26、级模块。(d) 源模块源模块 处于传入部分的始端,它不处于传入部分的始端,它不调用其它模块。它传送的数据流叫做物理调用其它模块。它传送的数据流叫做物理输入流。输入流。(e) 漏漏(终终)模块模块 处于传出部分的末端,它处于传出部分的末端,它不调用其它模块。它传送的数据流叫做物不调用其它模块。它传送的数据流叫做物理输出流。理输出流。(f) 控制模块控制模块 对所有下属模块进行协调对所有下属模块进行协调和管理的模块。它只调用其它模块,不受和管理的模块。它只调用其它模块,不受其它模块调用。其它模块调用。(2)SC图中的模块调用图中的模块调用 (a)简单调用简单调用 A B CX,YZZ(b)选择调用

27、选择调用:用菱型符号表示。用菱型符号表示。 (c)循环调用循环调用:用叠加在调用线始端的环形用叠加在调用线始端的环形表示。表示。(a) 选择调用示意图选择调用示意图(b)循环调用示意图循环调用示意图A BCA BCD 画画SC图的注意事项图的注意事项 (1)同名的模块在同名的模块在SC图中仅出现一次图中仅出现一次; (2)模块之间的调用关系只能从上而下,模块之间的调用关系只能从上而下,因而模块间的调用关系可以用直线表示因而模块间的调用关系可以用直线表示; (3)同一层模块的调用次序同一层模块的调用次序,习惯上自左习惯上自左到右。到右。3.2 结构化系统分析结构化系统分析( SA, Struct

28、ured Analysis)结构化分析结构化分析就是使用就是使用 DFD、DD、结构化语言、结构化语言、判定表和判定树等工具,来建立一种称为结构判定表和判定树等工具,来建立一种称为结构化说明书(即需求规格说明书)的目标文档。化说明书(即需求规格说明书)的目标文档。结构化分析的基本步骤是:结构化分析的基本步骤是: (1)自顶向下对系统进行功能分解自顶向下对系统进行功能分解, 画出分层的画出分层的DFD图图; (2)编制编制 DD 和和 PSPEC ; (3)写出写出SRS(需求规格说明书)。(需求规格说明书)。3.2.1 画画分层数据流图分层数据流图 大型复杂的软件系统,其大型复杂的软件系统,其

29、DFD可能含有数百乃可能含有数百乃至数千个加工,不可能一次将它们画完整。至数千个加工,不可能一次将它们画完整。正确的做法是:从系统的基本模型(把整个系正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。统看成一个加工)开始,逐层地对系统进行分解。每分解一次,系统的加工数量就增多一些,加工每分解一次,系统的加工数量就增多一些,加工的功能也更具体一些。继续重复这种分解,直到的功能也更具体一些。继续重复这种分解,直到所有的加工都足够简单为止。所有的加工都足够简单为止。 不需再分解的加工称为不需再分解的加工称为“基本加工基本加工”。 上述分解方法称为上述分解方法称为“自

30、顶向下、逐步细化自顶向下、逐步细化”(Top-Down Stepwise Refinement )。)。数据流图绘制步骤数据流图绘制步骤(1)画系统的顶层图画系统的顶层图 :(有些教科书上称:(有些教科书上称为层图)为层图) 顶层图顶层图表示系统与外部实体之间的数据表示系统与外部实体之间的数据交换关系。交换关系。 顶层图顶层图只包含一个加工只包含一个加工(加工名即为加工名即为系统名系统名); 顶层图描述顶层图描述系统与外部实体之间的数系统与外部实体之间的数据流据流; 顶层图只有一张。顶层图只有一张。(2)画系统的内部:画系统的内部: 第二层第二层DFD图:图: 分解顶层图为若干个加工,系统有几

31、分解顶层图为若干个加工,系统有几个功能,就分解为几个加工;个功能,就分解为几个加工; 描述加工与外部实体之间、加工与数描述加工与外部实体之间、加工与数据文件之间、加工与加工之间的数据流。据文件之间、加工与加工之间的数据流。 第二层图只有一张第二层图只有一张, 图中的加工号为图中的加工号为“,,n ”。 画更下层数据流图(第画更下层数据流图(第3层图、第层图、第4层图、层图、.)时,则分解上层图中的加)时,则分解上层图中的加工,直到图中尚未分解的加工都足够工,直到图中尚未分解的加工都足够简单为止。子图号就是父图中被分解简单为止。子图号就是父图中被分解的加工号;子图中加工号由图号、小的加工号;子图

32、中加工号由图号、小数点和序号组成。数点和序号组成。例例3.8 教材购销系统教材购销系统,功能如下:功能如下:(1) 根据教学计划,向学生供应所需的教材。根据教学计划,向学生供应所需的教材。 系统接受学生的购书单,检验购书单。若教材库存系统接受学生的购书单,检验购书单。若教材库存量充足,进行售书处理,即修改教材存量表,给学生量充足,进行售书处理,即修改教材存量表,给学生开发票和领书单,学生凭单到书库领书;开发票和领书单,学生凭单到书库领书; 若教材库存量不足,对脱销的教材进行缺书登记。若教材库存量不足,对脱销的教材进行缺书登记。(2) 根据缺书登记表采购所缺的教材,通知学生补购。根据缺书登记表采

33、购所缺的教材,通知学生补购。 按缺书登记表进行汇总,并按出版社统计缺书,将按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。缺书单发给书库保管员,以便采购。 待购教材到货后待购教材到货后,根据书库保管员发来的进书通知单根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书登记表进行缺书销售,即修改教材存量表,并从缺书登记表中取出缺书单进行售书处理。中取出缺书单进行售书处理。例例3.8 教材购销系统教材购销系统,功能如下:功能如下:(1) 根据教学计划,向学生供应所需的教材。根据教学计划,向学生供应所需的教材。 系统接受学生的购书单,检验购书单。若教材库

34、存系统接受学生的购书单,检验购书单。若教材库存量充足,进行售书处理,即修改教材存量表,给学生量充足,进行售书处理,即修改教材存量表,给学生开发票和领书单,学生凭单到书库领书;开发票和领书单,学生凭单到书库领书; 若教材库存量不足,对脱销的教材进行缺书登记。若教材库存量不足,对脱销的教材进行缺书登记。(2) 根据缺书登记表采购所缺的教材,通知学生补购。根据缺书登记表采购所缺的教材,通知学生补购。 按缺书登记表进行汇总,并按出版社统计缺书,将按缺书登记表进行汇总,并按出版社统计缺书,将缺书单发给书库保管员,以便采购。缺书单发给书库保管员,以便采购。 待购教材到货后待购教材到货后,根据书库保管员发来

35、的进书通知单根据书库保管员发来的进书通知单进行缺书销售,即修改教材存量表,并从缺书登记表进行缺书销售,即修改教材存量表,并从缺书登记表中取出缺书单进行售书处理。中取出缺书单进行售书处理。教材教材购销购销系统系统书库书库保管员保管员学学生生购书单购书单领书单领书单缺书单缺书单进书通知进书通知图图3.14 顶层图顶层图 (p52)(p52)1销售销售2采购采购学学生生书书库库保保管管员员进书通知进书通知教材存量表教材存量表缺书登记表缺书登记表购书单购书单领书单领书单缺书单缺书单进书通知进书通知图图3.15 第二层图第二层图1.1审查审查有效性有效性1.2开发票开发票进书通知进书通知F1教材存量表教

36、材存量表F2 缺书登记表缺书登记表购书单购书单领书单领书单F3 学生用书表学生用书表暂缺书单暂缺书单图图3.16 第三层图第三层图:图图1 销售子系统销售子系统1.6产生补产生补售书单售书单1.5登记缺书登记缺书1.4登记售书和登记售书和打印领书单打印领书单F4 售书登记表售书登记表发票发票有效购有效购书单书单补售书单补售书单1.3打印发票打印发票发票发票图图3.17 第三层第三层DFD采购子系统采购子系统 .修改教材修改教材库存和待库存和待购量购量.按书号按书号汇总缺书汇总缺书.按出版社按出版社统计缺书统计缺书缺书登记表缺书登记表 教材存量表教材存量表 待购教材表待购教材表 教材一览表教材一

37、览表 进书通知进书通知 进书通知进书通知 缺书单缺书单 3.2.2 编写数据定义编写数据定义(数据字典数据字典)与加工说明与加工说明最底层的最底层的DFD图包含了系统的全部数据图包含了系统的全部数据和加工。在底层图中,从数据的终点开始,和加工。在底层图中,从数据的终点开始,沿着沿着DFD图一步步向数据源点回溯,较易图一步步向数据源点回溯,较易看清数据流中每一个数据项的来龙去脉,看清数据流中每一个数据项的来龙去脉,也易于搞清每个数据文件的组成以及各个也易于搞清每个数据文件的组成以及各个加工的加工策略。加工的加工策略。例如,图例如,图3.163.16中,中,“领书单领书单”是主要输出数据流,按:是

38、主要输出数据流,按: 领书单领书单 发票发票 有效购书单有效购书单 购书单购书单的次序回溯,可以得到各数据流、数据文件以及加工说的次序回溯,可以得到各数据流、数据文件以及加工说明的定义,如:明的定义,如:领书单领书单 学号学号 + + 姓名姓名 + + 书号书号+ +数量数量 发票学号发票学号+ +姓名姓名+书号书号+ +单价单价+ +数量数量+ +总价总价+书费合计书费合计有效购书单学号有效购书单学号 + + 姓名姓名 + + 书号书号+ +数量数量 教材存量表教材存量表 书号书号+ +单价单价+ +数量数量 3.2.3 需求分析的复审需求分析的复审(Requirement Review)

39、需求分析的文档完成后,应由用户、系需求分析的文档完成后,应由用户、系统分析员、设计人员等组成的复审小组进统分析员、设计人员等组成的复审小组进行复审。复审的重点是文档的完整性、易行复审。复审的重点是文档的完整性、易改性和易读性,尽可能多地发现文档中存改性和易读性,尽可能多地发现文档中存在的矛盾、冗余和遗漏。在的矛盾、冗余和遗漏。 以下是几个注意点:以下是几个注意点:(1)注意注意DFD图的加工编号图的加工编号: 在数据流图中,需按层给加工编号。编号在数据流图中,需按层给加工编号。编号表明该加工所处的层次及上下层的父子关系。表明该加工所处的层次及上下层的父子关系。 顶层图中的加工不编号。顶层图中的

40、加工不编号。 第二层图中的加工编号为第二层图中的加工编号为:, ,n。 第三层图中的加工编号为第三层图中的加工编号为: 1.1,1.2, ;2.1,2.2, ; ; n.1,n.2, 等,以等,以此类推。此类推。(2) 不论加工、数据文件和数据流,都应不论加工、数据文件和数据流,都应该命名(该命名(文件与加工之间的数据流可以文件与加工之间的数据流可以不命名不命名)。)。(3) 每个加工必须既有输入流,又有输出每个加工必须既有输入流,又有输出流。一个加工的输出流不应与输入流同流。一个加工的输出流不应与输入流同名。名。(4)父图和子图的平衡:父图和子图的平衡: 父图父图(中某个加工中某个加工)和和

41、(相应的相应的)子图的输子图的输入流和输出流入流和输出流(在数量和名称上在数量和名称上)应分别保应分别保持一致,称为父图和子图的平衡。持一致,称为父图和子图的平衡。 (若父图的一个数据流对应子图中的几(若父图的一个数据流对应子图中的几个数据流,而组成这些数据流的数据项全个数据流,而组成这些数据流的数据项全体正好是父图中的这个数据流,也算是平体正好是父图中的这个数据流,也算是平衡的。)衡的。)发票发票领书单领书单学生姓名学生姓名书费总价书费总价领书单领书单(a) 父图父图父图和子图平衡的示意图父图和子图平衡的示意图(b) 子图子图(发票发票=学生姓名学生姓名+书费总价书费总价)(5)分解的速度宜

42、均匀:分解的速度宜均匀: 同一图中的各个加工,分解的步子应同一图中的各个加工,分解的步子应大致均匀,保持同步扩展。每一加工每大致均匀,保持同步扩展。每一加工每次可分为次可分为24个加工,最多不超过个加工,最多不超过7个。个。(第(第3章章 补充习题)补充习题)17.某银行储蓄系统功能是某银行储蓄系统功能是: 将储户填写的存款单将储户填写的存款单或取款单输入系统。或取款单输入系统。 如果是存款,系统将储户如果是存款,系统将储户的存款信息(姓名、住址、存款日期、存款类型、的存款信息(姓名、住址、存款日期、存款类型、存款金额、利率等)记录在帐户文件中,并打印存款金额、利率等)记录在帐户文件中,并打印

43、存款清单给储户;如果是取款,系统先查询帐户存款清单给储户;如果是取款,系统先查询帐户文件,并打印取款清单给储户。文件,并打印取款清单给储户。 (1)画出该问题数据流图的画出该问题数据流图的顶层图顶层图 和和 第二层图。第二层图。 (2)以公式的形式建立数据流条目以公式的形式建立数据流条目“存款单存款单”。(第(第3章补充习题)章补充习题)17. 某银行储蓄系统功能是某银行储蓄系统功能是: 将储户填写的存款单或将储户填写的存款单或取款单输入系统。取款单输入系统。 如果是存款,系统将储户的存款如果是存款,系统将储户的存款信息(姓名、住址、存款日期、存款类型、存款金信息(姓名、住址、存款日期、存款类

44、型、存款金额、利率等)记录在帐户文件中,并打印存款清单额、利率等)记录在帐户文件中,并打印存款清单给储户;如果是取款,系统先查询帐户文件,并打给储户;如果是取款,系统先查询帐户文件,并打印取款清单给储户。印取款清单给储户。 (1)画出该问题数据流图的画出该问题数据流图的顶层图顶层图 和和 第二层图。第二层图。 (2)以公式的形式建立数据流条目以公式的形式建立数据流条目“存款单存款单”。3.3 结构化系统设计结构化系统设计( SD, Structured Design)3.3.1 SD概述概述 1.面向数据流的设计面向数据流的设计和面向数据结构的设计和面向数据结构的设计 按照出发点的不同按照出发

45、点的不同, 传统的软件设计又可分传统的软件设计又可分为面向数据流的设计和面向数据结构的设计两为面向数据流的设计和面向数据结构的设计两大类。前者以结构化设计(大类。前者以结构化设计(Structured Design, SD)为主要代表,后者以)为主要代表,后者以Jackson方法为主要方法为主要代表。代表。 在面向数据流的方法中在面向数据流的方法中,数据流是考数据流是考虑一切问题的出发点。在分析阶段,用虑一切问题的出发点。在分析阶段,用数据流图来表示系统的逻辑模型;在设数据流图来表示系统的逻辑模型;在设计阶段,按照数据流图的不同类型计阶段,按照数据流图的不同类型( 变变换型或事务型换型或事务型

46、 ) 将它们转换为相应的软将它们转换为相应的软件结构图。件结构图。 Jackson方法以数据结构作为分析与方法以数据结构作为分析与设计的基础设计的基础,认为算法的结构在很大程认为算法的结构在很大程度上依赖于它要处理的问题的数据结构度上依赖于它要处理的问题的数据结构,因此可以由该问题的数据结构导出它的因此可以由该问题的数据结构导出它的程序结构。面向数据结构的设计方法主程序结构。面向数据结构的设计方法主要用于小型数据处理系统的开发要用于小型数据处理系统的开发,一般一般情况下也适合于在详细设计阶段使用情况下也适合于在详细设计阶段使用.2. 2. 从分析模型导出设计模型从分析模型导出设计模型数据字典数

47、据字典数数据据流流图图实实体体关关系系图图状态迁移图状态迁移图加加工工规规格格说说明明控控制制规规 格格说说明明数数据据对对象象描描述述过程设计过程设计接口设计接口设计体系结构设计体系结构设计(SC)(SC)数据设计数据设计3.3.2 SD的步骤的步骤:从从DFD图到图到SC图图1.数据流图的类型数据流图的类型: 有两种形式,即:有两种形式,即:变换型变换型( Transform Flow ) 和和 事务型事务型( Transaction Flow )。(1)变换型结构变换型结构 ( Transform Flow ) 变换型结构由三部分组成变换型结构由三部分组成: 传入路径传入路径(Affer

48、ent Path)、)、变换中心变换中心(Transform Center)和)和传出路径传出路径(Efferent Path)。流经)。流经这这3个部分的数据流分别称为:传入流、变换个部分的数据流分别称为:传入流、变换流和传出流。流和传出流。 变换中心的任务是:通过计算或处理,把变换中心的任务是:通过计算或处理,把系统的传入流变换为传出流。系统的传入流变换为传出流。传入路径传入路径变换中心变换中心传出路径传出路径传入流传入流变换流变换流传出流传出流ABCaPRWQUVDEbcrwdevup传入部分传入部分变换中心变换中心传出部分传出部分图图3.23 变换型结构的模型变换型结构的模型(2)事务

49、型结构事务型结构 ( Transaction Flow )事务型结构由至少一条事务型结构由至少一条接收路径接收路径(Receive Path)、一、一个个事务中心事务中心(Transaction Center)和和若干条动作路径若干条动作路径(Action Path)组成。当外部信息沿着接收路径进入系组成。当外部信息沿着接收路径进入系统后统后,经过事务中心处理,获得某一个特定值,并据此经过事务中心处理,获得某一个特定值,并据此启动某一动作路径的操作。示意图如下:启动某一动作路径的操作。示意图如下:事务事务中心中心接收路径接收路径动作路径动作路径图图3.21 事务型结构的基本模型事务型结构的基本

50、模型2. SD方法的步骤方法的步骤 SD方法规定了下列方法规定了下列4个步骤个步骤:(1)重审数据流图,必要时可再次进行修改或细重审数据流图,必要时可再次进行修改或细化;化;(2)鉴别数据流图的结构特征,确定它是属于变鉴别数据流图的结构特征,确定它是属于变换型还是事务型;换型还是事务型;(3)按照按照SD方法规定的一组规则(变换映射或事方法规定的一组规则(变换映射或事务映射),把务映射),把DFD图转换为初始的图转换为初始的SC图;图;变换型变换型DFD图图初始初始SC图图变换映射变换映射事务型事务型DFD图图初始初始SC图图事务映射事务映射(4)优化初始的优化初始的SC图,获得最终的图,获得

51、最终的SC图。图。3.3.3 变换映射变换映射( Transform Mapping )变换映射的变换映射的3个主要步骤:个主要步骤:(1) 划分划分DFD图的边界:区分传入部分、图的边界:区分传入部分、传出部分和变换中心;传出部分和变换中心;(2) 建立初始建立初始SC图的框架:进行第一级分图的框架:进行第一级分解,解,设计上层模块设计上层模块顶层和第一层顶层和第一层;(3) 分解分解SC图的各个分支:进行第二级分图的各个分支:进行第二级分解,解,设计传入分支、传出分支和变换中设计传入分支、传出分支和变换中心的中、下层模块心的中、下层模块。ABCaPRWQUVDEbcrwdevup例例 3.

52、9 第一步第一步: 划分划分DFD图的边界:区分传入部分、传图的边界:区分传入部分、传出部分和变换中心。出部分和变换中心。图图 3.23 划分传入部分、传出部分和变换中心划分传入部分、传出部分和变换中心传入部分传入部分变换中心变换中心传出部分传出部分第二步第二步:完成第一级分解完成第一级分解,设计上层模块设计上层模块顶层和顶层和第一层。第一层。 (1)顶层只包含一个用于控制的主模块。顶层只包含一个用于控制的主模块。 (2)第一层包括传入、传出和中心变换第一层包括传入、传出和中心变换3个模块,个模块,分别代表系统的分别代表系统的3个相应分支。个相应分支。MT(变换模块变换模块)MC(主模块主模块

53、)MA(传入模块传入模块)ME(传出模块传出模块)c,ec,eu,wu,w顶层顶层第一层第一层图图3.24(a) 第一级分解后的第一级分解后的SC图图第三步:完成第二级分解,细化第三步:完成第二级分解,细化SC图的各个分支图的各个分支(1)传入分支的模块分解传入分支的模块分解: 模块的调用顺序与加工顺序相反模块的调用顺序与加工顺序相反(逆向移动逆向移动)。MA (传入模块传入模块)Cc,e图图3.25(a) 传传 入分支的分解入分支的分解BAEDcbaed(2)传出分支的模块分解传出分支的模块分解: 模块的调用顺序与加工顺序相同模块的调用顺序与加工顺序相同(正向移动正向移动)。ME (传出模块

54、传出模块)w,u图图3.26 传出分支的分解传出分支的分解WVUwvu(3)变换中心分支的模块分解变换中心分支的模块分解: 模块的调用顺序按加工顺序自左向右排列模块的调用顺序按加工顺序自左向右排列。MT (变换模块变换模块)w,u图图3.27 变换中心分支的分解变换中心分支的分解QPRrc,eeprc,pw,uMTMCMAMEc,ec,eu,wu,w顶层顶层第一层第一层图图3.28 从图从图3.23导出的初始的变换型导出的初始的变换型SC图图CEQPRWUc,peprru,wwuBADVbadecvMAGet CbacdeGet BRead AGet ERead Dc,eB To CA To

55、BD To EbcabdeMEWrite WwuuPut UU To VWrite Vvvw,uMAMCMTME顶层顶层第一层第一层c,eu,wc,eu,wGet CbacdeGet BRead AGet ERead DB To CA To BD To EbcabdePQRec,pru,wprWrite WwuuPut UU To VWrite Vvv第第二二层层图图3.28 从图从图3.23导出的初始的导出的初始的变换型变换型SC图图3.3.4 事务映射事务映射(Transaction mapping )事务映射的事务映射的3个主要步骤:个主要步骤:(1) 划分划分DFD图的边界:区分事务中

56、心、接收图的边界:区分事务中心、接收部分(接收路径)和发送部分(发送路径);部分(接收路径)和发送部分(发送路径);(2)建立初始建立初始SC图的框架,图的框架,设计上层模块设计上层模块顶层和第一层顶层和第一层;(3) 分解和细化接收分支和发送分支分解和细化接收分支和发送分支,完成初,完成初始的始的SC图。图。ATBaCDa1例例 3.10 第一步第一步: 划分划分DFD图的边界:区分事务中心、图的边界:区分事务中心、接收部分和发送部分。接收部分和发送部分。图图 3.29 事务型事务型DFD图的划分图的划分a2a3接收部分接收部分(输入流输入流)事务中心事务中心动作路径部分动作路径部分(活动流

57、活动流)第二步:第二步: 设计上层模块设计上层模块顶层和第一层。顶层和第一层。 (1)顶层只包含一个用于控制的主模块。顶层只包含一个用于控制的主模块。 (2)第一层包括接收和发送第一层包括接收和发送2个模块,分别代表个模块,分别代表系统的系统的2个分支。个分支。MC(主模块主模块)A (接收模块接收模块)T (发送模块发送模块)aa顶层顶层第一层第一层图图3.30 事务型事务型SC图的上层结构图的上层结构第三步:第三步:分解和细化接收分支和发送分支。分解和细化接收分支和发送分支。(1)接收分支负责接收数据接收分支负责接收数据,通常只有一个接收模块。通常只有一个接收模块。(2)发送分支的发送模块

58、是一个调度模块,它控制下层发送分支的发送模块是一个调度模块,它控制下层的所有动作模块。的所有动作模块。MC(主模块主模块)A (接收模块接收模块)T (发送模块发送模块)aa顶层顶层第一层第一层从图从图3.29导出的初始的事务型导出的初始的事务型SC图图BCDa1a2a3 许多大型系统的许多大型系统的DFDDFD图通常都是图通常都是变换型变换型和和事务型事务型的的混合结构混合结构,下图所给出的就,下图所给出的就是一个混合型是一个混合型DFDDFD图。从总体上来看,图。从总体上来看,该该DFDDFD图是一个图是一个变换型结构变换型结构,但是在系,但是在系统的统的传入路径传入路径中,又包含了一个中

59、,又包含了一个事务型事务型结构结构。3.3.5 优化初始优化初始SC图的指导规则图的指导规则1.对模块划分的原则对模块划分的原则模块的行数应控制在模块的行数应控制在 10100 行的范行的范围。围。2. 高扇入高扇入 / 低扇出的原则低扇出的原则扇入扇入(fan-in):一个模块直接上级模块的个数。扇入一个模块直接上级模块的个数。扇入高则上级模块多,能够增加模块利用率。高则上级模块多,能够增加模块利用率。扇出扇出(fan-out):一个模块直接下级模块的个数。扇一个模块直接下级模块的个数。扇出低则下级模块少,可以减少模块调用和控制的复出低则下级模块少,可以减少模块调用和控制的复杂度。通常扇出数

60、以杂度。通常扇出数以34为宜,不要超过为宜,不要超过7个。个。MM(a)模块模块M的扇入的扇入(b)模块模块M的扇出的扇出图图3.32 模块的扇入和扇出模块的扇入和扇出如果一个模块的扇出数过大(煎饼形结构),就意如果一个模块的扇出数过大(煎饼形结构),就意味着该模块过分复杂,需要协调和控制过多的下属模味着该模块过分复杂,需要协调和控制过多的下属模块,应当适当增加中间层使扇出减少(塔形结构)。块,应当适当增加中间层使扇出减少(塔形结构)。(a)煎饼形结构煎饼形结构(b)塔形结构塔形结构图图3.33 增加中间层可减少扇出增加中间层可减少扇出MA图图3.34 瓮形结构瓮形结构 总的考虑是总的考虑是:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论