• <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>

            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 夢在天涯 閱讀(678) 評論(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

            搜索

            •  

            積分與排名

            • 積分 - 1804314
            • 排名 - 5

            最新評論

            閱讀排行榜

            91精品国产色综久久| 国产精品久久久久天天影视| 久久夜色精品国产亚洲| 99久久无码一区人妻| 88久久精品无码一区二区毛片| 国产91久久综合| 国内精品综合久久久40p| 久久99精品久久久久久久不卡| 色综合久久综合网观看| 无码任你躁久久久久久久| 色综合久久无码五十路人妻| 99久久99久久久精品齐齐| 色综合久久中文字幕综合网| 久久精品国产精品亚洲毛片| 国产亚洲成人久久| 丰满少妇高潮惨叫久久久| 久久亚洲电影| 日韩精品久久久久久| 亚洲精品无码久久久久久| 色偷偷91久久综合噜噜噜噜| 日韩一区二区久久久久久| 久久久久久国产精品免费无码 | 国产高潮国产高潮久久久| 久久99精品久久久久久野外| 奇米影视7777久久精品| 色青青草原桃花久久综合| 国产精品99久久久久久猫咪| 久久99精品久久久久久久不卡 | 久久精品国产亚洲麻豆| 亚洲精品国产字幕久久不卡| 久久99精品九九九久久婷婷 | 久久电影网| 国产激情久久久久影院老熟女| 一本色道久久88—综合亚洲精品| 久久亚洲欧洲国产综合| 国产免费久久精品99久久| 国产精品狼人久久久久影院| 久久婷婷色综合一区二区| 狠狠精品久久久无码中文字幕| 国产免费久久精品99re丫y| 久久精品视频一|