基于UML的面向?qū)ο蟮能浖到y(tǒng)分析_第1頁(yè)
基于UML的面向?qū)ο蟮能浖到y(tǒng)分析_第2頁(yè)
基于UML的面向?qū)ο蟮能浖到y(tǒng)分析_第3頁(yè)
基于UML的面向?qū)ο蟮能浖到y(tǒng)分析_第4頁(yè)
基于UML的面向?qū)ο蟮能浖到y(tǒng)分析_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、哈爾濱師范大學(xué)課程論文 課程名稱:軟件系統(tǒng)分析設(shè)計(jì) 任課教師:依波 題  目:基于UML的面向?qū)ο蟮能浖到y(tǒng)分 析、設(shè)計(jì)與開(kāi)發(fā)技術(shù)    姓  名:朱潤(rùn)華 學(xué)  號(hào):2012040732 學(xué)  院:計(jì)算機(jī)科學(xué)與信息學(xué)院 系  別:計(jì)算機(jī)科學(xué)與技術(shù)系 成  績(jī):基于UML的面向?qū)ο蟮能浖到y(tǒng)分析、設(shè)計(jì)與開(kāi)發(fā)技術(shù)朱潤(rùn)華摘 要:本文對(duì)基于UML的面向?qū)ο蟮能浖到y(tǒng)分析、設(shè)計(jì)與開(kāi)發(fā)技術(shù)進(jìn)行了研究,指出了基于迭代方法的RUP與傳統(tǒng)的基于瀑布法的軟件開(kāi)發(fā)過(guò)程相比具有合

2、理性和優(yōu)越性,剖析了這些先進(jìn)技術(shù)的思想內(nèi)涵。此外,文中還詳細(xì)介紹了基于問(wèn)題說(shuō)明和用例分析的軟件系分析方法,以及UML中多種模型圖的使用方法和適用范圍。關(guān)鍵詞:UML 面向?qū)ο?RUP 問(wèn)題說(shuō)明1、 引言上個(gè)世紀(jì)90年代以來(lái)的快速、持續(xù)、無(wú)法預(yù)測(cè)的競(jìng)爭(zhēng)環(huán)境的變化給企業(yè)的生存、發(fā)展提出了新的挑戰(zhàn)競(jìng)爭(zhēng)環(huán)境的變換太快而我們企業(yè)調(diào)整、適應(yīng)的速度跟不上,主要表現(xiàn)在:技術(shù)更新的速度跟不上、管理模式的調(diào)整跟不上、生產(chǎn)方式的更新硬不上、信息系統(tǒng)的支持跟不上、新型人才的培訓(xùn)跟不上敏捷化成為企業(yè)生存發(fā)展的基本條件企業(yè)實(shí)現(xiàn)敏捷化的最主要的決定性因素是:敏捷化的員工和敏捷化的信息系統(tǒng)其中信息系統(tǒng)的敏捷化主要表現(xiàn)為:快速

3、地進(jìn)行自我調(diào)整和重構(gòu)化適應(yīng)競(jìng)爭(zhēng)環(huán)境變化的需要;能支持軟件系統(tǒng)的快速重用并通過(guò)重構(gòu)組成新的應(yīng)用系統(tǒng)“面向重構(gòu)、重用的敏捷化信息系統(tǒng)分析、設(shè)計(jì)和開(kāi)發(fā)”成為社會(huì)發(fā)展的迫切需要。 目前在信息系統(tǒng)分析與建模領(lǐng)域主要的方法有:IDEF方法、OMT方法和UML方法UML代表統(tǒng)一建模語(yǔ)言(Uni-fled modeling Language),是由Booch Rumbaugh和Jacobson共同努力設(shè)計(jì)完成的,它融合了三種主要的面向?qū)ο蠹夹g(shù)Booch OMT和00SE中的精華1997年11月,UML的1. 1版被OMG(Object Management Group)批準(zhǔn)為標(biāo)準(zhǔn),成為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建

