久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[轉(zhuǎn)]用EA 建模設(shè)計(jì)Blog全過(guò)程

 昵稱(chēng)4253149 2010-10-29

[轉(zhuǎn)]用EA 建模設(shè)計(jì)Blog全過(guò)程

EA AND  ROSE:
UML實(shí)踐----用例圖、順序圖,、狀態(tài)圖,、類(lèi)圖、包圖,、協(xié)作圖

           面向?qū)ο蟮膯?wèn)題的處理的關(guān)鍵是建模問(wèn)題,。建模可以把在復(fù)雜世界的許多重要的細(xì)節(jié)給抽象出,。許多建模工具封UML(也就是Unified Modeling Language),,這篇課程的目的是展示出UML的精彩之處。

UML中有九種建模的圖標(biāo),,即:

  • 用例圖
  • 類(lèi)圖
  • 對(duì)象圖
  • 順序圖
  • 協(xié)作圖
  • 狀態(tài)圖
  • 活動(dòng)圖
  • 組件圖
  • 配置圖

為什么UML很重要,?

為了回答這個(gè)問(wèn)題,我們看看建筑行業(yè),。設(shè)計(jì)師設(shè)計(jì)出房子,。施工人員使用這個(gè)設(shè)計(jì)來(lái)建造房子。建筑越復(fù)雜,,設(shè)計(jì)師和施工人員之間的交流就越重要,。藍(lán)圖就成為了這個(gè)行業(yè)中的設(shè)計(jì)師和施工人員的必修課。

寫(xiě)軟件就好像建造建筑物一樣,。系統(tǒng)越復(fù)雜,,參與編寫(xiě)與配置軟件的人員之間的交流也就越重要。在過(guò)去十年里UML就成為分析師,設(shè)計(jì)師和程序員之間的“建筑藍(lán)圖”?,F(xiàn)在它已經(jīng)成為了軟件行業(yè)的一部分了,。UML提供了分析師,設(shè)計(jì)師和程序員之間在軟件設(shè)計(jì)時(shí)的通用語(yǔ)言,。

UML被應(yīng)用到面向?qū)ο蟮膯?wèn)題的解決上,。想要學(xué)習(xí)UML必須熟悉面向?qū)ο蠼鉀Q問(wèn)題的根本原則――都是從模型的建造開(kāi)始的。一個(gè)模型model就是根本問(wèn)題的抽象,。域domain就是問(wèn)題所處的真實(shí)世界,。

模型是由對(duì)象objects組成的,它們之間通過(guò)相互發(fā)送消息messages來(lái)相互作用的,。記住把一個(gè)對(duì)象想象成“活著的”,。對(duì)象有他們知道的事(屬性attributes)和他們可以做的事(行為或操作behaviors or operations)。對(duì)象的屬性的值決定了它的狀態(tài)state,。

類(lèi)Classes是對(duì)象的“藍(lán)圖”,。一個(gè)類(lèi)在一個(gè)單獨(dú)的實(shí)體中封裝了屬性(數(shù)據(jù))和行為(方法或函數(shù))。對(duì)象是類(lèi)的實(shí)例instances,。

用例圖

用例圖Use case diagrams描述了作為一個(gè)外部的觀察者的視角對(duì)系統(tǒng)的印象,。強(qiáng)調(diào)這個(gè)系統(tǒng)是什么而不是這個(gè)系統(tǒng)怎么工作。

用例圖與情節(jié)緊緊相關(guān)的,。情節(jié)scenario是指當(dāng)某個(gè)人與系統(tǒng)進(jìn)行互動(dòng)時(shí)發(fā)生的情況,。下面是一個(gè)醫(yī)院門(mén)診部的情節(jié)。

“一個(gè)病人打電話(huà)給門(mén)診部預(yù)約一年一次的身體檢查,。接待員找出在預(yù)約記錄本上找出最近的沒(méi)有預(yù)約過(guò)的時(shí)間,,并記上那個(gè)時(shí)間的預(yù)約記錄。”

用例Use case是為了完成一個(gè)工作或者達(dá)到一個(gè)目的的一系列情節(jié)的總和,。角色actor是發(fā)動(dòng)與這個(gè)工作有關(guān)的事件的人或者事情,。角色簡(jiǎn)單的扮演著人或者對(duì)象的作用。下面的圖是一個(gè)門(mén)診部Make Appointment用例,。角色是病人,。角色與用例的聯(lián)系是通訊聯(lián)系communication association(或簡(jiǎn)稱(chēng)通訊communication)

