系统总体设计_第1页
系统总体设计_第2页
系统总体设计_第3页
系统总体设计_第4页
系统总体设计_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计的任务,就是把需求阶段产生的软件说明

转换为用适当手段表示的软件设计文档。按照软件生存

周期的划分,设计任务通常分为两个阶段完成,第一个

阶段是总体设计阶段,用来确定软件的结构,即软件的

组成,以及各组成成分(子系统模块)之间的相互关系。

第二阶段是详细设计阶段,其任务是确定模块内部的算

法和数据结构,产生描述各模块程序过程的详细设计文

档。也就是说,软件设计的全过程可以归结为:总体设

计——总体设计复审——详细设计——详细设计复审。

7.1软件总体设计的基本任务

总体设计又称为概要设计或初步设计,它

的基本目的就是回答“概括地说,系统应该如何

实现?”这个问题。在总体设计阶段,应划分出组

成系统的物理元素——程序、文件、数据库、人

工过程和文档等,并确定系统中每个程序由哪些

模块组成以及这些模块相互间的关系。

7.2总体设计的基本任务

❸软件系统设计

把DFD中的处理分组,从各种可能的分组情况中选择一

个作为最佳方案,该过程即为系统设计。

。软件结构设计

1.从系统设计方案所对应的DFD导出系统模块结构,并修

功能需求分配给各模块。

2.确定每个模块的功能及模块间的调用关系。

3.确定模块之间的接口,即模块之间传递的信息。

4.评价模块结构的质量。—厂—

❸数据结构及数据库设计

数据库设计包括:概念设计、逻辑设计、物理设计

4

5

7.2总体设计的基本任务

❸编写概要设计文档

1.概要设计说明书

2.数据库设计说明书

3.用户手册:对需求分析、交互设计阶段所编写、

修改的用户手册进行补充。

4.修订测试计划:对测试策略、方法和步骤提出

明确要求。

❸评审:

对是否完整地实现了需求中规定的功能、性能

等要求,设计方案的可行性、关键的处理及内外

部接口定义正确性、有效性以及各部分之间的一

致性等,进行评审。

6

7.3软件设计的基本概念和基本原理

一、模块化设计

1、相关概念

把大型软件按照规定的原则划分为一个个较小的、

相对独立但又相关的模块的设计方法,叫做模块化设计

(modulardesign)。

模块(module)是数据说明和可执行语句等程序

对象的集合,每个模块单独命名并且可以通过名字对模

块进行访问。

模块的概念

在软件的体系结构中,模块是可组合、分解和

更换的单元,具有以下几种基本属性:

接口:指模块的输入输出。

功能:模块实现的功能。

逻辑:内部如何实现及所需数据。

状态:模块的运行环境,调用与被调用关系。

逻辑属性反映内部特性,其它属性反映模块的

外部特性。

8

2.理想模块(黑箱模块)

理想模块的特点:

⑴每个理想模块只解决一个问题。

⑵每个理想模块的功能都应该明确,使人容易理

解。

⑶理想模块之间的联结关系简单,具有独立性。

⑷由理想模块构成的系统,容易使人理解,易于

编程,易于测试,易于修改和维护。

对用户来说,其感兴趣是模块的功能,而不必去理

解模块内部的结构和原理。

3.模块的理论根据

设函数C(x)定义问题x的复杂程度,函数

E(x)确定解决问题x需要的工作量。对于两

个问题P1和P2,如果:C(P1)>C(P2),则显

然有:

E(P1)>E(P2)

根据人类解决一般问题的经验,有:

C(P1+P2)>C(P1)+C(P2)

进而获得:E(P1+P2)>E(P1)+E(P2)

E(P1+P2)>E(P1)+E(P2)

这个不等式表明:单独解决问题Pl和P2

所需的工作量之和,比把P1和P2合起来作为

一个问题来解决时所需的工作量要少。

这种“分而治之”的思想提供了模块化的

根据:把复杂的问题分解成许多容易解决的

