第8章 面向?qū)ο蟮募夹g(shù)_第1頁(yè)
第8章 面向?qū)ο蟮募夹g(shù)_第2頁(yè)
第8章 面向?qū)ο蟮募夹g(shù)_第3頁(yè)
第8章 面向?qū)ο蟮募夹g(shù)_第4頁(yè)
第8章 面向?qū)ο蟮募夹g(shù)_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四

章面向?qū)ο蟮募夹g(shù)

面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威奧斯陸大學(xué)和挪威計(jì)算機(jī)中心共同研制的Simula67語(yǔ)言中,隨著的Smalltalk---76和80語(yǔ)言推出,面向?qū)ο蟮牡某绦蛟O(shè)計(jì)方法得到了比較完善的實(shí)現(xiàn)。此后,面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開(kāi)發(fā),擴(kuò)展到如數(shù)據(jù)庫(kù)系統(tǒng),交互式界面,分布式系統(tǒng),網(wǎng)絡(luò)管理結(jié)構(gòu)和人工智能等領(lǐng)域。

面向?qū)ο蟮募夹g(shù)已成為軟件開(kāi)發(fā)的一種新方法,新技術(shù)。4.1面向?qū)ο蟮幕靖拍?.1.1什么是面向?qū)ο蟮拈_(kāi)發(fā)方法

OOSD(Object-OrientedSoftwareDevelopment)法是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程,指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法。問(wèn)題空間—軟件系統(tǒng)所涉及到的應(yīng)用領(lǐng)域和業(yè)務(wù)范圍(現(xiàn)實(shí)世界)。解空間—用于解決某些問(wèn)題的軟件系統(tǒng)。一、軟件開(kāi)發(fā)過(guò)程問(wèn)題空間(現(xiàn)實(shí)世界)解空間(軟件系統(tǒng))映射二、傳統(tǒng)軟件開(kāi)發(fā)方法存在的問(wèn)題1.傳統(tǒng)軟件開(kāi)發(fā)方法無(wú)法實(shí)現(xiàn)從問(wèn)題空間到解空間的直接映射。問(wèn)題空間(現(xiàn)實(shí)世界)解空間(軟件系統(tǒng))復(fù)雜映射2.傳統(tǒng)軟件開(kāi)發(fā)方法無(wú)法實(shí)現(xiàn)高效的軟件復(fù)用。原因是:傳統(tǒng)軟件開(kāi)發(fā)方法數(shù)據(jù)與代碼(操作)分離。3.傳統(tǒng)軟件開(kāi)發(fā)方法難以實(shí)現(xiàn)從分析到設(shè)計(jì)的直接過(guò)渡。復(fù)雜轉(zhuǎn)換分析文檔(DFD)設(shè)計(jì)文檔(SC)三、面向?qū)ο蠹夹g(shù)的特點(diǎn)1.對(duì)軟件開(kāi)發(fā)過(guò)程所有階段進(jìn)行綜合考慮。使問(wèn)題空間與解空間具有一致性,降低復(fù)雜性。2.軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性,用符合人類(lèi)認(rèn)識(shí)世界的思維方式來(lái)分析、解決問(wèn)題。自然、連續(xù)問(wèn)題空間(現(xiàn)實(shí)世界)解空間(軟件系統(tǒng))實(shí)體1實(shí)體2實(shí)體n對(duì)象1對(duì)象n對(duì)象23.將OOA、OOD、OOP有機(jī)地集成在一起。有利于系統(tǒng)的穩(wěn)定性.

OOA(Object-OrientedAnalysis)

OOD(Object-OrientedDesign)

OOP(Object-OrientedProgram)

以對(duì)象為中心各種構(gòu)造系統(tǒng),而不是以功能為中心,能很好地適應(yīng)需求變化.4.具有良好的可重用性由于對(duì)象所具有的封裝性和信息隱蔽,具有很強(qiáng)的獨(dú)立性。

