色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UML真的悄悄地消失了?

jf_78858299 ? 來源:前端之巔 ? 作者:前端之巔 ? 2023-05-05 10:38 ? 次閱讀

“CASE 工具為什么會失敗”與“UML 為什么會掛”在很大程度上是一回事。

不久前,Ernesto Garbarino 發表了一篇《UML 是否就這樣悄悄地消亡了?》的文章。Garbarino 在使用了 9 年的 UML 后發現,不只自己,同行及其咨詢過的《財富》500 強公司都不再使用 UML 了。他認為敏捷化給了 UML 致命地打擊,是導致 UML“死亡”的真正元兇。

我知道很多軟件項目都在市場競爭中被淘汰,但 UML 不是。它沒有因太復雜、嚴謹而被公司高層所嫌棄,相反,他們很喜歡用少數幾種新的約定符號完成高效清晰的溝通。IT 人士將 UML 擺上臺面,商務人士則欣然接受。

所以問題的答案是,死掉的并不是 UML 本身——它只是連帶受害者。這場“大屠殺”波及到整個需求工程領域,包括業務分析與設計等等。下殺手的是“敏捷化”,正是它抹殺掉了 UML 以及關于它的一切。

Garbarino 認為,錯不在 UML,人們只是放棄了業務分析與正式規范的僵化束縛:

數字化轉型專家建議我們直接將方案部署在生產環境中,由客戶用行動向我們展示實際需求,而非預先做出假設。在這樣一套流程下,我們通過反復試錯來找到正確答案。這就是所謂快速失敗、快速迭代的新方法。

但現實世界很復雜,答案往往沒那么簡單粗暴。我在幾年前曾想寫篇關于 UML 誕生、快速發展到退出公眾視野的文章。為此,我采訪了不少 UML 知名人士,包括 Grady Booch、Bertrand Meyer 和 Ed Seidewitz 等等。但遺憾的是,UML 項目最終走向了消亡,所有的準備都打了水漂。但我仍記得種種細節,所以我可以負責任地說:事情絕不只是“死于敏捷化”那么簡單。當然,這已經過去四年了,有些細節我可能確實記錯了,歡迎大家邊看邊監督。

史前階段

UML 的誕生,源于兩大重要趨勢。

首先是“方法大戰”。在 Smalltalk 與 C++ 成為主流面向對象程序設計(OOP)后,人們開始大肆宣傳一種用于設計軟件系統的終極流程。但語言統一的過程無疑是混亂且“血腥”,一直有不同的設計方法涌現。Eiffel 語言和按契約設計(Design by Contract)思想發明者 Bertrand Meyer 在他寫的《Business Object Notation》一書中列出了 26 種競爭方法,我忘了是在哪里甚至還看到過“50 多種”競爭方法的結論。

幾乎在同一時期,人們還開發出第一款計算機輔助軟件工程(CASE)工具。如今,CASE 只是個“小角色”,但當初它是有潛力拓展出巨大產業的,甚至有人認為其規模將遠超 CAD 或者 IDE。