小问题,原来的问题也就容易解决了。

模块化和软件成本的关系

软件总成本

模块数目

4.模块的图形及符号

⑴模块的图形:用矩形表示。

修改库存一个作为宾语的名词组成

⑵模块间通讯的图形

模块间通讯有两种:数据通讯、控制通讯。

■数据通讯是一个数据流,它表示了一个经过处理

的数据从一个模块传向另一个模块。

■控制通讯,只传送一个标志,该标志只表达了处

理工作的某种状态,而不是由被发送模块真正进

行过处理的数据。

获得配件库存量

0库存量

配件编号6

■无此配件

读库存记录

模块间的联结模块间的通讯

⑶模块间判断调用的图形

一个模块是否调用某一个从属模块,

依赖于调用模块中判断的条件。如果条件

成立,则产生调用命令。

⑷模块间循环调用的图形

■指一个模块需要循环调用某一个或若干个

从属模块。

软件设计的基本原理

◎抽象:

❾是认识复杂现象过程中使用的思维工具。

❷软件结构顶层模块控制系统主要功能并影响全局,

底层模块完成具体的处理。

◎在进行软件设计时,抽象与逐步求精、模块化密

切相关,可提高软件的可理解性。

17

(1)过程的抽象

在软件工程中,从系统定义到实现,每进

展一步都可以看做是对软件解决方法的抽

象化过程的一次细化。

⑵数据抽象

在不同层次上描述数据对象的细节,定义

与该数据对象相关的操作。

软件设计的基本原理

◎信息隐蔽

是指在设计和确定模块时,使得一个模块内包含

的信息(过程和数据),对于不需要这些信息的

其他模块来说,是不可访问的。它为软件系统的

修改、测试及以后的维护都带来好处。

19

模块独立性

◎模块的独立性:指每个模块只完成系统要求的独

立的子功能,并且与其它模块的联系量最少且接

□简单。

e包括两个度量准则

㈱耦合性(Coupling):指软件系统结构中各模专

间相互联系紧密程度的一种度量。模块间耦合:

高低取决于接口的复杂性、调用的方式及传递'

的信息。

洸内聚性(Cohesion):指模块的功能强度的度堇/

即一个模块内部各个元素彼此结合的紧密程度'

的度量。;

■r-r-HA

■XL工r

-sz

*<tr

THj+■

K$ZC

inr,A

mfF早

累看

*<tc

fiT"O

J&■±&~4

§中仁.百

域旬*

<^ZI

TI『I十a

一n[u一4

^♦rt.,―lA

-<tl

rr-r?-1•■

■«■人,r.

中K・

4「™1

11111

非直接耦合(NondirectCoupling)

两个模块之间

没有直接关系)它

们之间的联系完全

是通过主模块的控

制和调用来实现的。

非直接耦合的模块

独立性最强。

数据耦合(DataCoupling)

一个模块访问另一个模块时,彼此之间是通过简

单数据参数(不是控制参数、公共数据结构或外

部变量)来交换输入、输出信息的。

标记耦合(StampCoupling)

一组模块通过参数表传递记录信息,就是标记耦

合。这个记录是某一数据结构的子结构,而不是

简单变量。

pO(xO,yO)pl(xl,yl)

数据耦合LINE(xO,yO,xl,yl)

标记耦合LINE(pO,pl)

控制耦合(ControlCoupling)

如果一个模

块通过传送开关、

标志、名字等控

制信息,明显地

控制选择另一模

块的功能,就是

控制耦合。

公共耦合(CommonCoupling)

若一组模块都访问同一个公共数据环境,则它们

之间的耦合就称为公共耦合。公共的数据环境可

以是全局数据结构、共享的通信区、内存的公共

覆盖区等。

ABAB

common公共数据区common公共数据区

(a)松散的公共耨合何紧密的公共耦合

内容根合(ContentCoupling)

如果发生下列情形,两个模块之间就

发生了内容耦合