理解面向?qū)ο蟮幕靖拍顚?duì)于學(xué)習(xí)和掌握面向?qū)ο蟮拈_(kāi)發(fā)方法是十分重要的。4.1.2面向?qū)ο蟮幕靖拍铑?lèi)(Class)對(duì)象(Object)消息(Information)多態(tài)性(Polymorphism)繼承(Inheritance)永久對(duì)象(Persistentobject)1.對(duì)象(Object)對(duì)象(Object)是客觀(guān)事物或概念的抽象表述,即對(duì)客觀(guān)存在的事物的描述統(tǒng)稱(chēng)為對(duì)象。對(duì)象可以是事、物、或抽象概念,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過(guò)程封裝在一起的實(shí)體。

屬性(attribute)—對(duì)象本身的性質(zhì)。操作(operation)—給對(duì)象定義一組運(yùn)算。對(duì)象將它自身的屬性及運(yùn)算“包裝起來(lái)”,稱(chēng)為“封裝”(encapsulation).

對(duì)象的最基本的特征是封裝性和繼承性。2.類(lèi)(Class)類(lèi)又稱(chēng)對(duì)象類(lèi)(ObjectClass),是一組具有相同屬性和相同操作的對(duì)象的集合。在一個(gè)類(lèi)中,每個(gè)對(duì)象都是類(lèi)的實(shí)例(instance),它們都可以使用類(lèi)中提供的函數(shù)。類(lèi)具有屬性,用數(shù)據(jù)結(jié)構(gòu)來(lái)描述類(lèi)的屬性,類(lèi)具有操作,它是對(duì)象的行為的抽象,操作實(shí)現(xiàn)的過(guò)程稱(chēng)為方法(method),方法有方法名,方法體和參數(shù)。

由于對(duì)象是類(lèi)的實(shí)例,在進(jìn)行分析和設(shè)計(jì)時(shí),通常把注意力集中在類(lèi)上,而不是具體的對(duì)象上。幾何對(duì)象顏色位置移動(dòng)(delta:矢量)選擇(P:指針型):布爾型旋轉(zhuǎn)(角度)圖4.1對(duì)象類(lèi)的描述人姓名:字符串年齡:整型改換工作改換地址文件文件名文件大小最近更新日期打印(人)張紅兵28繪圖員人民路8號(hào)(人)李軍24程序員無(wú)圖4.2對(duì)象的描述對(duì)象和類(lèi)的描述類(lèi)和對(duì)象一般采用“名字”、“屬性”和“運(yùn)算”來(lái)描述。類(lèi)名屬性運(yùn)算

對(duì)象

類(lèi)3.繼承

(Inheritance)

繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是父類(lèi)和子類(lèi)之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類(lèi)之間的一種關(guān)系。繼承性分:

單重繼承:一個(gè)子類(lèi)只有一個(gè)父類(lèi)。即子類(lèi)只繼承一個(gè)父類(lèi)的數(shù)據(jù)結(jié)構(gòu)和方法。

多重繼承:一個(gè)子類(lèi)可有多個(gè)父類(lèi)。繼承多個(gè)父類(lèi)的數(shù)據(jù)結(jié)構(gòu)和方法?;?lèi)子類(lèi)A子類(lèi)B圖4.4繼承性描述現(xiàn)存類(lèi)定義父類(lèi)(基類(lèi))新類(lèi)定義子類(lèi)(派生類(lèi))繼承圖4.3繼承性4.消息(Message)

消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(互相聯(lián)系、協(xié)同工作等)。對(duì)象之間的聯(lián)系可表示為對(duì)象間的消息傳遞,即對(duì)象間的通訊機(jī)制。一個(gè)消息應(yīng)該包含以下信息:消息名、接收消息對(duì)象的標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、消息和方法、輸入信息、回答信息。

在對(duì)象的操作中當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),消息包含接收對(duì)象去執(zhí)行某種操作的消息。5.多態(tài)性和動(dòng)態(tài)綁定

多態(tài)性(Polymorphism)是指相同的操作或函數(shù)、過(guò)程作用于不同的對(duì)象上并獲得不同的結(jié)果。

即相同的操作的消息發(fā)送給不同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類(lèi)中定義的操作去執(zhí)行,產(chǎn)生不同的結(jié)果。

例如:“繪圖”操作,作用在“橢圓”和“矩形”上,畫(huà)出不同的圖形。

