精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

民機機載軟件的開發與驗證

上海控安 ? 來源:上海控安 ? 作者:上海控安 ? 2023-02-10 10:34 ? 次閱讀

作者 |蔡喁上海控安可信軟件創新研究院副院長

版塊 |鑒源論壇 · 觀擎

01機載軟件過程保證的目的和背景

民機機載軟件研制過程一直是行業內公認的要求最為嚴苛、開發驗證難度最大的軟件開發實例之一。由于其高安全以及嚴格的政府監管特性,使得傳統其他領域的軟件開發人員往往難以適應。這里有必要分析和解釋民用飛機機載軟件體系下的語境和對過程的基本要求出發點。

1.1 機載軟件的研制過程僅指從嚴密的系統需求定義到代碼實現和集成的過程

由于飛機自身層次化的研發體系存在,以及民用飛機對功能安全的苛刻要求,民用飛機體系下軟件研制活動實際上包括傳統軟件工程的需求收集和系統/產品級驗證活動。民機工程中的軟件驗證過程起自經過確認,完整、準確、無二義性的系統需求。任何系統需求方面的錯誤和不完善則應退回到上級過程進行,任何軟件設計過程中對系統需求的補充,則也不應由軟件工程師決定其存在合理性。

產生這一現象的原因在于民機整體研制過程中,非常強調對需求和設計的確認、分析和安全性工作。而幾乎所有的確認(確定功能和要求的合理性)以及安全性工作都必須充分結合使用條件和使用場景開展。大家可能還記得本系列第一篇中所描述的民用飛機安全性相關工作介紹。而民用飛機的設計,實際上并不是最求極致的正確,而是根據所能產生的安全影響提出相應的要求。在機載軟件設計層次,實際上并不能充分理解其所提供的飛機級功能及其使用場景,因此民機研制者通常將軟件定義為只需要按照要求的功能和性能實現軟件代碼,并確定可執行目標代碼能夠在預期的目標機環境下正確實現分配給他的功能即可。

1.2 民機機載軟件過程及其適航評估關注的軟件缺陷種類

在上述這種語境下,機載軟件的缺陷很大程度上被理解為是由于人為錯誤。這種人為錯誤發生的誘因可能是人的認識水平、理解能力、勞累疲憊、利益考慮等諸多方面。這種誘因可能導致軟件需求的問題、軟件設計的問題、軟件編碼的問題、軟件質量的問題。這些問題表現出來可能是軟件與硬件的不兼容,軟件不能滿足用戶的預期用途,軟件在邊界輸入上不能正確響應,軟件結構復雜帶來的維護和擴展問題,軟件能力不能滿足負載和容量壓力。這些問題可以列舉很多,但歸根結底,軟件要么對輸入沒有進行正確的理解,要么技術方案出現了問題,要么自身的研發出現了問題。以上的這些軟件缺陷或者錯誤在軟件運行之后其發生的方式或者暴露的原因,不具有偶然性,一定是在滿足一定的條件下才能夠發生。這種軟件的錯誤不像某些硬件失效那樣,會表現為一定的中間狀態,軟件的錯誤不會介乎于好與不好之間的無法定性的狀態。所以軟件的錯誤在統計學上不呈現任何的規律。

鑒于軟件錯誤的發生一定是滿足一定的觸發條件才能發生。因此,這種錯誤的存在可以得到人為的控制而減少。不像硬件的失效,硬件的失效并不因為人為的努力而不會發生,其更多的是一種物理或者化學現象,是一種自然科學上的必然現象。所以硬件的不能滿足要求,是一種失效,而非錯誤。硬件失效則呈現統計規律,統計學上稱之為失效概率。軟件的錯誤和硬件的失效在機載系統上的處理截然不同。硬件的失效要求滿足失效率的要求,對于可能造成單點失效的硬件,則必須設置相應的冗余、備份手段。軟件錯誤的防范在機載領域則應用過程保證的方法。通過較少引入錯誤的機會,提高檢出錯誤的能力,來規范軟件的質量要求。

1.3 機載軟件過程保證的基本出發點

過程保證以層次化方法為核心,通過劃分軟件的研發層次,以不同的視角和角色開發軟件生命周期數據。軟件的開發不能一蹴而就,必然是從系統視角到軟件視角,軟件視角是一種以審視軟件輪廓和外部行為的黑盒角度。軟件黑盒被進一步打開,軟件模塊及框架和邏輯被明確出來。當軟件框架和框架內部子模塊的行為被充分細化,此時才可走向編程語言及編譯鏈接。簡單來講,是一種外部-內部-實現-可執行的層次化框架。這種層次化方法,避免編碼人員的自由發揮,通過軟件架構和低級需求的設計,表面軟件代碼行為與外部要求的不一致;這種層次化方法,通過設置軟件高級需求,對軟件的預期和利益人意見進行匯總和權衡,避免了軟件實現與軟件預期的不匹配。因此,機載軟件為了保證軟件本身與系統或設備需求的一致性,設置了目前呈現出來的研發層次。

