Object-Oriented Analysis:面向?qū)ο蠓治龇椒?,是在一個(gè)系統(tǒng)的開發(fā)過程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。OOA與結(jié)構(gòu)化分析有較大的區(qū)別。OOA所強(qiáng)調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對(duì)OO方法所需要的素材進(jìn)行的歸類分析和整理,而不是對(duì)管理業(yè)務(wù)現(xiàn)狀和方法的分析。
OOA(面向?qū)ο蟮姆治觯┠P陀?個(gè)層次(主題層、對(duì)象類層、結(jié)構(gòu)層、屬性層和服務(wù)層)和5個(gè)活動(dòng)(標(biāo)識(shí)對(duì)象類、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù))組成。在這種方法中定義了兩種對(duì)象類之間的結(jié)構(gòu),一種稱為分類結(jié)構(gòu),一種稱為組裝結(jié)構(gòu)。分類結(jié)構(gòu)就是所謂的一般與特殊的關(guān)系。組裝結(jié)構(gòu)則反映了對(duì)象之間的整體與部分的關(guān)系。
OOA在定義屬性的同時(shí),要識(shí)別實(shí)例連接。實(shí)例連接是一個(gè)實(shí)例與另一個(gè)實(shí)例的映射關(guān)系。
OOA在定義服務(wù)的同時(shí)要識(shí)別消息連接。當(dāng)一個(gè)對(duì)象需要向另一對(duì)象發(fā)送消息時(shí),它們之間就存在消息連接。
OOA 中的5個(gè)層次和5個(gè)活動(dòng)繼續(xù)貫穿在OOD(畫向?qū)ο蟮脑O(shè)計(jì))過程中。OOD模型由4個(gè)部分組成。它們分別是設(shè)計(jì)問題域部分、設(shè)計(jì)人機(jī)交互部分、設(shè)計(jì)任務(wù)管理部分和設(shè)計(jì)數(shù)據(jù)管理部分。
一、OOA的主要原則。
(1)抽象:從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征,就叫作抽象。抽象是形成概念的必須手段。
抽象原則有兩方面的意義:第一,盡管問題域中的事物是很復(fù)雜的,但是分析員并不需要了解和描述它們的一切,只需要分析研究其中與系統(tǒng)目標(biāo)有關(guān)的事物及其本質(zhì)性特征。第二,通過舍棄個(gè)體事物在細(xì)節(jié)上的差異,抽取其共同特征而得到一批事物的抽象概念。
抽象是面向?qū)ο蠓椒ㄖ惺褂米顬閺V泛的原則。抽象原則包括過程抽象和數(shù)據(jù)抽象兩個(gè)方面。
過程抽象是指,任何一個(gè)完成確定功能的操作序列,其使用者都可以把它看作一個(gè)單一的實(shí)體,盡管實(shí)際上它可能是由一系列更低級(jí)的操作完成的。
數(shù)據(jù)抽象是根據(jù)施加于數(shù)據(jù)之上的操作來定義數(shù)據(jù)類型,并限定數(shù)據(jù)的值只能由這些操作來修改和觀察。數(shù)據(jù)抽象是OOA的核心原則。它強(qiáng)調(diào)把數(shù)據(jù)(屬性)和操作(服務(wù))結(jié)合為一個(gè)不可分的系統(tǒng)單位(即對(duì)象),對(duì)象的外部只需要知道它做什么,而不必知道它如何做。
(2)封裝就是把對(duì)象的屬性和服務(wù)結(jié)合為一個(gè)不可分的系統(tǒng)單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。
(3)繼承:特殊類的對(duì)象擁有的其一般類的全部屬性與服務(wù),稱作特殊類對(duì)一般類的繼承。
在OOA中運(yùn)用繼承原則,就是在每個(gè)由一般類和特殊類形成的一般—特殊結(jié)構(gòu)中,把一般類的對(duì)象實(shí)例和所有特殊類的對(duì)象實(shí)例都共同具有的屬性和服務(wù),一次性地在一般類中進(jìn)行顯式的定義。在特殊類中不再重復(fù)地定義一般類中已定義的東西,但是在語義上,特殊類卻自動(dòng)地、隱含地?fù)碛兴囊话泐悾ㄒ约八懈蠈拥囊话泐悾┲卸x的全部屬性和服務(wù)。繼承原則的好處是:使系統(tǒng)模型比較簡練也比較清晰。
(4)分類:就是把具有相同屬性和服務(wù)的對(duì)象劃分為一類,用類作為這些對(duì)象的抽象描述。分類原則實(shí)際上是抽象原則運(yùn)用于對(duì)象描述時(shí)的一種表現(xiàn)形式。
(5)聚合:又稱組裝,其原則是:把一個(gè)復(fù)雜的事物看成若干比較簡單的事物的組裝體,從而簡化對(duì)復(fù)雜事物的描述。
(6)關(guān)聯(lián):是人類思考問題時(shí)經(jīng)常運(yùn)用的思想方法:通過一個(gè)事物聯(lián)想到另外的事物。能使人發(fā)生聯(lián)想的原因是事物之間確實(shí)存在著某些聯(lián)系。
(7)消息通信:這一原則要求對(duì)象之間只能通過消息進(jìn)行通信,而不允許在對(duì)象之外直接地存取對(duì)象內(nèi)部的屬性。通過消息進(jìn)行通信是由于封裝原則而引起的。在OOA中要求用消息連接表示出對(duì)象之間的動(dòng)態(tài)聯(lián)系。
(8)粒度控制:一般來講,人在面對(duì)一個(gè)復(fù)雜的問題域時(shí),不可能在同一時(shí)刻既能縱觀全局,又能洞察秋毫。因此需要控制自己的視野:考慮全局時(shí),注意其大的組成部分,暫時(shí)不詳察每一部分的具體的細(xì)節(jié);考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分。這就是粒度控制原則。
(9)行為分析:現(xiàn)實(shí)世界中事物的行為是復(fù)雜的。由大量的事物所構(gòu)成的問題域中各種行為往往相互依賴、相互交織。
二、面向?qū)ο蠓治霎a(chǎn)生三種分析模型
1、對(duì)象模型:對(duì)用例模型進(jìn)行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過類圖/對(duì)象圖描述對(duì)象/對(duì)象的屬性/對(duì)象間的關(guān)系,是系統(tǒng)的靜態(tài)模型
2、動(dòng)態(tài)模型:描述系統(tǒng)的動(dòng)態(tài)行為,通過時(shí)序圖/協(xié)作圖描述對(duì)象的交互,以揭示對(duì)象間如何協(xié)作來完成每個(gè)具體的用例,單個(gè)對(duì)象的狀態(tài)變化/動(dòng)態(tài)行為可以通過狀態(tài)圖來表達(dá)
3、功能模型(即用例模型à作為輸入)。
三、OOA的主要優(yōu)點(diǎn)
(1)加強(qiáng)了對(duì)問題域和系統(tǒng)責(zé)任的理解;
(2)改進(jìn)與分析有關(guān)的各類人員之間的交流;
(3)對(duì)需求的變化具有較強(qiáng)的適應(yīng)性;
(4)支持軟件復(fù)用。
(5)貫穿軟件生命周期全過程的一致性。
(6)實(shí)用性;
(7)有利于用戶參與。
四、OOA方法的基本步驟
在用OOA具體地分析一個(gè)事物時(shí),大致上遵循如下五個(gè)基本步驟:
第一步,確定對(duì)象和類。這里所說的對(duì)象是對(duì)數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實(shí)世界中某些事物的信息的能力。類是多個(gè)對(duì)象的共同屬性和方法集合的描述,它包括如何在一個(gè)類中建立一個(gè)新對(duì)象的描述。
第二步,確定結(jié)構(gòu)(structure)。結(jié)構(gòu)是指問題域的復(fù)雜性和連接關(guān)系。類成員結(jié)構(gòu)反映了泛化-特化關(guān)系,整體-部分結(jié)構(gòu)反映整體和局部之間的關(guān)系。
第三步,確定主題(subject)。主題是指事物的總體概貌和總體分析模型。
第四步,確定屬性(attribute)。屬性就是數(shù)據(jù)元素,可用來描述對(duì)象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出,并在對(duì)象的存儲(chǔ)中指定。
第五步,確定方法(method)。方法是在收到消息后必須進(jìn)行的一些處理方法:方法要在圖中定義,并在對(duì)象的存儲(chǔ)中指定。對(duì)于每個(gè)對(duì)象和結(jié)構(gòu)來說,那些用來增加、修改、刪除和選擇一個(gè)方法本身都是隱含的(雖然它們是要在對(duì)象的存儲(chǔ)中定義的,但并不在圖上給出),而有些則是顯示的。
新聞熱點(diǎn)
疑難解答