(1)一个模块直接访问另一个模块的

内部

(2)一个模块不通过正常人口转到另

一模块内部;

(3)两个模块有一部分程序代码重迭

(只可能出现在汇编语言中);

(4)一个模块有多个入口。

内容耦合(ContentCoupling)

AABA

(a)进入另一模块内部

应该采取下述设计原则:尽量使用数

据耦合,少用控制耦合,限制公共环境耦

合的范围,完全不用内容耦合。

标记耦合举例

:模块之间的恃征联结

住户详情中包含了“本月用电量”和“本月用水量”

两个模块通过传递数据结构(不是简单数据,而是记

录、数组等)加以联系

29

将标记耦合改为数据耦合

30

控制耦合举例

平均/最高|)成绩

B

计算平均分或最高分

、'

1BK----------------

读入分数

分析B模块11、,

1计算平均分计算最高分

11

1输出结果

1------------

L

31

将控制耦合改为数据耦合

⑴将被调用模块内的判定上移到调用模块中进行

⑵被调用模块分解成若干单一功能模块

32

将控制耦合改为数据耦合

被调用模块内

处理逻辑模式

33

将控制耦合改为数据耦合

34

公共耦合举例

ABA

common公共数据区common公共数据区

(a)松散的公共耦合(b)紧密的公共耦合

(1)系统可理解性降低

(模块间存在错综复杂的连系)

(2)系统可维护性差

(修改变量名或属性困难)

(3)系统可靠性差

(公共数据区及全程变量无保护措施)

慎用公共数据区和全程变量!!!

模块A、B、C间存在错综复杂的联系

35

如何降低模块间耦合度:

(1)如模块必须存在耦合,选择适当的耦合类型

原贝人尽量使用数据耦合

少用控制耦合

限制公共耦合的范围

坚决避免使用内容耦合

(2)降低模块间接口的复杂性

接口复杂性与耦合类型的关系:

,直接引用--------------内容耦合

接口方式

/、过程调用语句----------其它耦合

,数据项作参数----------数据耦合

数据结构,变

复----------标记耦合

量名作参数

杂接口数据

性的复杂性

开关量,起控制耦合

控制变量作用

全程变量,

公共耦合

,公用数据区

无接口关系非直接耦合

内聚嵯

衡量一个模块内部各成分之间彼此结合的

紧密程度

设计目标:高聚合(一模块的所有成分都直

接参与并且对于完成同一功能来说都是最

基本的)

38

模块内聚

雕醵虢醵腥醵啊醵瞬醵胎械

BSitt

璇牌-脆楠

内聚性

•偶然内聚:指一个模块内的各处理元素之间没有任何联

系。

•逻辑内聚:指模块内执行几个逻辑上相似的功能,通过

参数确定该模块完成哪一个功能。例如把编辑各种输入数

据的功能放在一个模块中。

•时间内聚:把需要同时执行的动作组合在一起形成的模

块。例如程序设计中的初始化模块。

■通信内聚:指模块内所有处理元素都在同一个数据结构

上操作,或指各处理使用相同的输入数据或者产生相同的

输出数据。

•顺序内聚:指一个模块中各个处理元素都密切相关于同

一功能且必须顺序执行,前一功能元素的输出是后一功能

元素的输入。

•功能内聚:指模块内所有元素共同完成一个功能,缺一

不可。40

功能内聚举例

内聚一个模块内的所有成分的处理动作全部为完

成某个功能,且只执行一个功能,缺一不可,称为功

能聚合。

聚合性最强

如:计算实发工资,打印发票等

41

顺序内聚举例

一个模块能完成多个操作,前一个操作处理的输出

数据是下一个操作处理的输入数据,模块中各成份

的工作是有次序的,各成份的关系也较紧密,则称

为顺序聚合。

模块142模块2

通信内聚举例

配件编号J库存量模块内各部分使用

相同的输入数据,或产

J单价生相同的输出结果,称为