4、模語(yǔ)言。 UML是一種用可視化方法對(duì)軟件系統(tǒng)進(jìn)行描述、實(shí)施和說(shuō)明的標(biāo)準(zhǔn)語(yǔ)言。UML強(qiáng)調(diào)通過(guò)圖示化的方法,通過(guò)不斷交互和逐步逼近來(lái)捕捉、描述用戶的真正需求它能支持用不同實(shí)現(xiàn)技術(shù)進(jìn)行的軟件開(kāi)發(fā)全過(guò)程。二、生命周期迭代法的RUP對(duì)UML的應(yīng)用離不開(kāi)軟件工程中的一系列新方法和理論,包括生命周斯迭代法和著名的RUP(Rational Unified Proces)軟件系統(tǒng)的開(kāi)發(fā)可以分為初始階段(Inceptio)細(xì)化階段(Elaboratio)構(gòu)造階段(Construction)和移交階段(Transitio)與傳統(tǒng)的“瀑布法”不同的生命周期迭代法已經(jīng)成為當(dāng)前軟件開(kāi)發(fā)的主要方法。1、生命周期迭代法 這種

5、方法的主要特征是: (1)連續(xù)漸進(jìn)的集成不是從頭到尾一次成型,也不是在系統(tǒng)交付以前才匆匆完成。 (2)頻繁的可執(zhí)行系統(tǒng)的發(fā)瓶一部分是內(nèi)部更新,一部分正式提交使用。 (3)通過(guò)可驗(yàn)證的進(jìn)步來(lái)迎接風(fēng)險(xiǎn)的挑戰(zhàn)進(jìn)步是通過(guò)產(chǎn)品的可測(cè)試原型系統(tǒng)的進(jìn)步來(lái)衡量,而不是僅僅從文本和工程估計(jì)上來(lái)判斷。 生命周期迭代法是有計(jì)劃的、有序的和結(jié)果可預(yù)測(cè)的。它是以降低風(fēng)險(xiǎn)為目標(biāo)來(lái)驅(qū)動(dòng)迭代的,在整個(gè)過(guò)程中都有使用者和客戶的參加。生命周斯迭代法帶來(lái)了巨大的優(yōu)越性: (1)不斷的版本發(fā)布成為一個(gè)團(tuán)隊(duì)日常工作的真正的驅(qū)動(dòng)力。 (2)可以將發(fā)現(xiàn)問(wèn)題、制定方案和解決過(guò)程集成到下一次迭代中完成而不是中斷正在進(jìn)行的開(kāi)發(fā)過(guò)程。 (3)可以

6、更好的安排產(chǎn)品開(kāi)發(fā)的輔助過(guò)程(測(cè)試者、編碼者、軟件工具、配置管理、質(zhì)量保證等等),以實(shí)現(xiàn)并行開(kāi)發(fā)的目標(biāo)。 生命周期迭代法中的每一個(gè)個(gè)別循環(huán)的生命周期采用的是小型瀑布法,如圖1所示:圖1 個(gè)別循環(huán)的生命期小型瀑布法 我們可以從功能、性能、能力范圍、評(píng)測(cè)質(zhì)量幾個(gè)方面根據(jù)迭代計(jì)劃過(guò)程確定的目標(biāo)評(píng)價(jià)迭代的結(jié)果,還要考慮到本次迭代以后外部環(huán)境的變換(例如需求的變換、用戶的變換和競(jìng)爭(zhēng)者情況的變換等,來(lái)確定需要在下一次迭代中返工的問(wèn)題。 一般來(lái)講,對(duì)于一個(gè)18個(gè)月的項(xiàng)目計(jì)劃3- 6次迭代是比較合適的。第一次迭代一般是最難的,而且團(tuán)隊(duì)在迭代開(kāi)始前往往對(duì)困難預(yù)計(jì)不足,因此不應(yīng)該對(duì)第一次迭代提出過(guò)高的功能要求迭代

7、的結(jié)果、最近的風(fēng)計(jì)、可撞的資源(包括代碼和瀏試數(shù)據(jù))視化的建模軟件來(lái)捕獲系統(tǒng)和組件的結(jié)構(gòu)的行九使用可視化的圖形來(lái)進(jìn)行系統(tǒng)建模,允許隱藏系統(tǒng)的細(xì)節(jié),并且保持設(shè)計(jì)和實(shí)施之間的一致性UML是成功的可視化建模的基礎(chǔ)。2、RUP UML是一種建模語(yǔ)言而不是一種方法,因?yàn)閁ML并不包含對(duì)過(guò)程的定義1998年正式頒布的RUP是UML設(shè)計(jì)者們共同定義的一個(gè)軟件開(kāi)發(fā)的公共過(guò)程框架RUP是一個(gè)使用生命周期迭代法的軟件開(kāi)發(fā)過(guò)程它提供了在一個(gè)開(kāi)發(fā)團(tuán)隊(duì)內(nèi)分配任務(wù)和職責(zé)的一套嚴(yán)格的方法它的目標(biāo)是在可預(yù)測(cè)的進(jìn)度和預(yù)算內(nèi)完成高質(zhì)量軟件的生產(chǎn),滿足用戶的需要。 與傳統(tǒng)的軟件開(kāi)發(fā)中編寫大量的文檔不同的是,RUP強(qiáng)調(diào)建立并且維護(hù)“

