信息系統(tǒng)分析與設(shè)計(jì)第五章-圖文_第1頁
信息系統(tǒng)分析與設(shè)計(jì)第五章-圖文_第2頁
信息系統(tǒng)分析與設(shè)計(jì)第五章-圖文_第3頁
信息系統(tǒng)分析與設(shè)計(jì)第五章-圖文_第4頁
信息系統(tǒng)分析與設(shè)計(jì)第五章-圖文_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一節(jié)面向?qū)ο蟮幕靖拍畹诙?jié)經(jīng)典的面向?qū)ο蠓椒ǖ谌?jié)面向?qū)ο蟮姆植际郊夹g(shù)第四節(jié)統(tǒng)一建模語言UML概述第五節(jié)UML建模技術(shù)第六節(jié)UML在系統(tǒng)開發(fā)中的應(yīng)用第七節(jié)面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)實(shí)例

第五章面向?qū)ο蠓椒ǖ谝还?jié)面向?qū)ο蟮幕靖拍钜?、概述二、?duì)象(object)三、消息(message)與操作方法(method)四、對(duì)象接口(Interface)五、類(class)六、繼承性(inheritance)七、封裝性(encapsulation)八、多態(tài)性(polymorphism)一、概述面向?qū)ο笏枷氲钠鹪?/p>

1967年,第一個(gè)面向?qū)ο蟮恼Z言—Simula。80年代,Smalltalk、C++、ObjectiveC等通用面向?qū)ο笳Z言出現(xiàn)。面向?qū)ο笏枷氲某墒?/p>

Smalltalk—80和C++語言被越來越多的人所理解和接受,形成面向?qū)ο缶幊?Object-OrientedPrograming,即OOP)信息系統(tǒng)的開發(fā)與面向?qū)ο笏枷隣OP解決問題的思路二、對(duì)象(object)

對(duì)象的基本概念:問題空間中與系統(tǒng)問題處理相關(guān)的事物的抽象體,它是把事物的屬性和對(duì)屬性數(shù)據(jù)的操作方法結(jié)合而成的整體。對(duì)象的三個(gè)特性:

1、預(yù)定義行為:對(duì)象初始時(shí)所定義的動(dòng)作序列。

2、對(duì)象的狀態(tài):一個(gè)對(duì)象可以有任意個(gè)屬性或域,對(duì)象的狀態(tài)和存儲(chǔ)在它的域中的值相對(duì)應(yīng)。

3、對(duì)象的標(biāo)識(shí):標(biāo)識(shí)是對(duì)象的唯一編號(hào),用來與其他對(duì)象相區(qū)別。三、消息與操作方法(method)

消息(message):對(duì)象之間進(jìn)行通信的數(shù)據(jù)。一個(gè)消息由下列三個(gè)元素組成:?消息名;?零個(gè)或多個(gè)參數(shù)列表,為接收對(duì)象提供數(shù)據(jù)信息;?對(duì)接收對(duì)象的引用。操作方法(method):與一個(gè)對(duì)象有關(guān)的過程,即實(shí)現(xiàn)某一操作的一段代碼。方法綁定:對(duì)象收到一個(gè)消息后,決定調(diào)用哪個(gè)方法來響應(yīng)該消息的過程。三、消息與操作方法(method)(續(xù))執(zhí)行與消息對(duì)應(yīng)的預(yù)定義行為可能會(huì)產(chǎn)生三種結(jié)果:?返回一個(gè)值給消息發(fā)送者。?改變接收者的狀態(tài)。?改變作為參數(shù)傳給接收者的對(duì)象的狀態(tài)。消息到達(dá)

服務(wù)(操作方法)

服務(wù)(操作方法)屬性(數(shù)據(jù))據(jù))

消息發(fā)出圖5-1對(duì)象的分解圖對(duì)象接口四、對(duì)象接口(Interface)

對(duì)象的接口是以一組操作方法的形式出現(xiàn)的,每一個(gè)操作都對(duì)應(yīng)于在響應(yīng)某個(gè)消息時(shí)對(duì)象所完成的預(yù)定義行為,客戶通過對(duì)象的接口來理解對(duì)象支持的各種行為,并根據(jù)接口來發(fā)送消息。調(diào)用對(duì)象的操作方法要遵守一定的規(guī)則,這些規(guī)則描述了如何使用對(duì)象的每一個(gè)操作。對(duì)象接口可以分為公有接口和限制型接口五、類(class)

類的概念:類是在對(duì)象之上的抽象,一個(gè)類定義了一組大體上相同的對(duì)象。一個(gè)類所包含的操作方法和屬性數(shù)據(jù)描述了一組對(duì)象的共同行為和屬性。

1、對(duì)象是類的具體化,是類的實(shí)例。

2、每一個(gè)對(duì)象都屬于某個(gè)類。類不僅決定了對(duì)象的類型,還決定它的域和方法。類的層次結(jié)構(gòu)類的主要功能六、繼承性(inheritance)

繼承性是類層次結(jié)構(gòu)中的一個(gè)重要特點(diǎn),是超類和子類之間共享數(shù)據(jù)和操作方法的機(jī)制。圖5-2所示為超類A和它的子類B之間的繼承關(guān)系。類A得到繼承,叫做“單重繼承”。如果一個(gè)子類有兩個(gè)以上的父類,則稱為“多重繼承”。圖5-2類的繼承關(guān)系繼承部分

從A繼承AB增加部分六、繼承性(inheritance)(續(xù))