動(dòng)態(tài)綁定(dynamicbinding)是在運(yùn)行時(shí)根據(jù)對(duì)象接收的消息動(dòng)態(tài)地確定要連接的服務(wù)代碼。

使用虛函數(shù)可實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,不同聯(lián)編可以選擇不同的實(shí)現(xiàn),這便是多態(tài)性。繼承是動(dòng)態(tài)聯(lián)編的基礎(chǔ),虛函數(shù)是動(dòng)態(tài)聯(lián)編的關(guān)鍵。多態(tài)性的實(shí)現(xiàn)舉例

實(shí)現(xiàn)多態(tài)性的基本步驟(以VC為例):

(1)在基類(lèi)中,定義成員函數(shù)為虛函數(shù)(virtual);

(2)定義基類(lèi)的公有(public)派生類(lèi);

(3)在基類(lèi)的公有派生類(lèi)中“重載”該虛函數(shù);

(4)定義指向基類(lèi)的指針變量,它指向基類(lèi)的公有派生類(lèi)的對(duì)象。注意:重載虛函數(shù)不是一般的重載函數(shù),它要求函數(shù)名、返回類(lèi)型、參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型和順序完全相同。例如:下面是實(shí)現(xiàn)“多態(tài)性”的一個(gè)例子#include<iostream.h>classfigure//定義基類(lèi){protected:doublex,y;public:voidset_dim(doublei;doublej=0){x=i;y=j;}

virtualvoidshow_area()

//定義虛函數(shù){

cout<<“Noareacomputationdefine”;

cout<<“forthisclass.\n”;}};(1)在基類(lèi)中,將成員函數(shù)說(shuō)明為虛函數(shù)(virtual);classfigureprotected:doublex,y;public:

set_dim()virtualshow_area()圖4.5類(lèi)classtriangle:publicfigure//(2)定義基類(lèi)的公有派生類(lèi){public:

virtual

voidshow_area()

//(3)“重載”該虛函數(shù){求三角形面積}};classsquare:publicfigure//(2)定義基類(lèi)的公有派生類(lèi){public:

virtualvoidshow_area()

//(3)“重載”該虛函數(shù){求矩形面積}};classcircle:publicfigure//(2)定義基類(lèi)的公有派生類(lèi){public:

virtual

voidshow_area()

//(3)“重載”該虛函數(shù){求園面積}};

p=&s;//

指向矩形對(duì)象

p->set_dim(10.0,5.0);p->show_area();p=&c;//

指向園形對(duì)象

p->set_dim(9.0);p->show_area();}voidmain(){figure*p;//定義指向基類(lèi)的指針變量trianglet;//squares;//

定義基類(lèi)的公有派生類(lèi)的對(duì)象circlec;//p=&t;//指向三角形對(duì)象

p->set_dim(10.0,5.0);p->show_area();}(4)運(yùn)行過(guò)程中實(shí)現(xiàn)“動(dòng)態(tài)綁定”6.永久對(duì)象(Persistentobject)

所謂永久對(duì)象是指生存期可以超越程序的執(zhí)行時(shí)間而長(zhǎng)期存在的對(duì)象。

目前,大多數(shù)OOPL不支持永久對(duì)象,如果一個(gè)對(duì)象要長(zhǎng)期保存,必須依靠于文件系統(tǒng)或數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn),程序員需要作對(duì)象與文件系統(tǒng)或數(shù)據(jù)庫(kù)之間數(shù)據(jù)格式的轉(zhuǎn)換,以及保存和恢復(fù)所需的操作等煩瑣的工作。為了實(shí)現(xiàn)永久對(duì)象,使上述煩瑣工作由系統(tǒng)自動(dòng)完成,需要較強(qiáng)的技術(shù)支持;需要一個(gè)基于永久對(duì)象管理系統(tǒng)OMS(objectmanagementsystem),能夠描述和處理永久對(duì)象的編程語(yǔ)言。4.3面向?qū)ο蟮姆治?/p>

面向?qū)ο蠓治鯫OA(Object-OrientedAnalysis)的目標(biāo)是完成對(duì)所求解問(wèn)題的分析,確定系統(tǒng)“作什么”,并建立系統(tǒng)的模型?;靖拍?

