| 在我這個系列文章寫完之后,我突然發現我漏掉了面向對象設計應該掌握的重要內容——UML,雖然我在前面的文章中提起過UML,但UML對于java的重要程度,是應當單獨列文說明的。
UML的重要性,我是沒有辦法用自己的語言表述清楚的,因而引用《UML設計核心技術》的前言來表述UML的重要性,分外在原因和內在原因。
外在原因:
- UML是國際統一的標準,用它表示的產品符合國際標準,產品能夠得到廣泛的認可,這將提高產品在市場上的競爭力;
- 作為國際標準,國際軟件業和商業屆對UML的支持時普遍的,因而采用它,將得到最廣泛的技術支持和工具支持。
內在原因:
- UML采用圖來描述系統的視圖,圖形化易于理解的特點有利于不同知識背景的客戶、領域專家、系統分析、開發、設計人員之間的交流,促使他們的互相理解;
- UML是一種標準的表示方法,任何方法或過程都可以采用UML,它與具體的方法和過程無關,具有通用性;
- UML具有很好的擴展性,提供了加標簽值、約束、版類等機制來進行自我擴展,可使用到不同的領域,在具有通用性的同時,還具有使自己專用化的能力;
- UML與最好的軟件實踐經驗集成。它雖然沒有描述任何方法或過程,但卻要求使用它的過程具有以下特征:以架構為中心、用例驅動、支持迭代和遞增的開發,這些特征體現了軟件開發的成功經驗;
- UML對軟件設計和分析實踐中涌現出的新思想和新方法提供了很好的支持,它支持模式、框架和組件等概念,提供從“概念模式到實現代碼”的可跟蹤性。
以上引用文字,說明了UML在OOA和OOD中的重要作用,我想在以下幾點做一些說明:
- UML是進行系統分析、系統設計和系統表示的圖形語言,在系統開發中,不同角色的人應重點掌握相應的視圖,而非掌握全部。UML有9種視圖,我都曾經學過,可是我由于系統設計做的多一些,因而對系統設計這部分的視圖熟悉一些如類圖、序列圖、協作圖以及對象圖,但對其他的視圖,這由于較少使用而有些淡忘。但對于自己經常用的圖,要可以白板上熟練繪制相應的UML圖。
- UML與白板。在系統分析和系統設計階段,要經常在一起討論,討論的時候,白板是UML工具的一個較好選擇,這要求熟練掌握UML語言。
- UML與UML工具軟件。大多數UML工具軟件都有將UML的類圖和相應的代碼相互轉換的功能,UML類圖——>代碼,是代碼生成,代碼——>UML類圖的過程是反向工程。我推薦在進行系統設計時使用UML工具軟件。
- 常用的UML工具有rose、togetherJ和visio 2002,我用過rose和togetherJ,rose由于在很多方面做了增強,因而已經不是標準的UML語言,我不是很贊成使用rose。我比較喜歡使用togetherJ,在項目中,我比較喜歡用togetherJ做設計,設計好之后,自動生成代碼框架,再用jbuilder對實現具體方法。
|