繼承是軟件重用的一個(gè)基本機(jī)制。當(dāng)通過繼承定義一個(gè)新類時(shí),新類獲得了已存在類的域和行為。圖5-3中的類圖所描繪了繼承層次結(jié)構(gòu)。RectangleEllipseRegionPointFigureLineSegment圖5-3類的層次結(jié)構(gòu)Circle六、繼承性(inheritance)(續(xù))繼承有下面三種使用方式:子類定義新的屬性和方法作為對(duì)它所繼承的屬性和方法的補(bǔ)充。子類重新實(shí)現(xiàn)所繼承的一個(gè)或多個(gè)方法。子類實(shí)現(xiàn)一個(gè)或多個(gè)其父類聲明但沒有實(shí)現(xiàn)的方法。使用繼承可以創(chuàng)建一個(gè)類家族。當(dāng)利用繼承定義新類時(shí),這個(gè)新子類就可以被客戶使用,軟件系統(tǒng)也因增加新的類型而擴(kuò)展了。七、封裝性(encapsulation)

封裝的概念:

把一組相關(guān)軟件元素組織到一起的方法。①對(duì)所有對(duì)象的內(nèi)部軟件范圍的邊界進(jìn)行限定;②對(duì)各對(duì)象之間相互作用的接口進(jìn)行描述;③對(duì)每個(gè)對(duì)象的內(nèi)部實(shí)現(xiàn)(操作程序和數(shù)據(jù))進(jìn)行保護(hù)。封裝的基本單位是對(duì)象利用封裝來隱藏那些不屬于對(duì)象公有接口的軟件元素稱為信息隱藏。

八、多態(tài)性(polymorphism)

多態(tài)的概念:不同的對(duì)象收到同一消息可產(chǎn)生多種不同的結(jié)果,即會(huì)有多種不同形式。多態(tài)的實(shí)現(xiàn)受到繼承性的支持利用類層次的繼承關(guān)系,把具有通用功能的消息存放在高層次,而實(shí)現(xiàn)這一功能的不同的行為放在較低層次第二節(jié)

經(jīng)典的面向?qū)ο蠓椒?/p>

一、OOA/OOD二、對(duì)象模型技術(shù)OMT(ObjectModelTechnology)

三、面向?qū)ο筌浖こ?OOSE)四、Booch方法

一、OOA/OODOOA(OOAnalysis)/OOD(OODesign)1、面向?qū)ο蠓治?OOA):

面向?qū)ο蟮姆治龇椒ㄖ饕ǎ悍治霭l(fā)現(xiàn)對(duì)象;定義它們的類,然后建立類之間的關(guān)系;找出重用類,最后用重用類的實(shí)例-對(duì)象構(gòu)造系統(tǒng)框架。

OOA可以按照以下五個(gè)步驟來進(jìn)行:①標(biāo)識(shí)對(duì)象:②標(biāo)識(shí)結(jié)構(gòu):③標(biāo)識(shí)主題:④定義屬性:⑤定義方法:

一、OOA/OOD2、面向?qū)ο笤O(shè)計(jì)(OOD)從OOA到OOD是一個(gè)漸進(jìn)的模型擴(kuò)充過程,OOD包括了問題域部分、人機(jī)交互部分、任務(wù)管理部分和數(shù)據(jù)管理部分等四個(gè)部分的設(shè)計(jì)。二、對(duì)象模型技術(shù)OMT(ObjectModelTechnology)

OMT的思想:建立描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型;建立描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型;建立描述系統(tǒng)功能的功能模型。OMT方法覆蓋了應(yīng)用開發(fā)的全過程,包括分析、設(shè)計(jì)和實(shí)現(xiàn)。二、對(duì)象模型技術(shù)OMT(ObjectModelTechnology)分析階段的對(duì)象模型表示系統(tǒng)靜態(tài)的、結(jié)構(gòu)化的特征。在OMT方法中使用場景描述對(duì)象間的相互作用。事件圖描述參與某個(gè)腳本的對(duì)象和事件。狀態(tài)圖描述系統(tǒng)中對(duì)象的各種狀態(tài)以及觸發(fā)它們之間相互轉(zhuǎn)換的事件。OMT方法的設(shè)計(jì)階段由系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)兩部分構(gòu)成。OMT方法突出的特點(diǎn)是在分析階段,它可以較全面地描述系統(tǒng)的靜態(tài)結(jié)構(gòu),適合于數(shù)據(jù)密集型信息系統(tǒng)的開發(fā)。三、面向?qū)ο筌浖こ?OOSE)

面向?qū)ο筌浖こ?OOSE)OOSE方法將面向?qū)ο蟮乃枷胴灤┑杰浖こ讨?,目的是為了得到一個(gè)能適應(yīng)變化、健壯性好和維護(hù)性強(qiáng)的系統(tǒng)。OOSE方法是一個(gè)用例(usecase)驅(qū)動(dòng)的方法,它建立的所有模型都是以用例模型為基礎(chǔ)的。OOSE采用五個(gè)模型來完成其實(shí)現(xiàn)目標(biāo)系統(tǒng)的過程,這五個(gè)模型又都是以用例模型為基礎(chǔ)的。OOSE、構(gòu)造和測試。三、面向?qū)ο筌浖こ?OOSE)

(1).需求模型(RM):用來捕獲用戶的需求,主要的建模手段有用例圖、問題域?qū)ο竽P秃腿伺c系統(tǒng)的接口界面。(2).分析模型(AM):該模型定義了一個(gè)健壯的、可擴(kuò)展的系統(tǒng)的基本結(jié)構(gòu)。(3).設(shè)計(jì)模型(DM):DM將AM的對(duì)象定義為塊,這實(shí)際是考慮具體實(shí)現(xiàn)的表現(xiàn)。(4).實(shí)現(xiàn)模型(IM):就是用某種語言(最好是支持面向?qū)ο螅﹣韺?shí)現(xiàn)DM。(5).測試模型(TM):類或?qū)ο蟮牡讓訙y試可以由程序人員自行完成,但集成測試將由獨(dú)立于開發(fā)組的測試人員完成,他們依次從類的底層測試開始,進(jìn)行組裝測試、集成測試。四、Booch方法

