結(jié)構(gòu)化分析方法和面向?qū)ο蠓治龇椒ǖ谋容^

字號(hào):

很難對(duì)結(jié)構(gòu)化分析方法和面向?qū)ο蠓治龇椒ㄟM(jìn)行優(yōu)劣比較,使用兩種方法成功和失敗的軟件系統(tǒng)都很多。
    結(jié)構(gòu)化分析方法:
    結(jié)構(gòu)化分析方法可能存在的風(fēng)險(xiǎn)在于:在得到問題本質(zhì)性的描述之前,不斷分解出的結(jié)論和需要處理的信息越來越多、越來越復(fù)雜,使得“只見樹木不見森林”的風(fēng)險(xiǎn)大大增加。
    結(jié)構(gòu)化分析方法運(yùn)用得好,要求系統(tǒng)分析員具有一種“俯視全局”的能力,能夠透過問題的表象直接把握到問題本質(zhì)。
    當(dāng)軟件項(xiàng)目較小、系統(tǒng)分析員能力足夠高的時(shí)候,結(jié)構(gòu)化方法能快速的找到最簡潔、高效率的邏輯模型。結(jié)構(gòu)化方法對(duì)復(fù)雜問題的幫助有限。但結(jié)構(gòu)化方法有助于使用面向分析方法的系統(tǒng)分析員確認(rèn)系統(tǒng)最初的高階模型。
    面向?qū)ο蠓椒ǎ?BR>    提供了一種方便的、可持續(xù)觀測(cè)和擴(kuò)展系統(tǒng)的機(jī)制。面向?qū)ο蟪橄蟪龅膶?duì)象是健壯的、可控制和容易維護(hù)的。
    總是試圖抽象出更公用的類,因此對(duì)系統(tǒng)分析員抽象事物和把我最初分析方向的要求很高。常常難以控制抽象對(duì)象的層次、粒度,甚至抽象出與問題本質(zhì)面目全非的對(duì)象模型。掌握難度高于結(jié)構(gòu)化分析方法。
    通過信息隱藏和封裝等手段屏蔽了對(duì)象內(nèi)部的執(zhí)行細(xì)節(jié),控制了錯(cuò)誤的蔓延,但發(fā)生錯(cuò)誤時(shí),定位故障的代價(jià)大。尤其時(shí)繼承的深度很大時(shí)。
    對(duì)于需求變化頻繁的系統(tǒng),得到一個(gè)高度可復(fù)用的面向?qū)ο筌浖到y(tǒng)設(shè)計(jì)是很困那的事情。
    結(jié)論:兩種方法不是對(duì)立的,沒有誰先進(jìn)誰過時(shí)之說,可在項(xiàng)目中結(jié)合使用。恰當(dāng)?shù)倪\(yùn)用方法解決問題才是根本性的問題。在運(yùn)用時(shí)應(yīng)關(guān)注運(yùn)用方法的成本和價(jià)值。