行業動态

解析軟件架構

2015/8/19 9:17:31

軟件架構定義

      軟件架構是(yes)一(one)個(indivual)系統的(of)草圖。軟件架構描述的(of)對象是(yes)直接構成系統的(of)抽象組件。各個(indivual)組件之間的(of)連接則明确和(and)相對細緻地(land)描述組件之間的(of)通訊。在(exist)實現階段,這(this)些抽象組件被細化爲(for)實際的(of)組件,比如具體某個(indivual)類或者對象。在(exist)面向對象領域中,組件之間的(of)連接通常用(use)接口來(Come)實現。

      軟件體系結構是(yes)構建計算機軟件實踐的(of)基礎。與建築師設定建築項目的(of)設計原則和(and)目标,作(do)爲(for)繪圖員畫圖的(of)基礎一(one)樣,一(one)個(indivual)軟件架構師或者系統架構師陳述軟件構架以(by)作(do)爲(for)滿足不(No)同客戶需求的(of)實際系統設計方案的(of)基礎。

架構設計的(of)目标 

正如同軟件本身有其要(want)達到(arrive)的(of)目标一(one)樣,架構設計要(want)達到(arrive)的(of)目标是(yes)什麽呢?一(one)般而言,軟件架構設計要(want)達到(arrive)如下的(of)目标:

      可靠性(Reliable)。軟件系統對于(At)用(use)戶的(of)商業經營和(and)管理來(Come)說極爲(for)重要(want),因此軟件系統必須非常可靠。

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

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

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

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

      可維護性(MAIntainable)。軟件系統的(of)維護包括兩方面,一(one)是(yes)排除現有的(of)錯誤,二是(yes)将新的(of)軟件需求反映到(arrive)現有系統中去。一(one)個(indivual)易于(At)維護的(of)系統可以(by)有效地(land)降低技術支持的(of)花費。

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

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

系統架構

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

      系統架構的(of)設計要(want)求架構師具備軟件和(and)硬件的(of)功能和(and)性能的(of)過硬知識,這(this)一(one)工作(do)無疑是(yes)架構設計工作(do)中最爲(for)困難的(of)工作(do)。

      此外,從每一(one)個(indivual)角度上(superior)看,都可以(by)看到(arrive)架構的(of)兩要(want)素:元件劃分和(and)設計決定。

      首先,一(one)個(indivual)軟件系統中的(of)元件首先是(yes)邏輯元件。這(this)些邏輯元件如何放到(arrive)硬件上(superior),以(by)及這(this)些元件如何爲(for)整個(indivual)系統的(of)可擴展性、可靠性、強壯性、靈活性、性能等做出(out)貢獻,是(yes)非常重要(want)的(of)信息。

      其次,進行軟件設計需要(want)做出(out)的(of)決定中,必然會包括邏輯結構、物理結構,以(by)及它們(them)如何影響到(arrive)系統的(of)所有非功能性特征。這(this)些決定中會有很多是(yes)一(one)旦作(do)出(out),就很難更改的(of)。

      一(one)個(indivual)基于(At)數據庫的(of)系統架構,有多少個(indivual)數據表,就會有多少頁的(of)架構設計文檔。比如一(one)個(indivual)中等的(of)數據庫應用(use)系統通常含有一(one)百個(indivual)左右的(of)數據表,這(this)樣的(of)一(one)個(indivual)系統設計通常需要(want)有一(one)百頁左右的(of)架構設計文檔。

上(superior)一(one)篇:誰是(yes)雲的(of)王者?OpenStack與VMware優劣對比 下一(one)篇:UPS蓄電池監控技術