UML統(tǒng)一建模項(xiàng)目教程138886[334頁]課件_第1頁
UML統(tǒng)一建模項(xiàng)目教程138886[334頁]課件_第2頁
UML統(tǒng)一建模項(xiàng)目教程138886[334頁]課件_第3頁
UML統(tǒng)一建模項(xiàng)目教程138886[334頁]課件_第4頁
UML統(tǒng)一建模項(xiàng)目教程138886[334頁]課件_第5頁
已閱讀5頁,還剩329頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、全國高職高專計(jì)算機(jī)系列精品教材 UML統(tǒng)一建模項(xiàng)目教程 武雪芳 班婭萌中國人民大學(xué)出版社第1單元 軟件工程概述第2單元 面向?qū)ο蠹夹g(shù)簡(jiǎn)介第3單元 UML語言基礎(chǔ)第4單元 類圖和對(duì)象圖第5單元 包圖第6單元 用例圖第7單元 交互圖全書目錄第8單元 活動(dòng)圖第9單元 狀態(tài)機(jī)圖第10單元 交互概述圖第11單元 構(gòu)件圖第12單元 部署圖第13單元 UML應(yīng)用實(shí)例網(wǎng)絡(luò)教學(xué)系統(tǒng)建模 【單元目標(biāo)】1.理解軟件的概念與特點(diǎn)。2.了解軟件危機(jī)的形成并掌握緩解軟件危機(jī)的方法與途徑。3.了解軟件工程的概念與基本目標(biāo)。4.掌握軟件生存周期的各個(gè)階段需要完成的主要任。5.掌握常用的軟件開發(fā)模型。6.能夠使用軟件工程的思想

2、來解決軟件開發(fā)中遇到的問題。第1單元 軟件工程概述【任務(wù)描述】計(jì)算機(jī)軟件的發(fā)展與進(jìn)步,是與計(jì)算機(jī)硬件的發(fā)展和計(jì)算機(jī)的普及是分不開的。同其他事物的發(fā)展規(guī)律一樣,也經(jīng)歷了從產(chǎn)生、發(fā)展到成熟的過程。在這個(gè)過程中也經(jīng)歷了軟件的危機(jī),為吸取歷史經(jīng)驗(yàn)教訓(xùn),應(yīng)該認(rèn)真研究產(chǎn)生軟件危機(jī)的原因,探討消除軟件危機(jī)的途徑?!救蝿?wù)目標(biāo)】首先,了解軟件的概念與軟件的發(fā)展情況,并掌握軟件的特點(diǎn)。其次,了解軟件危機(jī)的形成與表現(xiàn)形式,并學(xué)會(huì)解決軟件危機(jī)的方法與途徑。1.1 任務(wù)1 軟件與軟件危機(jī)1.1.1 軟件的發(fā)展 現(xiàn)在對(duì)軟件的一種公認(rèn)的解釋為:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集

3、合。其中,程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)為進(jìn)行通信、解釋和處理而使用的信息的形式化表現(xiàn)形式。文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文材料。1.1.2 軟件的特點(diǎn)與硬件相比,軟件主要有以下特點(diǎn)。 1. 軟件是一種邏輯實(shí)體,不是具體的物理實(shí)體 2. 軟件與硬件的生產(chǎn)方式不同3. 軟件與硬件的維護(hù)不同 4. 軟件是復(fù)雜的 5. 軟件成本相當(dāng)昂貴 1.1.3 軟件危機(jī) 1. 軟件危機(jī)的表現(xiàn) (1)人們對(duì)軟件開發(fā)的成本和進(jìn)度的估計(jì)常常不夠準(zhǔn)確。(2)用戶對(duì)已完成的軟件不滿意的現(xiàn)象時(shí)有發(fā)生。(3)軟件常常是不可維護(hù)的。(4)軟件產(chǎn)品的質(zhì)量往往不可靠。(5)軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟

4、不上日益增長(zhǎng)的軟件需求,滿足不了社會(huì)發(fā)展的需要。 2. 緩解軟件危機(jī)的途徑(1)加強(qiáng)軟件開發(fā)過程的管理,做到組織有序、各類人員協(xié)同配合,共同保證工程項(xiàng)目完成,避免軟件開發(fā)過程中個(gè)人單干的現(xiàn)象。(2)推廣使用開發(fā)軟件的成功技術(shù)和方法,并且不斷探索更好的技術(shù)和方法,消除一些錯(cuò)誤的概念和做法。(3)開發(fā)和使用好的軟件工具,支持軟件開發(fā)的全過程?!救蝿?wù)描述】學(xué)習(xí)軟件工程的基本理論與方法,建立并使用正確的工程方法開發(fā)出成本低、可靠性高并能高效運(yùn)轉(zhuǎn)的軟件,從而解決或緩解軟件危機(jī)?!救蝿?wù)目標(biāo)】了解軟件工程的概念,掌握軟件工程的三要素,理解軟件工程的基本原理,掌握軟件工程的基本目標(biāo)。學(xué)會(huì)使用軟件工程的理論來解

5、決軟件危機(jī)的方法。1.2 任務(wù)2 軟件工程1.2.1 軟件工程的概念軟件工程包括3個(gè)要素:方法、工具和過程。(1)軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù),是指導(dǎo)研制軟件的某種標(biāo)準(zhǔn)規(guī)范。(2)軟件工具是指軟件開發(fā)、維護(hù)和分析中使用的程序系統(tǒng),為軟件工程方法提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。(3)軟件工程的過程則是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的。 1.2.2 軟件工程的基本原理軟件工程的這7條基本原理包括:1. 用分階段的生存周期計(jì)劃嚴(yán)格管理 2. 堅(jiān)持進(jìn)行階段評(píng)審 3. 實(shí)行嚴(yán)格的產(chǎn)品控制 4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù) 5. 結(jié)果應(yīng)能清楚地審查6.

6、開發(fā)小組的人員應(yīng)少而精7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 1.2.3 軟件工程的基本目標(biāo)從技術(shù)和管理上采取多項(xiàng)措施以后,組織實(shí)施軟件工程項(xiàng)目的最終目的是保證項(xiàng)目成功,即達(dá)到以下幾個(gè)主要目標(biāo):付出較低的開發(fā)成本;達(dá)到預(yù)期的軟件功能;取得較好的軟件性能;使軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)工作,及時(shí)交付使用。 軟件工程目標(biāo)之間的關(guān)系 【任務(wù)描述】利用所學(xué)知識(shí)進(jìn)行軟件生存周期的各個(gè)階段任務(wù)的劃分。劃分原則是保證各階段的任務(wù)彼此間盡可能相對(duì)獨(dú)立,同一個(gè)階段各項(xiàng)任務(wù)的性質(zhì)盡可能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜性,簡(jiǎn)化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理?!救蝿?wù)目標(biāo)】首先了解

7、軟件生存周期的概念,其次,熟練掌握軟件生存周期各個(gè)階段的工作流程及主要工作任務(wù)。1.3 任務(wù)3 軟件生存周期1.3.1 軟件生存周期的概念同任何事物一樣,軟件也有一個(gè)孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過程。軟件生存周期是指一個(gè)計(jì)算機(jī)軟件從功能確定、設(shè)計(jì),到開發(fā)成功投入使用,并在使用中不斷地修改、增補(bǔ)和完善,直到停止該軟件的使用的全過程。1.3.2 軟件生存周期的主要階段軟件生存周期主要包括制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試和運(yùn)行維護(hù)等6個(gè)階段。以下對(duì)這6個(gè)階段的工作流程及主要任務(wù)做一概括的描述。1. 制定計(jì)劃 在軟件系統(tǒng)開發(fā)之前,首先應(yīng)當(dāng)制定項(xiàng)目開發(fā)計(jì)劃,該階段是軟件生存周期的第

8、一階段。其主要任務(wù)如。確定要開發(fā)軟件系統(tǒng)的總目標(biāo)。給出功能、性能、可靠性以及接口等方面的要求。完成該軟件任務(wù)的可行性研究。估計(jì)可利用的資源(硬件、軟件和人力等)、成本、效益和開發(fā)進(jìn)度。制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門審查。2. 需求分析當(dāng)完成計(jì)劃制定之后,需要對(duì)用戶的需求去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言表達(dá)出來。其主要任務(wù)如下。去用戶處做需求調(diào)研,讓用戶提出對(duì)軟件系統(tǒng)的所有需求。對(duì)用戶提出的需求進(jìn)行分析、綜合,并給出詳細(xì)的定義。編寫軟件需求說明書及初步的系統(tǒng)用戶手冊(cè),提交管理機(jī)構(gòu)評(píng)審。3. 軟件設(shè)計(jì) 需求分析和定義階段結(jié)束之后,對(duì)于軟件必須

