程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於UML柔性開發模型之Java設計

基於UML柔性開發模型之Java設計

編輯:JAVA編程入門知識

  一. 面向對象技術與UML語言

  與傳統的結構化軟件開發技術不同,面向對象技術提出了對象的封裝、繼承、多態性、對象的覆蓋等方法,而傳統的程序表示方法(如:框圖、NS圖等),無法對面向對象這些新的特性加以描述表達。因此,面向對象技術的表達、面向對象技術的方法論也是面形對象技術必不可少的研究內容之一。

  面向對象方法論從1986年Booch率先提出後,至今已有50種以上的方法論出現,常見的有Rumbaugh的對象模型技術OMT、Booch以及Yourdon的面向對象分析與設計(OOA/OOD)、Jacobson的面向對象軟件工程(OOSE)、(Martin/Odell)的面向對象分析與設計(OOAD)、(Shlaer Mellor)的面向對象系統分析(OOSA)、Brock的責任導向設計RDD等等,各有其特色,但是不同分析設計方法缺乏統一的標准。

  為了整合面向對象方法論,1995年由Rumbaugh、Booch、Jacobson三位面向對象大師提出與最重要的、具有劃時代統一建模語言(Unify Modeling Language,簡稱 UML)。1997年後,UML成為現今國際軟件工業的標准。事實上,近年來UML在世界范圍,已經逐漸成為是面向對象技術領域內占主導地位的標准建模語言。

  二. Rational Rose UML柔性開發模型

  Rational Rose UML柔性軟件開發模型,是指在軟件開發過程中,根據需求工程的牽引,首先建立軟件系統的頂層模型,並對其進行模擬、分析和調整。然後,將頂層模型自頂向下地進行分解,建立該系統各個子系統的模型,對這些子模型進行模擬、分析和調整。將子模型的模擬結果,逐次代入上層,再對該上層模型進一步進行模擬、分析和調整,如有不適,則進行修改。因此整個建模過程是一個"自頂向下建模,由底向上修改"的反復迭代的過程。簡言之,柔性軟件開發過程是一個在需求牽引下,自頂向下分層細化地建模,然後按照"T型技術",通過對模型的虛擬執行,由底向上地逐層上移修改,直至各層的模擬結果都滿足需求為止。

  圖 1柔性軟件開發模型

  代碼的生成建立在模型正確性的基礎上,同時考慮到對需求修改的靈活性和快速響應能力,實施能夠反饋修改的"閉環開發"。即不僅能支持從模型到代碼的自動生成,將新的模型轉換為代碼,還能支持從代碼到模型的逆向變換,將原有的代碼轉化成模型,進行再次分析、修改和調整以及新一輪的開發,從而為增量式開發提供支持。這樣不僅能做到分階段提交產品,也提高了對用戶需求變化的響應速度和應變能力,以滿足用戶不斷變化的新的需求。Rational Rose是一個能支持系統建模、系統模擬和系統生成的"閉環式開發"的集成化支持環境。

  圖 2基於Rational Rose UML開發模型用例圖

  三. Jbuilder對UML的支持

  Java作為純面向對象的計算機語言,自然與UML關系密不可分。目前比較流行的Java集成化的開發系統(IDE),如:Jbuilder7、Visual Café、IBM Visual age,都或多或少地提供了對UML的支持。在此,只討論Jbuilder集成化開發環境。

  圖 3 Jbuilder集成開發環境

  圖 4 Jbuilder自動生成的應用程序UML類圖

  Jbuilder對雖然提供了對UML的 支持,不過鄰人遺憾的是Jbuilder對UML的支持是有限的。截止到Jbuilder8版本,只提供了由程序源代碼到UML類圖自動生成功能。在某種意義上,該功能確實為開發人員提供了迅速分析現有程序代碼的功能。但是,Jbuilder自身並不支持由UML類圖到程序代碼這一源碼產生正向過程(Jbuilder中EJB的開發過程中,只提供了簡單的類似UML圖到程序源代碼的過程)。

  我們知道,一個產品的開發與研制,通常是由產品設計工程師繪制出產品圖紙,然後,再由產品加工人員,根據圖紙加工出產品。在這其中"圖紙"是設計的第一步驟,而Jbuilder(至少在Jbuilder8以下版本)並沒有提供這一功能。因此,單純地應用Jbuilder並不能實現UML柔性開發模型。

  四. Rational Rose UML柔性開發模型Java開發環境的建立

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved