模块独立性准则

模块独立性由两个定性标准度量

  • 模块自身的内聚
  • 模块之间的耦合

内聚性分类:

  • 偶然性内聚(最不好的一种内聚):模块内的各个任务在功能上没有实质性联系,纯属“偶然”因素组合了块内各个互不相关的任务。

一个处理正方形的模块有两个功能:计算面积,画出这个正方形。

改进:分成两个模块,计算面积和画出正方形

  • 逻辑性内聚:模块通常由若干个逻辑功能相似的任务组成,通过模块外引入的一个开关量选择其一执行。这种内聚增大了模块间的耦合。

一个模块负责打印季度开支报告、月份开支报告和日开支报告,具体打印哪一个报告由传入的控    制标志决定,这个模块具有逻辑性内聚。

改进:建立三个模块分别负责打印季度开支报告、月份开支报告和日开支报告。改进原来的模      块,根据传入的控制标志来调用这三个模块中的一个。

  • 时间性内聚:模块内的各个任务由相同的执行时间联系在一起。

特点:同时进行,并非顺序执行。

初始化模块,紧急故障处理模块。

  • 过程性内聚:模块内的各个任务必须按照某一特定次序执行。

特点:控制流从一个动作 —> 另一个动作

  • 通信性内聚:模块内部的各个任务靠公用数据联系在一起,即都使用同一个输入数据,或者产生同一个输出数据。

如果是根据员工出生日期分别计算员工年龄和退休时间,该模块就具有通信性内聚(同一个输入数据)。

改进:改成两个模块:根据员工出生日期算员工年龄从一个处理单元流到另一个和根据员工出生日期算退休时间。

  • 顺序性内聚:模块内的各个任务是顺序执行的。通常,上一个任务的输出是下一个任务的输入。

特点:数据流从一个处理单元流到另一个处理单元。

模块根据员工出生日期计算员工年龄,再由员工年龄计算其退休时间,该模块就具有顺序性内聚

改进:改成两个模块,把功能分解。

  • 功能性内聚:模块各个成分结合在一起,完成一个特定的功能。功能性模块具有内聚性最强、与其他模块联系少的特点。

一个模块根据员工出生日期计算员工年龄,该模块具有功能性内聚。

耦合性分类

  • 非直接耦合:同级模块相互之间没有信息传递,属于非直接耦合。
  • 数据耦合:调用下属模块时,如果交换的都是简单变量,便构成数据耦合。
  • 特征耦合:调用下属模块时,如果交换的是数据结构,便构成特征耦合。

由于传递的是数据结构,不仅数据量增加,而且会使模块的相关性增加。

  • 控制耦合:模块间传递的信息不是一般的数据,而是作为控制信息的开关值或标志量。 逻辑性内聚的模块的调用就是控制耦合。
  • 外部耦合:若允许一组模块访问同一个全局变量,可称它们为外部耦合。               

     松散的公共耦合                                        紧密的公共耦合

  • 公共耦合:若允许一组模块访问同一个全局性的数据结构,则称它们为公共耦合。

全局性的数据结构可以是共享的通信区、公共的内存区域、任何存储介质文件、物理设备等。

  • 内容耦合:若一个模块可以直接访问另一个模块中的内部数据,或者一个模块直接转到另一个模块的内部,或者一个模块有多个入口,则称为内容耦合。

是最强的耦合,往往是被称为“病态”的块间联系。

例: class A {

public int m;

}

class B{

A a = new A();

a. m += 1;

}

应改为

class A {

private int m;

}

原文地址:https://www.cnblogs.com/ttct/p/10588930.html

时间: 2024-10-14 15:13:14

模块独立性准则的相关文章

模块独立性原理

1. 理解模块独立的重要性 2. 掌握模块独立的概念 3. 重点掌握度量模块独立程度的两个标准: 耦合和内聚 5.2.1   模块化 5.2.2   抽象 5.2.3   逐步求精 5.2.4   信息隐藏和局部化 5.2.5   模块独立 5.2.5  模块独立 1. 模块独立的概念: ?是模块化.抽象.信息隐藏和局部化概念的直 接结果. ?是指软件系统中每个模块只完成软件要求的具 体的子功能,而和软件系统中其他模块的接口 尽量简单. 2. 如何做到模块独立? ?开发具有独立功能而且和其他模块

