软件工程 结构化设计方法 第3篇随笔
3.2、结构化设计方法
何谓设计?
一种软件开发活动,定义实现需求规约所需结构
1.对设计方法的需求
- 提供可体现“原理/原则”的一组术语(符号),形成一个特定的抽象层,用于表达设计中所使用的部件
- 依据术语形成的“空间”,给出表达软件模型工具
- 给出设计的过程指导
2.总体设计层
-
引入两个术语/符号
-
模型:一种可独立标识的软件成分
-
调用:模块间的一种关系,模块A为了完成其任务必须依赖其他模块
——————>
-
-
引入了模块结构图
用于表达软件系统的静态结构
-
过程指导
为了实现水目标,总体设计的具体任务:将DFD转化为MSD
分两步实现:
第一步:如何将DFD转化为MSD
分类:变换型数据流图
事务型数据流图
变换设计
事务设计
数据流图分类:
变换型:
事务型:
变换设计:
事务设计:
第二步:基于模块化原理—高内聚 低耦合
给出一些设计规则—经验规则
用于精化初始的MSD
— 体现设计人员的创造
耦合:
不同模块之间相互依赖程度的度量
耦合类型:
- 内容耦合
- 公共耦合
- 控制耦合
- 标记耦合
- 数据耦合
内聚:
一个模块之内各个成分之间相互依赖程度的度量
内聚类型:
- 偶然内聚
- 逻辑内聚
- 时间内聚
- 过程内聚
- 通信内聚
- 顺序内聚
- 功能内聚
启发性规则—建经验的总结
- 改进软件结构,提高模块独立性
- 模块规模适中-每页60行语句
- 深度、宽度、扇入和扇出适中
- 模块的作用域力争在控制域之内
- 降低模块接口的复杂性
- 模块功能应该可以预测
3.详细设计层
主要引入了关于三种动作控制结构的术语/符号
三种控制结构:顺序,选择和循环
-
第一种表达-伪代码
顺序: begin s1;s2;...;sn end; 选择: if 条件表达式 then s1 else s2; 循环 while 条件表达式 do s;
-
第二种表达-框图
-
第三种表达-PAD图
-
第四种表达-N-S图