[技術討論]UML無用、誤用還是務用

qingrun發表於2010-01-13

1、引言

在水木上昨天一個話題引起了一些對話,涉及到UML的使用問題,這裡貼在下面,因為這個話題涉及到青潤幾年前的一篇文字,那篇曾經討論非常的文字, 因此連結先放在這裡:http://blog.csdn.net/qingrun/archive/2005/03/15/320157.aspx

2、話題引發

下面是水木上第一個帖子(http://www.newsmth.net/bbscon.php?bid=126&id=69229)的對話:

☆─────────────────────────────────────☆
   darkelf9 (整理屋子) 於  (Tue Jan 12 19:42:21 2010)  提到:

【 以下文字轉載自 CPlusPlus 討論區 】
發信人: darkelf9 (整理屋子), 信區: CPlusPlus
標  題: 通過C++程式碼自動生成類的關係圖
發信站: 水木社群 (Tue Jan 12 19:42:06 2010), 站內

正在看一個遺留工程

頭大中

有沒有什麼工具,能夠根據c++專案的.cpp/.h檔案,生成這個專案用到的C++的類之間的
關係

例如A繼承了B,B繼承了C

哪個namespace下面有哪些類之類的東西

方便程式碼的閱讀,

謝謝了




☆─────────────────────────────────────☆
   zhangmike (秦月) 於  (Tue Jan 12 20:24:44 2010)  提到:

青潤,你的問題來了!
【 在 darkelf9 (整理屋子) 的大作中提到: 】
: 發信人: darkelf9 (整理屋子), 信區: CPlusPlus
: 標  題: 通過C++程式碼自動生成類的關係圖
: 發信站: 水木社群 (Tue Jan 12 19:42:06 2010), 站內
: ...................


☆─────────────────────────────────────☆
   qingrun (青潤) 於  (Tue Jan 12 22:28:05 2010)  提到:

暈倒,這就成了我的問題了?呵呵
用任何uml工具都可以做到,不管是原始碼還是編譯後的類檔案,用反向工程,匯入類到模型檔案中,然後把類拖入到一張圖上可以看到一些關聯關係。
關於反向工程的具體操作步驟和過程,去搜尋我的名字加上反向工程就可以查到幾乎所有的注意事項,如果覺得不完整,就去看我寫的那本書,上面介紹的很詳細。
這類問題回答的太多了,真得沒什麼價值,搜尋一下,網上肯定都有,至少五六年前我就給別人這樣解答過。

【 在 zhangmike (秦月) 的大作中提到: 】
: 青潤,你的問題來了!


☆─────────────────────────────────────☆
   zhangmike (秦月) 於  (Wed Jan 13 12:52:04 2010)  提到:

rose,together,ea等,幾乎所有的uml工具都可以進行反工。
    --- 青潤
有沒有免費的UML工具,支援正反向工程都不錯的?
在收費的UML工具中,哪幾個划算些?


【 在 qingrun (青潤) 的大作中提到: 】
: 暈倒,這就成了我的問題了?呵呵
: 用任何uml工具都可以做到,不管是原始碼還是編譯後的類檔案,用反向工程,匯入類到模型檔案中,然後把類拖入到一張圖上可以看到一些關聯關係。
: 關於反向工程的具體操作步驟和過程,去搜尋我的名字加上反向工程就可以查到幾乎所有的注意事項,如果覺得不完整,就去看我寫的那本書,上面介紹的很詳細。
: ...................



☆─────────────────────────────────────☆
   qingrun (青潤) 於  (Wed Jan 13 14:10:36 2010)  提到:

免費的我沒怎麼使用,starUML好像評價不錯。
因為ea,國產的trufun都給我有最完整版本的授權,rose是使用最熟練的工具,所以,這幾個我用的比較多一些。
01年我參加分析Jboss程式碼的時候,就是用rose進行的程式碼反工(當時jboss沒有提供可作分析的原始碼),最後完成了appserver和webserver連線部分的全部程式碼設計,可以用於任何webserver與jboss的連線。
【 在 zhangmike (秦月) 的大作中提到: 】
: rose,together,ea等,幾乎所有的uml工具都可以進行反工。
:     --- 青潤
: 有沒有免費的UML工具,支援正反向工程都不錯的?
: ...................



☆─────────────────────────────────────☆
   timshaw (寫啥呢?真矛盾) 於  (Wed Jan 13 20:14:19 2010)  提到:

話說我還從來沒用過這類程式碼反向工具,看的程式碼太少了,泛而不精。
不過就我接觸過的很多人好像大多沒用過
記得當年試用過rose,那還是想學uml的時候,後來對uml無愛(應該是我接觸到的專案都比較小的緣故),就再也沒有碰過rose,together之類的東東了。

【 在 qingrun (青潤) 的大作中提到: 】
: 免費的我沒怎麼使用,starUML好像評價不錯。
: 因為ea,國產的trufun都給我有最完整版本的授權,rose是使用最熟練的工具,所以,這幾個我用的比較多一些。
: 01年我參加分析Jboss程式碼的時候,就是用rose進行的程式碼反工(當時jboss沒有提供可作分析的原始碼),最後完成了appserver和webserver連線部分的全部程式碼設計,可以用於任何webserver與jboss的連線。



☆─────────────────────────────────────☆
   qingrun (青潤) 於  (Wed Jan 13 21:04:39 2010)  提到:

我01年初開始用rose的時候也不感興趣,不過,過cmm3的時候要求必須用,那一個專案下來讓我感覺到的確有些不同,此前我也就是用他反工一下程式碼作分析用一下,也就是那個appserver專案的內容。
此後開始自己主動的看,硬著頭皮把UML Concept翻了兩遍,再專案中進行一些實驗和操作,才出來的。
大小專案都可以用,只有你熟悉了,才能發現一些捷徑,不熟悉的時候,都會覺得不好用的。呵呵
06年ivar來中國前有一場爭論,我當時發了一篇文字《精通它,才能毀滅它》就是針對當時甚至現在都有的一種論調:uml無用論,寫的。呵呵。

【 在 timshaw (寫啥呢?真矛盾) 的大作中提到: 】
: 話說我還從來沒用過這類程式碼反向工具,看的程式碼太少了,泛而不精。
: 不過就我接觸過的很多人好像大多沒用過
: 記得當年試用過rose,那還是想學uml的時候,後來對uml無愛(應該是我接觸到的專案都比較小的緣故),就再也沒有碰過rose,together之類的東東了。



☆─────────────────────────────────────☆
   timshaw (寫啥呢?真矛盾) 於  (Wed Jan 13 21:47:04 2010)  提到:

i read that artical you mentioned, and i give it an e name: . the case at the end is very intersting. ^_^

【 在 qingrun (青潤) 的大作中提到: 】
: 我01年初開始用rose的時候也不感興趣,不過,過cmm3的時候要求必須用,那一個專案下來讓我感覺到的確有些不同,此前我也就是用他反工一下程式碼作分析用一下,也就是那個appserver專案的內容。
: 此後開始自己主動的看,硬著頭皮把UML Concept翻了兩遍,再專案中進行一些實驗和操作,才出來的。
: 大小專案都可以用,只有你熟悉了,才能發現一些捷徑,不熟悉的時候,都會覺得不好用的。呵呵
: ...................



☆─────────────────────────────────────☆
   qingrun (青潤) 於  (Wed Jan 13 22:22:32 2010)  提到:

換過去說吧,這裡就先結束。


3、話題深入

第二個帖子的對話:

發信人: timshaw (寫啥呢?真矛盾), 信區: SoftEng
標  題: 我們討論討論UML吧
發信站: 水木社群 (Wed Jan 13 21:31:13 2010), 站內

記得2年前看過一期it經理,上面有篇雅克波森寫的文章,裡面有句話大意是說:"有些人認為UML走到盡頭了,但是出人意料的是,UML活的還挺滋潤的。"
這裡,有些人認為uml要死的理由都有哪些?這裡我想說說自己粗淺的感想

我 沒接觸過大的專案,也沒怎麼用過uml工具,實際上我去待過的幾家公司,我門開發人員都很少用uml交流,基本上也只有在以前部分老員工留下來的文件中才 能見到一點點uml圖。有些是在技術文件中,而我也曾在有些需求文件裡找到UML圖(用例圖序列圖等),說實話,連我們這些開發人員都不怎麼去看uml, 那些客戶會看嗎?能看懂嗎?

剛才說到我對uml用的不多,我自己分析了以下原因,是發現很多時候uml的那些概念在現在來說是相當的基礎 和普通了,他們的精髓已經融到我們日常工作中而可以拋棄那些圖框等皮囊。進一步考慮,uml的這些在我們做需求分析和系統建模的時候已經不見得有好的效果 了,很多團隊都有自己一套或者多套模型,比uml的那些概念更精細更具體,因此也顯得更實用。一個不大恰當的比喻,就好比雖然java有他的語法,但是我 們多數團隊還是有自己的編碼規範,一個是防禦性的,一個是積極主動也更有效的。一般團隊都有自己擅長的技術或者用的比較好的框架,這些東西背後可能都有自 己的概念模型,團隊內部用這些概念來溝通,其效率怕是比用uml折騰高得多。
上面我說很多技術都有自己的概念模型,我沒仔細敲過馬丁大叔的DSL定義,我習慣把這些某方面自成體系的概念叫做DSL。比如工作流方面的介面方面的那些概念,我們每個團隊都可以敲定應用各模組,各個層面上的DSL。相比UML,使用這些DSL交流起來更通暢些。

那 麼為什麼uml還如雅克波森說的活得仍然很滋潤呢,我只能猜測了。大型專案不是弱若我者所能想象的,為了達到更好的效果只能用uml,因為有太多的東西要 交流,有太多的人蔘與溝通,這些人這些事他們的背景/上下文是各式各樣的,為了應對這種複雜性,只能採用更保守的UML。正如我們所看到的一樣,uml經 常用在書籍中,因為書籍面向的受眾也有這種既廣且雜的特點。

大家發表一下看法?你對uml熟嗎經常使用uml嗎?你認為uml的未來如何?或者任何uml的話題,free style。


發信人: qingrun (青潤), 信區: SoftEng
標  題: Re: 我們討論討論UML吧
發信站: 水木社群 (Wed Jan 13 22:36:54 2010), 站內

雅克波森?是Jacobson麼?
還是那句話,如果你沒有用過,就不要來討論這個話題,因為這樣的討論對我來說是沒有意義的,對你來說也許有用。
UML能成為標準,肯定是有它成為標準的歷史和基礎的,至於誰推動,如何如何,每個人都可以說出一套道理,但是,你是否真的有資格來批評一個已經存在的事物,是需要考慮的。
我 不清楚你去過的幾家公司是什麼樣子的公司,說實話,國內能夠真正用起來UML的人的確很少,一個多星期前和人在社會招聘板塊因為這個資料還發生過爭執,就 是那個說精通是什麼什麼的人,他也認為有很多人精通UML,而我覺得,國內能夠用好UML的人可能也只有千為基數的統計數量。
當然,很多東西都可 能會被淘汰,也可能會失去它的地位,被新的語言,新的方法所替代。如果非要講求這個道理,那我們任何語言都不用學了。可是實際上,一個事物既然有了生存的 基礎,那就必然有它存在的土壤,以及這塊土壤擴大或者縮小的機會,Borland一樣有機會,只是他沒有做好,最後走入了自己的深淵。
對於我這種工程設計人員來說,有下面幾個理由讓我是用UML:
1、我關心的事問題的有效解決,而不是我是否能做出一個新的標準來替代UML。
2、我已經付出了學習UML的代價,一則目前沒有可替代UML的更好的標準,二則有了新的標準也未必就能立刻替代UML,而且學習新的標準(注意:這個標準目前還不存在)我還是需要付出代價,因此在我認為我付出的代價值得之前,我不會更換我原來的開發方法。
3、UML工具目前已經足夠成熟,注意:是足夠成熟,而不是十分成熟。因為在我是用的過程中,我認為他們都缺少很多可以成為工具使用更便利更有效的開發特性,這也是MDA等方法後來不了了之的主要技術原因。
4、軟體工程本身涉及到方法論和過程論的配合,單一的方法論或者單一的過程論的應用都將會帶來無盡的麻煩。
5、我目前傾向於減少文字描述,提高程式碼有效性,以及程式碼自身和註釋配合以及工具協調之間的一種無文件開發方法論的形成——我基本上到去年中期可以認為我的這套方法已經接近完善了。
6、在沒有更新的標準出來之前,目前的標準是值得學習的,因為,如果始終不用不學,等新的東西出來的時候,你也一樣無法接受。一個早期BASIC的程式設計師如果不經歷windows出現初期的開發工具的轉換,目前基本上可以認定他已經不能繼續作為一個程式設計師而存在了。
7,暫時沒有了。
上面的內容也可以作為你選擇是否要學習UML的一個評判標準。
而對於我來說,目前不是簡單的UML學習或者使用的問題,而是在完善了我的這套方法論後,如何完善過程論的整體,以及最近幾年研究的心態對抗問題、度量、績效等方面的補充,所以,一般對於UML是否還需要學習,是否要淘汰的討論我都是不參與的,沒有興趣,也沒有時間。
關於我的方法論是否有人用,我可以明確說,雖然我已經很久不在公司任職,但是國內至少有十個以上的公司的技術總監級別的人參加過我的培訓,他們也都在使用這套方法,並不斷給我提供建議和補充,最近三年多的很多提升是在和他們的交流中實現的。


【 在 timshaw (寫啥呢?真矛盾) 的大作中提到: 】
: 記得2年前看過一期it經理,上面有篇雅克波森寫的文章,裡面有句話大意是說:"有些人認為UML走到盡頭了,但是出人意料的是,UML活的還挺滋潤的。"
: 這裡,有些人認為uml要死的理由都有哪些?這裡我想說說自己粗淺的感想
: 我沒接觸過大的專案,也沒怎麼用過uml工具,實際上我去待過的幾家公司,我門開發人員都很少用uml交流,基本上也只有在以前部分老員工留下來的文件中 才能見到一點點uml圖。有些是在技術文件中,而我也曾在有些需求文件裡找到UML圖(用例圖序列圖等),說實話,連我們這些開發人員都不怎麼去看 uml,那些客戶會看嗎?能看懂嗎?
: ...................

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/257598/viewspace-625103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章