当前位置:文档之家› 结构化软件开发方法

结构化软件开发方法


IPO图及改进的IPO图 IPO图及改进的IPO图
软件结构图
A 扇出为3 D
B
C
深度为5 I
E
F
G
H
J
K
L 扇入为2 宽度为6
M
N
O
P
软件结构图
软件结构图是系统的模块层次结构,反映了整个系统的功能实现,即 将来程序的控制层次体系; 结构图的主要内容是: (1)模块:模块用方框表示,并用名字标识该模块,名字应体现该模 块的功能 (2)模块的控制关系:两个模块间用单向箭头(或直线)连接表示它们 的控制关系 (3)模块间的信息传递:模块间还经常用带注释的短箭头表示模块调 用过程中来回传递的信息。有时箭头尾部带空心圆的表示传递的是数 据,带实心圆的表示传递的是控制信息 (4)两个附加符号:表示模块有选择地调用或循环调用
数据流图向软件结构图转换
变换分析技术
步骤: 确定主加工及逻辑输入/逻辑输出:所谓主加工,是指描 述系统的主要功能、特征的加工。其特点是:输入/出数 据流较多,往往主加工不止一个。逻辑输入/出数据流则 是指输入、输出主加工的数据流。 进行一级分解,设计上层模块:顶层的模块又称为主控模 块,如模块M。一级分解是对顶层的模块进行分解;为每 个逻辑输入设计一个输入模块(CI),为每个逻辑输出设计 一个输出模块(CO),同时为每个主加工设计一个处理模 块(CT),并标注模块名,用小箭头画出相应的数据流。
课后练习
请将医院监视系统的数据流图转换为软件结构图和IPO图 复习详细设计的图形工具 预习期刊管理系统的需求分析与设计
期刊管理系统
期刊信息是图书馆,企事业单位资料室等进行期刊管理所必须 而频繁使用的信息资料; 期刊管理系统的目的是实现期刊登记、借阅、查询等业务的自 动化管理,以提高工作效率。要求系统简单实用,既可以单独 使用,也可以作为其他大型应用系统的一个组成部分来使用。 该系统的主要功能如下: 1) 读者信息管理:添加读者信息,更改读者信息,删除读者 信息 2) 期刊管理:管理所有种类期刊的基本信息,管理员登记新 到的期刊信息,包括刊号、年、期、数量和相应的文章信息; 3) 期刊借阅:处理读者的期刊借阅、归还业务; 4) 期刊查询:查询期刊的库存、某期刊的去向信息;
数据流图+ 数据流图+数据字典
顶层数据流图
数据流图+ 数据流图+数据字典
如何对顶层数据流图进行分解?
第一步:分析输入、输出数据及存储数据
输入数据:组合病症信号,请求 输出数据:报警信号,病情报告 存储数据:标准病症信号,病历
第二步:明确数据的形式,需在数据字典中详细说明
组合病症信号:模拟信号 报警信号:模拟信号 请求,病情报告,标准病症信号,病历
1层数据流图
IPO图和软件结构图 IPO图和软件结构图
IPO图即输入(Input)、处理(Process)、 输出 (Output)图,是IBM公司最早提出并用于描述过 程的工具; 可在需求分析阶段用于描述业务过程;在总体设计 阶段描述系统的输入,输出和处理;在详细设计阶 段描述模块的输入,输出和过程;
详细设计
模块算法描述 模块接口细节:系统外部接口、 用户界面、内部接口和输入数据、 输出数据、局部数据细节 测试用例设计:输入数据和预期 输出
概要设计
结构设计:数据流图转化为软件结构图 接口设计:用户接口、外部接口和内部接口 数据设计:逻辑结构设计、物理结构设计以 及数据结构与程序的关系 界面设计:界面风格和规范 出错处理设计:出错信息、补救措施和系统 维护设计
变换分析技术
变换分析技术
步骤: 进行二级分解,设计中下层模块:这一步的工作是自顶向 下,逐步细化,为第一层的每一个输入模块、输出模块、 处理模块设计它们的从属模块,设计下层模块的顺序一般 从设计输入模块的下层开始。通常为输入模块设计两类下 层模块:接收数据的模块和对所接收的数据进行某种处理 的模块,为输出模块也设计两类下层模块,对输出的数据 进行处理的模块和输出数据的模块。处理模块的一种分解 方法是则按照分层DFD 图中主加工的分解来进行。
期刊管理系统
可扩展功能如下: 5) 期刊的征订:完成下一年度预定的期刊目录的生成; 6) 期刊内容登记:将新到的每本期刊的所有文章的信息 (文章题目、作者姓名、作者单位、关键词等)登记到数据 库中; 7) 期刊内容查询:输入关键词,查询出包括这些关键词 的有关文章的题目、登载的期刊信息(名称、年、期)等。
结构化软件开发流图+数据字典 IPO图和软件结构图 数据流图向软件结构图转换 程序流程图、PAD图、盒图和伪码 E-R图 分析与设计工具
结构化开发流程
需求分析
业务需求: 组织结构,人员和业务 功能需求: 抽象的软件功能 非功能需求:对性能等的要求 分析工具:业务流程图,数据流图和数据字典 需求规格说明书:准确、无二意性和客户签字 认可
数据流图+ 数据流图+数据字典
医院病房监护系统: 在医院ICU病房里,将病症监视器安置在每个病床,对病 人进行监护。监视器将病人的组合病症信号实时地传送到 中央监护系统进行分析处理。 在中心值班室里,值班护士使用中央监护系统对病员的情 况进行监控,监护系统实时地将病人的病症信号与标准的 病诊信号进行比较分析,当病症出现异常时,系统会立即 自动报警,并打印病情报告和更新病历。 根据医生的要求随时打印病人的病情报告,系统还定期自 动更新病历。
编码
编码规范 代码编写
测试
单元测试、集成测试和系统测试 白盒测试和黑盒测试
数据流图+ 数据流图+数据字典
数据流图:描述数据的变换过程 图形元素:数据源点/终点、数据流、数据存储和处理 画图原则:自顶向下、逐步求精 注意事项:分层编号、命名和子父图平衡 数据字典:对数据流图的详细说明,包括处理、数据项、 数据结构等。
软件结构图
软件结构图
软件结构图
画结构图应注意的事项 ①同名字的模块在结构图中仅出现一次。 ②调用关系只能从上到下。 ③不严格表示模块的调用次序,习惯上从左到右。有时为了减少连线 的交叉,适当地调整同一层模块左右位置,以保持结构图的清晰性。
数据流图向软件结构图转换
数据流的类型:变换流和事务流 变换流:信息沿输入通路进入系统,同时由外部形式变换 成内部形式,进入系统的信息通过变换中心,经加工处理 以后再沿输出通路变换成外部形式离开系统,当数据流图 具有这些特征时,这种信息流叫变换流 事务流:数据沿输入通路到达一个处理,这个处理根据输 入数据的类型在若干个动作序列中选出一个来执行。这类 数据流应该划分为一类特殊的数据流,称为事务流
变换分析技术
变换分析技术
步骤: 进一步细化:对中、下层的模块继续细化,一直分解到物 理的输入和输出为止。如“取B”模块设计下层模块“取A” 和“转换A”,“送E”模块设计下层模块“转换E”和“送F” 等。要特别要注意:结构图中的模块,并非是由DFD 图 中的加工直接对应转换而来的,因此加工和模块之间不存 在一一对应的关系。结构图与DFD 图之间的数据流存在 对应关系。
事务分析技术
步骤: 确定事务处理中心及事务路径:首先从数据流图中确定事 务处理中心,再找出输入流和加工路径。事务中心一般是 很容易识别的;事务中心将一个输入数据流分解为多个输 出输出数据流,即加工路径。
事务分析技术
事务分析技术
步骤: 设计顶层模块,进行一级分解:对事务中心应设计“事物控制” 模块;即顶层的“主控模块”。一级分解的任务是从数据流图 中导出具有接受分支和发送分支的软件结构,也称为事务结构。 对输入流应设计“接受事务”模块;对加工路径,应设计“发 送事务”模块。 进行二级分解,设计中下层模块:对于接受分支,可用类似于 变换型数据流图中设计输入部分的方法进行中下层设计。对于 发送分支,在发送控制模块下为每条加工路径设计一个事务处 理模块,这一层称为事务层。在事务层模块下,沿各事务路径 进行进一步细化。细化的各层称为细化层,细化的方法与变换 分析的细化方法相同。
第三步:分析处理(根据输入向输出变换的需求)
处理组合病症信号 分析病症信号 更新病历 生成病情报告
数据流图+ 数据流图+数据字典
0层数据流图
数据流图+ 数据流图+数据字典
0层数据流图中的哪些处理是需要进一步分解的? 分析病症信号 分解病人数据 判定异常 产生报警信息 格式化病人数据
数据流图+ 数据流图+数据字典
相关主题