由委員會設計
從長遠來看這是導致語言或技術失敗的乙個主要和常見的原因,
corba
就是最好的例子。
過分注重商業化
試圖為一門不夠成熟的技術**工具而且只對工程的管理部門承諾什麼,這只能是一種短期有效的方法。有時候人們會認識到這樣的成本遠大於收益,這也讓程式設計師在本能上非常厭惡。另一些人因為工程管理部門的要求或好奇心而嘗試這些工具,但大都使用不超過乙個工程就棄用了。
太過激進地想把幾乎一切都涵蓋起來(
uml規範超過
800頁)
當你試圖為乙個領域內的每個問題都提供乙個解決方案的時候,最終你會發現其實你沒有提供任何有效的解決方法。
uml試**決所有與軟體開發相關的問題。試圖涵蓋一切是乙個不可能的任務,即使規範有
800頁,
uml也只是覆蓋了複雜的軟體工程領域的一部分。
背離了開發者的最初目的
作為一名程式設計師,我喜歡
uml為設計通訊等內容而提供的標準化,能夠使用一套通用的符號來與其他的程式設計師或者設計師交流我的想法真的很棒。我想大多數程式設計師仍然只是使用類圖表,或者在他們寫乙份檔案的序列圖時偶爾用一下。然而,
uml開始使用那些即便是商務人士都不懂的面向商業的類圖表。
概念膨脹
在過去的
10-15
年裡,uml
一直試圖概括所有流行語言的概念。現實麼?
總在追趕新的語言和概念
承接上一點,既然
uml承諾全語言的**生成,就意味著它必須包含每一種特殊的語言架構。
試圖成為一門程式語言
由於能夠生成全**,所以實際上
uml試圖成為一門程式語言,而一種通用的圖形程式語言存在很大的問題。在人類歷史上,所有語言的手寫形式都是從圖形到文字,在捕捉和傳遞思想方面,字母表證明比影象更具表達力。如果試圖用圖形描述每個流程,那必須還得使用語言來注釋這些圖形。圖形在形象化人們的思維和概念方面確實有效,但是在描述細節方面語言更有效。
需要昂貴的工具還是只需要乙個文字編輯器
要想真正地
uml入門,要求很高,他們需要訓練,因為他們不是時時刻刻都在使用最直觀的工具。諮詢公司會喜歡
uml的這一特性,因為這意味著昂貴的培訓課程。
缺乏模型清晰度(
model clarity
)圖形讀不懂我聽到很多開發者在理解
uml**的設計時發出這樣的抱怨,最終不得不通過讀**來理解。
缺乏真正軟體設計的問題解決方法
uml規範很多,卻沒有軟體系統常見問題的好的解決方法。隨便舉個例子:
沒有多工和任務間通訊的解決方案;
沒有用例(
use cases
)之間的依賴
假設你在寫第一行**前就知道一切
編寫使用手冊,然後在此基礎上順利成章地生成**但這可能無法實現。由於在實踐中一切都是動態的,所以
uml圖表如果要與**保持一致,它的維護就變得非常麻煩,開發者對此很反感。
對待軟體開發就像對待製造業
軟體設計不是製造業,軟體創作是一種創造性的活動,更加是工藝或者藝術。
uml試圖標準化和形式化開發者的想象力和才智。
uml工具的目標錯誤
大部分的
uml這些工具的另乙個問題是螢幕上呈現的有效圖表元素的數量。很多次我檢視乙個
uml圖表或者乙個複雜的系統,但只能看到一角,根本無法幫助全域性的理解。而且,很多使用
uml完成的工程,其最終的**與最初的
uml圖表並不一致。
我也不認為**生成是個好主意,一般來說生成的都是複雜的**,而大部分工程可能使用庫中的公用**更好。
「日薄西山」的摩托羅拉推出VR頭顯,這回靠譜嗎?
快要銷聲匿跡的摩托羅拉也來做vr頭顯,瞄準執法工作者。手機廠商涉足vr已經是一種常態,現在連快銷聲匿跡的摩托羅拉也按捺不住了,他們在面向公共安全通訊行業的apco大會上,公布了一款vr頭顯裝置。不過,不走尋常路的摩托羅拉,和其他手機廠商推出的移動vr都不同,這款vr裝置主要是為執法人員所設計的,摩托...
UML總結 UML中的事物和關係
uml中的事物 名稱說明圖形類 相同屬性方法的集合 介面類或元件提供的,可以完成特定功能的一組操作的集合 協作合作的動作 用例系統的乙個功能 節點代表可計算的資源 活動類有多個執行緒的類 元件可替換的功能塊 輔助事物 包一組元素集合 注釋解釋 行為事物 互動動態事物 狀態機狀態集合 關係 名稱說明 ...
UML的入門基礎
1997年,omg組織 object management group物件管理組織 發布了統一建模語言 unified modeling language,uml uml的目標之一就是為開發團隊提供標準通用的設計語言來開發和構建計算機應用模型。uml成為 標準 建模語言的原因之一在於,它與程式語言無...