自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于UML的面向?qū)ο蠓治雠c設(shè)計(jì)方法

開發(fā) 架構(gòu)
面向?qū)ο笤O(shè)計(jì)是把分析價(jià)段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的,抽象的系統(tǒng)實(shí)現(xiàn)方案的過程.本文向您介紹基于UML的面向?qū)ο蠓治雠c設(shè)計(jì)方法。

面向?qū)ο蠓治?/STRONG>

面向?qū)ο蠓治龅哪康氖侵R(shí)客觀世界并進(jìn)行建模.

UML面向?qū)ο蠓治?src="https://s8.51cto.com/oss/202207/19/e2fd5f69554183aa33356472a18d09b96e1b46.jpg"

其實(shí)在面向?qū)ο蟮姆治鲞^程中也是對需求的分析和理解.

基于UML面向?qū)ο蠓治龅倪^程一般如下:

獲取問題陳述-->確定類-->準(zhǔn)備數(shù)據(jù)字典-->確定關(guān)聯(lián)-->使用繼承來細(xì)化類型-->完善對象模型-->建立對象動(dòng)態(tài)模型-->建系統(tǒng)功能模型

(1) 獲取問題陳述就是與用戶一起理解系統(tǒng),搞清楚系統(tǒng)的業(yè)務(wù)邏輯,發(fā)現(xiàn)用戶的需求,在這個(gè)時(shí)候我們應(yīng)該以一個(gè)用戶的身份去看待這些需求.很多設(shè)計(jì)人員在這個(gè)時(shí)候沒有做足功能,導(dǎo)致***系統(tǒng)的設(shè)計(jì)和維護(hù)異常困難,并開始抱怨起用戶的變態(tài)要求.在搞清楚系統(tǒng)的需求之后,我們不要馬上開始編碼,如果在這個(gè)時(shí)候你都已經(jīng)寫下了幾篇代碼了,那么恭喜你,以后夠你受的了.

(2)當(dāng)?shù)玫搅俗銐蚨嗟膯栴}并對其理解之后,我們就可以把問題中承現(xiàn)出來的物理實(shí)體和概念描述整理出來,暫時(shí)把這些標(biāo)志成一個(gè)類實(shí)體.然后清除冗余類和與系統(tǒng)不相干的類.最終得到我們的模型實(shí)體

(3)把第二步分析出來的類建立一個(gè)數(shù)據(jù)字典,這個(gè)數(shù)據(jù)字典很有可能會(huì)在我們的數(shù)據(jù)庫設(shè)計(jì)中起到很大的作用.

(4)通過第二步和第三步,我們已經(jīng)得到了系統(tǒng)中的實(shí)體信息,現(xiàn)在我們就要讓各個(gè)實(shí)體信息之間產(chǎn)生聯(lián)系.

比如在一個(gè)學(xué)生選課系統(tǒng)中. 學(xué)生被定義為一個(gè)實(shí)體,課程也被定義為一個(gè)實(shí)體,通過選課這個(gè)行為把兩個(gè)實(shí)體聯(lián)系起來.這個(gè)行為由學(xué)生來引發(fā).目標(biāo)為課程,產(chǎn)生的結(jié)果是學(xué)生是否成功的選了一門課程.通過這樣的分析,在以后的設(shè)計(jì)過程中我們可以很容易的設(shè)計(jì)出UML中學(xué)生類的方法.

  1. class Student{  
  2.  
  3.      public bool ChooseCurriculum(Curriculum curriculum){  
  4.  
  5.            //.  
  6.  
  7.      }  
  8.  
  9.      //.  
  10.  
  11. }  
  12.  
  13. class Curriculum{  
  14.  
  15.       //.  
  16.  

(5)使用繼承來細(xì)化類

使用繼承來共享公共屬性,以此來對類進(jìn)行組織,一般可以使用以下兩種方式來實(shí)現(xiàn).

自底向上:通過把現(xiàn)有類的共同性質(zhì)一般化為父類,尋找具有相似的屬性關(guān)系或操作的類來發(fā)現(xiàn)繼承.這些結(jié)果常常是基于客觀世界的現(xiàn)有分類,只有可能,應(yīng)盡量使用現(xiàn)有概念.

自頂向下:把現(xiàn)有的類細(xì)化為更具體的子類.

(6)完善對象模型

設(shè)計(jì)過程中不可能一次就能正確的設(shè)計(jì)出需要的,往往會(huì)在這過程中加深對需求的理解.往往需要重復(fù)前面的過程.

(7)建立對象動(dòng)態(tài)模型

跟據(jù)前面幾步的對象模型,接著就是建立對象的動(dòng)態(tài)模型

準(zhǔn)備腳本:動(dòng)態(tài)分析從尋找事件開始,然后確定各對象的可能事件順序.

確定事件:確定所有外部事件.

準(zhǔn)備事件跟蹤表:把腳本表示成一個(gè)事件跟蹤表,即不同對象之間的事件排序表,對象為表中的列,給每個(gè)對象分配一個(gè)獨(dú)立的列.

構(gòu)造狀態(tài)圖:對各對象類建立狀態(tài)圖,反映對象接收和發(fā)送的事件,每個(gè)事件跟蹤都對應(yīng)于狀態(tài)圖中的一條路徑.

(8)建立系統(tǒng)功能模型

功能模型是用來說明值是如何計(jì)算的,標(biāo)明值與值之間的依賴關(guān)系及相關(guān)的功能.數(shù)據(jù)流圖有助于表示功能依賴關(guān)系.一般建功能模型的步驟如下:

先列出輸入,輸出值,輸入,輸出值是系統(tǒng)與外界之間的事件的參數(shù).

建立數(shù)據(jù)流圖,數(shù)據(jù)流圖可說明輸出值是怎么從輸入值轉(zhuǎn)換的,數(shù)據(jù)流圖通常按層次組織.

面向?qū)ο笤O(shè)計(jì)

