工程碩士研究生文獻綜述報告范文

來源: 作者:anne 發布時間:2019-02-08 論文字數:0字
論文編號: sb2019020814502524839 論文語言:- 論文類型:-
1. 軟件工程的發展 計算機從剛開始被發明到現在,經過了廣泛的發展和研究,也變得越來越好,其中,由于計算機技術帶給人們越來越多的便利,使得人們更趨向于研發計算機應用軟件跟技
1. 軟件工程的發展
計算機從剛開始被發明到現在,經過了廣泛的發展和研究,也變得越來越好,其中,由于計算機技術帶給人們越來越多的便利,使得人們更趨向于研發計算機應用軟件跟技術,為人們提供更多的服務。但是,有一段時間之內,計算機軟件的發展遠遠落后于整個計算機行業的發展態勢。計算機軟件在應用的過程中遇到了許多問題和危機,給整個計算機系統的發展帶來了危害。因此,面對此類問題的出現,人們開始逐漸研發并構建軟件工程,使得軟件逐漸向對象軟件進行開發[1]。
為了能使軟件在發展的過程中更為具體和系統,軟件行業的專家Booch、Jacobson和Rumbaugh早在1995年就開始在彼此的研究方案和概念中進行相互分析,并汲取對方理論中的可取之處,進行更為系統的研究,在此基礎上,將軟件的應用和分析進行了范圍上的擴充,使模型變得更為廣泛和抽象。為了方便人們進行理解,此后又提出了建立統一的語言UML,后來又出現了為了方便軟件規范化的開發軟件RUP。
計算機使用技術在日常生活的方方面面都得到了相應的使用,而且現在對計算機技術的需求也不斷擴大, 各個學校也開始逐漸開設計算機應用管理技術,但是在信息管理者的方面來說,計算機在應用起來并不是十分順暢。因為讀者在進行計算機信息的讀取時,需要采用相應的管理條件和硬件條件,讀取不同的信息需要不同的管理要求。因此,就需要系統同時具備兩種不同的交互功能,也要有發布系統的功能。另外,在設計方面需要給人們耳目一新的感覺,使人們能感到美的體驗。當前采用的系統就是根據人力資源管理所需要的進行設計的,能夠符合大部分管理者的要求,因此為了能夠是全部的管理信息得到開發和應用,需要在功能上進行更大的擴展,使系統在應用起來能夠更加具體、方便[2]。
2. 軟件開發方法
2.1 軟件生命周期法
軟件生命周期指的是整個軟件從開始進行使用到最終完全無法操作的整個過程。此周期主要包括以下幾個階段:軟件計劃、需求分析、系統設計、編碼的實現、對系統的設計和檢測以及維護運行等階段[3]
在進行各個階段的測試過程中,需要確定好我們最終的目標。其中,對軟件進行功能的描述和使用,對軟件進行限制,并對其進行相應的說明,使該項工作能夠得到較為理想的結果。
在需求分析階段[4],主要是使用系統化的分析方法對軟件的功能和結構進行描述,盡可能地捕捉用戶,尤其是最終用戶的期望和約束。這一般分為系統概要設計階段和系統詳細設計階段兩部分。前者是從系統整體結構出發,將系統的功能模塊劃分出來,并定義其主要的輸入和輸出,而具體的處理過程放在下一階段進行。在詳細設計階段,要對上一階段劃分出來的各個模塊進行具體的描述,這時需要定義一些數據結構或文件格式,甚至是函數的名稱、參數等信息。其中對數據庫的邏輯設計和物理設計也屬于這一階段。
在編碼階段[5],主要的工作集中在對程序設計語言進行評估和選擇,選擇合適的開發工具和IDE,并在此基礎之上進行代碼開發,完成系統預定的各個功能模塊。
在測試階段[6],主要的原則是證明軟件中存在錯誤或隱患,而不是證明軟件的正確性。排除錯誤是測試的主要目的,錯誤包括沒有實現功能或功能沒有按照業務要求進行、性能沒有達到預定的期望、存在某些不能再現的情形等。測試一般有三個階段:單元測試、組裝測試和系統測試。單元測試又叫單體測試,是對系統實現的每個功能模塊進行單獨的測試。功能模塊可以是一個函數,也可以是一個封裝的類或組件,根據模塊的代碼進行強項調用進行測試。組裝測試是根據功能模塊的劃分粒度不同而產生的,是將需要進行配合才能實現的功能拼裝提來,組成更加完善的功能模塊,對其進行輸入輸出的測試。系統測試時針對整個運行的系統進行的,要測試系統的功能、業務流程、安全性、負載性能等,是從用戶使用的角度進行的測試。
一般情況下,比較保險的開發方式是將軟件測試嵌入到軟件的編碼過程中,兩者交叉進行 [7]。
在對系統進行維護和運行時,首先要把系統安裝到實際的客戶使用環境中去,按照客戶的條件進行系統的試運行。這里主要根據用戶的業務需求,對系統各個功能模塊進行操作,觀察系統是否按照業務的標準進行輸入結果,并達到合理的運行效率。這種試運行是對系統安全性的測試,這個階段輸出的系統日志是非常重要的,它可以為系統發現錯誤后的修改提供重要的線索。這一階段可以持續的時間很長,直到該軟件系統不再使用。
傳統的瀑布模型[8] 將軟件開發分為以下幾個階段:制定計劃、需求分析、軟件設計、編碼、測試、運行與維護。這是一個非常有價值的軟件開發管理模型。每個階段都是承上啟下的,嚴格按照模型規定的開發順序進行,可以避免很多返工的事情發生。每個階段都應具有完善的質量保證體系,為下一階段提供有利的支撐。在上一階段沒有完成相應的開發條件前,一般不允許進行下一階段的開發。
2.2 原型法
在大型工程設計中經常使用樣機,建造樣機主要有兩個目的[9]:第一是檢驗關鍵設計方案的正確性;第二是檢驗系統是否真正滿足用戶的需要。在計算機硬件系統開發中,每一種新產品的問世幾乎都離不開樣機的制造。對于軟件系統,構造原型系統(相當于工程中的樣機)的目的是使用戶通過原型系統的實踐而獲得關于未來的系統將怎樣為他們工作的更具體更直接的概念,從而可以更準確地提出和確定他們的要求。
采用構造原型系統策略的主要理由是[10]:由于人類對事物的認識是一個由淺入深、由模糊到清楚地過程,因此不能預先確定所有的需求;在用戶和軟件開發人員之間存在著交流的障礙;用戶可以通過一個實在的模型獲得感性認識,以確定需求;在開發過程中重復和反復是必要地和不可避免的;目前有快速建立原型系統的工具可以選用。
用戶在使用了原型系統后就能夠指出系統中的哪些特性是他們所喜歡的,哪些特性是他們所不能接受的,以及他們還需要哪些新的功能。在用戶需求的基礎上開發出來的經過實踐檢驗的系統更可能真正地滿足用戶的需要[11]。
原型法開發模型如圖2-2所示。
2.3 面向對象軟件工程
在1981年后,隨著面向對象的程序設計語言Smalltalk-80出現后,使得該技術得到很大的提升,而且隨著技術的不斷發展和成熟,此種方式產生了綜合的工程學體系。而該工程學的主要發展方法就是面向對象進行軟件開發[12]。
面向對象進行軟件的開發是以一種全新的設計概念和系統程序進行設計和使用,該技術是根據對象、類、繼承、封裝和消息等最基本的概念及程序進行設計[13]。
該工程的主要思想是根據人們考慮事物的基本方法和慣用方式進行構造,軟件系統能夠將現實中所遇到的問題和實體之間進行聯系,形成客觀實體的真實對象。
在軟件工程學的范疇內,對象、類、通信和繼承共同構成面向對象[14].在計算機應用系統中,將應用軟件實現面向對象的工程軟件,其中包含對對象進行分析(OOA)、設計(OOD)、變成(OOI)、測試(OOT)和維護(OOSM)等。
3. 統一軟件工程RUP
軟件工程的三個要素[15]是工具、方法和過程。軟件過程是指開發軟件所需要完成的活動構成的框架。在每個活動期間,都要通過某些工具采用一些方法、技術構造工作產品(如計劃、文檔、模型、代碼、測試用例和書冊等)。
軟件工程使用某些工具,采用某種方法,按照某種過程開發軟件系統。如圖3-1所示是工具、方法和過程在開發時的關系[16]。
工具層為軟件過程和方法提供了自動或半自動的支持;方法層在技術上說明了需要如何去開發軟件;軟件過程提供一個活動框架,在這個框架下可以建立一個軟件開發的綜合計劃[17]。
采用有效的軟件過程是實現軟件成功開發的前提。當前流行的軟件過程有[18]:
(1)Rational Unified Process(RUP)
(2)OPEN Process
(3)Object-Oriented Software Process(OOSP)
(4)Extreme Programming(XP)
(5)Catalysis
(6)Dynamic System Development Method(DSDM)
其中,RUP(統一軟件過程)既是一個軟件過程,更是一個軟件過程框架。它可以適合不同規模、各種類型的軟件項目開發。在實際的應用過程中,可以根據自己的需要對這個標準進行裁剪。統一軟件過程把UML建模語言有機地結合到一起,非常適合采用面向對象軟件技術進行軟件項目開發[19]。
統一軟件過程有三個突出的特點:用例驅動、以架構為中心、采用迭代和增量模型。
(1)所有的軟件開發都是用戶需求驅動的。統一軟件開發過程采用用例來描述用戶需求,同時提供一套方法把用例轉化為設計的類圖,進一步變成最終的程序代碼。在整個軟件開發過程中,要求用例是可跟蹤的,也就是說,無論是設計階段還是實現階段的產品,都可以找到相應的需求。用例還可以作為用戶測試和驗收最終軟件產品的標準[20]。
(2)框架描述了系統的核心部分,它實現了用戶的核心需求,包括了系統中最重要的靜態和動態特征。架構刻畫了系統的整體設計,它舍棄了細節部分,突出了系統的重要特征。統一軟件過程提供了創建框架的相應方法和過程,可以幫助分析人員和設計人員很好地完成構架的設計[21]。
(3)統一軟件過程采用迭代和增量的開發方式,把一個軟件產品劃分成多個較小的部分,每一次完成一個部分,每次要迭代部分是產品的一個增量部分。每個增量部分的生產過程是受控的[22]。
迭代過程的好處是:把一個復雜的系統分解成多個簡單的系統;提高軟件項目的可控性;降低軟件開發的風險;有效地應對需求變更。
3.1 RUP簡介和特點
傳統的瀑布開發模型是一個一維的模型,開發過稱被劃分為多個連續的階段[23]。
統一軟件開發過程(Rational Unified Process,RUP)是一個程序開發方法,它以面向對象為主要手段,而且是基于網絡的[24]。RUP可以指導所有層次和各個方面的程序開發,可以指定模板或模塊。除了RUP之外,還有一些類似的方法,例如面向對象的軟件過程,它是在軟件開發中注重過程,定義開發的各個階段、技術和實際成果,并結合其他開發組件,形成一個比較齊全的框架。
在RUP中,對軟件開發模型中包括了軟件生命周期和核心工作流,這些組成了一個二維的空間模型。如下圖所示,它包括時間維,也就是橫坐標,工作流用縱軸表示[25]。RUP開發模型如圖3-2所示。
RUP有以下六個特點[26]:
(1)迭代式開發。在軟件開發過程中,有個很難的過程,即在開發早期就收集到所有的用戶需求。而在實際的開發過程中,用戶的需求是不斷發生變化的,并且有時變化的程度會很大。所謂的迭代式開發,就是在注重每次開發的當前需求,在用戶的需求不斷增加或變化時,開發也隨之變化,并形成新的產品。這樣做可以最大限度地降低項目風險,還可以使得項目開發處于一種階段性成長模式。
(2)管理需求。確定系統的需求是一個連續的過程,開發人員在開發系統之前不可能完全詳細地說明一個系統的真正需求。RUP描述了如何提取、組織系統的功能和約束條件并將其文檔化,用例和腳本的使用已被證明是捕獲功能性需求的有效方法。
(3)基于組件的體系結構。組件使重用成為可能,系統可以由組件組成。基于獨立的、可替換的、模塊化組件的體系結構有助于管理復雜性,提高重用率。RUP描述了如何設計一個有彈性的、能適應變化的、易于理解的、有助于重用的軟件體系結構。
(4)可視化建模。可視化建模的目的是幫助人們更直觀地理解系統,這可以使用RUP與UML結合來實現。通過這樣的建模,可以將很復雜的系統變得簡單易懂,并且也可以是基于組件或模塊化地描述系統,方便對系統進行更深層次地分析。
(5)軟件質量控制。在軟件開發整個過程中,對質量的管理和控制是至關重要的,基于RUP的軟件開發,可以很方便地做到這一點,基于模型的系統開發可以在關鍵點對系統的質量進行檢測。
(6)控制軟件變更。迭代式開發中如果沒有嚴格的控制和協調,整個軟件開發過程很快就陷入混亂之中,RUP描述了如何控制、跟蹤、監控、修改以確保成功的迭代開 發。RUP通過軟件開發過程中的制品,隔離來自其他工作空間的變更,以此為每個開發人員建立安全的工作空間。
 
