999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RUP與XP中的模式應用及比較

2009-04-29 00:00:00何文孝
計算機時代 2009年9期

摘要:簡要介紹了Rational統一過程(RUP)、極限編程(XP)和模式,并就模式在RUP和XP中的應用進行了分析和比較

關鍵詞:軟件過程:模式:RUP XP

0 引言

軟件過程是軟件工程的基礎。軟件過程是由一系列的項目的階段、方法、技術和實踐組成,人們利用它們來開發、維護軟件和相關的產物(artifacts)。一個有效的軟件過程能夠增強一個組織的軟件生產力。在當今眾多的軟件過程中,RUP和XP最為流行,且使用越來越廣泛。在面向對象系統的設計中,經常會發現類和通信對象重復出現的模式。這些模式解決特定的設計問題,并使得面向對象設計更靈活、優美和最終可復用,如果在面向對象系統的設計過程中,將過程和模式的優點結合,會使兩者相得益彰。本文就當今最流行的兩個軟件過程(RUP和XP)中模式的應用進行分析與比較。

1 相關介紹

1.1 Rational統一過程

RUP(Rational Unified Process)是一個面向對象軟件工程的通用業務流程。它描述了一系列相關的軟件工程流程,使之具有相同的結構,即相同的流程構架。RUP為在開發組織中分配任務和職責提供一種規范方法。任何一個RUP的開發周期都是可以迭代的。

RUP的三大特點是:用例驅動、以構架為中心、迭代和增量開發。RUP的生命周期,由四個順序的階段和九個核心的工作流組成。四個階段分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。九個核心工作流又分為六個核心過程工作流:業務建模、需求、分析和設計、實現、測試、部署和三個核心支持工作流:配置和變更管理、項目管理、環境。圖1勾畫了RUP的完整的生命周期。

1.2極限編程

極限編程XP(eXtreme Programming)是敏捷方法中頗具代表的一種、1996年,Kent將XP新概念用于項目ChryslerComprehensive Compensation system的開發中,取得了顯著的效果,XP提供了一個全局的、價值驅動的開發過程視圖,體現了四個價值目標:溝通、簡化、反饋和勇氣。XP的生命周期包括四個基本活動:編碼、測試、聆聽和設計。XP非常注重測試,要求先寫測試后編碼,因此,它的基本活動的次序是:聆聽、測試、編碼、設計。先聽取需要做什么;然后編寫測試,如果通過了,則證明交付了需要做的東西;下一步,編寫那些通過測試的任務代碼;最后,調整代碼的設計使其更簡單、更有效,同時仍能夠通過測試。XP有十二條慣例:規劃策略、小型發行版、系統隱喻、測試、正確的設計、重構、成對編程、集體代碼所有權、持續集成、每周四十小時工作制、現場客戶、編碼標準。XP的革新在于把所有的慣例放在一起,以便它們互相支持,讓一些慣例的優勢彌補其它慣例的缺點。XP已經經歷了很多實踐考驗,而且已經被成功應用在許多大型的公司,如:Bayerische Landesbank,Credit Suiss Life。XP適用于需求不確定、變化快,項目歷時不超過半年,而人數不超過十個、在同一地點工作的中小型團隊,也被用于構造中小型復雜的系統。方案。一個模式有四個必要部分:模式適用的上下文陳述;模式提出的問題;形成解決方案過程中的約束;對這些約束的解決方案。

模式主要有分析模式、設計模式、組織模式、過程模式等。分析模式是用于系統領域建模的模式,是針對某種常見的應用領域問題的建模。設計模式則是關于如何保持設計的靈活性的,它們在軟件的很多地方都有應用。在《Design Patterns》中設計模式被分為創建型(creational)、結構型(Structural)、行為型(Behavioral)三種。而在《POSA Volume 1:A System ofPatterns》中模式分為體系結構模式(architecural pattern)、設計模式(design pattern)和慣用法(idiom)。

2 模式在RUP和XP應用及比較

2.1模式在RUP中的應用

RUP在不同的核心過程工作流中可能會用到不同的軟件模式。