CASE 工具與方法論結合,不僅為開發者,也為測試人員、項目經理乃至客戶提供了一種整體性的軟件創建方法。然而,CASE 工具的制作成本極高,而且必須針對特定設計方案進行定制,因此隨著時間的推移,CASE 供應商只能從以下三種方式中選擇其中一個:

  • Grady Booch 的 Object-Oriented Analysis and Design(碸對象分析與設計,OOAD
  • Ivar Jacobson 的 Object-Oriented Software Engineering(面向對象軟件工程,OOSE)
  • James Rumbaugh 的 Object Modeling Technique(對象建模技術,OMT)

Rational 公司有不少的 CASE 產品組合,而且大部分收入來自 Ada 相關工具。Grady Booch 是 Rational 公司的員工,Booch 與 Rumbaugh 是好朋友,所以兩個人的思路在充分交流之后逐漸趨于一致。所以,兩人也開始嘗試明確協作,將 CASE 供應商需要支持的方法從三種縮減成兩種。之后,隨著其中一種方法優于另外兩種,他們買下了 Jacobson 的咨詢公司,逐步放棄了面向對象軟件工程(OOSE)。

OOSE、OOAD 與 OMT 都是代表了整體方法,涵蓋到符號表示和過程。由于消除符號差異要比處理差異更容易,所以 Rational 將聯合體拆分成了兩個部分。

統一建模語言(UML)于 1996 年問世,并被移交給對象管理小組(OMG),Rational Unified Process 則在一年之后誕生。UML 在接下來的十年中大受歡迎,并從 2004 年開始受到人們的普遍關注。但時間飛逝,轉眼就來到“UML 已死”的時代——這中間到底發生了什么?

理解問題本身

必須承認的是,UML 怎么“掛掉”這個問題是有歧義的。

首先,我們說的“掛掉”究竟指什么。程序員們常用這個詞來代表某種事物的“相對市場份額下降”,而非“絕對市場份額下降”。如今,仍有不少意見領袖抱怨開發者不夠了解底層系統,但與 30 年前相比,參與內核開發的開發者數量已經大幅增加。接觸內核開發的群體在全體開發者中確實比例很低。同理可知,UML 也許正經歷類似的“既增長、又消亡”過程,具體要看大家選擇衡量的標準。所以,我們不妨假設 UML 處于“快掛了”的狀態,再進一步展開討論。

另一個分歧是,我們說的 UML 究竟是什么。首先,UML 包含十幾種不同的圖類型,目前仍有不少人在使用順序圖。其次,人們使用 UML 圖的方式也是多種多樣。UML 與敏捷世界中的杰出人物 Martin Fowler 同樣確定出三種基本用例:草圖、藍圖與編程

這兩點很容易解釋。UML 的編程用例在早期發展階段就已經消亡 ,大多數 UML 支持者自己也認為這東西沒什么用。UML 草圖的命運也不容樂觀,而且人們發現草圖符號與 UML 標準很難保持同步,逐漸演變出多種相互間難以理解的“方言”。所以,除非有人刻意保持統一,否則兩者基本毫不相干。

剩下的 UML 藍圖則是最復雜的用例。據我的了解,它應該也是 Rational 公司最重視的成果。

UML 藍圖與 UML 草圖之間有兩個差異。首先,UML 的本意是先讓設計人員寫藍圖,再由程序員實現藍圖,但二者對應了不同的技能與工具。其次,UML 藍圖集成有多種不同的圖類型,我們不僅需要編寫類圖與需求圖,還需要用實現需求圖編寫的工具,即需要在藍圖設計當中使用 CASE 工具。因此,UML 的人氣往往與 CASE 工具的流行度密切相關。也正因為如此,我覺得“CASE 工具為什么會失敗”與“UML 為什么會‘掛’”在很大程度上是一回事。

下面咱們開始探究 UML 悲慘命運的根源。我得強調,我只能根據自己僅有的記憶做出還原和推測,所以給出的理由也許不那么準確,僅供大家參考。

消亡原因

傳統的約束

在方法大戰爆發、CASE 工具興起之后,UML 可以說是應運而生。市場上已經出現大量基于 OOAD、OOSA 以及 OMT 的 CASE 工具,而 UML 必須與這三類工具保持向后兼容,這也在起步階段就埋下了隱患。如果能夠果斷放棄這些,UML 也許可以更簡單地實現概念統一。

規范化缺失

UML 的規范太過松散,在圖的交互方式及關鍵字實際含義等方面都模糊不清。比如,UML 1.3 在類圖中給出了“泛化”箭頭示例,其中 Sailboat 是 WindPoweredVehicle 與 WaterVehicle 的專業化表達,而后兩者又是 Vehicle 的專業化表達。但從設計角度來看這些的意義是什么呢?我們有必要用專門的方式來實現嗎?這種細化關系有什么特別?總之,在具體操作中,一直存在著用戶決定關系含義、CASE 供應商決定實現功能,但兩者長期存在倒錯的問題。

看到這里,很多朋友可能想到了 C 語言。沒錯,當初的 C89 之所以要包含大量未定義及用戶定義行為,完全是為了容納大量彼此沖突的編譯器。OMG(UML 1.0 后版本的維護者)也面臨著類似的困境。他們無法對 UML 標準做出任何更新,否則很可能破壞現有供應商的決策,這自然拖慢了 UML 的發展速度,也大大增加了各個版本的修訂復雜性。

我有一個從朋友那里聽來的“八卦”。當時,雖然 OMG 被束縛住了手腳,但還有一定為“更大利益”做出改變的空間。我個人懷疑作為 UML 的原始開發商以及規模最大的 CASE 工具供應商之一,Rational 其實很想對舊版軟件做出更新。但是,IBM 隨后在 2003 年收購了 Rational,并很快停用了 Rational 的 UML 工具,轉而銷售專有 CASE 工具 Rational Software Architect。由于不打算繼續在 Rational 遺留項目上投入精力,IBM 開始阻止一切可能對 UML 兼容性造成影響的更新,最終導致項目徹底停滯。

而 2003 年也正是 UML 市場戰勝率開始下降的開端,我覺得這應該不是純粹的巧合。現在,我們要探討 UML 的具體問題了。

UML 中包含了非常多種不同的圖和規則,導致產品太過復雜。這對任何人都沒有好處,因為 UML 變得越來越難學,配套開發工具的設計也陷入困境。

雖然看似會畫幾張圖就能上手,但背后的規范體系并不簡單,所有工具都必須全面完整。所以,除了“泛化圖”外,其他稍稍復雜一點的內容都需要龐大的團隊和充裕的資金才有可能實現,這就限制了生態系統的增長速度。最終,開源社區也拿不出豐富的 CASE 工具,用戶實際使用的工具就更少了。

更關鍵的是,就連商業 CASE 工具也啃不下這塊硬骨頭。表示方法越復雜,開發工具的難度就越大,沒有了令人振奮的強大 CASE 工具支撐,UML 自然陷入孤掌難鳴的境地。

沒有文本格式

這是工具體系方面的另一重大缺失。沒有文本格式導致我們無法在自己熟悉的文本編輯器中編輯 UML 圖、無法執行 grep 編寫、也無法編寫自己的定制化解析器

也有人曾嘗試為 UML 提供文本表示形式,例如 PlantUML 或者 Mermaid 等,但它們全都面臨著兩大難題。首先,這種表示是單向的,我們無法將現有圖轉換為文本形式;第二個就是所謂的圖形化問題,文本格式在表現視覺布局方面效果極差。這個問題可以具體分為三個方面:1)系統非常笨拙,不如直接使用圖形編輯器;2)必須調整設置才能讓布局引擎更為流暢;3)需要編寫 TikZ。