1.4 設計的顆粒度、層次依據和界面原則

過程保證以界面原則作為特定層次顆粒度/模塊化定義的依據。拿一個通常算賬使用的簡單計算器來舉例講,劃分輸入模塊、處理模塊、輸出模塊是一種顆粒度,劃分機械鍵盤、防抖模塊、計算模塊、存儲模塊、電源模塊、顯示處理和液晶模塊等也是一種顆粒度的定義方式。其實這種顆粒度的不同定位,就是一種何為內何為外的界面劃分。對于軟件高級需求來說這種界面可以按照不同的業務流程劃分,也可以按照不同的任務系統進行劃分,也可以按照面向外部交互角色進行劃分。對于軟件低級需求來講,這種界面可以按照數據流向進行劃分、可以按照更為細致的服務或者功能進行劃分,可以按照業務步驟進行劃分。這種界面決定了顆粒度的大小。界面原則可以保證需求、設計、代碼各層次內部組合和解耦的合理性,也對該層次抽象程度的合理性進行定義。

過程保證以內外關聯為界面原則的依賴性策劃依據。內外關聯的原則是將那些牢固的不易變化的界面關系明確為模塊間的外部耦合關系,將那些內部可靈活處置的關系內化為內部耦合。外部耦合宜松,內部耦合宜緊。模塊功能內聚,則不會失去聚焦,不會偏離模塊的中心任務;模塊間關聯松散,則模塊間的開發與維護都相對便捷,不會有過多顧慮。對于每個層次的內部需求/設計之間的關聯關系,有不同的劃分方法,正如同統一建模語(Unified Modeling Language,UML)將類間關系劃分為關聯、泛化、聚合和組合一般,依據這種關聯原則的定義,將上下游、同層間的需求設計關系進行梳理和凈化,進一步將需求和設計的形式與內容進行雕琢。

02機載軟件的開發過程

在軟件開發過程中,DO-178C定義了如下四個子過程:

(1)軟件需求過程:該過程的輸入是分配給軟件的系統需求,主要輸出是軟件系統的高級需求(HLR)。它包含了軟件的功能需求、性能需求、軟硬件接口和安全相關需求等內容。

(2)軟件設計過程:該過程的輸入是軟件高級需求、軟件開發計劃和軟件設計標準,主要輸出是設計描述,包括軟件架構和低級需求(LLR)。

(3)軟件編碼過程:這一過程根據軟件低級需求和軟件架構編寫軟件的源代碼。過程的主要輸出結果是源碼和目標碼。

(4)軟件集成過程:該過程對源碼和目標碼進行編譯、鏈接,并加載到機載系統或設備中。該過程應包含軟件集成和軟/硬件集成兩個子過程。

下圖給出了DO-178C標準中系統需求和軟件開發四個過程之間的關系。

v2-7c4274597ceed46733c3743ef9431316_720w.webp

圖1 DO-178C開發過程

軟件開發過程在DO-178C中分為四個階段,這四個子階段的劃分要求保證軟件行為的整體性、內在模塊之間的協調性、內部耦合之間的正確性、內部異常與錯誤之間的隔離性、上級功能與下層資源分配之間的合理性和適當裕度,同時還要兼顧到軟件的效率。這四個子階段的劃分可以從軟件行為到結構,再到編程語言的轉換,也可以是從軟件能力到軟件規格,再到軟件實現的轉換,也可以是去粗求精、去偽存真的不斷迭代過程,還可以是更為復雜的從外在到多視角描述肢解系統需求的過程。但是不管怎樣,這是一個從整體出發到各個部分,然后再到整體的一個開發過程。層次化的步進是為了順利完成視角的轉換。每個層次的切割和分配是功能聚焦和開發人員關注點聚焦的現實需要。在這個過程中,復雜度隨著模塊、組件、單元的降維,開發難度不斷降低,但是軟件整體的行為卻變得越來越不受控。在軟件開發不斷的開發過程中,仍然有一種總體的行為變得尤為重要,仍有一個角色在以總體的責任性視角審視各個實體的綜合行為。所以在這四個子階段的實施過程中,要么前期規劃非常明確,各個部分的定義在頂層需求中已經框定,要么在演進過程中,總是有一個全局考慮的機制在發揮作用。否則局面將變得不可收拾。

03機載軟件的綜合過程

在軟件綜合過程中,DO-178C又包含如下四個過程:

(1)軟件驗證過程

該過程由軟件驗證計劃定義,用于檢測和報告在軟件開發過程中可能引入的錯誤,而錯誤的消除屬于軟件開發過程的活動;

(2)軟件構型管理過程

