软件工程第五章习题

2023-11-17

1 为每种类型的模块耦合举一个具体例子

【只需要答出什么模块和例子即可,一共5个,数控特环内】

数据耦合:

  • 两个模块之间通过参数交换信息,信息仅为数据,
  • 例如两个模块,A模块的运算结果,作为参数传入B模块中参与运算,则两者为数据耦合。

控制耦合:

  • 传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),就是控制耦合。
  • 例如遥控器模块和对应的电器模块之间的耦合

特征耦合:

  • 当把整个数据结构作为参数传递,而被调用的模块只需要使用其中一部分数据元素时,称为特征耦合
  • 例如一个小系统只需要用户的身份证信息,另外一个只需要用户的姓名信息,但是把整个用户信息作为参数传入,则会出现特征耦合

公共环境耦合:

  • 当两个或多个模块通过一个公共数据环境相互作用时(公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等)
  • 例如多个模块共同使用一个全局数组,不同模块可以读写,读或写该数据

内容耦合:

  • 挺多种情况的,大概的意思就是内容串了
  • 一些汇编程序模块可能出现内容耦合

尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

2 为每种类型的模块内聚举一个具体例子

【三大类,七小类:偶逻时,通过,顺功】

【低内聚】

偶然内聚:

  • 一个模块完成一组任务,即使有关系也松散
  • 例如模块T中有n条语句,这些语句没什么关系,只是在另外几个模块都有,就把他们作为模块放在一起

逻辑内聚:

  • 一个模块完成的任务在逻辑上属于相似或相同的一类
  • 例如某一个模块将打印,年,月,日等时间信息,具体打印什么,由传入的控制标志所决定

时间内聚:

  • 一个模块包含的任务必须在同一段时间内执行
  • 例如对变量的初始化放在同一个模块实现

【中内聚】

过程内聚:

  • 模块内处理的元素是相关的,必须按一定次序执行
  • 例如一个子程序,需要依次读取学生的学号,姓名,分数等信息,由于操作具有特定顺序,所以继承成一个模块

通信内聚:

  • 所有元素使用同一个输入数据和(或)产生同一个输出数据
  • 例如一个子程序,负责将输入的信息处理输出成报告,同时利用输入的数据更新已有数据,因为这两个操作使用同一个数据源,所以该模块具有通信内聚性。

【高内聚】

顺序内聚:

  • 一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚。
  • 例如一个模块,通过输入的生日,得到年龄,再根据年龄计算相应信息

功能内聚:

  • 模块内所有处理元素属于一个整体,完成一个单一的功能
  • 例如一个模块的所有操作都是为了计算出某个信息

剩下的几道题好恐怖,逃了~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程第五章习题 的相关文章

