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

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

新聞中心

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

引言

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

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

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

正文

1、簡介

建模在任何軟件項目中都是一個關鍵的階段,對于大型的、企業(yè)級的應用更是至關重要。

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

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

在現(xiàn)實世界,沒有東西比公認的標準更加吸引公眾的批評。令每一個人都滿意確實很難。UML也不例外。盡管到目前為止它是使用最廣的建模語言,但是從根本上來說它是一個臃腫的語言。毫無疑問,1.0需要改進,2.0有了提高。但是一些人還是認為2.0還是很臃腫和復雜,還是很難學習。

3、在實踐中使用UML

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

4、UML中的圖形

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

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

Use Case

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

UML圖之間的等級關系

4.1用例圖Use Case

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

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

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

4.2類圖

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

類圖包括屬性,操作,和關系。關系則包括我們常說的1:1,1:n,0:1,0:n,n:n等

上圖是一張類圖,有三個類:Customer用戶,Order訂單,OrderDetail訂單明細。

Customer上面有三個屬性:CustomerID,CustomerName,Address。CustomerID是public,前面的符號是+;CustomerName是protected,前面的符號是#;Address是private,前面的符號是-。

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

一個Order肯定有一個以上的Detail,一個Detai肯定屬于一個Order。

上面的類圖是在PowerDesigner中畫的,下面是自動生成的c#代碼,當然了,肯定是需要調(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是一種標準的對象建模語言。它獨立于任何編程語言。這是一個關鍵的特性,既是一個優(yōu)點,也是一個缺點。說它是一個優(yōu)點,是因為它使得在使用UML進行建模以及表達業(yè)務流程的時候,變成一個非常強大的工具。同時可以用它產(chǎn)生一個通用的模型。缺點就是因為優(yōu)點產(chǎn)生的,獨立性越強,也就越是遠離了系統(tǒng)運行的代碼。

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


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