軟體架構分解

2021-08-27 15:53:43 字數 1597 閱讀 2025

初稿在7月提交,12月中旬收到ibm的郵件通知說已經發表在ibm developerworks中國**。核心內容在3年前給少部分人ppt分享過,這次發表對內容進行了充實,補充了一些,以便更好理解。

庖丁解牛的故事繪聲繪色地描述了庖丁高超嫻熟的解牛技能。技進於道,庖丁在解牛的實踐中,已經超越了解牛的技能層次,由技術昇華到道或藝術的層次,悟到了解牛之道。任何行業中都有道,就看你能否悟道。軟體架構分解同樣也存在從術到道的超越,哪軟體分解的』解牛『之道是什麼?多維度

多層次分解

模型。不侷限在軟體領域,關於架構的本質,有的認為架構的本質是對系統複雜性的掌控,這個也不完全對,並且這種看法還是偏向於形而下的一種認識。難道相對簡單的系統或事物就沒有架構?即使簡單的系統和事物也存在合適/合理的架構或結構,此時架構對複雜性的掌控何在?此時的架構本質可能體現在結構體各部件間的和諧、平衡和簡潔之美。

在乙個軟體系統中存在多種涉眾,例如系統使用者、投資

者、需求分析師、架構師、開發人員、測試人員、客服人員、運維人員等等。

這裡的涉眾概念是廣義的有層次的,當對乙個架構元素進行架構設計時,例如某子系統,則和該子系統有互動的其他子系統或外部系統也可認為是該子系統的涉眾。對各種約束,其**方(他們通常制定或產生約束)也可以認為是涉眾。

這些涉眾在架構層面有

各自的架構需求(關注點),例如

投資者關注成本和上線時間;

開發設計人員希望系統架構清晰,便於理解,

關注**

重用性、

擴充套件性、可維護性

。架構師更關注系統可伸縮性、可用性、效能

等質量需求

和各種約束(技術約束、法律法規合規性約束等)

。這些需求

和約束必須在架構層面加以考慮,

結構決定功能是自然界的普遍法則

,在軟體架構領域,

這些需求

和約束也必然要在軟體架構上得到體現,從而

使這些涉眾的需求在架構層面得到足夠的滿足。

軟體架構中的各個架構元素(子系統、模組等)是如何識別產生出來的?分解是一種識別架構元素最常用的方法之一。羅馬不是一天建成的,對複雜的軟體系統,其架構設計通常不可能一蹴而就,遑論架構演化。對複雜的軟體系統進行架構分解,需要有經過驗證的方**來指導,這篇文章提出了乙個架構分解的過程框架,並進一步闡述了如何進行架構分解以及迭代和演化,從而逐步充實/豐富軟體架構。

軟體架構設計除了分解還有組合(整合),分解主要是自上而下的,而組合是自下而上的。在實際的架構設計過程中,它們通常是互相交融相互結合進行的。

科學最終會上公升為哲學,哲學的終極就是道,

在軟體架構形而下的定義之外,上公升到更高的抽象層次,對架構(不止侷限於軟體架構)形而上的本質也做了一些**。

具體內容詳見ibm developerworks上的軟體架構分解鏈結

。ibm已將該文作為新興技術大學的學習課程,見ibm新興技術大學課程鏈結。infoq**上也有相應的介紹,見鏈結

軟體架構 微服務架構

我們可以將微服務架構 microservices architecture 理解為 soa 的公升級。基於以下相同點 當問到微服務架構與soa的區別,我們能找到以下回答 微服務其核心思想是在應用開發領域,使用一系列微小服務來實現單個應用的方式途徑,或者說微服務的目的是有效的拆分應用,實現敏捷開發和部...

軟體架構 事件驅動架構

事件 event 就是狀態的顯著變化,比如說前面提到的客戶下單被執行。從 來分,事件可以分為系統內部事件和外部事件。從型別來分,可以分為業務事件和系統事件。事件驅動架構 event driven architecture,eda 乙個事件驅動框架 eda 定義了乙個設計和實現乙個應用系統的方法學,在...

家政軟體架構

家政管理系統 一.人力資源管理 a 輸送單位資訊 b 輸送計畫 c 聯絡日誌 二.員工資料管理 a 新增員工資料 b 員工資料附件 c 員工資料管理 d 請假員工管理 e 流失員工返回 三.員工培訓管理 a 培訓課程管理 b 上崗證發放 四.市場銷售管理 a 每日可選服務員 b 新增潛在客戶資料 c...