根本沒有數據格式

這個問題看似與“沒有文本格式”類似,但本質上截然不同:UML 只有視覺表示這唯一的格式,令 UML 的導入與導出幾乎無法實現。一旦開始使用具體工具,結果就會被限制在此種工具之內,這明顯又制約了生態系統的發展:無法制作獨立的 UML 工具、驗證品節,也無法開發出任何 CASE 工具擴展。

OMG 方面也曾嘗試通過 XMI(一種用于 UML 的 XML 格式)糾正這個問題,但據說效果一直不好,而且各個 XMI 與 UML 版本都不具備向后兼容能力,工作根本推進不下去。

無法逆向

一部分工具可能會采用某些 UML 規范并生成代碼,也有一些工具可以根據某些代碼對圖進行逆向操作,但這兩種用例的效果都不太好。因此,與藍圖類似,UML 與代碼終將不可避免地陷入無法同步的狀況。

在采訪 UML 用戶時,我最常聽到的抱怨就是“UML 太爛了,根本沒法用。”

文化變革

最后的這一點,我開始跟開頭文章作者的觀念趨于相同。文化變革確實給了 UML 沉重一擊,但我認為其中的原因不是那么簡單。

CASE 工具的作用僅限于大型軟件項目,這是因為只有大型軟件項目才有很多人長時間從事相同的工作。這類項目的“官僚化”程度也更高。雖然我們如今都認同敏捷化正全面取代以往占主導地位的瀑布式開發方式,但那個時候大多數開發者都在遵循“事來忙一陣、亡羊再補牢”的工作思路。因此,CASE 工具最初是由企業在內部強制要求使用的。文章作者也提到,真正喜歡 UML 的其實是企業高管、而非程序員自己。