Booch方法將系統(tǒng)的開發(fā)工作分為兩個(gè)過程:微觀過程主要用于建立一個(gè)反復(fù)的、遞增的開發(fā)框架宏觀過程控制開發(fā)過程中的許多活動(dòng),宏觀過程關(guān)心的是開發(fā)過程中的管理方面。Booch方法將工作集中在開發(fā)過程中的設(shè)計(jì)階段,該方法對(duì)于開發(fā)的各階段沒有明確的劃分。第三節(jié)面向?qū)ο蟮姆植际郊夹g(shù)一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA1、CORBA體系結(jié)構(gòu)2、CORBA的主要概念

二、微軟公司的COM/DCOM組件技術(shù)1、組件對(duì)象模型COM2、分布式組件對(duì)象模型DCOM三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)1、JavaBean2、企業(yè)JavaBean(EJB)

一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA

CORBA1、CORBA體系結(jié)構(gòu):圖5-4顯示了CORBA的體系結(jié)構(gòu)。

客戶端對(duì)象實(shí)現(xiàn)動(dòng)態(tài)調(diào)用接口IDL樁ORB接口靜態(tài)

IDL

骨架動(dòng)態(tài)骨架接口對(duì)象適配器ORB核心圖5-4CORBA體系結(jié)構(gòu)一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA

CORBA上的服務(wù)用IDL描述。與傳統(tǒng)的Client/Server模式不同,CORBA是一種多層C/S結(jié)構(gòu)。2、CORBA的主要概念:(1)對(duì)象請求代理ORB(ObjectRequestBroker):CORBA體系結(jié)構(gòu)的核心就是ORB,ORB是使得客戶應(yīng)用程序能調(diào)用遠(yuǎn)端對(duì)象方法的一種機(jī)制。一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA(2)接口定義語言IDL(InterfaceDefinitionLanguage):IDL則使CORBA做到語言無關(guān);IDL僅僅定義接口,而不定義實(shí)現(xiàn);IDL是描述性語言;IDL的語法與C++、Java非常相像。一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA通用ORB互聯(lián)協(xié)議GIOP和IIOPGIOP定義了以下幾個(gè)方面:①公共數(shù)據(jù)表示②GIOP消息格式③GIOP消息傳遞一、公共對(duì)象請求代理體系結(jié)構(gòu)CORBA(3)動(dòng)態(tài)調(diào)用接口(DII)和動(dòng)態(tài)骨架接口(DSI)動(dòng)態(tài)調(diào)用接口和動(dòng)態(tài)骨架接口是用來支持客戶在不知道服務(wù)器對(duì)象的接口的情況下也能調(diào)用服務(wù)器對(duì)象。其中DII為客戶提供了動(dòng)態(tài)調(diào)用方式,DSI為客戶提供了動(dòng)態(tài)實(shí)現(xiàn)方式二、微軟公司的COM/DCOM組件技術(shù)1、組件對(duì)象模型COMCOM(ComponentObjectModel)是一種不依賴于任何語言的組件對(duì)象模型。COM中的對(duì)象被稱為組件對(duì)象或COM對(duì)象。強(qiáng)調(diào)單獨(dú)地設(shè)計(jì)對(duì)象接口并約定只能通過對(duì)象接口使用COM對(duì)象,這是COM對(duì)象區(qū)別于其它源代碼對(duì)象的重要特征,也是確保COM對(duì)象具有與語言無關(guān)的可重用性的基礎(chǔ)。組件對(duì)象模型COM的特點(diǎn)二、微軟公司的COM/DCOM組件技術(shù)2、分布式組件對(duì)象模型DCOMDCOM(DistributedCOM)是COM組件的擴(kuò)展。DCOM在COM的應(yīng)用程序、組件、工具等基礎(chǔ)之上,處理網(wǎng)絡(luò)協(xié)議的低層次的細(xì)節(jié)問題,而不必關(guān)心太多的網(wǎng)絡(luò)協(xié)議細(xì)節(jié),從而使用戶能夠集中精力解決用戶所要求的問題。DCOM位于應(yīng)用程序的組件之間,將組件以不可見的方式膠合在一起組成具有完整功能的應(yīng)用程序。二、微軟公司的COM/DCOM組件技術(shù)圖5-5顯示了DCOM的整體結(jié)構(gòu):圖5-5DCOM結(jié)構(gòu)客戶端運(yùn)行時(shí)的COM組件運(yùn)行時(shí)的COM組件安全提供遠(yuǎn)程過程調(diào)用協(xié)議棧安全提供遠(yuǎn)程過程調(diào)用協(xié)議棧組件DCOM通信協(xié)議

二、微軟公司的COM/DCOM組件技術(shù)2、分布式組件對(duì)象模型DCOMDCOM的技術(shù)特點(diǎn)包括:(1)語言無關(guān)性;(2)連接管理;(3)位置獨(dú)立性;(4)可擴(kuò)展性強(qiáng);(5)靈活的配置;(6)協(xié)議無關(guān)性;三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)

