成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 后端
本文將介紹的是.NET企業(yè)級(jí)架構(gòu)方面的解決方案,這也是關(guān)于企業(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)的參與人員(包括:開發(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ǔ)言,在過去的很多年,已經(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í)候幫助開發(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)更加吸引公眾的批評(píng)。令每一個(gè)人都滿意確實(shí)很難。UML也不例外。盡管到目前為止它是使用最廣的建模語(yǔ)言,但是從根本上來(lái)說它是一個(gè)臃腫的語(yǔ)言。毫無(wú)疑問,1.0需要改進(jìn),2.0有了提高。但是一些人還是認(rèn)為2.0還是很臃腫和復(fù)雜,還是很難學(xué)習(xí)。

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

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

4、UML中的圖形

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

 

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

Use Case

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

 

UML圖之間的等級(jí)關(guā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類圖

類圖在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,前面的符號(hào)是+;CustomerName是protected,前面的符號(hào)是#;Address是private,前面的符號(hào)是-。

連接類之間的線代表他們之間的關(guān)系,也就是我們常說的1:1,1:n,0:1,0:n,n:n,0:n其中之一,關(guān)系還區(qū)分從哪個(gè)類的角度來(lái)看。圖中的Customer和Order的關(guān)系,從Customer角度來(lái)看,一個(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)的對(duì)象建模語(yǔ)言。它獨(dú)立于任何編程語(yǔ)言。這是一個(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é)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-08-20 14:48:37

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

2010-08-09 09:03:17

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

2009-07-17 09:17:41

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

2009-04-22 08:44:36

2015-08-04 17:31:46

戴爾云計(jì)算anycloud

2011-12-06 14:44:02

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

2012-06-12 09:56:33

虛擬化

2013-03-11 10:54:05

2016-03-25 17:20:26

戴爾

2013-08-28 09:24:09

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

2010-03-30 14:45:26

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

2012-09-22 15:13:31

2011-10-14 10:50:02

2009-11-23 20:16:25

ibmdwRational

2012-03-05 12:33:18

2010-02-06 13:56:34

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

2012-05-03 18:06:52

SGI

2015-06-24 16:38:24

2021-08-18 14:33:53

存儲(chǔ)云原生容器

2009-12-03 13:51:51

JRubyJBossTorqueBox
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 懂色av色香蕉一区二区蜜桃 | 中文字幕在线一区 | 中文字幕1区 | 青青草在线视频免费观看 | 日韩中文字幕高清 | 精品国产一二三区 | 呦呦在线视频 | 成人精品一区二区户外勾搭野战 | 黄网站涩免费蜜桃网站 | 欧美激情99 | 久久久成人精品 | 中文字幕乱码亚洲精品一区 | 欧美国产大片 | www.狠狠操 | 亚洲国产精品久久久 | 九九热在线精品视频 | 日韩精品一区二区三区高清免费 | 成人福利网| 欧美精品日韩精品 | 国产在线观看一区二区三区 | 成人高潮片免费视频欧美 | 久久国内精品 | 天天天天操 | 91aiai | 91免费在线 | 免费三级黄 | 日韩一区精品 | 成人精品福利 | 日韩日韩日韩日韩日韩日韩日韩 | 成人欧美一区二区三区 | 女同久久另类99精品国产 | 中文字幕一区二区三区四区五区 | 日韩欧美在线视频 | .国产精品成人自产拍在线观看6 | 日韩在线观看中文字幕 | 亚洲精品粉嫩美女一区 | 国产精品一区一区三区 | 黄色在线观看网址 | 欧美日韩精品影院 | 色999视频 | 日韩一区二区三区视频 |