国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

耦合之殤,軟件設計中的隱疾

上海控安 ? 來源:上海控安 ? 作者:上海控安 ? 2025-08-28 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01

引 言

數據耦合和控制耦合是復雜軟件設計中常見的一種情況。DO-178C要求高安全等級軟件( DAL A/ B /C) 的測試覆蓋分析,必須要確認基于需求的測試執行了代碼組件之間的數據耦合和控制耦合。如果控制耦合未被正確分析,可能會導致系統在某些情況下做出錯誤的決策。因此當測試覆蓋率未滿足要求時,還要給出相關的解決方案。

02

定 義

從DO-178C中得到數據耦合與控制耦合的定義。

數據耦合:The dependence of a software component on data not exclusively under the control of that software component.某個軟件組件對該軟件組件控制下的非獨占數據的依賴性。

控制耦合:The manner or degree by which one software component influences the execution of another software component. 某個軟件組件對其它軟件組件的執行所產生的影響方式或程度。

其中component的定義如下:

Component:A self contained part,combination of parts,subassemblies,or units that perform a distinct function of a system. 系統中能執行明確功能的獨立部件、部件的組合、子組件或單元。

一般來說,Component可被解釋為:過程、函數、子程序、模塊和其他類似的編程構造。

具體目標在DO-178及其補充文件的目標矩陣表A-7中有詳細的條目說明,完整表格參見附錄A。

6.4.4.d:Test coverage of software structure, both data coupling and control coupling, is achieved. 軟件結構測試覆蓋的實現應該包含數據耦合和控制耦合。

在6.4.4.2.c中有著如下進一步的定義。

6.4.4.2.c:Analysis to confirm that the requirements-based testing has exercised the data and control coupling between code components. 分析以確認基于需求的測試已經實現了代碼組件之間的數據和控制耦合。

DO-178B和DO-178C標準中的示例主要說明了:代碼組件之間的數據和控制耦合的結構覆蓋率分析應通過評估基于需求的測試結果來實現(見6.4.4.2.c)。但這些定義并沒有清晰地確定要進行的實際檢查。在一般情況下,它們針對的是其他覆蓋技術無法檢測到的故障。在接下來的討論中,將詳細探討這些概念,以制定實現這些目標的實用技術。但是能夠清晰得知的是,航空機載軟件是需要針對數據耦合與控制耦合進行靜態的分析,以及基于需求的測試覆蓋。

03

實例解析

本章結合一些具體例子進行控制耦合與數據定義的詳細說明。

3.1 控制耦合

例子1

以下具有三個文件的模型,每個文件中至少有一個對函數foo的調用。然而,其中兩個文件包含函數foo的定義。這兩個定義可以相同或可能相似(相同的接口)。

wKgZO2iv9OCAPNWGAAEA8Y7ytnE358.png

圖1 文件及其定義示意圖

鏈接器可以選擇解析對文件A中的函數定義的所有調用(情況1),也可以對文件A中對其包含的定義的調用、文件B中對其包含的定義的引用和文件C中的調用中的任何一個進行解析(情況2)。這是一個控制耦合缺陷的例子,因為這導致了定義的模糊性。

例子2

第二個例子是參數的控制耦合。一個具有函數指針參數的函數foo,即可以通過foo的參數列表傳遞另一個函數的名稱(地址)。

wKgZPGiv9O6ADDUdAAG-rq6nTJ0834.png

圖2 例子2代碼展示圖

對于這段示例代碼來說,通過下方兩個用例可以實現代碼動態執行的完全語句覆蓋。

wKgZO2iv9PeAI-tkAAAuSMVhN7U635.png

圖3 例子2代碼全覆蓋用例圖

可能有兩個函數(func1與func2)在調用,而對于上述兩個數據集,每個只調用一個函數,在用例1調用func1,在用例2調用func2。控制耦合要求在每個用例執行所有潛在的調用。為了確保執行所有控制流調用,基于需求的測試數據因此需要包括兩個額外的數據集。這個概念可以應用于使用指向函數的指針的所有情況。如果通過指針解引用調用函數,則必須執行所有可以調用的潛在函數。同樣,在C++等面向對象程序中,所有可以在特定調用的虛函數都必須要有基于需求的測試數據執行。

3.2數據耦合

數據耦合完全取決于整個系統或子系統的控制流圖結構。

例子1

如下圖所示為官方文檔給出的一個數據耦合的例子。

wKgZO2iv9QGAOe7oAACoFXs8sIg331.png

圖4 數據耦合示例圖

如上圖所示Calculate Air Speed和Display Air Speed兩個函數都是從同一個主程序調用的,并且共享一個全局變量“AirSpeed”。Calculate Air Speed計算變量“速度”的值,即設定操作,而功能Display Air Speed“速度”值輸出到顯示設備,即使用操作。代碼可能采用下圖所示的形式。