1、JavaBean:JavaBean是目前與微軟公司的控件技術(shù)最有競爭力的一種代碼組件技術(shù)。JavaBean是基于Java語言的代碼技術(shù),它將Java語言本身所具有的“一次編寫,到處運(yùn)行”特性擴(kuò)展到代碼組件Bean,使Bean也具有平臺(tái)無關(guān)性。三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)Bean是一種Java類,但是由于它必須要具有一般Java類所沒有的特性:(1)方法;(2)屬性;(3)事件;(4)自查;(5)對(duì)應(yīng)用程序構(gòu)造器的支持;(6)客戶定制;(7)永久性存儲(chǔ);三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)重用Bean有三種不同的方式:第一種是在應(yīng)用程序構(gòu)造工具中,主要通過可視化的操作方式重用Bean;第二種是通過JSP、PHP腳本編程語言來重用Bean;第三種仍然是在某種特定的編程語言中用編程的方式重用Bean,只不過是把Bean當(dāng)作一般的Java類來使用。三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)2、企業(yè)JavaBean(EJB)SUN公司提出的另一個(gè)組件模型是企業(yè)JavaBean(EnterpriseJavaBeans,EJB),它是針對(duì)企業(yè)應(yīng)用程序的新的Java組件模型。它將服務(wù)器端的組件和分布式對(duì)象技術(shù),如CORBA和JavaRMI結(jié)合起來,從而大大簡化了應(yīng)用程序開發(fā)的任務(wù)。分布式計(jì)算使得訪問商務(wù)系統(tǒng)更加容易。三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)SUN對(duì)EJB的定義是:EJB結(jié)構(gòu)是開發(fā)和配置基于組件的分布式商務(wù)應(yīng)用程序的一種組件結(jié)構(gòu)。EJB的組件構(gòu)架模型如圖5-6。

圖5-6EJB結(jié)構(gòu)客戶層中間層數(shù)據(jù)層Web服務(wù)器ServletJSPHTMLXML應(yīng)用服務(wù)器EJBEJBEJB內(nèi)部客戶內(nèi)部客戶外部客戶外部客戶各種Java服務(wù)JNDI,JDBC,JTA,JMS,RMI-IIOP等RDBMSERP系統(tǒng)舊有其他系統(tǒng)三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)在EJB開發(fā)體系結(jié)構(gòu)中定義了具體的開發(fā)流程和具體的開發(fā)角色:u

組件提供者;u

應(yīng)用集成者;u

部署人員;u

EJB服務(wù)器提供者;u

EJB容器提供者;

u持久性管理提供者;三、JavaBean和企業(yè)JavaBean(EJB)技術(shù)服務(wù)器端EJB組件有兩種基本類型:entitybean(實(shí)體Bean)sessionbean(會(huì)話Bean)一個(gè)實(shí)用的區(qū)分方法是實(shí)體bean模型的商務(wù)概念能用名詞表達(dá)。實(shí)體bean是為現(xiàn)實(shí)世界的對(duì)象建造模型,這些對(duì)象通常是數(shù)據(jù)庫中的一些持久記錄。第四節(jié)統(tǒng)一建模語言UML概述一、面向?qū)ο蠼6?、UML的歷史沿革

一、面向?qū)ο蠼?/p>

面向?qū)ο蠓椒ú坏且环N軟件工程的開發(fā)技術(shù),而且是一種對(duì)客觀事物進(jìn)行分析與處理的思想方法,一種抽象的思維方式。UML的目標(biāo)主要:(1)用對(duì)象的概念來構(gòu)造系統(tǒng)模型(不僅是針對(duì)軟件系統(tǒng))。(2)建立直觀的從模型直至可執(zhí)行體之間的對(duì)應(yīng)關(guān)系。(3)為復(fù)雜的系統(tǒng)建立衡量標(biāo)準(zhǔn)。(4)創(chuàng)建一種對(duì)人和機(jī)器都適合的語言,即可以用人工來描述,又可以用機(jī)器實(shí)現(xiàn)計(jì)算機(jī)輔助建模。一、面向?qū)ο蠼#ɡm(xù))面向?qū)ο蠼5脑恚阂环N建模方法應(yīng)包含建模過程和建模語言兩個(gè)部分。建模過程定義建模的步驟和處理問題的基本原則。建模與建模過程的密切聯(lián)系。

1、同一建模過程可由不同建模語言來描述;

2、不同建模過程也可能由功能強(qiáng)大的同一建模語言來描述。二、UML的歷史沿革

從二十世紀(jì)八十年代初期開始,包括Booch、OMT、Shlaer/Mellor、Odell/Martin、Objectory和其他的一些方法。到了二十世紀(jì)九十年代中期,出現(xiàn)了第二代面向?qū)ο蠓椒?,著名的有Booch‘94、OMT的沿續(xù)以及Fusion等。UML是第三代用來為面向?qū)ο箝_發(fā)系統(tǒng)的產(chǎn)品進(jìn)行可視化說明和編制文檔的方法,UML的形成過程見圖5-7所示。圖5-7UML的歷史第五節(jié)UML建模技術(shù)一、統(tǒng)一建模語言UML1、一種建模語言2、促進(jìn)信息溝通3、支持系統(tǒng)構(gòu)建二、UML的主要內(nèi)容1、UML的構(gòu)造塊2、UML規(guī)則3、UML中的公共機(jī)制三、UML的圖形1、用例圖(usecasediagram)2、靜態(tài)圖(Staticdiagram)3、行為圖(Behaviordiagram)4、交互圖(Interactivediagram)5、實(shí)現(xiàn)圖(Implementationdiagram)一、統(tǒng)一建模語言UML

UML的優(yōu)勢和特點(diǎn):

1、UML融合了Booch、OMT和OOSE方法中的基本概念;