9、“做什么”的結(jié)論已經(jīng)明確,下一步是如何實(shí)現(xiàn)軟件的需求,即進(jìn)入軟件設(shè)計(jì)階段,該階段又可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩部分。其主要工作如下。 概要設(shè)計(jì):把各項(xiàng)軟件需求轉(zhuǎn)化為軟件系統(tǒng)的總體結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)中每一部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對(duì)應(yīng)。 詳細(xì)設(shè)計(jì):即過程設(shè)計(jì),對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,即給出詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法,為源程序的編寫打下基礎(chǔ)。 編寫設(shè)計(jì)說明書,提交評(píng)審。 4. 程序編寫 軟件設(shè)計(jì)解決了軟件“怎么干”的問題,而程序編寫是在計(jì)算機(jī)上真正實(shí)現(xiàn)一個(gè)具體的軟件系統(tǒng)。具體的工作包括以下兩個(gè)方面。 把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定的程序設(shè)計(jì)

10、語言表示的“源程序清單”。這一步工作也稱為編碼。 要求寫出的程序應(yīng)該是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致。 5. 軟件測(cè)試 軟件分析和設(shè)計(jì)、程序編寫過程其中難免有各種各樣的錯(cuò)誤,需要通過測(cè)試來查找和修改,以保證軟件的質(zhì)量。其主要工作如下。 單元測(cè)試:查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正。 集成測(cè)試:將已測(cè)試通過的模塊按一定順序組裝起來進(jìn)行測(cè)試。 有效性測(cè)試:按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行測(cè)試,判斷已開發(fā)的軟件是否合格,能否交付用戶使用。6. 運(yùn)行/維護(hù) 軟件維護(hù)有4種類型,它們分別完成以下任務(wù)。 糾正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤而進(jìn)行的修改工作。 適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作

11、環(huán)境,而做出適當(dāng)?shù)淖兏?完善性維護(hù):為了增強(qiáng)軟件的功能而做出的變更。 預(yù)防性維護(hù):為未來的修改與調(diào)整奠定更好的基礎(chǔ)而進(jìn)行的工作。【任務(wù)描述】 在某個(gè)信息系統(tǒng)組織中,作為應(yīng)用程序項(xiàng)目的管理者,開發(fā)小組之前已開發(fā)過項(xiàng)目,此次項(xiàng)目規(guī)模大且復(fù)雜,并且需求已由用戶寫出文檔,請(qǐng)選擇適當(dāng)?shù)能浖_發(fā)模型來完成。【任務(wù)目標(biāo)】 掌握常用的軟件開發(fā)模型的特點(diǎn),能夠根據(jù)不同軟件開發(fā)項(xiàng)目的特點(diǎn)來選擇合適的軟件開發(fā)模型進(jìn)行建模。1.4 任務(wù)4 軟件開發(fā)模型1.4.1 瀑布模型瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括制定開發(fā)計(jì)劃、需求分析和說明、軟件設(shè)計(jì)、程序編碼、測(cè)試和運(yùn)行、維護(hù),并且規(guī)定了它們自上而下、相互銜接的固定次序

12、,如同瀑布流水,逐級(jí)下落,如圖所示。1.4.2 快速原型模型 快速原型模型的基本思想是:軟件開發(fā)人員根據(jù)用戶提出的軟件基本需求快速開發(fā)一個(gè)原型,以便向用戶展示軟件系統(tǒng)應(yīng)有的部分或全部的功能和性能,在征求用戶對(duì)原型的評(píng)價(jià)意見后,進(jìn)一步使需求精確化、完全化,并據(jù)此改進(jìn)、完善原型,如此迭代,直到軟件開發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì)、編碼、測(cè)試等以后的各個(gè)開發(fā)步驟??梢?,原型主要是為了完成需求分析階段的任務(wù)而構(gòu)建的。利用原型確定軟件系統(tǒng)需求的過程如圖所示。1.4.3 螺旋模型螺旋模型的結(jié)構(gòu)如圖所示,它由 4 部分組成:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)、客

13、戶評(píng)估。在笛卡兒坐標(biāo)的4個(gè)象限上分別表達(dá)了4個(gè)方面的活動(dòng)。1.4.4 增量模型在增量模型中,產(chǎn)品的設(shè)計(jì)、實(shí)現(xiàn)、集成和試驗(yàn)是以一系列增量構(gòu)件為基礎(chǔ)進(jìn)行的,構(gòu)件是由一些模塊的編碼構(gòu)成并能提供特定的功能。例如,在操作系統(tǒng)中,調(diào)度程序是一個(gè)構(gòu)件,文件管理系統(tǒng)也是一個(gè)構(gòu)件。在增量模型的每一個(gè)階段,都要編碼一個(gè)新的構(gòu)件,然后集成到先前已構(gòu)成的產(chǎn)品中并作為一個(gè)整體進(jìn)行測(cè)試,當(dāng)這個(gè)產(chǎn)品滿足規(guī)定的功能,即滿足它的需求規(guī)范時(shí),這個(gè)過程停止。1.4.5 噴泉模型噴泉模型是一種以對(duì)象為驅(qū)動(dòng)、以用戶需求為動(dòng)力的模型,主要用于描述面向?qū)ο蟮能浖_發(fā)過程。該模型認(rèn)為軟件開發(fā)過程中自下而上周期的各階段是相互重疊和多次反復(fù)的,

14、類似一個(gè)噴泉,水噴上去又可以落下來。各個(gè)開發(fā)階段沒有特定的次序要求,并且可以交互進(jìn)行,可以在某個(gè)開發(fā)階段中隨時(shí)補(bǔ)充其他任何開發(fā)階段中的遺漏。采用噴泉模型的軟件開發(fā)過程如圖所示。 【單元小結(jié)】在本單元中,我們對(duì)軟件工程的基本知識(shí)進(jìn)行了概要的講解。首先介紹了軟件與軟件危機(jī)的概念,接著介紹了軟件工程的概念以及軟件的生存周期,最后對(duì)軟件的開發(fā)模型進(jìn)行了簡(jiǎn)要的介紹。本單元是對(duì)軟件工程的概念進(jìn)行的綜合描述,重點(diǎn)是軟件生存周期各階段的主要任務(wù)以及各種軟件開發(fā)模型?!靖拍顝?fù)習(xí)】軟件 軟件危機(jī) 軟件工程 軟件生存周期 軟件開發(fā)模型【習(xí)題練習(xí)】1. 填空題(1) 通常軟件包括 、 、 三方面的內(nèi)容。(2) 軟件工

15、程的三要素包括 、 、 。(3) 軟件生存周期一般可分為 、 、 、 _ 、 、 6 個(gè)階段。 (4) 軟件開發(fā)模型主要包括 、 、 、 _ 、 。(5) 螺旋模型的結(jié)構(gòu)由4個(gè)部分組成: 、 、 、 。2. 選擇題(1) 軟件工程的目的是( )。 A. 建造大型的軟件系統(tǒng) B. 軟件開發(fā)的理論研究 C. 軟件的質(zhì)量保證 D. 研究軟件開發(fā)的原理 (2) 軟件產(chǎn)品的開發(fā)主要是( )。 A. 進(jìn)行軟件復(fù)制 B. 進(jìn)行軟件的研制 C. 進(jìn)行軟件的銷售 D. 進(jìn)行軟件的測(cè)試 (3) 在軟件開發(fā)模型中,提出最早、應(yīng)用最廣泛的模型是( )。 A. 瀑布模型 B. 噴泉模型 C. 增量模型 D. 螺旋模型