wKgZPGiv9QqAE1rGAAEwZLk3OuA135.png

圖5 數據耦合代碼1展示圖

可以構建一個執行Display Air Speed的測試用例,然后構建另一個執行計算空速的測試實例。在這種情況下,控制耦合按要求進行測試(即執行的每個語句和執行的每個分支/決策,在這種情況中沒有MC/DC要求),但呼叫的順序有缺陷,因為顯示空速沒有有效的顯示速度。同樣,如果一個測試用例調用Calculate Airspeed,而隨后沒有調用Display Airspeed,則很可能存在另一個缺陷。

這個例子表明,需要證明給定過程的所有輸入在調用時都有有效值,并且使用了分配給全局變量的所有值。在這種情況下,全局變量可以看做在使用過程中外部聲明和設置的變量。

例子2

如下所示,這個函數多次使用了變量x。

wKgZO2iv9ROAda-sAACyeKk3hBE708.png

圖6 數據耦合代碼2展示圖

主函數同樣多次調用了foo函數。

wKgZO2iv9RuANArKAAFoakF2Wc4436.png

圖7 數據耦合代碼3展示圖

運行main函數,由于循環通過參數y調用foo可以讓foo中的每條語句都被執行,此外還有每個分支/決策。然而使用參數z調用foo單個用例無法達到語句與分支/決策的全覆蓋,因此需要多個測試用例來保證在z的值改變的情況下,foo函數的語句會被全部覆蓋。根據上述的分析,主函數main與函數foo含有數據耦合,它們通過調用參數y與z,形參x而產生了耦合。

04

耦合度啟示

在這個紛繁復雜的世界中,耦合度分析的核心思想——系統思維、關注隱藏依賴、預防優于修復、優化資源分配以及透明性和可追溯性——不僅適用于軟件開發和航空安全領域,還能為生產工作和生活帶來深刻的啟示。

1. 系統思維的重要性

耦合度分析強調從整體出發,理解各部分之間的相互關系。在生產中,這意味著要關注生產流程的全局,而不僅僅是單個環節。例如,工廠中每個車間的工作并非孤立存在,它們通過物料流轉、信息傳遞等方式緊密相連。只有從系統層面優化這些耦合關系,才能真正提升效率。

2. 關注隱藏的依賴關系

耦合度分析提醒我們關注那些不明顯但可能引發問題的隱藏依賴關系。在生產工作中,團隊成員之間可能因職責劃分不清而產生隱性依賴,例如某個部門的工作進度可能依賴于另一個部門的數據輸出,但這種依賴并未明確說明。提前識別這些潛在問題,可以避免項目延誤。

3. 預防優于修復

耦合度分析的核心是通過提前分析和測試,發現潛在問題,避免問題在后期放大。這種“預防優于修復”的理念在生產中體現為定期設備維護和流程優化,減少因設備故障或流程問題導致的生產中斷。

4. 優化資源分配

耦合度分析可以幫助識別系統中的關鍵耦合點,從而優化資源分配,提高系統整體性能。在生產中,通過分析各部門之間的耦合關系,可以合理分配人力、物力資源,避免資源浪費。例如,優化供應鏈管理可以減少庫存成本,同時提高響應速度。

5. 透明性和可追溯性

耦合度分析要求對系統中的耦合關系進行詳細記錄和分析,這種透明性和可追溯性有助于快速定位問題和優化系統。在生產中,通過記錄生產流程中的各個環節及其耦合關系,可以快速追溯質量問題的根源,從而采取有效的改進措施。

05

耦合度應用

隨著科技發展與技術創新,近年來軌交、汽車、航空航天等領域的發展非常迅猛,伴隨而來的是各類安全問題。以上領域涉及的安全關鍵軟件的質量與效率都受到了高度重視。因此,高可信嵌入式軟件建模開發工具SmartRocket Modeler應運而生,誕生自質量,扎根于安全。通過模型語言的圖形化建模、模型靜態檢查、仿真與調試與C代碼生成等等功能為用戶提供一套基于模型的高安全性嵌入式軟件解決方案。在更進一步的前提下逐漸替代相關國外軟件,為解決卡脖子難題做出貢獻。

wKgZO2iv9SuAWo_kAARcdHnsCis916.png

圖8 SmartRocket Modeler主頁圖

在耦合度分析理論的基礎上,上海控安SmartRocket Modeler團隊,通過充分的調研與實踐,實現了該功能的具體落地。

工程師根據上層需求,通過可視化建模方法得到其設計模型,其設計模型能夠通過圖形化或者代碼字符串的方式進行展示,如下圖所示為示例項目Roll Control的圖形化界面。

