軟件工程實踐課件_第1頁
軟件工程實踐課件_第2頁
軟件工程實踐課件_第3頁
軟件工程實踐課件_第4頁
軟件工程實踐課件_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

北京理工大學

軟件工程實踐

吳際

北京航空航天大學

第十二講

面向對象方法與UML介紹

內容和目的

■我們的座標

■面向對象方法

■面向對象:能與不能

-統(tǒng)一建模語言UML

我們的座標

■應用開發(fā)的變化

-開發(fā)工具和手段的發(fā)展

-開發(fā)方法和技術的發(fā)展

《應用開發(fā)的變化

■70年代:小型機(或服務器)上的數(shù)學程序

■80年代:單機(或以太網(wǎng))上的、文本界面

(或簡單圖形界面)、計算型應用

■90年代:互聯(lián)網(wǎng)(Internet)、豐富圖形界面、

事務處理型應用,要求快速提交產(chǎn)品

■現(xiàn)在,分布于Internet、Intranet,多種界面形

式(基于WebBrowser、ApplicationGUI等),

多種事務處理的集成(電子商務、信息管理),

多種標準的支持(XMLJ2EE,Corba,.NET),

多種平臺的支持(Windows,Linux,Unix,...)

開發(fā)工具和手段的發(fā)展

■70年代:基于匯編代碼的調試器

■80年代:基于高級語言的調試器(TurboC,

MicrosoftC,BorlandC,TurboPascal)

■90年代:集成了調試器、編輯器、配置管理、

框架代碼構造、及時編碼提示、應用GUI界面

編輯等的集成開發(fā)環(huán)境,如VisualStudio,

Delphi

■現(xiàn)在:在集成開發(fā)環(huán)境基礎上,提供更強大的

開發(fā)平臺支持(,NET,JDK),同時更關注應

用的平臺無關性和運行安全性

$開發(fā)方法和技術的發(fā)展

-70年代:結構化方法(設計、編碼)

■80年代:結構化方法(分析、設計、編

碼),狀態(tài)圖,需求工程

■90年代:面向對象分析、設計、編碼,

對象建模

■現(xiàn)在:商務建模(businessmodeling)、

面向對象建模(分析、設計),體系結

構設計(構件化)

面向對象方法

-結構化與面向對象的提出

-面向對象方法特征

■面向對象主要流派

結構化與面向對象的提出

■CFD&DFD:自頂而下的層次分解策略

■任何一層有變動,其下面的所有層次都必須重新進行層次分

-層次間的解釋關系使得難以維護層次間的一致性

-強調數(shù)據(jù)、功能分解,但忽略了數(shù)據(jù)、功能的整合

-數(shù)據(jù)與功能分離的結構化認知觀點,實際偏離了人認

知世界的基本原則:

■以實體為單位,以關系為核心

-盡管有缺點,但結構化仍有可借鑒之處:

-結構化原則

■數(shù)據(jù)字典

■狀態(tài)圖

I大幕拉開:面向對象

■面相對象的目標:以人的(獲接近于人

的)認知方法和原則來描述事物

-完全不同于結藥叱的描述手段:

■類、對象

■繼承

■多態(tài)

-消息

類、對象是核心

-面向對象分析、設計、編碼的基本單位

-數(shù)據(jù)與功能的有效封裝

-可直接映射到現(xiàn)實或抽象的實體

■關系、狀態(tài)、行為

-開發(fā)管理的基本單位

■類測試就是“單元測試”!

繼承:面向對象冠上明珠

■如果沒有繼承,誰能在一個小時之內,只使用

SDK接口編寫出Notepad?如果使用繼承,你只

需十分鐘(戢更少)!

■繼承至少提供了兩個方向的設計支持:

-重用

-抽象、接口(COM、DCOM、Bean)

■沒有繼承,幾乎不可能有通用的容器類

(ContainerorCollector)可供使用

■多繼承:你使用過多少次?

多態(tài):面向對象'自適應'中

———---------

■多態(tài)(polymorphism):多種形態(tài),統(tǒng)

一語義