16、(4) 需求分析是在( )進(jìn)行的。 A. 客戶 B. 用戶和分析設(shè)計(jì)人員之間 C. 開發(fā)人員內(nèi)部 D. 使用和維護(hù)人員間 (5) 軟件的主要結(jié)構(gòu)和功能是在( )階段決定的。 A. 分析設(shè)計(jì) B編程 C. 測(cè)試 D維護(hù) (6) 軟件危機(jī)具有下列表現(xiàn)( )。 . 對(duì)軟件開發(fā)成本估計(jì)不準(zhǔn)確 . 軟件產(chǎn)品的質(zhì)量往往靠不住 . 軟件常常不可維護(hù) . 軟件成本逐年上升 A. 、和 B. 、和 C. 、和 D. 以上都正確 (7) 軟件工程的出現(xiàn)是由于( )。 A. 軟件危機(jī)的出現(xiàn) B. 計(jì)算機(jī)硬件技術(shù)的發(fā)展 C. 軟件社會(huì)化的需要 D. 計(jì)算機(jī)軟件技術(shù)的發(fā)展 (8) ( )分批地逐步向用戶提交產(chǎn)品,每次提

17、交一個(gè)滿足用戶需求子集的可運(yùn)行的產(chǎn)品。 A. 增量模型 B. 噴泉模型 C. 快速原型模型 D. 瀑布模型(9) “軟件危機(jī)”是指( )。 A. 計(jì)算機(jī)病毒的出現(xiàn) B. 利用計(jì)算機(jī)進(jìn)行經(jīng)濟(jì)犯罪活動(dòng) C. 軟件開發(fā)和維護(hù)中出現(xiàn)的一系列問題 D. 人們過分迷戀計(jì)算機(jī)系統(tǒng) (10) 為了克服軟件危機(jī),人們提出了用 ( ) 的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。 A. 數(shù)學(xué) B. 軟件學(xué) C. 運(yùn)籌學(xué) D. 工程學(xué)【問題思考】1.軟件的發(fā)展過程。 2.軟件的特點(diǎn)。3.軟件危機(jī)主要有哪幾種表現(xiàn)? 4.軟件工程的基本原理。 5.軟件工程的目標(biāo)是什么? 6.什么是軟件生存周期? 7.什么是軟件開發(fā)模型

18、?主要有哪些?各有何特點(diǎn)?8.假設(shè)要求你開發(fā)一個(gè)軟件,該軟件的功能是把讀入的浮點(diǎn)數(shù)開平方,所得到的結(jié)果應(yīng)該精確到小數(shù)點(diǎn)后4位。一旦實(shí)現(xiàn)并測(cè)試完之后,該產(chǎn)品將被拋棄。你打算選用哪種軟件生命周期模型?請(qǐng)說明你做出選擇的理由?!締卧繕?biāo)】1.了解面向?qū)ο蟮幕靖拍睢?.掌握面向?qū)ο蟮娜筇卣鳌?.了解軟件建模的基本概念,深刻體會(huì)軟件建模的目的和原則。4.能夠運(yùn)用面向?qū)ο蠼T瓌t建立系統(tǒng)模型。5.學(xué)會(huì)面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法。第2單元 面向?qū)ο蠹夹g(shù)簡(jiǎn)介【任務(wù)描述】面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-Oriented Programming,OOP)旨在創(chuàng)建軟件重用代碼,具備更好的模擬現(xiàn)實(shí)世界環(huán)境的能

19、力,這使得它被公認(rèn)為是編程的最佳選擇。面向?qū)ο蟮木幊陶Z言使得復(fù)雜的工作條理清晰、編寫容易。通過對(duì)面向?qū)ο蟮幕靖拍畹膶W(xué)習(xí)來掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。【任務(wù)目標(biāo)】了解面向?qū)ο蟮陌l(fā)展以及它的特點(diǎn),掌握面向?qū)ο蟮幕靖拍睢D軌蜻\(yùn)用面向?qū)ο蟮乃枷脒M(jìn)行程序設(shè)計(jì)。2.1 任務(wù)1 面向?qū)ο蟮幕靖拍?.1.1 面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮姆椒ㄆ鹪从诿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語言。在20世紀(jì)60年代中期Simula-67的設(shè)計(jì)者Dahl和Nygaard提出對(duì)象的概念,在程序設(shè)計(jì)語言中開始使用數(shù)據(jù)封裝的概念。面向?qū)ο蠹夹g(shù)是一種以對(duì)象為基礎(chǔ),以事件或消息來驅(qū)動(dòng)對(duì)象執(zhí)行處理的程序設(shè)計(jì)技術(shù)。在結(jié)構(gòu)上,面向?qū)ο蟪绦蛟O(shè)計(jì)和結(jié)構(gòu)化程

20、序設(shè)計(jì)也有很大的不同。結(jié)構(gòu)化程序設(shè)計(jì)首先應(yīng)該確定的是程序的流程怎樣走,函數(shù)間的調(diào)用關(guān)系怎樣,也就是函數(shù)間的依賴關(guān)系是什么。2.1.2 對(duì)象對(duì)象是面向?qū)ο笙到y(tǒng)的基本構(gòu)造塊,是一些相關(guān)變量和方法的軟件集。對(duì)象經(jīng)常用于建立現(xiàn)實(shí)世界中我們身邊的一些對(duì)象的模型。對(duì)象是理解面向?qū)ο蠹夹g(shù)的關(guān)鍵。對(duì)象的特性包括:(1)對(duì)象具有封裝性。(2)對(duì)象具有自治性。(3)對(duì)象具有通信性。(4)對(duì)象具有被動(dòng)性。(5)對(duì)象具有暫存性。2.1.3 類類的確定和劃分沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)和方法,基本上依賴于設(shè)計(jì)人員的經(jīng)驗(yàn)、技巧以及對(duì)實(shí)際項(xiàng)目中問題的把握。通常的標(biāo)準(zhǔn)是“尋求共性、抓住特性”,即在一個(gè)大的系統(tǒng)環(huán)境中,尋求事物的共性,將

21、具有共性的事物用一個(gè)類進(jìn)行表述,在用具體的程序?qū)崿F(xiàn)時(shí),具體到某一個(gè)對(duì)象,要抓住對(duì)象的特性。確定一個(gè)類的步驟通常包含以下方面。(1)確定系統(tǒng)的范圍。(2)在系統(tǒng)范圍內(nèi)尋找對(duì)象,該對(duì)象通常具有一個(gè)和多個(gè)類似的事物。(3)將對(duì)象抽象成為一個(gè)類,按照上面類的定義,確定類的數(shù)據(jù)和操作。2.1.4 消息與事件1.消息所謂消息,是指描述事件發(fā)生的信息,是對(duì)象間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由五部分組成:消息的發(fā)送對(duì)象、消息的接收對(duì)象、消息的傳遞方式、消息內(nèi)容、消息的返回。傳入消息內(nèi)容的目的有兩個(gè),一個(gè)是讓接收請(qǐng)求的對(duì)象獲取執(zhí)行任務(wù)的相關(guān)信息,另一個(gè)是行為指令。2.事件所謂事件,通常是指一種由系統(tǒng)預(yù)先

22、定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)的反應(yīng)。與對(duì)象的方法集可以無限擴(kuò)展不同,事件的集合通常是固定的,用戶不能隨便定義新的事件。但是現(xiàn)代高級(jí)語言中可以通過一些其他技術(shù)在類中加入事件。我們通常所熟悉的一些事件,比如Click,鼠標(biāo)左鍵單擊對(duì)象時(shí)發(fā)生的事件;Load,當(dāng)界面被加載到內(nèi)存中時(shí)發(fā)生的事件等?!救蝿?wù)描述】研究面向?qū)ο蟮娜筇卣鳎悍庋b、繼承、多態(tài),這些特征保證了程序的安全性、可靠性、可重用性和易維護(hù)性。隨著技術(shù)的發(fā)展,把這些思想用于硬件、數(shù)據(jù)庫、人工智能技術(shù)、分布式計(jì)算、網(wǎng)絡(luò)、操作系統(tǒng)等領(lǐng)域,越來越顯示出其優(yōu)越性。【任務(wù)目標(biāo)】掌握面向?qū)ο蟮娜蠡咎卣?,深刻?/p>

23、解封裝、繼承和多態(tài)的含義。2.2 任務(wù)2 面向?qū)ο蟮幕咎卣?.2.1 封裝(Encapsulation)封裝就是把對(duì)象的狀態(tài)和行為綁到一起的機(jī)制,使對(duì)象形成一個(gè)獨(dú)立的整體,并且盡可能地隱藏對(duì)象的內(nèi)部細(xì)節(jié)。通過公共訪問控制器來限制對(duì)象的私有屬性,有以下好處:避免對(duì)封裝數(shù)據(jù)的未授權(quán)訪問。當(dāng)對(duì)象為維護(hù)一些信息,并且這些信息比較重要,不能夠隨便向外界傳遞,這個(gè)時(shí)候,只需要將這些信息屬性設(shè)置為私有的即可。幫助保護(hù)數(shù)據(jù)的完整性。當(dāng)對(duì)象的屬性設(shè)置為公共訪問的時(shí)候,代碼可以不經(jīng)過對(duì)象所屬類希望遵循的業(yè)務(wù)流程而去修改對(duì)象的值,對(duì)象很容易失去對(duì)其數(shù)據(jù)的控制。當(dāng)類的私有方法必須修改時(shí),限制了對(duì)整個(gè)應(yīng)用程序內(nèi)的影響

24、。2.2.2 繼承(Inheritance)繼承是一種使用戶得以在一個(gè)類的基礎(chǔ)上建立新的類的技術(shù)。新的類自動(dòng)繼承舊類的屬性和行為特征,并可具備某些附加的特征或某些限制。繼承是一種連接類與類之間的層次模型。繼承是指特殊類的對(duì)象擁有其一般類的屬性和行為。繼承意味著“自動(dòng)地?fù)碛小?,即在特殊類中不必重新?duì)已經(jīng)在一般類中定義過的屬性和行為進(jìn)行定義,而是自動(dòng)地、隱含地?fù)碛衅湟话泐惖膶傩院托袨?。繼承對(duì)類的重用性提供了一種明確表述共性的方法。2.2.3 多態(tài)(Polymorphism)多態(tài)是指兩個(gè)或多個(gè)屬于不同類的對(duì)象對(duì)于同一個(gè)消息或方法調(diào)用所做出不同響應(yīng)的能力。面向?qū)ο笤O(shè)計(jì)也借鑒了客觀世界的多態(tài)性,體現(xiàn)在不

25、同的對(duì)象可以根據(jù)相同的消息產(chǎn)生各自不同的動(dòng)作。下圖就是多態(tài)性的表現(xiàn)?!救蝿?wù)描述】我們?cè)诮鉀Q問題之前首先要理解所要解決的問題,對(duì)問題理解得越透徹,就越容易解決它。為了更好地理解問題,通常采用建立問題模型的方法?!救蝿?wù)目標(biāo)】掌握面向?qū)ο蠼5母拍睿斫廛浖5脑?、目的及原則,掌握面向?qū)ο蠼5娜N模型,能夠?qū)?shí)際問題進(jìn)行建模。2.3 任務(wù)3 面向?qū)ο蟮慕?.2.3 面向?qū)ο蟮慕8攀?.模型所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無歧義的書面描述。(1)模型是對(duì)現(xiàn)實(shí)世界的簡(jiǎn)化。(2)模型是對(duì)問題的抽象。(3)模型是為了簡(jiǎn)化問題而做出的一種抽象。(4)模型是對(duì)問題的書面

26、上的、圖形或文字的、無歧義的描述。2.建模建模即建立模型,實(shí)際上,建模就是要尋求和種簡(jiǎn)明易懂的語言,該語言能夠清晰、準(zhǔn)確、完整地表達(dá)對(duì)問題的認(rèn)識(shí),在此基礎(chǔ)上,以該語言為媒介,彼此溝通,構(gòu)造出未來系統(tǒng)的模型,通過該模型看到未來系統(tǒng)的靜態(tài)和動(dòng)態(tài)的樣子,使人們?cè)诮ㄔ斐鰧?shí)際系統(tǒng)之前就能夠全面了解未來系統(tǒng),減少返工、出差錯(cuò)的可能性。3.建模的目的(1)模型能夠可視化軟件系統(tǒng)。(2)模型能夠說明軟件系統(tǒng)的結(jié)構(gòu)和行為。(3)模型能夠構(gòu)造軟件系統(tǒng)。(4)模型能夠文檔化軟件系統(tǒng)。4.建模的原則(1)選擇好的模型,有利于問題的解決。(2)每個(gè)模型可以表達(dá)到不同的抽象程序,選擇適當(dāng)?shù)某橄髮哟危欣趯?duì)問題的理解。(

27、3)最好的模型應(yīng)該和現(xiàn)實(shí)相聯(lián)系。(4)一個(gè)模型往往僅僅對(duì)現(xiàn)實(shí)的一個(gè)方面建模,使用多個(gè)模型對(duì)現(xiàn)實(shí)的多個(gè)方面建模。2.3.2 對(duì)象模型 對(duì)象模型表示系統(tǒng)靜態(tài)的數(shù)據(jù)結(jié)構(gòu),是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,表達(dá)了系統(tǒng)是由哪些對(duì)象構(gòu)成,對(duì)象與對(duì)象間的關(guān)系怎樣,每個(gè)對(duì)象有哪些屬性和方法。它是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。面向?qū)ο蠓椒◤?qiáng)調(diào)圍繞對(duì)象而不是圍繞功能來構(gòu)造系統(tǒng)。對(duì)象模型為建立動(dòng)態(tài)模型和功能模型,提供了實(shí)質(zhì)性的框架。2.3.3 動(dòng)態(tài)模型 動(dòng)態(tài)模型表示系統(tǒng)的控制結(jié)構(gòu),是對(duì)模擬客觀世界實(shí)體的對(duì)象類以及對(duì)象類彼此間的相互作用的映射,表達(dá)了對(duì)象

28、類的狀態(tài)變化,以及對(duì)象間的消息傳遞過程,描述了對(duì)象模型中的對(duì)象的合法變化序列。2.3.4 功能模型 功能模型表示系統(tǒng)的功能性質(zhì),指明系統(tǒng)應(yīng)該完成哪些功能,直接表明了系統(tǒng)為外界所提供的服務(wù),也就是用戶對(duì)目標(biāo)系統(tǒng)的需求。2.3.5 三種模型之間的關(guān)系在面向?qū)ο蠓椒▽W(xué)中,對(duì)象模型是最基本最重要的,它為其他兩種模型奠定了基礎(chǔ),我們依靠對(duì)象模型完成 3 種模型的集成。三種模型之間的關(guān)系總結(jié)如下:(1)針對(duì)每個(gè)類建立的動(dòng)態(tài)模型,描述了類實(shí)例的生命周期或運(yùn)行周期。(2)狀態(tài)轉(zhuǎn)換驅(qū)使行為發(fā)生,這些行為在數(shù)據(jù)流圖中被映射成處理,它們同時(shí)與對(duì)象模型中的服務(wù)相對(duì)應(yīng)。(3)功能模型中的處理(或用例)對(duì)應(yīng)于對(duì)象模型中的

29、類所提供的服務(wù)。通常,復(fù)雜的處理(或用例)對(duì)應(yīng)于復(fù)雜對(duì)象提供的服務(wù),簡(jiǎn)單的處理(或用例)對(duì)應(yīng)于更基本的對(duì)象提供的服務(wù)。有時(shí)一個(gè)處理對(duì)應(yīng)多個(gè)服務(wù),也有個(gè)服務(wù)對(duì)應(yīng)多個(gè)處理的時(shí)候。(4)數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ),以及數(shù)據(jù)的源點(diǎn)/終點(diǎn),通常是對(duì)象模型中的對(duì)象。(5)數(shù)據(jù)流圖中的數(shù)據(jù)流,住往是對(duì)象模型中的對(duì)象的屬性值,也可能是整個(gè)對(duì)象。(6)用例圖中的行為者,可能是對(duì)象模型中的對(duì)象。(7)功能模型中的處理(或用例)可能產(chǎn)生動(dòng)態(tài)模型中的事件。(8)對(duì)象模型描述了數(shù)據(jù)流圖中的數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)源點(diǎn)/終點(diǎn)的結(jié)構(gòu)?!救蝿?wù)描述】面向?qū)ο蟪绦蛟O(shè)計(jì)語言趨于成熟,作為一種新的程序模式開始為社會(huì)所關(guān)注,為更多的人們所理

30、解和接受。這一成就促使研究者把一部分注意力轉(zhuǎn)向更廣、更深層次的研究。首先,把面向?qū)ο蟮乃枷胗糜谠O(shè)計(jì)階段,于是有了面向?qū)ο蟮脑O(shè)計(jì);更進(jìn)一步,又把面向?qū)ο蟮乃枷胗糜诜治鲭A段,產(chǎn)生了面向?qū)ο蟮姆治??!救蝿?wù)目標(biāo)】學(xué)會(huì)面向?qū)ο蟮姆治龇椒?,學(xué)會(huì)面向?qū)ο蟮脑O(shè)計(jì)方法。2.4 任務(wù)4 面向?qū)ο蟮姆治雠c設(shè)計(jì)2.4.1 面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治鼍褪浅槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程。面向?qū)ο蠓治龅年P(guān)鍵,是識(shí)別出問題域內(nèi)的對(duì)象,并分析它們相互間的關(guān)系,最終建立起問題域的簡(jiǎn)潔、精確、可理解的正確模型。面向?qū)ο蟮姆治鲞^程如下圖所示:2.4.2 面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)

31、量要求的抽象的系統(tǒng)實(shí)現(xiàn)方案的過程。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)是一個(gè)逐漸擴(kuò)充模型的過程。1. 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則(1) 模塊化。(2) 抽象。(3) 信息隱藏。(4) 低耦合。(5) 高內(nèi)聚。2. 面向?qū)ο笤O(shè)計(jì)的啟發(fā)規(guī)則(1) 設(shè)計(jì)的結(jié)果應(yīng)該清晰易懂。(2) 一般到具體結(jié)構(gòu)的深度應(yīng)適當(dāng)。(3) 盡量設(shè)計(jì)小而簡(jiǎn)單的類。(4) 使用簡(jiǎn)單的消息協(xié)議。(5) 使用簡(jiǎn)單的函數(shù)或方法。(6) 把設(shè)計(jì)變動(dòng)減至最小。3. 系統(tǒng)設(shè)計(jì)(1) 分解系統(tǒng)。(2) 確定并發(fā)性。(3) 處理器及任務(wù)分配。(4) 數(shù)據(jù)存儲(chǔ)管理。(5) 全局資源的處理。(6) 選擇軟件控制機(jī)制。(7) 人機(jī)交互接口設(shè)計(jì)?!締卧〗Y(jié)】在本單元

32、中,我們介紹了有關(guān)面向?qū)ο蠹夹g(shù)的基本概念,這有助于我們使用面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)軟件系統(tǒng)的建模工作。同時(shí)先后介紹了面向?qū)ο蟮娜蠡咎卣骱兔嫦驅(qū)ο蠼5幕靖拍钆c三種模型之間的關(guān)系,最后介紹了面向?qū)ο蠓治龊驮O(shè)計(jì)的一般步驟。本單元是對(duì)UML建模的面向?qū)ο蟮母拍畹冗M(jìn)行的總體描述,重點(diǎn)是面向?qū)ο蟮奶卣饕约懊嫦驅(qū)ο笤O(shè)計(jì)的方法?!靖拍顝?fù)習(xí)】對(duì)象、類、消息、事件、封裝、繼承、多態(tài)、對(duì)象模型、動(dòng)態(tài)模型、功能模型、面向?qū)ο蟮姆治?、面向?qū)ο蟮脑O(shè)計(jì)【習(xí)題練習(xí)】1. 填空題(1) 是面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言,它統(tǒng)一了過去相互獨(dú)立的數(shù)十種面向?qū)ο蟮慕UZ言共同存在的局面,形成了一個(gè)統(tǒng)一的、公共的、具有廣泛

33、適用性的建模語言。(2) 類是具有相同_ _和_ _的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述。(3) 面向?qū)ο蟪绦虻娜筇卣魇?、 和 。(4) 面向?qū)ο蠓椒ㄖ械?機(jī)制使子類可以自動(dòng)地?fù)碛?復(fù)制)父類全部屬性和操作。(5) 面向?qū)ο蟮南到y(tǒng)分析要確立的三個(gè)系統(tǒng)模型是 、 和 。2. 選擇題(1) 在軟件工程學(xué)中,我們把具有相同屬性和服務(wù)的一組對(duì)象的集合定義為( )。A. 類 B. 屬性 C. 對(duì)象 D. 消息(2) 下列關(guān)于類與對(duì)象的關(guān)系說法正確的是( )。A. 有些對(duì)象是不能被抽象成類的B. 類給出了屬于該類的全部對(duì)象的抽象定義C. 類是對(duì)象集合的再抽象D. 類是用來在內(nèi)存

34、中開辟一個(gè)數(shù)據(jù)區(qū),存儲(chǔ)新對(duì)象的屬性(3) 通過執(zhí)行對(duì)象的操作改變?cè)搶?duì)象的屬性,但它必須通過( )來執(zhí)行。A. 接口 B. 消息 C. 信息 D. 操作(4) 在面向?qū)ο蠓椒▽W(xué)中,信息隱蔽的實(shí)現(xiàn)是通過對(duì)象的( )。 A. 分類性 B. 繼承性 C. 封裝性 D. 共享性(5) 面向?qū)ο蟮闹饕卣鞒龑?duì)象唯一性、封裝性、繼承性外,還有( ) A. 多態(tài)性 B. 完整性 C. 移植性 D. 兼容性(6) 面向?qū)ο蠓治鲭A段建立的三個(gè)模型中,其核心模型是( )。 A. 功能模型 B. 動(dòng)態(tài)模型 C. 對(duì)象模型 D. 分析模型【問題思考】1.試述對(duì)象和類的關(guān)系。2.面向?qū)ο蠼5姆椒ā?.面向?qū)ο蟮姆治鲋校?/p>

35、如何書寫需求陳述?【單元目標(biāo)】1.了解UML的發(fā)展歷史。2.掌握UML的主要內(nèi)容。3.了解UML的特點(diǎn)與應(yīng)用領(lǐng)域。4.學(xué)會(huì)一種UML開發(fā)工具。5.掌握UML語言的基本組成元素。第3單元 UML語言基礎(chǔ)【任務(wù)描述】UML為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的、標(biāo)準(zhǔn)的、可視化的建模語言,廣泛適用于各種應(yīng)用領(lǐng)域,并得到了工業(yè)界的廣泛支持,成為標(biāo)準(zhǔn)建模語言。本小節(jié)進(jìn)行UML基礎(chǔ)知識(shí)的學(xué)習(xí)?!救蝿?wù)目標(biāo)】了解UML的發(fā)展,掌握UML的主要內(nèi)容,學(xué)會(huì)UML開發(fā)工具的使用。3.1 任務(wù)1 UML概述3.1.1 UML的發(fā)展UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言,它融入了軟件工程領(lǐng)域的新思想、新方法

36、和新技術(shù)。它的作用域不僅支持面向?qū)ο蟮姆治龊驮O(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。UML的發(fā)展過程如下圖所示:3.1.2 UML的內(nèi)容1.UML定義作為一種建模語言,UML 的定義包括UML語義和UML表示法兩個(gè)部分。UML語義:描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡(jiǎn)單、一致的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達(dá)方法所造成的影響。此外,UML還支持對(duì)元模型的擴(kuò)展定義。UML表示法:定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語法,以及為系統(tǒng)建模均提供了標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,

37、在語義上它是UML元模型的實(shí)例。2.UML中的圖形UML 描述了一個(gè)系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為。UML可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中的重要對(duì)象的屬性和操作以及這些對(duì)象之間的相互關(guān)系。動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)而相互進(jìn)行通信的機(jī)制。UML提供了以下這些圖形。3.1.3 UML的特點(diǎn)1. 統(tǒng)一的建模語言2. 支持面向?qū)ο?. 支持可視化建模4. 強(qiáng)大的表達(dá)能力3.1.4 UML的應(yīng)用領(lǐng)域UML的目標(biāo)是以對(duì)象模型為基礎(chǔ)描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域,包括常用的建立軟件系統(tǒng)的模型,也可描述非軟件領(lǐng)域的系統(tǒng),如機(jī)械系統(tǒng)、企業(yè)機(jī)構(gòu)或事務(wù)過程???/p>

