青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

uml中文FQA

V1.0
張恂
2003年10月29日

編者按:

一直很難找到中文的、適合國人看的UML FAQ,而英文的UML FAQ往往散落于各處不易收集和消化,導致很多看似簡單卻很基本、很關鍵的問題在網絡論壇、BBS上被反復地提出,既浪費了提問者、解答者不少的時間和精力,也給大家學習總結、進一步提高帶來了困難。于是,結合自己的所學所想試著編寫了一個UML中文FAQ供各位參考。眾人拾柴火焰高,有什么不足之處,歡迎大家多多提出寶貴意見,不斷補充,一起來完善!
聯系郵箱:zhangxun2001@hotmail.com



什么是UML?
UML有哪些特點?
UML有什么用?
UML不能做什么?
為什么要學習和掌握UML?
什么情況下不需要或不適合用UML?
什么情況下應該用UML?
促進UML普及和應用對于加強我國軟件業的實力有什么重要意義?
UML的統一性表現在哪些方面?
UML是如何誕生的?
UML是一家之言,或少數派的觀點嗎?
UML之父是誰?
UML標準有哪些最新進展?
初學者如何開始學習UML?
世界上有哪些著名的公司、組織參與了UML標準的制訂?

什么是UML?

Unified Modeling Language(統一建模語言)是國際對象管理組織OMG制定的一個通用的、可視化建模語言標準,可以用來描述(specify)、可視化(visualize)、構造(construct)和記載(document)軟件密集型系統的各種工件(artifacts,又譯制品)。


UML有哪些特點?
UML的“通用性”主要是指不僅僅可以用它來描述軟件,而且還可以用它來描述一般企業或組織的業務流程以及由軟、硬件共同組成、以軟件為主的復雜系統(即所謂的軟件密集型系統),甚至還包括非軟件系統。

UML的“可視性”是指可以通過UML一系列的圖形符號,組成多種視圖(view)來直觀、清晰地表達系統分析設計中方方面面的、許多復雜的概念。UML主要是為了人的閱讀和使用而設計的,所以它采用了半形式化的,易于人們理解、交流的形式。

UML是一種分析設計專用的建模語言,它本身不是編程(programming)語言,不能直接用來生成可執行的軟件。UML是一種抽象層次比C、C++、Java、VB、Delphi等文本高級語言更高的圖形語言,通過它我們可以抽象地表示用高級編程語言編寫的文本程序的邏輯結構和行為。相比傳統的高級編程語言,UML能夠更加高效、準確地反映軟件設計的方案和思路,是真正用來“設計程序”(design programs)的語言。從這個意義上看,不妨稱UML為“甚高級”程序設計語言。

UML基本上不能算作全新的發明,它并非學者教授、科研機構的研究成果,而是直接來自于產業界、工程界的實踐總結,是在歸納基礎上進行理論升華的產物,其核心內容反映了30多年來全球軟件工業的領導者在軟件設計構造領域的最佳實踐和成功經驗,因而具有很高的實用價值。

實踐證明,OO分析設計(OOAD)方法比傳統方法能更加準確、全面地描述現實世界。UML是用來表述OO概念的一種語言工具,而很奇妙,它本身作為一件產品同樣也是用OO方法來設計的,這使得UML具有傳統建模語言所不具備的很強的語義表達能力和非常靈活的可擴展性。


UML有什么用?

UML的用途非常廣泛,可以概括為“描述、可視化、構造、記載”4種基本功能,在業務建模、需求分析、系統設計、實現和測試、數據建模、項目管理等階段任務中均可根據需要采用。

UML建模是建立軟件開發文檔的一個有效手段,通過UML可視化地描述系統需求,記載軟件構成,能夠顯著地提高文檔的質量和可讀性,減少編寫文檔的工作量。

UML實質上是一種系統分析設計專用語言,通過可視化的圖形符號結合文字說明或標記可以幫助業務/系統分析員、軟件架構師/設計師、程序員等各種建模者有效地描述復雜軟件(或業務)的靜態結構和動態行為,包括工作流(數據流和控制流)、功能需求、結構元素及關系、架構組成、設計模式、對象協作、事件響應和狀態變化等等。


UML不能做什么?

UML不是高度形式化的語言,一般不能用于定理證明。

UML是基于OO方法的通用建模語言,不適合用戶圖形界面設計、超大規模集成電路(VLSI)設計、基于規則的人工智能等專業領域。

UML是一種離散型建模語言,適合對由軟件、固件或數字邏輯構成的離散系統建模,不適合對工程和物理學領域中的連續系統建模。