随机推荐

  • CentOS 8 逻辑卷管理LVM详解(扩容、快照等)

    逻辑卷管理LVM 一 概述 二 逻辑卷管理布局 三 LVM1和LVM2 四 使用LVM管理逻辑卷 1 物理卷 1 创建物理卷 2 删除物理卷 2 卷组 1 创建卷组 2 扩展卷组 3 删除卷组 4 减小卷组 3 逻辑卷 1 创建逻辑卷 2
  • 基于TCP的socket通信

    本文转载自http blog csdn net chocolate001 article details 6612201 基于TCP 面向连接 的socket编程 分为客户端和服务器端 客户端的流程如下 1 创建套接字 socket 2 向
  • 修片要点+规则

    一 曝光度 相机的曝光补偿 1 1 快速修改 1 2 细改 二 对比度 白和黑的对比程度 黑的更黑 白的更白 越小越朦胧 越大越清晰 可以让色彩更鲜艳 2 1 設置對比度 三 高光 控制高光部分的曝光度 3 1 設置高光 四 阴影 控制阴影
  • 微服务契约测试框架-Pact

    契约测试 契约测试的思想就是将原本的 Consumer 与 Provider 间同步的集成测试 通过契约进行解耦 变成 Consumer 与 Provider 端两个各自独立的 异步的单元测试 契约测试的优点 契约测试与单元测试以及其它测试
  • PT100所谓的二线制,三线制,四线制如何接线(详解)

    PT100所谓的二线制 三线制 四线制如何接线 铂热电阻是利用铂丝的电阻值随着温度的变化而变化的 那么铂热电阻的三种接线方法以及消除误差的原理是怎么样的呢 二线制 二线制 在热电阻的两端各连接一根导线来引出电阻信号的方式叫二线制 这种引线方
  • PyOpenGL帧缓存

    安装 python m pip install PyOpenGL PyOpenGL accelerate i http mirrors aliyun com pypi simple trusted host mirrors aliyun c
  • java-使用newTaskFor封装任务中非标准取消

    1 使用newTaskFor钩子函数来改进用来封装非标准取消的方法 这是ThreadPoolExecutor的新特性 2 当提交一个callable给ExecutorService时 submit返回一个Future 可以用Future来取
  • 【Python开发】Python中数据分析环境的搭建

    注 无论是任何一门语言 刚开始入门的时候 语言运行环境的搭建都是一件不轻松的事情 Python的运行环境 要运行或写Python代码 就需要Python的运行环境 主要的Python有以下三类 原生态的Python 就是直接从Python的
  • KVM管理平台选型与开源企业级虚拟化平台oVirt详解

    一 KVM管理平台 虚拟化和云计算以在当今IT工业中的用途和优势 成为近年来的技术热点之一 其发展非常迅速 搞KVM虚拟化的时候 面临的一个很重要的问题是 管理平台如何搞定 目前 已经出现了很多与KVM相关的管理工具和云计算平台 比较知名和
  • go memcpy

    来源 https github com jsgilmore shm callback syscall NewCallback func r uintptr size int ret uintptr 定义一个 byte切片 用来存储C返回的字
  • 代码随想录算法训练营第二天

    1 双指针法 leetcode 题977 给你一个按 非递减顺序 排序的整数数组 nums 返回 每个数字的平方 组成的新数组 要求也按 非递减顺序 排序 1 1 暴力解法 先求出数组所有值的平方 然后再排序 1 2 双指针法 i指向初始位
  • MySQL中时间函数(史上最全的时间函数)

    一 MySQL 获得当前日期时间 函数 获得当前日期 时间 date time 函数 now mysql gt select now now 2019 08 19 10 23 46 除了 now 函数能获得当前的日期时间外 MySQL 中还
  • Spring Data Elasticsearch篇(3):ElasticsearchRepository文档操作

    1 ElasticsearchRepository 1 1 ElasticsearchRepository源码 NoRepositoryBean public interface ElasticsearchRepository
  • matplotlib画折线图

    matplotlib画折线图 假设一天中每隔两个小时 range 2 26 2 的气温 分别是 15 13 14 5 17 20 25 26 26 27 22 18 15 代码如下 导入pyplot from matplotlib impo
  • HDU--1861:游船出租

    1 题目源地址 http acm hdu edu cn showproblem php pid 1861 2 源代码 HOJ 1861 游船出租 include
  • Unity3D研究院之游戏开发中的人工智能AI

    人工智能这个东西在游戏中是非常重要的 人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑 说难了TA需要一个非常复杂的算法 本文我主要说说Unity3D中人工智能的脚本如何来编写 首先你应该搞清楚的一点AI脚本属于一个工具类脚本 工
  • 数据结构之栈

    文章目录 栈的概念 栈的功能实现 栈结构的实现 栈的初始化 栈的判空 读取栈顶数据 插入数据 删除数据 栈中数据个数 栈的销毁 总结 Stack h文件 Stack c文件 栈的概念 栈 一种特殊的线性表 其只允许在固定的一端进行插入和删除
  • 带你了解锂电池保护板的工作原理

    拆过手机或者平板的用户 应该都注意过 在手机或者平板的锂电池部分 其上端有一块质地较软且被塑料膜包裹起来的电路板 电池大小不同 电路板尺寸也不一样 揭开塑料膜 你会发现 其上布置了很多的元器件 或许会有人问 这块板子究竟有何作用 其实呢 电
  • 数据结构C++实现——线性表之链表(单链表)

    线性表分为顺序表与链表 其中链表分为单链表 双链表 循环链表 这三个为指针实现 与静态链表 数组实现 指针实现的链表可以分为带头结点与不带头结点两种 其基本操作有插入 删除 按位查找 按值查找等 单链表 不带头结点 单链表 不带头结点 用链
  • 软件工程第五章习题

    软件工程第五章习题 1 为每种类型的模块耦合举一个具体例子 2 为每种类型的模块内聚举一个具体例子 1 为每种类型的模块耦合举一个具体例子 只需要答出什么模块和例子即可 一共5个 数控特环内 数据耦合 两个模块之间通过参数交换信息 信息仅为