8、模型”“模型”就是對(duì)開(kāi)發(fā)中的軟件系統(tǒng)的語(yǔ)義豐富的表示,用可視化的工具軟件來(lái)建立RUP是有效的使用UML的向?qū)?,它吸取了許多現(xiàn)代軟件開(kāi)發(fā)中最好的實(shí)踐經(jīng)驗(yàn),并且把它們組織成一種能夠適用于各種工程和組織的形式這些最好的實(shí)踐經(jīng)驗(yàn)包括: (1)迭代的進(jìn)行軟件開(kāi)發(fā)對(duì)于當(dāng)今復(fù)雜的軟件系統(tǒng),已經(jīng)不可能按照傳統(tǒng)的方法(首先定義整個(gè)問(wèn)題,設(shè)計(jì)整個(gè)解決方案,編寫整個(gè)軟件,最后測(cè)試)進(jìn)行順序的開(kāi)發(fā)我們需要一種迭代的方法,通過(guò)連續(xù)的精煉來(lái)不斷的增進(jìn)對(duì)問(wèn)題的理解,從而在多次迭代的基礎(chǔ)上漸進(jìn)的得到一個(gè)有效的解決方案,RUP使用迭代的方法,把傳統(tǒng)的“大瀑布”改成多個(gè)“小瀑布”,通過(guò)把高風(fēng)險(xiǎn)的項(xiàng)目分散到生命周期的每一個(gè)階段,可

9、以顯著的降低整個(gè)工程的風(fēng)險(xiǎn)。 (2)管理需求RUP描述了怎樣提取、組織、并文檔化需求的功能和約束;跟蹤和文檔化中間方案和決策;并且容易的捕獲和交流業(yè)務(wù)需求。 (3使用基于組件的架構(gòu)RUP支持基于組件的軟件開(kāi)發(fā)組件是執(zhí)行一個(gè)特定功能的模塊或者子系統(tǒng),可以方便的集成進(jìn)一個(gè)定義良好的體系框架中,從而實(shí)現(xiàn)軟件系統(tǒng)的重構(gòu)和重用。 (4)可視化的建模軟件RUP向我們展示了怎樣利用可視化的建模軟件來(lái)捕獲系統(tǒng)和組件的結(jié)構(gòu)的行丸使用可視化的圖形來(lái)進(jìn)行系統(tǒng)建模,允許隱藏系統(tǒng)的細(xì)節(jié),并且保持設(shè)計(jì)和實(shí)施之間的一致比UML是成功的可視化建模的基礎(chǔ)。 (5)驗(yàn)證軟件質(zhì)量不足的應(yīng)用性和可靠性是抑制軟件應(yīng)用的重要因氟因此應(yīng)該

10、基于可靠性、功能性、應(yīng)用性和系統(tǒng)性的要求來(lái)評(píng)論軟件的質(zhì)量在RUP中,質(zhì)量評(píng)價(jià)內(nèi)置到了全部開(kāi)發(fā)活動(dòng)中,與全部參加者有關(guān),并且使用客觀量度和標(biāo)準(zhǔn)。 (6)控制軟件的變更由于軟件系統(tǒng)的變更往往是不可避免的,管理軟件變更的能力就十分重要應(yīng)該確保每個(gè)變更都是可以接受的,并且能夠跟蹤RU P描述了怎樣控制、跟蹤和監(jiān)視軟件的變更,來(lái)確保成功的迭代開(kāi)發(fā)三基于問(wèn)題說(shuō)明的系統(tǒng)分析和設(shè)計(jì)。 問(wèn)題說(shuō)明是基于UML的面向?qū)ο蟮南到y(tǒng)開(kāi)發(fā)的第一步,它主要說(shuō)明系統(tǒng)應(yīng)該做什么而不是怎么做問(wèn)題說(shuō)明可以由用戶提供,但在多數(shù)情況下,它是由開(kāi)發(fā)者通過(guò)和客戶的協(xié)商共同定義吮這里和用戶協(xié)商的含義在于如何正確把握系統(tǒng)的功能需求。 問(wèn)題說(shuō)明可