在分析設計工作流中,定義備選構架的活動之一是構架分析。構架分析要定義系統構架模式、核心機制和建模約定。在構架設計中應用構架模式可以增強構架的穩定性。這里的構架模式就是POSA中的體系結構模式,表示軟件系統的基本結構化組織圖式。RUP作了進一步的解釋:構架模式是一個特定范圍的模式(即解決方案模板),并且也是具體軟件構架的模板。它涉及整個系統范圍內的特征,并且通常涉及子系統范圍內(而非類級別)的關系。對于交互系統,使用MVC(模型一視圖一控制器)模式。比如,在網上商店中,MVC模式用于提供不同的人員與系統之間進行交互的界面視圖,如圖2所示。在定義構架時,RUP中應用到了分析機制的概念。分析機制代表常見問題的常用解決模式,它們可能表示結構模式或行為模式,也可能同時表示這兩者。分析機制通常實例化一個或多個構架模式或分析模式。而RUP的分析模式把Fowler的分析模式擴展到了業務領域之外的其他領域。而且,RUP主張在構架設計中利用分析機制代表構架中的中低層的復雜技術來避免細節分散構架的重點。比如,“永久性”分析機制使得在對象生存期用例、進程生存期或系統關閉和啟動等方面在確定對象永久性方面的需要時,不必考慮永久性機制的確切功能或工作方式。

在對構架進行改進時,初期的重點活動之一是確定設計機制。設計機制是對相應分析機制的改進,設計機制為概念上的分析機制添加具體的細節,但又并不具體到所需的技術。跟分析機制類似,設計機制可以實例化一種或多種構架模式或設計模式。設計模式為改進軟件系統的子系統、構件或其間的關系提供了方案。設計模式規模比構架模式較小,通常獨立于編程語言。當設計模式的范圍界定之后,它將形成一部分具體的設計模型。設計模式還可用在構件的設計及類的設計中。

在確定設計機制的活動中,有一步是將設計機制映射到實施機制。實施機制是使用特定的編程語言及其他實施技術對相應設計機制的改進。一個實施機制可以實例化一個或多個代碼模式或實施模式,在其構建過程中很可能運用多種實施模式(代碼模式)。實施模式也就是POSA中的慣用法,是一種編程語言專用的低級模式,說明如何利用給定語言的特性來實施構件的某些特定方面或實施構件之間的關系。比如,記數指針使C++的動態分配共享對象的內存管理更容易。

RUP最大的特點之一就是以構架為中心,在整個生命周期中,各個階段的工作始終圍繞構架展開。在構架的定義、確定、改進過程中,充分利用了各層次的模式。

2.2模式在XP中的應用

XP強調即時實現,沒有明確的分析和設計階段。XP的四個活動中,編碼和設計是同時進行的,編碼和設計活動便融為一體,這樣就弱化了構架的概念,這是它與強調以構架設計為中心的RUP的最大不同。XP看似沒有構架設計,但實際上構架設計還是存在的。XP提倡使用一些簡單的圖例、比喻等方式來表達軟件的構架,而這種構架設計是無時無刻不在進行的,即XP用系統隱喻代替了RUP的形式上的架構。系統隱喻是表示系統如何工作的一個簡單的分配事例。這個事例包含一些類和模式,正是這些類和模式形成了將要建立系統的核心內容。通過與已經熟悉的情況的類比,這些模式幫助我們理解新的和不熟悉的事情。因而XP可針對需求的特點,采用相應的模式來設計構架。同時,XP的文檔較少,模式通過代碼共享、結對編程起到了溝通的作用。

但XP中常強調重構,而很少提到模式。對此經常有一種看法是:模式鼓勵過分設計,重構保持簡單、輕量級。模式導致的過分設計是因為設計人員不恰當地使用模式。實際上發現問題時,應該使用可以解決問題的模式的最簡單的實現,才不至于使解決方案復雜化。GOF在《設計模式》一書中提出“設計模式為重構提供了目標”。在XP中可以通過重構來得到模式,達到去除重復代碼,保持簡單,提高軟件復用的目的。為了在XP中正確恰當地使用模式,應該避免在一開始使用模式,而是在設計演進中重構得到模式,要從簡單開始,考慮模式但將它們放在次要地位,小規模重構,只在真正需要模式的時候才把重構轉移為模式。又由于在早期設計中使用模式可以防止以后的重構,所以,如果在早期設計確實需要引入模式,那么該按照模式原始的樣子來實現它。這樣,在后面的變更中,模式才易于被替換或升級。

在XP中也可以使用適合的構架模式、設計模式等。或者在早期設計需要時使用模式,或者在后來的迭代中,重構引入模式。模式的引入需要為某些部分的設計增添靈活性來滿足需求。

2,3 RUP與XP中模式應用的比較

在RUP和XP中都可以應用于模式,但它們在模式的應用上不完全相同。

