軟件工程(Rational統一過程)

Rational統一過程(Rational Unified Process,RUP)是由Rational軟件公司推出的一種完整而且完美的軟件過程。

RUP總結了經過多年商業化驗證的六條最有效軟件開發經驗,這些經驗被稱為“最佳實踐”。

1,最佳實踐

(1)迭代式開發

通常,采用線性順序的開發方法不可能開發出當今客戶的需要的大型復雜軟件系統。事實上,在整個軟件開發過程中客戶的需求會經常發生變化,因此需要一種能夠通過一系列細化,若干個漸進的反復過程而得出有效的解決方案的迭代方法。

迭代式開發允許每次迭代過程中需求都可以有變化,這種開發方法通過一系列細化來加深對問題的理解,因此能更容易地容納需求的變更。

也可以把軟件開發過程看著一個風險管理過程,迭代式開發通過采用可驗證的方法來減少風險。采用迭代式開發方法,每個迭代過程以完成可執行版本結束,這不僅使最終用戶可以不斷地介入和提出反饋意見,而且開發人員有因隨時有一個可交付的版本而提高士氣。

(2)管理需求

在開發軟件過程中,客戶需求將不斷發生變化,因此,確定系統的需求是一個連續的過程。RUP描述了如何提取,組織系統的功能性需求和約束條件并把它們文檔化。

(3)使用基于構件的體系結構

所謂構件就是功能清晰的模塊或子系統。系統可以由已經存在的,由第三方開發商提供的構件組成,因此構件使軟件重用成為可能,RUP提供了使用現有的或新開發的構件定義體系結構的系統化方法,從而有助于降低軟件開發的復雜性,提高軟件的重用率。

(4)可視化建模

為了更好地理解問題,人們常常采用建立問題模型的方法。所謂模型,就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。由于應用領域不同,模型可以有文字、圖片或數學表達式等多種形式,一般來說,可視化的圖形形式更容易理解。

(5)驗證軟件質量

某些軟件不受歡迎的一個重要原因,是其質量低下。在Rational統一過程中,軟件質量評估不再是事后型的或由單獨小組進行的孤立活動,而是內建在貫穿于整個開發過程的、由全體成員參與的所有活動中。

(6)控制軟件變更

在變更是不可避免的環境中,必須具有管理變更的能力,才能確保每個修改都是可接受的而且能被追蹤的。RUP描述了如何控制、跟蹤和監控修改,以確保迭代開發的成功。

2,RUP軟件開發生命周期

RUP軟件開發生命周期是一個二維的生命周期模型。

(1)核心工作流

·? 業務建模:深入了解使用目標系統的機構及其商業運作,評估目標系統對使用它的機構的影響。

·? 需求:捕獲客戶的需求,并且使開發人員和用戶達成對需求描述的共識。

·? 分析與設計:把需求分析的結果轉化成分析模型與設計模型。

·? 實現:把設計模型轉換成實現結果(形式化地定義代碼結構;用構件實現類和對象;對開發出的構件進行單元測試;把不同實現人員開發出的模塊集成為可執行的系統)。

·? 測試:檢查各個子系統的交互與集成,驗證所有需求是否被正確地實現了,識別,確認缺陷并確保在軟件部署之前消除缺陷。

·? 部署:成功地生成目標系統的可運行版本,并把軟件移交給最終用戶。

·? 配置與變更管理:跟蹤并維護在軟件開發過程中產生的所有制品的完整性和一致性。

·? 項目管理:提供項目管理框架,為軟件開發項目制定計劃、人員配備、執行和監控等方面的實用準則,并為風險管理提供框架。

·? 環境:向軟件開發機構提供軟件開發環境,包括過程管理和工具支持。

(2)工作階段

RUP把軟件生命周期劃分為四個階段:

·? 初始階段:建立業務模型,定義最終產品視圖,并且確定項目的范圍。

·? 精化階段:設計并確定系統的體系結構,制定項目計劃,確定資源需求。

·? 構件階段:開發出所有構件和應用程序,把它們集成為客戶需要的產品,并且詳盡地測試所有功能。

·? 移交階段:把開發出的產品提交給用戶使用。

(3)RUP迭代式開發

迭代計劃的特點:

  • 一個迭代是總體項目計劃的一個階段
  • 需要明確的交付目標(或可以運行的系統)
  • 多個比較明確的角色的參與
  • 可以串行也可以并行
  • 體現了 RUP 架構驅動、關注風險的特點
  • 實現快速交付,縮短大項目的交付周期
  • 提高客戶參與度和項目的可視化

迭代計劃的開發考慮的因素:

  • 總體項目計劃
  • 項目規模大小、周期
  • 需求明確程度和技術風險
  • 團隊成熟度和規模
  • 項目所處的階段,在同一個項目的不同的階段可以采用不同的迭代計劃方法

開發特征

1.在進行大規模的投資之前就解決了關鍵的風險分析。

2.使得早期的用戶反饋在初始迭代中就能出現。

3.對各個目標里程碑提供了短期的焦點(階段性的中心)。

4.對過程的測量是通過對實現的評定(而不僅僅是文檔)來進行的。

5.可以對局部的實現進行部署。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534347.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534347.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534347.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件工程(敏捷過程和極限編程)

1,敏捷過程 為了使軟件開發團隊具有高效工作和快速響應變化的能力,17位著名的軟件專家于2001年2月聯合起草了敏捷軟件開發宣言。 敏捷軟件開發宣言由下述4個簡單的價值觀聲明組成。 (1)個體和交互勝過過程和工具 優秀的團隊成…

軟件工程(可行性研究講解)