-接口描述了通訊協(xié)議

■多態(tài)使得基于接口的通訊能夠自適應

Argl,agr2,

多態(tài):面向對象'自適應'中

■兩種多態(tài):

■同一個類中的不同形態(tài)接口

■不同子類以不同形態(tài)實現(xiàn)(或重載)父類接

■典型例子:畫圖程序中GraphManager類

的Draw,Move,Open,...

■典型例子:文檔編輯中針對不同對象的

統(tǒng)一的Cut/Copy/Paste操作

消息:可能讓你失望

■不要試圖用信息理論或通訊理論中的消

息來理解

■也不要用操作系統(tǒng)中的消息(事件)來

理解

■所謂兩個對象間的一個消息就是一個對

象使用了另一個對象的協(xié)作(operation),

簡單說就是對象的操作調用!

■Windows中的SendMessage和

PostMessage根本就與面而對象無關!

對象狀態(tài)

■對象狀態(tài)只決定于對象的數(shù)據(jù),和全局

數(shù)據(jù)、非對象的局部數(shù)據(jù)無關

■對象狀態(tài)和對象行為之間的關系:

■<sl,bl>,<s2,b2>,bl=b2iffsi=s2.

■如果你的程序不滿足這條定理,有兩種

情況:

■類的某個方法使用了全局變量

■類的某個方法中的局部變量初始值不確定

對象關系:無法讓人滿意

-目前的面向對象提供了三種對象關系描

述手段:

■繼承

■聚集(組成)

■關聯(lián):對象之間有關系!

■然而,現(xiàn)實世界中實體之間的關系豐富

多彩,豈止這三種?

'面向對象分析

■目標:使用對象來描述問題域,進而抽象出問

題域類,并把求解問題的約束分配到問題域類

■關注:是否完整、清晰的描述了問題域及約束

■雷區(qū):使用DFD,然后把每個處理節(jié)點都抽象

為一個類

■雷區(qū):很快就在某個局部(通常為方法)進入

算法、編碼

■面向對象分析模型的價值(領域重用、測試)

面向對象設計

■目標:引入類(族)實現(xiàn)問題域類(在概念層

次上),同時把系統(tǒng)約束分解、落實到類的方

法層次

■關注:體系結構、接口、效率

■雷區(qū):有些類是‘上帝',而有些類只是‘弱

智的代表'

■雷區(qū):盲目追求所謂封裝、抽象類

■面向對象設計模型的價值(設計pattern,風險

跟蹤、測試)

4適合面向對象的開發(fā)過程

-必須能夠管理面向對象分析、設計、實

現(xiàn)、測試、維護各階段的模型的一致性

■需要給出一套基于類的開發(fā)任務管理方

法(任務定義、風險管理、任務評審)

■能夠在開發(fā)的不同階段提供不同的知識

庫(不僅僅是類庫!)以供重用

■RUP是個不錯的選擇

面向對象:能與不能

■Can

■使你以更有效的手段描述、實現(xiàn)系統(tǒng)

■提高系統(tǒng)的重用度

■有效縮短開發(fā)周期

■Cannot

■避免錯誤,尤其是分析、設計錯誤

■自動生成精巧的算法

統(tǒng)一建模語言UML

-引論

■建模技術

■UML的模型圖

■UML的基本視圖

■UML的目的、主要特點和和應用領域

■WhyUnified?

-UML是一種建模語言

-UML的設計目標

■UML的發(fā)展歷程

《WhyUnified?

■面對眾多的建模語言,用戶沒有能力區(qū)別不同語

言之間的差別。

■在眾多的建模語言中,實際上各有千秋,需要取

長補短,日臻完善。

■雖然不同的建模語言大多相同,但仍存在某些細

微的差別,這極大地妨礙了用戶之間的交流。

UML是一種建模語言

■建模方法=建模語言+建模過程。建模語言

定義了用于表示設計的符號(通常是圖形符號);

建模過程描述進行設計所需要遵循的步驟。

■標準建模語言UML是一種建模語言,而不是一

種方法,它統(tǒng)一了面向對象建模的基本概念、

術語及其圖形符號,為人們建立了便于交流的

共同語言。

*UML的設計目標

■UML是由Booch,Rumbaugh和Jacobson發(fā)起,

在Booch方法、OMT方法和OOSE方法的基礎上,集

眾家之長,幾經(jīng)修改而成。UML的設計目標是:

■運用面向對象概念來構造系統(tǒng)模型(不僅僅針對軟件)

■建立起從概念模型直至可執(zhí)行體之間明晰的對應關系

■著眼于那些有重大影響的問題。

■創(chuàng)建一種對人和機器都適用的建模語言。

UML的發(fā)展歷程

1994.10,Booch和Rumbaugh將Booch93和OMT-2統(tǒng)一,

1995.10.發(fā)布UM0.8o

1995年秋,經(jīng)過Booch等三人的努力,1996.6和1996.10發(fā)布

UML0.9和UML0.91。

1996年成立UML成員協(xié)會,有700多公司支持UML,占領00市場的

85%o

1997.1^UML1.0,1997.9發(fā)布UMLL1。

1997.110MG采納UMLL1作為00技術的標準建模語言。

此后,UML的維護工作由CrisKobryn領導的0MG版本修改小組RTF

(RevisionTaskForce)負責.

1998.6:UMLV.1.1(編輯修改版).

1999.6:UMLV.1.3(技術終訂版).

目前正處于UMLV.2?0階段

UML的發(fā)展歷程(續(xù))1999.6UML1.3

UMLL1被OMG

1997.11.17接納為標準

/

1997.9公布UML1.1

A

眾1997.1公布UML1.0合作伙

反/伴意見

&建模技術

■構造模型的目的

■建模技術要點

-系統(tǒng)的多種特性

0構造模型的目的

模型是對事物的抽象。人們常常在正式建造實物之前,先建

立模型,以便更透徹地了解它的本質,抓住問題的要害。

■在著手解決一個復雜問題之前,對解決方案進行

檢測。

-用于同客戶和其他相關人員進行交流。

-加強視覺效果。

■對復雜問題進行適度簡化。

L建模技術要點

/造模型的基本技術是抽象,應突出與問題行關的

特征,將與問題無關的性質略去。

■不必追求絕對的真實和完全,只需從期望的目的角

度看其是否充分。

?應當刻畫問題的關鍵方面,略去相對次要的因素。

■建模語言應支持人的由模糊到清晰、由粗到細逐漸

完善的認識過程。

■應采用可視化圖形建模語言。

§系統(tǒng)的多種特性

里個系統(tǒng)應具有多方面的特點:

■在功能和性能方面:功能正確,性能良好

(效率要高)。

■在非功能方面:魯棒性、可擴充性、可再用

性、兼容性、可移值性、可驗證性、完整性

以及易使用性等方面要好。

一個系統(tǒng)要從多個視角去描述。

一個視圖可能包含多個模型圖,每張模型圖都應當

簡單明了,易于交流。

UML的模型圖

UML定義了5類、共9種模型圖:

用例圖:從用戶角度描述系統(tǒng)的功能,并指出各功能

的操作者。

靜態(tài)圖:類圖、對象圖和包圖(在UML1.1中,包圖

不再看作一種獨立的模型圖)o

行為圖:狀態(tài)圖,活動圖。

交互圖:順序圖,合作圖。

實現(xiàn)圖:構件圖描述部件的物理結構以及各部件之間

的依賴關系;配置圖定義系統(tǒng)中軟硬件的物理構架。

關于保險業(yè)務的一張用例圖

靜態(tài)圖:類圖、對象圖和包圖

■靜態(tài)圖包括類圖、對象圖和包圖,用以描述模型

中類及其實例之間的靜態(tài)關系。

■類圖用于定義系統(tǒng)中的類,包括描述類之間的關

系(關聯(lián)、繼承、聚合)以及類的內部結構,即類

的屬性和操作。

-對象圖顯示類的對象實例,一個對象圖是類圖的

—個實例。

■包圖由包或類組成,主要表示包與包、或包與類

