软件工程——总体设计与详细设计

目录

一、总体设计

(一)总体设计的任务

(二)总体设计的概念

(三)结构设计的准则

二、详细设计

         (一)详细设计的原则

(二)详细设计的工具

三、总体设计、详细设计文档的重要性


需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。   

一、总体设计

(一)总体设计的任务

在总体设计中有3个主要任务。

(1)将系统划分成物理元素,即程序、文件、数据库和文档等。

(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成、模块间的相互关系。确定系统的数据结构、文件结构、数据库模式,确定测试方法与策略。

(3)编写总体设计说明书、用户手册、测试计划,用结构图来描述软件结构,选择分解功能与划分模块的设计原则。

(二)总体设计的概念

模块:又称构件,是能够单独命名独立完成一定功能的程序语句合。

抽象:即 物的本质特性而时不考虑它们的细

信息隐蔽:每一个模块的实现细对于其模块来说是隐蔽的,就是说 模块中信息允许不需要这些信息的模块调用。

模块的独立性:模块独立性的概是模块化、抽象信息隐蔽接结果。

模块的独立性可以用两个定性标准度合和内聚。

低         ————

耦合性      

———→             

非直接耦合

数据耦合

标记耦合

控制耦合

外部耦合

公共耦合

内容耦合

强       ←———

模块独立性

      ————             

高         ←————

内聚性      

————             低

功能内聚

信息内聚

通信内聚

过程内聚

时间内聚

逻辑内聚

偶然内聚

强       ←———

模块独立性

      ————             弱

(三)结构设计的准则

1.提高设计准则

2.选择合适的模块规模

3.适当选择模块的深度、宽度、扇入和扇出

4. 模块的作用范围应在控制范围之内

5. 降低模块接口的复杂程度

6. 设计单入口单出口且功能可预测的模块

二、详细设计

根据“由外向里”的思想方法,概要 设计完成之后,就要进行详细设计。详细设计确定每个模块的内部特征,即每个模块内部 的执行过程

(一)详细设计的原则

(1) 由于详细设计的蓝图是给其他人看的,所以模块的逻辑描述要清晰易读、正确可靠,这样别人才能读懂。这也是常说的清晰第一的设计风格。

(2) 采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提程序的可 读性、可测试性、可维护性。其本内容归纳点: 

程序语言中应尽量少GOTO,以确程序结构的独立性。

使用单入口单出口的控制结构,确程序的静态结构与动态执行情况保证 程序易解。

程序的控制结构一采用序、选择、循环三种结构,确结构单。

用自向下步求方法完成程序设计。

⑤ 经典的控制结构有序、IF THEN ELSEDO-WHILE扩展分支CASEDO-UNTIL结构、数循DO-WHILE

(二)详细设计的工具

1.传统程序流程图

2.N-S图

3.PAD图

三、总体设计、详细设计文档的重要性

     在总体设计阶段设计人员完成的主要文档是总体设计说明书,详细设计阶段的文档就是详细设计说明书。

     在设计软件的过程中,可能涉及到很多相关人员,建立设计文档的目的是为了把设计的思想告诉其他的相关人员。只有先让别人知道你设计的思想后别人才能做相应的工作, 可读性高同样有利于维护。