重新定義軟件架構

什麼是軟件架構?

軟件架構是整體結構與組件的抽象描述,用於指導大型項目在各個方面的設計;

分析圖解:

1、一個架構最重要的是相關方,相關方包括客戶、老闆、開發人員、測試人員、運維人員,和項目有關的人都可以稱之爲相關方;

2、相關方的關注點產生架構需求,整個架構基於關注點做分析;

3、整個過程是爲相關方做系統,系統提供的能力應該滿足相關方;

4、架構是系統的技術支持和實現,所有系統都是由架構支撐;

5、架構升級需要架構文檔的支撐,構架文檔主要對相關方輸出,作爲架構的標準支撐;

6、架構文檔需要架構視圖的組成,包括4+1視圖模型,整合關注點;

7、架構主要分爲兩個要素,架構元素和元素之間的關鍵,元素包含模塊、組件、包、類等;關係包含實現、集成、聚合、關聯等;元素建關係又分爲靜態關係和動態關係;

重新定義架構師

架構師是一個人的職稱,是做系統和對系統複製的那個人;架構師不是一個職位而是一個角色,任何人都有可能是公司的架構師,但是職位不一定是負責的那個人。

如何提升做架構師的能力?

1、需要有對應的架構方法去支撐你所做的設計

2、架構模式需要視情況而定,不能爲了做架構而做架構,根據公司所承受的能力和業務設計框架,沒有最好的架構框架,只有最適合公司的框架;

3、做架構師一定要有足夠的實踐經驗,有真實場景;

4、要學會畫圖、總結、溝通的能力;

如果去做架構

軟件架構是由元素、形式、關係約束組成,單一的視圖無法表達整體架構。

4+1架構視圖

邏輯視圖(Logical View):設計的對象模型;

過程視圖(Process View):捕捉設計的併發和同步特徵

物理視圖(Physical View):描述軟件到硬件的映射,反應部署特徵;

開發視圖(Development View):描述在開發環境中軟件的靜態組織結構;

場景視圖(scenarios):描述用例場景;

邏輯視圖

相關方:客戶、用戶、開發組織管理者;

元素構成:系統、子系統、功能模塊、子功能模塊、接口

用途:開發組織劃分,成本進度評估的作用

開發視圖

相關方:開發測試人員

元素構成:描述系統的層、分區、包、框架、系統通用服務、業務通用服務、類和接口、系統平臺和相關基礎框架;

用途:知道開發組織設計和開發實現

物理視圖

相關方:系統集成商、系統運維人員;

元素構成:系統邏輯組件到物理節點的物理部署和節點之間的物理網絡配置;

用途:物理節點以及節點通訊功能;

過程視圖

相關方:性能優化、開發相關人員;

元素構成:系統進程、線程以及處理隊列等;

用途:協助解決性能優化和系統瓶頸點;

場景視圖

相關方:用戶、設計和開發人員。

用途:闡明架構的廣度或者衆多架構元素運行的方式;

如何建立模型

1、模型是整個系統抽象出來的一個概念,解決方式都是基於對模型的理解和認識;

2、具體的模型是爲了解決某一個領域的問題,問題的過程就是就是問題映射到模型的一個過程;

3、建立模型的過程爲:先確定領域問題,通過分析和抽取的方式構造一個概念模型,從這個模型裏面提取架構需求,最後提供解決方案;

4、建造模型的成本比時間開發的成本少很多;

5、便於系統間人員共同和文檔資產積累;

6、在討論場景比較多或者是開會的場景交流使用;

7、可通過白板、繪圖工具按照不同場景畫不同類型的圖;

UML建模

UML全稱Unifiled Modeling Language,統一建模語言,成爲架構溝通的一種普片認可的語言形式,可以描述某個領域內的特定問題、和設計階段的架構或者軟件實現。

UML 圖分類

靜態圖:通過描述類、對象和數據結構以及他們之間存在的關係,來描述軟件要素中不變的邏輯;常見的靜態圖有:

用例圖(Use Case Diagrams)、對象圖(Object Diagrams)、類圖(Calss Diagrams)、組件圖(Component Diagrams)、包圖(Package Diagrams)、部署圖(Deployment Diagrams)

動態圖:通過描繪執行流程或者實體狀態變化的方式,來展示軟件實體在執行過程中的變換過程,常見的動態圖有:協作圖(Collaboration Diagrams)、序列圖(Sequence Diagrams)、活動圖(Activity Diagrams)、狀態圖(State Diagrams);

畫圖的通用模型

通用模型元素:類、對象、節點、包和組件

通用關係:

關聯:連接模型元素及鏈接實例;

依賴:表示一個元素以某種方式依賴另一種元素。

泛化:表示一般與特殊的關係;

聚合:表示整體與部分的關係;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章