軟件架構的基礎知識

一、軟件架構定義

軟件架構(SoftWare Architectur)定義較多,簡單來說SA可以看作是一系列有關軟件整體結構與組成的抽象描述和建模,用于說明軟件需求,為軟件開發的全過程提供指導,為參與軟件開發的各個團隊和組織提供一致的溝通語言,貫穿于軟件生命周期的全過程。

二、軟件架構種類

軟件架構按照種類可以分為邏輯架構、物理架構、系統架構。邏輯架構描述軟件的功能組成,物理架構描述軟件的各個功能組件如何在現實網絡中的硬件上進行部署,系統架構描述性能、可靠性、可擴展性等非功能特征。

三、如何描述軟件架構

使用圖形方式最能直觀表達各種思想,軟件架構也不例外。用來表達軟件架構的圖形叫視圖,包括業務用例視圖、邏輯視圖、實施視圖、進程視圖、配置視圖等,使用圖形方式對軟件架構進行描述的語言中最為常用的是UML。

雖然圖形表示簡潔、易懂,且廣泛使用,但以矩形框與線段等圖形為基礎的表達方法和方式,在術語和表達語義上存在著不規范和不準確的缺點。

架構描述語言ADL(Architecture Description Language)是一種形式化語言,在底層語義模型支持下,為軟件架構提供了語法和語義框架,ADL還在研究和發展過程中。

四、軟件架構模式

架構模式也叫架構風格,是描述某一特定領域中軟件的結構和特征,提供特定領域內一種高層的軟件復用模版,通過軟件體系級的復用提高軟件開發效率,降低軟件開發風險。

MVC(Model View Controler)設計模式就是架構模式中的一種,其它還有面向對象風格、SOA風格等,各種風格之間還會交叉影響。

五、軟件框架

軟件框架是半成品,是針對特定領域中軟件結構,從代碼層面提取共性的部分,提供底層代碼級的復用。

從軟件框架和軟件架構模式的定義可以看出,軟件具有不同的架構模式,同一架構模式也可以由不同的框架來實現。SSH(Struts+Spring+Hibernate)就是實現MVC模式的一種輕量級軟件框架。

六、微服務架構

在微服務概念提出后,SOA出現了新的解決方案,服務的構建也不再完全依靠ESB來完成。特別在Docker技術逐漸普及之后,輕量級微服務架構也在更多被運用在企業系統的構建中。

微服務也是一種軟件架構模式,當然也有支持微服務開發的框架,例如SpringBoot就可以作為微服務開發框架。在此框架中可以用SpringBoot開發服務運行在Tomcat上,并用Docker進行封裝;使用Jenkins進行服務部署;使用Zookeeper進行服務注冊和發現;使用Node.js作為服務網關調用服務。 ? ?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,124評論 25 708
  • 轉載本文需注明出處:微信公眾號EAWorld,違者必究。 微服務架構現在是談到企業應用架構時必聊的話題,微服務之所...
    72a1f772fe47閱讀 3,484評論 0 38
  • 微服務最近非常流行,各大互聯網公司紛紛采用微服務架構體系,微服務架構模式正在為敏捷部署以及復雜企業應用實施提供巨大...
    Sting閱讀 9,111評論 0 57
  • 一、微服務將變得輕量級 架構需要由人去設計,這些人被稱為架構師。或許很多人并未授予架構師的頭銜,但自己卻從事著架構...
    justmilkrain閱讀 5,446評論 10 109
  • 天下之大,你喜歡的人太多,可惜只能和其中一個喜歡的人成家。甚至后來的生活中還會遇到更喜歡的,甚至還想一起生活。這就...
    超姐666閱讀 344評論 0 1