之間的關系。包圖用于描述系統(tǒng)的分層結構。

?關于金融貿易的一張類圖

行為圖:狀態(tài)圖,活動圖

■行為圖包括狀態(tài)圖和活動圖,描述系統(tǒng)的動態(tài)

模型和組成對象間的交互關系。

■狀態(tài)圖描述一類對象的所有可能的狀態(tài)以及事

件發(fā)生時狀態(tài)的轉移條件。

■活動圖描述為滿足用例要求所要進行的活動以

及活動間的約束關系。使用活動圖可以很方便

地表示并行活動。

上升[幾層]

超時口

一臺打印機服務器的活動圖

顯示“磁盤已滿”

[磁盤已滿]

的信息

[尚有磁盤空間]顯示“正在打印”

的信息

刪除顯示信,創(chuàng)建附加文,

息的對話框"

J44印機X,

^打?。畚募?/p>

交互圖:順序圖,合作圖

■交互圖包括順序圖和合作圖,它描述對象間的交

互(動態(tài)合作)關系。

■順序圖:用以顯示對象之間在時間順序方面的動

態(tài)合作關系。因此,如果強調時間和順序,應當

使用順序圖。

■合作圖:著重描述對象間的通信方面的動態(tài)合作

關系。因此,如果強調通信關系,則可以選擇合

作圖。

一臺打印機服務器的順序圖

I:計算機I:打印服務程序:打印機:打印隊列

一臺打印機服務器的合作圖

[打印機空閑]

L1打印[文件]

實現(xiàn)圖:構件圖,配置圖

■實現(xiàn)圖包括構件圖和配置圖。

-構件圖:描述部件的物理結構以及各

部件之間的依賴關系。

■配置圖:定義系統(tǒng)中(特別是在分布式

及網(wǎng)絡環(huán)境中)軟硬件的物理構架。

反映程序代碼構件之間

依賴關系的構件圖

graphic.dll:

IIWhnd.cpp:Whnd.obj:

巴窗口處理器

■尺5窗口處理器圖形庫

*0A■

||comhnd.cpp:

呂命令處理器IIcomhnd.obj:eclient.exe:

命令處理器客戶程序

A

main.obj:

