第五章 结构化设计

文章介绍了结构化设计的概念,包括总体设计和详细设计,重点阐述了如何将数据流图(DFD)转化为模块结构图(MSD),涉及变换型和事务型DFD的区别,以及设计过程中遵循的高内聚低耦合原则。同时,讨论了模块设计的启发式规则和接口设计的重要性。
摘要由CSDN通过智能技术生成

结构化设计的概念

1. 设计的定义

一种软件开发活动,定义实现需求规约所需的软件结构。
结构化设计分为:
(1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。
(2)详细设计:详细描述模块。

2. 整体框架

在这里插入图片描述

体系结构设计(MSD)

在这里插入图片描述

接口设计

在这里插入图片描述

数据设计

在这里插入图片描述

3. 对设计方法的需求

实现软件设计的目标对结构化设计方法的需求
(1) 提供可体现**“原理/原则”的一组术语(符号),形 一个特定的抽象层,用于表达设计中所使用的部件。
(2)依据术语所形成的“空间”, 给出
表达软件模型工具**。
(3)给出设计的过程指导

4. 总体设计层概述

(1)在总体设计层

① 引入了两个术语/符号

在这里插入图片描述

② 引入了模块结构图 (MSD)

在这里插入图片描述

③ 过程指导

将DFD转化为MSD
第一步:如何将DFD转化为初始的MSD
分类:变换型数据流图、事务型数据流图、变换设计、事务设计
第二步:如何将初始的MSD 转化为最终可供详细设计使用的MSD

总体设计三个阶段

第一阶段:初始设计。在对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。 根据穿越系 统边界的数据流初步确定系统与外部的接口。

第二阶段:精化设计。依据模块"高内聚低耦合"的原则, 精化初始的模块结构图, 并设计其中的全局数据结构和每一模块的接口。

第三阶段:设计复审阶段,对前两个阶段得到的高层软件 结构进行复审,必要时还可能需要对软件结构做一些精化 工作。

初始模块结构图的设计

1. 数据流图的分类

变换型DFD

具有较明显的输入部分和变换部分之间的界面、变换部分和输出部分之间界面的数据流图。
在这里插入图片描述
在这里插入图片描述

事务型DFD

数据到达一个加工,该加工根据输入数据的值,在其后的若干动作序列(称为一个事务)中选出一个来执行,这类数据流 图称为事务型数据流图。
在这里插入图片描述
1)接受输入数据
2)分析并确定对应的事务
3)选取与该事务对应的一条活动路径

事务型DFD和变换型DFD的区别

  1. 原则上所有DFD都可以看成是变换型DFD
  2. 一般而言,接受1个输入数据,分成多条路径

变换设计的基本步骤

①第1步:设计准备—复审并精化系统模型
②第2步:确定输入、变换、输出这三部分之间的边界
在这里插入图片描述

③第3步:第一级分解—系统模块结构图顶层和第一层的设计
S
④ 第4步:第二级分解— 自顶向下,逐步求精
在这里插入图片描述

事务设计的基本步骤

① 第1步:设计准备— 复审并精化系统模型
②第2步:确定事务处理中心
③第3步:第一级分解—系统模块结构图顶层和第一层的设计
在这里插入图片描述
④ 第4步:第二级分解一自顶向下,逐步求精
在这里插入图片描述

模块和模块化

常见的启发式规则

模块:执行一个特殊任务的一组例程和数据结构
接口:给出可由其他模块和例程访问的对象
实现:接口的实现(模块功能的执行机制)
模块化:把系统分解成若干模块的过程

切记:高内聚低耦合

启发式规则

从长期的软件开发实践中,总结出来的规则。

常见的启发式规则

改进软件结构,提高模块独立性;
模块规模适中-每页60行语句;
深度、宽度、扇入和扇出适中;
模块的作用域力争在控制域之内;
降低模块接口的复杂性;
模块功能应该可以预测。

输入部分的精化

在这里插入图片描述

输出部分的精化

在这里插入图片描述
在这里插入图片描述

变换部分的精化

在这里插入图片描述

接口设计

(1)模块或软件构件间的接口设计;
(2)软件与其他软硬件系统之间的接口设计;
(3)软件与人(用户)之间的交互设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值