該過程由軟件構型管理計劃定義,與其它軟件生命周期過程協同執行,其主要功能包括:

● 用于在軟件生命周期中提供確定的、可控的軟件構型;

● 提供可執行目標代碼的復制能力,當需要檢查和修改時可快速復制;

● 在軟件生命周期中提供過程輸入/輸出控制能力,保證過程活動的一致性和可重復性;

● 通過控制構型項、建立構型基礎,提供用于走查、狀態判斷、修改控制的節點;

● 提供控制,保證所有問題都被處理,所有修改都被記錄、提交和實現;

● 通過控制軟件生命過程的輸出提供軟件的證明;

● 輔助判斷軟件產品與需求是否兼容;

● 保證構型項維護了加密、恢復和控制數據等;

(3)軟件質量保證過程

該過程由軟件質量保證計劃定義,用于審核軟件的生命周期過程及其輸出,確保其目標被實現,錯誤被檢測、評估、跟蹤和解決,以及保證其它軟件生命周期數據能夠滿足軟件需求。軟件質量保證過程用于提供相關證據來表明經過軟件生命周期生產的軟件產品與需求相一致,保證這些過程的執行與軟件計劃和標準一致。

(4)審定聯絡過程

該過程用于在整個軟件生命周期中建立應用程序與證明授權之間的通訊和理解,輔助軟件的證明過程。

在機載軟件開發過程中,軟件綜合過程與軟件開發過程是并行執行的。在整個軟件生命周期中,以軟件開發過程為主線,在其各個子過程中實施相應的軟件綜合過程,其執行根據獨立性要求等可由兩個以上的不同團隊來完成,實現軟件開發與軟件綜合的分離。軟件生命周期中各個過程的關系可用下圖表示,圖中軟件計劃過程是所有過程的起始點,根據軟件計劃過程制定的各種軟件計劃執行相應的軟件生命周期活動。

v2-021d0992132b70fd2ed211b7930fbfc7_720w.webp

圖2 DO-178C軟件生命周期方陣

綜合過程也稱之為整體過程,預示其長期性和伴生性。這種綜合性還體現在其支持性,其是保證在日復一日的開發過程中的軟件中間產品的質量特性、清晰的數據變化路徑、過程和產品的監督監理。綜合過程的設置不但適用于軟件,對于其它層級甚至其它行業都是非常必要的,其是現代工業活動長期實施過程中的寶貴經驗總結。

筆者在這里想到豐田的精益管理,其中蘊含的思路也對綜合過程的設置給出了一些提示和指導。例如透明的信息與數字看板,軟件項目研制中的構型管理和質量保證其實就為實現這一目的,提供了良好的手段。通過構型管理和質量保證,可以為管理層提供診斷、監控、管理的依據。管理層要實施有效的管理,總是離不開管控范圍、問題定位、解決措施、效果統計等這些俗套的環節或者要素。軟件綜合過程的這些項目可以系統性的提供這種手段,如構型項的梳理、構型項狀態的管控、問題報告機制和構型變更管理機制等,為項目的范圍狀態,人力時間資源的投入等提供決策依據。精而有益、由精益而形成良好循環,最終質變。這與習近平總書記提到的精準思維有異曲同工之妙。

當然,軟件適航本身堅持的更多是一種底線思維。如果軟件研制企業想在人力、進度、成本上取得進一步的收益,還必須在流程優化、技術視野、管理與激勵機制上做出更廣闊層面上的革新。

參考資料

[1]《機載軟件適航符合性教程》,2022,ISBN:9787313241344,上海交通大學出版社.

[2] Software Considerations in Airborne Systems and Equipment Certification(DO-178C),RTCA,2011.

審核編輯黃宇

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

    關注

    69

    文章

    4774

    瀏覽量

    87162
