由于是自己對(duì)這些技術(shù)的學(xué)習(xí)總結(jié)和心得體會(huì),錯(cuò)誤之處在所難免,懷著技術(shù)交流的心態(tài),現(xiàn)在發(fā)表出來(lái),所以希望大家能夠多多指點(diǎn),這樣能使一部分人受益同時(shí)也能糾正我的錯(cuò)誤觀點(diǎn),以便和各位共同提高!
創(chuàng)新互聯(lián)建站專注于網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。
軟件架構(gòu)可以被簡(jiǎn)單的描述為,一系列組件之間的組合,交互,繼承的關(guān)系。當(dāng)然這樣的解釋基本上人人都可以接收。不過(guò)在我們看來(lái),這樣的說(shuō)法有點(diǎn)過(guò)于抽象。
軟件架構(gòu)有這標(biāo)準(zhǔn)的定義,就是參考ANSI/IEEE的標(biāo)準(zhǔn),軟件架構(gòu)可以理解為軟件密集型系統(tǒng)中對(duì)系統(tǒng)的實(shí)現(xiàn)和部署起決定性作用的的系統(tǒng)。
軟件架構(gòu)中的關(guān)鍵點(diǎn)是應(yīng)該符合項(xiàng)目干系人的目標(biāo),功能上當(dāng)然細(xì)分成功能性的和非功能性的需求。
軟件架構(gòu)有一定的特殊性,架構(gòu)設(shè)計(jì)必須開(kāi)發(fā)的初期就確定,架構(gòu)設(shè)計(jì)作為關(guān)鍵決策必須前期確定。
軟件架構(gòu)其實(shí)主要是要符合項(xiàng)目干系人的目標(biāo),如果無(wú)法滿足項(xiàng)目干系人的目標(biāo),那么這個(gè)架構(gòu)方案就行不通,下圖是ANSI/IEEE標(biāo)準(zhǔn)中定義的系統(tǒng)、架構(gòu)與項(xiàng)目干系人直接的關(guān)系。
開(kāi)篇中已經(jīng)介紹了系統(tǒng)架構(gòu)的表述工具有UML和Relation Rose,UML基本上已經(jīng)成為國(guó)際的標(biāo)準(zhǔn)。
UML的類圖:主要是描述類之間的關(guān)系。
用例圖:描述使用場(chǎng)景。
組件圖:用來(lái)描述系統(tǒng)中的可重用部分。并且容易看出組件與二進(jìn)制文件之間的對(duì)應(yīng)關(guān)系。
通過(guò)UML工具,我們能夠更深層次對(duì)系統(tǒng)架構(gòu)進(jìn)行不同角度的描述。抓住其核心。
軟件架構(gòu)的驗(yàn)證,目前沒(méi)有什么好的辦法可以自動(dòng)驗(yàn)證軟件架構(gòu)是否可以達(dá)到項(xiàng)目干系人的目標(biāo),只有通過(guò)多種方式多個(gè)級(jí)別的測(cè)試。
例如通過(guò)單元測(cè)試,來(lái)驗(yàn)證單一的功能,集成測(cè)試來(lái)評(píng)估系統(tǒng)的兼容性,驗(yàn)收測(cè)試來(lái)驗(yàn)證用戶的滿意度,程序是否提供必要的功能。
除了UML建模工具之外,還有IBM比較著名的Relation Rose,這里大概介紹下該工具具有的視圖模式:
可以這樣說(shuō),軟件系統(tǒng)的架構(gòu)過(guò)程中沒(méi)有什么系統(tǒng)是不可拆分的,系統(tǒng)的開(kāi)發(fā)方法越敏捷,為開(kāi)發(fā)人員實(shí)現(xiàn)架構(gòu)是預(yù)留的空間越大。
系統(tǒng)架構(gòu)師將系統(tǒng)分解的過(guò)程,其實(shí)最終形成的就是一份為開(kāi)發(fā)人員提供的詳細(xì)設(shè)計(jì)說(shuō)明書(shū)。當(dāng)然詳細(xì)設(shè)計(jì)說(shuō)明書(shū)的內(nèi)容和格式也取決于開(kāi)發(fā)方法。
架構(gòu)大多體現(xiàn)在難以改變或者改變起來(lái)代價(jià)較大的決定上。但是最終還是需要有人做決定。
系統(tǒng)分析師分析系統(tǒng)做什么,架構(gòu)師設(shè)計(jì)如何去做。
架構(gòu)師是需求與詳細(xì)說(shuō)明的紐帶。
架構(gòu)師的職責(zé):架構(gòu)師應(yīng)該參與到開(kāi)發(fā)的全過(guò)程當(dāng)中。包括分析需求與架構(gòu)設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、繼承與部署。
按照ISO的定義架構(gòu)師的定義如下:負(fù)責(zé)系統(tǒng)架構(gòu)的人、團(tuán)隊(duì)或組織。
微軟則對(duì)系統(tǒng)架構(gòu)是做了如下的劃分:
1、企業(yè)架構(gòu)師。
2、基礎(chǔ)架構(gòu)師。
3、特定技術(shù)架構(gòu)師。
4、解決方案架構(gòu)師。
1、為了一個(gè)趕不上進(jìn)度的項(xiàng)目增加人手,只會(huì)讓項(xiàng)目更加落后于進(jìn)度。
2、程序的復(fù)雜性會(huì)一直的增加,直到維護(hù)人員感覺(jué)到力不從心為止。
3、建筑師與開(kāi)發(fā)人員寫(xiě)程序不同,如果建筑師按照開(kāi)發(fā)人員的方式開(kāi)建造,只會(huì)成為歷史中的敗筆。
UML的架構(gòu)設(shè)計(jì)
如何通過(guò)UML工具來(lái)進(jìn)行建模,通過(guò)不同角度的分析,得出核心的設(shè)計(jì)。