获得配件单通信聚合逋者,逋信向

价和库存量聚模块是通过微据流囹

来是文的。

43

通信内聚举例

函数A

函数B

函数C

查找登录删除修改

通信内聚举例

产生职工工资报表并计算平均工资模块

45

过程内聚举例

一个模块内各处理成分的动作各不相同,彼此也没

什么关系,但它们都受一个土逖流的支配,且决定了它

们的执行次序。

函数A

函数B

函数C

例如,把流程结构中的循环部分、判定部分、

计算部分分成一个模块,这三个任务组成的模块

是过程内聚模块。

46

过程内聚举例

全部任务纳入一^个

模块,得到一过程

性模块

高斯消去法解题流程

47

时间内聚举例

时间内聚又称为经典内聚。这种模块大多为

多功能模块,但模块的各个功能的执行与时间有

关,通常要求所有功能必须在同一时间段内执行

o这些功能只因时间因素关联在一起。

函数A(T时间)

函数B(T+t时间)

函数CfTt时间)

例如初始化模块、终止模块、紧急故障处理模块

48

逻辑内聚举例

调用模块

这种模块把几种

相关的功能组合

在一起,每次被

调用时,由传送被

给模块的判定参用

数来确定该模块模

应执行哪一种功块

49

逻辑内聚举例

缺点:增强了耦合程度(控制耦合)

不易修改,效率低

50

偶然内聚举例

当模块内各部分之间没有联系,或者即使有联系,

这种联系也很松散,则称这种模块为巧合内聚模块,

它是内聚程度最低的模块。

,做杂事,

模块M中的三个语句没有任何联系

缺点:可理解性差,可修改性差

51

7.4软件结构图形工具

◎软件结构图

目软件结构设计优化准则

◎表示软件结构的HIPO图

(HierarchyPlus

Input/Processing/Output)

52

软件结构图(StructureChart)

模块:用方框表示,名字体现该模块的功能

模块间的控制关系:统率、从属;

模块间的信息传递:

两个附加符号:

模块选择调用或循环调用。

注意事项:模块唯一、从上到下调用、调用次序不

ABC

结构图的形态特征

■深度、宽度、扇入、扇出。

扇入

T

宽度

54

SC7F的皿种模块

55

sc中的选择调用

A根据内部判断A按另一判定结果

决定是否调用B选择调用C或D

y、A

1~BIIC1I~~DI

56

sc中的循环调用

A根据循环条件重复调用B、C等模块

57

软件结构图举例

读输入编辑输入结果格式化显示输出

产生最佳解

58

7.5面向数据流的设计方法

(一)概念

1.变换流

2.事务流

3.设计过程

L变换流

参看图形,信息沿输入通

路进入系统,同时由外部

形式变换成内部形式,进

入系统的信息通过变换中

心,经过加工处理以后再

沿输出通路变换成外部形

式离开软件系统。

当数据流具有这些特征时,

这种信息流称为变换流。

2.事务流

数据沿输入通路到达一

个处理T,这个处理根

据输入数据的类型在若

干个动作序列中选出一

个来执行。这种“以事

务为中心的''的数据流,

称为“事务流”。

处理T称为事务中心,完成以下任务:接收输入数

据;分析每个事务以确定它的类型;根据事务类

型选取一条活动通路。

3、面向数据流的设计精化数据流程图

过程

详细设计

(二)变换分析设计方法

(TransformAnalysis)

步骤:

1找出主加工、逻辑输入和逻辑输出

2设计模块结构的顶层和第一层

3设计中、下层模块

1分输入、主加工、输出部分,在DFD

上标明分界线

⑴确定逻那就人——离物理输入端最远

的,但仍可被看作系统输入的那个数据

方法:从物理输入端开始,一步步向系

统的中间移动,直至达到这样一个数据

流:它已不能再被看作为系统的输入,

则其前一个数据流就是系统的逻辑输入O

1:分输入、主加工、输出部分,在DFD

