总体设计的任务
根据用户需求分析阶段得到的目标系统的逻辑模型确定一个合理的软件系统的体系结构.包括划分组成系统的模块,模块间的调用关系及模块间的接口关系,软件系统所用的数据结构或者数据库结构.
软件结构和过程
软件结构是软件元素(模块)间的关系表示,而软件元素间的关系是多种多样的,如调用关系,包含关系,从属关系和嵌套关系等,这些关系都可以表示为层次形式.层次结构是软件结构广泛应用的一种表示形式,因为它结构清晰,可理解性好,从而使可靠性,可维护性和可读性都得到提高.以模块为软件元素的层次结构是一种静态层次结构,它是在对“问题“的逐步定义过程中得到的,当问题的每一部分都能够由模块来实现时则软件的层次结构也就得到了.因为问题定义过程实际上是一种分解过程,隐含地表示了模块间的关系.
软件结构提供了软件模块间的组成关系,而软件过程是用以描述每个模块的操作细节,当然包括一个模块对下一层模块的操作细节.实际上,过程的描述就是关于某个模块算法的详细描述.
模块设计
模块设计有几个主要的概念,如图:
我们应该采取的原则是:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合.
模块的内聚
模块的内聚是标识一个模块内各个元素彼此结合的紧凑程度,其处理动作的组合强度,设计时应力求做到高内聚.内聚和耦合是密切相关的,模块的高内聚往往意味着模块间的松耦合.内聚和耦合都是进行模块化设计的有力工具.区分模块内聚程度强弱的标准有:
总而言之,模块化,抽象,信息隐蔽和局部化概念的直接结果就是模块独立,高内聚低耦合才能获得较高的模块独立性.
结构设计
软件结构也可以有多种形式和风格,如:
- 管道和过滤器
- 面向对象
- 隐式请求
- 层次化
- 过程控制
在进行软件设计时,选择什么样的设计风格的一个重要因素是分析该软件应用的范围,每种设计风格各有所长,我们应根据具体应用进行选择.
总体设计的准则
- 多样化设计
- 设计对于分析模型应该是可跟踪的
- 设计不应该从头做起
- 软件设计应该尽可能缩短软件和现实世界的距离
- 设计应该表现出一致性和规范性
- 设计的易修改性
- 容错性设计
- 设计的粒度要适当
- 在设计时就要开始评估软件的质量
- 复审设计,减少设计引入的错误
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!