上世紀九十年代,程序員們主要在傳統企業工作,因此當時的技術趨勢也主要反映傳統企業管理層的喜好。雖然也正是他們的決策讓 UML 有了一時的輝煌,但近二十年過去了,軟件文化逐漸向大型科技企業與初創公司傾斜,從歷史上看這兩者都不屬于 CASE 供應商的預設目標受眾。這樣的變化,也讓 CASE 在市場上的地位一降再降。

UML 之后

在開頭提到的文章中,作者 Garbarino 提出了一個問題:如果 UML 沒有了,我們將使用什么?

雖然有些人使用 C4 之類的輕量級建模技術,但目前主流的應該還是 masala 圖。為什么要用 masala?Garbarino 認為是因為它靈活多變、能夠一次性涵蓋多個維度、既涉及結構又涉及行為、既體現邏輯層面又貫通物理層面,很像是 4+1 架構模型視圖的大雜燴產物。

現在生活和財務所依賴的數百萬個系統,完全是在 masala 圖表的背后設計、資助和執行的,通常除了一堆史詩和用戶故事之外沒有更多的附屬品。不過在特別嚴謹的業務系統,如銀行抵押系統并不會使用潦草的馬薩拉圖。

不過,在 Garbarino 看來,馬薩拉圖也有作用。masala 圖本質上并不是規范,更多的是一種情感共鳴的載體。根據 Marie Kondo 提出的原則,masala 圖的核心目標,是在利益相關者心中激起認同與積極情緒。能做到這一點的,就是好 masala 圖。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IT
    IT
    +關注

    關注

    2

    文章

    862

    瀏覽量

    63504
  • UML
    UML
    +關注

    關注

    0

    文章

    122

    瀏覽量

    30858