Use case

角色是人狀的圖標(biāo),用例是一個(gè)橢圓,,通訊是連接角色和用例的線,。

一個(gè)用例圖是角色,用例,,和它們之間的聯(lián)系的集合,。我們已經(jīng)把Make Appointment作為一個(gè)含有四個(gè)角色和四個(gè)用例的圖的一部分。注意一個(gè)單獨(dú)的用例可以有多個(gè)角色,。

Use case diagram

用例圖在三個(gè)領(lǐng)域很有作用,。

  • 決定特征(需求),。當(dāng)系統(tǒng)已經(jīng)分析好并且設(shè)計(jì)成型時(shí),新的用例產(chǎn)生新的需求
  • 客戶(hù)通訊,。使用用例圖很容易表示開(kāi)發(fā)者與客戶(hù)之間的聯(lián)系,。
  • 產(chǎn)生測(cè)試用例。一個(gè)用例的情節(jié)可能產(chǎn)生這些情節(jié)的一批測(cè)試用例,。

類(lèi)圖

類(lèi)圖Class diagram通過(guò)顯示出系統(tǒng)的類(lèi)以及這些類(lèi)之間的關(guān)系來(lái)表示系統(tǒng),。類(lèi)圖是靜態(tài)的-它們顯示出什么可以產(chǎn)生影響但不會(huì)告訴你什么時(shí)候產(chǎn)生影響。

下面是一個(gè)顧客從零售商處預(yù)定商品的模型的類(lèi)圖,。中心的類(lèi)是Order,。連接它的是購(gòu)買(mǎi)貨物的Customer和Payment。Payment有三種形式:Cash,,Check,,或者Credit。訂單包括OrderDetails(line item),,每個(gè)這種類(lèi)都連著Item,。

Class diagram

UML類(lèi)的符號(hào)是一個(gè)被劃分成三塊的方框:類(lèi)名,屬性,,和操作。抽象類(lèi)的名字,,像Payment是斜體的,。類(lèi)之間的關(guān)系是連接線。

類(lèi)圖有三種關(guān)系,。

  • 關(guān)聯(lián)association-表示兩種類(lèi)的實(shí)例間的關(guān)系,。如果一個(gè)類(lèi)的實(shí)例必須要用另一個(gè)類(lèi)的實(shí)例才能完成工作時(shí)就要用關(guān)聯(lián)。在圖中,,關(guān)聯(lián)用兩個(gè)類(lèi)之間的連線表示,。
  • 聚合aggregation-當(dāng)一個(gè)類(lèi)屬于一個(gè)容器是的一種特殊關(guān)系。聚合用一個(gè)帶菱形的連線,,菱形指向具有整體性質(zhì)的類(lèi),。在我們的圖里,Order是OrderDetails的容器,。
  • 泛化generalization-一個(gè)指向以其他類(lèi)作為超類(lèi)的繼承連線,。泛化關(guān)系用一個(gè)三角形指向超類(lèi)。Payment是Cash,,Check和Credit的超類(lèi),。

一個(gè)關(guān)聯(lián)有兩個(gè)尾端。每個(gè)尾端可以有一個(gè)角色名role name來(lái)說(shuō)明關(guān)聯(lián)的作用,。比如,,一個(gè)OrderDetail實(shí)例是一個(gè)Order實(shí)例的項(xiàng)目,。

關(guān)聯(lián)上的方向性navigability箭頭表示該關(guān)聯(lián)傳遞或查詢(xún)的方向。OrderDetail類(lèi)可以查詢(xún)他的Item,,但不可以反過(guò)來(lái)查詢(xún),。箭頭方向同樣可以告訴你哪個(gè)類(lèi)擁有這個(gè)關(guān)聯(lián)的實(shí)現(xiàn);也就是,,OrderDetail擁有Item,。沒(méi)有方向性的箭頭的關(guān)聯(lián)是雙向。