可行性研究 可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。(只是尋找客戶所提需求的解決方案,能干還是不能干的問題。) 可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程。 GB…

軟件工程(系統流程圖講解)

系統流程圖是概括地模型物理系統的工具。 基本符號 系統符號 系統流程圖的習慣畫法是使信息在圖中從頂向下或從左到右流動。 例子 某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零…

軟件工程(數據流圖)

數據流圖有4種基本符號: 正方形或(立方體)表示數據的源點或者終點; 圓角矩形(或圓形)代表變換數據的處理; 開口矩形(或兩條平行橫縣)代表數據存儲; 箭頭表…

網絡互聯基礎(1)

網絡互聯的基本概念 計算機網絡起始于20世紀60年代,當時網絡的概念主要是基于主機(Host)架構的低速串行(Serial)連接,提供應用程序執行、遠程打印和數據服務功能。IBM的系統網絡架構(System Network Architecture,SNA)于非IBM公司的X.25公用…

Python二級筆記(9)

知識點: 1,算法的空間復雜點是指算法在執行過程中所需要的內存空間。 2,結構化程序設計的思想包括:自頂向下、逐步求精、模塊化,限制使用goto語句。 3,字典中的“鍵”可以是整數或者字符串,但…

Python二級筆記(10)

知識點: 1,線性表的鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。 2,軟件測試是為了發現錯誤而執行程序的過程,測試要以查找錯誤為中心。 3&#x…

Qt圖形界面編程入門(6)

類的私有繼承方式 ①基類公有成員和保護成員都作為私有成員被派生類繼承,派生類自身的函數可直接訪問他們,但是派生類對象則只能通過本類的公有函數間接地訪問它們。 ②基類的私有成員成為派生類中更加封閉的私有成員,派生類內部成員函數也…

Qt圖形界面編程入門(7)

派生類的構造函數和析構函數 基類的構造函數和析構函數不能被繼承。 在派生類中,如果派生類新增的成員進行初始化,就必須加入新的構造函數。與此同時,對所有從基類繼承下來的成員的初始化工作還是由基類的構造函數完成,必須在派…

Python二級筆記(11)

知識點: 1,在棧中,棧頂指針top動態反映了棧中元素的變化情況,在循環隊列中,隊尾指針和隊頭指針的動態變化決定隊列的長度,在鏈式存儲結構中.無論是循環鏈表還是線性鏈表,插入和刪除元素時&…

Python二級筆記(12)

知識點: 1,機器周期的同步標準是指CPU訪問存儲器一次所需要的時間 2,int()函數可以將整數字符串轉換成整數,也可以將浮點數轉化為整數,但是不能將其他字符串轉換成整數。 3,當max(函數的參數是字典時&am…

Python二級筆記(13)

知識點: 1,機器數,不管是正數還是負數,其補碼的符號位取反即是偏移碼。 2,循環隊列是隊列的一種順序存儲結構 3, break語句會跳出break所在的最內層循環; try中 的語句出錯時會被捕獲異常,執行except下的…

Python二級筆記(14)

知識點: 1,在循環鏈表中,只要指出表中任何一個結點的位置,就可以從它出發不重復地訪問到表中其他所有的結點。 單向鏈表只有從頭指針開始,沿各結點的指針掃描鏈表中的所有結點。 雙向鏈表從任何一一個結點位置出發就可以訪問到表中其他所有結…

Python二級筆記(15)

知識點: 1,數據流圖(DFD)的作用是支持系統功能建模 2,一個數據庫可以有多個外模型(也稱子模式或用戶模型),但概念模型和內模式(物理模式)只能有一個。 3&a…

Linux基礎(管道符、重定向、轉義字符與環境變量)

1、輸入輸出重定向 簡而言之,輸入重定向是指把文件導入到命令中,而輸出重定向則是指把原本要輸出到屏幕的數據信息寫入到指定文件中。 標準輸入重定向(STDIN,文件描述符為0):默認從鍵盤輸入,也…

軟件工程(數據流圖例題詳解)

假設一家工廠的采購部每天需要一張訂貨報表,報表按零件編號排序,表中列出所有需要再次訂貨的零件。對于每個需要再次訂貨的零件應該列出下述的數據:零件編號,零件名稱,訂貨數量,目前價格,主要供…

軟件工程(數據流圖的命名、用途和自動化邊界)

數據流圖中每個成分的命名是否恰當,直接影響數據流圖的可理解性。因此,給這些成分起名字時應該仔細推敲。 命名 1.為數據流(或數據存儲)命名 (1)名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。 (2)不要使用空洞的…

軟件工程(數據字典)

數據字典 數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。 任何字典最主要的用這都是供人查閱對不了解的條目的解釋,數據字典的作用也正是在軟件分析和設計的過程中給人提供關于數據的描述信息。 數據流圖和數據字典共…

Qt圖形界面編程入門(Qt的歷史、Qt安裝資源鏈接、Qt Creator簡介)

Qt的歷史淵源 Qt是1991年由挪威的奇趣科技(Trolltech)公司開發的跨平臺C圖形用戶界面(GUI)用程序開發框架,2008年,奇趣科技公司被諾基亞公可收購,Qt也因此成為諾基亞公司旗下的編程語言工具,曾稱霸一時的Symbian手機操作系統就是…

Qt圖形界面編程入門(創建一個簡單的程序)

1,手工編碼方式 利用手工編碼方式建立“Hello Qt!”程序 第一步: 得到界面 2,無UI的向導方式 從圖中,我們發現向導為窗口程序提供了3個基類,分別外QMainWindow、QWidget、QDialog,3個基類的區…