• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

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

    發布: 2007-5-25 11:35 | 作者: 未知 | 來源: 系統分析之窗 | 查看: 51次 | 進入軟件測試論壇討論

    領測軟件測試網

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

    轉載自賽迪網
    作者:李魯群

    與傳統的結構化軟件開發技術不同,面向對象技術提出了對象的封裝、繼承、多態性、對象的覆蓋等方法,而傳統的程序表示方法(如:框圖、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開發環境的建立

      Rational Rose 是IBM公司出品(最近,Rational 公司已經被IBM公司收購)的面向對象統一建模語言與軟件開發集成環境,它提供了Java,C++,Visual Basic,ADA等等諸多軟件的軟件代碼雙向生成環境,另外,他還提供了與Jbuilder集成開發環境。該開發環境建立步驟如下:

    (1) 首先安裝Jbuilder。

      讀者可以從http://www.borland.com/jbuilder上免費下載Jbuilder8的試用版本。Jbuilder8的安裝過程比較簡單,一般選擇默認安裝選項即可,詳細過程在這里就不介紹了。

    (2) 安裝Rational Rose。

      Rational Rose可以從http://www.rational.com上下載,并免費試用。Rational Rose在安裝過程中,有兩個特別重要的選項是:安裝對Java的支持和安裝對Jbuilder 鏈接(Link)支持。Rational Rose在安裝過程中會自動搜尋Jbuiler的安裝目錄并在Jbuilder的安裝目錄,安裝一些必要的鏈接文件文件。

     


    圖 5 Rational Rose中配置Jbuilder


     


    圖 6 Jbuilder、Rose開發模型交互選項


    (3) Rational Rose與Jbuilder開發環境的配置。

      在Rational Rose中配置Jbuilder。在Rational Rose的Tool工具欄上,選擇Java/J2EE-Project specification-Code Generation,選擇IDE為Jbuilder,另外,還可以復選Automatic Synchronization (見圖5),可以實現jbuilder代碼與Rose UML模型圖的同步。至于Jbuilder,無需任何配置,在Tool菜單中,自動增添了Rational Rose Update Model和Rational Rose Show In Model菜單選項,以實現模型與代碼的雙向同步(見圖6)。

    五. 使用Rational Rose 與Jbuilder UML柔性開發模型案例

      為了拋磚引玉,演示Rational Rose 與Jbuilder UML柔性開發模型案例,筆者舉一個最為簡單的入門例子。該程序運行時候,根據用戶的輸入,顯示"你好。!"(其中***,為用戶輸入的字符串)。

      在這個例子中,我們使用一個接口(interface),Hello.java,該接口提供了一個靜態最終變量public final static String hi="你好",并提供了一個抽象的方法say(),HelloWrold,繼承interface Hello.java,完成接受用戶輸入,顯示"你好。!"。

      首先,我們使用Rational Rose對上述設計思想進行描述,勾畫UML類圖(見圖7)如下:

     


    圖7 Rational Rose UML類圖設計以及Java代碼生成


      選擇選擇Java/J2EEàProject specificationà在Code Generation,默認在在c:\RoseJbuilderLink目錄下產生的Java代碼框架,并自動打開Jbuilder見圖8。

     


    圖8 Jbuilder環境下查看Rational Rose生成的Java代碼


      將上述生成的Hello.java和HelloWorld框架代碼(指:代碼結構),在Jbuilder環境下填寫必要的代碼:可以得到Hello.java

     
    //Source file: C:\\Hello\\src\\Hello.java
    
    public interface Hello
    {
       public final static String hi="你好";
    
       /**
        * @roseuid 3E9932680328
        */
       public void say();
    }
    HelloWorld的代碼為:
    //Source file: C:\\Hello\\src\\HelloWorld.java
    
    import java.io.*;
    
    public class HelloWorld implements Hello
    {
       private String name=null;
    
       /**
        * @roseuid 3E9937D302C8
        */
       public HelloWorld()
    
       {
         System.out.println("請輸入您想問候的名字(按回車結束):");
        try {
          DataInputStream da = new DataInputStream(System.in);
          name = new String(da.readLine().getBytes("ISO8859-1"));
        }
        catch (IOException ex) {  }
      }
    
       /**
        * @roseuid 3E9937BC0008
        */
       public static void main(String [] args) {
         HelloWorld hh=new HelloWorld();
         hh.say();
    
       }
          /**
        * @roseuid 3E9937D30318
        */
       public void say()
       {
        System.out.println(this.hi+name);
       }
    }


      在Jbuilder環境下修改代碼以后,選擇ToolsàRational Rose Update Model,可以反向更新在Rational Rose環境下的UML類圖。

      在上述這個非常小的例子中,我們可以看到軟件的開發過程為:設計――代碼――設計,設計與代碼是雙向自動更新的,這種設計方法符合開發人員的思維,對軟件的源碼維護也十分直觀,是一種高效的軟件開發方法。

    6 結束語

      軟件開發的技術(或者稱藝術)是沒有止境的,使用Java與UML結合可以消除在過去數十種面向對象的建模語言存在一些潛在的不必要的差異,以免用戶混淆; UML對軟件結構的表達與分析起著十分重要的作用,目前UML已經在軟件開發領域占據了非常重要的地位。另外,通過UML統一建模語義和符號表示,能夠統一和穩定我國的面向對象技術市場,使項目根植于一個成熟的標準建模語言,從而可以大大拓寬所研制與開發的軟件系統的適用范圍,并提高其軟件系統靈活程度。采用Rational Rose UML柔性開發模型Java開發環境的建立與軟件設計是一種高效快捷的軟件開發方法


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>