38、之,UML 作為通用的標(biāo)準(zhǔn)建模語言,可對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。 【任務(wù)描述】UML工具是幫助軟件開發(fā)人員方便使用UML的軟件,它的主要功能包括:支持各種UML模型圖的輸入、編輯和存儲(chǔ);支持正向工程和逆向工程;提供和其他開發(fā)工具的接口。不同的工具提供的功能不同,各個(gè)功能實(shí)現(xiàn)的程序也不同。使用Rational Rose工具進(jìn)行UML建?;静僮??!救蝿?wù)目標(biāo)】了解主要的UML建模工具,學(xué)會(huì)Rational Rose的安裝和使用。3.2 任務(wù)2 UML工具3.2.1 UML主要工具介紹1. Rational Rose2.Enterprise architect3.JUDE4.Sta

39、rUML5.Visio3.2.2 Rational Rose簡(jiǎn)介1. Rational Rose的安裝(1)雙擊啟動(dòng)Rational Rose 2003的安裝程序,進(jìn)入安裝向?qū)Ы缑?,如下圖所示。(2)單擊“下一步”按鈕,進(jìn)入產(chǎn)品選擇界面,如下圖所示。選擇第二項(xiàng),即Rational Rose Enterprise Edition。(3)單擊“下一步”按鈕,進(jìn)入部署方法選擇界面,如下圖所示。使用其默認(rèn)的選項(xiàng),即Desktop installation from CD image。(4)單擊“下一步”按鈕,開始加載安裝包,之后進(jìn)入下圖所示的界面。(5)單擊Next按鈕,進(jìn)入下圖所示的產(chǎn)品聲明界面。(

40、6)繼續(xù)單擊Next按鈕,進(jìn)入下圖所示的協(xié)議許可界面。選擇I accept the terms in the license agreement單選項(xiàng)。(7)繼續(xù)單擊Next按鈕,進(jìn)入下圖所示安裝路徑設(shè)置界面??梢詥螕鬋hange按鈕修改安裝路徑。(8)安裝路徑設(shè)置完成后,單擊Next按鈕進(jìn)入下圖所示自定義安裝設(shè)置界面。用戶可以根據(jù)需要進(jìn)行選擇。(9)繼續(xù)單擊Next按鈕,進(jìn)入下圖所示開始安裝界面。(10)單擊Install按鈕開始安裝,直到系統(tǒng)安裝完畢。(11)單擊Finish按鈕,彈出注冊(cè)對(duì)話框,如下圖所示,要求用戶對(duì)軟件進(jìn)行注冊(cè)。用戶可以選擇多種注冊(cè)方式,如果是試用版則不用注冊(cè)。2. R

41、ational Rose的啟動(dòng)(1)單擊“開始”“程序”Rational SoftwareRational Rose Enterprise Edition命令,得到啟動(dòng)界面。(2)如果模型中涉及具體的編程語言,則需要選擇相應(yīng)編程語言的模板;如果暫時(shí)不需要任何模板,則直接單擊Cancel(取消)按鈕。3.Rational Rose的主界面Rose的工作區(qū)主要由4個(gè)部分組成:列表區(qū)(用于快速瀏覽模型中的各個(gè)視圖及其組件)、編輯區(qū)(用于繪制圖形)、文檔區(qū)(用于編輯與各組件相關(guān)的說明性文字)、日志區(qū)(記錄對(duì)模型所做的重要?jiǎng)幼鳎?【任務(wù)描述】UML語言是由構(gòu)造元素(基本構(gòu)造塊)、規(guī)則和公共機(jī)制構(gòu)成。構(gòu)

42、造元素描述事物的基本元素,這些基本元素按某種規(guī)則關(guān)聯(lián)在一起組成圖;同時(shí),這些基本元素都遵循通用規(guī)則,即公共機(jī)制。【任務(wù)目標(biāo)】了解UML語言的組成結(jié)構(gòu),掌握UML語言的基本元素,掌握UML的圖和視圖及公共機(jī)制。3.3 任務(wù)3 UML結(jié)構(gòu)3.3.1 UML語言組成1.構(gòu)造元素構(gòu)造元素包括基本元素、關(guān)系和圖。這3種元素代表了軟件系統(tǒng)或業(yè)務(wù)系統(tǒng)中的某個(gè)事物或事物間的關(guān)系。2.規(guī)則構(gòu)造元素應(yīng)該具有命名、范圍、可見性、完整性和執(zhí)行等屬性。規(guī)則是對(duì)軟件系統(tǒng)或業(yè)務(wù)系統(tǒng)中的某些事物的約束或規(guī)定。3.公共機(jī)制公共機(jī)制包括詳述、修飾、通用劃分、擴(kuò)展機(jī)制等,它是指適用于軟件系統(tǒng)或業(yè)務(wù)系統(tǒng)中每個(gè)事物的方法或規(guī)則。UML

43、語言的組成結(jié)構(gòu)如下圖所示。3.3.2 UML基本元素UML基本元素分為4類:結(jié)構(gòu)元素、行為元素、分組元素和注釋元素。1. 結(jié)構(gòu)元素結(jié)構(gòu)元素定義了業(yè)務(wù)或軟件系統(tǒng)中的某個(gè)物理元素,描述事物的靜態(tài)特征。結(jié)構(gòu)元素常用名詞來表示。結(jié)構(gòu)元素有7種:類和對(duì)象、接口、主動(dòng)類、用例、協(xié)作、構(gòu)件、節(jié)點(diǎn)。類的表示:對(duì)象的表示:接口的表示:主動(dòng)類Radio的表示:用例“銷售房產(chǎn)”的表示:用例“銷售房產(chǎn)”,用協(xié)作“銷售房產(chǎn)”表示:構(gòu)件是用帶有兩個(gè)小方框的矩形來表示:節(jié)點(diǎn)Server的表示方法:交互的表示方法:“等待”狀態(tài)的表示方法:“數(shù)據(jù)訪問”包的表示方法:注釋符號(hào)的表示方法:3.3.3 關(guān)系元素在UML中共定義了24

44、種關(guān)系,如表3-2所示。1.關(guān)聯(lián)關(guān)系在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系,它們是聚合關(guān)系和組合關(guān)系。聚合關(guān)系和組合關(guān)系是更具體的關(guān)系。(1)聚合關(guān)系。(2)組合關(guān)系。2. 泛化關(guān)系泛化關(guān)系描述了從特殊事物到一般事物之間的關(guān)系,也就是子類到父類之間的關(guān)系。從父類到子類的關(guān)系,則是特化關(guān)系。泛化關(guān)系的表示方法如圖3-29所示。3. 實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系是用來規(guī)定接口和實(shí)現(xiàn)接口的類或組件之間的關(guān)系。實(shí)現(xiàn)關(guān)系是從類指向接口的帶空心箭頭的虛線表示,如圖3-30所示。4. 依賴關(guān)系有兩個(gè)元素X、Y,如果修改元素X的定義可能會(huì)引起對(duì)另一個(gè)元素Y的定義的修改,則稱元素Y依賴(Dependency)于元素X。依賴關(guān)系

45、用一個(gè)帶箭頭的虛線表示,如圖3-31所示。5. 擴(kuò)展關(guān)系擴(kuò)展表示把一個(gè)構(gòu)造型附加到一個(gè)元類上,使得元類的定義中包括這個(gè)構(gòu)造型。它是一種UML提供的底層的擴(kuò)展機(jī)制,與用例之間的擴(kuò)展(Extend)關(guān)系是不同的。擴(kuò)展關(guān)系用一個(gè)帶箭頭的實(shí)線表示,如圖3-32所示。3.3.4 圖和視圖在UML 2.0中共定義了13種圖,比UML 1.0新增了3種。表3-3列出了這13種圖及其功能。一個(gè)圖只能反映系統(tǒng)中某個(gè)側(cè)面和特征,多個(gè)圖結(jié)合在一起可以反映系統(tǒng)的某些側(cè)面和多個(gè)特征。我們把能反映系統(tǒng)某些側(cè)面和特征的多個(gè)圖的集合稱為視圖。在UML參與手冊(cè)第2版中,將UML圖劃分為四大領(lǐng)域9種視圖,如表3-4所示。從使用的