上标明分界线(续)

⑵确定逻辑输出——离物理输出端最远的,

但仍可被看作系统输出的那个数据流

方法:从物理输出端开始,一步步向系统

的中间反方向移动,直至达到这样一个数

据流:它已不能再被看作为系统的输出,

则其后一个数据流就是系统的逻辑输出。

1:分输入、主加工、输出部分,在DFD

上标明分界线(续)

⑶对系统的每一股输入和输出,都用上面的

方法找出相应的逻辑输入、输出

(4)确定主加工----位于逻辑输入和逻辑输出

之间的加工)就是系统的主加工

⑸几点说明:

»有的系统只有输入和输出两部分,没有主加工

>根据经验,几股数据流的汇合处往往是系统的主加工

»每个人都可以有自己的看法,找出来的主加工可能也不

同,但一般不会相差太远。

变换中心

输入

部分

B■■

输入鼬IX

2设计SC的顶层和第一层模块:

(1)设计一个顶层模块(主模块),它的功能是完成整个

程序要做的工作。

(2)设计结构的第一层:

•为逻辑输入设计一个输入模块,它的功能是向主模块

提供数据

•为逻辑输出设计一个输出模块,它的功能是输出主模

块提供的数据

•为主加工设计一个变换模块,它的功能是号逻辑输入

变换成逻辑输出

第一层模块同顶层主模块之间传送的数据应与数据流图相对

应。这里主模块控制并协调一层的输入、变换、输出模块的工

作,注意识别出选择或循环调用以及调用条件。

第一级分解后的sc

3第二级分解(分解SC各分支)自顶向下分解,设计

出每个分支(输入、加工、输出)的中、下层模块:

⑴为每一个输入模块设计两个下层模块,一个是输入模

块,接受数据来源;另一个是变换模块,模块调用时传

送的参数应同数据流图相对应

⑵输出模块也有两部分组成,一部分是变换模块,将数

据变换成输出的形式;另一部分是输出模块

上述设计过程由顶向下递归进行,直至达到系统的输

入端或输出端

(3)变换模块的下层模块,根据数据流图中相应加工的组

成情况而定。

GetCGetE

7/bN

B||Btoj)

分GetReadDDtoE:

解a

ReadA。to

w,u

DFD1

加工分支的分解

不换分析举例-DFD

变换分析举例一转换后的SC

汇款处理系统

合格的

汇款单各格的[处届联

汇款单:汇款单业务数据

汇款单处理后用

业务数据

取得合格输出处理后

计舁费记账

汇款单/L的汇款单

处理后的

合格的汇款单1收据

汇款于汇款单汇款单

产生收据打印收据

输入格式检查

汇款单

变换分析设计

4.设计的优化——根据设计准则

(1)输入部分的求精

•对每个物理输入设置专门模块,以体现系统的外

部接口;其他输入模块并非真正输入,当它与转

换数据的模块都很简单时,可修它们合并成一个

(2)输出部分的求精

•为每个物理输出设置专门模块,同时注意把相

同或类似的物理输出模块合并在一起,以减低

耦合度。

78

(3)变换部分的求精:根据设计准则,对模块进

行合并和调整。

软件结构的求精,具有很大的经验性。

追求“高内聚,低耦合”方法:

•设计有独立功能的模块

•模块间传递数据型的参数

•模块间共享信息尽量少

79

C合法性检奄)

分房申请A2,3尊分房<调厉产生分房一3退房处理80

、和分类J飞者务数J

(ra)事务分析设计方法

任何情况下都可使用变换分析方

法设计软件结构,但如数据流具有明

显的事务特点时(有一个明显的事务中

心),以采用事务分析方法为宜。

事务分析设计

•事务分析的设计步骤和变换分析的设计步骤大部分

相同或类似,主要差别仅在由数据流程图到软件结构

的映射方法不同。由事务流映射成的软件结构包括一

个接收分支和一个发送分支。

•映射出接收分支结构的方法和变换分析映射出输入结

