文化知識(shí)趣說(shuō)
用簡(jiǎn)單有趣娛樂(lè)的方式分享知識(shí),讓文化變得有趣。
發(fā)布時(shí)間: 2025年01月07日 11:19
當(dāng)你去了解一個(gè)東東的時(shí)候,第一步要做的,就應(yīng)該去知道這個(gè)東東的定義,對(duì)于軟件架構(gòu)也是如此,經(jīng)過(guò)網(wǎng)上查詢和書籍的幫助,我大概理清了一個(gè)輪廓。
軟件行業(yè)是一個(gè)熱衷于制造‘名詞’的行業(yè),如果退回15年,估計(jì)沒(méi)幾個(gè)人知道‘軟件架構(gòu)’是什么,在上個(gè)世紀(jì)80年代,隨著軟件開(kāi)發(fā)的規(guī)模不斷擴(kuò)大,軟件開(kāi)發(fā)成為一個(gè)行業(yè),初期,隨之而來(lái)的是越來(lái)越多的軟件項(xiàng)目的失敗,造成項(xiàng)目失敗的原因很多,但主要集中在開(kāi)發(fā)過(guò)程,所以軟件工程應(yīng)運(yùn)而生,CMMI等流程標(biāo)準(zhǔn)也是一茬接著一茬的冒個(gè)不停。
在軟件工程初具規(guī)模的時(shí)候,軟件開(kāi)發(fā)還是以數(shù)據(jù)結(jié)構(gòu)算法的形式存在,進(jìn)入20世紀(jì)最后10年,隨著面向?qū)ο蠹夹g(shù)、設(shè)計(jì)模式等在開(kāi)發(fā)過(guò)程中的成功應(yīng)用,軟件架構(gòu)也走進(jìn)了大家的視野。
軟件架構(gòu)在定義上分為‘組成派’和‘決策派’兩大陣營(yíng),分別描述如下:
’組成派‘認(rèn)為軟件架構(gòu)是將系統(tǒng)描述成計(jì)算組件及組件之間的交互
它有兩個(gè)非常明顯的特點(diǎn):
關(guān)注架構(gòu)實(shí)踐的客體——軟件,以軟件本身作為描述對(duì)象。
分析了軟件的組成,說(shuō)明軟件不是一個(gè)‘原子’意義上的整體,而是有不同的部分經(jīng)過(guò)特定的接口進(jìn)行連接組成的一個(gè)整體,這對(duì)軟件開(kāi)發(fā)來(lái)說(shuō)很重要。
‘決策派’認(rèn)為
軟件架構(gòu)包含了一系列的決策
主要包括:
軟件系統(tǒng)的組織
選擇組成系統(tǒng)的結(jié)構(gòu)元素和它們之間的接口,以及當(dāng)這些元素相互協(xié)作時(shí)所體現(xiàn)的行為
用于指導(dǎo)這個(gè)系統(tǒng)組織的架構(gòu)風(fēng)格:這些元素以及它們的接口、協(xié)作和組合
軟件架構(gòu)并不僅僅關(guān)注軟件本身的結(jié)構(gòu)和行為,還注重其他特性:使用、功能性、性能、彈性、重用、可理解、經(jīng)濟(jì)以及技術(shù)的限制和權(quán)衡等。
‘決策派’有以下兩個(gè)顯著的特點(diǎn):
關(guān)注軟件架構(gòu)中的實(shí)體——人,以人的決策為描述對(duì)象。
歸納了軟件架構(gòu)決策的類型,指出架構(gòu)決策不僅包括關(guān)于軟件系統(tǒng)的組織、元素、子系統(tǒng)和架構(gòu)風(fēng)格等幾類決策,還包括關(guān)于眾多非功能性需求的決策。
按照‘組成派’的觀點(diǎn),軟件架構(gòu)關(guān)注的是軟件整體的分割和交互,之所以分割,是因?yàn)椴煌牟糠衷谶壿嫽蛭锢砩舷鄬?duì)獨(dú)立,通過(guò)‘分而治之’的原則進(jìn)行分割可以更好的理解整個(gè)系統(tǒng),把握用戶的需求,但是雖然整個(gè)軟件可以分割成多個(gè)模塊或子系統(tǒng),但是模塊和子系統(tǒng)之間的通信和交互也是很重要的,我想按照這種觀點(diǎn),架構(gòu)師的主要任務(wù)是將軟件分割成不同的模塊,并定義模塊之間的接口。
按照‘決策派’的觀點(diǎn),軟件是一個(gè)在很多限制下產(chǎn)生的產(chǎn)品,這些限制包括用戶和技術(shù)兩方面,用戶方面包括功能需求、性能需求、硬件需求等,技術(shù)方面包括技術(shù)選擇、可擴(kuò)展性、可重用性、可維護(hù)性等。我想按照這中觀點(diǎn),架構(gòu)師的主要任務(wù)就是作出上述個(gè)各種限制作出選擇或決策。《軟件架構(gòu)設(shè)計(jì)》溫昱
微信掃碼關(guān)注公眾號(hào)
獲取更多考試熱門資料