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