答CSDN關于建模的系列問題
最近工作一直比較忙,很多想法沒時間寫下來,最近回復了CSDN雜志社的一系列相關的建模問題,順便貼在這里,歡迎大家討論。
以下是我對建模的一些看法
1 你怎么看待建模?
作為一個程序員,可能每個人都經歷過這樣一個階段,在需求分析完畢后,立刻開始建立數據模型,也就是把表結構設計出來,然后根據功能需求和表結構開始進行簡單設計,大部分設計文檔為Word和Excel,然后就著手進行編碼。很多經驗比較豐富的程序員用這種方法也可以很快把系統開發出來,這種方法的基本思想是使用數據庫來表示業務模型,那么是否就不需要建模了呢?我們深入考慮一下,就我們廣泛使用的關系數據庫來說,它是否能確切的描述業務模型呢,顯然答案是否定的。一個簡單的二維表只能描述相對單一的對象,對于語義豐富的對象來說,顯然就勉為其難了。基于面向對象設計和CBD(Component Based Design)設計方法,基于軟件的高內聚,松耦合原則,基于提高軟件生產率和可維護性的考慮,目前軟件建模已經是商業軟件開發過程中不可或缺的一部分部分了。
簡單來說,建模就是使你能夠逐層深入解決問題的辦法,建模能夠確認系統的功能需求并為業務系統建立模型,根據場景為系統提供相應的設計模式,根據需求劃分出子系統。
說到這里,我們就不能不提UML了,UML(Unified Modeling Language,統一建模語言)是一種通用的可視化建模語言,用于對軟件進行描述、可視化處理、構造和建立軟件系統的文檔。UML適用于各種軟件開發方法、軟件生命周期的各個階段、各種應用領域以及各種開發工具,同樣,在網站設計或以網站為表現形式的各種網絡應用項目中,UML也表現出強大的作用。UML能夠描述系統的靜態結構和動態行為:靜態結構定義了系統中重要對象的屬性和操作以及這些對象之間的相互關系;動態行為定義了對象的時間特性和對象為完成目標任務而相互進行通信的機制。UML不是一種程序設計語言,但我們可以用代碼生成器將UML模型轉換為多種程序設計語言代碼,或使用反向生成器工具將程序源代碼轉換為UML模型。這就是OMG組織正在力推的MDA,除了UML之外,建模語言還新增加了XMI和MOF,感興趣的可以到相關的MDA網站查找它們的定義。
我們可以看的出,建模不是編碼,利用同樣的UML模型可以生成不同語言的框架代碼,而且可以通過反向生成,在編寫代碼過程中及時更新UML模型,這對系統分析員和項目管理人員來說是夢寐以求的,也就是MDA要實現的。
建模必定會使軟件開發走向成熟。
建模工具推薦使用Rational Rose、Together。
2 公司的建模現狀
本公司作為一個面向全球Out Sourcing業務的軟件外包公司,始終采用規模化和標準化的開發過程和建模方法。由于用友軟件工程公司是CMM3級,目前正在全力推進CMM5的工作,所有CMM KPA(關鍵過程域)的實施能夠保證從公司高層的組織模型就支持這樣的開發過程。目前用友軟件工程采用的軟件開發過程是基于RUP開發方法,并結合用友十幾年的軟件開發經驗建立的一整套符合自己的開發過程和開發標準,對需求,分析與設計、實現、測試和實施都做了標準的過程定義,同時提供相關的模板、模式、樣例、規范、檢查單等,并從組織級加以保證,軟件建模是目前用友軟件開發過程中的核心過程。
同時我們提供了可復用的應用軟件開發平臺,這個平臺提供了一整套基于J2EE和.NET架構的相關應用,基于這個平臺可以迅速開發出相關業務程序。
目前我們需要持續改進的方面就是提高項目開發過程中的可復用度,提升開發人員素質,進行持續技術改進。針對這些我們都會成立相關的Pat小組,根據CMM的標準KPA對我們的過程進行改進。
目前Eclipse的EMF(Eclipse Modeling FrameWork)、Rational的XDE、Borland的Together都是以Modeling為核心的技術架構,都對MDA進行了不同程度的實現,XDE和Together現在已經是商業軟件,估計不久的將來EMF就會集成到IBM WSAD的某個版本中。還有兩款MDA工具,分別是OptiamlJ和ArcStyler,據說不錯,筆者還沒有試用過。
就目前趨勢來看,隨著大廠商對MDA支持力度的加大和OMG組織的影響力,筆者覺得,軟件建模未來的趨勢就是MDA,驅動模型架構,大家應該記住這個名字。
身邊越來越多的人開始使用Mac,經常被問道Mac的使用問題和技術問題。遂決定,每天發布一則#Mac技巧#。同時發布于微博和微信公眾賬號“Mac技巧”,微信號sagacity-mac,有微信賬號的童鞋掃描下圖片或搜索微信號即可

浙公網安備 33010602011771號