本身作為語言,UML僅僅是一種表達形式,不是建模方法,在實際的軟件項目開發中僅僅掌握一套標準的圖形符號是遠遠不夠的。用好UML首先需要掌握OOAD的基本原則和方法,并在一定的軟件開發過程(如UP/RUP、XP等)的指導下進行有取舍的運用。


為什么要學習和掌握UML?

首先,UML對于當前大多數希望進一步改進質量的軟件開發團隊來說是必不可少或必須的。為什么這樣說呢?因為,C++、Java等源碼并不能直觀、方便地反映復雜程序的設計:如內部邏輯結構、各種隱含的依賴關系、運行時的狀態改變和特殊行為等等。寫好的代碼僅僅是一種實現方式,很難反映出現象背后的真實本質——設計,因此對于大多數稍稍復雜點的項目來說,僅有代碼是不夠的。

可視化建模歷來是一種成功的工程實踐做法,并非軟件行業所特有。軟件的設計方案在用C++、Java實現之前通常隱藏在人們的頭腦當中,而設計正確與否是決定軟件質量好壞的要害,一個前提是必須用適當的方式把它表達出來。通過程序代碼來表達、討論、評估和選擇復雜軟件的設計往往是很笨拙的,這一表達

方式的空欠唯有通過類似UML的建模語言來填補。

其次,OO方法是當代主流的軟件開發技術。世界先進的軟件團隊和個人早已擺脫了對如何使用具體的平臺API、個別編程語言特性的糾纏,而把更多的精力放在了需求、架構、設計機制和模式等對軟件質量有重大影響的核心要素——分析與設計上。UML作為OO建模語言的事實上標準和主要的表達媒介,在這些場合能發揮關鍵的作用。所以,熟練地掌握并運用好UML是當今系統分析員、架構師/設計師以及程序員等軟件工程師所必備的一項基本技能。


什么情況下不需要或不適合用UML?

對于一個特定的軟件公司或開發團隊,在下列情況下建議不采用UML:
1)傳統的做法已完全適用,對OOAD的要求也不高,項目非常成功,無任何改進的必要;
2)開發的系統比較簡單,直接用源碼配上少量的文字就能解決問題,軟件開發文檔也無需添加圖形來輔助說明;
3)開發人員更習慣于直接閱讀源碼,用源碼交流,這樣做不影響工作效率和質量;
4)開發的系統本身不屬于OO方法、UML適用范圍。


什么情況下應該用UML?

對于一個特定的軟件公司或開發團隊,在下列情況下建議采用UML:
1)OO方法是項目決定采用的方法論,是整個項目或產品成功的關鍵;
2)開發人員感覺用源碼說明不了真正的問題,希望利用可視化建模語言簡化文檔,提高交流的效率,準確抓住問題的本質;
3)系統的規模和設計都比較復雜,需要用圖形抽象地表達復雜的概念,增強設計的靈活性、可讀性和可理解性,以便暴露深層次的設計問題,降低開發風險;
4)公司希望記錄已成功項目、產品的公共設計方案,在開發新項目時可以參考、重用過去的設計,節省投入,提高成功率。

促進UML普及和應用對于加強我國軟件業的實力有什么重要意義?

OO方法自上世紀80年代以來已經成為軟件開發的主流技術,標準OO建模語言UML的問世說明OO技術的發展達到了一個新的高峰。推廣普及UML的應用可以使我國軟件開發人員、軟件企業和客戶乃至整個行業都從中獲益:
1)個人
UML相關知識體系蘊含了非常豐富的當代軟件工程先進知識。軟件開發人員通過學習和掌握UML概念、表示法及相關的軟件過程、軟件工程技術,能夠加深對OOAD原則、方法的理解,提高抽象思維能力,從而站在更高的層次上分析問題、解決問題,這是一條快速提高個人軟件設計能力的有效途徑。
2)企業
對軟件企業內部,用好UML,不但能直接提升企業的軟件設計開發能力,而且由于UML能形象直觀地記錄軟件設計的核心思想,可以使軟件開發管理透明
化,促進企業知識資產的保護和增值,促進軟件重用和整體效益的提升。對外,由于UML是通行的軟件行業國際標準,企業在業務交往中有效運用UML,無論對于開拓國內外產品市場還是保障工程承接、項目外包等業務的順利開展都大有裨益。
3)行業
積極采用國際通行的軟件描述和設計語言UML,一方面能增加信息透明度,顯著降低軟件企業之間、客戶與開發商之間的溝通成本,減少項目失敗的風險,另一方面能促進行業市場的規范化和標準化,增進國際技術交流,整體提高我國軟件業的技術水平和參與國際市場競爭的能力。據悉,與UML有關的國家級標準目前正在考慮制定過程當中。


UML的統一性表現在哪些方面?

UML的統一性至少表現在以下幾個方面:
1)隨著OO技術的蓬勃發展,到上世紀90年代初OO方法已經多達50余種,它們之間既有很多共通之處也存在許多沒有必要的細節差異,這妨礙了技術進步,不利于產業的發展。UML統一了多種互補的、最具代表性、最受業界歡迎的主流OO方法,這既是歷史的必然,也OO方法成熟的一個重要標志。UML及與其配套的OO統一過程(RUP)在實現“合并同類項”的基礎上又向前邁出了一大步,不愧為當代OO建模方法的集大成者。
2)UML適用于各個行業的信息化工程,包括電信、銀行、保險、稅務、辦公自動化、電力、電子、國防、航天航空、制造、工業自動化、醫療、交通、商業、電子商務等諸多領域的業務建模和軟件分析設計,尤其適合對大中型、復雜、分布式應用系統或軟件產品建模,在這些廣泛的領域中都可以統一使用一套標準的建模語言。
3)作為一種獨立于具體實現的、抽象的表述方式,UML廣泛地適用于各種現代程序設計語言、數據庫和開發平臺。
4)有了UML標準,面向各種不同的軟件開發方法和過程(如重載/輕載,瀑布式/迭代遞增式),在軟件開發生命周期各個階段的工作(如業務建模、需求分析、設計、實現、測試)中,都可以采用一套統一的概念和表示法,避免了語言轉換的麻煩。
5)UML明確定義了一套公共的內部概念,建立了統一的關于建模語言的元模型,反映了在軟件和信息建模技術領域的最新成果。


UML是如何誕生的?

識時務者為俊杰。為了突破上世紀90年代初OO方法論混戰的局面,1994年杰出的Rational公司OO大師Grady Booch邀請通用電氣公司著名OO大師James Rumbaugh博士加盟Rational,啟動了OO方法的統一歷程。他們于1995年發表了“統一方法0.8”。與此同時,另一位超一流OO大師、愛立信公司的Ivar Jacobson博士也在該年加入了二人的行列。

1996年,3人正式把他們的統一成果命名為“統一建模語言”,UML于此誕生。同時,他們還做出了一個非常重要的決定——把UML提交到非贏利性的OMG進行標準化,讓全世界的軟件開發人員都可以自由地分享這一軟件史上的重大成果。

于是,在全球軟件界具有廣泛影響力的國際對象管理組織OMG從此開展了一系列OO建模語言的標準化工作。1997年11月,UML 1.1經OMG各成員投票被正式采納為行業標準。


UML是一家之言,或少數派的觀點嗎?

否,UML是全球工業界和學術界的領導者協同努力的成果。自從進入OMG程序后,UML就不再由Rational一家公司所有或由少數人控制,而成為凝結了百家之長的公共知識結晶。具有豐富企業信息系統和信息工程經驗的OO大師、Martin/Odell方法的領軍人物James Odell為此曾表明放棄自己的方法,并直接參與領導了UML 1.x系列標準的制訂工作。另一位OO大師Coad/Yourdon方法的創始人之一Peter Coad,雖然沒有直接參與UML制訂,但卻獨具慧眼創辦了TogetherSoft公司(已被Borland收購),開發了著名的UML集成開發環境Together ControlCenter,成為Rational Rose的有力競爭者。事實說明,UML的確促進了各種OO方法和流派的大融合,在OO建模語言領域具有不可替代的地位。


UML之父是誰?

UML之父有三位:他們是Grady Booch(Booch方法),James Rumbaugh(OMT方法)和Ivar Jacobson(OOSE方法)。人們親切地稱他們為“3 amigos”(即“三高”,類似于大家給予合作舉辦世紀音樂會的,世界上3位頂尖男高音歌唱家的稱謂)。


UML標準有哪些最新進展?

UML 1.x系列的最新版本是于2003年3月發布的1.5版本(www.uml.org)。
OMG(www.omg.org)從2000年起啟動了UML 2.0標準的制定工作。U2P組織(UML2 Partners Consortium,www.u2-partners.org)在UML 2.0標準的制定過程中發揮了主導作用。目前UML 2.0的上層結構(Superstructure)規范已經在2003年6月12日獲得通過。
OMG已經與國際標準化組織ISO開展了合作,預示著UML將來有望成為ISO標準,值得關注。


初學者如何開始學習UML?

無外乎幾種方式:讀書、上網、實踐、培訓。

