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