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