行業動态

解析軟件架構

2015/8/19 9:17:31

軟件架構定義

      軟件架構是一(yī)個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的連接則明确和相對細緻地描述組件之間的通訊。在實現階段,這些抽象組件被細化爲實際的組件,比如具體(tǐ)某個類或者對象。在面向對象領域中(zhōng),組件之間的連接通常用接口來實現。

      軟件體(tǐ)系結構是構建計算機軟件實踐的基礎。與建築師設定建築項目的設計原則和目标,作爲繪圖員(yuán)畫圖的基礎一(yī)樣,一(yī)個軟件架構師或者系統架構師陳述軟件構架以作爲滿足不同客戶需求的實際系統設計方案的基礎。

架構設計的目标 

正如同軟件本身有其要達到的目标一(yī)樣,架構設計要達到的目标是什麽呢?一(yī)般而言,軟件架構設計要達到如下(xià)的目标:

      可靠性(Reliable)。軟件系統對于用戶的商(shāng)業經營和管理來說極爲重要,因此軟件系統必須非常可靠。

      安全性(Secure)。軟件系統所承擔的交易的商(shāng)業價值極高,系統的安全性非常重要。

      可伸縮性(SCAlable)。軟件必須能夠在用戶的使用率、用戶的數目增加很快的情況下(xià),保持合理的性能。隻有這樣,才能适應用戶的市場擴展得可能性。

      可定制化(CuSTomizable)。同樣的一(yī)套軟件,可以根據客戶群的不同和市場需求的變化進行調整。

      可擴展性(Extensible)。在新技術出現的時候,一(yī)個軟件系統應當允許導入新技術,從而對現有系統進行功能和性能的擴展。

      可維護性(MAIntainable)。軟件系統的維護包括兩方面,一(yī)是排除現有的錯誤,二是将新的軟件需求反映到現有系統中(zhōng)去(qù)。一(yī)個易于維護的系統可以有效地降低技術支持的花費。

      客戶體(tǐ)驗(Customer Experience)。軟件系統必須易于使用。

      市場時機(Time to Market)。軟件用戶要面臨同業競争,軟件提供商(shāng)也要面臨同業競争。以最快的速度争奪市場先機非常重要。

系統架構

      系統的非功能性特征,如可擴展性、可靠性、強壯性、靈活性、性能等。

      系統架構的設計要求架構師具備軟件和硬件的功能和性能的過硬知(zhī)識,這一(yī)工(gōng)作無疑是架構設計工(gōng)作中(zhōng)最爲困難的工(gōng)作。

      此外(wài),從每一(yī)個角度上看,都可以看到架構的兩要素:元件劃分(fēn)和設計決定。

      首先,一(yī)個軟件系統中(zhōng)的元件首先是邏輯元件。這些邏輯元件如何放(fàng)到硬件上,以及這些元件如何爲整個系統的可擴展性、可靠性、強壯性、靈活性、性能等做出貢獻,是非常重要的信息。

      其次,進行軟件設計需要做出的決定中(zhōng),必然會包括邏輯結構、物(wù)理結構,以及它們如何影響到系統的所有非功能性特征。這些決定中(zhōng)會有很多是一(yī)旦作出,就很難更改的。

      一(yī)個基于數據庫的系統架構,有多少個數據表,就會有多少頁的架構設計文檔。比如一(yī)個中(zhōng)等的數據庫應用系統通常含有一(yī)百個左右的數據表,這樣的一(yī)個系統設計通常需要有一(yī)百頁左右的架構設計文檔。

上一(yī)篇:誰是雲的王者?OpenStack與VMware優劣對比 下(xià)一(yī)篇:UPS蓄電池監控技術