11、以作為開(kāi)發(fā)者最初確定對(duì)象類候選對(duì)象的參考,從問(wèn)題說(shuō)明中提取對(duì)象類的主要步驟是: (1)抽取問(wèn)題說(shuō)明中的名詞和名詞短語(yǔ),作為可能的對(duì)象類 (2)利用領(lǐng)域知識(shí)來(lái)補(bǔ)充遺漏的對(duì)象類 (3)通過(guò)觀察用例圖來(lái)補(bǔ)充遺漏的對(duì)象類 (4)剔除所有不必要和不正確的候選類 (5)準(zhǔn)備數(shù)據(jù)辭典在確定了對(duì)象類以后,還可以進(jìn)一步從問(wèn)題說(shuō)明中提取對(duì)象之間的聯(lián)系: (1)抽取問(wèn)題說(shuō)明中的動(dòng)詞和動(dòng)詞短語(yǔ),作為可能的對(duì)象類之間的聯(lián)系。 (2)利用領(lǐng)域知識(shí)來(lái)補(bǔ)充遺漏的對(duì)象之間的聯(lián)系。 (3)通過(guò)觀察用例圖來(lái)補(bǔ)充遺漏的對(duì)象類之間的聯(lián)系。 (4)剔除所有不必要和不正確的候選聯(lián)系。 (5)更新類設(shè)訊再進(jìn)一步,可以從問(wèn)題說(shuō)明中確定對(duì)象類和

12、聯(lián)系類的屬性: (1)抽取問(wèn)題說(shuō)明中的名詞+所有格補(bǔ)語(yǔ),作為可能的對(duì)象類和聯(lián)系類的屬 (2)利用領(lǐng)域知識(shí)來(lái)補(bǔ)充遺漏的對(duì)象類和聯(lián)系類的屬 (3)通過(guò)觀察用例圖來(lái)補(bǔ)充遺漏的對(duì)象類和聯(lián)系類的屬 (4)剔除所有不必要和不正確的候選屬(5)更新類設(shè)訊4、 UML的基本模型圖UML是一種用可視化方法對(duì)軟件系統(tǒng)開(kāi)發(fā)的全過(guò)程提供支持的標(biāo)準(zhǔn)建模語(yǔ)言,它提供了下列的5類,共10種基本模型圖:(1)用例圖;(2)靜態(tài)圖,包括類圖、對(duì)象圖和包圖;(3)交互圖,包括狀態(tài)圖和活動(dòng)圖;(4)行為圖,包括狀態(tài)圖和活動(dòng)圖;(5)實(shí)現(xiàn)圖,包括構(gòu)件圖和配置圖。概括的講,UML可以用于:(1)利用活動(dòng)者和用例來(lái)描述系統(tǒng)的邊界和它的主

13、要功能;(2)通過(guò)各種交互圖形來(lái)描述用例的實(shí)現(xiàn);(3)用類圖來(lái)描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和特征;(4)用狀態(tài)轉(zhuǎn)換圖來(lái)描述對(duì)象的動(dòng)態(tài)特征;(5)通過(guò)部件圖和實(shí)施圖來(lái)描述系統(tǒng)的物理特征和體系結(jié)構(gòu);(6)通過(guò)自定義類型,擴(kuò)展系統(tǒng)功能。1、用例圖系統(tǒng)分析和設(shè)計(jì)的第一步也是最關(guān)鍵的一步,是用戶需求的捕捉,引入用例的概念并用來(lái)開(kāi)發(fā)需求,是面向?qū)ο蠹夹g(shù)進(jìn)入第二代的標(biāo)志用例分析是從用戶角度來(lái)描述業(yè)務(wù)過(guò)程的方法用例圖描述系統(tǒng)外部的執(zhí)行者(Actor)與系統(tǒng)提供的用例(Use Case)之間的某種聯(lián)系。通過(guò)系統(tǒng)分析,確定大致的設(shè)計(jì)目標(biāo): (1)執(zhí)行者:系統(tǒng)的外部用戶,可以是人或者其它的應(yīng)和系統(tǒng)。 (2)用例:執(zhí)行者對(duì)系統(tǒng)