[|main.cpp:

審卷類e主類

描述系統(tǒng)物理構架的配置圖

《DecNet協(xié)議》

數(shù)據(jù)庫服務器:

《TCP/IP協(xié)議》VAX

UML的基本視圖

-UML的用例視圖

-UML的邏輯視圖

-UML的構件視圖

-UML的并發(fā)視圖

-UML的配置視圖

UML的五類基本視圖

UML的五類基本視圖(續(xù))

■用例視圖:從系統(tǒng)外部執(zhí)行者的角度理解、展示

系統(tǒng)功能。

■邏輯視圖:從系統(tǒng)的靜態(tài)結構和動態(tài)行為的角度

展示系統(tǒng)內部功能性設計。

-構件示圖:展示代碼構件的組織結構。

■并發(fā)視圖:展示系統(tǒng)的并發(fā)性,刻畫并發(fā)系統(tǒng)中

的通訊和同步問題。

■配置視圖:展示系統(tǒng)的物理的體系結構,其中用

到的計算機和各種設備稱作節(jié)點。

UML的用例視圖

■從系統(tǒng)外部執(zhí)行者的角度理解系統(tǒng)的功能:它描

述執(zhí)行者與系統(tǒng)的交互,其執(zhí)行者可以是一個用

戶,也可以是另一個系統(tǒng)。

■用例圖面向客戶、建模人員、開發(fā)人員和測試人

員,是系統(tǒng)模型圖的核心。

■用例視圖:用例圖和活動圖描述。

■一張用例圖是系統(tǒng)的一種用途的描述;一組用例

圖描述了整個系統(tǒng)所期望的用途。

&UML的邏輯視圖

-描述系統(tǒng)如何提供要求的功能:

■靜態(tài)結構:

類(界面,內部結構);對象;關系

用類圖和對象圖描述。

■動態(tài)行為:

對象之間相互發(fā)送消息而引發(fā)的動態(tài)合作關系

用狀態(tài)圖、順序圖、合作圖和活動圖描述

■各種特性:永久性,并發(fā)性

■主要是面向設計人員和開發(fā)人員

&UML的構件視圖

■描述實現(xiàn)的各個模塊及其相互之間的關系:

?模塊的內部結構

-模塊間的依賴關系

■關于各構件的一些附加信息:

■資源分配(構件的責任)

-其它管理信息,如開發(fā)工作的進展報告等

-主要面向開發(fā)人員

■構件視圖:由構件圖組成,其中構件表示不

同類型的代碼模塊

/UML的并發(fā)視圖

「愛統(tǒng)中進程和處理器的劃分與任務的分配

■屬于非功能性特性:

-著眼于資源的有效利用

-并行執(zhí)行,并發(fā)地執(zhí)行多線程控制,處理線程之間的通

信和同步

-處理來自外部環(huán)境的同步事件

■面向開發(fā)人員和系統(tǒng)集成人員

-描述并發(fā)視圖的主要模型圖:

-動態(tài)圖:狀態(tài)圖,合作圖,活動圖

-實現(xiàn)圖:構件圖,配置圖

&UML的配置視圖

■展示系統(tǒng)的物理配置,如計算機和其它設備(統(tǒng)

稱結點)及其相互之間的連接關系,包括在物理

的體系結構中如何配置構件的映像關系。

-面向開發(fā)、集成和測試人員。

■配置視圖用配置圖描述。

《面向對象描述的三個層面

概念層BusinessModel

說明層Architecture

實現(xiàn)層Detailing

層次間沒有分解對應關系

^^2:每個面向對象描述元素都可對應到這三個層面

UML的主要特點、目的和應用領域

-UML的主要特點

-使用UML的目的

■UML的應用領域

UML的主要特點

■UML統(tǒng)一了Booch,OMT和OOSE等方法中的基

本概念:用例圖從OOSE來;類圖從OMT和

Booch等方法來;實現(xiàn)圖(構件圖和配置圖)從

Booch的模塊圖和過程圖來。

■UML吸取了00技術領域各流派的長處:狀態(tài)圖

從Harel而來;活動圖從工作流圖而來;合作圖

從Booch的對象圖和Fusion的對象交互作用圖等

而來;等等。

■在演變過程中UML提出了一些新的概念。

使用UML的目的

軟件開發(fā)的過程猶如雕琢一件藝術品,由無形

到有形,由粗到細。但軟件開發(fā)的最終形式必

須生成程序代碼。因此當考慮使用UML時,一

定要想清楚,使用UML的目的以及對編寫代碼

有何幫助。

■學習面向對象技術

■和領域專家交流

■幫助理解全局

學習面向對象技術

■UML的各種模型圖,其中用例圖描述系統(tǒng)的功

能及其外部的使用者,確定誰使用系統(tǒng)以及做

彳十么。

■類圖描述系統(tǒng)的靜態(tài)構架,即構成系統(tǒng)的各種

對象類及其相互關系。對象圖是類圖的實例化,

描述系統(tǒng)在某個時刻可能包含的對象和相互關

系。

-行為圖和交互圖描述系統(tǒng)的動態(tài)行為。

■構件圖和配置圖描述系統(tǒng)實現(xiàn)體的構成及其在

硬件環(huán)境中的配置情況。

和領域專家交流

■有效的方法是使用用例。一個用例描述了系統(tǒng)

的某一側面,所有用例構成了系統(tǒng)的整個外觀。

用例也有助于制訂項目規(guī)劃和對問題進行深入

理解。

■類圖很有用,但應注重在概念層上使用。應將

每個類對應用戶心中一個概念,并用用戶的語

言來命名和定義。

■對于側重于工作流過程的應用系統(tǒng),活動圖非

常有用。活動圖也有助于對實際業(yè)務流程中的

并行特性進行自然描述。

幫助理解全局

-JI_

■對于大型項目,常常只見樹

溫馨提示

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

評論

0/150

提交評論