什么是系統(tǒng)架構(gòu)軟件架構(gòu)的起源軟件中的系統(tǒng)架構(gòu),其實是從建筑行業(yè)中的架構(gòu)設(shè)計參考過來的,,但是軟件中的系統(tǒng)架構(gòu)又有很大的特殊性,。特殊性表現(xiàn)在,軟件的架構(gòu)可以在設(shè)計完畢后,,項目進(jìn)行的過程中進(jìn)行相應(yīng)的變化,,或者可以推到重來,但是建筑行業(yè)中卻不能這么做,。軟件行業(yè)有著很大的變化性,。 什么是架構(gòu)架構(gòu)總體來說就是實現(xiàn)需求功能的較復(fù)雜組件的設(shè)計與不能精簡的較復(fù)雜組件。ISO與IEEE對系統(tǒng)架構(gòu)的定義:一致認(rèn)為軟件密集型系統(tǒng)的架構(gòu)分為主要模塊,,組織模塊與支撐模塊3部分,。 系統(tǒng)架構(gòu)的目標(biāo)
功能:功能上必須滿足需求。 可靠性:系統(tǒng)系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,,因此軟件系統(tǒng)必須非??煽俊?/p> 可用性:系統(tǒng)必須可用,。 可維護(hù)性:系統(tǒng)的維護(hù)包括兩方面,,一是排除現(xiàn)有的錯誤,,二是將新的需求反映到現(xiàn)有系統(tǒng)中去。一個易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費 安全性:系統(tǒng)所承擔(dān)的交易的商業(yè)價值極高,,系統(tǒng)的安全性非常重要,。 可擴(kuò)展性:必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,,保持合理的性能,。只有這樣,才能適應(yīng)用戶的市場擴(kuò)展得可能性,。 系統(tǒng)架構(gòu)師的職責(zé)系統(tǒng)分析員通過與項目干系人的溝通或者是與客戶的溝通整理出來功能需求,,形成需求文檔,然后將文檔交付給系統(tǒng)架構(gòu)師,,系統(tǒng)架構(gòu)師負(fù)責(zé)將分析員整理的需求轉(zhuǎn)換為詳細(xì)設(shè)計說明書,。這個詳細(xì)設(shè)計書作為與開發(fā)人員溝通的主要工具。 系統(tǒng)架構(gòu)師可以通過使用UML建模工具,在詳細(xì)設(shè)計說明書中書寫每個組件的設(shè)計用力圖或者流程圖,,或者是通過IBM的relations Rose工具來實現(xiàn)相應(yīng)的建模,。 系統(tǒng)架構(gòu)師在設(shè)計時遵循的原則是: 1、低耦合:就是要求不同的組建之間的耦合度最低,。每個組建的功能應(yīng)盡量的分離,,他們直接的調(diào)用關(guān)系進(jìn)行把對象的引用轉(zhuǎn)換為接口的引用。 2,、高內(nèi)聚:功能相像的功能放在一個組件中,,對外提供接口調(diào)用的方式來整理。 系統(tǒng)架構(gòu)師作為需求分析師與軟件開發(fā)工程師之間的核心關(guān)鍵,。好的系統(tǒng)架構(gòu)不但可以滿足軟件的功能需求有更好的擴(kuò)展性,,可維護(hù)性,安全性,,可靠性的等等,。 系統(tǒng)架構(gòu)師必須參與到開發(fā)的全過程。 系統(tǒng)的需求一般來說,。系統(tǒng)的需求分為:功能性需求與非功能性需求,。 系統(tǒng)架構(gòu)設(shè)計影響的原因系統(tǒng)架構(gòu)師在進(jìn)行系統(tǒng)設(shè)計的時候一般采用的方式是通過邏輯分層將功能相像的模塊放在單獨的層中,然后通過分層來實現(xiàn)系統(tǒng)的功能分離與低耦合,、高內(nèi)聚的原則,。 系統(tǒng)架構(gòu)的設(shè)計與系統(tǒng)采用的開發(fā)方式有關(guān),軟件的開發(fā)方式可簡單分為:傳統(tǒng)方式與敏捷開發(fā),。 傳統(tǒng)方式:大家熟知的瀑布型模式,,軟件的過程嚴(yán)格的按照上級步驟執(zhí)行完畢后開始下一步驟。 敏捷開發(fā):則是遞增需求的迭代開發(fā),。每個階段都會新增一個需求,,完成這個需求之后變發(fā)布軟件,,雖然軟件的功能不全,但是至少是可以使用的,。 系統(tǒng)架構(gòu)師的設(shè)計方案,,最后由項目干系人進(jìn)行確定,確定采用哪個設(shè)計方案,,當(dāng)然最后也可能不采用,,造成這樣的結(jié)果,可能的原因是非功能性需求的原因,。非功能性的需求:例如與之前系統(tǒng)的繼承,,硬件設(shè)備,網(wǎng)絡(luò)環(huán)境等等,。
系統(tǒng)架構(gòu)的設(shè)計方案系統(tǒng)架構(gòu)可以簡單的分為隱式架構(gòu)與顯示架構(gòu),,例如:蓋一個小狗的棚子,有經(jīng)驗的架構(gòu)師在自己的腦海中就已經(jīng)有了如何去架構(gòu),。這就是隱式架構(gòu)。有些情況下:系統(tǒng)的功能比較復(fù)雜和細(xì)化,,我們不可能在腦海中就能想出來如何架構(gòu),,需要通過做demo或者模塊化的劃分來設(shè)計,這就是顯示架構(gòu),。 系統(tǒng)的架構(gòu)設(shè)計,,必須考慮設(shè)計的可行性,可擴(kuò)展性,,健壯性,,可用性,高效性,,安全性等方面,,還要考慮軟件所處的環(huán)境等等,各方面的因素都要考慮,,否則等軟件開發(fā)的過程中發(fā)現(xiàn)系統(tǒng)架構(gòu)設(shè)計中的不足再去修改,,代價是很昂貴的。
系統(tǒng)架構(gòu)說明因為本人初次寫博,。部分描述不清楚的部分在所難免,,錯字方面還請見諒,還請大家多多提出交流意見,,大家共同提高,。
下一篇將對系統(tǒng)架構(gòu)的具體實踐展開講解
最后CallHot 會盡心盡力寫好這個系列,同時由于是自己對這些知識的使用總結(jié)和心得體會,,錯誤之處在所難免,所以希望大家能夠多多指點,,這樣在使一部分人受益的同時也能糾正我的錯誤觀點,,以便和各位共同提高,后續(xù)文章敬請關(guān)注,! |
|