构的方法相似,即从事务中心的边界开始,把沿着接

收流通路的处理逻辑映射成模块。

•发送分支的结构包含一个调度模块,它控制下层的所

有活动模块;然后把数据流程图中的每一个活动流通

路映射成与它的特征相对应的结构。

82

C通路

事务分析的映射方法83

5杳询处理—一询问信息用户

空房信息----►房租文件住历信息

3退房处理Y_______调用"生退房

2分房处理分房申请

工一i岗房产生分房----------

退房申请

居住条件和单

位面积房租4调房处理

住房分配单口合法性检)

、杳和分类,调房申记

6更改信息怔

1/

——分房系统

/7生成住、

**——统计表〔房统计表J

更改信耍求一

房产科

更改信息合法性检查

分房处理

84

图书管理,1.2

新书入库

要求/入库单

目录文件

、注销1.5

1.1注销图书罚款单

;(要求类

1.3

借书

借书文件

中,C?无效输入

1.4

事务分析举例-DFD还书罚款单

事务分析举例一转换后的SC

图书处理系统

图书管

注销单

还由单

取得图书新书入库借书还书注销图书

处理要求

操作层修改借打印

录文件书文件罚款单

细节层

软件结构图注意事项

(1)同一名字的模块在结构图中仅能出现一次。

(2)调用关系只能从上到下。

(3)不严格表示模块的调用次序,习惯上从左到右,

有时为了减少连线的交叉,适当地调整同一层模块

的左右位置,以保证结构图的清晰。

(4)结构图并不指明什么时候调用下层模块,只表明

一个模块调用哪些模块,至于模块内还有没有其他

成分则完全没有表示。

87

综合数据流图的映射

您确定DFD整体上的类型:除明显有事务类型

的,都可认为是变换型。事务型用于高层

DFD变换有平行处理的优点。

您把与全局特性不同的局部区域孤立出来)确

定类型。

您按整体与局部的DFD特性,设计软件结构。

88

混合型的结构设计

89

练习:

请给出下列DFD图对应的结构图:

90

设计优化

将初始sc根据模块独立性原则进行精化

,对模块进行合并、分解修改、调整,得到

高内聚、俅耦合模块,得到易于实现、易于

测试和易于维护的软件结构,产生设计文档

的最终SC。

91

改进软件结构设计的指导原则

⑴程序结构尽可能与问题结构相对应

⑵模块功能的完整

(3)消除重复功能

(4)作用范围应在控制范围内

⑸减少高扇出争取高扇入

(6)模块大小适中

⑺降低模块接口的复杂性

(8)模块功能可预测92

(1)程序结构尽可能与问题结构相对应

两种典型的程序结构:

■变换型程序

■事务型程序

两种程序结构的共同特征:

上层模块只负责控制、协调

下层模块完成具体的操作

93

(2)模块功能的完整

完整的模块应包括三部分:

■执行规定功能部分

■出错处理部分

■需返回一系列数据时,应返回是否正确结束(

即“文件完/EOF”)标志。

94

(3)消除重复功能

几个模块中含有重复的部分,应设法消去

o因为同一功能重复多处,不仅浪费编程、测

试时间,还会给修改带来麻烦。

但消除重复功能并不是简单的合并。正确的方

法是:先分析几个模块中相同功能的部分;然

后把这个功能分离出来,构成它们的一个公共

的下层模块。

95

例子:消除重复功能

96

例子:消除重复功能

说明:如果A、B抽去公共部分C之后余下的模块A

B'比较简单,则可以同它们的调用模块X、Y合并,

所以改进后图2、图3都有可能。

97

(4)作用范围应在控制范围内(作用域

应在控制域内)

■模块的控制范围(控制域):

包括模块本身和其下属模块的集合。

■模块的作用范围(作用域):

指受该模块内一个条件判定影响的所有模块的集

合。只要模块中含有一些依赖于这个判定的语句

,那么就称该模块在这个判定的作用范围内。