14、的應(yīng)用方式;通過(guò)他/它(執(zhí)行者)與系統(tǒng)的交互過(guò)程描述(Scenarios)來(lái)詳細(xì)說(shuō)明用戶的真實(shí)需求用例是類,所有類的描述都可以應(yīng)用于用例,類的泛化(generalization)特性在用例中被具體化或擴(kuò)展為應(yīng)用(uses)和擴(kuò)充(extends)用例圖著重于從系統(tǒng)外部執(zhí)行者的角度來(lái)描述系統(tǒng)需要提供哪些功能,并且指明了這些功能的執(zhí)行者是誰(shuí)。用例圖是指由參與者(Actor)、用例(Use Case)以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的靜態(tài)視圖。用例圖(User Case)是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對(duì)系統(tǒng)、子系

15、統(tǒng)或類的功能行為進(jìn)行建模。用例圖 use case diagram 類別靜態(tài)視圖組成主角、用例以及它們之間的關(guān)系。參與者(Actor)、用例(Use Case)、系統(tǒng)邊界、箭頭組成,用畫圖的方法來(lái)完成。參與者不是特指人,是指系統(tǒng)以外的,在使用系統(tǒng)或與系統(tǒng)交互中所扮演的角色。因此參與者可以是人,可以是事物,也可以是時(shí)間或其他系統(tǒng)等等。還有一點(diǎn)要注意的是,參與者不是指人或事物本身,而是表示人或事物當(dāng)時(shí)所扮演的角色。比如小明是圖書館的管理員,他參與圖書館管理系統(tǒng)的交互,這時(shí)他既可以作為管理員這個(gè)角色參與管理,也可以作為借書者向圖書館借書,在這里小明扮演了兩個(gè)角色,是兩個(gè)不同的參與者。參與者在畫圖中用

16、簡(jiǎn)筆人物畫來(lái)表示,人物下面附上參與者的名稱。用例是對(duì)包括變量在內(nèi)的一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作,并產(chǎn)生傳遞特定參與者的價(jià)值的可觀察結(jié)果。這是UML對(duì)用例的正式定義,對(duì)我們初學(xué)者可能有點(diǎn)難懂。我們可以這樣去理解,用例是參與者想要系統(tǒng)做的事情。對(duì)于對(duì)用例的命名,我們可以給用例取一個(gè)簡(jiǎn)單、描述性的名稱,一般為帶有動(dòng)作性的詞。用例在畫圖中用橢圓來(lái)表示,橢圓下面附上用例的名稱。系統(tǒng)邊界。系統(tǒng)邊界是用來(lái)表示正在建模系統(tǒng)的邊界。邊界內(nèi)表示系統(tǒng)的組成部分,邊界外表示系統(tǒng)外部。系統(tǒng)邊界在畫圖中用方框來(lái)表示,同時(shí)附上系統(tǒng)的名稱,參與者畫在邊界的外面,用例畫在邊界里面。因?yàn)橄到y(tǒng)邊界的作用有時(shí)候不是很明顯,所

17、以我個(gè)人理解,在畫圖時(shí)可省略。箭頭用來(lái)表示參與者和系統(tǒng)通過(guò)相互發(fā)送信號(hào)或消息進(jìn)行交互的關(guān)聯(lián)關(guān)系。箭頭尾部用來(lái)表示啟動(dòng)交互的一方,箭頭頭部用來(lái)表示被啟動(dòng)的一方,其中用例總是要由參與者來(lái)啟動(dòng)。主要的作用有三個(gè):(1)獲取需求;(2)指導(dǎo)測(cè)試;(3)還可在整個(gè)過(guò)程中的其它工作流起到指導(dǎo)作用。元素之間的關(guān)系用例圖中包含的元素除了系統(tǒng)邊界、角色和用例,另外就是關(guān)系。關(guān)系包括用例之間的關(guān)系,角色之間的關(guān)系,用例和角色之間的關(guān)系。角色之間的關(guān)系。由于角色實(shí)質(zhì)上也是類,所以它擁有與類相同的關(guān)系描述,即角色之間存在泛化關(guān)系,泛化關(guān)系的含義是把某些角色的共同行為提取出來(lái)表示為通用的行為。用例的行為包含了另一個(gè)用例

