最近讀到一本好書(the art of software architecture design methods and techniques),一直以來對於元模型理解的困惑終於解開了,以下總結一下。
二、總結
要理解元模型首先還是要理解模型,在軟體系統系統領域有,類模型,功能模型,通訊模型,部署模型等等(圖1)。
不同模型可以描繪系統的某個方面的特徵,展現了對於系統不同的關注點。如:物件模型關注系統內部物件及內部物件之間的關係,通訊模型關注系統分布元件及元件之間的通訊關係,功能模型關注系統功能模組及模組之間的關係。
有了對模型的理解再看元模型。元模型定義了描述某一模型的規範,具體來說就是組成模型的元素和元素之間的關係。元模型是相對與模型的概念,離開了模型元模型就沒有了意義。下面來看乙個類模型與其元模型的例子(圖2)。
可以將元模型想象成為某種形式語言,這樣模型就是一篇用該語言描述的文章,其中元模型中的元素就是該語言的詞彙,元素之間的關係就是該語言的語法(圖3)。
每個模型都有一種元模型來解釋它,雖然這種元模型可能不是顯而易見的,而模型與元模型也是相對的,對於元元模型來說元模型就是它的模型。模型與元模型構成了乙個無限迴圈,而越往上抽象層次越高(圖4)。舉乙個例子,隨著抽象層次的提公升,動物、植物在某個抽象層次有一致的元模型(都是有細胞構成的),再往上提公升在某一抽象層次,動物植物礦物都是一致了(都是由分子構成)。
元模型往往用來在某一特定的領域定義乙個基礎的通用的語言,來討論和描述該領域的問題及解決方法。例如交通指示標誌就定義了一種非常簡單的元模型(圖5)。當你在開車時無論在那個國家,只要看到了這些標誌就能明白其所代表的意義,這樣一來這些標誌的組合事實上就是構成了某種意義的表達。
在生活中元模型可以說是無處不在,在對元模型有了一定的理解後就可以動手實踐,定義自己的元模型。為了使筆記變得更通用和規範,使筆記中的各種要素與關係更加明確和清晰提高筆記的可讀性,也為將來筆記可以被第三方的人員更好的理解。我為筆記定義了乙個元模型(圖6)。
元模型是模型的描述語言。一種形象的理解是萬物由分子組成,分子就是比較底層的元模型,由分子又可以組成一些上層的(元模型或稱為模型也好)如動物,植物等等。再給一些更加具體的例子如下。
軟體工程 開發模型軟體工程 開發模型
瀑布模式 螺旋模型 快速原型模式 增量模式 噴泉模型 演化模型 特點 推遲實現的觀點 質量保證 缺點 限制條件 優點 缺點 很難讓使用者確信這種演化方法的結果是可以控制的.建設週期長,而軟體技術發展比較快,所以經常出現軟體開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前使用者需求.核心 在於...
軟體工程模型
這些牆很有趣。剛入獄的時候,你痛恨周圍的高牆 慢慢地,你習慣了生活在其中 最終你會發現自己不得不依靠它而生存。這就叫體制化。肖申克的救贖 瀑布模型 wate ll model 是乙個專案開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,...
軟體工程 開發模型
為了指導軟體開發,可以用不同的方式將軟體生命週期中的所有開發活動組織組織起來從而形成不同的開發模型。瀑布模型嚴格遵守軟體生命週期各階段的固定順序 計畫 分析 設計 程式設計 測試和維護,上一階段完成才能進入到下一階段,整個模型像乙個飛流直下的瀑布一下,如圖所示 特點 缺點 限制條件 優點 缺點 核心...