• <tfoot id="ukgsw"><input id="ukgsw"></input></tfoot>
    
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      基于模型的軟件開發方法綜述

       芥子c1yw3tb42g 2023-11-28 發布于陜西

      前言

      本文詳細介紹了基于模型的軟件開發方法的概念、模型驅動的體系結構和開發步驟、建模語言、建模工具,對各種建模工具進行了比較、分析;本文從軟件算法復雜度和架構復雜度兩個維度來選擇建模工具,最后針對非圖形界面的嵌入式軟件和圖形化界面的嵌入式軟件,分別給出軟件建模方案。

      1 基于模型的軟件開發概述

      基于模型的軟件開發(MBSD:Mode Based Software Development)、模型驅動的軟件開發(MDSD: Mode Driven Software Development)、基于模型的軟件工程(MBSE: Model Based Software Engineering)、模型驅動的軟件工程(MDSE: Model Driven Software Engineering)是軟件工程發展的一個重要方向,是一種以建模和模型轉換為主要途徑的軟件開發方法。
      模型是實際系統或過程的代表或描述,它是實際系統一部分屬性的抽象或模仿,而不是全部屬性的復制,模型的實質是在一組簡化的假設條件下,描述一個實體活動的最本質的屬性。模型用于描述項目相關人員對復雜系統的理解和認知,是項目相關人員之間交流的基礎,是系統開發的依據。
      基于模型的軟件開發方法是指建立一個完整的軟件系統模型,依據模型驗證軟件系統的需求及設計方案,產生和調試軟件程序代碼的方法。模型的可視化意味著可視化軟件開發。
      模型驅動工程的優勢在于,使用更接近于人的理解和認識的模型,尤其是可視化模型,有利于設計人員將注意力集中在和業務邏輯相關的信息上,而不用過早地考慮與平臺相關的實現細節。在MBSD中模型不再是一種設計輔助工具,而是實際開發過程中的產品,并隨著開發過程的迭代不斷改變。模型與代碼地位同樣重要,模型與代碼可同步化。
      基于模型的軟件開發流程將發生重大轉變,如圖1所示,省去了編碼和單元測試,在代碼之前及完成絕大部分的設計驗證。
      圖1 開發流程比較

      2模型驅動架構

      模型驅動架構(MDA:Mode Driven Architecture)是模型驅動軟件工程(MBSE: Model Based Software Engineering)的一個具體和部分的實現途徑。
      模型驅動架構(MDA)是由對象管理組織(OMG)提出的一種新的軟件體系結構開發的框架。模型驅動架構不僅把建模語言用作是一種設計語言,還用作是一種編程語言,并讓模型在軟件開發中扮演一種極其重要的角色,一切都是模型就是模型驅動架構的基本思想。然后通過架構性的分離來使軟件的可重用性、可維護性、互操作性、可編制性以及輕便性實現,并將軟件的開發效率提高。

      2.1 模型驅動的軟件體系結構

      在模型驅動架構中,模型成了軟件開發的主干及核心,不再只是一種輔助溝通的工具和描繪系統,而且從不同的視角可以用不同的模型對一個系統進行描述。因此,MDA 中將這些模型分為了以下三個結構。
      1)CIM(Computation Independent Model計算無關模型)
      通常所講的“業務模型”就是指計算機無關模型,這個層次的模型就只是對控制過程、步驟進行詳細的表述,在如何用軟件來實現控制過程、步驟方面毫無涉及。
      2)PIM(Platform Independent Model平臺無關模型)
      這一層次的模型將如何用軟件來實現控制過程、步驟方面進行了詳細的表述,并將一些與基礎功能毫無關系的技術細節進行了去除,所以用于構造平臺無關模型的語言不僅要抽象性較高,與具體的細節能夠互相脫離,必須還要能對系統的動態行為與靜態結構進行精準的建模。
      UML是與具體實現平臺無關的建模語言,它利用圖形符號標示系統中的對象和關系,在MDA中能精確、全面表達目標系統的靜態結構和動態行為。
      3)PSM(Platform Specific Model平臺相關模型)
      這一層次的模型是與代碼一級最貼近的,能夠將特定技術對軟件系統功能具體的實現進行詳細的描述,所以,用于構造平臺相關模型的語言不僅必須要有一定的擴展性,還必須要具備足夠的精確性,這樣才能使與各種實現技術緊密掛鉤的要求得到有效的滿足。

      2.2 模型驅動的軟件開發步驟

      1)分析、確定軟件的業務需求,建立計算無關模型(CIM);
      2)利用模型驅動軟件開發的專用建模工具將業務模型(即PIM )的圖形畫出來,并注意不管使用的目標平臺是什么,畫出來的UML 模型都是相同的,因為這個UML 模型是核心的業務組件和服務的代表,與任何具體實現它的開發技術都毫無關系;
      3)建立平臺相關模型(PSM)畫出來,并注意在這個階段的模型圖中,不僅指定與某種技術相關,而且還有某些特定技術的元素包含在內;
      4)最后利用模型驅動的軟件開發工具進行應用程序代碼的生成工作,并對UML無法進行建模的細節開展填補工作,手動編寫代碼。
      目前,可通過軟件工具完成PIM到PSM之間,以及模型和代碼之間的自動轉換。

      3 建模語言

      3.1UML

      統一建模語言(Unified Modeling Language,UML)是一種為面向對象系統的產品進行說明、可視化和編制文檔的一種標準語言,是非專利的第三代建模和規約語言。UML使用面向對象設計的建模工具,但獨立于任何具體程序設計語言。UML可以從不同角度描述人們所觀察到的軟件視圖,也可以描述在不同開發階段中的軟件的形態。UML可以建立需求模型、邏輯模型、設計模型和實現模型等。
      UML采用一組圖形符號來描述軟件模型,這些圖形符號具有簡單、直觀和規范的特點,開發人員學習和掌握起來比較簡單。
      UML為軟件系統建立可視化模型。UML符號具有良好的語義,不會引起歧義;基于UML的可視化模型,使系統結構直觀、易于理解;使用UML進行軟件系統的模型不但有利于系統開發人員和系統用戶的交流,還有利于系統維護。有了正確的模型就可以實現正確的系統設計,保證用戶的要求得到滿足,系統能在需求改變時站得住腳。對于一個軟件系統,模型就是開發人員為系統設計的一組視圖。這組視圖不僅描述了用戶需要的功能,還描述了怎樣去實現這些功能。
      UML為軟件系統建立構件。UML不是面向對象的編程語言,但它的模型可以直接對應到各種各樣的編程語言。例如,它可以使用代碼生成器工具將UML模型轉換為多種程序設計語言代碼,如可生成C++,JAVA, Visual basic等語言的代碼。
      UML為軟件系統建立文檔。UML可以為系統的體系結構及其所有細節建立文檔。不同的UML模型圖可以作為項目不同階段的軟件開發文檔。

      3.2 SysML

      對象管理組織OMG 決定在對UML2.0 的子集進行重用和擴展的基礎上,提出一種新的系統建模語言——SysML(Systems Modeling Language),作為系統工程的標準建模語言。和UML用來統一軟件工程中使用的建模語言一樣,SysML的目的是統一系統工程中使用的建模語言。它可以支持系統工程應用的多領域系統包含硬件、軟件、信息等系統的需求分析、系統設計、功能描述、系統驗證等。

      3.3 AADL

      AADL(Architecture Analysis & Design Language,架構分析和設計語言)主要用于對嵌入式實時系統的體系結構進行分析何設計,是一個支持MBE(Model Based Engineering )的建模基礎架構。

      4 軟件建模工具

      模型驅動的軟件開發方法為軟件的開發和設計提供了新的思路,通過圍繞模型進行軟件的開發,實現了問題的統一描述,通過開發工具的使用,可以實現模型的自動轉換,代碼以及文檔的同步生成,大大提高了軟件的開發效率;下面給出了幾種較為成熟的模型驅動的開發工具和平臺。

      4.1 Rhapsody

      IBM Rational Rhapsody是遵循UML/SysML的模型驅動的軟件開發平臺。Rational Rhapsody為系統工程師及軟件開發者提供了可視化開發環境,以支持嵌入式和實時系統軟件的設計開發。
      通過Rhapsody的模型驅動體系結構可以快速地將與平臺無關的應用模型部署到實時嵌入式操作系統。Rhapsody適應迭代設計與開發,軟件開發可以在宿主機環境持續的執行和驗證,繼而生成嵌入式應用,下載到目標機進行測試。Rational Rhapsody 產品家族提供了多個版本來幫助系統工程師及嵌入式軟件開發人員分析、設計、開發、測試和交付嵌入式及實時系統與軟件。
      對于系統工程師,Rational Rhapsody Architect for Systems Engineers基本版帶來了采用SysML/UML的需求分析管理功能。Rational Rhapsody Designer for Systems Engineers基本版還包括了設計驗證模擬功能。
      對于軟件開發人員,Rational Rhapsody Architect for Software版提供了逆向工程和支持 C、C++、Java 和 C# 的代碼框架生成功能。Rational Rhapsody Developer版還額外提供了可視化開發環境,可以支持目標嵌入式實時操作系統(RTOS)的 C、C++、Java 和 Ada 行為代碼生成。

      4.2 SCADE

      SCADE是法國愛斯特爾技術有限公司的主要產品系列。SCADE是高安全性應用開發環境(Safety Critical Application Development Environment)的簡稱,用于開發達到航空業 DO-178B 標準的嵌入式軟件。產品涵蓋了高安全性嵌入式系統開發的各個內容和階段。其主要產品有:
      1)SCADE Suite:業內領先的面向高安全性的集成軟件開發環境,通過采用scade語言和統一的形式化語義,可實現基于模型的設計、仿真、驗證、認證級代碼生成以及與其他開發工具和平臺的交互。SCADE Suite代碼生成器可以自動生成C代碼和 Ada代碼。SCADE Suite采用圖形建模實現系統概要設計和詳細設計后就能直接生成高安全性嵌入式代碼,并且由于 SCADE 的代碼生成工具 KCG經過認證,滿足航空業 DO-178B 的 A 級標準,能夠確保自動生成代碼與模型設計完全一致,不會引入任何錯誤,可以省略所生成代碼的單元測試 ,保證軟件需求和代碼執行的高度同步,具有開發周期短,安全性高,交互界面友好等優點。
      2)SCADE Display:是一套靈活的面向高安全性圖形顯示和HMIs的設計與開發環境。是新一代圖形軟件開發平臺,基于該平臺可完成原型生成、設計仿真、驗證和認證級代碼生成等工作,可與 SCADE Suite 的聯合仿真。SCADE Display能夠幫助工程師進行嵌入式圖形,顯示和人機界面的開發和認證代碼生成,用于高安全要求的顯示系統,如駕駛艙,抬頭顯示,頭盔,飛行管理系統,交通和防撞系統,以及車載導航系統和數字地圖,符合最嚴格的質量標準和目標。
      3)SCADE LifeCycle:主要功能包括需求和可追溯性管理工具、符合DO-178B標準的認證計劃模板以及自動化文檔生成器。
      4)SCADE System:基于SysML和Eclipse 標準,通過使用SCADE System來聯接 SCADE Suite、SCADE Display和SCADE LifeCycle,系統工程師和軟件工程師可以在同一構架下工作,從而避免重復勞動以及系統結構和軟件行為定義之間的偏差。

      4.3 Matlab

      MATLAB是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。
      MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理等領域。
      Simulink是MATLAB中的一種可視化仿真工具, 是一種基于MATLAB的框圖設計、建模和仿真環境,借助 Simulink能夠將模型組合成一個系統級仿真,即使模型不是在 Simulink 中構建;能與Ansiy(有限元分析軟件)、Saber、Rhapsody等多種軟件進行協同仿真,具有多學科協同設計、仿真的優勢。
      基于模型的軟件設計中,代碼生成主要用到MATLAB Coder和Simulink Coder、Embedded Coder這三個工具。
      MATLAB Coder用于從MATLAB的m函數生成 ANSI C/C++ 代碼,同時也是使用Simulink Coder的一個前置條件。Simulink Coder是從Simulink模型來生成ANSI C/C++代碼。Embedded Coder 則允許更進一步的針對MATLAB Coder或者Simulink Coder 生成的代碼進行優化和定制,從而生成可以應用到嵌入式產品中去的產品級代碼。

      4.3.1 Matlab Coder

      MATLAB Coder可從 MATLAB代碼生成 C 和 C++ 代碼,適用于從桌面系統到嵌入式硬件等多種硬件平臺。支持大多數MATLAB 代碼和各種工具箱。您可以將生成的代碼作為源代碼、靜態庫或動態庫集成到您的項目。生成的代碼可讀且可移植。您可以合并現有的 C 代碼和庫,以保證算法關鍵部分的高效能或高可信代碼的重用。您還可以將生成的代碼打包為 MEX 函數,用于在 MATLAB 環境中執行驗證或加速。
      Embedded Coder增強了 MATLAB Coder 在生產方面的用途,支持代碼自定義、目標特定的優化、代碼可追溯性以及軟件在環 (SIL) 和處理器在環 (PIL) 驗證。
      MATLAB Coder 利用范圍廣泛的 MATLAB 語言特性來生成代碼,設計工程師使用這些語言特性來開發作為大型系統組件的算法。這包括來自 MATLAB 以及配套工具箱 的超過 1900 個運算符和函數。

      4.3.2 Simulink Coder

      Simulink Coder(以前稱為 Real-Time Workshop)可從 Simulink模型、Stateflow圖和 MATLAB函數生成并執行 C 和 C++ 代碼。生成的源代碼可用于實時和非實時應用,包括仿真加速、快速原型建立和硬件在環測試。
      1)集成現有代碼:可以使用 C Caller 模塊或Legacy Code Tool合并手寫的現有 C/C++ 代碼,以便與生成的代碼進行仿真和集成。
      2)實時仿真與測試:使用硬件在環仿真和快速原型設計,在各種實時機器(包括使用 Simulink Real-Time的Speedgoat 目標計算機硬件)上測試嵌入式系統設計及建立原型。
      3)部署到嵌入式目標:使用 I/O 模塊庫配置和訪問外圍設備及通信接口,在支持的嵌入式目標上運行模型中的代碼。Simulink Coder支持眾多廠家的硬件接口,包括TI的C2000 系統芯片。
      4)調試參數和記錄數據:使用 Simulink Coder,當代碼在外部設備執行的同時,可以通過 XCP、TCP/IP 和串行 (RS-232) 通信從模型層傳輸信號,可以通過使用控制板模塊中的示波器、儀表板和實時流數據圖等查看數據和調試參數,以訪問和優化您在Simulink中的設計。

      4.4 其他工具

      4.4.1 Enterprise Architect

      Enterprise Architect 是Sparx Systems 公司的旗艦產品,它覆蓋了系統開發的整個周期,除了開發類模型之外,還包括事務進程分析,使用案例需求,動態模型,組件和布局,系統管理,非功能需求,用戶界面設計,測試和維護等。EA為用戶提供一個高性能、直觀的工作界面,聯合UML 2.0最新規范,為桌面電腦工作人員、開發和應用團隊打造先進的軟件建模方案。EA 支持文檔生成及部分代碼生成。

      4.4.2 MagicDraw

      MagicDraw UML是一款UML建模和面向對象系統設計分析工具。
      1)仿真分析功能:支持模型調試和執行動畫環境;支持用戶交互界面建模和執行;內嵌求解器,支持與專業數學分析工具集成(Matlab/Simulink、Mathmatics、Maple、FMU 等)。
      2)設計優化功能:提供SysML 參數模型和多學科分析模型接口,支持需求驗證、權衡對比分析、設計空間探索、自動設計優化等功能。
      3)自動代碼生成功能:支持C/C++、Java、C# 語言的部分代碼生成,能夠從系統行為模型自動生成可執行代碼,支持代碼的仿真及目標環境執行功能。
      4)自動文檔生成功能

      4.4.3 RT-CASE

      RTCASE實時系統結構分析/設計工具是專業性軟件工程工具,完全支持實時系統軟件的分析和設計,支持UML建模和代碼框架生成。

      4.4.4 STUDIO

      STUDIO是歐洲Ellidiss公司開發的可視化建模工具,使用自上而下的建模方法以縮小模型與代碼之間的差距,可以從AADL代碼生成Ada代碼和C++代碼。

      4.4.5 Capella

      Capella是目前在歐洲航空航天界廣泛應用的一種開源MBSE工具,其目的在于提供一種針對高安全性要求的復雜系統進行開發建模的圖形化環境。

      4.5 工具比較

      國內常用的幾個商用MBSE軟件功能對比如表1所示。

      從上面幾個常用的MBSE工具來看,針對嵌入軟件設計,且只有SCADE Display支持圖形界面軟件的開發。

      5 基于模型的軟件工程的實施方法

      5.1 軟件建模工具選擇方案

      復雜軟件可從兩個維度定義:1)算法復雜度;2)架構復雜度;軟件建模方法、建模工具選擇可以從這兩個維度確定。
      1)算法復雜度低、架構復雜度低:手工編寫軟件;
      2)算法復雜度高、架構復雜度低:采用Simulink建模,便于算法設計仿真,如伺服驅動器軟件;
      3)算法復雜度低、架構復雜度高:采用UML建模,如火控軟件、車控軟件、綜控軟件;
      4)算法復雜度高、架構復雜度高:采用UML與Simulink聯合建模,如飛控計算機軟件;
      UML是一種通用的建模語言,缺少對嵌入式領域的強力支持,因此采用專門的仿真軟件可以彌補UML動態行為建模方面的不足。Simulink就是一款功能強大的仿真工具,支持在交互式、圖形化環境中對動態系統進行仿真和分析。更重要的是,針對嵌入式的領域特點,Simulink提供了許多具有特殊功能的工具包,以方便軟件開發人員使用。

      5.2 非圖形界面的嵌入式軟件開發的建模方案

      Rhapsody 是開發反應式系統方面市場領先的環境,而 Simulink 是作基于模型的設計,開發動態控制和信號處理系統方面的組件。隨著技術的發展,現在Rhapsody/ Simulink這兩個工具均相互支持協同仿真,這兩個工具的集成使開發者能夠通過易于應用的建模環境來開發健壯的高質量的系統。
      因此對于復雜系統,采用Rhapsody、Simulink這兩個工具協同建模、設計、仿真、代碼生成,使用Rhapsody完成軟件的架構設計,使用Simulink完成軟件中的算法設計,最后進行協同仿真、模型驗證。

      5.3 圖形化界面的嵌入式軟件開發的建模方案

      5.3.1 基于SCADE工具的軟件開發

      使用SCADE一套軟件(含SCADE Suite和SCADE Display)即可完成圖形化軟件的開發,代碼生成率高,可靠性好。

      5.3.2 基于Rhapsody+Simulink+QT/VC的多軟件協同開發

      采用Rhapsody+Simulink+QT/VC三種類型軟件工具協同使用,完成圖形化界面的軟件建模和開發。此方法中,軟件設計采用MVC設計模型。MVC全名是Model View Controller,是模型(model)、視圖(view)、控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。
      Model(模型)是應用程序中用于處理應用程序數據邏輯的部分,采用UML/Simulink建模,使用Rhapsody/Simulink工具生成代碼。View(視圖)是應用程序中處理數據顯示的部分,采用QT、VC等專業軟件設計界面,這些工具支持很多的控件,并且有很多第三方控件庫支持,采用拖、拽方式設計界面,能自動生成絕大多數代碼。Controller(控制器)是應用程序中處理用戶交互的部分;一般程序員手動編寫代碼。

      6 總結

      隨著時代的進步,基于模型的軟件開發模式成為軟件系統創新的新路徑,為軟件開發率的提高,軟件的可移植性增強以及文檔編制的便利性等方面都進行了創新。
      目前基于模型的軟件開發方法還是嚴重依賴的工具的一種開發方式,商用MBSE設計工具各有優缺點,單個MBES工具不能完全獨立完成一個復雜軟件的開發,而多個MBES工具協同建模、開發、代碼生成,必然存在接口、代碼風格不統一等多種問題,仍需要程序花費大量時間進行手工編碼;而且有些工具不能完全確保生成的代碼的完全正確性,還需要進行軟件測試以及手工更改部分代碼。雖然存在一些不足,但基于模型的軟件開發模式在嵌入式軟件設計、復雜軟件的部分功能設計、軟件原型設計中應用廣泛。

      參考文獻
      [1]趙曉峰. 模型驅動的軟件開發模式研究[J]. 信息技術與信息化. 2015(7)
      [2]郭鵬,李亞輝等. 面向嵌入式軟件開發的UML到Simulink模型轉化方法[J]. 計算機科學, 2016(2):192–198
      [3]傅亮. 基于 SCADE 模型驅動的軟件集成設計[J]. 航空電子技術. 2013(09):26–30
      [4]王西超等. 基于Rhapsody的飛控系統虛擬樣機設計環境[J]. 振動、測試與診斷. 2013(2)
      [5]周彰毅等. 基于SCADE的航空發動機FADEC軟件開發[J]. 測控技術. 2018(1)
      [6]UML百度百科

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 国产午夜福利精品视频| 亚洲男女羞羞无遮挡久久丫 | 国内自拍视频一区二区三区 | 欧美性色欧美A在线图片| 亚洲中文久久久精品无码| 波多野结系列18部无码观看AV| 久久亚洲国产精品成人AV秋霞| 永久免费av网站可以直接看的| 嫩草成人AV影院在线观看| 被黑人伦流澡到高潮HNP动漫| 综合色一色综合久久网| 特级无码毛片免费视频尤物| 中文字幕在线精品国产| 欧美饥渴熟妇高潮喷水| 丰满人妻一区二区三区视频53| 成人做受视频试看60秒| 中文 在线 日韩 亚洲 欧美| 欧美极品色午夜在线视频| 亚洲欧美成人久久一区| 亚洲欧美卡通另类丝袜美腿 | 精品一区二区三区不卡| 国产微拍精品一区二区| 疯狂做受XXXX高潮国产| 中文字幕av无码不卡| 国产精品老熟女露脸视频| 国产超碰无码最新上传| 中文AV无码人妻一区二区三区| 99久久婷婷国产综合精品青草漫画| 97在线视频免费人妻| 日韩欧美不卡一卡二卡3卡四卡2021免费| 亚洲国产AV无码精品无广告| AV区无码字幕中文色| 国产片AV国语在线观看手机版| 狠狠人妻久久久久久综合| 成人特黄A级毛片免费视频| 日本一道一区二区视频| 日日躁夜夜躁狠狠躁超碰97| 亚洲欧洲专线一区| 欧美福利电影A在线播放| 国产偷窥熟女高潮精品视频| 人妻AV中文字幕一区二区三区|