18、的行為?;居美枋鲈诙鄠€(gè)用例中都有的公共行為。包含關(guān)系本質(zhì)上是比較特殊的依賴關(guān)系。它比一般的依賴關(guān)系多了一些語(yǔ)義。在包含關(guān)系中箭頭的方向是從基本用例到包含用例。在UML1.1中用例之間是使用和擴(kuò)展這兩種關(guān)系,這兩種關(guān)系都是泛化關(guān)系的版型。在UML1.3以后的版本中用例之間是包含和擴(kuò)展這兩種關(guān)系。泛化關(guān)系:代表一般與特殊的關(guān)系。它的意思和面向?qū)ο蟪绦蛟O(shè)計(jì)中的繼承的概念是類似的。不同的是繼承使用在實(shí)施階段,泛化使用在分析、設(shè)計(jì)階段。在泛化關(guān)系中子用例繼承了父用例的行為和含義,子用例也可以增加新的行為和含義或者覆蓋父用例中的行為和含義。擴(kuò)展關(guān)系的基本含義和泛化關(guān)系類似,但在擴(kuò)展關(guān)系中,對(duì)于擴(kuò)展用例

19、有更多的規(guī)則限制,基本用例必須聲明擴(kuò)展點(diǎn),而擴(kuò)展用例只能在擴(kuò)展點(diǎn)上增加新的行為和含義。與包含關(guān)系一樣,擴(kuò)展關(guān)系也是依賴關(guān)系的版型。在擴(kuò)展關(guān)系中,箭頭的方向是從擴(kuò)展用例到基本用例,這與包含關(guān)系是不同的。用例的泛化、包含、擴(kuò)展關(guān)系的比較。一般來(lái)說(shuō)可以使用“is a”和“has a”來(lái)判斷使用那種關(guān)系。泛化和擴(kuò)展關(guān)系表示用例之間是“is a”關(guān)系,包含關(guān)系表示用例之間是“has a”關(guān)系。擴(kuò)展與泛化相比多了擴(kuò)展點(diǎn),擴(kuò)展用例只能在基本用例的擴(kuò)展點(diǎn)上進(jìn)行擴(kuò)展。在擴(kuò)展關(guān)系中基本用例是獨(dú)立存在。在包含關(guān)系中在執(zhí)行基本用例的時(shí)候一定會(huì)執(zhí)行包含用例。如果需要重復(fù)處理兩個(gè)或多個(gè)用例時(shí)可以考慮使用包含關(guān)系,實(shí)現(xiàn)一個(gè)

20、基本用例對(duì)另一個(gè)的引用。當(dāng)處理正常行為的變形是偶爾描述時(shí)可以考慮只用泛化關(guān)系。當(dāng)描述正常行為的變形希望采用更多的控制方式時(shí),可以在基本用例中設(shè)置擴(kuò)展點(diǎn),使用擴(kuò)展關(guān)系。擴(kuò)展關(guān)系比較難理解,如果把擴(kuò)展關(guān)系看作是帶有更多規(guī)則限制的泛化關(guān)系,可以幫助理解。通常先獲得基本用例,針對(duì)這個(gè)用例中的每一個(gè)行為提問(wèn):該步驟會(huì)出什么差錯(cuò)?該步驟有不同的情況工作怎樣以不同的方式進(jìn)行等,把所有的變化情況都標(biāo)識(shí)為擴(kuò)展。通?;居美苋菀讟?gòu)造,而擴(kuò)展用例需要反復(fù)分析、驗(yàn)證。當(dāng)我們發(fā)現(xiàn)已經(jīng)存在的兩個(gè)用例間具有某種相似性時(shí),可以把相似的部分從兩個(gè)用例中抽象出來(lái)單獨(dú)作為一個(gè)用例,該用例被這兩個(gè)用例同時(shí)使用,這個(gè)抽象出的用例和另

