軟體架構和軟體框架 用例模型設計應用 1

2021-04-12 18:06:58 字數 2183 閱讀 7353

軟體架構和軟體框架-用例模型設計應用(1)

來自:網上

軟體架構是一種思想,乙個系統藍圖,對軟體結構組成的規劃和職責設定。而軟體框架是乙個實現,乙個半成品,是針對乙個特定問題的解決方案和輔助工具。

這一篇講軟體架構和軟體框架在uml設計過程中所起的作用。本系列文章不是專門討論軟體架構和軟體框架的,所以不會深入講怎麼做軟體架構和軟體框架。另乙個原因是筆者尚無這個自信能夠在這裡班門弄斧講軟體架構。之所以要講,是因為在設計過程中,設計類必然會受到軟體架構和框架的約束。從分析類到設計類,軟體架構和框架是不得不考慮的乙個重要因素。

軟體架構和軟體框架是一回事兒嗎?相信有相當一部分人搞不清楚這個問題,也會有相當一部分人認為是一回事兒,只是不同的叫法而已。架構的英文原文是architecture,而框架呢,則是framwork。顯然這是兩個完全不同的詞兒。從技術上講,it有乙個職業是架構師,架構師代表了軟體技術人員最高的職業頂峰,卻從沒有聽說過有軟體框架師的。所以肯定的說,軟體架構和軟體框架是兩回事兒。

那麼什麼是軟體架構,什麼又是軟體框架呢?軟體架構是一種思想,乙個系統藍圖,對軟體結構組成的規劃和職責設定。而軟體框架是乙個實現,乙個半成品,是針對乙個特定問題的解決方案和輔助工具。因此,架構是乙個邏輯的構成,而框架是乙個可用的半成品。比如說,j2ee規範描述了一系列邏輯部件,描述了這些部件的職責和它們的規範,約定了這些部件之間互動的介面和協議、標準,規劃出乙個如何利用這些邏輯部件來實現乙個應用系統的藍圖。j2ee是乙個軟體架構。而根據這一設想,各產商開發出了各自的產品,包括開發工具和應用容器,開發者利用這些工具和容器就能方便的開發出符合j2ee規範的應用程式。這些工具和容器就是軟體框架。再比如,mvc是乙個設計模式,它將應用程式劃分為實體,控制和檢視三個邏輯部件,我們可以說它是乙個軟體架構。而strus,jsf,webwork等分別以自己的方式實現了這一架構,提供了乙個半成品,幫助開發人員迅速地開發乙個符合mvc架構的應用程式,我們說strus,jsf,webwork是軟體框架。

在乙個商業軟體的開發過程中,如何去設定軟體的架構和框架,在設計過程中,軟體架構和框架又是如何影響設計的呢?

軟體架構在乙個商業系統的開發過程中,是由軟體架構師這一角色來完成的。架構師要從很高的角度,根據應用環境,使用者需求,公司技術發展要求等等來對這乙個系統作出邏輯的劃分。例如是集中式還是分布式?採用什麼中介軟體?採用何種技術體系?應用什麼標準?符合什麼規範?軟體的層次是什麼?傳輸協議是什麼?與公司其它產品如何銜接?如何使公司產生核心競爭力?可見乙個架構師對乙個公司的重要性。

可惜架構師這一角色在很大程度上被誤解,架構師這一稱謂也被濫用。知道幾個設計模式,用過幾個框架,有過幾個中介軟體或應用伺服器的經歷,就號稱是架構師了。也難怪有人說架構師己死。掌握以上技能的,在我看來,只是經驗豐富的設計師而已。因為他能做的,只是應用現成的技術。架構師要做的,是發明j2ee規範,是創造soa架構,是構架出領先於市場的技術產品,是領導軟體技術潮流,是引導軟體技術發展趨勢。這種差別,就如同科學家和工程師的差別。

因此,在一般的中小企業裡,如果沒有領先於業界的產品,沒有引導了市場的思想,沒有稱霸一方的應用領域,就不需要架構師這個角色,也產生不了架構師。有幾個高階設計師,能緊緊跟住技術潮流,把先進技術玩兒轉並應用到自己的產品裡,也就足夠了。也因此,在一般的商業系統開發過程中,軟體架構這乙個領域,最主要的工作是選擇適合自己的現成的軟體架構。換句話說是用好現有的技術。比如,決定採用j2ee架構。再能做的一點,是劃分軟體邏輯層次,決定使用的標準和規範。

作為例子,乙個軟體架構和商業系統開發過程中可以用這樣的形式來表述:

乙個軟體架構的表述例子:

此主題相關如下:

此主題相關如下:

這個例子只給出了靜態圖。為了讓開發人沒明白這個設計,還應當給出互動圖。例如,如果應用程式增加乙個vo,business層怎麼呼叫entitycontrol,entitycontrol如何分解vo,怎麼訪問relationship,怎麼處理po,怎麼訪問dbcontrol層。也就是這些框架基類如何互動來完成業務要求。這個圖筆者就不再繪製了。建議有興趣的讀者設計自己的框架,並自己繪製這些互動圖。自己動手認識會更深。

架構有了,框架也有了,對於設計類來說,架構和框架形成了規範,設計類必須遵守這些規範,並了解如何使用框架的介面。當然,這個架構和框架僅僅是乙個例子,現實中的架構和框架可不僅僅這一點,考慮的東西會更多,比如日誌如何處理,事務如何處理,異常如何處理。每乙個可能又都是乙個框架。另外,如果選擇了某乙個成熟產商的架構,例如websphere,weblogic,可能就不需要自己來設計架構和框架了,這些產品已經提供了。

軟體測試設計之MFQ模型用例設計覆蓋模型

建模完成後,需要使用測試用例來覆蓋這些模型,在以前的寫用例過程中用例和資料是同時完成的,在mfq模型中,將測試用例設計分成兩個步驟 一是設計基礎測試用例來覆蓋模型 二是針對每個測試用例更多的測試資料產生最後可執行的測試用例。設計基礎用例的目的是更好的覆蓋模型,當然不同的模型可以通過不同的測試覆蓋方法...

軟體架構, 軟體框架,設計模式的區別

軟體的架構是系統的乙個草圖 闡述了各個元件之間的通訊 劃分層次 一旦系統開始詳細設計 架構藍圖就很難甚至無法更改 是由軟體架構師從無到有設計出來的。比如說,多台機器負載均衡,使用者訪問多個不同業務的前端專案,前端專案通過http介面訪問伺服器前端專案,伺服器前端專案通過介面訪問伺服器後端專案,伺服器...

3 軟體架構設計 子系統,框架,架構

要分解乙個系統,首先我們要有關注點,下面給出3個關注點 通過職責劃分 例如我們可以將系統劃分為展現層 負責展示 業務層 負責業務處理 資料層 負責資料處理 通過通用性劃分 可以分為特定應用部分,領域通用部分,技術通用部分,框架屬於領域通用部分 通過粒度劃分 可以分為子系統,模組,類 乙個複雜的系統 ...