3.2 RUP中的核心工作流
RUP中由核心工作流和核心支持工作流組成,其中核心工作流有六個,分別是商業建模、需求、分析和設計、實現、測試和部署。三個核心支持工作流是配置和變更管理、項目管理和環境。[27]
通過這九個工作流的配合,可以在軟件生命周期中通過迭代的方式被復用,這類似與傳統的瀑布模型的幾個階段,但是最根本的不同在于傳統的模型對工作流的復用僅限于在一個開發循環中,而不是在某個工作流中。
(1)商業建模
它可以描述一個軟件項目的開發構思,基于這個構思,可以對商業開發的初步設想加以實例化,用一種更加具體的方式表達出來,例如可以定義一些過程、角色或功能等。
(2)需求
需求描述了系統設想的功能,這里指的是抽象層次的功能,而不是具體的。通過需求工作流,可以使得系統最初設計者與開發者之間建立起共識,對系統的目標和約束進行定義并成果化,限定系統的范圍。
(3)分析和設計
分析和設計是建立在對系統進行商業建模和需求建模基礎之上的,對系統的各個細節進行具體的描述,并限定系統的環境、性能和優化策略。這里的設計并不是對源代碼的設計,而是將系統的功能模塊以包的形式給出,也有可能有子系統,整個系統的設計就是建立在這些功能包和子系統的支持下,描述系統的協作和實現用例。值得注意的是,可以通過分析和設計來描述系統的一些動作、狀態和抽象的性能,使得系統的特點更加明顯,便于對系統進行更深入的開發和優化。這里描述的系統結構式可以變化的,也方便對系統就行修改,加強系統的健壯性。
(4)實現
實現工作流可以是一種層次化系統或子系統描述,這種描述可以定義到代碼的結構,也可以以組建的形式實現系統的功能模塊及其實例。實現的目的不是運行系統,而是使得模塊設計的結果更加可塑化,對組建可以進行測試和評價,系統可以在實現的工作中以動作描述的方式運行。
(5) 測試
測試工作流主要針對系統設計的協作而進行,具體來說是驗證系統功能需求的實現,以及反饋結果是否滿足需求的格式。在這一過程中,可以用迭代的方式對系統進行測試,這樣使得更多的缺陷及早地暴露出來,這位系統開發降低了客觀的成本。測試的方法有很多,最常用的是基于模型的測試,定性地判斷系統的健壯性和可靠性。
(6)部署
當系統設計到測試階段之后,可以將一個相對完整的系統進行發布和部署,這里面向的最終用戶。部署工作流要實現的是根據最終用戶的活動來調試系統的配置,保證系統按照用戶的需求進行待運行,避免與最終客戶的行為產生很大的反差。部署工作流還有一個重要的作用是幫助用戶規范合理的工作方式,也就是使用系統的目的還在于完善工作質量。
(7)配置和變更管理
配置和變更管理的目的是讓系統給最終用戶帶來更加可靠的性能,為此需要管理大量的系統運行環境數據和系統日志信息,這些信息可以幫助維護人員發現系統的問題,并在不斷變化的系統實際用例中更加正確地指導用戶使用系統。這其實是一種并行的管理方法,既不妨礙最終用戶使用系統的正常功能,又能不斷監視系統的運行狀態。
(8)項目管理
項目管理工作流是針對項目開發人員和配合人員的,其主要目的是平衡系統參與人員的工作矛盾和時間安排。它強調從整體上統籌系統開發,為系統部署軟件框架、人力框架和服務框架,并以一種高效的管理方式監控系統開發的各個階段和模塊。
(9)環境
環境工作流是一種輔助性的工作流,但往往又是最常用的工作流。它可以支持系統各個開發階段和模塊的工具、耗材、人力等,也可以調節項目的活動計劃,在過程中不斷對項目的推進產生必要的物質和精神上的支持。
3.3 RUP中的迭代模型
在RUP過程中,可以把每個階段的任務分成多個部分,采用多次迭代完成每個階段的任務。每一次完整的迭代包含9個工作流,迭代有可能只包含部分工作流。每一次迭代建立一個可執行的軟件產品(版本),每次迭代產生的軟件產品是最終產品的一個子集[28]。圖3-3是RUP中某個階段的迭代開發模型。
與傳統的瀑布模型相比較,迭代開發的優點如下:
(1)由于把軟件系統分成多個獨立部分,采用增量開發,降低了開支的風險。
(2)由于是迭代開發,每次迭代產生出一個完整的軟件產品,降低了產品無法按照既定進度進入市場的風險。
(3)由于采用迭代開發,多小組可以并行工作,加快了整個開發工作的進度。
3.4 RUP中的核心工作流
(1)需求工作流[29]
需求工作流開始前,首先要對業務建模,業務建模就是對業務組織、業務內容和業務流程進行建模。業務模型為需求工作打下基礎。
需求捕獲通過對業務內容進行描述、整理,確立業務實體及其關系;確定業務系統的功能要求;確定實現功能要求的實體間的交互關系。將用戶需求精確化、完備化。大部分需求工作集中在初始和細化階段,在細化階段后期,需求捕獲的工作量大幅下降。
①工作產品
執行需求捕獲工作流時,軟件開發人員開發的主要UML制品有:用例模型;軟件體系構架描述,用包圖(由用例構成的包)描述軟件系統的宏觀組織和結構;術語表;用戶界面原型。
②軟件開發人員
參與需求捕獲階段的軟件開發人員有:系統分析人員;用例描述人員;用戶界面設計人員;構架設計師。
③主要活動
需求捕獲的工作流主要包括確定參與者和用例(概要描述)、區分用例的優先級、詳細描述用例、構造用戶界面原型以及構造用例模型5個活動。
A)確定參與者和用例。確定參與者和用例的目的是界定系統的范圍,確定哪些參與者將與系統進行交互,以及他們將從系統中得到哪些服務(用例);捕獲和定義術語表中的公用術語,這些是對系統功能進行詳細說明的基礎,如圖3-4所示。
圖3-4 確定參與者用例
確定參與者和用例的過程通常包括4個步驟:確定參與者、確定用例、簡要描述每個用例和概要描述用例模型。實際中,這些步驟通常是并發執行的。
B)區分用例的優先級。區分用例的優先級是為了決定用例模型中哪些用例需要在早期的迭代中進行開發(包括分析、設計、實現等),以及哪些用例可以在隨后的迭代中進行開發。如圖3-5所示。
圖3-5 區分用例的優先級
C)詳細描述用例。詳細描述用例的主要目的是為了詳細描述事件流。這個活動包括建立用例說明、確定用例說明中包括的內容和對用例說明進行描述的三個步驟,最終的結果以圖或文字的用例的詳細說明,如圖3-6所示。
圖3-6 詳細描述用例
D)構造用戶界面原型。在系統分析人員建立起用例模型,確定了誰是用戶以及他們要用系統做什么后,接下來的工作就是要著手設計用戶界面。這個活動由邏輯用戶界面設計、實際用戶界面設計和構造原型兩部分組成,最終的結構是一個用戶界面簡圖和用戶界面原型,如圖3-7所示。
圖3-7 構造用戶界面原型
E)構造用例模型。構造用例模型的主要目的是:整理用例間的關系,分離包含用例和擴展用例;補充用例說明。這個活動由確定共享的功能性說明、確定補充和可選功能說明,以及確定用例之間的其他關系三部分組成。在確定系統用例和參與者之后,系統分析人員可以重新整理用例之間的關系,使模型更易于理解和處理,如圖3-8所示。
圖3-8 構造用例模型
(2)分析工作流[30]
主要的分析任務從初始階段的尾期開始,與需求一樣,分析工作流主要集中在細化階段,細化階段的大部分活動是捕獲需求,并進行需求分析,分析工作與需求捕獲在很大程度上重疊。
①工作產品
在分析工作流期間,主要的UML制品有:分析模型;分析類,對業務模型中的類圖或對象圖中的類進行加工處理后的類;用例實現,實現用例的順序圖,即由哪些對象相互協作來完成用例的功能;分析包,分析階段用包來描述未來的系統組成和結構;構架模型,通過包圖來描述軟件體系。
②軟件開發人員
在分析工作流期間,參與的軟件開發人員有架構設計師、用例工程師和構件工程師。
③主要活動
分析工作流主要包括架構分析、分析用例、分析類和分析包四個活動。
A)架構分析。架構分析的目的是通過分析包、分析類,并結合系統約束和特殊需求,以包的格式表示系統架構,以文本格式描述構架,如圖3-9所示。
圖3-9 架構分析
B)分析用例。分析用例的目的在于找到實現用例的對象,通過對象間的協作實現用例的功能;用例實現用協作圖來描述,具體的輸入和結構如圖3-10所示。
圖3-10 分析用例
C)分析類。分析類的目的在于依據分析類在用例實現中的角色來確定它的職責,確定分析類的屬性及其關系。具體的輸入和結果如圖3-11所示。
圖3-11 分析類
D)分析包。分析包的目的在于確保該分析包的合理性和相對獨立性,確保該分析包包含完整的用例。一般說來,分析包的活動是:定義和維護包與其他包的依賴,確保包中包含恰當的類,然后限制對其他包的依賴。具體的輸入和結果如圖3-12所示。
圖3-12 分析包
 