問(wèn)題域(problemdomain)—被開(kāi)發(fā)系統(tǒng)的應(yīng)用領(lǐng)域。

系統(tǒng)責(zé)任(systemresponsibilities)—所開(kāi)發(fā)的系統(tǒng)應(yīng)具備的職能。4.3.1面向?qū)ο蠓治龅奶攸c(diǎn)一、需求中存在的問(wèn)題

1.確定問(wèn)題域和系統(tǒng)責(zé)任困難

2.充分交流的問(wèn)題解決得不好

3.很難適應(yīng)需求的不斷變化

4.難以滿(mǎn)足復(fù)用要求二、OOA的特點(diǎn)1.有利于對(duì)問(wèn)題及系統(tǒng)責(zé)任的理解;2.有利于人員之間的交流;3.對(duì)需求變化有較強(qiáng)的適應(yīng)性;4.支持軟件復(fù)用。?運(yùn)用面向?qū)ο蟮姆椒?,?duì)問(wèn)題域和系統(tǒng)責(zé)任進(jìn)行分析和理解,建立分析模型。

1.分析問(wèn)題域,確定類(lèi)和對(duì)象;

2.定義類(lèi)或?qū)ο髮傩院筒僮?,確定其結(jié)構(gòu);

3.建立系統(tǒng)中類(lèi)或?qū)ο笾g的靜態(tài)聯(lián)系和動(dòng)態(tài)聯(lián)系。4.3.2OOA的基本任務(wù)4.3.3OOA的分析過(guò)程獲取用戶(hù)基本需求標(biāo)識(shí)類(lèi)和對(duì)象定義類(lèi)的結(jié)構(gòu)和層次表示類(lèi)(對(duì)象)間的關(guān)系為對(duì)象行為建模圖4.7OOA分析過(guò)程4.3.4OOA模型對(duì)象層特征層關(guān)系層交互圖主題圖詳細(xì)說(shuō)明基本模型(類(lèi)圖)圖4.8OOA模型與詳細(xì)說(shuō)明基本模型是一個(gè)類(lèi)圖(classdiagram),是以直觀(guān)的方式表達(dá)系統(tǒng)最重要的信息。OOA基本模型的三個(gè)層次分別描述了:系統(tǒng)中應(yīng)設(shè)哪幾類(lèi)對(duì)象,每類(lèi)對(duì)象的內(nèi)部構(gòu)成,對(duì)象與外部的關(guān)系。4.3.4OOA模型對(duì)象層特征層關(guān)系層交互圖主題圖詳細(xì)說(shuō)明基本模型(類(lèi)圖)主題(subject)又稱(chēng)為子系統(tǒng)(subsystem)是將一些聯(lián)系密切的類(lèi)組織在一起的類(lèi)的集合。按照粒度控制原則,將系統(tǒng)組成幾個(gè)主題,便于理解。4.3.4OOA模型對(duì)象層特征層關(guān)系層交互圖主題圖詳細(xì)說(shuō)明基本模型(類(lèi)圖)交互圖(interactiondiagram)是Usecase與系統(tǒng)成分之間的對(duì)照?qǐng)D。主題圖和交互圖又稱(chēng)為補(bǔ)充模型。4.3.4OOA模型對(duì)象層特征層關(guān)系層交互圖主題圖詳細(xì)說(shuō)明基本模型(類(lèi)圖)詳細(xì)說(shuō)明按照分析方法所要求的格式,對(duì)分析模型進(jìn)行說(shuō)明和解釋。主要以文字為主。

面向?qū)ο蟮脑O(shè)計(jì)OOD(Object-OrientedDesign)是面向?qū)ο蠓椒ㄔ谲浖O(shè)計(jì)階段應(yīng)用與擴(kuò)展的結(jié)果。是將OOA所創(chuàng)建的分析模型轉(zhuǎn)換為設(shè)計(jì)模型,解決如何作的問(wèn)題。OOD與OOA沒(méi)有明顯的分界,采用相同的符號(hào)。4.4面向?qū)ο蟮脑O(shè)計(jì)4.4.1OOD基本任務(wù)1.系統(tǒng)設(shè)計(jì)