21、外兩個(gè)用例形成包含關(guān)系。圖2所示的是一個(gè)訂貨系統(tǒng)的用例圖。圖2 一個(gè)訂貨系統(tǒng)的用例圖2、類圖 類圖技術(shù)是面向?qū)ο蠓椒ǖ暮诵募夹g(shù)類圖是系統(tǒng)邏輯視圖的表示方法它用來(lái)描述對(duì)象的特性以及不同對(duì)象之間的關(guān)系。UML通過(guò)類圖來(lái)描述下列基本元素:(1)不同的類以及它們的屬性(attribute)和行為特性(behavior)工(2)不同類之間的關(guān)聯(lián)(association聚合(aggregate相關(guān)(dependence)和繼承(inheritance)關(guān)系。(3)類的實(shí)例數(shù)量特性(multiplicity)和遍歷方向(navigation indicators)(4)角色名(role names) 類是具

22、有相同結(jié)構(gòu)、相同特性、相同關(guān)系和相同語(yǔ)義的對(duì)象的集瓷類可以通過(guò)分析問(wèn)題說(shuō)明、考察交互圖(包括事件順序圖和對(duì)象合作圖)中的對(duì)象,總結(jié)抽象出來(lái)類用一個(gè)分成三部分的矩形來(lái)表示,這三部分分別是:類名稱、屬性和方法UML規(guī)定了三種類之間的關(guān)系:關(guān)聯(lián)、聚合和相羌此外,父類與子類之間還存在繼承關(guān)系。類圖(Class diagram)是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。類圖不顯示暫時(shí)性信息。類圖(Class diagram)由許多(靜態(tài))說(shuō)明性的模型元素(例如類、包和它們之間的關(guān)系,這些元素和它們的內(nèi)容互相連接)組成。類圖可以組織在(并且屬于)包中,僅顯示特定包

23、中的相關(guān)內(nèi)容。類圖(Class diagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。類圖(Class diagram)最基本的元素是類或者接口。一般包含3個(gè)組成部分。第一個(gè)是類名;第二個(gè)是屬性(attributes);第三個(gè)是該類提供的方法( 類的性質(zhì)可以放在第四部分;如果類中含有內(nèi)部類,則會(huì)出現(xiàn)第五個(gè)組成部分)。類名部分是不能省略的,其他組成部分可以省略。類名書寫規(guī)范:正體字說(shuō)明類是可被實(shí)例化的,斜體字說(shuō)明類為抽象類。屬性和方法書寫規(guī)范:修飾符 描述信息 屬性、方法名稱 參數(shù) :返回類型|類型,屬性和方法之前可附加的可見(jiàn)性修飾符:加號(hào)(

24、+)表示public;減號(hào)(-)表示private;#號(hào)表示protected;省略這些修飾符表示具有package(包)級(jí)別的可見(jiàn)性。如果屬性或方法具有下劃線,則說(shuō)明它是靜態(tài)的。描述信息使用 << 開(kāi)頭和使用 >> 結(jié)尾。類的性質(zhì)是由一個(gè)屬性、一個(gè)賦值方法和一個(gè)取值方法組成。書寫方式和方法類似。圖3顯示的是一個(gè)訂貨系統(tǒng)的“訂單”類的類圖。圖3 一個(gè)訂貨系統(tǒng)的“訂單”類的類圖。3、交互圖 交互圖主要用來(lái)描述對(duì)象之間的動(dòng)態(tài)合作關(guān)系以及合作過(guò)程中的行為次息它常常用來(lái)描述一個(gè)用例的行為,顯示該用例中所涉及的對(duì)象和這些對(duì)象之間的消息傳遞情況。 交互圖主要有兩種形式,即順序圖和合

25、作圖。順序圖按照時(shí)序來(lái)顯示對(duì)象之間的交互作用,但是并不能夠清楚的顯示對(duì)象之間的關(guān)系。一張合作圖描述了一個(gè)合作,這個(gè)合作是由一個(gè)特定環(huán)境中的對(duì)象集合以及這些對(duì)象之間的消息交互共同組成故與順序圖不同,合作圖顯示了對(duì)象之間的關(guān)系,但是不把時(shí)間當(dāng)作一個(gè)獨(dú)立的維。交互圖是描述對(duì)象之間的關(guān)系以及對(duì)象之間的信息傳遞的圖。種類序列圖和協(xié)作圖,對(duì)象沿橫軸排列消息,沿縱軸按時(shí)間順序排列。序列圖和協(xié)作圖稱為交互圖。其中,序列圖用來(lái)描述對(duì)象之間消息發(fā)送的先后次序,闡明對(duì)象之間的交互過(guò)程以及在系統(tǒng)執(zhí)行過(guò)程中的某一具體時(shí)刻 將會(huì)發(fā)生什么事件。序列圖是一種強(qiáng)調(diào)時(shí)間順序的交互圖,其中對(duì)象沿橫軸排列,消息沿縱軸按時(shí)間順序排列。

26、序列圖中的對(duì)象生命線是一條垂直的虛線,他表示一個(gè)對(duì)象在一段時(shí)間內(nèi)存在。順序圖是一個(gè)二維圖形。以時(shí)間順序顯示參與者向系統(tǒng)發(fā)起的事件及 對(duì)象間交互的圖 順序圖不表示對(duì)象間的關(guān)聯(lián)(associations)關(guān)系。順序圖中的一些主要元素: Object (包括actor實(shí)例) Lifeline (生命線) Focus of control(控制焦點(diǎn))和activation(激活期) Message協(xié)作圖也是一種交互圖,它強(qiáng)調(diào)收發(fā)消息的對(duì)象的組織結(jié)構(gòu)。協(xié)作圖和序列圖是同樣的,它們可以相互轉(zhuǎn)換。在多數(shù)情況下,協(xié)作圖主要用來(lái)對(duì)單調(diào)的、順序的控制流建模,但它也可以用來(lái)對(duì)包括迭代和分支在內(nèi)的復(fù)雜控制流進(jìn)行建模。

27、n協(xié)作圖:包含一組對(duì)象和鏈(link),協(xié)作圖中的組成元素Object(包括actor實(shí)例,多對(duì)象,主動(dòng)對(duì)象)Message Link(鏈)。兩種圖間可以互相轉(zhuǎn)換。圖4、圖5分別是創(chuàng)建一條訂單記錄的順序和合作圖。圖4 創(chuàng)建一條訂單記錄順序圖圖5創(chuàng)建一條訂單記錄合作圖4、行為圖 行為圖包括狀態(tài)圖和活動(dòng)圖兩種,用于刻畫對(duì)象的動(dòng)態(tài)特性。 對(duì)于大多數(shù)開(kāi)發(fā)人員而言,狀態(tài)圖是一個(gè)十分熟悉的工具一般來(lái)講,狀態(tài)圖描述了一個(gè)特定對(duì)象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)概大多數(shù)面向?qū)ο蠹夹g(shù)都使用狀態(tài)圖來(lái)描述一個(gè)對(duì)象在其生命周期中的行為。圖6所示的是一個(gè)訂單對(duì)象的狀態(tài)圖。圖6 一個(gè)訂單對(duì)象的狀態(tài)

28、圖從順序關(guān)系上看,活動(dòng)圖與常用的程序流程圖非常相似它描述了需要做的活動(dòng)以及執(zhí)行這些活動(dòng)的順序?;顒?dòng)圖主要用于描述工作流和并行過(guò)程的行為,對(duì)企事業(yè)過(guò)程中業(yè)務(wù)活動(dòng)的建模非常重要。比較起來(lái),狀態(tài)圖適合于描述跨越多個(gè)用例的單個(gè)對(duì)象的行為:交互圖適合于描述單個(gè)用例中的多個(gè)對(duì)象的行為;活動(dòng)圖適合于展現(xiàn)多個(gè)對(duì)象和多個(gè)用例的活動(dòng)的總次序。5、實(shí)現(xiàn)圖構(gòu)件圖和配置圖是UML中定義的兩種實(shí)現(xiàn)圖,可以顯示系統(tǒng)實(shí)現(xiàn)時(shí)的一些特性構(gòu)件圖顯示代碼本身的邏輯結(jié)構(gòu),主要用于顯示系統(tǒng)中各個(gè)功能部件之間的依賴關(guān)系和調(diào)用關(guān)系。在面臨越來(lái)越多的分布式系統(tǒng)時(shí),配置圖是我們更好的設(shè)計(jì)和描述系統(tǒng)中的軟構(gòu)件和硬件的配置情況的有力工具下面的圖。UML的實(shí)現(xiàn)圖用來(lái)描述系統(tǒng)實(shí)現(xiàn)方面的信息,它從系統(tǒng)的層次描述硬件的組成和布局,軟件系統(tǒng)的劃分和功能實(shí)現(xiàn)。實(shí)現(xiàn)圖包含構(gòu)件圖和部署圖。構(gòu)件圖顯示一組構(gòu)件之間的組織和依賴關(guān)系,并秒速其中的構(gòu)造細(xì)節(jié)。部署圖用來(lái)描述系統(tǒng)硬件的物理結(jié)構(gòu)及在此結(jié)構(gòu)上執(zhí)行的軟件。      構(gòu)件圖從軟件架構(gòu)的角度來(lái)描述系統(tǒng)的主要功能,比如系統(tǒng)分成幾個(gè)子系統(tǒng),每個(gè)子系統(tǒng)包含哪些類,包等和它們之間的關(guān)系等。使用構(gòu)件圖可以清楚的看出系統(tǒng)的結(jié)構(gòu)和功能。構(gòu)件是系統(tǒng)中遵從一組接口且提供其實(shí)現(xiàn)的物理的,可替換的部分。構(gòu)件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論