收藏 人收藏

    評論

    相關推薦

    MSPMO開機載入程式

    電子發燒友網站提供《MSPMO開機載入程式.pdf》資料免費下載
    發表于 11-13 14:33 ?0次下載
    MSPMO開<b class='flag-5'>機載</b>入程式

    快速部署原型驗證:從子卡到調試的全方位優化

    引言原型驗證是一種在FPGA平臺上驗證芯片設計的過程,通過在FPGA上實現芯片的設計原型,使得開發人員可以在硬件完成之前提前開始軟件開發和系統驗證
    的頭像 發表于 09-30 08:04 ?560次閱讀
    快速部署原型<b class='flag-5'>驗證</b>:從子卡到調試的全方位優化

    ECU電控軟件開發及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發、MBD開發模式下的軟件質量評估與優化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發表于 09-26 14:25 ?3227次閱讀
    ECU電控<b class='flag-5'>軟件開發</b>及測試介紹

    軟件開發分為多少個階段

    軟件開發分為多少個階段 第一階段:需要分析及確認階段 系統需要分析階段,明確項目需求,確保所有利益相關者對項目目標、功能、性能、安全、用戶接口等方面有共同的理解和期望。 需求分析:對收集到的需求
    的頭像 發表于 08-21 14:27 ?241次閱讀

    無人機機載高光譜成像系統的應用及優勢

      隨著無人機技術的快速發展,基于無人機平臺的高光譜成像系統在多個領域中得到了廣泛應用。本文將介紹一款小型多旋翼無人機機載高光譜成像系統,該系統由高光譜成像相機、穩定云臺、機載控制與數據采集模塊、機載供電模塊等部分組成,具有高光
    的頭像 發表于 08-15 15:03 ?591次閱讀
    無人機<b class='flag-5'>機載</b>高光譜成像系統的應用及優勢

    【電磁兼容技術案例分享】某民機產品磁影響測試FAIL問題案例

    【電磁兼容技術案例分享】某民機產品磁影響測試FAIL問題案例
    的頭像 發表于 08-02 08:17 ?297次閱讀
    【電磁兼容技術案例分享】某<b class='flag-5'>民機</b>產品磁影響測試FAIL問題案例

    仿真測試與軟件測試的區別

    在當今軟件開發驗證的領域中,測試是保證軟件質量的關鍵環節。而在測試的眾多方法中,仿真測試和軟件測試是兩種常見且重要的手段。雖然它們都是為了驗證
    的頭像 發表于 05-17 14:33 ?789次閱讀

    西門子數字化工業軟件推出Veloce CS硬件輔助驗證和確認系統

    創新的 Veloce CS 架構整合了硬件加速仿真、企業原型驗證軟件原型驗證,將驗證和確認周期加快 10 倍,整體成本降低 5 倍
    的頭像 發表于 05-08 14:28 ?661次閱讀

    紅外無人機載荷核心指標——SWaP

    在無人機領域,我們經常會聽到一個術語——SWaP。這是一個英文縮寫,分別代表Size(尺寸)、Weight(重量)、和Power(功率)。這三個元素是衡量無人機載荷性能的核心指標。看似簡單的三個
    的頭像 發表于 03-29 11:11 ?629次閱讀
    紅外無人<b class='flag-5'>機載</b>荷核心指標——SWaP

    嵌入式軟件開發軟件開發的區別

    嵌入式軟件開發軟件開發是兩個不同的概念,它們在一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發嵌入在硬件設備中的軟件,而
    的頭像 發表于 01-22 15:27 ?2176次閱讀

    基于功能安全的汽車嵌入式軟件單元驗證技術研究

    ,對滿足功能安全ASIL等級的汽車嵌入式軟件單元驗證技術進行詳細介紹,從而提高軟件質量,減少軟件安全隱患,對汽車嵌入式軟件開發和測試工作具有
    的頭像 發表于 01-07 11:27 ?1009次閱讀
    基于功能安全的汽車嵌入式<b class='flag-5'>軟件</b>單元<b class='flag-5'>驗證</b>技術研究

    RZ/G驗證的Linux軟件包V2.1.20-RT 修補程序應用指南

    電子發燒友網站提供《RZ/G驗證的Linux軟件包V2.1.20-RT 修補程序應用指南.pdf》資料免費下載
    發表于 01-03 14:12 ?0次下載
    RZ/G<b class='flag-5'>驗證</b>的Linux<b class='flag-5'>軟件</b>包V2.1.20-RT 修補程序應用指南

    RZ/G驗證的Linux軟件包V2.1.20-RT組件列表

    電子發燒友網站提供《RZ/G驗證的Linux軟件包V2.1.20-RT組件列表.pdf》資料免費下載
    發表于 01-03 14:11 ?0次下載
    RZ/G<b class='flag-5'>驗證</b>的Linux<b class='flag-5'>軟件</b>包V2.1.20-RT組件列表

    RZ/G驗證的Linux軟件包V2.1.20-RT 發布說明

    電子發燒友網站提供《RZ/G驗證的Linux軟件包V2.1.20-RT 發布說明.pdf》資料免費下載
    發表于 01-03 10:11 ?0次下載
    RZ/G<b class='flag-5'>驗證</b>的Linux<b class='flag-5'>軟件</b>包V2.1.20-RT 發布說明

    民機機載軟件的配置管理

    配置管理(Configuration Management)在航空領域經常又稱為構型管理,是現代復雜產品研制的核心技術。與很多傳統觀念中配置管理是對文檔和版本的簡單管理不同,現代復雜產品由于其內部組成部分較多、研制分工普遍以及設計中的版本狀態以及配合關系頻繁變換的原因,往往對配置/構型管控要求極高。
    的頭像 發表于 12-01 16:15 ?791次閱讀
    <b class='flag-5'>民機</b><b class='flag-5'>機載</b><b class='flag-5'>軟件</b>的配置管理