面向?qū)ο笤O(shè)計(jì)是把分析價(jià)段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的,抽象的系統(tǒng)實(shí)現(xiàn)方案的過程.

(1)面向?qū)ο蟮臏?zhǔn)則

模塊化:對象就是模塊,它把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起構(gòu)成模塊.

抽象:面向?qū)ο蠓椒ú粌H支持對過程進(jìn)行抽象,而具支持對數(shù)據(jù)進(jìn)行抽象.抽象方法的好壞以及抽象的層次都對系統(tǒng)設(shè)計(jì)有很大影響

信息隱藏:通過對象的封裝來實(shí)現(xiàn),對象暴露接口的多少以及接口的好壞對系統(tǒng)設(shè)計(jì)有很大影響

低耦合:低耦合是設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn),有助于使系統(tǒng)中某一部分的變化對其他部分的影響降到***.

高內(nèi)聚:內(nèi)聚度高的模塊很容易理解,很容易被復(fù)用,擴(kuò)展和維護(hù).

(2)面向?qū)ο蟮膶?shí)用規(guī)則

◆設(shè)計(jì)的結(jié)果應(yīng)該清晰易懂.

◆一般到具體結(jié)構(gòu)的深度應(yīng)適當(dāng).

◆盡量設(shè)計(jì)小而簡單的類.

◆把設(shè)計(jì)變動(dòng)減至最小.

(3)系統(tǒng)設(shè)計(jì)

系統(tǒng)設(shè)計(jì)是問題求解及建立解答的高級策略,必須制定解決問題的基本方法.系統(tǒng)設(shè)計(jì)一般是先從高層入手,然后細(xì)化.系統(tǒng)設(shè)計(jì)要決定整個(gè)結(jié)構(gòu)及風(fēng)格,這種結(jié)構(gòu)為后面設(shè)計(jì)階段的策略提供基礎(chǔ).

 

【編輯推薦】

  1. UML面向?qū)ο笾R(shí)入門
  2. UML精華知識(shí)學(xué)習(xí)筆記
  3. UML在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用
  4. 用UML建模需要注意的問題
  5. 基于UML的軟件設(shè)計(jì)全過程
  6. 正確認(rèn)識(shí)使用UML中的類圖
責(zé)任編輯:佚名 來源: cnblogs
相關(guān)推薦

2010-06-17 17:57:10

UML面向?qū)ο蠓治雠c設(shè)

2010-06-18 11:28:14

2010-07-08 13:35:39

UML面向?qū)ο?/a>

2022-08-26 08:35:59

對象設(shè)計(jì)底層

2010-06-17 09:22:48

UML面向?qū)ο蠓治雠c建

2010-07-08 10:47:42

UML面向?qū)ο?/a>

2010-07-06 17:21:08

UML面向?qū)ο?/a>

2011-07-12 17:53:21

PHP

2010-06-13 17:56:49

UML面向?qū)ο?/a>

2010-07-09 09:51:26

UML面向?qū)ο?/a>

2010-06-10 10:03:42

UML面向?qū)ο?/a>

2010-06-18 10:34:05

UML面向?qū)ο?/a>

2010-06-17 11:27:11

UML構(gòu)件

2010-06-18 11:16:52

UML面向?qū)ο?/a>

2023-03-10 07:43:50

UML圖OOA面向?qū)ο?/a>

2020-10-10 11:03:24

面向?qū)ο?/a>編程語言開發(fā)

2010-06-13 10:01:48

面向?qū)ο蠹夹g(shù)與UML

2010-06-17 11:12:53

UML構(gòu)件

2013-03-14 11:17:46

2009-06-26 13:29:11

面向?qū)ο?/a>
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號