0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

走向模块化满足数据和控制耦合

星星科技指导员 来源:嵌入式计算设计 作者:JAY THOMAS 2022-11-10 17:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

自软件工程学科诞生以来,模块化一直是永恒的口号之一。这种结构化设计和功能分解方法将软件分解为具有明确接口的明确定义的功能单元或模块。这种方法的成熟价值是高质量的软件。但是,当您采用模块化时,软件测试必须检查模块组合在一起并交互的方式。这种测试被称为“数据和控制耦合”。

我们来了解一下如何使用软件系统中的控制和数据耦合来评估系统的模块化,并提供宝贵的好处,包括:

• 提高软件可测试性• 提高软件可维护性

• 减少变更

的影响• 简化软件重用

术语“内聚”描述了模块化软件组件的属性。具有明确定义的接口并独立于其他模块运行的模块被认为具有高水平的内聚力。例如,命令行 MD5 加密哈希生成器是演示高级别内聚的软件组件的示例。输入是任何描述的数据对象(例如文件),输出是base-64哈希表示。由于哈希生成器采用单个输入,提供单个输出并且没有外部依赖项,因此它被认为表现出高水平的内聚力。

光谱的另一端是飞行控制系统。这些高度依赖于飞机的当前状态(例如,飞机是否在地面上)和传入的飞行数据流(例如,空速、高度、姿态等),因此具有低水平的内聚力。

凝聚力会显著影响任何试图从一个系统中提取软件模块以便在另一个系统中重用的人,他们会很乐意告诉你关于阻碍的隐藏依赖关系的战争故事。问题就在这里:如果模块不是真正内聚的,那么怎么可能在它的所有依赖项的上下文中测试每个模块呢?为此,您必须了解软件模块之间存在的耦合。这种耦合提供了一种衡量软件内聚力的方法,还提供了可用于评估和提高软件质量的指标。

耦合的概念在1980年Meiler Page-Jones的《结构化系统设计实用指南》一书中定义为“一个模块对另一个模块的依赖程度;具体来说,衡量一个模块中的缺陷在另一个模块中显示为缺陷的可能性,或者一个模块中的更改需要更改另一个模块的可能性。

他确定了耦合的两种基本风格,并将它们定义为:

• 控制耦合 - 一种耦合类型,其中一个模块将信息传达给另一个模块,以明确影响后者

• 数据耦合 - 一种耦合形式,其中一个模块将信息传达给另一个模块

让我们看一个例子来阐明两者之间的差异。

飞机发动机控制系统消耗高度和空速等空气数据信息,但是当飞机在地面和空中时,使用不同的控制算法。选择使用哪种算法由起落架系统的“车轮重量”信号决定,该信号指示飞机是否在地面上。在此示例中,发动机控制系统对高度和空速数据流的依赖性表明与提供它们的系统存在很强的数据耦合。同样,“车轮上的重量”信号表示发动机控制系统和起落架系统之间的强控制耦合。

耦合指标可用于在整个软件设计和验证过程中提高软件质量。目的是表明软件模块仅以软件设计预期的方式相互影响,确保没有计划外、异常或错误的行为。在设计过程中记录数据和控制耦合提供了一组在软件集成过程中进行测试的要求。同样,确保在软件测试期间执行模块之间的数据和控制耦合,表明软件的集成和架构得到了充分验证。

许多准则,例如定义民用机载系统创建适航法规的DO-178C标准,要求对安全关键软件进行控制和数据耦合评估,以确保满足这些设计,集成和测试目标。同样,英国国防部标准 00-55“国防设备中安全相关软件的要求”要求使用控制和数据耦合等指标来评估软件模块化。

测量控制和数据耦合是通过控制和数据流分析的组合来实现的。控制流分析在调用层次结构的程序和单个过程上执行。

数据流分析通过源代码跟踪变量,并报告任何异常使用。此检查在过程级别和作为系统范围分析的一部分执行。这是一种非常强大的技术,不仅可以为数据耦合评估提供基础,还可以检测其他严重问题,例如在初始化之前使用的变量或在其边界之外访问的数组。

尽管从命名中很容易假设控制流分析提供了控制耦合和数据耦合的数据流分析的可见性,但事实并非如此。控制流和数据流分析对于评估控制和数据耦合都是必要的。

无论正在开发的软件是否对安全至关重要,通过控制和数据耦合来测量软件模块的内聚力都有助于提高软件可测试性和可维护性,同时减少变更的影响,简化软件重用。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 发动机
    +关注

    关注

    33

    文章

    2639

    浏览量

    72240
  • 控制系统
    +关注

    关注

    41

    文章

    6893

    浏览量

    113552
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    modbus消息帧的模块化架构介绍

    MODBUS消息帧的模块化架构 1. 地址字段:通信寻址的核心 Modbus RTU协议采用单字节(8位)地址字段,支持1-247个从站设备(0保留为广播地址)。 广播机制:地址0的报文会被所有从站
    发表于 11-17 08:15

    工业人速看!什么是耦合模块?什么是插片式I/O模块

    什么是耦合模块耦合模块,在模块化I/O系统中,可以理解为 “通信管理中枢” 或 “大脑”。 耦合
    的头像 发表于 11-03 09:31 386次阅读
    工业人速看!什么是<b class='flag-5'>耦合</b>器<b class='flag-5'>模块</b>?什么是插片式I/O<b class='flag-5'>模块</b>?

    新品推荐|模块化集成式高速连接器

    LRM连接器随着电子技术的快速发展,在电力传输、工业自动、航空航天等领域,对高效、稳定、可靠的电气连接解决方案的需求日益增长。因此日晟万晟开发了新一代模块化集成式高速连接器-LRM系列,该款连接器
    的头像 发表于 07-07 18:15 979次阅读
    新品推荐|<b class='flag-5'>模块化</b>集成式高速连接器

    鸿蒙5开发宝藏案例分享---模块化设计案例分享

    鸿蒙模块化开发大揭秘!官方隐藏案例实战指南 大家好呀! 最近在HarmonyOS文档里挖到一个宝藏——官方其实藏了大量模块化设计案例!很多小伙伴可能没注意到,今天我就带大家手把手拆解这些黄金实践,附
    发表于 06-12 16:17

    原理图模块化,BOM 物料位号处理

    原理图模块化,把常用的模块保存成一个PART(在TOOL 菜单下 选择 Generate Part)。保存成OLB格式。使用的时候,就像使用元器件一样,从库里面拖出来直接放到原理图上即可。 问题是
    发表于 06-09 19:27

    如何用模块化仪器高效测试嵌入式微控制器?

    从冰箱到飞机,嵌入式微控制器如何确保稳定运行?面对复杂的混合信号与串行协议,工程师如何快速验证与调试?本文揭秘模块化仪器的全能测试方案——数字仪、任意波形发生器、数字I/O模块联动执
    的头像 发表于 05-13 15:06 490次阅读
    如何用<b class='flag-5'>模块化</b>仪器高效测试嵌入式微<b class='flag-5'>控制</b>器?

    MCU-40型自动测量是如何实现分布式模块化?

    在岩土工程、大型基建和能源设施的安全监测中,传统的集中式数据采集系统往往面临布线复杂、扩展性差、容错率低等挑战。南京峟思工程仪器有限公司推出的MCU-40型自动测量系统,凭借其创新的分布式模块化
    的头像 发表于 04-10 14:03 529次阅读
    MCU-40型自动测量是如何实现分布式<b class='flag-5'>模块化</b>?

    MCU分布式模块化自动测量单元:数据传输与处理能力如何?

    在现代工程监测中,MCU分布式模块化自动测量单元(MCU)以其灵活的配置和强大的数据处理能力,成为了各类安全监测项目的理想选择。本文将深入探讨MCU的工作原理、数据传输方式以及其在实际应用中的优势
    的头像 发表于 03-12 14:09 704次阅读
    MCU分布式<b class='flag-5'>模块化</b>自动测量单元:<b class='flag-5'>数据</b>传输与处理能力如何?

    重磅新品|CMW系列模块化连接器

    模块化连接器产生背景随着人们不断追求产品功能的多样性和极致性能,产品不断的更新迭代,连接器作为测试物与被测设备之间的桥梁,测试需求也随着功能的增加不断变化。在过去,传统的连接器虽然在一定程度上满足
    的头像 发表于 02-06 09:14 1610次阅读
    重磅新品|CMW系列<b class='flag-5'>模块化</b>连接器

    智能模块化数据中心焕新上市:不止IMDC更是AIDC

    可在到达客户现场前实现工厂预制及全面检测,通过边缘控制层级的智能管理及数字运维软件APP,帮助客户实现快速部署,实现端到端一站式交付和远程数字管理。 作为全新部署于智算边缘的IMDC智能
    的头像 发表于 01-09 11:05 1288次阅读
    智能<b class='flag-5'>模块化</b><b class='flag-5'>数据</b>中心焕新上市:不止IMDC更是AIDC

    原理图模块化,BOM 物料位号处理

    原理图模块化,BOM 物料位号的处理问题 原理图模块化,把常用的模块保存成一个PART(在TOOL 菜单下 选择 Generate Part)。保存成OLB格式。使用的时候,就像使用元器件一样,从
    发表于 01-03 08:22

    华为预制模块化数据中心连续十年蝉联全球第一

    近日,第三方国际权威机构Omdia发布《2023全球预制模块化数据中心报告》,对全球预制模块化数据中心市场动态、市场份额、发展趋势进行洞察和分析。报告显示,2023年华为预制
    的头像 发表于 12-31 11:41 1341次阅读

    精密空调—模块化精密空调方案,让数据中心更可靠!

    随着信息技术的飞速发展,数据中心作为信息存储与处理的核心,对精密空调的稳定性与精确性提出了更高要求。模块化机房精密空调以其高效、节能、灵活的特点,成为现代数据中心的首选解决方案。 模块化
    的头像 发表于 12-17 09:23 1263次阅读
    精密空调—<b class='flag-5'>模块化</b>精密空调方案,让<b class='flag-5'>数据</b>中心更可靠!

    全球第四 科华数据蝉联全球模块化UPS榜单

    近日,第三方权威机构Omdia发布《2024全球模块化UPS市场报告》,对全球模块化UPS市场动向、市场份额及发展趋势等进行了分析与洞察。报告显示,作为模块化UPS的创新引领者,科华数据
    的头像 发表于 12-13 14:51 1467次阅读
    全球第四 科华<b class='flag-5'>数据</b>蝉联全球<b class='flag-5'>模块化</b>UPS榜单

    模块化示波器的技术原理和应用

    变化。 模块化设计: 模块化示波器采用模块化设计,使得用户可以根据实际需求选择不同的功能模块进行组合,从而满足不同的测量需求。 这种设计不
    发表于 12-11 14:20