好久沒看到UML的論戰了

2021-05-22 20:03:09 字數 1527 閱讀 5336

經過2023年前後那一陣紅火,現在已經不太聽到關於uml爭論了,難得又見到csdn首頁推薦一篇,十分高興,不過感覺那有些觀點難以苟同。正好快下班了,抒發一下感慨吧。

我們要先搞清楚幾個名詞:notation、modeling、methodology、process。

notation,表示法,是一套符號系統或者說書面語言,是軟體工程師用以描述其程式的工具。最初uml僅僅就是表示法,並且是90年代面象物件表示法大戰的勝出者。

modeling,建模,就是為複雜系統建立模型以便進行分析研究的活動。模型是對複雜系統的簡單抽象,但已經包含理解該系統的必要資訊,人們可以用模型來視覺化抽象問題、進行模擬、操縱模型,從而不斷加深對系統的理解和認識;建立的模型需要使用某種視覺化的形式來記錄,以便人們能夠實施和記錄這些思維活動。

methodology,方法學,在軟體開發這個行當裡,就是完成分析、設計、編碼、測試、交付等技術活動的方法集,每個方法具體反映為若干原則和步驟,遵循之即可保質保量的完成相應環節的任務。

process,過程,則是幫助專案相關各方了解專案狀態、調控專案,降低專案風險而制定的規章和流程。 作為軟體開發人員來說,無論專案大小,都需要有辦法表達自己對系統的理解、做出的分析和設計。每個人都可以定義自己的語言,不過既然已經有普通話了,為什麼還要訓練對方先掌握自己的方言呢? uml或許有其不足之處,但一般人拍拍腦袋想出來的符號集只怕問題更多。況切,在每篇文件上都附乙個方言速成指南,總是比較搞笑的。

看看科學技術書籍前面都要附乙個凡例,為啥呢?因為沒有標準。可是讀者又有多少人會耐心看呢?看了就能立馬記住?換家出版社就得記一套,有意思?

從這個層次出發,我總是建議周圍的人都盡可能多用uml,一些小細節一時領會不了就避而不用好了,用的有些不規範也不打緊,總比完全沒規範的強點。相信用得多了,就有感覺了,再時不時看一眼資料,自然就隨心所欲不踰矩了。

那麼用uml的時候,用ibm rational rose這類建模工具好,還是ms visio之類的畫圖工具好呢?這要具體對待,如果這個設計需要反覆討論修改,那最好還是用建模工具;如果基本上只是個別方面的描述或者講完就拉倒,那畫圖工具可能更方便。意識到其中的差別,有針對性的選擇,可能有意義。

建模工具並不只是畫畫圖形而矣,如果你需要為乙個系統提供不同區域性的檢視,那你將不必每幅圖都從頭畫起;更重要的是,如果你打算對分析設計逐步求精,那麼在模型上做出的修改很容易同步到所有檢視上。

模型的好處並不僅限於圖形輸出便利,不管是不是利用uml建模,我們的軟體分析設計工作不外乎確定靜態結構、描述動態過程,往往是乙個逐步細化的迭代過程,有乙個模型視覺化的進行操作是很方便的。比如,有了基本的類設計之後,用序列圖來看看是不是各個需求都能用這個結構完成,中間可能發現得再加點類或者屬性或者操作。

至於**生成、mda、可執行模型,在特定領域其實也已經有一定可用性了,不過做為通用的開發手段,為時尚早。

比較不幸的是,很多人一提uml,就要跑到方法學和過程的範疇裡去糾纏不休。個人以為,今時今日,方法學還是有些進展,如何有效的識別出物件及其關係,如何設計出滿足可靠、易維護等要求的結構還是頗總結出了一些方法,而過程跟人這個因素關係太密切,我們的認識還粗淺得很。上來就把簡單的事情複雜化,自然用著不順手啦。

好久沒看書了,DIV CSS,我又來了

寒假學習,準備推薦這本書 div css布局與樣式之 設計精粹 一共有18章。這裡記錄一下 第 1章介紹了 css模組化 xhtml 語義 css sprites技術 css重置 等知識要點,並分享了實際專案中的使用技巧 第 2章 第15章詳解運用 div css製作的 14個型別和風格各不相同的大...

好久沒做的事

好久沒做的事,我是乙個非常懶惰的人,很容易被周圍的環境所影響,一旦我鬆懈了,我就可以一直鬆懈下去,看直播,看電視,玩遊戲等等,浪費著我的時間 馬上大學畢業了,要準備簡歷找工作了。才發現大學四年是如此頹廢,啥也沒學,啥也沒考,啥也沒讀,啥也沒做。4啥就代表著我的4傻,做事傻,為人傻,腦子傻,無知傻。好...

任志強罕見看衰樓市 沒看到任何理由能阻止下滑

任志強表示房地產庫存無論是住宅還是商業地產,庫存仍舊在加大。任大炮在去年曾和英聯國際不動產董事長郭建波曾有過一場圍繞房價漲跌,並以 裸奔 為籌碼的賭局,最終郭建波提前認輸。現在看來,如果該賭局賭到明年,也許最終裸奔的就是任志強了。在今日舉行的 全聯房地產商會2014年會 上,任志強稱,房地產庫存已經...