面向?qū)ο笾信缮惱^承基類,一般派生類將自動(dòng)擁有基類的屬性和方法懦冰,從而實(shí)現(xiàn)了重用灶轰,提高了軟件的開發(fā)效率。
但派生類可以通過覆蓋(Override)機(jī)制重寫基類的 某些方法刷钢,從而在維持接口不變的情況下框往,改變方法的語義〈成樱“虛擬函數(shù)”就是典型的派生類重寫基類方法的例子椰弊。
不論是面向?qū)ο蠓治鲞€是結(jié)構(gòu)化分析,其分析結(jié)果都是下一階段設(shè)計(jì)工作的輸入瓤鼻。
面向?qū)ο蠓治鼋Y(jié)果主要是面向?qū)ο蠓治瞿P捅妫?dāng)前主流的技術(shù)是采用面向?qū)ο蠼UZ言(UML)來描述和表達(dá):
結(jié)構(gòu)化分析所得到的是結(jié)構(gòu)化分析模型,主要采用DFD等模型來表示:面向?qū)ο蟪绦蛟O(shè)計(jì)語言主要用于系統(tǒng)的實(shí)現(xiàn)茬祷,屬于設(shè)計(jì)工作完成后的階段清焕,因此面向?qū)ο蟪绦蛟O(shè)計(jì)語言的抽象層次較低,并不適用于面向?qū)ο蟮姆治觥?/p>
面向?qū)ο蟪绦蛟O(shè)計(jì)語言的最主要的作用是進(jìn)行面向?qū)ο蟮南到y(tǒng)實(shí)現(xiàn)祭犯,它并不能用于系統(tǒng)的分析與設(shè)計(jì)秸妥,目前,較為流行的面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)工具或語言主要是統(tǒng)一建模語言UML沃粗。
面向?qū)ο箝_發(fā)主要分為面向?qū)ο蠓治觯∣bject-OrientedAnalysis粥惧,00A)和面向?qū)ο笤O(shè)計(jì)(Object-OrientedDesign,00D)兩大部分最盅。
00A的目標(biāo)是建立待開發(fā)軟件系統(tǒng)的模型突雪。00A模型描述了表示某個(gè)特定應(yīng)用領(lǐng)域中的對(duì)象、對(duì)象間的結(jié)構(gòu)關(guān)系和通信關(guān)系涡贱, 反映了現(xiàn)實(shí)世界強(qiáng)加給軟件系統(tǒng)的各種規(guī)則和約束條件咏删。00A模型還規(guī)定了對(duì)象如何協(xié)同工作和完成系統(tǒng)的職責(zé)。通常00A階段包括的活動(dòng)有識(shí)別分析類问词、構(gòu)建分析模型和評(píng)估分析模型督函。
UML 2.0中提供的圖形中,關(guān)注系統(tǒng)動(dòng)態(tài)視圖的有狀態(tài)圖激挪、序列圖辰狡、活動(dòng)圖、通信圖等灌灾。
狀態(tài)圖展現(xiàn)了一個(gè)狀態(tài)機(jī)搓译,它由狀態(tài)悲柱、轉(zhuǎn)換锋喜、事件和活動(dòng)組成,用于建模如何改變對(duì)象的狀態(tài)以及引起對(duì)象從一個(gè)狀態(tài)向另一個(gè)狀態(tài)轉(zhuǎn)換的事件。
序列圖是場(chǎng)景的圖形化表示嘿般,描述了在一個(gè)用例或操作的執(zhí)行過程中以時(shí)間順序組織的對(duì)象之間的交互活動(dòng)段标。
活動(dòng)圖是一種特殊的狀態(tài)圖,展現(xiàn)了在系統(tǒng)內(nèi)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程炉奴,強(qiáng)調(diào)對(duì)象間的控制流程逼庞。通信圖強(qiáng)調(diào)收發(fā)消息的對(duì)象之間的結(jié)構(gòu)組織。
類圖展現(xiàn)了一組對(duì)象瞻赶、接口赛糟、 協(xié)作和它們之間的關(guān)聯(lián)關(guān)系,還可以在類圖中圖示關(guān)聯(lián)中的數(shù)量關(guān)系砸逊,即多重度璧南,用以說明數(shù)量或數(shù)量范圍,表示有多少個(gè)實(shí)例(對(duì)象)能被連接起來师逸,即一個(gè)類的實(shí)例能夠 與另一個(gè)類的多少個(gè)實(shí)例相關(guān)聯(lián)司倚。用例圖展現(xiàn)了一組用例、參與者以及它們之間的關(guān)系篓像, 描述了誰將使用系統(tǒng)以及用戶期望以什么方式與系統(tǒng)交互动知。通信圖強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織。