關(guān)聯(lián)尾端的數(shù)字表示該關(guān)聯(lián)另一邊的一個(gè)實(shí)例可以對(duì)應(yīng)的數(shù)字端的實(shí)例的格數(shù),,通過(guò)這種方式表達(dá)關(guān)聯(lián)的多樣性multiplicity,。多樣性的數(shù)字可以是一個(gè)單獨(dú)的數(shù)字或者是一個(gè)數(shù)字的范圍。在例子中,,每個(gè)Order只有一個(gè)Customer,,但一個(gè)Customer可以有任意多個(gè)Order。

下面這個(gè)表給出了最普遍的多樣性示例,。

多樣性 意義
0..1 0或1個(gè)實(shí)例. n..m符號(hào)表示有n到m個(gè)實(shí)例
0..*  or  * 沒(méi)有實(shí)例格數(shù)的限制(包括沒(méi)有).
1 只有一個(gè)實(shí)例
1..* 最少一個(gè)實(shí)例

每個(gè)類(lèi)圖包括類(lèi),,關(guān)聯(lián)和多樣性表示。方向性和角色是為了使圖示得更清楚時(shí)可選的項(xiàng)目,。

包和對(duì)象圖

為了簡(jiǎn)單地表示出復(fù)雜的類(lèi)圖,,可以把類(lèi)組合成包packages。一個(gè)包是UML上有邏輯關(guān)系的元件的集合,。下面這個(gè)圖是是一個(gè)把類(lèi)組合成包的一個(gè)商業(yè)模型,。

dependencies關(guān)系。如果另一個(gè)的包B改變可能會(huì)導(dǎo)致一個(gè)包A改變,,則包A依賴(lài)包B,。

Package diagram

包是用一個(gè)在上方帶有小標(biāo)簽的矩形表示的。包名寫(xiě)在標(biāo)簽上或者在矩形里面,。點(diǎn)化線箭頭表示依賴(lài)

對(duì)象圖Object diagrams用來(lái)表示類(lèi)的實(shí)例,。他們?cè)诮忉審?fù)雜關(guān)系的細(xì)小問(wèn)題時(shí)(特別是遞歸關(guān)系時(shí))很有用。

這個(gè)類(lèi)圖示一個(gè)大學(xué)的Department可以包括其他很多的Departments,。

Recursive class diagram

這個(gè)對(duì)象圖示上面類(lèi)圖的實(shí)例,。用了很多具體的例子。

UML中實(shí)例名帶有下劃線,。只要意思清楚,,類(lèi)或?qū)嵗梢栽趯?duì)象圖中被省略。

Object diagram

每個(gè)類(lèi)圖的矩形對(duì)應(yīng)了一個(gè)單獨(dú)的實(shí)例,。實(shí)例名稱(chēng)中所強(qiáng)調(diào)的UML圖表,。類(lèi)或?qū)嵗拿Q(chēng)可能是省略對(duì)象圖表只要圖的意義仍然是明確的。

順序圖

類(lèi)圖和對(duì)象圖是靜態(tài)模型的視圖,。交互圖是動(dòng)態(tài)的,。他們描述了對(duì)象間的交互作用,。

順序圖將交互關(guān)系表示為一個(gè)二維圖??v向是時(shí)間軸,,時(shí)間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨(dú)立對(duì)象的類(lèi)元角色,。類(lèi)元角色用生命線表示,。當(dāng)對(duì)象存在時(shí),角色用一條虛線表示,,當(dāng)對(duì)象的過(guò)程處于激活狀態(tài)時(shí),,生命線是一個(gè)雙道線。

消息用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象生命線的箭頭表示,。箭頭以時(shí)間順序在圖中從上到下排列,。

 

Sequence diagram

協(xié)作圖

協(xié)作圖也是互動(dòng)的圖表。他們像序列圖一樣也傳遞相同的信息,,但他們不關(guān)心什么時(shí)候消息被傳遞,,只關(guān)心對(duì)象的角色。在序列圖中,,對(duì)象的角色放在上面而消息則是連接線,。

Collaboration diagram

對(duì)象角色矩形上標(biāo)有類(lèi)或?qū)ο竺ɑ蛘叨加校n?lèi)名前面有個(gè)冒號(hào)(:),。

協(xié)作圖的每個(gè)消息都有一個(gè)序列號(hào),。頂層消息的數(shù)字是1。同一個(gè)等級(jí)的消息(也就是同一個(gè)調(diào)用中的消息)有同樣的數(shù)字前綴,,再根據(jù)他們出現(xiàn)的順序增加一個(gè)后綴1,,2等等,。

狀態(tài)圖

