1. 程式人生 > >模型驅動復習整理

模型驅動復習整理

程序 ebr -1 三層 得到 條件 重復 什麽 cti

1.模型驅動相關名詞

  MDPM (Model driving programming methodology) 模型驅動編程方法

  MDA(Model deiven Architecture)模型驅動體系結構  

  OMG (Object Management Group) 對象管理組織

  UML (Unified Modeling Language) 統一建模語言

  PIM (Platform Independent Model) 平臺獨立模型

  ACSE (Abstract conceptual structure)抽象概念結構圖

  PSM (Platform Specific Model)平臺相關模型

  ALSD (Abstract logical structure)抽象邏輯結構圖

  AISD (Abstract implementation diagram)抽象實現結構圖

2.some concept   

技術分享

  1)MDA(Model deiven Architecture)模型驅動體系結構

    MDA是一種新的編程規範,是開發應用程序的方法,核心思想是抽象出PIM與平臺無關模  型,然後針對不同實現技術制定多個映射即PSM平臺相關模型,再將PSM轉換成為代碼。   

  2)Model

    MDA對Model下的定義是廣泛的:源代碼是一個模型,基於UML統一建模語言也是一個模型

  3)PIM與PSM

    pim是從技術細節中抽象抽象結構和功能的形式化規範,通過UML來表示,它與UML都是與平臺無關的。而psm是描述pim在特定平臺上如何實現。

    pim中包含ACSE抽象概念結構圖

    psm中包含ALSD抽象邏輯結構圖與AISD抽象實現結構圖

  4)MDA模型驅動體系結構 的 架構(只介紹部分)

技術分享

      4.1UML (Unified Modeling Language) 統一建模語言

        該語言包含內容很多有許多種圖,許多種模型具體可見 :統一建模語言百科 ,

        UML礎: 統一建模語言簡介 (有詳細各種圖的事例)

      4.2核心目標平臺:XML,JAVA,.net等等

      4.3普及服務:如圖略

      4.4垂直領域:如圖略

  

  5)PIM平臺獨立模型 到 PS平臺相關模型 的映射

    它們是MDA定義的兩種主要模型類型,通過映射規則可以互相轉換。

    所有基於MDA開發的object都是從用 UML統一建模語言 創建一個PIM開始的,PIM可以表達應用系統的 設計細節、商業邏輯、數據需求。因為不依賴於平臺所以少了許多顧慮,很是方便。

    PIM設計完成後就要選擇一個平臺,然後轉換成對應平臺的PSM。

    OMG定義MDA的文檔中列出了四種方法將PIM轉換為PSM

      ?手工轉換

      ?用已建立模式來進行轉換

      ?通過一些已建立的模式定義一個算法,然後用這個算法處理PIM得到PSM的主要框架,最後在手工的添加內容。

      ?使用應用上述算法的工具來自動生成PSM

  6)基本概念的關系模型   

  技術分享

    6.1動作action

      ?動作是程序行為的基本單位。

      ?動作就是將一組輸入轉化為一組輸出並作一些事情。輸入與輸出都可能為空

      ?動作有多種類型,每種類型都有對應的規則 。     

    6.2數據流data flow

      ?數據流鏈可以連接許多動作,比如:一個動作的output 是另一個動作的input。

      ?它可以表示一組動作的有序進行

    6.3控制流control flow

      ?控制流表示兩個動作的順序依賴關系。比如:後繼動作只有在前驅動作完成後才能執行。

      ?當兩個動作沒有數據流的次序約束時使用。

      

    6.4過程procedure

      ?過程是一組動作的集合,比如c++中的類和傳統c中的函數。

      ?過程可有多個參數和結構。

      ?過程藍圖就是將過程可視化。

  7)抽象概念結構圖(ACSD)

 

      ?基本集合Tcn = {+,*,o,?,!,:,>,e,&,#}

      ?自然語言集合Snn={s|s∈自然語言語句}

技術分享

      ?ACSD是樹形結構的。

      ?+ 順序動作後有一個描述,然後依次執行它的子節點

      ?o 單項選擇動作後有一個行為描述,當條件滿足時順序執行它的子節點,概念層只需      概述行為,而不需給出具體條件。

      ??多項選擇後也有一個行為描述 ,會執行它的若幹子節點中的一個

      ?* 循環動作後也有一個行為描述,無需給出循環條件,它的子節點滿足條件時將重復      執行。

      ?e 異常處理動作

      ?:基本動作,定義賦值。

      ?!模塊動作

      ?>跳轉動作 用於表示無條件和有條件跳轉。

      ?#未定義動作

  技術分享

     ?實例

      技術分享

  8)抽象邏輯結構圖(ALSD) (只給出java平臺相關)

    ?JAVA抽象節點類型

技術分享

  技術分享

    ?實例

  技術分享

  9)抽象實現結構圖(AISD)

    ?AISD實例    

    技術分享

    ?有源代碼的所有細節

  10)為什麽分層描述?

    10.1概念層

      ?目標

        描述求解問題的思想和概要解決方案

      ?要求

        抽象,可視,可理解,有結構,避免細節,獨立於現實

      ?設置的好處

        將解題思想與程序代碼隔開,可以拋開許多實現問題去思考,能很好的表達解題思      路,便於截圖思路的重用。可跨平臺移植。還易於他人理解。

      

    10.2邏輯層

      ?目標

        詳細描述求解算法的控制結構,達到徹底分解

      ?要求

        可理解,邏輯構造的利於實現,容易變為實現層,避免數據流表示細節,控制流要       與實現相關。

      ?設置的好處

        利於讓不同人發揮長處(xuan),利於管理(xue)

    10.3實現層

      ?目標

        過程實現的精確描述

      ?要求

        精確,嚴格,可視化,控制流數據流都與實現相關,能直接生成代碼。

      ?設置好處

        過程實現表示的可視化,數據流表示細節的局部化,更適合人的閱讀與使用。

    10.3三層的工作性質

      概念層屬於設計與分析。

      邏輯層既屬於設計,也屬於構造。  

      實現層屬於構造工作

    10.4程序獨立性原理

      一是指,解決問題的思路與目標平臺的 控制流 數據流 的實現細節 相互獨立。

      二是指,目標平臺語言的邏輯控制結構 與 它的數據流實現表示細節相互獨立。

  11)過程藍圖表示法總結

    技術分享

    11.1過程藍圖的目的

      把程序的靜態結構進行可視化描述。制造獨立性,以便更好的理解正在構造的程序,提    供簡化和重用的機會

    11.2比較

     技術分享

3.正向工程實例

4.逆向工程實例

模型驅動復習整理