首先,從模式使用的階段看:RUP圍繞構架這個中心,階段和工作流都相對更為明確。RUP中應用模式進行分析、設計和編碼等在相應的核心工作流中進行。而XP不同,XP的分析、設計階段不明顯,模式在適宜的時候被引入,因此模式的應用階段性不強。其次,從模式使用的時間看,RUP非常適宜于開發復雜、技術難度大、需求多變、高風險的項目,因此在RUP中,模式的應用往往比較早。而XP并不鼓勵太早的使用模式,主張推遲模式的引入,以免因過早的使用模式引起過分設計而失去簡單化。第三,從模式使用的人員看,RUP中人員角色分工相對明確,因而在不同的流程活動中的模式的使用由相應的人員決定,比如,由構架設計師在構架分析活動中確定分析機制定義構架模式。在XP中,要求人員同時懂得多種技術,使用模式的角色分工不明確。因為XP的代碼共享,當某個成員發現代碼混亂、太多重復的時候,就可利用重構和模式讓系統保持簡單。在重構當中引入模式,這就使得模式的使用人員不確定。

模式和不同的軟件過程結合在一起,會產生不同的效果。RUP包括了軟件開發的各個方面,適用于大型軟件項目的開發。XP屬于輕量級的過程,主要關注于代碼和技術,適用于小型項目的開發。大多數大型的軟件系統都是由幾個子系統(A、B、C等)組成,子系統又可能由幾個模塊組成,在實際的開發中,我們可以結合RUP和XP,在起始和細化階段采用RUP結合模式方法完成需求分析和構架設計,在構造和移交階段采用XP結合模式的方法來實現部分子系統或模塊。

3 結束語

模式為軟件設計與開發提供了巨大的幫助。根據軟件的開發環境,選取合適的軟件開發過程,靈活應用模式,可以高效率地開發出一個高質量的軟件產品。

主站蜘蛛池模板: 亚洲人成网18禁| av一区二区三区在线观看| 色综合网址| 欧美日韩精品综合在线一区| 亚洲中文在线视频| 99这里只有精品免费视频| 国产成在线观看免费视频| 2020久久国产综合精品swag| 国产欧美日韩视频一区二区三区| 免费又黄又爽又猛大片午夜| 国内精品一区二区在线观看| 日韩午夜片| 天天色天天综合网| 国产亚洲精品在天天在线麻豆| 国产国产人成免费视频77777| 欧美精品xx| 欧美日韩免费观看| 无码精品一区二区久久久| 欧美日本视频在线观看| 欧美色香蕉| 中国毛片网| 欧美日韩国产在线人| 精品久久久久久久久久久| 乱码国产乱码精品精在线播放| 亚洲第一色网站| 1769国产精品免费视频| 亚洲激情区| 亚洲h视频在线| 四虎成人免费毛片| 91欧美在线| 中文字幕2区| 亚洲伊人电影| 欧美在线网| 亚洲娇小与黑人巨大交| 久久国产精品77777| 久久国产拍爱| 亚洲精品视频免费看| 亚洲精品福利网站| 丰满人妻中出白浆| 五月激情婷婷综合| 国产欧美亚洲精品第3页在线| 欧美黄网站免费观看| 亚洲中文精品久久久久久不卡| 91口爆吞精国产对白第三集| 亚洲国产成人综合精品2020| 激情无码视频在线看| 伊人91在线| 亚洲欧美h| 91小视频在线| 高清无码一本到东京热| 欧美中文字幕在线视频| 国产午夜无码专区喷水| 伊人激情久久综合中文字幕| 98超碰在线观看| 国产一区二区人大臿蕉香蕉| 久久久久久久久亚洲精品| av色爱 天堂网| 久久国产精品国产自线拍| 97在线观看视频免费| 亚洲国产精品无码久久一线| 91久久国产热精品免费| 欧美日韩国产综合视频在线观看| 青青久久91| 国产欧美自拍视频| 秋霞午夜国产精品成人片| 在线日韩日本国产亚洲| 午夜福利视频一区| 欧美在线黄| 5388国产亚洲欧美在线观看| 久久永久免费人妻精品| 国产高清精品在线91| 国产午夜精品鲁丝片| 国产男人的天堂| 久久永久免费人妻精品| 国产成人精品在线1区| 国产香蕉在线| 国产精品欧美日本韩免费一区二区三区不卡 | 91人人妻人人做人人爽男同| 欧美一区二区三区欧美日韩亚洲| 热re99久久精品国99热| 午夜毛片免费观看视频 | 成年看免费观看视频拍拍|