日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
.NET企業(yè)級(jí)架構(gòu)解決方案:什么是UML

引言

設(shè)計(jì)一個(gè)系統(tǒng),任何科學(xué)領(lǐng)域的系統(tǒng),你首先需要做的是對(duì)它進(jìn)行抽象。抽象模型為系統(tǒng)的視圖、結(jié)構(gòu)、行為、參與實(shí)體和流程方面具體的實(shí)現(xiàn)提供一個(gè)代理。在系統(tǒng)的參與人員(包括:開(kāi)發(fā)者,架構(gòu)師,所有者,用戶)之間應(yīng)該共享一個(gè)模型。為了能夠提出反饋,提出錯(cuò)誤的假設(shè),改進(jìn)建議,模型應(yīng)該能夠被系統(tǒng)的參與者所理解。盡管共享了一個(gè)模型,你還是需要用一種通用的,被廣泛接受的的形式和符號(hào)來(lái)表達(dá)模型。例如:模型語(yǔ)言。

顯然,建模語(yǔ)言是基于一系列規(guī)則、符號(hào)、圖表和關(guān)鍵字的圖形或者文字語(yǔ)言。語(yǔ)言的元素用來(lái)表達(dá)模型的結(jié)構(gòu)和行為,給任何熟悉語(yǔ)言的人傳達(dá)清晰的認(rèn)識(shí)和信息。

有很多著名的建模語(yǔ)言例子,最流行的一個(gè)就是UML(Unified Modeling Language 統(tǒng)一建模語(yǔ)言)。UML是一種通用的圖形建模語(yǔ)言,在過(guò)去的很多年,已經(jīng)變成了工業(yè)的標(biāo)準(zhǔn)。UML特別適合于建立面向?qū)ο蟮南到y(tǒng)。

正文

1、簡(jiǎn)介

建模在任何軟件項(xiàng)目中都是一個(gè)關(guān)鍵的階段,對(duì)于大型的、企業(yè)級(jí)的應(yīng)用更是至關(guān)重要。

在復(fù)雜的情況下,模型是一個(gè)本質(zhì)。它可以幫助檢查詳細(xì)設(shè)計(jì)的正確性和遵守程度,使得軟件可以更加容易的構(gòu)建和維護(hù)。一個(gè)清晰的、良好的模型同樣可以在任何時(shí)候幫助開(kāi)發(fā)者找到斷點(diǎn)的正確位置,并且修復(fù)bug。在軟件中,模型應(yīng)該和站點(diǎn)地圖、藍(lán)圖同樣重要,它是必須的,而不是一個(gè)可選的工具。

2、UML的優(yōu)缺點(diǎn)

在現(xiàn)實(shí)世界,沒(méi)有東西比公認(rèn)的標(biāo)準(zhǔn)更加吸引公眾的批評(píng)。令每一個(gè)人都滿意確實(shí)很難。UML也不例外。盡管到目前為止它是使用最廣的建模語(yǔ)言,但是從根本上來(lái)說(shuō)它是一個(gè)臃腫的語(yǔ)言。毫無(wú)疑問(wèn),1.0需要改進(jìn),2.0有了提高。但是一些人還是認(rèn)為2.0還是很臃腫和復(fù)雜,還是很難學(xué)習(xí)。

3、在實(shí)踐中使用UML

該要的說(shuō),使用UML你需要一個(gè)方法來(lái)收集和分析需求,然后用建模工具轉(zhuǎn)換為模型。通常,建模工具有自己的方法,你只需要找到最適合自己的工具就可以了。類(lèi)似的工具有很多,包括:微軟的Viso,IBM的Rational Rose,Sparx Systems的EA。

4、UML中的圖形

UML2.0包括13中不同的圖形,分為兩組:行為和結(jié)構(gòu)。結(jié)構(gòu)圖定義類(lèi),屬性,操作和關(guān)系。行為圖顯示系統(tǒng)中對(duì)象的協(xié)作關(guān)系。

目的
活動(dòng)圖Activity 行為 顯示一個(gè)活動(dòng)中的操作流程
類(lèi)圖Class 結(jié)構(gòu) 顯示類(lèi)、接口、及他們的關(guān)系
Communication 行為 顯示對(duì)象之間的交互
Component 結(jié)構(gòu) 顯示組件和他們之間的依賴(lài)關(guān)系
Composite Structure 結(jié)構(gòu) 顯示類(lèi)的內(nèi)部結(jié)構(gòu)
Deployment 結(jié)構(gòu) 顯示組件如何映射到硬件資源
Interaction Overview 行為 顯示順序和活動(dòng)
Object 結(jié)構(gòu) 顯示系統(tǒng)在特定時(shí)間的狀態(tài)
Package 結(jié)構(gòu) 顯示類(lèi)如何分布在邏輯的相關(guān)組中
序列Sequence 行為 顯示對(duì)象之間的交互
State machine 行為 顯示在事件發(fā)生之后,對(duì)象的狀態(tài)如何變化
Timing 行為 顯示在特定時(shí)期中,對(duì)象的行為

Use Case

行為 顯示參與者在系統(tǒng)中進(jìn)行放入操作

UML圖之間的等級(jí)關(guān)系

4.1用例圖Use Case

用例圖提供了一個(gè)圖形化的用例描述。一個(gè)用例圖代表一個(gè)或者多個(gè)參與者和系統(tǒng)之間的相互作用。用例圖顯示了參與者要做的事情。一個(gè)參與者可以是一個(gè)人,也可以是和系統(tǒng)進(jìn)行交互的任何外部系統(tǒng)。參與者不受系統(tǒng)控制,參與者是在系統(tǒng)之外定義的。

