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

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

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:JAY THOMAS 2022-11-08 15:02 次阅读

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

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

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

• 减少变更

的影响• 简化软件重用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

审核编辑:郭婷

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

    关注

    33

    文章

    8436

    浏览量

    150688
  • 数据
    +关注

    关注

    8

    文章

    6792

    浏览量

    88723
收藏 人收藏

    评论

    相关推荐

    模块化插座接线方法有哪些

    模块化插座,也称为模块化电源插座或模块化PDU(Power Distribution Unit),是一种可以根据需要灵活配置电源插座和接口的设备。这种设计允许用户根据具体的用电需求,选择不同的
    的头像 发表于 10-18 09:50 220次阅读

    低成本、高性能,储能变流器开始走向模块化

    。   模块化的PCS具有许多显著优势,例如灵活的配置、更高的效率和更好的可靠性,这使得它们在各种规模的储能系统中得到了广泛应用。其模块化设计不仅方便了系统的扩展和维护,还提高了整体系统的灵活性和经济效益。   PCS 走向
    的头像 发表于 09-25 00:10 3102次阅读

    研华工控机的模块化设计,复杂应用场景的灵活解决方案!

    工控机模块化设计是工业自动和嵌入式系统领域的重要趋势。灵活、可扩展的设计,使得用户可以根据实际需求,选择合适的模块进行组合,形成高度定制的工控机产品,从而
    的头像 发表于 09-07 09:58 264次阅读
    研华工控机的<b class='flag-5'>模块化</b>设计,复杂应用场景的灵活解决方案!

    安波福模块化连接器的优势

    “整个蓝图中缺失的部分就是一种新型连接器,它可以实现自动、实现所需的连接器密度并满足当今架构的所有要求,同时为OEM提供其个性架构设计所需的灵活性。这就是模块化连接器的用武之地。”
    的头像 发表于 08-16 14:39 329次阅读

    模块化不间断电源和传统差距,安装位置方面

    设计的模块化架构,用户可以根据需要添加或删除模块来扩展UPS系统。这使得扩展UPS的容量更加容易,以满足不断变化的电力需求。传统UPS:传统UPS系统容量固定,不易扩展。为
    的头像 发表于 06-25 09:34 278次阅读
    <b class='flag-5'>模块化</b>不间断电源和传统差距,安装位置方面

    新品 | 英飞凌模块化应用设计套件MADK兼容的控制

    新品英飞凌模块化应用设计套件MADK兼容的控制板EVAL-XMC4800PSOC6M5是一款控制板,与带有M5连接器的英飞凌模块化应用设计套件MADK兼容。它可以方便地评估M5接口的M
    的头像 发表于 05-06 08:13 294次阅读
    新品 | 英飞凌<b class='flag-5'>模块化</b>应用设计套件MADK兼容的<b class='flag-5'>控制</b>板

    锂电池是模块化好还是成组好?

    锂电池的模块化和成组是两种不同的设计理念,它们各自有着不同的优势和应用场景。
    的头像 发表于 04-29 15:17 621次阅读

    为什么模块化配线架越来越受欢迎?

    由于现有的布线基础设施无法满足互联网连接设备不断增长的需求,企业必须最大限度地提高网络带宽以满足客户需求,这将导致光纤密度增加和维护困难。模块化配线架以其独特的优势可以为高密度光纤布线设计提
    的头像 发表于 04-07 10:33 330次阅读

    机房升级必备神器:模块化精密空调的五大超能力!

    模块化机房精密空调是一种专门为现代数据中心和机房设计的空调系统,具有以下特点和优势: 灵活性:模块化机房精密空调采用模块化设计,可以根据机房的规模和需求,自由组合不同数量的空调
    的头像 发表于 03-19 18:24 1132次阅读
    机房升级必备神器:<b class='flag-5'>模块化</b>精密空调的五大超能力!

    模块化机房:数据中心的未来

    随着数字转型加速,数据中心已成为企业运营的核心。传统的数据中心面临空间利用不足、能源效率低下、扩展性差和维护成本高等问题。模块化机房应运而生,它不仅克服了传统设计的局限,还为
    的头像 发表于 03-12 17:26 799次阅读

    什么是模块化机房?

    在这个数据驱动的时代,数据中心的作用变得日益重要。而模块化机房,作为一种创新的数据中心解决方案,正在逐渐改变我们构建和管理这些关键设施的方式。但究竟什么是
    的头像 发表于 03-12 15:05 1308次阅读

    模块化UPS是什么?模块化UPS电源并机的优点

    模块化UPS是什么?模块化UPS电源并机的优点  模块化UPS是一种将UPS电源拆分为多个独立模块的解决方案。每个模块包括一个或多个电池组、
    的头像 发表于 01-10 15:16 1197次阅读

    什么是模块化锂电UPS?模块化UPS支持锂电池吗?

    锂电池具有较高的能量密度、长寿命和快速充电能力,因此成为了UPS供电系统的理想选择。 模块化UPS是指将整个UPS系统分解成若干模块,每个模块都具有自己的电池组、逆变器和控制电路。这样
    的头像 发表于 01-09 15:51 784次阅读

    LumiDL TM模块化照明器介绍

    今天我们为大家介绍一下LumiDL TM模块化照明器。
    的头像 发表于 01-08 11:11 641次阅读
    LumiDL TM<b class='flag-5'>模块化</b>照明器介绍

    太阳能应用的模块化电池系统

    电子发烧友网站提供《太阳能应用的模块化电池系统.pdf》资料免费下载
    发表于 11-16 15:31 0次下载
    太阳能应用的<b class='flag-5'>模块化</b>电池系统