wKgZPGiv9TKAF-NZAAF7IG_yYpM218.png

圖9 SmartRocket Modeler設計模型圖形化展示界面

Modeler使用同步數據流語言Lustre代碼進行設計模型的一致性描述,Lustre是一種經過嚴格形式化驗證的設計模型語言,它能夠充分描述機載軟件在固定時鐘下的運行情況,其示例 lustre 代碼如下所示。

wKgZPGiv9TqAOISKAAK4uP6vTbU220.png

圖10 RollControl飛機控制模塊Lustre代碼示意圖

Modeler通過針對設計模型的分析給出其控制耦合與數據耦合的結果,并通過圖形化與表格的多維度展示,為用戶確認模型預期性提供便捷。

wKgZPGiv9UeAY8A5AACZSyebWMo350.png

圖11 SmartRocket Modeler耦合度分析圖

Modeler通過耦合分析圖來展示方法或函數間的控制的耦合,如圖11所示。圖中的點與邊分別代表著函數與函數間的調用關系,正如第三章控制耦合的示例中從起點函數出發,存在多個調用的關系,也存在不同函數共同調用統一函數的關系。通過圖的表現形式,生動展示了設計中的控制耦合關系。在其中,入度為零的點為全局變量和輸入變量,出度為零的點為輸出變量。該圖可以便于用戶快速定位搭建的模型與原始需求是否相一致。

wKgZO2iv9VGAWoCjAARBdSkNFhQ892.png

圖12 SmartRocket Modeler全局變量使用情況展示圖

圖12中的信息將函數調用關系以表格的形式進行了展示,該表中另外對實際調用過程中傳遞的參數進行映射,該表不僅展示了調用關系(控制耦合),更進一步包含了調用的參數及其類型(數據耦合),便于用戶根據表格和需求進行比對。

wKgZPGiv9ViARRs9AAFhlQbTXBs820.png

圖 13 SmartRocket Modeler全局變量使用情況展示圖

此外Modeler還支持對全局變量的使用情況進行統計與展示,全局常量與傳感器等變量在模塊間進行著數據傳輸,如下圖所示。此表目的用于方便用戶映射需求的數據字典對應的全局變量使用情況是否符合用戶預期。

Modeler 工具通過對系統中各個組件間的依賴關系進行深度分析,實現了對系統耦合度的全景式展示。具體而言,它會分析變量之間的相互依賴、函數調用鏈的深層次聯系,以及函數對全局數據的依賴情況,并以直觀的圖形和層次結構展現出來。通過這種方式,設計者不僅可以清晰地看到哪些模塊之間存在緊密耦合,還能識別出那些可能導致后期維護和擴展困難的高耦合區域。Modeler 工具的多層次、分組顯示依賴關系,允許用戶根據實際需求進行過濾和聚類,從而精準定位那些與需求設計偏離的部分。在模型設計的早期階段,就能通過實時反饋機制發現潛在風險,及時調整設計策略,確保整個系統架構與業務需求保持高度一致。這樣不僅提升了系統設計的效率,也為后續的系統優化和升級奠定了堅實基礎。

參考文獻

[1] Johnson L A. Software Considerations in Airborne Systems and Equipment Certification[Z]. Document RTCA/DO 178B,1998.

[2] RTCA.DO-248C-2011,Supporting Information for DO 178C and DO-278A[S]. USA: RTCA,2011.

[3] CAST.CAST-19-2004,Clarification of Structural Coverage Analyses of Data Coupling and Control Coupling[S]. USA: CAST,2004.

