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

.NET企業級架構解決方案:什么是UML

開發 后端
本文將介紹的是.NET企業級架構方面的解決方案,這也是關于企業級架構的一系列文章的第二篇,主要講什么是UML。

引言

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

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

有很多著名的建模語言例子,最流行的一個就是UML(Unified Modeling Language 統一建模語言)。UML是一種通用的圖形建模語言,在過去的很多年,已經變成了工業的標準。UML特別適合于建立面向對象的系統。

正文

1、簡介

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

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

2、UML的優缺點

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

3、在實踐中使用UML

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

4、UML中的圖形

UML2.0包括13中不同的圖形,分為兩組:行為和結構。結構圖定義類,屬性,操作和關系。行為圖顯示系統中對象的協作關系。

 

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

Use Case

行為 顯示參與者在系統中進行放入操作

 

UML圖之間的等級關系

UML圖之間的等級關系

4.1用例圖Use Case

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

用例圖主要包括:系統,參與者,用例,關系。

例圖

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

4.2類圖

類圖在UML使用較為廣泛。類圖代表系統的靜態結構。系統的靜態結構由類和他們之間的關系組成。

類圖包括屬性,操作,和關系。關系則包括我們常說的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其中之一,關系還區分從哪個類的角度來看。圖中的Customer和Order的關系,從Customer角度來看,一個Customer可以沒有Order,也可以由多個Order,所以他們之間就是0:n的關系;從Order角度看,一個Order肯定屬于一個Customer,所以他們之間就是1:1的關系。

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

上面的類圖是在PowerDesigner中畫的,下面是自動生成的c#代碼,當然了,肯定是需要調整的。

  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是一種標準的對象建模語言。它獨立于任何編程語言。這是一個關鍵的特性,既是一個優點,也是一個缺點。說它是一個優點,是因為它使得在使用UML進行建模以及表達業務流程的時候,變成一個非常強大的工具。同時可以用它產生一個通用的模型。缺點就是因為優點產生的,獨立性越強,也就越是遠離了系統運行的代碼。

原文標題:用微軟.NET架構企業解決方案 學習筆記(二)UML概要

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

【編輯推薦】

  1. 架構師要努力成為內功深厚的高手
  2. 架構師:每天要在魚和熊掌之間做選擇
  3. 優美的系統與架構師的藝術氣質
  4. 架構師修煉課程:透過問題看本質
  5. 女性架構師優先?駕馭概念的技能是最高潛力

 

責任編輯:彭凡 來源: 博客園
相關推薦

2010-08-20 14:48:37

.NET企業級架構

2010-08-09 09:03:17

.NET企業級架構

2009-07-17 09:17:41

IT運維SiteView游龍科技

2009-04-22 08:44:36

2013-03-11 10:54:05

2016-03-25 17:20:26

戴爾

2012-06-12 09:56:33

虛擬化

2011-12-06 14:44:02

iPad企業級解決方案

2015-08-04 17:31:46

戴爾云計算anycloud

2012-09-22 15:13:31

2013-08-28 09:24:09

企業級移動信息化解決方案

2010-03-30 14:45:26

戴爾解決方案創新中心上海

2011-10-14 10:50:02

2010-02-06 13:56:34

以太網交換機

2012-05-03 18:06:52

SGI

2015-06-24 16:38:24

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

戴爾企業級解決方案
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区一区 | 久久久精品高清 | 国产一级在线观看 | 国内精品久久精品 | 久久大陆 | www.日本国产 | 成人在线免费视频观看 | 亚洲免费人成在线视频观看 | 91亚洲精品久久久电影 | 天天综合干 | 国产一区二区三区免费观看视频 | 精品一区二区三区四区在线 | 成人在线观看网站 | 91久久国产精品 | 日本爱爱 | 久久美国| 亚洲视频在线免费观看 | 亚洲成人免费视频在线 | 91电影院| 性色综合| 做a的各种视频 | 国产精品一级 | 日韩在线免费视频 | 91亚洲国产成人久久精品网站 | 日韩一级免费电影 | 久久精品一区二区三区四区 | 中文字幕亚洲欧美 | 色综合久久天天综合网 | 日本久久精 | 天天影视网天天综合色在线播放 | 国产成人精品久久二区二区91 | 日韩成人国产 | 日韩精品久久久久久 | 91精品国产综合久久久久久 | 国产精品一二三区 | 国产午夜视频 | 99国内精品久久久久久久 | 亚洲天堂影院 | 国产综合在线视频 | com.色.www在线观看 | 91麻豆精品国产91久久久更新资源速度超快 |