软件工程软件工程知识点提纲4

Posted 敲代码两年半的练习生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程软件工程知识点提纲4相关的知识,希望对你有一定的参考价值。

1. 软件设计的基本原理和启发规则

上入上出

1.1 模块化

模块是构成程序的基本构件。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

1.2 耦合

对一个软件结构内不同模块之间互连程度的度量

  • 数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。数据耦合是低耦合。

在这里插入图片描述

  • 控制耦合:传递的信息中有控制信息,返回结果对原模块有影响,则这种耦合称为控制耦合。控制耦合是中等程度的耦合。

在这里插入图片描述

  • 特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时:例如使用结构体中的一部分元素,就出现了特征耦合。
  • 公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时:例如全局变量,它们之间的耦合称为公共环境耦合。

在这里插入图片描述

  • 内容耦合:最高程度的耦合是内容耦合(例如go to语句,C语言中不存在,汇编中可以随意跳转)。

在这里插入图片描述

1.3 内聚

标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展:力求做到高内聚,尽量少用中内聚,不用低内聚。

  • 低内聚
    • 一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。
    • 一个模块完成的任务在逻辑上属于相同或相似的一类,则称为逻辑内聚。
    • 一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。
  • 中内聚
    • 一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
    • 模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。
  • 高内聚
    • 一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常–个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚。
    • 模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。功能内聚是最高程度的内聚。

1.4 启发规则

  • 改进软件结构提高模块独立性
  • 模块规模应该适中
  • 深度、宽度、扇出和扇入都应适当
    • 深度:软件结构中控制的层数
    • 宽度:软件结构内同一个层次上的模块总数的最大值
    • 扇出:一个模块直接控制(调用)其它模块的数目
    • 扇入:一个模块被其它模块调用的数目
  • 模块的作用域应该在控制域之内
    • 作用域:受该模块内一个判定影响的所有模块的集合
    • 控制域:模块本身以及所有从属于它的模块的集合
  • 力争降低模块接口的复杂程度:QUAD-ROOT(TBL,X)到QUAD-ROOT(A,B,C,ROOT1,ROOT2)
  • 设计单入口单出口的模块:避免内容耦合
  • 模块功能应该可以预测:相同的输入产生相同的输出

2. 软件结构的表示方法

2.1 层次图

表示调用关系

在这里插入图片描述

2.2 HIPO图

层次图+输入/处理/输出图

3. 面向数据流的设计方法

在这里插入图片描述

以上是关于软件工程软件工程知识点提纲4的主要内容,如果未能解决你的问题,请参考以下文章

软件工程软件工程知识点提纲4

软件工程软件工程知识点提纲1

软件工程软件工程知识点提纲3

软件工程软件工程知识点提纲2

软件工程软件工程知识点提纲7

软件工程软件工程知识点提纲6