UML軟件開發過程和支持環境研究論文
國際上,軟件工程領域在近3年內取得了前所未有的發展,其成果超過軟件工程領域過去10至15年來的成就總和。其中最重要的、具有劃時代意義的成果之一就是統一建模語言UML(Uni—fiedModelingLanguage)的出現。
UML是繼80年代末和90年代初面向對象建模技術高潮后,出現方法學大戰,應市場對統一建模語言的要求,由世界著名的面向對象技術專家Booch>Jacobson和Rumbaugh發起,在著名的Booch表示法、OOSE方法和OMT方法的基礎上,廣泛征求意見,集眾家之長,幾經修改而完成時。在美國,截至1996年10月,UML已經獲得工業界、科技界和應用界的廣泛支持,已有700多個公司表示支持采用UML語言作為建模語言。
到1997年11月17日UML被OMG(ObjectManagementGroup)米納為基于面向對象技術的建模語言標準。這標志著面向對象技術中建模語言的爭論暫時告一段落。
作為建模語言,UML可以說是一種定義良好、易于表達、功能強大且普遍適用的建模語言,
它為用戶建模提供了完整的符號表示和不同層次的兀模型(metamodel)如用例圖(uses—casedia—gram)包圖(packagediagram)、類圖(classdiag—ram)、狀態圖(statediagram)、X寸象圖(objectdia—gram)、活動圖(activitydiagram)、順序圖(se—quencediagram)合作圖(collaborationdiagram)組件圖(componentdiagram)、配置圖(deploy—mentdiagram)等。它的作用域不僅支持面向對象的分析與設計,還支持從需求分析開始的軟件開發的全過程,但如何恰當地將這些可視化圖形建模技術用于解決軟件開發所面臨的問題以及對建模過程的研究和支持工具的研究,仍是目前該領域的熱點問題。
目前,在基于UML的開發方法和環境方面國際上已經進行了一些研究和實際開發工作。Ra—tional公司正致力于它稱之為Objectory過程的研究,并試圖將其原有支持OMT的工具作進一步擴充,以期支持UML建模,并支持對OMT模型的升級。國內對UML的研究尚處于起步階段。
本文從當前對軟件開發過程的需求出發,提出了UML柔性軟件開發過程,并設計了相應的集成化支持環境的組成框架。
1UML柔性軟件開發過程
電子計算機技術和現代通訊技術的飛速發展正迅速改變著人們對時間和空間的概念,世界在物理上正變得越來越小,而內容卻比以前任何時候都復雜。全球經濟競爭、信息高速公路等近代信息技術都迫使各個企業面臨著新的挑戰。為了能在瞬息萬變的市場和激烈的競爭中保住一席之地,負責信息技術機構的主管人員將不得不學會應變管理技術(changemanagement)。在軟件開發領域,需要改變其開發與生產的范式,以滿足這種新的需求。
傳統的軟件開發模式越來越難以滿足當前企業和市場的需求。新的產品開發周期已不再是一次性的從需求定義、軟件設計、實現和交付,迭代式增量開發方式已得到廣泛采用。這是由于軟件系統的規模越來越大,其復雜程度不斷提高,而與此同時又不得不面臨激烈的競爭對手和瞬息萬變的市場。時間就是效益,誰先占領市場,誰就是勝利者。但是占領市場和擊敗對手的條件除了時間之外,更重要的是過硬的.質量和提供用戶真正需要的產品。因此將新的軟件開發模式歸結為圖1所示的迭代式開發和圖2所示的柔性軟件開發模型。
所謂柔性軟件開發是指軟件開發過程應在需求工程的牽引下,首先建立系統模型,對模型進行模擬、分析和調整,進行從需求到建模的“自頂向下建模,由底向上修改”即從需求工程出發,首先明確用戶要求,確定需求優先級;在此基礎上為系統建立模型,該模型應是可模擬的,通過對模型的模擬運行,以分析模型是否滿足用戶需求和滿足的程度。整個建模過程是自頂向下逐層細化的,而模擬修改則由底向上地進行。
然后在保證模型正確的基礎上,進行代碼的生成,同時還應考慮到對需求修改的靈活性和快速響應能力,因此應能進行‘閉環開發”即不僅能支持從模型到代碼的自動生成,將新的模型轉換為代碼,還應能支持從代碼到模型的逆向變換,將原有的代碼轉化成模型,進行再次分析、修改和調整,進行新一輪的開發,從而為增量式開發提供支持,能分階段提交產品,也提高了對用戶需求變化的響應速度和應變能力,滿足用戶不斷變化的需求。
2UML軟件開發支持環境
為此,新一代集成化UML軟件開發環境應是能無縫集成以上2個階段的一個柔性軟件開發環境。其組成應包括UML可視化建模系統、UML模擬系統、UML代碼生成系統、UML逆向變換系統及其支持環境等,且這些環境的創建均應基于UML的定義,除了語法規則外,還包括詳細的語義定義,如圖3所示。從而支持系統建模、模擬和“閉環式開發'。
1)UML可視化建模系統UML可視化建模系統支持從系統需求、系統分析到系統設計的整個建模過程,提供UML圖形的編輯和美化工具,保證得到語法正確、語義完整的UML圖形模型,并提供包括文檔管理、圖形打印等輔助支持。可進一步分為以下幾個子系統,如圖4所示。
()可視化模型建造系統由于UML不僅支持對系統的對象建模,還支持對需求和系統體系結構的建模;不僅支持系統的靜態模型,還支持對系統動態模型的描述。因此模型建造系統應支持以下模型的創建和編輯:需求模型。包括靜態模型和動態模型。靜態模型即功能模型,在UML中通過用例圖描述系統功能和各功能的潛在用戶及它們之間的關系;動態模型通過活動圖支持對業務過程或事務處理過程的描述。
系統對象模型。同樣包括靜態模型和動態模型。通過包圖、類圖和對象圖定義系統對象及對象間的靜態關系。通過順序圖、合作圖和狀態圖描述對象間的交互關系和交互順序、對象的生命周期以及生命周期中對象可能存在的狀態以及狀態間的轉換約束。
系統體系結構模型。通過組件圖、配置圖支持軟件體系結構和硬件體系結構以及通信機制的定義。進一步還應支持軟硬件系統之間的合作關系的可視化表示。
(2)UML語法正確性檢測機制
為保證所得到的UML圖形模型符合UML的語法定義[61,應提供語法正確性檢查機制。一個較好的方法是提供語法制導的UML可視化建模工具,從而在模型的建造過程中提供動態的語法制導和語法檢
測功能,既方便用戶學習和使用,也可保證所建造的模型在語法結構上的正確性。
(2)UML模型的一致性檢查機制
由于UML支持從需求分析到系統設計整個建模過程,并且支持用戶從不同角度描述系統,而大型軟件項目各模型間的協作和約束關系錯綜復雜,顯然不應由用戶獨自承當它們的管理和維護工作。作為建模支持系統,應提供模型間的一致性檢查機制。
首先,該機制應根據以上對基于UML軟件開發模型的討論,在軟件開發階段時間軸上確定引入模型的時間;其次,明確同一種模型的細化分層機制,以及怎樣用其它模型描述主模型的細節;第三,在軟件開發階段時間軸上,一個模型存在自頂向下分解的層次結構,各時間階段產生的層次結構中各種UML模型相互約束協作又產生復雜的網狀關系,需要建立不同階段、不同功能的同一種模型和不同種模型約束和協作的數學模型;最后,在該數學模型的基礎上,研究將約束和協作關系有機地加入軟件開發各個階段的模型一致性檢查機制。
此外,由于允許從不同的角度描述同一模型,如交互圖包括順序圖和合作圖,這兩者之間允許存在冗余信息,因此不僅應保證二者間信息的一致性,作為進一步的支持,還可考慮支持模型間的一致性轉換。
(3)UML模型的完備性檢查機制
完備性檢查機制須在UML語義定義的基礎上,首先定義UML圖形模型的完備性準則,以保證UML圖形模型的完備性。對于UML圖形模型的完備性可以分3個層次來考慮:各個圖形的完備性;各個子模型的完備性,即相關圖形的組合完備性;系統模型的整體完備性。區分這3種完備性的意義在于:在不同階段可以進行語義完備性和語義正確性檢查。如在需求分析階段,可以對通過完備性檢查的活動圖進行模擬,以檢查該活動圖的正確性。而在整個系統模型通過完備性檢查之后,方可進行代碼的自動生成。
(5)文檔生成和管理工具
文檔生成工具是指文檔自動生成機制。作為一個建模支持系統,應支持包括需求描述、面向對象分析和設計、系統體系結構等文檔資料的自動生成。文檔管理工具是指文檔資料的版本管理等輔助管理工作。
1)UML模擬系統
系統模擬機制支持對UML模型的功能模擬和性能模擬,它包括以下3個部分:
(1)對動態模型的模擬
主要包括對活動模型、交互模型(順序圖和交互圖)以及狀態圖的模擬。根據預先定義的語義,模擬各個模型對系統在時間特性上的描述是否真實地反映了客觀現實和用戶需求;并應提供相應的跟蹤調試機制。
(2)對系統功能(需求)和用戶界面的模擬。
用來支持快速原型。借助于代碼自動生成工
具和用戶界面自動生成工具的支持,產生系統原型,并盡早提供給用戶,以確保建模的有效性。
(3)系統性能的模擬
UML支持對系統體系結構的建模,作為一個良好的建模和開發支持工具,應支持對不同系統配置和功能分配情況下對系統性能的模擬,以便得到較好的系統設計方案和合理的系統配置。
2)UML代碼生成系統
支持可視化對象和行為的代碼生成,也稱之為UML支持環境的正向變換系統。
軟件開發的最終目的是產生可執行代碼。大多數軟件開發環境中,建模和編碼過程缺少有機的統一,這是有其歷史原因的。其中最重要的原因是缺少功能強大、簡單清楚、標準統一的建模語言。UML的出現并被OMG接受為標準,為消除這個障礙提供了一個最好的起點。
UML雖然是一種可視化建模語言,不是編程語言。但是它與大多數面向對象語言(例如C++、Java)存在緊密的映射關系。在UML語言的代碼生成機制方面,國際上一些大公司有一些有益的研究和開發工作。比較有代表性的有Ra—tional公司和AdvancedSoftwareTechnologiesInc。但這些研究和實現大多限于UML語言的靜態模型中的類圖,其它模型的代碼自動生成機制的研究資料則非常罕見。
為此代碼自動生成機制應根據UML語言多種模型動態協作、關系復雜的特點,首先界定UML的語義和面向對象編程語言(首先是Java)的語義,研究專用語義機制描述面向對象模型和語言中動態和靜態機制,建立兩者的語義模型;再在該語義模型下建立兩者的映射模型;并研究代碼自動生成實現技術和獨立于UML語言本身的編程語言的特殊機制。代碼自動生成機制的研究與實現應考慮后面的逆向轉換機制。
3)UML逆向變換系統
當用戶對生成的代碼進行修改后,逆向轉換機制將用戶的修改轉換到模型上。否則將造成模型和代碼間的不一致性,使得系統的擴充、增刪和維護難以進行。
逆向轉換機制一般由建模、析取和抽象3個步
驟組成。動態模型的逆向轉換機制是研究的難點。我們將在正向轉換的基礎上,建立起模型到代碼的映射關系,嘗試建立起一套約束機制,實現自動的或人工導引的逆向轉換機制。在國際上,這方面的研究并不成熟。
3結束語
根據一年多來對UML的學習和分析以及對UML支持環境的研究和開發工作,本文從當前對軟件過程的需求出發,提出了當前軟件開發應具備的特點和開發模型,在此基礎上設計了集成化UML軟件開發環境框架,提出了需解決的問題。目前我們已經完成了UML可視化建模系統的開發工作,并在研究生課程中由80多名學生進行了試用,反映良好。UML軟件開發支持環境的其他子系統正在研究、開發之中。
【UML軟件開發過程和支持環境研究論文】相關文章:
環境評價研究論文04-02
環境保護研究論文12-30
內控環境問題研究的論文06-17
人居居住環境研究論文10-27
研究論文的類型和結構07-16
水利工程生態環境和發展共存的研究論文05-27
環境侵權免責事由研究的論文06-17
企業環境成本控制研究論文10-23
環境公益訴訟主體研究論文11-04