最近幾年國內一窩蜂地出版了不少與UML有關的中英文書籍,但說實話,有點良莠不齊。初學者不管自學還是參加培訓,選擇合適的UML教材/讀物是很重要的。

Craig Larman的《UML和模式應用》是一本非常好的內容豐富、真正實用的入門教材,在國際上也是用得最多的一本,無出其右者。縱觀全書,以實案為中心,脈絡清晰,組織老到,深淺適當,循循善誘,非常適合UML、UP、設計模式的初學者和一直對OOAD、UML的價值存有疑慮的結構化人士一讀。對于熟悉OO的人來說,閱讀此書也是再一次享受梳理知識、進行系統性訓練的美妙體驗。本人尤其推薦第2版(內容更新了不少,聽說正在引進翻譯,值得期待)。

如果希望與大師對話,全面深入地掌握UML的基本要領,通過領悟UML設計者的思想和意圖來達到在實戰中得心應手運用OO建模技術的目的,建議一定要閱讀UML之父Grady Booch親自撰寫的《UML用戶指南》。本書相當全面,偏重理論分析和概念闡釋,這些內容和抽象技術對于真正理解UML是非常基本、必不可少的,所以它適合喜歡認真探究一切的讀者。

用好UML離不開有好的過程作指導。RUP極其豐富的內容令人生畏,Ivar Jacobson大師在《統一軟件開發過程》一書中從管理者和系統架構師的角度,通過實例分析系統地講解了將UML用于分析設計實踐的完整過程,深入淺出,言簡意賅,可以說此書正是RUP的精華所在。帶領自己的團隊用好UML,得此書足矣。

此外,IT之源(www.iturls.com)、UMLChina(www.umlchina.com)等網站提供了非常豐富的學習資料和參考文章。

UML規范、《UML參考手冊》內容深、篇幅大,主要面向UML工具開發者、專家和研究人員,不適合初學者閱讀。


世界上有哪些著名的公司、組織參與了UML標準的制訂?

歷年來,參與UML標準制訂的一些核心公司和組織包括(1.x、2.0):
全能型IT公司:HP, IBM, Unisys
大型軟件公司:CA, Microsoft, Oracle
CASE廠商:I-Logix, Rational(已被IBM收購), Telelogic
電信供應商:Alcatel,Ericsson,Fujitsu,Motorola
行業組織:OMG
IT系統集成商:EDS
等等

UML在業界的影響力和地位由此可見一斑。


感謝您閱讀此文!紙質媒體如需轉載請與作者聯系;本文版權所有者為張恂,保留所有權利;您可以從IT之源上獲得本文的最新版本和相關資料;以上言論僅代表作者本人觀點,與作者服務的公司無關;歡迎轉載本文電子版,轉載時請注明出處并保留所有原始信息。

