行業動态

解析軟件架構

2015/8/19 9:17:31

軟件架構定義

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

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

架構設計的目标 

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

      可(kě)靠性(Reliable)。軟件系統對于用(yòng)戶的商(shāng)業經營和管理(lǐ)來說極為(wèi)重要,因此軟件系統必須非常可(kě)靠。

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

      可(kě)伸縮性(SCAlable)。軟件必須能(néng)夠在用(yòng)戶的使用(yòng)率、用(yòng)戶的數目增加很(hěn)快的情況下,保持合理(lǐ)的性能(néng)。隻有(yǒu)這樣,才能(néng)适應用(yòng)戶的市場擴展得可(kě)能(néng)性。

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

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

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

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

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

系統架構

      系統的非功能(néng)性特征,如可(kě)擴展性、可(kě)靠性、強壯性、靈活性、性能(néng)等。

      系統架構的設計要求架構師具(jù)備軟件和硬件的功能(néng)和性能(néng)的過硬知識,這一工(gōng)作(zuò)無疑是架構設計工(gōng)作(zuò)中(zhōng)最為(wèi)困難的工(gōng)作(zuò)。

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

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

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

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

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