2、UML擴(kuò)展了現(xiàn)有方法的應(yīng)用范圍;

3、UML是標(biāo)準(zhǔn)的建模語言,而不是標(biāo)準(zhǔn)的開發(fā)過程。UML僅僅是一種建模語言,是軟件開發(fā)方法中的一部分,它是獨(dú)立于過程的,但它與以用例為驅(qū)動(dòng)、以體系結(jié)構(gòu)為中心、迭代及增量的開發(fā)過程相結(jié)合將會(huì)發(fā)揮最大的優(yōu)勢。一、統(tǒng)一建模語言UML(續(xù))如何理解UML1、一種建模語言

2、促進(jìn)信息溝通

3、支持系統(tǒng)構(gòu)建二、UML的主要內(nèi)容UML具有一個(gè)完整的概念模型,提供了一套完整、全面的表達(dá)方法,其主要元素包括:UML的基本構(gòu)造塊、支配這些構(gòu)造塊如何放在一起的規(guī)則和一些運(yùn)用于整個(gè)UML的公共機(jī)制。1、UML的構(gòu)造塊在UML中可以將詞匯劃分為3種構(gòu)造塊,即3類詞匯或基本元素:事物、關(guān)系和圖。(1)UML中的事物事物是對(duì)模型中最具有代表性的成分的抽象,可分為結(jié)構(gòu)事物、行為事物、分組事物和注釋事物;二、UML的主要內(nèi)容(續(xù))

結(jié)構(gòu)事物:通常是模型的靜態(tài)部分,描述概念或物理元素,UML中共有7種結(jié)構(gòu)事物:a.類(class):與面向?qū)ο蠓椒ㄖ蓄惖母拍钜恢隆D5-8a中,給出了類Transaction,它包含一個(gè)屬性和兩個(gè)操作。b.接口(interface):描述了一個(gè)類或構(gòu)件的一個(gè)服務(wù)的操作集,圖5-8b給出了一個(gè)接口IPrint的圖示。二、UML的主要內(nèi)容(續(xù))d.用例(usecase):代表了一個(gè)系統(tǒng)功能,是對(duì)一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作將產(chǎn)生一個(gè)對(duì)特定的參與者(即系統(tǒng)用戶)有價(jià)值而且可觀察的結(jié)果。圖5-8d給出了一個(gè)用例的圖示法。c.協(xié)作(collaboration):定義了一個(gè)對(duì)象之間的交互,由一組共同工作以提供某種協(xié)作行為的角色和其它元素共同構(gòu)成的一個(gè)群體,這些協(xié)作行為大于所有元素的各自行為的總和。圖5-8c給出了一個(gè)協(xié)作“人員維護(hù)”。二、UML的主要內(nèi)容(續(xù))e.主動(dòng)類(activeclass):是一種特殊的類,其對(duì)象至少擁有一個(gè)線程或進(jìn)程。f.構(gòu)件(component):描述的是系統(tǒng)中的軟件物理事物,圖5-8e給出了構(gòu)件的圖示法。g.節(jié)點(diǎn)(node):是在運(yùn)行時(shí)存在的物理元素,表示了一種可計(jì)算的資源,圖5-8f給出了一個(gè)節(jié)點(diǎn)的圖示。二、UML的主要內(nèi)容(續(xù))IPrint人員維護(hù)登錄sHello.java應(yīng)用服務(wù)器Transactiontimeexecute()rollback()圖5-8a類圖5-8b接口圖5-8c協(xié)作圖5-8d用例圖5-8e構(gòu)件圖5-8f節(jié)點(diǎn)load空閑圖5-8g交互圖5-8h狀態(tài)java.lang圖5-8i包圖5-8j注解圖5-8UML中各種事物的圖示法二、UML的主要內(nèi)容(續(xù))行為事物:行為事物是UML模型的動(dòng)態(tài)部分,是模型中的動(dòng)詞,描述了跨越時(shí)間和空間范圍的系統(tǒng)行為,代表了系統(tǒng)動(dòng)作的執(zhí)行。主要有兩類:a.交互b.狀態(tài)機(jī)(statemachine)二、UML的主要內(nèi)容(續(xù))分組事物分組事物是UML模型的組織部分。最重要的分組事物是包。包是把元素組織成組的一種機(jī)制。圖5-8i給出了包的圖示法。

注釋事物注釋事物是UML模型的解釋部分。圖5-8j給出了注解的圖示法。二、UML的主要內(nèi)容(續(xù))(2)UML中的關(guān)系關(guān)系能把建模語言中的事物組合聯(lián)系在一起,在UML中有四種關(guān)系:依賴(dependency);關(guān)聯(lián)(association);泛化(generalization);實(shí)現(xiàn)(realization);二、UML的主要內(nèi)容(續(xù))(3)UML中的圖

UML中主要包括了以下幾種圖形:用例圖(usecasediagram);類圖(classdiagram);對(duì)象圖(objectdiagram);包圖(packagediagram);交互圖(interactiondiagram):交互圖包括順序圖和協(xié)作圖兩種;狀態(tài)圖(statechartdiagram);二、UML的主要內(nèi)容(續(xù))活動(dòng)圖(activitydiagram);構(gòu)件圖(componentdiagram);配置圖(deploymentdiagram)。二、UML的主要內(nèi)容(續(xù))圖5-9a中,對(duì)類的操作的可見性進(jìn)行了修飾,符號(hào)+表示為公共操作,#表示為保護(hù)操作,-表示為私有操作.Transaction+commit()+rollback()#priority()-timestamp()計(jì)算機(jī)張三的計(jì)算機(jī):計(jì)算機(jī)圖5-9a操作的修飾圖5-9b類圖5-9c類的實(shí)例圖5-9修飾的標(biāo)識(shí)方法二、UML的主要內(nèi)容(續(xù))

