第四章总体设计(System Design)
开始考虑“How”,但仍属高层设计(确定黑盒关系)
§1. 过程
1、确定最佳方案:
从DFD出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列4份资料:
⑴系统流程图
⑵组成系统的物理元素清单
⑶成本/效益分析
⑷进度计划
选择最佳方案并制定详细的实现计划(主要技术详见第十三章)
§1. 过程
2、结构设计——模块化思想:
将DFD细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一级的功能。
主要工具有 System Design Hierarchy及HIPO图等。
3、数据库设计(略)
5、文档、审查
4、测试计划(详见第七章)
§(Modularization)
1、原理:
经验1:E(P1+P2)>E(P1)+E(P2)
经验2:
成本
成本/ 模块
最小成本区
接口成本
软件总成本
模块数目
§
2、抽象(Abstraction):
忽略细节,分层理解问题,自顶向下层层加细。
例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。
抽象层次I:用问题所处环境的术语来描述这个软件。
该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个CAD软件实现……。
§
抽象层次II:任务需求的描述。列出“What”而不是“How”。
CAD SOFTWARE TASKS:
user interaction task;
2-D drawing creation task;
graphics display task;
drawing file management task;
END
§
抽象层次III:程序过程表示。以2-D绘图生成任务为例:
PROCEDURE 2-D drawing creation
REPEAT UNTILE (drawing creation task terminates)
DO WHILE (digitizer interaction occurs)
Digitizer interface task;
DETERMINE drawing request CASE
Line: line drawing task;
Rectangle: rectangle drawing task;
Circle: circle drawing task;
……
END;
DO WHILE (keyboard interaction occurs)
keyboard interaction task;
PROCESS putation CASE
View: auxiliary view task;
Section: cross sectioning task;
……
END;
……
END REPETITION;
END PROCEDURE.
§
3、信息隐蔽(Information hiding)
The clients of a module know about its services only through its interface; the implementation is hidden from them (hence may change without affecting the clients).
4、模块独立性(Module independence)
好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。
在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。
§
⑴耦合(Coupling)
Great deal of dependence
Independent
Highly coupled
Loosely coupled
Uncoupled
独立性的度量:耦合(Coupling)&内聚(Cohesion)
(Yourdon & Constantine,1978)
§
例1:A访问C的内部数据或不通过正常入口而转入C的内部。
……
A
B
C
D
A:
…………
…………
goto C1
…………
…………
C:
…………
…………
C1:
……
……
独立性由弱到强排列为:
内容耦合(C
总体设计(system design) 来自淘豆网www.taodocs.com转载请标明出处.