我在尋找有關建模的見解。我有一個關於設計模式和基本類圖,序列圖和用例的介紹課程。UML建模 - 在某些時候它是否成爲巫術科學實踐?
在我的編程中,我發現作爲組織工具的寶貴的課程圖。到目前爲止,這些用例是中等有用的。
這學期我在一類進入UML在更深入的即域分析,需求分析,軟件設計與軟件工程等
有一定的感覺,這是開始更加巫術 - 當我們開始努力精確地確定場景中的含糊不清和不斷變化的要求時,我們可以選擇科學或非具體。在大多數應用程序中,UML是否經過基本類圖和用例圖在生產力中實際上有用?
我在尋找有關建模的見解。我有一個關於設計模式和基本類圖,序列圖和用例的介紹課程。UML建模 - 在某些時候它是否成爲巫術科學實踐?
在我的編程中,我發現作爲組織工具的寶貴的課程圖。到目前爲止,這些用例是中等有用的。
這學期我在一類進入UML在更深入的即域分析,需求分析,軟件設計與軟件工程等
有一定的感覺,這是開始更加巫術 - 當我們開始努力精確地確定場景中的含糊不清和不斷變化的要求時,我們可以選擇科學或非具體。在大多數應用程序中,UML是否經過基本類圖和用例圖在生產力中實際上有用?
它開始了伏都教。圖表軟件設計一直就是這樣。這是一種在圖片中顯示您想要用人類語言表達設計的方式。如果它足夠精確以生成代碼,那麼我們會繼續這樣做,並完全免除編碼步驟。
UML爲舊方法帶來的唯一新東西就是它是一個標準。即使那樣,有很多不同類型的「標準」圖表,我稱它爲標準時,我不得不稍微嘲笑一下。
然而,設計本身的活動是非常重要的除了最瑣碎的任務之外。問題在於,你是否要花一些時間來設計你的系統,或者是在寫了大量錯誤或明智的代碼之後,立即進行設計。如果您希望事情能夠快速完成和/或完成,您可以事先做一些設計。
這不僅適用於寫軟件BTW。這是任何複雜的創意活動的固有組成部分。我的岳父是一位退休的英語老師,他在休假時給孩子們寫了一張長長的明信片,實際上他寫明瞭他的明信片的大綱。大多數主要畫家和雕塑家首先製作測試圖。
這很棒,當你可以將這個想法從實體中分離出來時:) UML是一個好主意,但它的實質缺陷太多了,目前的標準。 – 2011-02-12 21:22:35
不在MHO。就我而言,這完全是多餘的。
只要你以其他方式做你的設計,那麼你是對的。但設計本身很重要。沒有它,你(或者我至少)會浪費大量的時間在錯誤的方向上編碼。 – 2011-02-07 17:43:08
號
種種和文件形式,是僅作爲通信手段是有用的。文件的文件爲了完全浪費時間。只有當它與解釋(字)文檔它是什麼,你想要的,爲什麼,以及如何
寫作UML是有用的,富有成效。只有這樣UML才能幫助說明你想在文檔中說些什麼。
僅僅爲了畫正方形而產生無數UML的軟件團隊只是在浪費時間。
從我的經驗:不是真的。
我從來沒有遇到過一個非常有用的序列圖。當記錄的過程變得過於複雜時,序列圖不再有用,因爲您在所有的行中都很難完成。但要了解一個微不足道的過程,我不需要序列圖。當作爲設計工具使用時,您將浪費大量時間調整圖表,詛咒MS Visio或您使用的任何東西。
然而,對於在白板上討論某些內容時的小快照,該表示法可能很有用。但是這對任何符號風格都是有效的; UML建立得很好,增加了你正確理解的機會。
類圖在設計和後驗文檔中都很有用。但恕我直言,你不應該對他們過於迂腐。
您從建模開始,這是一件很棒的事情,尤其是在計算機科學領域 - 您一直在進行建模。請記住,UML是軟件系統建模符號的一個標準,僅此而已(例如,它不是分析或設計方法),也不例外(例如,它不是開發人員通過抽象廢話來看效率的方式)。
你走在正確的軌道上,時刻牢記什麼是實際有用的,並給你一些價值。這與您的問題並不完全相關,但起訴案件不是用例圖,還有更多,有書面形式,可能會幫助您解決您在下一課中所描述的大部分內容。
至於你所關心的問題,建模是關於從不重要的細節中抽象出來,所以可能會出現一些含糊不清的情況。關鍵是它們對於建模的目的應該是不重要的。例如,如果你想展示設計的結構,如果你包含了你的類的所有屬性,這並不重要。使用某種模式。如果使用公共屬性(包括getter和setter(Java),屬性(C#)或使用元編程(Ruby)生成的對象方法),則也可以使用公共屬性而不關心自己。這同樣適用於使用用例捕獲的場景 - 當然,您不能(也不應該嘗試)使用UML捕獲替代分支,但您可以在使用案例描述中描述條件,以避免模糊不清,而無需先開發系統,事後發現它是錯誤的。
至於巫術的東西 - 問題是UML很大,很多開發者不知道如何正確使用它,並且經常創造更多的混亂而不是價值。不要被UML普遍的不尊重所困惑,問題出現在工具供應商,委託人和懶惰的開發人員中...... UML中許多概念的背後是衆所周知的以學術科學工作爲背景的正式模型,例如,狀態圖來自Harel statecharts(http://linkinghub.elsevier.com/retrieve/pii/0167642387900359)。所以我認爲原則上它不像巫術那麼多,它只是用不支持標準的工具超賣,而且標準試圖成爲和結合所有東西(這是一個統一的語言......),但是這個速度在慢慢地提高。
我給你的建議是嘗試學習重要的東西 - 那些形式主義,分析和設計方法,實際嘗試它們併爲自己決定什麼是有用的。如果沒有其他原因,學習UML是因爲它是用於分析和設計的語言,儘管它很大,但仍然比它的〜50個前輩的總和還要好。
這應該可能是社區wiki,但我不認爲我有權這樣做。 – 2011-02-07 17:31:16