目录
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。
一、总体设计
(一)总体设计的任务
在总体设计中有3个主要任务。
(1)将系统划分成物理元素,即程序、文件、数据库和文档等。
(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成、模块间的相互关系。确定系统的数据结构、文件结构、数据库模式,确定测试方法与策略。
(3)编写总体设计说明书、用户手册、测试计划,用结构图来描述软件结构,选择分解功能与划分模块的设计原则。
(二)总体设计的概念
模块:又称构件,是指能够单独命名并独立完成一定功能的程序语句的集合。
抽象:即 抽出事物的本质特性而暂时不考虑它们的细节
信息隐蔽:每一个模块的实现细节对于其他模块来说是隐蔽的,也就是说 模块中所包含的信息不允许其他不需要这些信息的模块调用。
模块的独立性:模块独立性的概念是模块化、抽象和信息隐蔽的直接结果。
模块的独立性可以用两个定性标准度量:耦合和内聚。
低 ———— |
耦合性 |
———→ 高 |
||||
非直接耦合 |
数据耦合 |
标记耦合 |
控制耦合 |
外部耦合 |
公共耦合 |
内容耦合 |
强 ←——— |
模块独立性 |
———— 弱 |
高 ←———— |
内聚性 |
———— 低 |
||||
功能内聚 |
信息内聚 |
通信内聚 |
过程内聚 |
时间内聚 |
逻辑内聚 |
偶然内聚 |
强 ←——— |
模块独立性 |
———— 弱 |
(三)结构设计的准则
1.提高设计准则
2.选择合适的模块规模
3.适当选择模块的深度、宽度、扇入和扇出
4. 模块的作用范围应在控制范围之内
5. 降低模块接口的复杂程度
6. 设计单入口单出口且功能可预测的模块
二、详细设计
根据“由外向里”的思想方法,概要 设计完成之后,就要进行详细设计。详细设计确定每个模块的内部特征,即每个模块内部 的执行过程
(一)详细设计的原则
(1) 由于详细设计的蓝图是给其他人看的,所以模块的逻辑描述要清晰易读、正确可靠,这样别人才能读懂。这也是常说的清晰第一的设计风格。
(2) 采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可 读性、可测试性、可维护性。其基本内容归纳为如下几点:
① 程序语言中应尽量少用GOTO语句,以确保程序结构的独立性。
② 使用单入口单出口的控制结构,确保程序的静态结构与动态执行情况相一致,保证 程序易理解。
③ 程序的控制结构一般采用顺序、选择、循环三种结构,确保结构简单。
④ 用自顶向下逐步求精方法完成程序设计。
⑤ 经典的控制结构有顺序、IF THEN ELSE分支、DO-WHILE循环。扩展的还有多分支CASE、DO-UNTIL循环结构、固定次数循环DO-WHILE。
(二)详细设计的工具
1.传统程序流程图
2.N-S图
3.PAD图
三、总体设计、详细设计文档的重要性
在总体设计阶段设计人员完成的主要文档是总体设计说明书,详细设计阶段的文档就是详细设计说明书。
在设计软件的过程中,可能涉及到很多相关人员,建立设计文档的目的是为了把设计的思想告诉其他的相关人员。只有先让别人知道你设计的思想后别人才能做相应的工作, 可读性高同样有利于维护。