軟件工程方法學(xué)之面向?qū)ο蠓椒▽W(xué)一
2.面向?qū)ο蠓椒▽W(xué)
當(dāng)軟件規(guī)模龐大,或者對(duì)軟件的需求是模糊的或會(huì)隨時(shí)間變化而變化的時(shí)候,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)軟件往往不成功,此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)仍然很網(wǎng)難。
結(jié)構(gòu)化范型只能獲得有限成功的一個(gè)重要原因是,這種技術(shù)要么面向行為(即對(duì)數(shù)據(jù)的操作),要么面向數(shù)據(jù),還沒(méi)有既面向數(shù)據(jù)又面向行為的結(jié)構(gòu)化技術(shù)。軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng)。離開(kāi)了操作便無(wú)法更改數(shù)據(jù),而脫離了數(shù)據(jù)的操作是毫無(wú)意義的。數(shù)據(jù)和對(duì)數(shù)據(jù)的處理原本是密切相關(guān)的,把數(shù)據(jù)和操作人為地分離成兩個(gè)獨(dú)立的部分,自然會(huì)增加軟件開(kāi)發(fā)與維護(hù)的難度。與傳統(tǒng)的方法相反,面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成是同等重要的,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。
面向?qū)ο蠓椒▽W(xué)具有下述4個(gè)特點(diǎn)。
1)把對(duì)象( ohject)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。面向?qū)ο蟪绦蚴怯蓪?duì)象組成的,程序中任何元素都是對(duì)象,復(fù)雜對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。 也就是說(shuō),用對(duì)象分解取代了傳統(tǒng)方法的功能分解。
2)把所有對(duì)象都劃分成類(class)。每個(gè)類都定義了一組數(shù)據(jù)和一組操作,類是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義。數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息,而施加于數(shù)據(jù)之上的操作用于實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)行為。