46、角度來看,將UML的13種圖分為結(jié)構(gòu)模型(也稱為靜態(tài)模型)和行為模型(也稱為動(dòng)態(tài)模型)兩大類。這里講的結(jié)構(gòu)和行為其含義與前面所說的是有一定區(qū)別的:前者是從定義角度,后者則是從使用角度,其分類如圖3-33所示。3.3.5 規(guī)則和機(jī)制1.規(guī)則在UML中,構(gòu)造元素在使用時(shí)應(yīng)該遵守一系列規(guī)則,這些規(guī)則指導(dǎo)人們?nèi)绾螌?gòu)造元素連接成為一個(gè)模型。2.公共機(jī)制以圖的方式建立模型是不夠的,還要按一定要求進(jìn)行詳細(xì)說明和解釋,從而構(gòu)成完整的模型。公共機(jī)制指適用于軟件系統(tǒng)或業(yè)務(wù)系統(tǒng)中每個(gè)事物的方法或規(guī)則。公共機(jī)制可以使模型更容易理解。用具體的可視性的符號(hào)修飾元素(在類圖中屬性和方法前加上公共性或私有性的修飾符“+”和

47、“-” ),用斜體字表示抽象類。如圖3-35所示。在面向?qū)ο笤O(shè)計(jì)中,有許多事物可以劃分為抽象的描繪和具體的實(shí)例、接口和實(shí)現(xiàn)這兩種存在形式。UML的通用劃分,即對(duì)UML元素進(jìn)行分類,包括兩種分類方法:類與對(duì)象、接口與實(shí)現(xiàn)。類與對(duì)象:類是一種抽象、一個(gè)模型;對(duì)象是類的實(shí)例。接口與實(shí)現(xiàn):接口是一種聲明、是一個(gè)合同、一個(gè)計(jì)劃;實(shí)現(xiàn)則是完成一個(gè)計(jì)劃、一個(gè)合同、執(zhí)行聲明。構(gòu)造型構(gòu)造型就是構(gòu)造一種新的UML元素,例如,我們構(gòu)造一個(gè)元素exception,用該元素來表示軟件的異常。有三種構(gòu)造方法,如圖3-36所示。標(biāo)記值標(biāo)記值是用來為事物(元素)添加新特征的。標(biāo)記值的表示方法是用形如:“標(biāo)記信息”的字符串表示

48、。標(biāo)記信息通常由名稱、分隔符和值組成。標(biāo)記值是對(duì)元素屬性的表示,因此,標(biāo)記值是放在UML元素中的。如圖3-37所示?!締卧〗Y(jié)】在本單元中,介紹了UML語言的基礎(chǔ)知識(shí)。首先介紹UML的基本概念、發(fā)展歷史、主要內(nèi)容和應(yīng)用領(lǐng)域,接著介紹了UML常用工具Rational Rose,最后對(duì)UML語言進(jìn)行了比較詳細(xì)的介紹。通過本單元的學(xué)習(xí),我們對(duì)UML有了一定的認(rèn)識(shí)和了解,為后面各單元的學(xué)習(xí)打下良好的基礎(chǔ)?!靖拍顝?fù)習(xí)】UML、基本元素、關(guān)系元素、視圖、規(guī)則、機(jī)制【習(xí)題練習(xí)】1. 填空題(1) 作為一種建模語言,UML 的定義包括_和_兩個(gè)部分。(2) UML語言由3部分組成,它們分別是_、_、_。(3)

49、 UML的基本元素分為4類,分別是_、_、_和_。 (4) UML中定義了4種可見性規(guī)則,分別是_、_、_和_。(5) UML語言中定義了4種公共機(jī)制,分別是_、_、_和_。2. 選擇題(1) 如果要描述一個(gè)類的語義,則應(yīng)該采用( )。 A. 標(biāo)記值 B. 規(guī)格描述C. 注釋 D. 構(gòu)造型 (2) 圖示 表示( )關(guān)系。 A. 依賴 B. 聚集 C. 泛化 D. 實(shí)現(xiàn)【問題思考】1.常用的UML工具有哪些?各有什么特點(diǎn)?不局限于教材中提到的,可以通過網(wǎng)絡(luò)查找相關(guān)的知識(shí)。2.Rational Rose提供了幾種視圖?分別是哪些? 3.Rational Rose中支持哪些UML圖?4.Ration

50、al Rose所支持的UML圖分別可以建模在哪種視圖中?5.查閱相關(guān)資料,分組討論UML在應(yīng)用中所起的作用?!締卧繕?biāo)】1.理解類和對(duì)象的概念。2.學(xué)會(huì)設(shè)計(jì)和使用類圖的方法。3.掌握類與類之間四種關(guān)系的含義和圖示方法。4.學(xué)會(huì)設(shè)計(jì)和使用對(duì)象圖的方法。第4單元 類圖和對(duì)象圖【任務(wù)描述】類是有著相同結(jié)構(gòu)、行為和關(guān)系的一組對(duì)象的描述符號(hào)。所用的屬性與操作都被附在類或其他類元上。類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。對(duì)象是具有身份、狀態(tài)和可激發(fā)行為的離散實(shí)體。對(duì)象是用來構(gòu)造實(shí)際運(yùn)行系統(tǒng)的個(gè)體;類是用來理解和描述眾多個(gè)別對(duì)象的個(gè)別概念?!救蝿?wù)目標(biāo)】理解面向?qū)ο竽P椭械念惡蛯?duì)象的概念。4.1 任務(wù)1 類和對(duì)象4

51、.1.1 類面向?qū)ο笏枷雭碓从趯?duì)現(xiàn)實(shí)世界的認(rèn)知?,F(xiàn)實(shí)世界繽紛復(fù)雜、種類繁多,難于認(rèn)識(shí)和理解。但是聰明的人們學(xué)會(huì)了把這些錯(cuò)綜復(fù)雜的事物進(jìn)行分類,從而使世界變得井井有條。在類中,用數(shù)據(jù)表示事物的狀態(tài),用函數(shù)實(shí)現(xiàn)事物的行為,這樣就使編程方式和人的思維方式保持一致,極大的降低了思維難度。綜上所述,類是有著相同結(jié)構(gòu)、行為和關(guān)系的一組對(duì)象的描述符號(hào)。所用的屬性與操作都被附在類或其他類元上。類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。4.1.2 對(duì)象所謂對(duì)象就是可以控制和操作的實(shí)體,它可以是一個(gè)設(shè)備,一個(gè)組織或一個(gè)商務(wù)。類是對(duì)象的抽象描述,它包括屬性的描述和行為的描述二方面。屬性描述類的基本特征(比如,車身的長(zhǎng)度、顏色

52、等); 行為描述類具有的功能(比如,汽車有啟動(dòng)、行駛、制動(dòng)等功能), 也就是對(duì)該類的對(duì)象可以進(jìn)行哪些操作。就像程序設(shè)計(jì)語言中整型變量是整數(shù)類型的具體化,用戶可以對(duì)整型變量進(jìn)行操作(并不是對(duì)整數(shù)類型操作)一樣,對(duì)象是類的實(shí)例化,所有的操作都是針對(duì)對(duì)象進(jìn)行的?!救蝿?wù)描述】類圖是用類和它們之間的關(guān)系描述系統(tǒng)的一種圖示,是從靜態(tài)角度表示系統(tǒng)的,因此類圖屬于一種靜態(tài)模型。類圖是構(gòu)建其它圖的基礎(chǔ),沒有類圖,就沒有狀態(tài)圖、協(xié)作圖等其它圖,也就無法表示系統(tǒng)的其它各個(gè)方面。【任務(wù)目標(biāo)】理解類圖的概念,學(xué)會(huì)類的定義方法以及類圖中類的名字、屬性和操作這三部分的具體表示方法和含義。4.2 任務(wù)2 類圖4.2.1 類圖

53、的概念類圖以反映類的結(jié)構(gòu)(屬性、操作)以及類之間的關(guān)系為主要目的,描述了軟件系統(tǒng)的結(jié)構(gòu),是一種靜態(tài)建模方法。類圖中允許出現(xiàn)的模型元素只有類和它之間的關(guān)系。類用長(zhǎng)方形表示,長(zhǎng)方形分成上、中、下三個(gè)區(qū)域,每個(gè)區(qū)域用不同的名字標(biāo)識(shí),用以代表類的各個(gè)特征,上面的區(qū)域內(nèi)用黑體字標(biāo)識(shí)類的名字,中間的區(qū)域內(nèi)標(biāo)識(shí)類的屬性,下面的區(qū)域內(nèi)標(biāo)識(shí)類的操作方法(即行為),這三部分作為一個(gè)整體描述某個(gè)類,如圖 4-1 所示。4.2.2 UML中的類在進(jìn)行構(gòu)造類圖描述系統(tǒng)的工作時(shí),首先要定義類,也就是將系統(tǒng)要處理的數(shù)據(jù)抽象成類的屬性,將處理數(shù)據(jù)的方法抽象為操作。要準(zhǔn)確地找到類不是一件容易的事,通常要獲得對(duì)所解決的問題域很清