模块独立性之高内聚

模块独立性由两个定性标准度量 模块自身的内聚,也称为块内联系或模块强度. 模块之间的耦合,也成为块间联系. 模块独立性愈高,则块内联系越强,块间联系越弱,即高内聚,低耦合. 内聚性分类 内聚性是从功能的角度对模块内部聚合能力的度量. 高内聚是模块独立性追求的目标. 内聚性分类(以计算员工年龄,退休时间举例) 1.功能性内聚:模块各个成分结合在一起,完成一个特定的功能.功能性模块具有内聚性强.与其他模块联系少的特点. 举例:  一个模块根据员工出生日期计算员工年龄,另一个模块根据员工出生日期计算退

面向过程分析方法与面向对象分析方法的区别

一.结构化分析(面向过程)方法 结构化分析方法(Structured Method,结构化方法)是面向过程的程序设计的方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法.结构是指系统内各个组成要素之间的相互联系.相互作用的框架.结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象.模块独立性.信息隐蔽等.针对软件生存周期各个不同的阶段,它有结构化分析(SA).结构化设计(SD)和结构化程序设计(SP)等方法. 结构化分析方法给出一组帮助系统分析人员产生功能规约的原

结构化方法与面向对象方法应用比较

1.结构化方法 1.1概述 结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 1.2基本要点 结构化方法的基本要点是:自顶向下.逐步求精.模块化设计.结构化编码. 结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语

什么是架构

什么是软件架构 前言:软体设计师中有一些技术水平较高.经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分.元件之间如何发生相互作用,以及系统中逻辑的.物理的.系统的重要决定的作出.在很多公司中,架构师不是一个专门的和正式的职务.通常在一个开发小组中,最有经验的程序员会负责一些架构方面的工作.在一个部门中,最有经验的项目经理会负责一些架构方面的工作.但是,越来越多的公司体认到架构工作的重要性. 什么是软件系统的架构(Architecture)?一般而言,架构有两个要

软工期中测试简答题

软工-期中测试简答题 软件危机的具体表现? 1)成本难以估计.成本高. 2)软件开发进度估计不准确,项目延期比比皆是. 3)软件质量得不到保证(功能和性能). 4)用户对"已完成的"软件系统不满意的现象经常发生. 5)维护非常困难(多样性 .复杂性. 副作用). 6)软件通常没有适当的文档. 7)软件产品供不应求,跟不上计算机普及速度. 产生软件危机的原因? (1)软件日益复杂和庞大 (2)软件开发管理困难和复杂 (3)软件开发技术落后 (4)生产方式落后 (5)开发工具落后 (6)软

深圳移动笔试回忆

深圳移动笔试回忆: 1.内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求耦合低,内聚高 2.在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用_A_____.A.原型法B.瀑布模型C.V-模型D.螺旋模型 原型法适合于用户需求不明确的场合.它是先根据已知的和分析的需求,建立一个原始模型,这是一个可以修改的模型.在软件开发的各个阶段都把有关信息相互反馈,直至模型的修改,使模型渐趋完善.在这个过程中,用户的参与和决策加强了,缩短了开发周期,降低了开发风险,最终的

耦合性

耦合性 耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量.耦合的强弱取决与模块间接口的复杂性.调用模块的方式以及通过界面传送数据的多少.模块间的耦合度是指模块之间的依赖关系,包括控制关系.调用关系.数据传递关系.模块间联系越多,其耦合性越强,同时表明其独立性越差.软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分模块的一个准则就是高内聚低耦合. 基本信息 耦合性(或称“耦合度”) 英文 : coupling 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度

信息系统集成专业技术

考试大纲 1.系统集成:系统集成技术的概念.作用.类型和发展 2.信息系统建设:信息系统的生命周期.各阶段目标及其主要工作内容.信息系统开发的方法 3.软件工程:软件需求分析与定义.软件设计.测试与维护.软件复用.软件开发环境. 4.面向对象系统分析与设计:面向对象的基本概念.统一建模语言.可视化建模.面向对象系统分析.面向对象系统设计. 5.软件体系结构:软件体系结构定义.典型体系结构.软件体系结构设计方法.软件体系结构分析与评估.软件中间件. 6.典型应用集成技术:数据库与数据仓库技术.we