軟件架構(gòu)理論與實踐》 —3.5.5 第5層:未來模型">《軟件架構(gòu)理論與實踐》 —3.5.5 第5層:未來模型
1012
2025-04-01
第3章 軟件架構(gòu)模型
軟件架構(gòu)模型為軟件架構(gòu)提供了一種抽象、可視化或形式化的表示,為軟件架構(gòu)師、需求分析人員、軟件工程師、潛在用戶等提供了一個交流平臺,并起到了從軟件需求分析文檔到軟件詳細設計和實現(xiàn)的橋梁作用。本章詳細討論軟件架構(gòu)的各種建模方法,包括各種圖形可視化建模方法、UML建模方法、利用形式化語言的建模方法、數(shù)學建模方法和文本建模方法等。但是,至今沒有一種建模方法能夠滿足軟件架構(gòu)建模的所有需求,所以本章討論軟件架構(gòu)建模,旨在強調(diào)軟件架構(gòu)建模的意義和重要性,而統(tǒng)一的、能被業(yè)界普遍接受的軟件架構(gòu)建模方法仍然處于研究探索過程中。由于軟件架構(gòu)建模方法太多,無法將每種方法都展開介紹,本章只是向讀者展現(xiàn)一個軟件架構(gòu)建模的路線圖,有需要的讀者可根據(jù)路線圖尋找相關的建模方法以深入學習。另外,業(yè)界通常還會采用一些非常簡單的方法,如盒線圖方法、草圖法等,由于它們的原理比較簡單,而且沒有系統(tǒng)和統(tǒng)一的語義基礎,本章中就不一一介紹了。
3.1 引言
軟件架構(gòu)是一個系統(tǒng)概念,軟件架構(gòu)模型是捕捉部分或全部架構(gòu)設計決策的人工產(chǎn)物,通過一個或多個角度對軟件架構(gòu)的各個側(cè)面進行展示和說明,使得軟件架構(gòu)的不同利益相關者之間能夠有效交流。軟件架構(gòu)建模是對架構(gòu)設計決策的具象化和文檔化[1]。
軟件架構(gòu)建模的意義在于,它能夠?qū)④浖軜?gòu)的某些關鍵或關注的方面剝離出來,使用統(tǒng)一的圖形、文檔和數(shù)據(jù)進行描述,達到直觀便捷地理解、分析和交流的目的。
以時間為序,軟件架構(gòu)建模先后出現(xiàn)了五類方法:
1)基于非規(guī)范的圖形表示的建模方法:在沒有標準化架構(gòu)建模的時候,人們通過線和框等結(jié)構(gòu)來描述架構(gòu),具有較大的隨意性,雖然便于記憶、富有啟發(fā)性,但是不夠精確。此類方法與架構(gòu)利益相關者的經(jīng)驗習慣有關。在此過程中,還出現(xiàn)了一種基于模塊連接語言的方法,該方法采用若干程序設計語言的模塊的連接方式描述架構(gòu),直接與編程相關,易于理解和實現(xiàn),但是抽象程度不夠,難以處理高層次的架構(gòu)元素。此類方法始于1981年[2],止于1994年[3],現(xiàn)已基本過時,本書不再做詳細介紹。
2)基于UML的建模方法:UML是較為流行的軟件建模方式,同時能夠較為直接地應用到架構(gòu)建模之中,特別是UML 2.0增加的組件描述方便了架構(gòu)的圖形建模[4]。UML建模主要屬于可視化方法,但是也有研究利用其擴展機制進行形式化架構(gòu)建模,后文中會詳細討論。
3)基于形式化的建模方法:與圖形可視化方法不同,此類方法的重點不在于架構(gòu)模型展示的直觀性,而在于精確性,通過形式語言(包括OCL模型)對架構(gòu)模型進行描述,具備嚴格的語義規(guī)范和一定的推理能力。
4)基于UML形式化的方法:該方法通過將UML的一些架構(gòu)描述結(jié)構(gòu)形式化處理,來提高UML描述軟件架構(gòu)的能力,包括正確性、一致性驗證能力,克服了UML在描述軟件架構(gòu)方面的不足。
5)其他建模方法:在軟件架構(gòu)建模實踐中,還出現(xiàn)了一些類似文本語言建模的方法,以便提高軟件架構(gòu)描述的通用性、易理解性和易變性,并進一步適應軟件架構(gòu)師的發(fā)散思維。
UML
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。