[4] 孔德岐,鐘珊 .淺談DO-178C中數據耦合與控制耦合目標的實現[J] .航空計算技術,2018,48(5):57-60.


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 耦合
    +關注

    關注

    13

    文章

    607

    瀏覽量

    103409
  • 軟件設計
    +關注

    關注

    3

    文章

    65

    瀏覽量

    18292
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    技術資訊 I 容性耦合噪聲抑制方法如何減少串擾

    本文要點容性耦合噪聲取決于電路的電壓變化和耦合電容的值,其中耦合電容受兩個電路之間距離的影響。雜散電容會增大耦合電容值。如果減少或消除雜散
    的頭像 發表于 01-23 20:07 ?141次閱讀
    技術資訊 I 容性<b class='flag-5'>耦合</b>噪聲抑制方法如何減少串擾

    TDK多層定向耦合器HHM2917B1:2400 - 2500MHz的理想

    TDK多層定向耦合器HHM2917B1:2400 - 2500MHz的理想選 在射頻(RF)領域,耦合器是一種至關重要的元件,它能夠實現信號的分配和耦合,廣泛應用于各種電子設備
    的頭像 發表于 01-07 18:20 ?1090次閱讀

    薄膜射頻/微波定向耦合器CP0603:設計與應用的理想

    薄膜射頻/微波定向耦合器CP0603:設計與應用的理想選 在電子工程師的日常設計工作,射頻/微波定向耦合器是不可或缺的關鍵元件,它在眾多高頻無線系統里扮演著重要角色。今天,我們就來
    的頭像 發表于 12-24 17:25 ?549次閱讀

    看懂C語言程序的內聚和耦合

    一、原理篇 在軟件工程,模塊的內聚和耦合是度量模塊化質量的標準之一。內聚是指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。若一個模塊內各元素(語名之間、程序段之間)聯系
    發表于 12-08 06:37

    嵌入式可測試性軟件設計

    ut_cal_func 2 3 5 // ... 輸出: input 1, 2, test pass! input 2, 3, test pass! 這就是一個可測試性軟件設計的一個小例子,通過這個小例子大家應該
    發表于 12-02 06:06

    WIFI耦合測試方案詳解

    干擾其他設備易引發信道爭搶、上網卡頓。 傳統屏蔽箱吞吐量測試雖能反映實際體驗,但批量生產場景存在效率低、占地廣的問題。RF功率耦合測試方案可實現1拖16批量測試,既保證射頻參數的真實性,又能高效完成產
    發表于 12-01 10:40

    在以下嵌入式軟件設計模型,屬于數據流模型的是,哪里有設計模型的介紹?

    在以下嵌入式軟件設計模型,屬于數據流模型的是()。A. CCSB. CSPC. FSMD. Petri Net
    發表于 11-24 15:55

    智慧教育&quot;浪潮天工開務杯&quot;軟件設計大賽成功舉辦

    濟南2025年11月13日 /美通社/ -- 近日,2025年"浪潮天工開務杯"軟件設計大賽決賽在浪潮科技園舉行,活動由浪潮軟件主辦、浪潮優派承辦。浪潮軟件智慧教育事業本部副總經理、浪潮優派總經理陳
    的頭像 發表于 11-13 21:01 ?188次閱讀
    智慧教育&quot;浪潮天工開務杯&quot;<b class='flag-5'>軟件設計</b>大賽成功舉辦

    【干貨速遞】嵌入式數據可靠性,軟件設計的這些細節不能忽視!

    問題。軟件設計軟件設計在嵌入式數據存儲可靠性扮演著至關重要的角色。它不僅包括系統驅動的開發,還涉及應用層面的優化。一個精心設計的軟件系統可以顯著提高數據的完整性和系統的穩
    的頭像 發表于 07-31 11:34 ?558次閱讀
    【干貨速遞】嵌入式數據可靠性,<b class='flag-5'>軟件設計</b>的這些細節不能忽視!

    如何減小DAC電路的耦合影響?

    可設為100kHz。七、軟件與算法補償數字預失真(DPD)通過軟件算法對DAC輸入信號進行預處理,補償非線性失真和耦合噪聲。示例:在通信系統,使用DPD算法抵消DAC輸出端的諧波失真
    發表于 07-29 09:39

    Lavavision攜手奧比光推出互動軟件平臺Motioncube

    Lavavision是一家來自波蘭的交互式軟件設計公司,推出了創新的互動軟件平臺Motioncube。該平臺基于先進的交互技術,結合奧比光Astra系列和Gemini系列相機提供的深度圖像數據,為孩子們帶來耳目一新的沉浸式教育
    的頭像 發表于 06-04 14:38 ?986次閱讀

    超聲波局放傳感器:精準捕捉設備“隱疾”的科技

    的“定時炸彈”,時刻威脅著設備的安全。為了有效監測并預警這一潛在威脅,超聲波局放傳感器應運而生,成為精準捕捉設備“隱疾”的科技眼。超聲波局放傳感器:原理與優勢超聲波局放
    的頭像 發表于 04-17 10:17 ?1056次閱讀
    超聲波局放傳感器:精準捕捉設備“<b class='flag-5'>隱疾</b>”的科技<b class='flag-5'>之</b>眼

    超低功耗MCU軟件設計技巧與選型

    與開發應用生態的沉淀,大力節省超低功耗選型設計成本以及開發周期.如何做好超低功耗mcu嵌入式軟件設計與選型是本文講述的主要內容.
    的頭像 發表于 04-12 17:19 ?1967次閱讀
    超低功耗MCU<b class='flag-5'>軟件設計</b>技巧與選型

    VirtualLab Fusion應用:參數耦合

    1.摘要 利用VirtualLab Fusion的參數耦合功能可在光學設置耦合參數。耦合的參數可重新計算系統的其他參數,進而自動保持系統參數間的關系。因此,參數
    發表于 03-17 11:11