對(duì)象擁有行為和狀態(tài),。對(duì)象的狀態(tài)是由對(duì)象當(dāng)前的行動(dòng)和條件決定的。狀態(tài)圖statechart diagram顯示出了對(duì)象可能的狀態(tài)以及由狀態(tài)改變而導(dǎo)致的轉(zhuǎn)移,。
我們的模型例圖建立了一個(gè)銀行的在線登錄系統(tǒng),。登錄過(guò)程包括輸入合法的密碼和個(gè)人賬號(hào),再提交給系統(tǒng)驗(yàn)證信息,。

登錄系統(tǒng)可以被劃分為四種不重疊的狀態(tài):Getting SSN, Getting PIN, Validating, 以及 Rejecting,。每個(gè)狀態(tài)都有一套完整的轉(zhuǎn)移transitions來(lái)決定狀態(tài)的順序。

State diagram

狀態(tài)是用圓角矩形來(lái)表示的,。轉(zhuǎn)移則是使用帶箭頭的連線表示,。觸發(fā)轉(zhuǎn)移的事件或者條件寫(xiě)在箭頭的旁邊。我們的圖上有兩個(gè)自轉(zhuǎn)移,。一個(gè)是在Getting SSN,,另一個(gè)則在上Getting PIN,。

初始狀態(tài)(黑色圓圈)是開(kāi)始動(dòng)作的虛擬開(kāi)始。結(jié)束狀態(tài)也是動(dòng)作的虛擬結(jié)束,。

事件或條件觸發(fā)動(dòng)作時(shí)用(/動(dòng)作)表示,。當(dāng)進(jìn)入Validating狀態(tài)時(shí),對(duì)象并不等外部事件觸發(fā)轉(zhuǎn)移,。取而代之,,它產(chǎn)生一個(gè)動(dòng)作。動(dòng)作的結(jié)果決定了下一步的狀態(tài),。

活動(dòng)圖

活動(dòng)圖activity diagram是一個(gè)很特別的流程圖,。活動(dòng)圖和狀態(tài)圖之間是有關(guān)系的,。狀態(tài)圖把焦點(diǎn)集中在過(guò)程中的對(duì)象身上,,而活動(dòng)圖則集中在一個(gè)單獨(dú)過(guò)程動(dòng)作流程?;顒?dòng)圖告訴了我們活動(dòng)之間的依賴(lài)關(guān)系,。

對(duì)我們的例子來(lái)說(shuō),我們使用如下的過(guò)程,。

“通過(guò)ATM來(lái)取錢(qián),。”

這個(gè)活動(dòng)有三個(gè)類(lèi)Customer, ATM和 Bank。整個(gè)過(guò)程從黑色圓圈開(kāi)始到黑白的同心圓結(jié)束,?;顒?dòng)用圓角矩形表示。

Activity diagram

活動(dòng)圖可以被分解成許多對(duì)象泳道swimlanes ,,可以決定哪些對(duì)象負(fù)責(zé)那些活動(dòng),。每個(gè)活動(dòng)都有一個(gè)單獨(dú)的轉(zhuǎn)移transition連接這其他的活動(dòng)。

轉(zhuǎn)移可能分支branch成兩個(gè)以上的互斥的轉(zhuǎn)移,。保護(hù)表達(dá)式(在[]中)表示轉(zhuǎn)移是從一個(gè)分支中引出的,。分支以及分支結(jié)束時(shí)的合并merge在圖中用菱形表示。

轉(zhuǎn)移也可以分解fork成兩個(gè)以上的并行活動(dòng),。分解以及分解結(jié)束時(shí)的線程結(jié)合join在圖中用粗黑線表示

組件與配置圖

組件component是代碼模塊,。組件圖是是類(lèi)圖的物理實(shí)現(xiàn)。

配置圖Deployment diagrams則是顯示軟件及硬件的配置,。

下面的配置圖說(shuō)明了與房地產(chǎn)事務(wù)有關(guān)的軟件及硬件組件的關(guān)系,。

Deployment diagram

物理上的硬件使用節(jié)點(diǎn)nodes表示。每個(gè)組件屬于一個(gè)節(jié)點(diǎn),。組件用左上角帶有兩個(gè)小矩形的矩形表示,。

 

轉(zhuǎn):http://www.cnblogs.com/catti/archive/2009/04/21/1440494.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多