用例圖主要包括:系統(tǒng),參與者,用例,關(guān)系。

上圖就是一個(gè)用例圖,有兩個(gè)參與者和兩個(gè)用例。兩個(gè)參與者分別得用戶和數(shù)據(jù)庫(kù),兩個(gè)用例分別是獲取訂單,獲取商品的詳細(xì)信息。

4.2類(lèi)圖

類(lèi)圖在UML使用較為廣泛。類(lèi)圖代表系統(tǒng)的靜態(tài)結(jié)構(gòu)。系統(tǒng)的靜態(tài)結(jié)構(gòu)由類(lèi)和他們之間的關(guān)系組成。

類(lèi)圖包括屬性,操作,和關(guān)系。關(guān)系則包括我們常說(shuō)的1:1,1:n,0:1,0:n,n:n等

上圖是一張類(lèi)圖,有三個(gè)類(lèi):Customer用戶,Order訂單,OrderDetail訂單明細(xì)。

Customer上面有三個(gè)屬性:CustomerID,CustomerName,Address。CustomerID是public,前面的符號(hào)是+;CustomerName是protected,前面的符號(hào)是#;Address是private,前面的符號(hào)是-。

連接類(lèi)之間的線代表他們之間的關(guān)系,也就是我們常說(shuō)的1:1,1:n,0:1,0:n,n:n,0:n其中之一,關(guān)系還區(qū)分從哪個(gè)類(lèi)的角度來(lái)看。圖中的Customer和Order的關(guān)系,從Customer角度來(lái)看,一個(gè)Customer可以沒(méi)有Order,也可以由多個(gè)Order,所以他們之間就是0:n的關(guān)系;從Order角度看,一個(gè)Order肯定屬于一個(gè)Customer,所以他們之間就是1:1的關(guān)系。

一個(gè)Order肯定有一個(gè)以上的Detail,一個(gè)Detai肯定屬于一個(gè)Order。

上面的類(lèi)圖是在PowerDesigner中畫(huà)的,下面是自動(dòng)生成的c#代碼,當(dāng)然了,肯定是需要調(diào)整的。

 
 
 
 
  1. // File:    Customer.cs
  2. // Author:  zy
  3. // Created: 2010年8月6日 6:40:04
  4. // Purpose: Definition of Class Customer
  5. using System;
  6. public class Customer
  7. {
  8.    private string address; 
  9.    protected string customerName; 
  10.    public Customer GetCustomerByID()
  11.    {
  12.       throw new NotImplementedException();
  13.    }  
  14.    public int GetCustomerOrders()
  15.    {
  16.       throw new NotImplementedException();
  17.    }
  18.    public int customerID;  
  19.    public System.Collections.Generic.List order;  
  20.    /// 
  21.    /// Property for collection of Order
  22.    /// 
  23. /// Default opposite class collection property
  24.    public System.Collections.Generic.List Order
  25.    {
  26.       get
  27.       {
  28.          if (order == null)
  29.             order = new System.Collections.Generic.List();
  30.          return order;
  31.       }
  32.       set
  33.       {
  34.          RemoveAllOrder();
  35.          if (value != null)
  36.          {
  37.             foreach (Order oOrder in value)
  38.                AddOrder(oOrder);
  39.          }
  40.       }
  41.    }
  42.    
  43.    /// 
  44.    /// Add a new Order in the collection
  45.    /// 
  46.    /// Default Add
  47.    public void AddOrder(Order newOrder)
  48.    {
  49.       if (newOrder == null)
  50.          return;
  51.       if (this.order == null)
  52.          this.order = new System.Collections.Generic.List();
  53.       if (!this.order.Contains(newOrder))
  54.          this.order.Add(newOrder);
  55.    }
  56.    
  57.    /// 
  58.    /// Remove an existing Order from the collection
  59.    /// 
  60.    /// Default Remove
  61.    public void RemoveOrder(Order oldOrder)
  62.    {
  63.       if (oldOrder == null)
  64.          return;
  65.       if (this.order != null)
  66.          if (this.order.Contains(oldOrder))
  67.             this.order.Remove(oldOrder);
  68.    }
  69.    
  70.    /// 
  71.    /// Remove all instances of Order from the collection
  72.    /// 
  73.    /// Default removeAll
  74.    public void RemoveAllOrder()
  75.    {
  76.       if (order != null)
  77.          order.Clear();
  78.    }
  79. }

UML是一種標(biāo)準(zhǔn)的對(duì)象建模語(yǔ)言。它獨(dú)立于任何編程語(yǔ)言。這是一個(gè)關(guān)鍵的特性,既是一個(gè)優(yōu)點(diǎn),也是一個(gè)缺點(diǎn)。說(shuō)它是一個(gè)優(yōu)點(diǎn),是因?yàn)樗沟迷谑褂肬ML進(jìn)行建模以及表達(dá)業(yè)務(wù)流程的時(shí)候,變成一個(gè)非常強(qiáng)大的工具。同時(shí)可以用它產(chǎn)生一個(gè)通用的模型。缺點(diǎn)就是因?yàn)閮?yōu)點(diǎn)產(chǎn)生的,獨(dú)立性越強(qiáng),也就越是遠(yuǎn)離了系統(tǒng)運(yùn)行的代碼。

鏈接:http://www.cnblogs.com/virusswb/archive/2010/08/06/architecture-microsoft-net-solution-2.html


網(wǎng)站標(biāo)題:.NET企業(yè)級(jí)架構(gòu)解決方案:什么是UML
標(biāo)題URL:http://m.5511xx.com/article/cdsheod.html