posted on 2005-12-24 14:51 夢在天涯 閱讀(688) 評論(0)  編輯 收藏 引用 所屬分類: UML/XML

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1811983
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              中文av一区特黄| 欧美日韩国产综合在线| 国产一区二区成人久久免费影院| 欧美精品在线网站| 美日韩免费视频| 欧美黄色网络| 国产精品久久一卡二卡| 国产三级欧美三级| 136国产福利精品导航网址应用| 在线观看欧美| 中文精品视频一区二区在线观看| 亚洲一区在线观看视频| 久久激情五月丁香伊人| 欧美成人精品一区二区三区| 亚洲人成网站777色婷婷| 在线亚洲国产精品网站| 久久国产精彩视频| 欧美精品久久久久久久免费观看 | 99这里只有久久精品视频| aa亚洲婷婷| 久久激情婷婷| 国产精品theporn88| 韩国av一区二区三区在线观看| 亚洲精品少妇| 久久久久久亚洲精品中文字幕 | 性欧美videos另类喷潮| 久久综合精品国产一区二区三区| 亚洲韩国日本中文字幕| 午夜天堂精品久久久久| 欧美激情小视频| 伊人久久综合97精品| 亚洲欧美日韩成人高清在线一区| 欧美1区2区视频| 午夜欧美精品| 欧美午夜美女看片| 亚洲欧洲免费视频| 久久久久久香蕉网| 亚洲宅男天堂在线观看无病毒| 美女视频一区免费观看| 国语自产精品视频在线看抢先版结局| 一本一本久久a久久精品牛牛影视| 久久成人av少妇免费| 亚洲日本欧美| 免费日本视频一区| 在线观看欧美日本| 老司机精品福利视频| 性欧美xxxx视频在线观看| 国产精品a级| 一区二区毛片| 日韩视频一区二区在线观看 | 亚洲欧美日韩高清| 亚洲成人资源网| 美国十次了思思久久精品导航| 在线亚洲观看| 国产精品黄色| 亚洲欧美国产高清va在线播| 亚洲日本一区二区| 蜜桃av综合| 亚洲精品国产精品久久清纯直播 | 久久精品国产精品亚洲精品| 一区二区欧美国产| 国产精品成人一区二区三区吃奶 | 亚洲成色777777女色窝| 久久久之久亚州精品露出| 欧美亚洲三级| 悠悠资源网久久精品| 美女精品一区| 欧美成人免费在线观看| 亚洲美女av电影| 日韩视频中午一区| 欧美日韩综合精品| 午夜精品福利在线| 欧美怡红院视频| 在线电影院国产精品| 欧美激情一区二区三区蜜桃视频| 欧美成人福利视频| 亚洲欧美怡红院| 久久不射中文字幕| 亚洲美女在线国产| 亚洲综合日韩中文字幕v在线| 国产视频亚洲| 欧美大片在线观看一区二区| 欧美精品七区| 欧美一区二区精品在线| 久久久天天操| 亚洲无玛一区| 久久久久欧美精品| 亚洲色无码播放| 久久国产一区二区三区| 一区二区精品| 久久一区视频| 性色一区二区三区| 美女999久久久精品视频| 亚洲小视频在线| 久久久久久网站| 亚洲一区观看| 欧美成人午夜激情在线| 性xx色xx综合久久久xx| 欧美freesex交免费视频| 亚洲欧美在线高清| 欧美成人中文| 久久久久国产一区二区三区四区| 欧美激情导航| 免费成人小视频| 国产精品有限公司| 亚洲乱码久久| 亚洲激情图片小说视频| 性色一区二区| 欧美在线播放一区二区| 久久九九久精品国产免费直播| 老牛国产精品一区的观看方式| 亚洲一区二区三区三| 久久亚洲综合网| 欧美在线观看天堂一区二区三区| 久久资源在线| 久久精品亚洲热| 国产精品普通话对白| 日韩视频在线免费观看| 亚洲激情网站| 久久亚洲午夜电影| 久久久欧美一区二区| 国产精自产拍久久久久久蜜| 亚洲理论在线| 制服诱惑一区二区| 欧美精品在线免费| 最新亚洲一区| 亚洲精品久久久久久久久久久久久| 欧美在线二区| 久久免费精品视频| 狠狠色狠狠色综合日日小说| 欧美亚洲一区二区三区| 久久国产精品一区二区三区| 国产精品久久久久久久久久免费看 | 小处雏高清一区二区三区| 一区二区三区国产精品| 男女视频一区二区| 欧美激情小视频| 亚洲国产一区二区视频| 米奇777超碰欧美日韩亚洲| 久久一日本道色综合久久| 国产视频一区欧美| 欧美一区免费| 欧美福利电影在线观看| 亚洲精品免费一二三区| 欧美激情综合亚洲一二区 | 亚洲美女电影在线| 亚洲最新在线| 国产精品激情av在线播放| 亚洲手机成人高清视频| 性色av一区二区三区在线观看| 国产女人精品视频| 久久精品国产第一区二区三区最新章节 | 久久天天躁夜夜躁狠狠躁2022| 美日韩精品免费| 亚洲精品乱码久久久久久| 欧美日韩国产黄| 亚洲免费视频中文字幕| 免费久久99精品国产自| 日韩一级大片| 国产精品亚洲第一区在线暖暖韩国| 欧美一级欧美一级在线播放| 欧美成人嫩草网站| 久久久99免费视频| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 欧美一区在线看| 欧美日韩免费观看中文| 亚洲欧美国产va在线影院| 久久福利影视| 亚洲视频视频在线| 久久青草久久| 久久国产精品久久久久久电车| 久久综合色婷婷| 久久综合999| 久久一区二区三区四区| 亚洲国产精品va在线观看黑人| 久久亚洲欧洲| 香蕉视频成人在线观看| 欧美日本一区二区三区| 国内精品国语自产拍在线观看| 亚洲国产aⅴ天堂久久| 亚洲电影免费观看高清| 久久久久久网| 久久精品国产亚洲精品| 一区二区av在线| 国产日韩在线看片| 亚洲网站在线播放| 久久亚洲一区二区三区四区| 亚洲综合视频一区| 一区二区三区国产精品| 亚洲欧美国产精品专区久久| 亚洲女同在线| 久久不射中文字幕| 亚洲美女啪啪| 欧美jjzz| 日韩视频欧美视频| 亚洲日本一区二区| 欧美激情一区二区三区在线视频| 欧美freesex8一10精品| 精品福利电影| 欧美日本簧片|