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