一、概要设计阶段

1、解析

概要设计主要是完成,系统的结构设计,进入设计阶段,要把软件“做什么”的逻辑模型变换为怎么做的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规划说明书”文档中,所以软件设计时一个软件需求转换为软件表示的过程。

2、软件设计的基础:

1、自顶向下,慢慢细化;
2、软件结构-将软件结构分解,为的是解决复杂性。
3、程序结构-树状结构(层次结构),网状结构。
4、模块化-能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。(高内聚,低耦合)
5、抽象化-考虑最本质的因素(功能)
7、信息屏蔽-屏蔽重要的信息

3、模块的内聚和耦合

模块最具有三个基本的属性,功能、逻辑、状态!功能指的是模块实现的功能是什么,逻辑就是描述模块内部应该怎么做,状态就是该模块使用时候的环境和条件。

耦合(块间联系)

耦合指的是模块间的联系的强度,耦合性越强,模块间的联系越强。

内容耦合—一个模块直接访问另一个模块的内容,则称这两个模块为内容耦合。
公共耦合-一组模块都访问同一个全局数据结构。
外部耦合-一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
控制耦合-模块之间传递的不是数据信息,而是控制信息例如标志、开关量等,一个模块控制了另一个模块的功能。
标记耦合-调用模块和被调用模块之间传递数据结构而不是简单数据,同时也称作特征耦合。模块间传递的不是简单变量,而是像高级语言中的数据名、记录名和文件名等数据结果,这些名字即为标记,其实传递的是地址。
数据耦合-调用模块和被调用模块之间只传递简单的数据项参数。相当于高级语言中的值传递。
非直接耦合-两个模块之系,他们之间的联系完全是通过主模块的控制和调用来实现的。耦合度最弱,模块独立性最强。

内聚(块间联系)
内聚指的是同一个模块之间的联系程度,理想模块都是高内聚的。

功能内聚-模块内所有元素的各个组成部分全部都为完成同一功能而存在,共同完成一个单一的功能,模块已不可再分。即模块仅包括为完成某个功能所必须的所有成分,这些成分紧密联系、缺一不可。
信息内聚-按照顺序执行(一个模块有一个任务)
通信内聚-具有公共的数据
过程内聚-顺序执行(一个模块中有多个任务,上一个步骤执行完,下一个执行)
时间内聚-同一时间完成任务,同一时间执行
逻辑内聚-将几种相关的功能结合在一起
巧合内聚-模块内部各部分之间没有什么联系

综合所述:模块独立性强的表现为高内聚,低耦合。

4、概要设计的基本任务

(1)成本效益分析,系统的进度计划
(2)确定模块结构,划分功能模块
(3)编写文档

5、产生文档

概要设计说明书

用户手册

测试计划

数据描述

二、详细设计

详细设计主要是完成数据设计(描述定义)和过程设计(代码的依据),根据概要设计提供的文档,确定每一个模块的算法,内部的数据组织!

详细设计的基本任务:

(1)为每一个模块进行详细的算法设计,
(2)为模块内的数据结构进行设计。
(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都是依赖于具体所使用的数据库系统。
(4)估算存取时间和存储容
(5)编写详细设计说明书。
(6)评审。对处理过程的算法和数据库的物理结构都要评审。

详细设计用到的工具

1、数据流程图

概要设计中技术架构 概要设计模块划分_概要设计

2、n-s图(盒图)

控制关系隐含,循环的次数隐含,它看不到控制流。

概要设计中技术架构 概要设计模块划分_数据_02

3、pad图(问题分析图)便于记忆,容易转换成高级语言(自顶向下)

概要设计中技术架构 概要设计模块划分_详细设计_03

4、判定表(静态逻辑)

概要设计中技术架构 概要设计模块划分_概要设计_04