2、UML規(guī)則

UML有用于描述如下事物的語義規(guī)則:①命名;②范圍;③可見性;

④完整性;

⑤執(zhí)行。二、UML的主要內(nèi)容(續(xù))

3、UML中的公共機(jī)制在UML中有4種貫穿整個(gè)語言且一致應(yīng)用的公共機(jī)制(1)規(guī)格說明(2)修飾(3)通用劃分(如圖5-10)(4)擴(kuò)展機(jī)制(如圖5-11)

UML中的擴(kuò)展機(jī)制包括幾個(gè)方面:構(gòu)造型(stereotype)、標(biāo)記值(taggedvalue)、約束(constraint)。二、UML的主要內(nèi)容(續(xù))客戶姓名地址電話張龍:客戶丁三:客戶王玉IUnknownISpellingspelling.java(a)類/對(duì)象劃分(b)接口/實(shí)現(xiàn)劃分圖5-10通用劃分的圖示法二、UML的主要內(nèi)容MessageQueue{version=2.0}insert()remove()refresh()《exception》Overflow{ordered}圖5-11擴(kuò)展機(jī)制二、UML的主要內(nèi)容UML概念模型構(gòu)造塊事物:結(jié)構(gòu)事物、行為事物、分組事物、注釋事物規(guī)則關(guān)系:依賴、關(guān)聯(lián)、泛化、實(shí)現(xiàn)圖:用例圖、類圖、對(duì)象圖、包圖、交互圖等公共機(jī)制規(guī)格說明修飾通用劃分?jǐn)U展機(jī)制圖5-12UML主要內(nèi)容三、UML的圖形

UML中包含五類圖用例圖類圖對(duì)象圖包圖狀態(tài)圖順序圖協(xié)作圖活動(dòng)圖構(gòu)件圖配置圖三、UML的圖形1、用例圖(usecasediagram)用例圖從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。用例圖顯示若干角色或執(zhí)行者(actor)以及這些角色與系統(tǒng)提供的用例之間的連接關(guān)系,如圖5-13所示。用例圖定義的是系統(tǒng)的功能需求。三、UML的圖形錄入客戶補(bǔ)充信息用戶校驗(yàn)錄入訂單跟蹤訂單《extend》《include》《include》業(yè)務(wù)員圖5-13用例圖三、UML的圖形2、靜態(tài)圖(Staticdiagram)靜態(tài)圖包括類圖、對(duì)象圖和包圖三種。(1)類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的。三、UML的圖形(2)對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。但是兩者之間有差別。Bob作家姓名=Bob年齡=43辦公室PC

名稱=P41.3G內(nèi)存=256家庭PC

名稱=P3933內(nèi)存=128圖5-15對(duì)象圖三、UML的圖形(3)包是UML中的一種分組事物,由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)或事物的組織結(jié)構(gòu)。3、行為圖(Behaviordiagram)行為圖描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系。包括狀態(tài)圖和活動(dòng)圖兩種,(1)狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖(statediagram)是對(duì)類圖的補(bǔ)充。如圖5-16所示。三、UML的圖形圖5-16狀態(tài)圖三、UML的圖形(2)活動(dòng)圖(activitydiagram)描述滿足用例功能需求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系。如圖5-17所示。三、UML的圖形圖5-17活動(dòng)圖終點(diǎn)打印磁盤未滿磁盤滿在屏幕上顯示“磁盤滿”在屏幕上顯示“打印”建立補(bǔ)充說明清除屏幕起點(diǎn)終點(diǎn)三、UML的圖形4、交互圖(Interactivediagram)交互圖描述對(duì)象間的交互關(guān)系。包括順序圖和協(xié)作圖兩種。(1)順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,如圖5-18所示。(2)協(xié)作圖(callobarationdiagram)和順序圖的作用一樣,反映的也是動(dòng)態(tài)協(xié)作。如圖5-19

所示。三、UML的圖形:Thread:Toolkit:ComponentPeertarget:HelloWorldcallbackLooprunrunhandleExposepaint圖5-18順序圖三、UML的圖形圖5-19協(xié)作圖三、UML的圖形5、實(shí)現(xiàn)圖(Implementationdiagram)實(shí)現(xiàn)圖包括構(gòu)件圖和配置圖兩種。(1)構(gòu)件圖(componentdiagram)描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。構(gòu)件圖有助于分析和理解部件之間的相互影響程度。

圖5-20顯示一個(gè)簡單的“HelloWorld”程序中的構(gòu)件的物理結(jié)構(gòu)情況,helloworld頁面依賴于一個(gè)圖片(hello.jpg)和類(HelloWorld.class)。三、UML的圖形HelloWorld.classhelloworld.htmlHelloWorld.javahello.jpg圖5-20構(gòu)件圖三、UML的圖形(2)配置圖(deploymentdiagram)定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。TCP/IPTCP/IPTCP/IP客戶機(jī)ACompaqProPC客戶機(jī)BIBMThinkPad應(yīng)用服務(wù)器HPNetserverWeb服務(wù)器HPNetserver圖5-21配置圖TCP/IP數(shù)據(jù)庫服務(wù)器HPL1000第六節(jié)UML在系統(tǒng)開發(fā)中的應(yīng)用一、一般應(yīng)用過程1、需求獲取2、分析3、設(shè)計(jì)4、編程5、測試二、統(tǒng)一開發(fā)過程(RationalUnifiedProcess,RUP)1、概述2、RUP的基本概念3、RUP過程分析三、計(jì)算機(jī)輔助軟件工程(CASE)工具RationalRose1、支持UML的模型2、支持多種開發(fā)語言3、代碼自動(dòng)生成4、模型的集成管理5、團(tuán)隊(duì)開發(fā)6、數(shù)據(jù)庫表的生成

