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

.NET企業(yè)級架構(gòu)解決方案:什么是UML

開發(fā) 后端
本文將介紹的是.NET企業(yè)級架構(gòu)方面的解決方案,這也是關(guān)于企業(yè)級架構(gòu)的一系列文章的第二篇,主要講什么是UML。

引言

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

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

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

正文

1、簡介

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

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

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

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

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

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

4、UML中的圖形

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

 

目的
活動(dòng)圖Activity 行為 顯示一個(gè)活動(dòng)中的操作流程
類圖Class 結(jié)構(gòu) 顯示類、接口、及他們的關(guān)系
Communication 行為 顯示對象之間的交互
Component 結(jié)構(gòu) 顯示組件和他們之間的依賴關(guān)系
Composite Structure 結(jié)構(gòu) 顯示類的內(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) 顯示類如何分布在邏輯的相關(guān)組中
序列Sequence 行為 顯示對象之間的交互
State machine 行為 顯示在事件發(fā)生之后,對象的狀態(tài)如何變化
Timing 行為 顯示在特定時(shí)期中,對象的行為

Use Case

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

 

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

UML圖之間的等級關(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ù)庫,兩個(gè)用例分別是獲取訂單,獲取商品的詳細(xì)信息。

4.2類圖

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

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

類圖

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

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

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

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

上面的類圖是在PowerDesigner中畫的,下面是自動(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.  
  6. using System;  
  7. public class Customer  
  8. {  
  9.    private string address;   
  10.    protected string customerName;   
  11.    public Customer GetCustomerByID()  
  12.    {  
  13.       throw new NotImplementedException();  
  14.    }    
  15.    public int GetCustomerOrders()  
  16.    {  
  17.       throw new NotImplementedException();  
  18.    }  
  19.    public int customerID;    
  20.    public System.Collections.Generic.List<Order> order;    
  21.    /// <summary>  
  22.    /// Property for collection of Order  
  23.    /// </summary>  
  24. /// <pdGenerated>Default opposite class collection property</pdGenerated>  
  25.    public System.Collections.Generic.List<Order> Order  
  26.    {  
  27.       get 
  28.       {  
  29.          if (order == null)  
  30.             order = new System.Collections.Generic.List<Order>();  
  31.          return order;  
  32.       }  
  33.       set 
  34.       {  
  35.          RemoveAllOrder();  
  36.          if (value != null)  
  37.          {  
  38.             foreach (Order oOrder in value)  
  39.                AddOrder(oOrder);  
  40.          }  
  41.       }  
  42.    }  
  43.      
  44.    /// <summary>  
  45.    /// Add a new Order in the collection  
  46.    /// </summary>  
  47.    /// <pdGenerated>Default Add</pdGenerated>  
  48.    public void AddOrder(Order newOrder)  
  49.    {  
  50.       if (newOrder == null)  
  51.          return;  
  52.       if (this.order == null)  
  53.          this.order = new System.Collections.Generic.List<Order>();  
  54.       if (!this.order.Contains(newOrder))  
  55.          this.order.Add(newOrder);  
  56.    }  
  57.      
  58.    /// <summary>  
  59.    /// Remove an existing Order from the collection  
  60.    /// </summary>  
  61.    /// <pdGenerated>Default Remove</pdGenerated>  
  62.    public void RemoveOrder(Order oldOrder)  
  63.    {  
  64.       if (oldOrder == null)  
  65.          return;  
  66.       if (this.order != null)  
  67.          if (this.order.Contains(oldOrder))  
  68.             this.order.Remove(oldOrder);  
  69.    }  
  70.      
  71.    /// <summary>  
  72.    /// Remove all instances of Order from the collection  
  73.    /// </summary>  
  74.    /// <pdGenerated>Default removeAll</pdGenerated>  
  75.    public void RemoveAllOrder()  
  76.    {  
  77.       if (order != null)  
  78.          order.Clear();  
  79.    }  

UML是一種標(biāo)準(zhǔn)的對象建模語言。它獨(dú)立于任何編程語言。這是一個(gè)關(guān)鍵的特性,既是一個(gè)優(yōu)點(diǎn),也是一個(gè)缺點(diǎn)。說它是一個(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)行的代碼。

原文標(biāo)題:用微軟.NET架構(gòu)企業(yè)解決方案 學(xué)習(xí)筆記(二)UML概要

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

【編輯推薦】

  1. 架構(gòu)師要努力成為內(nèi)功深厚的高手
  2. 架構(gòu)師:每天要在魚和熊掌之間做選擇
  3. 優(yōu)美的系統(tǒng)與架構(gòu)師的藝術(shù)氣質(zhì)
  4. 架構(gòu)師修煉課程:透過問題看本質(zhì)
  5. 女性架構(gòu)師優(yōu)先?駕馭概念的技能是最高潛力

 

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-08-20 14:48:37

.NET企業(yè)級架構(gòu)

2010-08-09 09:03:17

.NET企業(yè)級架構(gòu)

2009-07-17 09:17:41

IT運(yùn)維SiteView游龍科技

2009-04-22 08:44:36

2016-03-25 17:20:26

戴爾

2013-03-11 10:54:05

2012-06-12 09:56:33

虛擬化

2015-08-04 17:31:46

戴爾云計(jì)算anycloud

2011-12-06 14:44:02

iPad企業(yè)級解決方案

2012-09-22 15:13:31

2013-08-28 09:24:09

企業(yè)級移動(dòng)信息化解決方案

2010-03-30 14:45:26

戴爾解決方案創(chuàng)新中心上海

2011-10-14 10:50:02

2015-06-24 16:38:24

2012-05-03 18:06:52

SGI

2010-02-06 13:56:34

以太網(wǎng)交換機(jī)

2009-11-23 20:16:25

ibmdwRational

2012-03-05 12:33:18

2014-09-25 21:44:19

戴爾

2010-04-06 09:06:39

戴爾企業(yè)級解決方案
點(diǎn)贊
收藏

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