將分析模型劃分為若干子系統(tǒng),子系統(tǒng)應(yīng)該具有良好的接口,子系統(tǒng)內(nèi)的類(lèi)相互協(xié)作。標(biāo)識(shí)問(wèn)題本身的并發(fā)性,為子系統(tǒng)分配處理器。保險(xiǎn)單填寫(xiě)界面系統(tǒng)內(nèi)部保險(xiǎn)單客戶(hù)數(shù)據(jù)庫(kù)界面(abstract)Oracle界面Sybasec界面子系統(tǒng)的分解是關(guān)鍵,可以有分層和分塊:

分層:將軟件系統(tǒng)組織為層次結(jié)構(gòu),每層是一個(gè)子系統(tǒng)。分層結(jié)構(gòu)又分為封閉式和開(kāi)放式。

分塊:垂直分塊是將系統(tǒng)分解為若干個(gè)相對(duì)獨(dú)立的、弱耦合的子系統(tǒng)。每個(gè)子系統(tǒng)相當(dāng)于一個(gè)塊,每塊實(shí)現(xiàn)一類(lèi)服務(wù)。常常使用分層和分塊的混合結(jié)構(gòu),如圖所示:應(yīng)用程序包人機(jī)對(duì)話(huà)控制窗口圖形仿真程序包屏幕圖形點(diǎn)陣圖形操作系統(tǒng)計(jì)算機(jī)硬件4.4.1OOD基本任務(wù)2.對(duì)象設(shè)計(jì)

在面向?qū)ο蟮南到y(tǒng)中,模塊、數(shù)據(jù)結(jié)構(gòu)及接口等都集中體現(xiàn)在對(duì)象和對(duì)象層次結(jié)構(gòu)中。對(duì)象設(shè)計(jì)是為每個(gè)類(lèi)的屬性和操作進(jìn)行詳細(xì)設(shè)計(jì),包括屬性和操作,它們的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法。3.消息設(shè)計(jì)設(shè)計(jì)連接類(lèi)與它的協(xié)作者之間的消息規(guī)約(specificationofthemessages)。4.優(yōu)化及復(fù)審

主要考慮提高效率和建立良好的繼承結(jié)構(gòu)。4.4.2OOD模型面向?qū)ο笤O(shè)計(jì)準(zhǔn)則:1)模塊化 2)抽象3)信息隱藏4)弱耦合 5)強(qiáng)內(nèi)聚6)可重用介紹幾種典型的面向?qū)ο蟮拈_(kāi)發(fā)方法:Coda方法,Booch方法和OMT方法

隨著面向?qū)ο箝_(kāi)發(fā)方法的發(fā)展,逐漸形成了幾種主要的流派:Coda方法

Booch方法OMT方法

OOSE方法

4.5幾種典型的面向?qū)ο蟮姆椒ㄒ?、Coda/Yourdon方法—由OOA,OOD構(gòu)成

建立問(wèn)題域的分析模型。該模型由5個(gè)層次組成:即主題層、對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層。要建立4個(gè)組元的設(shè)計(jì)模型:?jiǎn)栴}域組元、人機(jī)交互組元、任務(wù)管理組元和數(shù)據(jù)管理組元。

該方法的特點(diǎn)是:簡(jiǎn)單、易學(xué),對(duì)于對(duì)象、結(jié)構(gòu)、服務(wù)的認(rèn)定較系統(tǒng)、完整、可操作性強(qiáng)。

4.5幾種典型的面向?qū)ο蟮姆椒?.

Coda方法的OOA

在Coda方法中,構(gòu)造和評(píng)審OOA概念模型的順序由五個(gè)層次組成:類(lèi)與對(duì)象、屬性、服務(wù)、結(jié)構(gòu)和主題這五個(gè)層次表示分析的不同側(cè)面。類(lèi)與對(duì)象層屬性層服務(wù)層結(jié)構(gòu)層主題層類(lèi)的邊界實(shí)例的邊界屬性實(shí)例連接服務(wù)消息連接泛化與特化結(jié)構(gòu)整體與部分結(jié)構(gòu)主題圖4.10分析過(guò)程的五個(gè)層次2.