收藏 人收藏

    評論

    相關推薦

    蘋果一直在悶聲大發財,悄悄地在背后不吭聲地發力

    羞答答的玫瑰靜悄悄地開! 2017年,蘋果看似毫無動靜!然而,今天一切揭曉時,大家才發現,原來,蘋果一直在悶聲大發財,悄悄地在背后不吭聲地發力!
    發表于 08-17 10:46 ?1186次閱讀

    UML中類圖詳解

    UML
    電子學習
    發布于 :2023年01月14日 10:12:47

    呃,悄悄地問下,上次那個在線研討會抽獎,木有下文

    呃,悄悄地問下,上次那個在線研討會抽獎,木有下文么????為什么也沒看到獲獎名單公布呢
    發表于 04-16 12:38

    MPLABX IDE消失

    突然,MPLABX IDE消失。解決方法:只使用一個監視器。然后它的穩定。一旦第二個(或更多)監視器被添加/啟用,崩潰再次出現。真討厭!
    發表于 03-12 08:11

    GOOP怎么操作能順利將UML生成代碼

    我是用GOOP內的UML編輯器編輯一個UML圖,然后希望生成對應代碼,然后呢,GOOP讓我選擇一個項目,我選擇后工具就崩潰,有沒有大神對這方面了解的,或者有沒有相關的使用說明,中英
    發表于 10-26 09:23

    UML教程設計核心技術

    UML教程設計核心技術:UML的產生和成長,什么是UMLUML與面向對象的軟件分析與設計,UML的應用領域。Component-Based
    發表于 02-08 17:42 ?0次下載

    什么是UML

    什么是UML UML是一種標準的圖形化建模語言,它是面向對象分析與設計的一種標準表示。它:不是一種可視化的程序設計語言而是一種
    發表于 02-08 17:47 ?3627次閱讀
    什么是<b class='flag-5'>UML</b>

    AMD悄悄更新入門款產品:Radeon Pro WX3100與Radeon Pro WX2100登場

    AMD 悄悄地更新 Radeon Pro WX 產品線,但這屬于入門款產品。
    發表于 06-16 17:38 ?9933次閱讀

    Novellus正在悄悄地開發用于銅的旋轉低k,以防萬一

    應用,Novellus正在悄悄地開發用于銅的旋轉低k,以防萬一 慕尼黑 - 您認為IBM公司周一宣布在0.13微米銅IC中使用旋涂低k電介質材料將是Applied Materials
    的頭像 發表于 02-12 12:20 ?3502次閱讀

    Spotify推出了一個更新,悄悄地添加了新功能

    最終,Spotify推出了一個更新,悄悄地添加了這項新功能。就像Engadget首先注意到的那樣 ,該功能使用戶能夠假設新用戶選擇啟用此選項,從而獲得新情節的推送通知。
    的頭像 發表于 09-24 17:26 ?2578次閱讀

    基于實時UML的雷達軟件設計

    實時統一建模語言 (UML)和面向對象的建模技術代表著雷達軟件設計的一個發展方向。文中介紹使用UML的用例圖、狀態圖、順序圖等進行系統分析、設計、實現和測試 ,并討論了如何選擇 UML
    發表于 03-26 14:06 ?24次下載

    UML簡介與類圖詳解

    本篇介紹UML類圖的基礎知識,包括2種和6種關系,并通過visio軟件,演示如何畫出一個UML類圖
    的頭像 發表于 05-05 09:07 ?4083次閱讀
    <b class='flag-5'>UML</b>簡介與類圖詳解

    UML統一建模語言

    UML-Unified Modeling Language 統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個元
    的頭像 發表于 05-05 10:15 ?888次閱讀
    <b class='flag-5'>UML</b>統一建模語言

    UML狀態圖詳解

    本篇介紹UML狀態圖的基礎知識,并通過visio繪制一個全自動洗衣機的UML狀態圖實例,來介紹UML狀態圖的畫法與所表達的含義。
    的頭像 發表于 05-09 09:00 ?3178次閱讀
    <b class='flag-5'>UML</b>狀態圖詳解

    UML時序圖詳解

    本篇介紹UML時序圖的基礎知識,并通過visio繪制一個物聯網設備WIFI配網的UML時序圖實例,來介紹UML時序圖的畫法與所表達的含義。
    的頭像 發表于 05-16 09:09 ?2181次閱讀
    <b class='flag-5'>UML</b>時序圖詳解
    主站蜘蛛池模板: 亲胸揉胸膜下刺激视频在线观看| 97人人爽人人爽人人人片AV| 色mimi| 女侠含泪巨臀迎合79| 老司机福利视频一区在线播放| 国精品产露脸偷拍视频| 国产超碰人人爱被IOS解锁| 办公室韩国电影免费完整版| 99精品日韩| 99久久爱看免费观看| 97午夜理论片影院在线播放| 18禁在线无遮挡羞羞漫画| 征服艳妇后宫春色| 浴室里强摁做开腿呻吟的漫画| 一本道久在线综合色姐| 伊人久久中文字幕久久cm| 一本道手机无码在线看| 伊人久久精品AV无码一区| 樱花草动漫www| 主播蜜汁丝袜精品自拍| 综合亚洲桃色第一影院| 最新在线黄色网址| 99精品视频一区在线视频免费观看| 97色伦在色在线播放| caoporon超碰在线视频| 超碰最新网站| 芳草地社区在线视频| 国产不卡视频在线| 国产偷国产偷亚洲高清人乐享| 国产啪视频在线播放观看| 国产亚洲精品久久久久5区| 国内卡一卡二卡三免费网站| 精品久久久久久久久免费影院 | 三级网址在线播放| 天天靠天天擦天天摸| 亚洲成人一区二区| 一级毛片在线免费视频| 99re久久热在线视频| 成年黄网站免费大全毛片| 国产精品免费观看视频播放| 国产一区二区三区四区五在线观看|