回答
爲了回答你的問題,在我看來,有關考慮使用UML的方式。
在UML distilled,Martin Fowler的考慮使用UML的方法有三種:
- 素描
- 藍圖
- 可執行UML
1素描
草圖使用UML方便refactoring節目,練習福勒是seriously interested in。一般來說,對現有程序有一個綜合的看法是適當的。
2.藍圖
藍圖是在某種程度上學術界使用的語言。主要問題在於軟件的演變:模型必須重新編碼,不要成爲遺留問題。
3.可執行UML
可執行UML是一種在其成爲表達的用於節目的主要途徑的語言的極端實踐的。在這種情況下,程序通常由包含所有軟件信息的初始UML模型生成。源代碼只是軟件的轉換形式。該軟件隨模型演變,再次生成代碼。這隻有通過完整的軟件UML建模才能實現。簡而言之,這是對UML的徹底使用。
我認爲這三種使用UML的方式之間的區別是對UML一般用法的一個相關考慮。
UML作爲源代碼修改
的界面不過我明白你在找什麼:應該有使用UML,作爲修改源代碼的接口的另一個(第四)的方式。存在一些解決方案,但都不是很方便,這裏是我所確定的舉措:
- Green UML是一個Eclipse插件,由布法羅大學使用它自己的類圖編輯器
- Code Canvas是研究課題由微軟,不是UML但有趣的,一篇文章是the ACM communications
- BlueJ可以是一個很輕的IDE包括類圖編輯器修改源代碼
- Coffea UML是一個個人項目
這裏有幾個關於Coffea的文字。其目的是將Eclipse JDT重構功能鏈接到Eclipse UML2Tools圖編輯器。它在類圖編輯器中正常工作。我的目標是將其擴展到活動圖。不幸的是,從那以後,UML2Tools已經成爲傳統。 Coffea並沒有死,而是差不多。我已經從UML2Tools編輯器中分離了核心UML2函數。我的意圖在項目現場詳細說明。然而,我在業餘時間上工作,我還有其他職業。
當且僅當修改僅在一個方面(例如行爲或結構)時,UML纔可用作源代碼修改的接口。在Executable UML範圍之外的軟件的全面版本是不可能的。爲這樣的目的而設想的編輯將是多個圖的組合,這將是非常複雜的。這樣的編輯器應該接近福勒描述的草圖模式。
結論
不幸的是,我認爲,UML作爲修改源代碼的接口是目前一些理論。主要的挑戰是將修改與初始UML模型(您的案例)相集成。鑑於各種UML工具,我認爲Fowler對UML的使用是唯一嚴肅的解決方案。看來你只能使用Astah作爲Executable UML。我甚至不確定該工具是否提供了所有這些功能。
謝謝您的回覆,可能是我需要改變我的做法。 – 2015-01-13 15:11:58
這取決於你,UML和代碼之間的關係並不明顯。在我看來,UML工具應該更傾向於使用更適合於日復一日的繪圖。很少有組織接受藍圖模式,很少有狂熱者會關注可執行的UML。結果是UML在企業發展中的使用很差。請讓我知道你將如何管理你的建模... – bdulac 2015-01-13 15:25:41
- 1. 保持數據庫與代碼同步
- 2. 建設Magento - 如何保持代碼和CMS同步
- 3. 保持MasterViewController和DetailViewController同步
- 4. 保持測試類與源類同步
- 5. 保持同步和異步執行
- 6. 合同異步和同步代碼
- 7. CONTACT_ID - 保持同步
- 8. 保持2代表的設計同步
- 9. 代碼合同和異步
- 10. 的Git樹 - 保持資源代碼同步
- 11. 如何保持圖像同步?
- 12. FormsIdentity.Ticket.UserData和認證ticket.UserData保持同步
- 13. 保持elasticsearch和數據庫同步
- 14. 保持WordPress(本地和遠程)同步
- 15. 保持JavaScript和CSS同步的做法?
- 16. 同步代碼
- 17. 如何保持代碼和規格同步? - 有沒有好的工具
- 18. 如何保持不同步
- 19. 保持i18n資源同步
- 20. 保持mongo模式同步
- 21. ,DbSet.Local保持不同步
- 22. 保持兩個AVPlayers同步
- 23. 如何保持視圖模型和模型的集合同步
- 24. NetBeans代碼同步
- 25. 同步代碼塊
- 26. IDE爲Web應用程序開發,保持本地代碼和服務器代碼同步
- 27. 如何保持需要保持同步的獨立開發環境,同步?
- 28. 代碼如何與圖形同步?
- 29. 在項目生命週期中如何保持對象模型圖和代碼實現同步?
- 30. clearcase和svn之間的代碼同步
「我太懶了」對其他人不太有幫助。爲什麼你有人會/應該幫助_lazy_人?提示:在[uml]標記的舊問題中搜索「逆向工程」,使用您使用的編程語言過濾 – xmojmr 2015-01-10 06:23:51
實際上,這是編程中兩次做同樣事情的非常糟糕的做法,所以我希望人們能理解。儘管如此,謝謝你的提示。我會檢查的。 – 2015-01-10 08:53:08
我沒有在編程中提出代碼重用的問題。我質疑你自己顯示的研究成果(如http://stackoverflow.com/help/how-to-ask)。優化和重視你的資源(生活,時間),但不要懶惰,不要要求別人做你的工作。如果沒有指定語言並顯示您正在討論的代碼和圖表的某些部分,則此問題太廣泛且太抽象。另見http://agilemodeling.com/essays/bestPractices.htm – xmojmr 2015-01-10 09:10:57