■控制域是从结构方面考虑的;作用域是从功能方

面考虑的

98

■控制范围与作用范围之间的准则:

一个模块的作用范围应在其控制范围之

内,且条件判定所在的模块应与受其影

响的模块在层次上尽量靠近。

99

模块的控制范围和作用范围(例)

模块A的控制范围:

A、B、C、

D、E、F

A的作用范围:

A、C、F

:条件判定

।----1:受判定影响的模块

100

图A:判定位置违反作用范围/控制范围原则

条件

G——►D判定

1)将判定所需数据从G向上传送到D、B,再向下传给C,C用

这些数据再次作出判定。从而增加块间数据量

2)将判定的结果(是/不是)从G向上传送到D、B,再向下传给C

,C用这些开关量决定执行那些操作。这样也增加块间数据量,

而且传送控制信息。

101

图B:符合作用范围/控制范围原则,但判定位置

太高

TOP

TOP

102

图C:符合作用范围/控制范围原则,判定位置

适中

B—►C

B>D—►G

103

图D:符合作用范围/控制范围的理想判定位置

TOP

DE

D—►G

104

修改模块结构方法:

■将包含条件判定的模块合并到它的调用模块

中,使判定处于较高位置

■将接受判定影响的模块下移到控制范围内

■把判定上移到足够的位置

可以归结为:

使判定同受其影响的操作尽可能靠近。

105

(5)减少高扇出,争取高扇入

■模块调用的直接下层模块的个数,称为扇出(Fanout)

■模块被其他各模块调用的个数,称为扇入(Fanin)

■原则:扇出不宜过大,<二7;扇人尽可能大些。但

CASE(分类)型模块扇出可>7,因为属自然分类情况,易理

符号:

(扇出,扇人)

(5)减少高扇出,争取高扇入(续)

相关技巧:

■良好的结构图往往呈“清真状”,即“顶为尖一下层逐

渐加宽一底层收窄”

■结构图的形态应该均衡,即从顶到底层的路径长短不该

过于悬殊

107

(6)模块大小适中

■模块过大:可理解程度下降

考虑对该模块分解

■模块过小:开销大于有效操作,系统接口复杂

考虑是否同它的调用模块合并

几种情况下的小模块不合并:

e模块具有独立的功能

e模块功能可能会发生变化

&模块的复用性好,或者其调用模块很复杂

108

(7)降低模块接口的复杂性

接口传递信息应简单且和模块功能一致。

例:求一元二次方程的根

设求根模块调用形式为:

(1)QUAD—ROOT(TBL,X)

传递系数的数组存放根的数组

(2)QUAD-ROOT(A,B,C,ROOT1,ROOT2)

A,B,C为方程系数

ROOT1,ROOT2是两个才艮

109

(8)模块功能可预测

■可将模块看成黑盒子,相同输入可产生相同

输出,称其功能为可预测的。

■模块带有内部状态,其功能可能是不可预测

的。这样的模块难理解、难测试、难维护。

110

详细设计的基本任务

•算法设计

•数据结构设计

•数据库物理设计

•其他设计:代码设计、输入/输出设计、界面设计

■编写详细设计说明书:

•评审

详细设计是根据每个模块的功能设计其逻辑

描述、实现其法以及实现这些算法的逻辑控制流

程,并设计这些模块所需的局部数据结构。

111

详细设计说明书

■引言:包括编写目的、背景、定义、参考资料

■程序系统的组织结构。

•程序1(标识符)设计说明,包括功能、性能、输

入、输出、算法、流程逻辑、接口。

■程序2(标识符)设计说明

■程序N(标识符)设计说明

112

详细设计方法-结构化程序设计

•详细设计结果基本上决定了最终程序代码的质量。

•不仅要逻辑正确,性能满足,还要简明易懂。

1.采用自顶向下,逐步求精的程序设计方法。

2.使用三种基本控制结构构造程序:顺序、选择、循

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论