4. 統一建模語言UML
統一建模語言(Unified Modelling Language, UML)是用來對軟件密集系統進行可視化建模的一種語言。是為面向對象開發系統的產品進行說明、可視化和文檔編制的一種標準語言。
4.1 UML的定義
作為一種建模語言,UML是一個標準的圖形化建模語言,由一系列圖形符號組成,并具有特定的含義。它包括UML語義和UML表示方法兩部分。
UML語義:描述了基于UML的精確元模型定義。為了使得描述UML各類組合的準確意義,定義了UML的元模型,即所有的用UML語言描述的模型都是基于這些元模型基礎之上的,使得這類語言簡單、一致和通用。
UML表示方法:定義了UML圖形符號的表示方法,為系統建模提供了標準的使用規則,建立在UML元模型的基礎之上,使用特定的表示方法代表特定的描述語義。
4.2 UML的主要特點
從整體來看,統一建模語言UML有三個主要的特點:
(1) UML是建在一些之前先進的軟件設計方法基礎之上的,包含了諸如Booch等方法的思想。
(2)面向對象的開發方法和非面向對象的開發方法都是軟件開發過程中必不可少的方法,這些在UML中都有體現。
根據面向對象開發方法發展起來的UML表示方法,使用了大量的圖形化的描述方式。作為一種軟件設計語言,UML可以直觀地進行系統描述甚至是行為描述。在使用的符號,都是經過精心篩選出那些在軟件系統開發中最常用,也是最具有代表性的描述方式,也包括一些重新定義的符號,適用于特殊的系統描述。
(3)新的方法在不斷發展的UML中層出不窮
在UML發展的過程中,由于新的開發思想和方法的出現,需要對UML定義的描述方法進行不斷更新,在這個過程中,新加入了諸如模板、過程、并發、細化等概念和方法的提出,并給出了相應的描述符號的定義。UML是不斷發展的語言,因此,UML可以隨著軟件工程的發展不斷推陳出新。
UML雖然是非常實用并且是不斷發展的語言,但是在目前定義的UML描述方法中,仍然有一些方法有待人們在實踐中去驗證。
4.3 UML的體系結構
UML是一種建立在公共機制上的程序設計語言,構造元素、規則和公共機制構成了UML體系。其中構造元素是描述事物和行為的基本元素,而規則是約束這些基本元素組合方式的約束,它們一起構成各種各樣的UML圖。
UML語言的組成結構,如圖4-1所示。
(1)構造元素
構造元素包括基本元素、關系和圖。這三種元素代表了軟件系統或業務系統中的某個事物或事物間的關系。
(2)規則
構造元素具有命名、范圍、可見性、完整性和執行等屬性,規則是對軟件系統或業務系統中某些事物的約束或規定。
(3)公共機制
公共機制包括詳述、修飾、通用劃分以及擴展機制,它是指只用于軟件系統或業務系統中每個事物的方法或規則。
4.4 UML的建模機制
使用UML語言進行建模,需要幾種圖的配合才能構建比較完整的UML模型,這些圖分別是:
(1)類圖
類圖(Class Diagram)是最常用的UML圖,它可以顯示出類、接口以及它們之間的靜態結構和關系,通常用來描述系統的結構。類圖中的關系包括依賴關系(Dependency)、泛化關系(Generalization)、關聯關系(Association)和實現關系(Realization)。類圖常用來描述業務或軟件系統的組成、結構和關系。可通過為系統詞匯建模型、模型化簡單的協作和模型化一個邏輯數據庫模式來使用類圖。類圖中的元素有類、接口、協作、關系、注釋、約束和包。關系把類、協作、接口連接在一起構成一個圖,注釋的作用是對某些類和接口進行注釋,約束的作用是對某些類的接口進行約束。
(2)對象圖
對象圖(Object Diagram)顯示了一組對象和它們之間的關系。使用對象圖可以說明數據結構、類圖中的類或組件等實例的快照。對象圖和類圖一樣,反映了系統的靜態過程,但它是以實際的或原型化為基礎來表達對象間的關系。對象圖顯示某時刻對象和對象之間的關系。一個對象圖可看成一個類圖的特殊實例,實例和類可在對象圖中同時表示。
對象圖是類圖的一個實例,這個實例是在某一時刻才會出現的,在這一點上,對象圖與類圖十分相似。但是也有不同之處,對象圖中的類是被實例化的,可以由多個對象同時出現,而類圖中則沒有對象,只是表示出對象的抽象層次。對象是類在某個時刻才會被實例化的,因此,對象圖在系統中出現的時間也是有局限的。
(3)用例圖
用例圖是外部參與者所能觀察到的系統功能的模型圖。呈現了一些參與者和一些用例,以及它們之間的關系,主要用于對系統、子系統或類的功能行為進行建模。
用例圖展示了用例之間以及用例與參與者之間是怎樣相互聯系的。對系統、子系統或類的行為進行了可視化,使用戶能夠理解如何使用這些元素,并使開發者能夠實現這些元素。用例圖主要用來描述用戶的功能需求。UML側重從最終用戶的角度來理解軟件系統的需求,強調誰在使用系統及系統可以完成哪些功能。用例分析技術是一種公認有效的用戶需求獲取、分析和描述技術。用例圖描述了用例、參與者及其關系,可以包括注釋、約束。
(4)交互圖
在描述系統中,對象之間通過消息進行通信的圖就是交互圖,包括四種類型,分別是順序圖、通信圖、定時圖和交互概觀圖。
順序圖也成時序圖,它描述了系統中對象間通過消息進行的交互,強調了消息在時間軸上的先后順序。表明了由哪些對象通過消息相互協作來實現用例的功能,標識消息發生交互的先后順序。順序圖中的元素包括對象、生命線、控制焦點和消息。消息表示了對象間的通信,生命線表示了對象的生存期,控制焦點表示對象正在執行一些活動。
通信圖顯示了一系列對象和這些對象之間的聯系,以及對象間發送和接收的消息。對象通常是命名或匿名的類的實例,也可以代表其他事物的實例,如協作、組件和節點。使用通信圖可以說明系統的動態情況,強調對象在交互行為中承擔的角色。包括對象、消息和鏈。消息表示了對象之間的通信,對象通過鏈連接在一起。
定時圖是一種特殊的順序圖,在UML2.0中,引入了一種新的交互圖來解決著重表示定時約束的問題。如果要表示的交互具有很強的時間特性,例如實時控制系統中,最好用定時圖建模。
(5)活動圖
活動圖是描述系統或業務的一系列活動構成的控制流,它描述了系統從一種活動轉換到另一種活動的整個過程,說明了系統的活動控制流程,常用于對業務過程、工作流和用例實現進行建模。活動圖的元素包括節點、終點、活動共節點、轉換、分支與監護條件、分岔與匯合。其中,轉換、分支、分岔與匯合把多個活動節點連接在一起。
5. 參考文獻
[1] Farida K, Meslati D, Tamzalit D. An approach based on extending the RUP for dealing with anticipated changes in ontogenetic software systems[J]. International Journal of Computer Applications in Technology, 2015, 51(4).
[2] Estañol M, Queralt A, Sancho M R, et al. Specifying Artifact-Centric Business Process Models in UML[M] Business Modeling and Software Design - 4th International Symposium, BMSD 2014, Luxembourg, Luxembourg, June 24-26, 2014, Revised Selected Papers. 2015:62-81.
[3] 杜云梅,李師賢. RUP估算過程模型[J]. 計算機科學,2013,06:21-28.
[4] Evans A, Lano K, France R, et al. Meta-Modeling Semantics of UML[J]. Computer Science, 2014.
[5] 李傳煌,王偉明,施銀燕. 一種UML軟件架構性能預測方法及其自動化研究[J]. 軟件學報,2013,07:1512-1528.
[6] 柴玉梅,馮秋燕,王黎明. 基于UML模型和OCL約束的類間交互測試用例生成方法研究[J]. 電子學報,2013,06:1242-1248.
[7] Evans A, France R, Lano K, et al. Developing the UML as a Formal Modelling Notation[J]. Computer Science, 2014, 19(98):297--307.
[8] 余久久. 面向教學軟件的RUP改進模型的設計研究[J]. 電化教育研究,2012,04:76-81+84.
[9] 王宇華,印桂生. 基于本體的需求模型到UML模型轉換方法[J]. 哈爾濱工程大學學報,2012,06:735-740.
[10] 徐亮,張莉,樊志強. 一種基于UML的實時工作流建模方法研究[J]. 計算機研究與發展,2010,07:1184-1191.
[11] 韓德帥,楊啟亮,邢建春. 一種軟件自適應UML建模及其形式化驗證方法[J]. 軟件學報,2015,04:730-746.
[12] Evans A, France R, Lano K, et al. Meta-Modelling Semantics of UML[M] Behavioral Specifications of Businesses and Systems. Springer US, 2014:45-60.
[13] 何耀光,康汶,詹先信,溫筱群. 基于UML的電子商務在線銷售系統分析與設計[J]. 計算機與現代化,2011,02:171-174.
[14] Rumpe B. A Note on Semantics (with an Emphasis on UML)[J]. Eprint Arxiv, 2014(3):187-190.
[15] 殷永峰,鄭本燾,陸民燕,倪紅英. 基于UML實時擴展的嵌入式軟件測試用例生成技術[J]. 系統工程與電子技術,2011,03:694-699.
[16] Broy M, Crane M L, Dingel J, et al. 2, nd, UML 2 Semantics Symposium: Formal Semantics for UML[C] International Conference on MODELS in Software Engineering. Springer-Verlag, 2014:318--323.
[17] 張琛,段振華,田聰. 基于事件確定有限自動機的UML2.0序列圖描述與驗證[J]. 軟件學報,2011,11:2625-2638.
[18] 郭婧,吳軍華. 面向方面的UML建模[J]. 計算機工程與設計,2011,12:4260-4264.
[19] 布寧,劉玉嶺,連一峰,黃亮. 一種基于UML的網絡安全體系建模分析方法[J]. 計算機研究與發展,2014,07:1578-1593.
[20] 文媛媛. 基于RUP過程和Web的四川職業技術學院固定資產管理系統設計[D].電子科技大學,2012.
[21] 鄧容. RUP方法在新浪微博測試管理中的應用和實踐[D].蘭州大學,2012.
[22] 侯秀美. 基于UML的電子商務系統建模及應用研究[D].南昌大學,2012.
[23] Ahmad G, Soomro T R, Brohi M N. XSR: Novel Hybrid Software Development Model (Integrating XP, Scrum & RUP)[J].  2014, 4:126-130.
[24] 張琛. 基于UML2.0模型的測試與驗證方法[D].西安電子科技大學,2012.
[25] Akhunzada A, Gani A, Hussain S, et al. Towards experiencing the pair programming as a practice of the Rational Unified Process (RUP)[C] Sai Intelligent Systems Conference. IEEE, 2015.
[26] 佀騰飛. 基于RUP的輕量級軟件過程實踐[D].北京交通大學,2013.
[27] Cabot J, Clarisó R, Riera D. On the verification of UML/OCL class diagrams using constraint programming[J]. Journal of Systems & Software, 2014, 93:1-23.
[28] 李嚴. 使用UML和RUP構建面向對象的網絡訂票模型[D].吉林大學,2013.
[29] 賈婷婷. RUP方法在電子政務系統中的研究與應用[D].北京郵電大學,2013.
[30] 竺曉梅. 基于RUP的軟件測試質量管理的研究與實現[D].復旦大學,2013.
 

原文地址:http://www./wxzs/24839.html,如有轉載請標明出處,謝謝。

您可能在尋找文獻綜述方面的范文,您可以移步到文獻綜述頻道(http://www./wxzs/)查找