第一篇:UML建模的要點(diǎn)總結(jié)
UML建模的要點(diǎn)總結(jié)
預(yù)備知識(shí):
一、UML的特性與發(fā)展現(xiàn)狀
UML是一種Language(語(yǔ)言)
UML是一種Modeling(建模)Language UML是Unified(統(tǒng)一)Modeling Language
1、已進(jìn)入全面應(yīng)用階段的事實(shí)標(biāo)準(zhǔn)
2、應(yīng)用領(lǐng)域正在逐漸擴(kuò)展,包括嵌入式系統(tǒng)建模、業(yè)務(wù)建模、流程建模等多個(gè)領(lǐng)域
3、成為“產(chǎn)生式編程”的重要支持技術(shù):MDA、可執(zhí)行UML等
二、建模的目的與原則
1、幫助我們按照實(shí)際情況或按我們需要的樣式對(duì)系統(tǒng)進(jìn)行可視化;提供一種詳細(xì)說(shuō)明系統(tǒng)的結(jié)構(gòu)或行為的方法;給出一個(gè)指導(dǎo)系統(tǒng)構(gòu)造的模板;對(duì)我們所做出的決策進(jìn)行文檔化。
2、僅當(dāng)需要模型時(shí),才構(gòu)建它。
3、選擇要?jiǎng)?chuàng)建什么模型對(duì)如何動(dòng)手解決問(wèn)題和如何形成解決方案有著意義深遠(yuǎn)的影響;每一種模型可以在不同的精度級(jí)別上表示;最好的模型是與現(xiàn)實(shí)相聯(lián)系的;單個(gè)模型是不充分的。對(duì)每個(gè)重要的系統(tǒng)最好用一組幾乎獨(dú)立的模型去處理。
三、誰(shuí)應(yīng)該建模
1、業(yè)務(wù)建模:以領(lǐng)域?qū)<覟橹?,需求分析人員是主力,系統(tǒng)分析員、架構(gòu)師可參與
2、需求模型:以需求分析人員為主,系統(tǒng)分析員是主力,領(lǐng)域?qū)<姨峁┲笇?dǎo),架構(gòu)師和資深開(kāi)發(fā)人員參與
3、設(shè)計(jì)模型:高層設(shè)計(jì)模型以架構(gòu)師為主,系統(tǒng)分析員從需求方面提供支持,資深開(kāi)發(fā)人員從技術(shù)實(shí)現(xiàn)方面提供支持。詳細(xì)設(shè)計(jì)模型則以資深開(kāi)發(fā)人員為主,架構(gòu)師提供指導(dǎo)。
4、實(shí)現(xiàn)模型:以資深開(kāi)發(fā)人員(設(shè)計(jì)人員)為主,架構(gòu)師提供總體指導(dǎo)。
5、數(shù)據(jù)庫(kù)模型:以數(shù)據(jù)庫(kù)開(kāi)發(fā)人員為主,架構(gòu)師提供指導(dǎo),資深開(kāi)發(fā)人員(設(shè)計(jì)人員)予以配合。
正式開(kāi)始
UML組成,三部分(構(gòu)造塊、規(guī)則、公共機(jī)制),關(guān)系如下圖所示:
一、構(gòu)造塊
1、構(gòu)造塊是對(duì)模型中最具有代表性的成分的抽象
建模元素:UML中的名詞,它是模型基本物理元素。
行為元素:UML中的動(dòng)詞,它是模型中的動(dòng)態(tài)部分,是一種跨越時(shí)間、空間的行為。
分組元素:UML中的容器,用來(lái)組織模型,使模型更加的結(jié)構(gòu)化。
注釋元素:UML中的解釋部分,和代碼中的注釋語(yǔ)句一樣,是用來(lái)描述模型的。
1.1、建模元素
類(lèi)(class)和對(duì)象(object)
接口(interface)
主動(dòng)類(lèi)(active class)
用例(use case)
協(xié)作(collaboration)
構(gòu)件(component)
節(jié)點(diǎn)(node)
類(lèi)(class)和對(duì)象(object)
類(lèi)是對(duì)一組具有相同屬性、相同操作、相同關(guān)系和相同語(yǔ)義的對(duì)象的抽象
UML中類(lèi)是用一個(gè)矩形表示的,它包含三個(gè)區(qū)域,最上面是類(lèi)名、中間是類(lèi)的屬性、最下面是類(lèi)的方法
對(duì)象則是類(lèi)的一個(gè)實(shí)例(object is a Instance of Class)
接口(interface)
接口是描述某個(gè)類(lèi)或構(gòu)件的一個(gè)服務(wù)操作集
主動(dòng)類(lèi)(active class)
主動(dòng)類(lèi)實(shí)際上是一種特殊的類(lèi)。引用它的原因,實(shí)際上是在開(kāi)發(fā)中需要有一些類(lèi)能夠起到 啟動(dòng)控制活動(dòng)的作用
主動(dòng)類(lèi)是指其對(duì)象至少擁有一個(gè)進(jìn) 程或線程,能夠啟動(dòng)控制活動(dòng)的類(lèi)
用例(use case)
用例是著名的大師Ivar Jacobson首先提出的,現(xiàn)已經(jīng)成為了面向?qū)ο筌浖_(kāi)發(fā)中一個(gè)需求分析的最常用工具
用例實(shí)例是在系統(tǒng)中執(zhí)行的一系列動(dòng)作,這些動(dòng)作將生成特定執(zhí)行者可見(jiàn)的價(jià)值結(jié)果。一個(gè) 用例定義一組用例實(shí)例。
協(xié)作(collaboration)
協(xié)作定義了一個(gè)交互,它是由一組共同工作以提供某協(xié)作行為的角色和其他元素構(gòu) 成的一個(gè)群體。
對(duì)于某個(gè)用例的實(shí)現(xiàn)就可 以表示為一個(gè)協(xié)作
構(gòu)件(component)
在實(shí)際的軟件系統(tǒng)中,有許多要比“類(lèi)”更大的實(shí)體,例如一個(gè)COM組件、一個(gè)DLL文件、一個(gè)JavaBeans、一個(gè)執(zhí)行文件等等。為了更好地對(duì)在UML模型中對(duì)它們進(jìn)行表示,就引入了構(gòu)件(也譯為組件)
構(gòu)件是系統(tǒng)設(shè)計(jì)的一個(gè)模塊化部分,它隱藏了內(nèi)部的實(shí)現(xiàn),對(duì)外提供了一組外部接口。在系統(tǒng)中滿足相同接口的組件可以自由地替換
節(jié)點(diǎn)(node)
為了能夠有效地對(duì)部署的結(jié)構(gòu)進(jìn)行建模,UML引入了節(jié)點(diǎn)這一概念,它可以用來(lái)描述實(shí)際的PC機(jī)、打印機(jī)、服務(wù)器等軟件運(yùn)行的基礎(chǔ)硬件
節(jié)點(diǎn)是運(yùn)行時(shí)存在的物理元素,它表示了一種可計(jì)算的資源,通常至少有存儲(chǔ)空間和處理能力
1.2、行為元素
交互(interaction): 是在特定語(yǔ)境中,共同完成某個(gè)任務(wù)的一組對(duì)象之間交換的信息集合
交互的表示法很簡(jiǎn)單,就是一條有向直線,并在上面標(biāo)有操作名
狀態(tài)機(jī)(state machine):是一個(gè)對(duì)象或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列
在UML模型中將狀態(tài)畫(huà)為一個(gè)圓 角矩形,并在矩形內(nèi)寫(xiě)出狀態(tài)名稱及其子狀態(tài)
1.3、分組元素
對(duì)于一個(gè)中大型的軟件系統(tǒng)而言,通常會(huì)包含大量的類(lèi),因此也就會(huì)存在大量的結(jié)構(gòu)事物、行為事物,為了能夠更加有效地對(duì)其進(jìn)行整合,生成或簡(jiǎn)或繁、或宏觀或微觀的模型,就需要對(duì)其進(jìn)行分組。在UML中,提供了“包(Package)”來(lái)完成這一目標(biāo)
1.4、注釋元素
結(jié)構(gòu)事物是模型的主要構(gòu)造塊,行為事物則是補(bǔ)充了模型中的動(dòng)態(tài)部分,分組事物而是用來(lái)更好地組織模型,似乎已經(jīng)很完整了。而注釋事物則是用來(lái)錦上添花的,它是用來(lái)在UML模型上添加適當(dāng)?shù)慕忉尣糠?/p>
2、關(guān)系
UML模型的關(guān)系比較多,下圖
2.1 關(guān)聯(lián)關(guān)系
關(guān)聯(lián)(Association)表示兩個(gè)類(lèi)之間存在某種語(yǔ)義上的聯(lián)系。關(guān)聯(lián)關(guān)系提供了通信的路徑,它是所有關(guān)系中最通用、語(yǔ)義最弱的。
在UML中,使用一條實(shí)線來(lái)表示關(guān)聯(lián)關(guān)系
在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系:聚合和組合
聚合關(guān)系:聚合(Aggregation)是一種特殊形式的關(guān)聯(lián)。聚合表示類(lèi)之間的關(guān)系是整體與部分的關(guān)系
如果發(fā)現(xiàn)“部分”類(lèi)的存在,是完全依賴于“整體”類(lèi)的,那么就應(yīng)該使用“組合”關(guān)系來(lái)描述
組合是聚合的變種,加入了一些重要的語(yǔ)義。也就是說(shuō),在一個(gè)組合關(guān)系中一個(gè)對(duì)象一次就只是一個(gè)組合的一部分,“整體”負(fù)責(zé)“部分”的創(chuàng)建和破壞,當(dāng)“整體”被破壞時(shí),“部分”也隨之消失
聚合就像汽車(chē)和車(chē)胎,汽車(chē)壞了胎還可以用。組合就像公司和下屬部門(mén),公司倒閉了部門(mén)也就不存在了!
2.2 泛化、實(shí)現(xiàn)與依賴
泛化關(guān)系描述了一般事物與該事物中的特殊種類(lèi)之間的關(guān)系,也就是父類(lèi)與子類(lèi)之間的關(guān)系。
實(shí)現(xiàn)關(guān)系是用來(lái)規(guī)定接口和實(shí)現(xiàn)接口的類(lèi)或組件之間的關(guān)系。接口是操作的集合,這些操作用于規(guī)定類(lèi)或組件的服務(wù)。
有兩個(gè)元素X、Y,如果修改元素X的定義可能會(huì)引起對(duì)另一個(gè)元素Y的定義的修改,則稱元素Y依賴(Dependency)于元素X。
二、規(guī)則
命名:也就是為事物、關(guān)系和圖起名字。和任何語(yǔ)言一樣,名字都是一個(gè)標(biāo)識(shí)符
范圍:與類(lèi)的作用域相似.可見(jiàn)性:Public,Protected,Private,Package
三、UML公共機(jī)制
1、規(guī)格描述
在圖形表示法的每個(gè)部分后面都有一個(gè)規(guī)格描述(也稱為詳述),它用來(lái)對(duì)構(gòu)造塊的語(yǔ)法和語(yǔ)義進(jìn)行文字?jǐn)⑹觥_@種構(gòu)思,也就使可視化視圖和文字視圖的分離 :
2、UML修飾與通用劃分
在為了更好的表示這些細(xì)節(jié),UML中還提供了一些修飾符號(hào),例如不同可視性的符號(hào)、用斜體字表示抽象類(lèi)
UML通用劃分:
1)類(lèi)與對(duì)象的劃分:類(lèi)是一種抽象,對(duì)象是一個(gè)具體的實(shí)例
2)接口與實(shí)現(xiàn)的分離:接口是一種聲明、是一個(gè)契約,也是服務(wù)的入口;實(shí)現(xiàn)則是負(fù)責(zé)實(shí)施接口提供的契約
3、UML擴(kuò)展機(jī)制
這部分不容易描述,待改
構(gòu)造型:在實(shí)際的建模過(guò)程中,可能會(huì)需要定義一些特定于某個(gè)領(lǐng)域或某個(gè)系統(tǒng)的構(gòu)造塊
標(biāo)記值則是用來(lái)為事物添加新特性的。標(biāo)記值的表示方法是用形如“{標(biāo)記信息}”的字符串
約束是用來(lái)增加新的語(yǔ)義或改變已存在規(guī)則的一種機(jī)制(自由文本和OCL兩種表示法)。約束的表示法和標(biāo)記值法類(lèi)似,都是使用花括號(hào)括起來(lái)的串來(lái)表示,不過(guò)它是不能夠放在元素中的,而是放在相關(guān)的元素附近。
4、UML視圖和圖
圖名
功能
備注
類(lèi)圖
描述類(lèi)、類(lèi)的特性以及類(lèi)之間的關(guān)系
對(duì)象圖
描述一個(gè)時(shí)間點(diǎn)上系統(tǒng)中各個(gè)對(duì)象的一個(gè)快照
復(fù)合結(jié)構(gòu)圖
描述類(lèi)的運(yùn)行時(shí)刻的分解
構(gòu)件圖
描述構(gòu)件的結(jié)構(gòu)與連接
部署圖
描述在各個(gè)節(jié)點(diǎn)上的部署
包圖
描述編譯時(shí)的層次結(jié)構(gòu)
用例圖
描述用戶與系統(tǒng)如何交互
活動(dòng)圖
描述過(guò)程行為與并行行為
狀態(tài)機(jī)圖
描述事件如何改變對(duì)象生命周期
順序圖
描述對(duì)象之間的交互,重點(diǎn)在強(qiáng)調(diào)順序
通信圖
描述對(duì)象之間的交互,重點(diǎn)在于連接
定時(shí)圖
描述對(duì)象之間的交互,重點(diǎn)在于定時(shí)
交互概觀圖
是一種順序圖與活動(dòng)圖的混合附:開(kāi)發(fā)過(guò)程與圖的對(duì)應(yīng)關(guān)系
本文來(lái)自CSDN
博
客,轉(zhuǎn)
載
請(qǐng)
標(biāo)http://blog.csdn.net/Mac_cm/archive/2009/07/27/4384704.aspx
UML 1原有 UML 1非正式圖
UML 2.0新增
UML 1原有
UML 1原有
UML中非正式圖 UML 1原有 UML 1原有 UML 1原有 UML 1原有 UML 1中的協(xié)作圖 UML 2.0 新增 UML 2.0新增 明
出
處
:
第二篇:UML建模優(yōu)缺點(diǎn)
1.UML的優(yōu)點(diǎn):
UML語(yǔ)言使系統(tǒng)建模過(guò)程標(biāo)準(zhǔn)化,統(tǒng)一化,規(guī)范化。
UML在整個(gè)軟件開(kāi)發(fā)過(guò)程中采用相同的概念和表示方法,在不同的開(kāi)發(fā)階段,不必轉(zhuǎn)換概念和表示方法,避免了傳統(tǒng)軟件開(kāi)發(fā)方法的兩個(gè)鴻溝。
UML采用圖形化的表現(xiàn)形式。產(chǎn)生的模型易于理解,易于開(kāi)發(fā)人員與用戶之間的溝通,從而能夠及時(shí)得到用戶的反饋信息。
用UML進(jìn)行系統(tǒng)建模所得到的建模制品不僅僅包括各種模型框圖,還有大量豐富的文檔,這些文檔給系統(tǒng)后期的維護(hù)工作帶來(lái)了便捷。UML不是一門(mén)程序設(shè)計(jì)語(yǔ)言,但可以使用代碼生成工具將UML模型轉(zhuǎn)換為多種程序設(shè)計(jì)語(yǔ)言代碼,或使用反向生成工具將程序源代碼轉(zhuǎn)換為UML模型。2.UML的缺點(diǎn):
任何事物都有正反兩個(gè)方面,UML這種新興的建模工具也存在它本身的一些不足,總結(jié)如下:
無(wú)法從語(yǔ)法上建立狀態(tài)圖與順序圖的關(guān)系。
無(wú)法從語(yǔ)法上建立活動(dòng)圖與順序圖在流程描述中的關(guān)系。協(xié)作圖和順序圖中與消息相伴的參數(shù)不能與類(lèi)圖建立關(guān)系。
第三篇:UML建模實(shí)驗(yàn)指導(dǎo)書(shū)總結(jié)
UML及其工具實(shí)驗(yàn)指導(dǎo)書(shū)
實(shí)驗(yàn)一 熟悉UML開(kāi)發(fā)工具M(jìn)icrosoft Visio 2007 【實(shí)驗(yàn)?zāi)康摹?/p>
熟悉UML開(kāi)發(fā)工具M(jìn)icrosoft Visio 2007?!緦?shí)驗(yàn)要求】
1. 熟悉Visio的UML建模繪圖界面。2. 通過(guò)繪制類(lèi)圖學(xué)習(xí)Visio的使用方法。3. 通過(guò)繪制對(duì)象圖學(xué)習(xí)Visio的使用方法。4. 通過(guò)繪制順序圖學(xué)習(xí)Visio的使用方法?!緦?shí)驗(yàn)步驟】
一.熟悉Visio的UML建模繪圖界面 1.進(jìn)入Visio的UML建模繪圖界面 通過(guò)“開(kāi)始”|“程序”,運(yùn)行Microsoft Office Visio 2007,出現(xiàn)Microsoft Visio界面。在左側(cè)的“類(lèi)別”區(qū)域中單擊“軟件”,然后在右側(cè)的“模板”中單擊“UML模型圖”,則進(jìn)入Visio的UML建模繪圖界面。
2.熟悉UML建模繪圖界面
在Visio的UML建模繪圖界面中,最大的白色區(qū)域就是繪圖區(qū)。左上方的“形狀”窗口就是Visio的UML元素調(diào)板,它由很多的標(biāo)簽頁(yè)組成。每個(gè)標(biāo)簽頁(yè)提供了一個(gè)特定的UML圖標(biāo)。左下方的“模型資源管理器”就是Visio的字典,字典就是所創(chuàng)建的所有元素及其屬性的記錄的集合。當(dāng)Visio打開(kāi)并準(zhǔn)備開(kāi)始UML繪圖的時(shí)候,“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)就會(huì)激活,我們就可以創(chuàng)建類(lèi)圖和對(duì)象圖了。
二.繪制類(lèi)圖
下面我們使用Visio來(lái)繪制一個(gè)如圖1所示的行星系統(tǒng)的類(lèi)模型。
圖1 一個(gè)行星系統(tǒng)的類(lèi)圖
1.從“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中選擇“類(lèi)”圖標(biāo)并把它拖放到繪圖區(qū)中。雙擊繪圖區(qū)
中的類(lèi)圖標(biāo),出現(xiàn)“UML類(lèi)屬性”窗口。在“名稱”字段中輸入“PlanetarySystem”來(lái)重新命名這個(gè)類(lèi)。單擊“確定”按鈕回到繪圖界面。我們可以通過(guò)控制工具欄中“縮放”按鈕的顯示比例,使界面中的類(lèi)圖標(biāo)顯示合適的大小。采用同樣的方法添加Planet類(lèi)。在“模型資源管理器”中反映出了增加的新類(lèi)。
2.下面我們?yōu)镻lanet類(lèi)添加兩個(gè)屬性和一個(gè)操作,并把它設(shè)置為一個(gè)抽象類(lèi)。
在Planet類(lèi)上雙擊打開(kāi)“UML 類(lèi)屬性”對(duì)話框。選中“IsAbstract”復(fù)選框,然后,從左邊的“類(lèi)別”區(qū)域選擇“特性”,在右邊的對(duì)話框中打開(kāi)“特性”表。單擊“新建”按鈕,則在 “特性”表中添加了一行,在“特性”表項(xiàng)中輸入diameter。采用同樣的方式加入 distanceFromStar屬性。
然后從“類(lèi)別”區(qū)域選擇“操作”,打開(kāi)“操作”表,單擊“新建”按鈕,則在 “操作”表中添加了一行,在“操作”表項(xiàng)中輸入“receiveLight”。單擊“確定”按鈕,賦予抽象類(lèi)Planet相應(yīng)的屬性和操作。
3.注意每個(gè)屬性左邊的減號(hào)和每個(gè)操作左邊的加號(hào),它們表示可見(jiàn)性。為了使圖顯得比較簡(jiǎn)單,我們可以在圖中去掉它們。只需要在Planet類(lèi)上右擊,打開(kāi)彈出式菜單,選擇“形狀顯示選項(xiàng)”,打開(kāi)“UML 形狀顯示選項(xiàng)”對(duì)話框。去掉“可見(jiàn)性”復(fù)選框,單擊“確定”按鈕,則Planet類(lèi)的屬性和操作前面不再顯示可見(jiàn)性。
4.我們把其他的類(lèi)拖拽到大圖中,然后添加組成關(guān)系。
首先是組成關(guān)系。從“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中把“聚合”圖標(biāo)拖拽到繪圖區(qū),實(shí)心菱形一端連接到PlanetarySystem,另一端(尾端)連接到Star。
在圖中,我們可以看到組成關(guān)系的每一段都有多重關(guān)系、可見(jiàn)性和缺省名。為了在圖中去掉缺省名和可見(jiàn)性,在組成關(guān)系上右擊,在彈出菜單中選擇“形狀顯示選項(xiàng)”。這次,在“UML 形狀顯示選項(xiàng)”對(duì)話框中,去掉“第一個(gè)端名”、“第二個(gè)端名”和“端的可見(jiàn)性”選項(xiàng),單擊“確定”按鈕。
現(xiàn)在我們來(lái)關(guān)注一下Star類(lèi)的多重關(guān)系。雙擊組成關(guān)系圖標(biāo),打開(kāi)“UML關(guān)聯(lián)屬性”對(duì)話框。在“關(guān)聯(lián)端”表格中,選擇“結(jié)束2”一行“多重性”列的單元格。單擊這個(gè)單元格中的下拉列表框,顯示出“結(jié)束2”的可能多重性關(guān)系的一個(gè)列表。選擇“1”并單擊“確定”按鈕,我們將在圖中得到所選多重性的表示。
采用同樣的方式拖拽“聚合”圖標(biāo),先把菱形箭頭的一端連在“PlanetarySystem”,然后再把尾端連接到Planet類(lèi),并進(jìn)行多重性等相關(guān)設(shè)置。
5.向圖中添加繼承關(guān)系。
從“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中將“泛化”符號(hào)拖拽到繪圖區(qū),把三角形的一端連接到Planet,尾端連接到HabitablePlanet。重復(fù)拖拽一個(gè)“泛化”符號(hào),把三角形的一端連接到Planet,尾段連接到NonHabitablePlanet。完成這些操作后,繪圖區(qū)中就是完整的類(lèi)圖。
三.繪制對(duì)象圖
下面我們使用Visio繪制一個(gè)如圖2所示的Earth和Sun的對(duì)象模型。
圖2 Earth和Sun的對(duì)象圖
1.在“模型資源管理器”中“頂層包”的文件夾上右擊,從彈出菜單中選擇“新建”|“靜態(tài)結(jié)構(gòu)圖”,則創(chuàng)建并打開(kāi)了一個(gè)新的靜態(tài)結(jié)構(gòu)圖。從“形狀”的“UML 靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中選擇“對(duì)象”圖標(biāo),拖拽到繪圖區(qū)。
2.在對(duì)象圖標(biāo)上雙擊打開(kāi)“UML對(duì)象屬性”對(duì)話框。在“名稱”字段中輸入“theSun”替代缺省名字。我們還需要表明theSum是Star類(lèi)的一個(gè)實(shí)例,為此,選擇“類(lèi)”字段并單擊下拉列表。從類(lèi)列表中選擇“頂層包::Star”,然后單擊“確定”按鈕。
3.用相同的一系列步驟創(chuàng)建HabitablePlanet類(lèi)的一個(gè)earth對(duì)象。雙擊打開(kāi)“UML對(duì)象屬性”對(duì)話框。從“類(lèi)別”區(qū)域選擇“特性值”打開(kāi)“Attribute Values”表。在這張表中,我們可以填入diameter和distanceFromTheStar屬性的值,這兩個(gè)屬性是HabitablePlanet繼承自Planet的。在“值”列賦值,單擊“確定”按鈕。
4.在對(duì)象之間添加連接。
從“UML 靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中拖動(dòng)“鏈接”符號(hào)到繪圖區(qū),將其兩端分別和對(duì)象連接起來(lái)。完成這個(gè)步驟后,“結(jié)束1”和“結(jié)束2”的名字就出現(xiàn)了,在連接上右擊,并通過(guò)“形狀顯示選項(xiàng)”可以從圖中移除它們。
四.繪制順序圖
下面我們使用Visio繪制一個(gè)如圖3所示的示意theSun和Earth之間的一個(gè)交互的順序圖(簡(jiǎn)化的圖形,只有一條消息)。
圖3 示意theSun和earth之間的一個(gè)交互的順序圖
1.在“模型資源管理器”的“頂層包”圖標(biāo)上右擊,從彈出菜單上選擇“新建”|“序列圖”,則打開(kāi)一個(gè)新的繪圖區(qū)。
2.從“UML序列”標(biāo)簽中,拖拽一個(gè)“對(duì)象生命線”圖標(biāo)并把它放入到繪圖區(qū)。雙擊圖標(biāo)打開(kāi)“UML 分類(lèi)器角色屬性”對(duì)話框,在“名稱”區(qū)域命名對(duì)象以后,在“分類(lèi)器”區(qū)域從你創(chuàng)建的類(lèi)列表中選定對(duì)象所屬的類(lèi),單擊“確定”按鈕。
3.右擊新添加的對(duì)象生命線,單擊“UML形狀顯示選項(xiàng)”,通過(guò)選擇“分類(lèi)器名稱”復(fù)選框可以顯示類(lèi)名。
4.通過(guò)一系列類(lèi)似的步驟,創(chuàng)建另一個(gè)表示Earth的對(duì)象生命線圖標(biāo)。5.創(chuàng)建從sun對(duì)象到earth對(duì)象的消息。
從“UML 序列圖”中選擇 “消息”圖標(biāo),并把它拖拽到繪圖區(qū),把它的尾部連接到sun對(duì)象的生命線,把它的頭部連接到earth對(duì)象的生命線。
要改變消息的缺省標(biāo)記,雙擊消息圖標(biāo)打開(kāi)“UML 消息屬性”對(duì)話框。由于只有一個(gè)可能的操作,名字和來(lái)自earth對(duì)象的消息所請(qǐng)求的操作都已經(jīng)被選好了。單擊“確定”按鈕,則把操作放到消息之上。
6.從“UML序列”標(biāo)簽中,拖拽一個(gè)“激活條”圖標(biāo)完成順序圖。【思考問(wèn)題】
1.對(duì)于本實(shí)驗(yàn)中創(chuàng)建的類(lèi)圖和對(duì)象圖能在兩個(gè)不同的繪圖文件中分別創(chuàng)建嗎?類(lèi)圖和順序圖呢?為什么?
2.本實(shí)驗(yàn)中創(chuàng)建的順序圖是在“頂層包”下新建的序列圖中創(chuàng)建的,請(qǐng)問(wèn)順序圖能在靜態(tài)結(jié)構(gòu)圖中創(chuàng)建嗎?為什么?
實(shí)驗(yàn)二 用例圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下用例圖的設(shè)計(jì)?!緦?shí)驗(yàn)要求】
1. 針對(duì)網(wǎng)上選課系統(tǒng)掌握識(shí)別參與者和用例的方法。2. 學(xué)習(xí)通過(guò)Visio繪制用例圖的方法。3. 掌握如何對(duì)每個(gè)用例進(jìn)行用例描述?!緦?shí)驗(yàn)步驟】
一.網(wǎng)上選課系統(tǒng)需求分析
某學(xué)校的網(wǎng)上選課系統(tǒng)主要包括如下功能:
1. 管理員通過(guò)系統(tǒng)管理界面進(jìn)入,建立本學(xué)期要開(kāi)的各種課程,將課程信息保存在數(shù)據(jù)庫(kù)中并可以對(duì)課程進(jìn)行改動(dòng)和刪除。
2. 學(xué)生通過(guò)客戶機(jī)瀏覽器根據(jù)學(xué)號(hào)和密碼進(jìn)入選課界面,在這里學(xué)生可以進(jìn)行三種操作:查詢已選課程、選課以及付費(fèi)。同樣,通過(guò)業(yè)務(wù)層,這些操作結(jié)果存入數(shù)據(jù)庫(kù)中。二.在Visio中設(shè)置全局屬性 1. 添加四個(gè)模型
單擊Visio界面上菜單欄中的“UML”菜單,選擇其下拉菜單中的“模型”,則打開(kāi)了“UML模型”窗口。單擊“新建”按鈕,在“模型”表項(xiàng)中輸入模型的名字。依次添加4個(gè)模型:用例模型、分析模型、設(shè)計(jì)模型和實(shí)現(xiàn)模型。
下面簡(jiǎn)要介紹一下四個(gè)模型的功能。
(1)用例模型:用例貫穿于建模的整個(gè)過(guò)程,因?yàn)檐浖晚攲影膬r(jià)值就在于實(shí)現(xiàn)用例,從而為用戶提供期望的功能。用例細(xì)化可使用活動(dòng)圖、順序圖等。
(2)分析模型:識(shí)別分析類(lèi),利用分析類(lèi)實(shí)現(xiàn)用例,是用例模型中用例細(xì)化活動(dòng)的延伸。主要使用順序圖和協(xié)作圖實(shí)現(xiàn)用例。
(3)設(shè)計(jì)模型:將分析模型轉(zhuǎn)化為解決方案。分析類(lèi)轉(zhuǎn)化為一個(gè)或多個(gè)設(shè)計(jì)類(lèi)、接口、類(lèi)(和接口)的操作、類(lèi)的特性都被完整的定義。根據(jù)解決問(wèn)題的需要,可能會(huì)引入一些包,這些包提供了諸如數(shù)據(jù)庫(kù)訪問(wèn)、異常處理、分布式通信等基礎(chǔ)服務(wù)。
通常有兩種途徑獲得設(shè)計(jì)類(lèi):
1)將分析類(lèi)轉(zhuǎn)化一個(gè)或多個(gè)設(shè)計(jì)類(lèi);
2)通過(guò)引入基礎(chǔ)服務(wù)獲得設(shè)計(jì)類(lèi)。
用設(shè)計(jì)類(lèi)實(shí)現(xiàn)用例:使用順序圖和協(xié)作圖。
設(shè)計(jì)系統(tǒng)原型:通過(guò)它驗(yàn)證解決方案的正確性,并為實(shí)現(xiàn)者提供指南。
(4)實(shí)現(xiàn)模型:將設(shè)計(jì)模型轉(zhuǎn)化可執(zhí)行代碼的過(guò)程。關(guān)鍵的活動(dòng)有:代碼編寫(xiě)、測(cè)試、部署。使用構(gòu)件圖來(lái)描述系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖,使用部署圖來(lái)描述系統(tǒng)的動(dòng)態(tài)實(shí)現(xiàn)視圖。
2. 將UML系統(tǒng)改名為SelectCourseSystem 在“模型資源管理器”窗口下,右擊頂層節(jié)點(diǎn),選擇“屬性”命令。在“UML子系統(tǒng)屬性”對(duì)話框的“名稱”文本框中輸入新的名稱“SelectCourseSystem”。在“文檔”文本框中可以輸入一些說(shuō)明消息。
3. 設(shè)置模型的數(shù)據(jù)類(lèi)型 在默認(rèn)情況下,UML中可以使用的數(shù)據(jù)類(lèi)型有4個(gè)包。本例中將目標(biāo)語(yǔ)言綁定為C++,所以僅保留C++數(shù)據(jù)類(lèi)型包。
單擊Visio界面上菜單欄中的“UML”菜單,選擇其下拉菜單中的“選項(xiàng)”,則打開(kāi)了“UML選項(xiàng)”窗口。在 “UML文檔”選項(xiàng)卡中選擇C++數(shù)據(jù)類(lèi)型。
三.實(shí)現(xiàn)用例模型 1. 識(shí)別參與者
本系統(tǒng)涉及的用戶包括管理員Registrar和學(xué)生Student,他們是用例圖的參與者,他們的主要特征相似,都具有姓名和學(xué)號(hào)等信息,所以可以抽象出“基”參與者人People,而Registrar和Student則從People統(tǒng)一派生。數(shù)據(jù)庫(kù)管理系統(tǒng)Database是另外一個(gè)參與者。
2. 識(shí)別用例
識(shí)別、詳述用例是用例建模過(guò)程中最重要的活動(dòng)。順著參與者出發(fā),通過(guò)考慮參與者和系統(tǒng)的交互,可以識(shí)別出主要用例。
(1)與Students參與者相關(guān)的用例有哪些?(2)與Registrar參與者相關(guān)的用例有哪些?(3)哪些用例與Database參與者相關(guān)?
3. 繪制參與者以及參與者之間的關(guān)系
(1)在“模型資源管理器”中,右擊“用例模型”下的“頂層包”,選擇“新建”|“主角”命令,出現(xiàn)“UML主角屬性”對(duì)話框。將主角命名為“Registrar”,然后在“文檔”欄中輸入一些描述管理員主角職責(zé)的文字。其中的完整路徑顯示了主角在UML模型中所處的位置。單擊“確定”按鈕,則在“用例模型”的“頂層包”下新增了一個(gè)名為“Registrar”的主角。
重復(fù)上面操作,在用例模型的頂層包中添加上所有主角。
(2)下面繪圖角色之間的關(guān)系。
雙擊“用例模型”“頂層包”下的“靜態(tài)結(jié)構(gòu)圖”,這時(shí)會(huì)在繪圖畫(huà)板中打開(kāi)。分別將Registrar角色、Student角色、People角色拖放到繪圖畫(huà)板,然后將“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“泛化”圖標(biāo)拖放到繪圖畫(huà)板,并用它來(lái)連接兩個(gè)角色。4. 繪制用例以及用例之間的泛化關(guān)系
(1)在“模型資源管理器”中,右擊“用例模型”下的“頂層包”,選擇“新建”|“用例”命令,出現(xiàn)“UML用例屬性”對(duì)話框。在“名稱”框中輸入一個(gè)你所找到用例名,單擊“確定”按鈕。
重復(fù)上面操作,在用例模型的頂層包中添加上所有用例。
(2)用例之間如果存在泛化關(guān)系,則拖拽“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“泛化”圖標(biāo)到靜態(tài)結(jié)構(gòu)圖中,來(lái)連接兩個(gè)用例。5. 繪制用例圖
(1)在“模型資源管理器”中,右擊“用例模型”下的“頂層包”,選擇“新建”|“用例圖”,這時(shí)會(huì)新建一個(gè)名為“用例-1”的空白用例圖,右擊新建的空白用例圖節(jié)點(diǎn),選擇“重命名”,可對(duì)用例圖重新命名。
(2)在“形狀”中的“UML用例”標(biāo)簽頁(yè)中,將“系統(tǒng)邊界”形狀拖放到用例圖中,雙擊系統(tǒng)邊界形狀,可進(jìn)行重新命名。
(3)在“模型資源管理器”中“用例模型”下,選中“Registrar”、“Student”和“Database”主角,拖放到用例圖的系統(tǒng)邊界之外。將“用例模型”下創(chuàng)建的用例拖放到用例圖的“系統(tǒng)邊界”內(nèi)。
(4)繪制參與者與用例之間的關(guān)聯(lián)。
如果主角和系統(tǒng)的交互包含某個(gè)用例,那么主角和該用例之間存在通信關(guān)系。將“UML用例”標(biāo)簽頁(yè)中的“通信”圖標(biāo)拖放到用例圖中,用它來(lái)連接參與者和用例。
端點(diǎn)名表示通信連接兩端在通信中扮演的角色。端點(diǎn)的多重性表示通信另一端連接的一個(gè)對(duì)象對(duì)應(yīng)著本端點(diǎn)連接的對(duì)象的數(shù)量。右擊通信連線,選擇“屬性”,出現(xiàn)“UML關(guān)聯(lián)屬性”對(duì)話框,可以設(shè)置連接線的兩個(gè)端點(diǎn)的多重性,還可以設(shè)置連接線的導(dǎo)航方向。為了降低圖表的復(fù)雜性,通常只有在例外的情況下才顯示導(dǎo)向性。
如果不關(guān)心端點(diǎn)名等信息,為了在視覺(jué)效果上隱藏這些信息,右擊通信連線,選擇“形狀顯示選項(xiàng)”命令,進(jìn)行設(shè)置即可。(5)繪制用例之間的包含和擴(kuò)展關(guān)系。
用例之間如果存在包含關(guān)系,則通過(guò)拖拽“UML用例”標(biāo)簽頁(yè)中的“用”圖標(biāo)來(lái)連接兩個(gè)用例;用例之間如果存在擴(kuò)展關(guān)系,則通過(guò)拖拽“UML用例”標(biāo)簽頁(yè)中的“擴(kuò)展”圖標(biāo)來(lái)連接兩個(gè)用例。
用例圖作為一種UML模型元素,也必須用包來(lái)組織。本例中將兩個(gè)用例圖都放到了用例模型頂層包中,還可以用注釋元素對(duì)用例圖作簡(jiǎn)單說(shuō)明。
6.對(duì)每個(gè)用例進(jìn)行用例描述。為了便于以后對(duì)用例進(jìn)行細(xì)化,每個(gè)用例都要提供用例描述。一個(gè)用例是多個(gè)場(chǎng)景組成的,對(duì)每個(gè)用例的場(chǎng)景進(jìn)行場(chǎng)景描述,寫(xiě)入Word文檔中。
【思考問(wèn)題】
1.繪制用例圖的步驟是什么?
2.結(jié)合網(wǎng)上選課系統(tǒng)的用例圖設(shè)計(jì)實(shí)例,總結(jié)一下用例圖在系統(tǒng)分析過(guò)程中所起的作用。
實(shí)驗(yàn)三 類(lèi)圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下類(lèi)圖的設(shè)計(jì)。【實(shí)驗(yàn)要求】
1. 通過(guò)網(wǎng)上選課系統(tǒng)學(xué)習(xí)識(shí)別類(lèi)的方法。
2. 通過(guò)網(wǎng)上選課系統(tǒng)學(xué)習(xí)識(shí)別類(lèi)之間關(guān)系的方法。3. 學(xué)習(xí)使用Visio繪制類(lèi)圖?!緦?shí)驗(yàn)步驟】 一.識(shí)別類(lèi) 1.通過(guò)實(shí)驗(yàn)二中用例圖的設(shè)計(jì),我們找到了四個(gè)參與者:管理員Registrar,學(xué)生Student,學(xué)生和管理員的父類(lèi)People,數(shù)據(jù)庫(kù)Database。這些參與者都可以作為類(lèi)圖中的類(lèi)。
2.識(shí)別選課系統(tǒng)中其他的類(lèi)。
在選課系統(tǒng)中,還能找出哪些類(lèi)?這些類(lèi)有哪些屬性和操作? 二.繪制類(lèi)圖 1.繪制類(lèi)
在“模型資源管理器”中,雙擊“分析模型”中“頂層包”下的靜態(tài)結(jié)構(gòu)圖,此時(shí)在繪圖區(qū)中顯示的則是此靜態(tài)結(jié)構(gòu)圖。按照實(shí)驗(yàn)一中給出的方法繪制這四個(gè)類(lèi),包括這些類(lèi)的屬性和操作。
2.繪制類(lèi)之間的關(guān)系
確定類(lèi)之間是否有關(guān)系以及有什么關(guān)系。
如果存在“關(guān)聯(lián)”關(guān)系,則將“形狀”窗口中“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“二元關(guān)
聯(lián)”圖標(biāo)拖到繪圖區(qū),來(lái)連接兩個(gè)類(lèi);如果存在“泛化”關(guān)系,則將“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“泛化”圖標(biāo)拖到繪圖區(qū),來(lái)連接類(lèi);如果存在“聚集”或“組成”關(guān)系,則將“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“復(fù)合”圖標(biāo)拖到繪圖區(qū),來(lái)連接類(lèi);如果存在“依賴”關(guān)系,則將“UML靜態(tài)結(jié)構(gòu)”標(biāo)簽頁(yè)中的“依賴關(guān)系”圖標(biāo)拖到繪圖區(qū),來(lái)連接類(lèi)。
在繪圖區(qū)中雙擊這些關(guān)系圖標(biāo),可以打開(kāi)它們的屬性對(duì)話框來(lái)修改屬性。具體操作可參考實(shí)驗(yàn)一。
【思考問(wèn)題】
1.繪制類(lèi)圖的步驟是什么? 2.結(jié)合網(wǎng)上選課系統(tǒng)的用例圖設(shè)計(jì)實(shí)例,總結(jié)一下類(lèi)圖在系統(tǒng)分析過(guò)程中所起的作用。
實(shí)驗(yàn)四 狀態(tài)圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下?tīng)顟B(tài)圖的設(shè)計(jì)。【實(shí)驗(yàn)要求】
1. 通過(guò)網(wǎng)上選課系統(tǒng)學(xué)習(xí)識(shí)別對(duì)象狀態(tài)的方法。2. 通過(guò)網(wǎng)上選課系統(tǒng)理解對(duì)象狀態(tài)的轉(zhuǎn)換。3. 學(xué)習(xí)使用Visio繪制狀態(tài)圖?!緦?shí)驗(yàn)步驟】
一.識(shí)別課程類(lèi)(對(duì)象)的狀態(tài) 我們考察一個(gè)課程類(lèi)(對(duì)象)(Course)的狀態(tài)變化過(guò)程。
課程對(duì)象被創(chuàng)建、添加到數(shù)據(jù)庫(kù)中。管理員可以刪除、修改課程信息,在某個(gè)學(xué)期,開(kāi)設(shè)該課程,如果選修人數(shù)超過(guò)指定人數(shù),就不再允許學(xué)生選這門(mén)課程。學(xué)期結(jié)束,課程的狀態(tài)終止。
通過(guò)上述需求描述,我們能夠識(shí)別出課程類(lèi)(對(duì)象)的哪些狀態(tài)? 二.繪制狀態(tài)圖
1.在“模型資源管理器”的“分析模型”中,右擊“課程”類(lèi),選擇“新建”|“狀態(tài)圖”,這時(shí)會(huì)新建一個(gè)名為“狀態(tài)圖-1”的空白狀態(tài)圖,右擊新建的空白狀態(tài)圖節(jié)點(diǎn),選擇“重命名”,可對(duì)狀態(tài)圖重新命名。
2.在“形狀”窗口的“UML狀態(tài)圖”標(biāo)簽頁(yè)中,選中“初始狀態(tài)”圖標(biāo)并拖拽到繪圖區(qū),選中“最終狀態(tài)”圖標(biāo)并拖拽到繪圖區(qū)。
3.在“UML狀態(tài)圖”標(biāo)簽頁(yè)中,選中“狀態(tài)”圖標(biāo)并拖拽到繪圖區(qū),來(lái)添加一個(gè)狀態(tài)。雙擊此狀態(tài),打開(kāi)“UML狀態(tài)屬性”對(duì)話框,進(jìn)行相應(yīng)的設(shè)置。
4.在“UML狀態(tài)圖”標(biāo)簽頁(yè)中,選中“復(fù)合狀態(tài)”圖標(biāo)并拖拽到繪圖區(qū),來(lái)添加一個(gè)復(fù)合狀態(tài)。雙擊此狀態(tài),打開(kāi)“UML復(fù)合狀態(tài)屬性”對(duì)話框,進(jìn)行相應(yīng)的設(shè)置。
在“模型資源管理器”中,單擊此復(fù)合狀態(tài)前的“+”號(hào),可以看到此復(fù)合狀態(tài)下有一個(gè)新的狀態(tài)圖,可以通過(guò)雙擊此狀態(tài)圖,在繪圖區(qū)中進(jìn)行此狀態(tài)圖的繪制。
5.在“UML狀態(tài)圖”標(biāo)簽頁(yè)中,選中“轉(zhuǎn)換”圖標(biāo)并拖拽到繪圖區(qū),來(lái)添加狀態(tài)到狀態(tài)間的轉(zhuǎn)換。雙擊轉(zhuǎn)換圖標(biāo),進(jìn)入“UML轉(zhuǎn)換屬性”對(duì)話框,進(jìn)行相應(yīng)設(shè)置。
【思考問(wèn)題】
1.總結(jié)繪制狀態(tài)圖的步驟。
2.結(jié)合網(wǎng)上選課系統(tǒng)的狀態(tài)圖設(shè)計(jì)實(shí)例,總結(jié)一下?tīng)顟B(tài)圖在系統(tǒng)分析設(shè)計(jì)過(guò)程中所起的作用。
實(shí)驗(yàn)五 順序圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下順序圖的設(shè)計(jì)?!緦?shí)驗(yàn)要求】
1. 學(xué)習(xí)根據(jù)用例描述繪制順序圖的方法。2.學(xué)習(xí)使用Visio繪制順序圖?!緦?shí)驗(yàn)步驟】
下面我們以Select Course(選課)用例為例來(lái)設(shè)計(jì)和制作順序圖。
一.識(shí)別對(duì)象
首先,查找Select Course用例的用例描述,從事件流中發(fā)現(xiàn)涉及以下對(duì)象: 1.界面 2.課程
3.對(duì)于業(yè)務(wù)層的操作,也應(yīng)該有對(duì)象進(jìn)行處理。4.事件流中涉及的參與者有:學(xué)生、數(shù)據(jù)庫(kù)。二.識(shí)別對(duì)象之間的交互
分析對(duì)象、參與者之間交互的消息。本用例主要有以下交互: 1.學(xué)生通過(guò)界面發(fā)送選課命令。2.界面向控制對(duì)象請(qǐng)求課程信息。
3.控制對(duì)象向數(shù)據(jù)庫(kù)發(fā)送查詢數(shù)據(jù)信息。4.控制對(duì)象暫存數(shù)據(jù)庫(kù)的查詢結(jié)果。
5.界面對(duì)象從控制對(duì)象中取得所有的課程信息。6.在界面上顯示所有的課程信息。
7.界面對(duì)象發(fā)送命令要求控制對(duì)象刪除課程信息。8.學(xué)生選擇課程。
9.界面對(duì)象要求學(xué)生輸入學(xué)號(hào)。
10.界面對(duì)象向控制對(duì)象發(fā)送信息,查詢?cè)撋欠窨梢赃x擇選定的課程。11.控制對(duì)象從數(shù)據(jù)庫(kù)中查詢關(guān)聯(lián)信息。12.控制對(duì)象判斷是否可以選課。
13.如果可以選課,則向數(shù)據(jù)庫(kù)中添加關(guān)聯(lián)信息。14.向界面對(duì)象返回信息。三.繪制Select Course順序圖
1.在“模型資源管理器”的“分析模型”中,右擊“頂層包”,選擇“新建”|“序列圖”,這時(shí)會(huì)新建一個(gè)名為“序列-1”的空白序列圖,右擊新建的空白序列圖節(jié)點(diǎn),選擇“重命名”,可對(duì)序列圖重新命名。
2.在“形狀”窗口的“UML序列”標(biāo)簽頁(yè)中,拖拽“對(duì)象生命線”到繪圖區(qū),在繪圖區(qū)中雙擊此對(duì)象生命線,出現(xiàn)“UML分類(lèi)器角色屬性”對(duì)話框,在“名稱”欄輸入名字,在“分類(lèi)器”欄中選擇所屬的類(lèi)。單擊“確定”按鈕。
要想顯示出分類(lèi)器名字,可以右擊此對(duì)象生命線,選擇“形狀顯示選項(xiàng)”,打開(kāi)“UML形狀顯示選項(xiàng)”對(duì)話框,選中“分類(lèi)器名稱”項(xiàng),單擊“確認(rèn)”即可。
3.繪制對(duì)象間的通信。
在 “UML序列”標(biāo)簽頁(yè)中,拖拽“消息”圖標(biāo)到繪圖區(qū),連接對(duì)象的生命線。雙擊“消
息”,打開(kāi)“UML消息屬性”對(duì)話框,進(jìn)行消息的屬性設(shè)置。通過(guò)拖拽“激活”圖標(biāo)到繪圖區(qū)的生命線上,來(lái)表示該對(duì)象正在執(zhí)行某個(gè)操作。
四.繪制其他用例的順序圖
按照上述例子的方法,畫(huà)出網(wǎng)上選課系統(tǒng)中其他用例的順序圖?!舅伎紗?wèn)題】
1.總結(jié)繪制順序圖的步驟。
2.結(jié)合網(wǎng)上選課系統(tǒng)的順序圖設(shè)計(jì)實(shí)例,總結(jié)一下順序圖在系統(tǒng)分析設(shè)計(jì)過(guò)程中所起的作用。
實(shí)驗(yàn)六 協(xié)作圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下協(xié)作圖的設(shè)計(jì)。【實(shí)驗(yàn)要求】
1. 學(xué)習(xí)根據(jù)用例描述繪制協(xié)作圖的方法。2.學(xué)習(xí)使用Visio繪制協(xié)作圖?!緦?shí)驗(yàn)步驟】
下面我們以Select Course(選課)用例為例來(lái)設(shè)計(jì)和制作協(xié)作圖。
一.識(shí)別對(duì)象
首先,查找Select Course用例的用例描述,從事件流中發(fā)現(xiàn)涉及以下對(duì)象: 1.界面 2.課程
3.對(duì)于業(yè)務(wù)層的操作,也應(yīng)該有對(duì)象進(jìn)行處理。4.事件流中涉及的參與者有:學(xué)生、數(shù)據(jù)庫(kù)。二.識(shí)別對(duì)象之間的交互
分析對(duì)象、參與者之間交互的消息。本用例主要有以下交互: 1.學(xué)生通過(guò)界面發(fā)送選課命令。2.界面向控制對(duì)象請(qǐng)求課程信息。
3.控制對(duì)象向數(shù)據(jù)庫(kù)發(fā)送查詢數(shù)據(jù)信息。4.控制對(duì)象暫存數(shù)據(jù)庫(kù)的查詢結(jié)果。
5.界面對(duì)象從控制對(duì)象中取得所有的課程信息。6.在界面上顯示所有的課程信息。
7.界面對(duì)象發(fā)送命令要求控制對(duì)象刪除課程信息。8.學(xué)生選擇課程。
9.界面對(duì)象要求學(xué)生輸入學(xué)號(hào)。
10.界面對(duì)象向控制對(duì)象發(fā)送信息,查詢?cè)撋欠窨梢赃x擇選定的課程。11.控制對(duì)象從數(shù)據(jù)庫(kù)中查詢關(guān)聯(lián)信息。12.控制對(duì)象判斷是否可以選課。
13.如果可以選課,則向數(shù)據(jù)庫(kù)中添加關(guān)聯(lián)信息。14.向界面對(duì)象返回信息。三.繪制Select Course協(xié)作圖
1.在“模型資源管理器”的“分析模型”中,右擊“頂層包”,選擇“新建”|“協(xié)作圖”,這時(shí)會(huì)新建一個(gè)名為“協(xié)作-1”的空白序列圖,右擊新建的空白序列圖節(jié)點(diǎn),選擇“重
命名”,可對(duì)協(xié)作圖重新命名。
2.在“形狀”窗口的“UML協(xié)作”標(biāo)簽頁(yè)中,拖拽“分類(lèi)器角色”到繪圖區(qū),在繪圖區(qū)中雙擊此分類(lèi)器角色,出現(xiàn)“UML分類(lèi)器角色屬性”對(duì)話框,在“名稱”欄輸入名字,在“分類(lèi)器”欄中選擇所屬的類(lèi)。單擊“確定”按鈕。
要想顯示出分類(lèi)器名字,可以右擊此分類(lèi)器角色,選擇“形狀顯示選項(xiàng)”,打開(kāi)“UML形狀顯示選項(xiàng)”對(duì)話框,選中“分類(lèi)器名稱”項(xiàng),單擊“確認(rèn)”即可。
3.繪制對(duì)象間的通信。
在 “UML序列”標(biāo)簽頁(yè)中,拖拽“關(guān)聯(lián)角色”圖標(biāo)到繪圖區(qū),連接對(duì)象。雙擊此關(guān)聯(lián)角色,打開(kāi)“UML關(guān)聯(lián)角色屬性”對(duì)話框,進(jìn)行屬性設(shè)置。
四.繪制其他用例的協(xié)作圖
按照上述例子的方法,畫(huà)出網(wǎng)上選課系統(tǒng)中其他用例的協(xié)作圖?!舅伎紗?wèn)題】
1.總結(jié)繪制協(xié)作圖的步驟。
2.結(jié)合網(wǎng)上選課系統(tǒng)的協(xié)作圖設(shè)計(jì)實(shí)例,總結(jié)一下協(xié)作圖在系統(tǒng)分析設(shè)計(jì)過(guò)程中所起的作用。
實(shí)驗(yàn)七 活動(dòng)圖設(shè)計(jì)
【實(shí)驗(yàn)?zāi)康摹?/p>
掌握在Visio下活動(dòng)圖的設(shè)計(jì)。【實(shí)驗(yàn)要求】
1. 學(xué)習(xí)根據(jù)用例描述繪制活動(dòng)圖的方法。2.學(xué)習(xí)使用Visio繪制活動(dòng)圖?!緦?shí)驗(yàn)步驟】
下面我們以Add Course(添加課程)用例為例來(lái)設(shè)計(jì)和制作活動(dòng)圖。
一.識(shí)別活動(dòng)
針對(duì)Add Course用例的用例描述,因?yàn)楣芾韱T密碼驗(yàn)證過(guò)程可以抽取出來(lái),作為通用的流程,所以將管理員輸入課程信息作為起始的活動(dòng)。內(nèi)容如下:(1)管理員輸入信息。
(2)系統(tǒng)驗(yàn)證是否和已有課程沖突。A:有沖突。
(3)系統(tǒng)添加新課程,提示課程添加成功。(4)系統(tǒng)重新進(jìn)入管理主界面,顯示所有課程。(5)用例結(jié)束。其他事件流: A:有沖突
(1)系統(tǒng)提示沖突,顯示沖突課程信息。(2)用戶重新輸入。
(3)繼續(xù)驗(yàn)證直到無(wú)沖突。
(4)進(jìn)入添加課程事件流第(3)步。
根據(jù)以上描述并進(jìn)一步細(xì)化,能識(shí)別出哪些活動(dòng)? 二.識(shí)別負(fù)責(zé)活動(dòng)的角色
在繪制活動(dòng)圖的時(shí)候,要對(duì)角色可視化,需要畫(huà)出泳道。所以我們要識(shí)別出負(fù)責(zé)每個(gè)活動(dòng)的角色。
三.繪制活動(dòng)圖
1.在“模型資源管理器”的“用例模型”中,右擊“頂層包”,選擇“新建”|“活動(dòng)圖”進(jìn)行創(chuàng)建。這時(shí)會(huì)新建一個(gè)名為“活動(dòng)-1”的空白活動(dòng)圖,右擊新建的空白活動(dòng)圖節(jié)點(diǎn),選擇“重命名”,可對(duì)活動(dòng)圖重新命名。
2.在“形狀”窗口的“UML活動(dòng)”標(biāo)簽頁(yè)中,分別拖動(dòng)“初始狀態(tài)”圖標(biāo)和“最終狀態(tài)”圖標(biāo)到繪圖區(qū)。
3.添加泳道。
在“UML活動(dòng)”標(biāo)簽中,將“泳道”圖標(biāo)拖到繪圖區(qū)來(lái)添加泳道。雙擊泳道,可以打開(kāi)“UML分區(qū)屬性”對(duì)話框,進(jìn)行分區(qū)屬性的設(shè)置。
4.添加狀態(tài)。
在“UML活動(dòng)”標(biāo)簽中,將“動(dòng)態(tài)狀態(tài)”或“狀態(tài)”圖標(biāo)拖到繪圖區(qū)來(lái)添加活動(dòng)。雙擊圖標(biāo)可以打開(kāi)屬性對(duì)話框,進(jìn)行屬性的設(shè)置。
動(dòng)作狀態(tài)表示對(duì)象正在執(zhí)行一個(gè)不可中斷的原子操作。狀態(tài)可以被分解成其他動(dòng)作狀態(tài)或狀態(tài),因此如有必要,可用一個(gè)單獨(dú)的活動(dòng)圖描述狀態(tài)。
5.添加轉(zhuǎn)換。
在“UML活動(dòng)”標(biāo)簽中,“判定”圖標(biāo)來(lái)表示在某一點(diǎn)做出判定?!稗D(zhuǎn)換(分叉)”和“轉(zhuǎn)換(連接)”圖標(biāo)來(lái)描述并發(fā)的活動(dòng),此時(shí)包含多個(gè)控制流?!翱刂屏鳌泵枋鰡蝹€(gè)控制的簡(jiǎn)單轉(zhuǎn)換。雙擊圖標(biāo)可以在相應(yīng)的屬性對(duì)話框中進(jìn)行屬性設(shè)置。
四.繪制其他用例的活動(dòng)圖
按照上述例子的方法,畫(huà)出網(wǎng)上選課系統(tǒng)中其他用例的活動(dòng)圖?!舅伎紗?wèn)題】
1.總結(jié)繪制活動(dòng)圖的步驟。
2.結(jié)合網(wǎng)上選課系統(tǒng)的活動(dòng)圖設(shè)計(jì)實(shí)例,總結(jié)一下活動(dòng)圖在系統(tǒng)分析設(shè)計(jì)過(guò)程中所起的作用。
第四篇:個(gè)人博客UML建模
圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
2010 —— 2011 學(xué) 年 第 一 學(xué) 期
信息技術(shù)學(xué)院
《軟件系統(tǒng)建模與UML》綜合設(shè)計(jì)實(shí)驗(yàn)
***系統(tǒng)的UML建模
班
級(jí) 學(xué)
號(hào) 姓
名 任課教師
日
期
2010年12月30日
0 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
目 錄
第1章 系統(tǒng)需求..............................................2 第2章 需求分析..............................................4
2.1 識(shí)別參與者...........................................4 2.2 識(shí)別用例.............................................5 2.3 用例的事件流描述....................................11 第3章 靜態(tài)結(jié)構(gòu)模型.........................................16 3.1 定義系統(tǒng)對(duì)象........................................16 3.2 定義用戶界面類(lèi)......................................16 3.3 建立類(lèi)圖............................................16 第4章 動(dòng)態(tài)行為模型.........................................19 4.1 創(chuàng)建系統(tǒng)順序圖(協(xié)作圖)............................19 4.2 創(chuàng)建系統(tǒng)的狀態(tài)圖....................................19 4.3 創(chuàng)建系統(tǒng)的活動(dòng)圖....................................29 第5章 數(shù)據(jù)庫(kù)模型...........................................31 第6章 物理模型.............................................32 6.1 創(chuàng)建系統(tǒng)組件圖......................................32 6.2 創(chuàng)建系統(tǒng)部署圖......................................33 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第1章 系統(tǒng)需求
系統(tǒng)概述
Blog是一種讓編寫(xiě)者可以表達(dá)自己意見(jiàn)、發(fā)表自己的看法以及見(jiàn)聞的方式。系統(tǒng)目標(biāo)是使好友之間有一個(gè)交流溝通的平臺(tái),通過(guò)博客可以互相了解彼此的生活狀況,系統(tǒng)擁有發(fā)布日志,心情,照片,留言評(píng)論等功能。
系統(tǒng)功能分析
本Blog系統(tǒng)將完成以下功能:
? 網(wǎng)站首頁(yè)功能
? 用戶的注冊(cè)、登錄和登出 ? 個(gè)人消息中心管理功能 ? 照片管理功能 ? 相冊(cè)分類(lèi)管理功能 ? 文章管理功能 ? 文章分組管理功能 ? 心情管理功能
? 日志,照片,心情評(píng)論管理功能 ? 留言板留言,回復(fù)功能 ? 裝扮空間功能圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
根據(jù)以上分析,畫(huà)出系統(tǒng)功能圖(PPT原版): 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第2章 需求分析
2.1 識(shí)別參與者
參與者關(guān)系圖如圖2-1所示:
游客其他會(huì)員博主
圖2-1 參與者關(guān)系圖
游客:未注冊(cè)的用戶,只擁有普通瀏覽功能
注冊(cè)會(huì)員:已注冊(cè)成為會(huì)員,與游客是泛化關(guān)系,擁有查看,評(píng)論,留言,回復(fù)留言評(píng)論的功能
博主:博客的擁有者,與會(huì)員是泛化關(guān)系,擁有查看,評(píng)論,回復(fù)評(píng)論,對(duì)自己博客的所有的文章,心情,照片,評(píng)論留言具有管理的權(quán)限。圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
2.2 識(shí)別用例
主用例圖如圖2-2所示:
看文章看相冊(cè)看心情看留言板日志評(píng)論看主人資料圖片評(píng)論游客看評(píng)論回復(fù)心情評(píng)論留言板留言會(huì)員評(píng)論文章,照片,心情文章博主修改博客內(nèi)容照片相冊(cè)回復(fù)、刪除留言評(píng)論心情管理好友更改裝扮
圖2-2 主用例圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
管理留言板用例圖如圖2-3所示:
查看留言游客添加新留言會(huì)員回復(fù)留言博主刪除留言
圖2-3 管理留言板用例圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
管理文章用例圖如圖2-4所示:
查看文章評(píng)論查看文章游客添加新評(píng)論會(huì)員回復(fù)評(píng)論添加文章博主刪除文章修改文章刪除評(píng)論
圖2-4 管理文章用例圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
管理相冊(cè)用例圖如圖2-5所示:
查看評(píng)論游客查看照片添加新評(píng)論會(huì)員回復(fù)評(píng)論上傳照片刪除照片/修改博主創(chuàng)建相冊(cè)刪除/修改相冊(cè)刪除評(píng)論回復(fù)評(píng)論
圖2-5管理相冊(cè)用例圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
管理心情用例圖如圖2-6所示:
查看評(píng)論游客查看照片添加新評(píng)論會(huì)員回復(fù)評(píng)論上傳照片刪除照片/修改博主創(chuàng)建相冊(cè)刪除/修改相冊(cè)刪除評(píng)論回復(fù)評(píng)論
圖2-6 管理心情用例圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
注冊(cè)登錄用例圖如圖2-7所示:
瀏覽博客游客注冊(cè)進(jìn)入自己博客會(huì)員登錄訪問(wèn)別人博客
圖2-7 注冊(cè)登錄用例圖
管理好友用例圖如圖2-8所示:
添加好友博主刪除好友
圖2-7 管理好友用例圖
更改裝扮用例圖如圖2-9所示:
博主更改裝扮
圖2-9 更改裝扮用例圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
2.3 用例的事件流描述
2.3.1瀏覽博客用例描述
用例名稱:瀏覽博客用例
用例描述:用戶進(jìn)入自己或者其他會(huì)員的博客 參與者:博主,其他會(huì)員,游客 前置條件:進(jìn)入博客 后置條件:退出博客
假設(shè)條件:用戶已進(jìn)入網(wǎng)上博客 基本操作流程:
1、進(jìn)入網(wǎng)上博客
2、查看信息中心,文章,好友心情,相冊(cè),留言板等
3、退出網(wǎng)上博客 備選流程:
點(diǎn)擊“進(jìn)入自己博客”可以進(jìn)入自己博客
2.3.2管理留言板用例描述
用例名稱:管理留言板用例
用例描述:博主可以通過(guò)此用例添加、刪除留言,回復(fù)留言
會(huì)員可以留言,游客只能瀏覽 參與者:博主,其他會(huì)員,游客 前置條件:成功進(jìn)入到留言板模塊 后置條件:退出留言板模塊 假設(shè)條件:用戶已經(jīng)進(jìn)入網(wǎng)上博客 基本操作流程:
1、進(jìn)入留言板模塊
2、博主:添加,刪除,修改留言,回復(fù)留言
3、會(huì)員:添加留言,游客只能查看
3、退出留言板模塊 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊
2.3.3管理文章用例描述
用例名稱:管理文章用例
用例描述:博主可以通過(guò)此用例添加、刪除、修改文章及評(píng)論、回復(fù)評(píng)論
會(huì)員可以瀏覽文章以及進(jìn)行評(píng)論,游客只能瀏覽 參與者:博主,其他會(huì)員,游客 前置條件:成功進(jìn)入到文章模塊 后置條件:退出文章模塊 假設(shè)條件:用戶已經(jīng)進(jìn)入網(wǎng)上博客 基本操作流程:
1、進(jìn)入文章模塊
2、博主:添加,刪除,修改文章,評(píng)論及回復(fù)評(píng)論
3、會(huì)員:瀏覽文章,添加評(píng)論和回復(fù)評(píng)論,游客只能查看
3、退出文章模塊 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊
2.3.4管理相冊(cè)用例描述
用例名稱:管理相冊(cè)
用例描述:博主可以通過(guò)此模塊添加、刪除、修改相冊(cè);添加、刪除照片
會(huì)員可以瀏覽相冊(cè),照片,以及對(duì)照片進(jìn)行評(píng)論;游客只能瀏覽 參與者:博主,其他會(huì)員,游客 前置條件:進(jìn)入相冊(cè)模塊 后置條件:退出相冊(cè)模塊 假設(shè)條件:用戶已進(jìn)入網(wǎng)上博客 基本操作流程: 進(jìn)入相冊(cè)模塊
游客:查看相冊(cè)照片,評(píng)論,回復(fù) 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
3、會(huì)員:查看相冊(cè)照片,評(píng)論照片,回復(fù)評(píng)論
4、博主:查看、添加、刪除、修改相冊(cè)、照片、回復(fù)評(píng)論
5、退出相冊(cè)模塊 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊
2.3.5管理心情用例描述
用例名稱:管理心情
用例描述:博主可以通過(guò)此用例添加、刪除、修改心情,及添加、刪除評(píng)論、回復(fù)評(píng)論;
會(huì)員可以瀏覽心情,以及進(jìn)行評(píng)論,回復(fù)評(píng)論,游客只進(jìn)行查看 參與者:博主,其他會(huì)員,游客 前置條件:成功進(jìn)入到心情界面 后置條件:退出心情界面 假設(shè)條件:用戶已進(jìn)入網(wǎng)上博客 基本操作流程:
1、進(jìn)入心情界面
2、博主添加,刪除,修改心情,添加、刪除評(píng)論及回復(fù)評(píng)論
3、會(huì)員為心情評(píng)論或者回復(fù)評(píng)論,游客只能查看
4、退出心情界面 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊
2.3.6管理好友用例描述
用例名稱:管理好友
用例描述:博主可以通過(guò)此模塊添加好友 參與者:博主
前置條件:博主已登陸自己博客 后置條件:退出添加好友模塊 假設(shè)條件:用戶已登錄自己博客 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
基本操作流程:
1、進(jìn)入管理好友模塊
2、選擇要添加或者刪除的好友的會(huì)員名稱
3、點(diǎn)擊添加或者刪除
4、添加或者刪除成功
4、退出管理好友模塊 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊
2.3.7查看信息中心用例描述
用例名稱:查看信息中心
用例描述:博主可以通過(guò)此模塊更改個(gè)人信息
所有用戶都可以通過(guò)此模塊瀏覽博主信息 參與者:博主,其他會(huì)員,游客 前置條件:成功登錄到個(gè)人信息模塊 后置條件:退出個(gè)人信息模塊 假設(shè)條件:用戶已進(jìn)入網(wǎng)上博客 基本操作流程:
1、進(jìn)入個(gè)人信息模塊
2、所有會(huì)員:查看博主信息
3、博主:更改個(gè)人信息
4、退出個(gè)人信息模塊 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
2.3.8裝扮博客用例描述
用例名稱:裝扮博客
用例描述:博主可以通過(guò)此模塊更改皮膚裝扮 參與者:博主
前置條件:博主已登陸自己博客 后置條件:退出裝扮模塊 假設(shè)條件:用戶已登錄自己博客 基本操作流程:
1、進(jìn)入裝扮模塊
2、選擇喜歡的皮膚
3、點(diǎn)擊裝扮,裝扮成功
4、退出裝扮模塊 備選流程:
點(diǎn)擊導(dǎo)航超鏈接可以直接進(jìn)入其他模塊 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第3章 靜態(tài)結(jié)構(gòu)模型
進(jìn)一步分析系統(tǒng)需求,發(fā)現(xiàn)類(lèi)以及類(lèi)之間的關(guān)系,確定它們的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,是面向?qū)ο骩7]分析的基本任務(wù)。系統(tǒng)的靜態(tài)結(jié)構(gòu)模型主要用類(lèi)圖和對(duì)象圖描述。
3.1 定義系統(tǒng)對(duì)象
博主:博客的擁有者,擁有博客的所有權(quán)限,也可理解為后臺(tái)管理員或者系統(tǒng)管理員;
前臺(tái)用戶:分為會(huì)員和游客
會(huì)員:可以查看和評(píng)論博主的文章,心情,相冊(cè),以及在留言板留言;
游客:只具有查看博主的博客的權(quán)限;
3.2 定義用戶界面類(lèi)
通過(guò)對(duì)系統(tǒng)的不斷分析和細(xì)化,可識(shí)別出下述界面類(lèi)、類(lèi)的操作和屬性。圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
邊界類(lèi)如圖3-1所示:
圖3-1 邊界類(lèi)圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
3.3 建立類(lèi)圖
實(shí)體類(lèi)圖如圖3-2所示:
圖3-1 實(shí)體類(lèi)圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第4章 動(dòng)態(tài)行為模型
4.1 創(chuàng)建系統(tǒng)順序圖
文章、心情、照片的添加順序圖如圖4-1所示:
: 博主 : 日志管理界面1: 添加日志2: 添加文章信息3: 添加修改成功 : 文章 : 照片管理界面 : 照片 : 心情管理界面 : 心情4: 返回添加成功5: 添加照片信息6: 添加照片7: 添加修改成功8: 返回添加成功9: 添加心情10: 添加心情信息11: 添加修改成功12: 返回添加成功
圖4-1 文章、心情、照片的添加順序圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
文章、心情、照片的刪除順序圖如圖4-2所示:
: 博主 : 日志管理界面1: 刪除日志2: 刪除文章信息3: 返回刪除成功 : 文章 : 照片管理界面 : 照片 : 心情管理界面 : 心情4: 顯示刪除成功5: 刪除照片信息6: 刪除照片7: 返回刪除成功8: 顯示刪除成功9: 刪除心情10: 刪除心情信息11: 返回刪除成功12: 顯示刪除成功圖4-2 文章、心情、照片的刪除順序圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
文章、心情的修改順序圖如圖4-3所示:
: 博主1: 修改日志 : 日志管理界面 : 文章 : 心情管理界面 : 心情2: 修改文章信息3: 返回修改成功4: 顯示修改成功5: 修改心情6: 修改心情信息7: 返回修改成功8: 顯示修改成功
圖4-3 文章、心情的修改順序圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
文章、心情、照片的查看順序圖如圖4-4所示:
: 游客1: 查看文章(): 未登錄瀏覽頁(yè)面 : 文章 : 心情 : 照片 : 留言板2: 選擇符合添加文章3: 返回要查看的文章4: 返回文章信息5: 查看心情()6: 選擇符合添加心情7: 返回要查看的心情8: 返回心情信息9: 查看照片()10: 選擇符合添加照片11: 返回要查看的照片12: 返回照片信息13: 查看留言板()14: 選擇留言15: 返回留言板16: 返回留言板信息圖4-4 文章、心情、照片的查看順序圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
留言添加、回復(fù)順序圖如圖4-5所示:
: 會(huì)員1: 添加留言 : 留言管理界面 : 留言板 : 留言板回復(fù)2: 添加留言3: 返回添加成功4: 顯示添加成功5: 繼續(xù)添加6: 回復(fù)留言7: 添加回復(fù)8: 添加回復(fù)信息9: 返回添加回復(fù)信息成功10: 返回添加回復(fù)成功11: 顯示添加成功12: 繼續(xù)回復(fù)
圖4-5留言添加、回復(fù)順序圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
留言刪除順序圖如圖4-6所示:
: 博主 : 留言管理界面1: 刪除留言2: 刪除留言信息(): 留言板3: 返回刪除成功()4: 顯示刪除成功5: 繼續(xù)刪除留言()
圖4-6留言刪除順序圖如圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
登錄注冊(cè)順序圖如圖4-7所示:
: 游客1: 登錄(): 登錄界面 : 會(huì)員 : 注冊(cè)界面2: 驗(yàn)證()3: 返回登陸成功4: 驗(yàn)證()5: 注冊(cè)()6: 返回注冊(cè)成功7: 再次登錄()8: 驗(yàn)證()9: 返回登錄通過(guò)
圖4-7登錄注冊(cè)順序圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
管理好友順序圖如圖4-8所示:
: 博主 : 好友管理界面 : 好友1: 添加好友()2: 添加好友信息3: 返回添加成功4: 顯示添加成功5: 刪除好友()6: 刪除好友信息7: 返回刪除成功8: 顯示刪除成功
圖4-8 管理好友順序圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
4.2 創(chuàng)建系統(tǒng)的狀態(tài)圖
好友狀態(tài)圖如圖4-8所示:
未成好友狀態(tài)添加好友刪除好友成功添加未成功添加好友狀態(tài)未成功關(guān)閉狀態(tài)
圖4-8好友狀態(tài)圖圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
會(huì)員狀態(tài)圖如圖4-9所示:
其他會(huì)員游客注冊(cè)博客會(huì)員查看別人博客退出狀態(tài)查看別人博客登陸自己博客登陸自己博客博主
圖4-9會(huì)員狀態(tài)圖
文章?tīng)顟B(tài)圖如圖4-10所示:
查看狀態(tài)關(guān)閉不是會(huì)員評(píng)論回復(fù)評(píng)論不是博主是會(huì)員刪除文章評(píng)論是博主可編輯狀態(tài)可修改文章回復(fù)文章評(píng)論刪除文章修改文章添加新文章
圖4-9文章?tīng)顟B(tài)圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
4.3 創(chuàng)建系統(tǒng)的活動(dòng)圖
管理文章活動(dòng)圖如圖4-10所示:
登錄自己博客驗(yàn)證密碼,用戶名是否匹配驗(yàn)證通過(guò)刪除文章驗(yàn)證未通過(guò)失敗返回失敗結(jié)果成功返回成功登錄失敗退出圖4-10管理文章活動(dòng)圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
登錄注冊(cè)活動(dòng)圖如圖4-11所示:
登錄驗(yàn)證用戶名密碼密碼錯(cuò)誤退出用戶名不存在注冊(cè)不注冊(cè)注冊(cè)注冊(cè)成功用戶名不存在輸入用戶名密碼用戶名已存在繼續(xù)注冊(cè)放棄注冊(cè)注冊(cè)失敗
圖4-11登錄注冊(cè)活動(dòng)圖 圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第5章 數(shù)據(jù)庫(kù)模型
數(shù)據(jù)庫(kù)模型如圖5-1所示:
圖5-1 數(shù)據(jù)庫(kù)模型圖
圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
第6章 物理模型
6.1 創(chuàng)建系統(tǒng)組件圖
網(wǎng)上博客組件圖如圖6-1所示:
會(huì)員登陸、注冊(cè)文章分組文章評(píng)論回復(fù)心情主程序照片相冊(cè)留言板好友留言板回復(fù)個(gè)人消息中心
圖6-1 網(wǎng)上博客組件圖
圖書(shū)管理系統(tǒng)的分析及設(shè)計(jì)---應(yīng)用UML建模
6.2 創(chuàng)建系統(tǒng)部署圖
網(wǎng)上博客部署圖如圖6-2所示:
客戶端瀏覽器WEB瀏覽器
HTTP瀏覽器TomCat服務(wù)器圖6.2 網(wǎng)上博客部署圖
數(shù)據(jù)庫(kù)服務(wù)器SQL Server 2008
第五篇:UML(ATM系統(tǒng))動(dòng)態(tài)建模
實(shí)驗(yàn)3 動(dòng)態(tài)建模
一、實(shí)驗(yàn)?zāi)康呐c要求 掌握分析ATM系統(tǒng)用例中用例的流程,分析對(duì)象之間的交互關(guān)系 掌握用UML設(shè)計(jì)參與對(duì)象之間的交互,用狀態(tài)圖、時(shí)序圖、協(xié)作圖和活動(dòng)圖來(lái)描述系統(tǒng)的行為。
二、實(shí)驗(yàn)設(shè)備、環(huán)境
PC(一臺(tái)),Windows 2000或以上版本,安裝Microsoft Visio 2003
三、實(shí)驗(yàn)內(nèi)容及步驟 交互圖:實(shí)現(xiàn)ATM系統(tǒng)的序列關(guān)系圖和通信(協(xié)作)關(guān)系圖; 2 分析設(shè)計(jì)軟件系統(tǒng)的狀態(tài)圖。((1)和(2)選做一個(gè)狀態(tài)圖);
(1)ATM系統(tǒng)
(2)具體題目如下:某銷(xiāo)售POS機(jī),它的工作流程是:當(dāng)客戶到收銀臺(tái)后,收銀員逐一輸入用戶購(gòu)買(mǎi)的商品,輸入完之后,計(jì)算出總金額,然后等待用戶付款,確定支付成功之后,完成收銀,等待下一個(gè)客戶。請(qǐng)為其繪制出相應(yīng)的狀態(tài)機(jī)圖。
3分析設(shè)計(jì)ATM系統(tǒng)的活動(dòng)圖(選做1個(gè)活動(dòng)圖)。
建立動(dòng)態(tài)模型:
建立序列關(guān)系圖、狀態(tài)圖、活動(dòng)圖
步驟:
?
編寫(xiě)腳本
?
確定各個(gè)對(duì)象之間的事件
?
構(gòu)造事件追蹤圖(交互圖)?
構(gòu)造狀態(tài)圖
?
添加活動(dòng)和動(dòng)作
一、時(shí)序關(guān)系圖
1)ATM系統(tǒng)的正常情況腳本
? ATM請(qǐng)儲(chǔ)戶插卡;儲(chǔ)戶插入一張現(xiàn)金兌換卡。? ATM接受該卡并讀它上面的卡號(hào)。
? ATM要求儲(chǔ)戶輸入密碼;儲(chǔ)戶輸入自己的密碼“1234”等數(shù)字。
? ATM請(qǐng)求系統(tǒng)驗(yàn)證卡號(hào)和密碼;核對(duì)儲(chǔ)戶密碼,然后通知顯示器顯示說(shuō)這張卡有效。
? ATM要求儲(chǔ)戶選擇事務(wù)類(lèi)型(取款、轉(zhuǎn)賬、查詢等);儲(chǔ)戶選擇“取款”。? ATM要求儲(chǔ)戶輸入取款額;儲(chǔ)戶輸入“880”。
? ATM確認(rèn)取款額在預(yù)先規(guī)定的限額內(nèi),然后要求處理這個(gè)事務(wù);成功處理完這項(xiàng)事務(wù)并返回該賬戶的新余額。
? ATM吐出現(xiàn)金并請(qǐng)儲(chǔ)戶拿走這些現(xiàn)金;儲(chǔ)戶拿走現(xiàn)金。? ATM問(wèn)儲(chǔ)戶是否繼續(xù)這項(xiàng)事務(wù);儲(chǔ)戶回答“不”。
? ATM打印賬單,退出現(xiàn)金兌換卡,請(qǐng)儲(chǔ)戶拿走它們;儲(chǔ)戶取走賬單和卡。? ATM請(qǐng)儲(chǔ)戶插卡。
2)ATM系統(tǒng)的異常情況腳本
? ATM請(qǐng)儲(chǔ)戶插卡;儲(chǔ)戶插入一張現(xiàn)金兌換卡。? ATM接受該卡并順序讀它上面的數(shù)字。
? ATM要求密碼;儲(chǔ)戶誤輸入“8888”等數(shù)字。
? ATM請(qǐng)求總行驗(yàn)證卡號(hào)和密碼;經(jīng)驗(yàn)證發(fā)現(xiàn)密碼錯(cuò)誤,拒絕這張卡。? ATM顯示“密碼錯(cuò)”,并請(qǐng)儲(chǔ)戶輸入密碼;儲(chǔ)戶輸入“1234”等數(shù)字;ATM請(qǐng)求總行驗(yàn)證后知道輸入密碼正確。
? ATM要求儲(chǔ)戶選擇事務(wù)類(lèi)型;儲(chǔ)戶選擇“取款”。
? ATM詢問(wèn)取款額;儲(chǔ)戶改變主意不想取款了,按“取消”。? ATM退出現(xiàn)金兌換卡,請(qǐng)儲(chǔ)戶拿走它們;儲(chǔ)戶取走卡。? ATM請(qǐng)儲(chǔ)戶插卡。
ATM 腳本的事件時(shí)序圖如下圖所示:(正常情況)
用戶讀卡器顯示器ATM卡用戶賬戶事務(wù)提款機(jī)插卡讀卡初始化提示輸入密碼輸入密碼驗(yàn)證密碼獲取密碼獲取賬戶初始化提示選擇業(yè)務(wù)選擇業(yè)務(wù)執(zhí)行事務(wù)初始化提示輸入金額輸入金額獲取余額驗(yàn)證取款金額計(jì)算余額計(jì)算利息更新賬戶配給現(xiàn)金打印收據(jù)退卡
二、狀態(tài)圖
主屏]do:顯示主屏幕插卡[可讀]Do:要求密碼輸入密碼Do:驗(yàn)證賬戶繼續(xù)密碼錯(cuò)拿走卡退卡do:退卡請(qǐng)拿走卡插卡[不可讀]不可讀的卡do:顯示信息取消取消do:顯示取消信息無(wú)效賬戶賬戶有效Do:要求類(lèi)型取消輸入類(lèi)型Do:要求金額取消結(jié)束do:打印賬單Do:顯示無(wú)效賬戶信息輸入金額等待5秒Do:處理事務(wù)中止取消Do:請(qǐng)求繼續(xù)拿走現(xiàn)金do:吐出現(xiàn)金請(qǐng)拿走現(xiàn)金事務(wù)成功取消事務(wù)失敗Do:失敗信息網(wǎng)絡(luò)響應(yīng)等待網(wǎng)絡(luò)響應(yīng)中斷do:顯示取消信息ATM類(lèi)的狀態(tài)圖
處理事務(wù)驗(yàn)證賬戶請(qǐng)求處理事務(wù)請(qǐng)求驗(yàn)卡事務(wù)成功事務(wù)失敗無(wú)效賬戶賬戶有效密碼錯(cuò)
事務(wù)處理狀態(tài)圖
賬戶驗(yàn)證狀態(tài)圖
三、活動(dòng)圖
插卡<沒(méi)有接收動(dòng)作>輸入密碼<沒(méi)有接收動(dòng)作>輸入賬戶類(lèi)型輸入金額取卡取錢(qián)<沒(méi)有發(fā)送動(dòng)作>
四、實(shí)驗(yàn)體會(huì)
順序圖的重點(diǎn)是完成某個(gè)行為的對(duì)象類(lèi)之間所傳遞的消息的時(shí)間順序。一個(gè)順序圖事務(wù)對(duì)象角色,生命線,激活期和消息構(gòu)成。協(xié)作圖用于描述系統(tǒng)的行為是如何有系統(tǒng)的成分合作實(shí)現(xiàn)的。協(xié)作時(shí)一種靜態(tài)結(jié)構(gòu),是一個(gè)系統(tǒng)對(duì)實(shí)現(xiàn)某些服務(wù)所涉及的對(duì)象及其交互的投影。一個(gè)協(xié)同定義了一組對(duì)某些服務(wù)有意義的參加者和它們的聯(lián)系,這些參加者定義了交互中的對(duì)象所扮演的角色。