一、一般應(yīng)用過程

UML在軟件系統(tǒng)開發(fā)中的應(yīng)用可以分成五個(gè)階段:1、需求獲取2、分析3、設(shè)計(jì)4、編程5、測試二、統(tǒng)一開發(fā)過程(RationalUnifiedProcess,RUP)

1、概述軟件過程由一系列的項(xiàng)目的階段、方法、技術(shù)和實(shí)踐組成,人們利用它們來開發(fā)、維護(hù)軟件和相關(guān)的產(chǎn)物。在軟件開發(fā)中存在的兩難境地是既要求快速發(fā)布產(chǎn)品,又要求開發(fā)出低成本、高質(zhì)量的產(chǎn)品。統(tǒng)一開發(fā)過程(RationalUnifiedProcess)正是逐步發(fā)展起來的支持企業(yè)系統(tǒng)不斷更新并保證高質(zhì)量短周期軟件產(chǎn)品的軟件開發(fā)過程。2、RUP的基本概念

“統(tǒng)一過程”最為突出的特點(diǎn)包括三點(diǎn):用例驅(qū)動(dòng)、以基本架構(gòu)為中心、迭代式和增量性的開發(fā)。(1)“統(tǒng)一過程”是用例驅(qū)動(dòng)的(2)“統(tǒng)一過程”是以基本架構(gòu)為中心的(3)“統(tǒng)一開發(fā)過程”是迭代式的和增量的3、RUP過程分析統(tǒng)一開發(fā)過程可以用二維結(jié)構(gòu)或沿著兩個(gè)坐標(biāo)軸來表達(dá):橫軸——代表制訂開發(fā)過程時(shí)的時(shí)間,包括以下階段:

n

開始——項(xiàng)目版本描述;

n

細(xì)化——計(jì)劃必須的活動(dòng)和資源;詳細(xì)描述功能和設(shè)計(jì)結(jié)構(gòu);

n

構(gòu)造——在一個(gè)循環(huán)周期內(nèi)創(chuàng)建產(chǎn)品;交付——發(fā)放產(chǎn)品到用戶群體中(制造、分發(fā)和培訓(xùn))。

3、RUP過程分析縱軸——代表過程的靜態(tài)結(jié)構(gòu),對(duì)具有良好定義的特定人工活動(dòng)細(xì)節(jié)進(jìn)行描述。其中核心工作流主要包括:

n

需求——系統(tǒng)要做什么的描述;

n

系統(tǒng)分析和設(shè)計(jì)——描述循環(huán)增長狀態(tài)中系統(tǒng)如何實(shí)現(xiàn);

n

實(shí)現(xiàn)——編碼,最終獲得可執(zhí)行版本的產(chǎn)品; 測試——對(duì)整個(gè)系統(tǒng)的確認(rèn)。3、RUP過程分析圖5-22開發(fā)過程3、RUP過程分析(1)階段和迭代——時(shí)間軸:初始階段(Inception)細(xì)化階段(Elaboration)構(gòu)造階段(Construction)交付階段(Transition)3、RUP過程分析(2)開發(fā)過程中的靜態(tài)結(jié)構(gòu)在RUP中有四種主要的建模元素用來表達(dá)統(tǒng)一過程:角色:“誰”——定義了個(gè)人或若干人所組成小組的行為和責(zé)任?;顒?dòng):“如何”——某個(gè)角色的活動(dòng)是要求該角色中的個(gè)體執(zhí)行的工作單元。產(chǎn)物:“某事”——產(chǎn)物是被產(chǎn)生、修改或?yàn)檫^程所使用的一段信息。工作流:“何時(shí)”——是產(chǎn)生具有可觀察結(jié)果的活動(dòng)序列。3、RUP過程分析(3)核心工作流商業(yè)建模

RUP為軟件開發(fā)人員和顧客提供了相同的語言和過程,并通過這種語言顯示了如何在企業(yè)業(yè)務(wù)和軟件模型中創(chuàng)建和保持直觀、一致的可跟蹤性。需求需求工作流是對(duì)系統(tǒng)要做什么的描述,而開發(fā)人員和用戶將就該描述達(dá)成共識(shí),以指導(dǎo)下一階段的系統(tǒng)開發(fā)工作。3、RUP過程分析分析和設(shè)計(jì)描述循環(huán)增長狀態(tài)中系統(tǒng)如何實(shí)現(xiàn),其目標(biāo)在于顯示系統(tǒng)“如何”在實(shí)現(xiàn)階段被“實(shí)現(xiàn)”。實(shí)現(xiàn)實(shí)現(xiàn)是進(jìn)行系統(tǒng)編碼,最終獲得可執(zhí)行版本的產(chǎn)品測試發(fā)布

三、計(jì)算機(jī)輔助軟件工程(CASE)工具RationalRose

RationalRose是美國Rational公司開發(fā)的一個(gè)UML工具,它全面支持UML模型中的元素,提供給開發(fā)者一個(gè)強(qiáng)大的、高效的構(gòu)建基于C/S結(jié)構(gòu)、分布式企業(yè)應(yīng)用和適時(shí)系統(tǒng)的可視化建模工具。采用Rose進(jìn)行面向?qū)ο笙到y(tǒng)開發(fā)的好處在于:

