赞
踩
一种软件开发活动,定义实现需求规约所需的软件结构。
设计目标:依据需求规约,在一个抽象层上建立系统软件模型,包括软件体系结构(数据和程序结构),以及详细的处理算法,产生设计规格说明书。
即:要回答如何解决问题一给出软件解决方案
结构化设计分为
(1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。
(2)详细设计:详细描述模块。
实现软件设计的目标对结构化设计方法的需求:
(1)提供可体现“原理/原则”的一组术语(符号),形成一个特定的抽象层,用于表达设计中所使用的部件
(2)依据术语所形成的“空间”,给出表达软件模型工具。
(3)给出设计的过程指导。
模块:一种可独立标识的软件成分。
调用:模块间的一种关系,模块A为了完成其任务必须依赖其他模块。
用于表达软件系统的静态结构。
为了实现设计目标,总体设计的具体任务是:将DFD转化为MSD
分二步实现:
第一步:如何将DFD转化为初始的MSD
分类:
变换型数据流图
事务型数据流图
变换设计
事务设计
第二步:如何将初始的MSD转化为最终可供详细设计使用的MSD
总体设计分为三个阶段:
第一阶段:初始设计。在对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。根据穿越系统边界的数据流初步确定系统与外部的接口。
第二阶段:精化设计。依据模块“高内聚低耦合”的原则精化初始的模块结构图,并设计其中的全局数据结构和每一模块的接口。
第三阶段:设计复审阶段,对前两个阶段得到的高层软件结构进行复审,必要时还可能需要对软件结构做一些精化工作。
总体设计第一步:DFD -> 初始的MSD
具有较明显的输入部分和变换部分之间的界面、变换部分和输出部分之间界面的数据流图。
数据到达一个加工 (例如下图1) ,该加工根据输入数据的值,在其后的若干动作序列(称为一个事务)中选出一个来执行,这类数据流图称为事务型数据流图。
事务型DFD完成下述任务
事务型DFD和变换型DFD的区别
原则上所有DFD都可以看成是变换型DFD
一般而言,接受1个输入数据,分成多条路径
第1步:设计准备——复审并精化系统模型
第2步:确定输入、变换、输出这三部分之间的边界
第3步:第一级分解——系统模块结构图顶层和第一层的设计
主模块:位于最顶层,一般以所建系统的名字命名,其任务是协调控制第一层模块。
输入模块部分:为主模块提供加工数据,有几个逻辑输入就设计几个输入模块。
变换模块部分:接受输入模块部分的数据,并对内部形式的数据加工,产生系统所有的内部输出数据。
输出模块部分:将变换模块产生的输出数据,以用户可见的形式输出。有几个逻辑输出,就设计几个输出模块。
第4步:第二级分解——自顶向下,逐步求精
第1步:设计准备——复审并精化系统模型
第2步:确定事务处理中心
第3步:第一级分解——系统模块结构图顶层和第一层的设计
第4步:第二级分解——自顶向下,逐步求精
DFD -> 初始的MSD
总体设计第二步:将初始的MSD转化为最终可供详细设计使用的MSD
概念:模块,模块化
基于模块化原理——高内聚、低耦合
给出设计规则——经验规则——启发式规则
用于精化初始的MSD——体现设计人员的创造
模块:执行一个特殊任务的一组例程和数据结构
模块化:把系统分解成若干模块的过程
设C(x)是定义问题x复杂性的函数,E(x)是定义解决问题x所需要的工作量,那么,对于两个问题p1和p2,如果C(p1)>C(p2),那么E(p1)>E(p2)
解释:解决困难问题需要花费更多的时间
人们又发现了另外一个有趣的特征:C(p1+p2)>C(p1)+C(p2)
由上页结论:If C(g1)>C(g2) Then E(g1)>E(g2)
所以:E(p1+p2)>E(p1)+E(p2)
定义:不同模块之间相互依赖程度的度量
耦合的强度所依赖的因素:
耦合类型:(由强到弱)
原则:如果模块间必须存在耦合就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合
。
定义:一个模块之内各成分之间相互依赖程度的度量。
好的设计满足:
模块的功能单一
模块的各部分都和模块的功能直接相关
高内聚
内聚类型:(由低到高)
确定逻辑输入/逻辑输出的方法:
(1)从物理输入端向前找,从物理输出端向后找。
(2)通过名字,根据经验进行判断。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。