Coda方法的OOD`

Coad方法的OOD模型是在OOA模型5個(gè)層次基礎(chǔ)上,建立系統(tǒng)的4類(lèi)組元,

PDC問(wèn)題域組元

HIC人機(jī)界面組元

TMC任務(wù)管理組元

DMC數(shù)據(jù)管理組元主題層對(duì)象層結(jié)構(gòu)層屬性層服務(wù)層圖4.12Coda

OOD模型1)設(shè)計(jì)問(wèn)題域組元(problemdomaincomponent)2)設(shè)計(jì)人機(jī)界面組元(humaninteractioncomponent)3)設(shè)計(jì)任務(wù)管理組元(taskmanagement

component)

4)設(shè)計(jì)數(shù)據(jù)管理組元(datamanagement

component)

Booch方法的開(kāi)發(fā)模型包括靜態(tài)模型和動(dòng)態(tài)模型,靜態(tài)模型分為邏輯模型和物理模型,描述了系統(tǒng)的構(gòu)成和結(jié)構(gòu),動(dòng)態(tài)模型分為狀態(tài)圖和時(shí)序圖。該方法對(duì)每一步都作了詳細(xì)的描述,描述手段豐富、靈活。不僅建立了開(kāi)發(fā)方法,還提出了設(shè)計(jì)人員的技術(shù)要求,不同開(kāi)發(fā)階段的資源人力配制。二、Booch方法

1.

Booch方法的基本模型

⑴類(lèi)圖類(lèi)名類(lèi)名父類(lèi)子類(lèi)(a)關(guān)聯(lián)(b)繼承整體類(lèi)成員類(lèi)請(qǐng)求服務(wù)類(lèi)提供服務(wù)類(lèi)(c)包含(d)使用圖4.13類(lèi)圖表示控制環(huán)境冷氣管理計(jì)劃暖氣燈光溫度執(zhí)行機(jī)構(gòu)111N圖4.14溫室管理系統(tǒng)的類(lèi)圖

對(duì)象圖由對(duì)象和消息組成⑵對(duì)象圖對(duì)象1對(duì)象2編號(hào):消息名:計(jì)劃分析計(jì)劃度量1:收獲時(shí)間(C)C:谷物:計(jì)劃管理3:成熟時(shí)間()6:成本()5:作物::產(chǎn)量4:產(chǎn)量()2:狀態(tài)()圖4.16溫室管理系統(tǒng)的對(duì)象圖圖4.15對(duì)象圖的表示⑶狀態(tài)圖狀態(tài)1狀態(tài)2事件名/操作空閑白天定義氣候夜晚日落日出終止氣候溫度上升/調(diào)溫()溫度下降/調(diào)溫()圖4.18環(huán)境控制器類(lèi)的狀態(tài)圖圖4.17狀態(tài)圖的表示⑷時(shí)序圖用戶(hù)對(duì)象1對(duì)象2

用戶(hù)服務(wù)請(qǐng)求

內(nèi)部服務(wù)請(qǐng)求

服務(wù)返回

服務(wù)返回圖4.19溫室管理系統(tǒng)的時(shí)序圖

⑸模塊圖⑹進(jìn)程圖氣候暖氣計(jì)劃

作物定義冷氣

氣候定義圖4.20溫室管理系統(tǒng)的模塊圖溫室工作站溫室A溫室B溫室C圖4.21溫室管理系統(tǒng)的進(jìn)程圖

面向?qū)ο蟮姆椒▽W(xué)又稱(chēng)為對(duì)象模型技術(shù),OMT(ObjectModelTechnology)是一種軟件工程方法學(xué),支持整個(gè)軟件生存周期,它覆蓋了問(wèn)題構(gòu)成、分析、設(shè)計(jì)和實(shí)現(xiàn)等階段。

OMT方法使用了建模的思想,討論如何建立一個(gè)實(shí)際的應(yīng)用模型。從3個(gè)不同而又相關(guān)的角度建立了三類(lèi)模型:對(duì)象模型、動(dòng)態(tài)模型和函數(shù)模型,OMT為每一個(gè)模型提供了圖形表示。三、面向?qū)ο蟮慕<夹g(shù)(OMT)1.

對(duì)象模型技術(shù)的基本概念

OMT方法討論的核心就是建立三類(lèi)模型:

對(duì)象模型描述了由對(duì)象和相應(yīng)實(shí)體構(gòu)成的系統(tǒng)靜態(tài)結(jié)構(gòu),描述了系統(tǒng)中對(duì)象的標(biāo)識(shí),屬性、操作及對(duì)象的相互關(guān)系。

動(dòng)態(tài)模型根據(jù)事件和狀態(tài)描述了系統(tǒng)的控制結(jié)構(gòu),系統(tǒng)中與時(shí)間和操作順序有關(guān)的內(nèi)容。

函數(shù)模型著重描述系統(tǒng)中與值的轉(zhuǎn)換有關(guān)的問(wèn)題,如函數(shù)、映射、約束和函數(shù)作用等。三類(lèi)模型描述的角度不同,卻又相互聯(lián)系。2.

建立對(duì)象模型對(duì)象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。構(gòu)成對(duì)象模型的基本元素有:對(duì)象(類(lèi))、它們之間的關(guān)系。類(lèi)名屬性操作

類(lèi)名屬性名(1),數(shù)據(jù)類(lèi)型1=缺省值1屬性名(2),數(shù)據(jù)類(lèi)型2=缺省值2………操作名1(變量名1):結(jié)果類(lèi)型1操作名2(變量名2):結(jié)果類(lèi)型2………(類(lèi)名)對(duì)象名屬性操作對(duì)象名類(lèi)名類(lèi)之間、對(duì)象之間的關(guān)系⑴關(guān)聯(lián)與鏈

①二元關(guān)聯(lián)、三元關(guān)聯(lián)人員公司雇用二元關(guān)聯(lián)的例(人員)張濤(公司)通大雇用鏈的例子項(xiàng)目語(yǔ)言◆人(項(xiàng)目)CAD系統(tǒng)(語(yǔ)言)C語(yǔ)言◆(人)林珩三元關(guān)聯(lián)的例鏈的例子②受限關(guān)聯(lián)③用重?cái)?shù)、鏈屬性和角色進(jìn)一步描述。直線(xiàn)名稱(chēng)點(diǎn)名稱(chēng)相交2+人公司●●公司名字個(gè)人名字工作職務(wù)工資關(guān)聯(lián)雇主雇員⑵繼承性(Inheritance)繼承性通常又稱(chēng)為概括,表示基類(lèi)與子類(lèi)的關(guān)系。運(yùn)輸工具陸上運(yùn)輸工具水上運(yùn)輸工具汽車(chē)水陸兩用車(chē)船⑶聚集表整體與部分的關(guān)系。段落句子◆●微機(jī)系統(tǒng)◆監(jiān)視器主機(jī)箱鼠標(biāo)鍵盤(pán)●◆底架CPURAM風(fēng)扇

銀行網(wǎng)絡(luò)系統(tǒng)ATM(AutoTradeMachine)銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動(dòng)出納機(jī)。自動(dòng)出納機(jī)自動(dòng)出納機(jī)自動(dòng)出納機(jī)出納站分理處計(jì)算機(jī)分理處計(jì)算機(jī)出納站帳戶(hù)帳戶(hù)圖1銀行網(wǎng)絡(luò)系統(tǒng)的示意圖用戶(hù)分行計(jì)算機(jī)問(wèn)題的陳述

采用OMT方法對(duì)銀行網(wǎng)絡(luò)系統(tǒng)ATM(AutoTradeMachine)進(jìn)行分析和設(shè)計(jì)。銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動(dòng)出納機(jī);各分理處用自己的計(jì)算機(jī)處理業(yè)務(wù)(保存帳戶(hù)、處理事務(wù)等);各分理處與出納站通過(guò)網(wǎng)絡(luò)通信;出納站錄入帳戶(hù)和事務(wù)數(shù)據(jù);自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信;自動(dòng)出納機(jī)與用戶(hù)接口,接受現(xiàn)金卡;發(fā)放現(xiàn)金;打印收據(jù);分行計(jì)算機(jī)與撥款分理處結(jié)帳。要求系統(tǒng)正確處理同一帳戶(hù)的并發(fā)訪(fǎng)問(wèn);網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。圖1給出了銀行網(wǎng)絡(luò)系統(tǒng)的示意圖。對(duì)象模型銀行碼錄入站遠(yuǎn)程事務(wù)現(xiàn)金卡銀行名、卡片碼安全號(hào)出納員事務(wù)出納員名字出納站分行站代碼帳戶(hù)余額、類(lèi)型貸款限定顧客名字地址事務(wù)種類(lèi)、日期、時(shí)間、數(shù)量卡片權(quán)限密碼、限制更新數(shù)量、類(lèi)型自動(dòng)出納機(jī)分發(fā)現(xiàn)金雇員號(hào)站代碼分理處名字帳戶(hù)號(hào)卡片碼錄入組成擁有擁有雇用訪(fǎng)問(wèn)標(biāo)識(shí)發(fā)行被錄入開(kāi)始涉及維持有有3.

建立動(dòng)態(tài)模型動(dòng)態(tài)模型著重于系統(tǒng)的邏輯結(jié)構(gòu);描述某時(shí)刻對(duì)象及其聯(lián)系的改變。包括狀態(tài)圖和事件追綜圖。一、事件和狀態(tài)狀態(tài)—對(duì)象所具有的屬性值,具有時(shí)間性和持續(xù)性。事件—對(duì)于對(duì)象的觸發(fā)行為,指從一個(gè)對(duì)象到另一個(gè)對(duì)象的信息的單向傳遞。腳本—在系統(tǒng)的某一執(zhí)行期間內(nèi)的一系列事件。在系統(tǒng)中具有屬性值、鏈路的對(duì)象,可能相互激發(fā),引起狀態(tài)的一系列變化。

有的事件傳遞的是簡(jiǎn)單信號(hào),有的事件則傳遞的是數(shù)據(jù)值。由事件傳送的數(shù)據(jù)值稱(chēng)為“屬性”。⑴狀態(tài)圖

狀態(tài)圖是一個(gè)狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重于描述每一類(lèi)對(duì)象的動(dòng)態(tài)行為,狀態(tài)的遷移?!駹顟B(tài)A活動(dòng)狀態(tài)B◎狀態(tài)A/

操作事件B[條件]起始狀態(tài)終結(jié)狀態(tài)狀態(tài)圖

動(dòng)態(tài)模型由多個(gè)狀態(tài)圖組成,每個(gè)有重要行為的類(lèi)都有一個(gè)狀態(tài)圖。各狀態(tài)圖可并發(fā)地執(zhí)行及獨(dú)立改變狀態(tài)。圖例 狀態(tài)狀態(tài)遷移狀態(tài)打電話(huà)狀態(tài)圖空閑撥號(hào)連接鈴響連接斷連忙音快速忙音撥號(hào)音超出時(shí)間記錄的信息放下話(huà)筒放下話(huà)筒提起話(huà)筒超時(shí)超時(shí)無(wú)效號(hào)碼有效號(hào)碼對(duì)方應(yīng)答通路一位號(hào)碼中斷線(xiàn)忙號(hào)碼忙對(duì)方電話(huà)掛斷信息送完圖4.39打電話(huà)狀態(tài)圖⑶事件追蹤圖事件追蹤圖側(cè)重描述系統(tǒng)執(zhí)行過(guò)程中的一個(gè)特定的“場(chǎng)景(Scenarios)”。場(chǎng)景有時(shí)也叫“腳本”,是完成系統(tǒng)某個(gè)功能的一個(gè)事件序列。即是描述多個(gè)對(duì)象的集體行為。腳本—系統(tǒng)某一次特定運(yùn)行時(shí)期內(nèi)發(fā)生的事件序列。例如:打電話(huà)的場(chǎng)景:1、拿起電話(huà)受話(huà)器 12、打電話(huà)者聽(tīng)見(jiàn)振鈴聲2、電話(huà)忙音開(kāi)始 13、對(duì)方接電話(huà)3、撥電話(huà)號(hào)碼數(shù)5 12、接話(huà)方停止振鈴4、電話(huà)忙音結(jié)束 14、打電話(huà)方停止振鈴聲5、撥電話(huà)號(hào)碼數(shù)5 15、通

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論