对应软件生命周期软件开发时期的总体设计阶段

一 了解软件总体设计任务过程原则

  • 过程由两个主要阶段组成:
    • 系统设计阶段,确定系统的具体实现方案
      • 设想供选择的方案
      • 选取合理的方案
      • 推荐最佳方案
    • 结构设计阶段,确定软件结构,模块划分、模块之间的调用关系
      • 功能分解
      • 设计软件结构
      • 设计数据库
      • 制定测试计划
      • 书写文档
      • 审查和复审
  • 设计原理(原则)=》模块独立原理
    • 模块化(箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块)
      • 模块调用关系
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 模块间接口的表示
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
    • 抽象
    • 逐步求精
    • 信息隐藏和局部化
    • 模块独立
  • 模块独立程度的两个定性标准度量
    • 耦合(耦合要低,不同模块互相依赖的紧密程度)
      • 非直接耦合/完全独立
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 数据耦合(两个模块交换的信息仅仅是数据,尽量使用
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 控制耦合(传递的信息中有控制信息,少用
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        修改控制耦合为数据耦合:
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 特征耦合(整个数据结构作为参数传递,少用
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        改为数据耦合:
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 公共环境耦合(多个模块通过一个公共数据环境相互作用,限制范围
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 内容耦合(最高程度的耦合,完全不用
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 总结:
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
    • 内聚(内聚要高,模块内部各元素结合的紧密程度)
      • 偶然内聚(各元素之间没有实质性联系)
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 逻辑内聚(完成的任务在逻辑上属于相同或相似的一类)
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
        分解:
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 时间内聚(一个模块包含的任务必须在同一段时间内执行)
      • 过程内聚(一个模块内的处理元素是相关的,而且必须以特定次序执行)
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 通信内聚(模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据)
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 顺序内聚(模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行)
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念
      • 功能内聚(模块内所有处理元素属于一个整体,完成一个单一的功能,最高程度的内聚模块可重用
      • 总结
        软件制造工程期末复习知识点汇总(二)——软件设计基本概念

深度、宽度、扇出和扇入:
深度:软件结构中控制的层数
宽度:同一个层次上的模块总数的最大值
扇出:一个模块直接控制(调用)的模块数目。
扇入:有多少个上级模块直接调用它。

模块的作用域应该在控制域之内
模块的作用域:定义为受该模块内一个判定影响的所有模块的集合。
模块的控制域:是这个模块本身以及所有直接或间接从属于它的模块的集合。

总结:

总体设计阶段的基本目的
用比较抽象概括的方式确定系统如何完成预定的任务
总体设计阶段的两个小阶段
系统设计(完成系统功能的物理方案)
软件结构设计(模块划分、模块之间的调用关系)
进行软件结构设计时要遵循的主要的原理
模块独立原理
进行软件结构设计时的一种有效方法
从抽象到具体地构造出软件的层次结构
启发式规则
软件结构设计的常用途径
自顶向下逐步求精
在详细设计和编码之前进行结构设计的好处
在软件开发早期站在全局高度对软件结构进行优化,可以使软件质量得到重大改进,而代价却不高。

相关文章: