官术网_书友最值得收藏!

1.1 軟件復(fù)雜度剖析

任何軟件系統(tǒng)的發(fā)展都遵循從簡單到復(fù)雜、從集中到分散的過程。在系統(tǒng)誕生的初期,我們習(xí)慣于構(gòu)建單一、內(nèi)聚和全功能式的系統(tǒng),因?yàn)檫@樣的系統(tǒng)完全可以滿足當(dāng)前業(yè)務(wù)的需求。當(dāng)業(yè)務(wù)發(fā)展到一定階段,集中化系統(tǒng)開始表現(xiàn)出諸多弊端,功能拆分與服務(wù)化思想和實(shí)踐被引入。而當(dāng)系統(tǒng)繼續(xù)演進(jìn),團(tuán)隊(duì)規(guī)模隨之增大,由于分工模糊和業(yè)務(wù)復(fù)雜度不斷上升,系統(tǒng)架構(gòu)逐漸被腐化,直到系統(tǒng)不能承受任何改變,進(jìn)入需要重新拆分的階段。推倒重來意味著重復(fù)從簡單到復(fù)雜、從集中到分散的整個(gè)過程,如圖1-1所示。

圖1-1 系統(tǒng)架構(gòu)的輪回

系統(tǒng)架構(gòu)的輪回給人們的啟示就是將所有東西放在一起不是一個(gè)好的選擇,軟件系統(tǒng)的關(guān)注點(diǎn)應(yīng)該清晰劃分,并能通過功能拆分降低系統(tǒng)復(fù)雜性。因此,在本質(zhì)上,架構(gòu)的演進(jìn)過程就是一個(gè)解決系統(tǒng)復(fù)雜度問題的過程。那么,軟件復(fù)雜度具體指的是什么呢?我們又應(yīng)該如何對(duì)復(fù)雜度本身進(jìn)行剖析呢?圖1-2給出了問題的答案。

圖1-2 軟件復(fù)雜度的3個(gè)維度

在圖1-2中,我們可以看到軟件復(fù)雜度的形成涉及3個(gè)維度——規(guī)模、結(jié)構(gòu)和變化。本節(jié)將詳細(xì)介紹圖1-2中的3個(gè)復(fù)雜度維度。同時(shí),我們也需要認(rèn)識(shí)到,軟件復(fù)雜度體現(xiàn)的是一種客觀規(guī)律,因?yàn)槿魏我粋€(gè)軟件系統(tǒng)都會(huì)受到這3個(gè)維度的影響,開發(fā)人員無法完全避免,但引入一定的設(shè)計(jì)思想和方法可以降低軟件復(fù)雜度。在本節(jié)中,我們將展開介紹軟件復(fù)雜度的應(yīng)對(duì)策略。

主站蜘蛛池模板: 托克逊县| 马山县| 红安县| 大同市| 炉霍县| 阜城县| 汕头市| 深水埗区| 绩溪县| 上思县| 余干县| 潼关县| 通河县| 郯城县| 威远县| 格尔木市| 隆德县| 水富县| 平塘县| 基隆市| 凤山县| 汶上县| 定远县| 焦作市| 宝应县| 栾城县| 肃南| 山阳县| 霍城县| 赣榆县| 万全县| 陆川县| 莱西市| 莫力| 清远市| 肥西县| 申扎县| 武义县| 体育| 武鸣县| 肃南|