54、楚的專家的幫助,對(duì)于建模者所定義的類通常要有這樣二個(gè)特點(diǎn):一是使用來自問題域的概念,二是類的名字用該類實(shí)際代表的涵義命名。4.2.3 名字、屬性和操作類的圖形表示為長(zhǎng)方形,長(zhǎng)方形又分成三個(gè)部分,分別用來表示類的名字、屬性和操作。【任務(wù)描述】類圖由類和它們之間的關(guān)系組成。類與類之間通常有關(guān)聯(lián)、通用化(繼承)、依賴和精化等四種關(guān)系。本次任務(wù)主要詳細(xì)介紹這四種關(guān)系的含義和圖示方法?!救蝿?wù)目標(biāo)】了解類圖中有哪四種關(guān)系,掌握這四種關(guān)系的含義并學(xué)會(huì)它們的圖示方法。4.3 任務(wù)3 類圖中的關(guān)系4.3.1 關(guān)聯(lián)關(guān)系根據(jù)不同的含義,關(guān)聯(lián)可分為普通關(guān)聯(lián)、遞歸關(guān)聯(lián)、限定關(guān)聯(lián)、或關(guān)聯(lián)、有序關(guān)聯(lián)、三元關(guān)聯(lián)和聚合等七種。

55、其中有兩種語義較強(qiáng),分別是聚合與組成。4.3.2 通用化一個(gè)類(通用元素)的所有信息(屬性或操作)能被另一個(gè)類(具體元素)繼承,繼承某個(gè)類的類中不僅可以有屬于自己的信息,而且還擁有了被繼承類中的信,這種機(jī)制就是通用化。通用化又稱繼承。UML 中的通用化是通用元素和具體元素之間的一種分類關(guān)系。具體元素完全擁有通用元素的信息,并且還可附加一些其它信息。4.3.3 依賴關(guān)系依賴關(guān)系描述的是兩個(gè)模型元素(類、組合、用例等)之間的語義上的連接關(guān)系,如圖4-10依賴關(guān)系。其中,一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素是非獨(dú)立的(依賴的),它依賴于獨(dú)立的模型元素,如果獨(dú)立的模型元素發(fā)生改變,將會(huì)影響依賴該模型元

56、素的模型元素。依賴關(guān)系可以細(xì)分為4大類:使用依賴、抽象依賴、 授權(quán)依賴、 綁定依賴。4.3.4 精化關(guān)系精化關(guān)系用于表示同一事物的兩種描述之間的關(guān)系。對(duì)同一事物的兩種描述建立在不同的抽象層上。比如,定義了某種數(shù)據(jù)類型,然后將其實(shí)現(xiàn)為某種語言中的類,那么抽象定義的類型與用語言實(shí)現(xiàn)的類之間就是精化關(guān)系,這種情況也被稱為實(shí)現(xiàn)。圖4-11表示為同一事物建模時(shí),構(gòu)造的分析類和設(shè)計(jì)類之間的精化關(guān)系。【任務(wù)描述】對(duì)象圖(Object Diagram) 顯示了一組對(duì)象和它們之間的關(guān)系。對(duì)象圖用來說明系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、類圖中的類或組件等實(shí)例的快照。對(duì)象圖和類圖一樣,反映系統(tǒng)的靜態(tài)過程,是以實(shí)際的或原型化的對(duì)象為基

57、礎(chǔ)來表達(dá)對(duì)象間的關(guān)系。對(duì)象圖顯示某時(shí)刻對(duì)象和對(duì)象之間的關(guān)系。【任務(wù)目標(biāo)】了解對(duì)象圖的概念,學(xué)會(huì)對(duì)象圖的表示方法并理解其用途。4.4 任務(wù)4 對(duì)象圖4.4.1 什么是對(duì)象1對(duì)象對(duì)象是一件事、一個(gè)實(shí)體、一個(gè)名詞,是客觀存在的事物?,F(xiàn)實(shí)世界中的對(duì)象有汽車、人、房子、桌子、狗、支票簿等等。所有的對(duì)象都有屬性,例如汽車有廠家、型號(hào)、顏色和價(jià)格。狗有種類、年齡、顏色和喜歡的玩具、對(duì)象還有行為(behavior):汽車可以從一個(gè)地方開動(dòng)到另一個(gè)地方,人會(huì)直立行走。2對(duì)象的特點(diǎn):對(duì)象具有狀態(tài)、行為和標(biāo)識(shí)三個(gè)特點(diǎn)。(1)狀態(tài):對(duì)象的狀態(tài)指在某一時(shí)刻,對(duì)象所有屬性值的集合。 (2)行為:沒有一個(gè)對(duì)象是孤立存在的,

58、對(duì)象可以被操作,也可以操作別的對(duì)象。而行為就是一個(gè)對(duì)象根據(jù)它的狀態(tài)改變和消息傳送所采取的行動(dòng)和所做出的反應(yīng) 。(3)標(biāo)識(shí):為了將一個(gè)對(duì)象與其它所有對(duì)象區(qū)分開來,我們通常會(huì)給它起一個(gè)名字,即“標(biāo)識(shí)”。3對(duì)象與類的區(qū)別對(duì)象是一個(gè)存在了的具體實(shí)體;而類是一個(gè)模型,該模型抽象出對(duì)象的“本質(zhì)”:一組公共屬性和一組公共方法。 類是靜態(tài)的,對(duì)象是動(dòng)態(tài)的;類是一般化,對(duì)象是個(gè)性化;類是定義,對(duì)象是實(shí)例;類是抽象、對(duì)象是具體 。 4.4.2 對(duì)象圖的表示圖 4-12 和圖4-13分別給出一個(gè)類圖和一個(gè)對(duì)象圖,其中對(duì)象圖是類圖的示例,讀者可以比較一下兩者之間有何異同。4.4.3 閱讀對(duì)象圖的方法對(duì)象圖中對(duì)象間的關(guān)

59、系稱為鏈接。鏈接是兩個(gè)對(duì)象間的語義關(guān)系。關(guān)聯(lián)是兩個(gè)類間的關(guān)系。就象對(duì)象是類的實(shí)例一樣,鏈接是關(guān)聯(lián)的實(shí)例。鏈接分雙向鏈接和單向鏈接。閱讀對(duì)象圖的方法如下:(1) 找出圖中所有的類。(2) 了解每個(gè)對(duì)象的語義。(3) 了解對(duì)象之間的連接含義?!締卧〗Y(jié)】在本單元中,我們首先闡述了類和對(duì)象的概念,之后詳細(xì)描述了UML中最為核心的圖類圖并詳細(xì)說明了類圖的概念、類的表示方法和類關(guān)系等?!靖拍顝?fù)習(xí)】對(duì)象、類、類圖、類間關(guān)系、對(duì)象圖【習(xí)題練習(xí)】1. 填空題(1) 類圖中類的表示由 、 、 三部分構(gòu)成。(2) 類圖中類與類之間的關(guān)系有_、_、_和_四種。(3) 對(duì)象圖中對(duì)象名有 、 、 三種表示形式。2. 選

60、擇題下圖描述了菜單(Menu)、菜單項(xiàng)(MenuItem)、抽象命令類(Command)和具體命令類(OpenCommand, PasteCommand)之間的關(guān)系,完成(1)-(3)題(1)哪兩個(gè)類之間存在組合關(guān)系( )A.Menu、MenuItem B. MenuItem、CommandC. Command、OpenCommand D. Command、PasteCommand(2)OpenCommand和PasteCommand是什么關(guān)系( ) A. 組合 B. 泛化 C. 聚合 D. 沒關(guān)系(3) 編輯菜單(EditMenu)是一種菜單,下面哪個(gè)圖較好的描述了二者之間的關(guān)系( )【問題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論