1、通用的UML標(biāo)準(zhǔn)建模語言可以改善開發(fā)團(tuán)隊(duì)內(nèi)部和團(tuán)隊(duì)與顧客之間的溝通;

2、正向和逆向工程支持軟件快速開發(fā)和對(duì)企業(yè)舊軟件系統(tǒng)的集成。

3、以用例為關(guān)注點(diǎn)的模型設(shè)計(jì)和系統(tǒng)開發(fā)模式可以提高軟件的質(zhì)量;下面對(duì)Rose工具的主要特征進(jìn)行簡單介紹三、計(jì)算機(jī)輔助軟件工程(CASE)工具RationalRose圖5-23RationalRose的主界面三、計(jì)算機(jī)輔助軟件工程(CASE)工具RationalRose協(xié)作圖(Collaborationdiagram)見圖5-19類圖(Classdiagram)見圖5-14狀態(tài)圖(Statediagram)見圖5-16活動(dòng)圖(Activitydiagram)見圖5-17此外,Rose對(duì)UML中的構(gòu)件圖、配置圖等都有很好的支持,完全實(shí)現(xiàn)了UML中提到的各種圖形的一些屬性特征。三、計(jì)算機(jī)輔助軟件工程(CASE)工具RationalRose1、支持UML的模型2、支持多種開發(fā)語言3、代碼自動(dòng)生成4、模型的集成管理5、團(tuán)隊(duì)開發(fā)6、數(shù)據(jù)庫表的生成第七節(jié)面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)實(shí)例一、學(xué)生選課系統(tǒng)1、需求獲取2、系統(tǒng)分析3、系統(tǒng)設(shè)計(jì)二、政府采購管理系統(tǒng)1、需求獲取2、系統(tǒng)分析3、系統(tǒng)設(shè)計(jì)一、學(xué)生選課系統(tǒng)

本節(jié)以一個(gè)學(xué)生選課的例子來介紹使用UML來進(jìn)行系統(tǒng)開發(fā)的大致過程。采用UML進(jìn)行信息系統(tǒng)開發(fā)可以分為以下四個(gè)步驟:需求分析:捕獲用戶需求,以用例圖的方式來表達(dá)用戶的功能需求,還可以輔以文本方式來進(jìn)行其他一些非功能性需求的表示;系統(tǒng)分析與設(shè)計(jì):進(jìn)行系統(tǒng)的類分析和功能分析,以類圖、順序圖、狀態(tài)圖等多種方式來描述系統(tǒng)的結(jié)構(gòu)和功能模型,形成系統(tǒng)源代碼的抽象;系統(tǒng)實(shí)施:將設(shè)計(jì)模型轉(zhuǎn)換為系統(tǒng)的源代碼,是信息系統(tǒng)最終產(chǎn)品的最重要部分之一,這部分工作重點(diǎn)在系統(tǒng)編程工作;系統(tǒng)測試:在系統(tǒng)構(gòu)建后,對(duì)系統(tǒng)的功能和結(jié)構(gòu)進(jìn)行確認(rèn),使用多種測試方法和手段來保證系統(tǒng)的正確性。作為面向?qū)ο笙到y(tǒng)分析和設(shè)計(jì)的實(shí)例,本節(jié)主要對(duì)前兩部分的內(nèi)容進(jìn)行簡單介紹。一、學(xué)生選課系統(tǒng)1、需求獲取需求分析是對(duì)系統(tǒng)功能性和非功能性的捕獲。是下一步工作的基礎(chǔ)和開始,學(xué)生選課涉及到“教授”、“學(xué)生”、“系統(tǒng)管理員”、“會(huì)計(jì)系統(tǒng)”等幾個(gè)執(zhí)行者,每個(gè)執(zhí)行者都有一定的功能需求,針對(duì)這些用戶(執(zhí)行者)進(jìn)行分析,可以得到系統(tǒng)的功能需求情況,并以用例圖的方式進(jìn)行表達(dá),其中教授需要“獲得課程清單”、“選擇授課課程”兩項(xiàng)服務(wù),而學(xué)生僅需要“注冊課程”一項(xiàng)服務(wù)。這些功能需求都以用例的方式表示在用例圖中。一、學(xué)生選課系統(tǒng)圖5-24用例圖一、學(xué)生選課系統(tǒng)2、系統(tǒng)分析系統(tǒng)分析階段的主要工具有類圖、包圖、順序圖等。其中類圖提煉了系統(tǒng)中涉及到的主要對(duì)象,并可以建立類之間的簡單關(guān)系;包圖對(duì)類圖中的類進(jìn)行分類處理,將相近或相似的類放在同一個(gè)包里,控制這些類和其它元素的可見性;順序圖可以表示系統(tǒng)用例的執(zhí)行過程,對(duì)功能進(jìn)行概略性的描述,并可在設(shè)計(jì)階段提升對(duì)系統(tǒng)的操作之間的調(diào)用關(guān)系的描述。圖5-25給出了系統(tǒng)主要涉及到的類的情況,抽象出類。圖5-26給出了系統(tǒng)的分析包的配置,將系統(tǒng)劃分成了“People”、“UniversityArtifacts”、“Interface”三個(gè)包,各個(gè)包下包含了不同的類。

一、學(xué)生選課系統(tǒng)圖5-25分析類圖圖5-26分析包圖一、學(xué)生選課系統(tǒng)圖5-27給出了系統(tǒng)管理員進(jìn)行課程維護(hù)的時(shí)間順序圖。整個(gè)過程的執(zhí)行首先由管理員調(diào)用ManageCurriulumForm的open操作來啟動(dòng),最后以Course對(duì)象調(diào)用CourseOffering的save操作為結(jié)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論