【軟件工程】面向對象方法-RUP

RUP(Rational Unified Process,統一軟件開發過程)。

RUP特點

以用況驅動的,以體系結構為中心的,迭代增量式開發

用況驅動

  1. 用況是能夠向用戶提供有價值結果的系統中的一種功能
  2. 用況獲取的是功能需求

在系統的生存周期中,以用況作為基礎,驅動系統有關人員對所要建立系統的功能需求進行交流,驅動系統分析、設計、實現和測試等活動,包括制定計劃、分配任務、監控執行和進行測試等,并將它們有機地組織在一起,使各個階段中都可以回溯到用戶的實際需求。

體系結構為中心

系統體系結構:是對系統語義的概括描述,對所有項目有關人員都是可以理解的。

迭代與增量

(1)迭代是重復的部分
(2)增量是增加的部分
一個迭代是一個完整的開發循環,產生一個可執行的產品版本,是最終產品的一個子集,它增量
式地發展,從一個迭代過程到另一個迭代過程到成為最終的系統。

?二維開發模型

RUP軟件開發生命周期是一個二維的軟件開發模型。橫軸通過時間組織,是過程展開的生命周期特征,體現開發過程的動態結構,用來描述它的術語主要包括周期(Cycle)、階段(Phase)、迭代(Iteration)和里程碑(Milestone);縱軸以內容來組織為自然的邏輯活動,體現開發過程的靜態結構,用來描述它的術語主要包括活動(Activity)、產物(Artifact)、工作者(Worker)和工作流(Workflow)。如圖1:RUP中的軟件生命周期在時間上被分解為四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。每個階段結束于一個主要的里程碑(Major?Milestones);每個階段本質上是兩個里程碑之間的時間跨度。在每個階段的結尾執行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許項目進入下一個階段。
?

?

初始階段

初始階段的目標是為系統建立商業案例并確定項目的邊界。為了達到該目的必須識別所有與系統交互的外部實體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險。對于建立在原有系統基礎上的開發項目來講,初始階段可能很短。初始階段結束時是第一個重要的里程碑:生命周期目標(Lifecycle Objective)里程碑。生命周期目標里程碑評價項目基本的生存能力。

細化階段

細化階段的目標是分析問題領域,建立健全的體系結構基礎,編制項目計劃,淘汰項目中最高風險的元素。為了達到該目的,必須在理解整個系統的基礎上,對體系結構作出決策,包括其范圍、主要功能和諸如性能等非功能需求。同時為項目建立支持環境,包括創建開發案例,創建模板、準則并準備工具。細化階段結束時第二個重要的里程碑:生命周期結構(Lifecycle Architecture)里程碑。生命周期結構里程碑為系統的結構建立了管理基準并使項目小組能夠在構建階段中進行衡量。此刻,要檢驗詳細的系統目標和范圍、結構的選擇以及主要風險的解決方案。

?構造階段

在構建階段,所有剩余的構件和應用程序功能被開發并集成為產品,所有的功能被詳細測試。從某種意義上說,構建階段是一個制造過程,其重點放在管理資源及控制運作以優化成本、進度和質量。構建階段結束時是第三個重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產品是否可以在測試環境中進行部署。此刻,要確定軟件、環境、用戶是否可以開始系統的運作。此時的產品版本也常被稱為“beta”版。
?

交付階段

?交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發布做準備的產品測試,基于用戶反饋的少量的調整。在生命周期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,所有主要的結構問題應該已經在項目生命周期的早期階段解決了。在交付階段的終點是第四個里程碑:產品發布(Product Release)里程碑。此時,要確定目標是否實現,是否應該開始另一個開發周期。在一些情況下這個里程碑可能與下一個周期的初始階段的結束重合。

?核心工作流

交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發布做準備的產品測試,基于用戶反饋的少量的調整。在生命周期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,所有主要的結構問題應該已經在項目生命周期的早期階段解決了。在交付階段的終點是第四個里程碑:產品發布(Product Release)里程碑。此時,要確定目標是否實現,是否應該開始另一個開發周期。在一些情況下這個里程碑可能與下一個周期的初始階段的結束重合。

商業建模

商業建模(Business Modeling)工作流描述了如何為新的目標組織開發一個構想,并基于這個構想在商業用況模型和商業對象模型中定義組織的過程,角色和責任。

需求

需求(Requirement)工作流的目標是描述系統應該做什么,并使開發人員和用戶就這一描述達成共識。為了達到該目標,要對需要的功能和約束進行提取、組織、文檔化;最重要的是理解系統所解決問題的定義和范圍。

分析和設計

?分析和設計(Analysis & Design)工作流將需求轉化成未來系統的設計,為系統開發一個健壯的結構并調整設計使其與實現環境相匹配,優化其性能。分析設計的結果是一個設計模型和一個可選的分析模型。設計模型是源代碼的抽象,由設計類和一些描述組成。設計類被組織成具有良好接口的設計包(Package)和設計
子系統(Subsystem),而描述則體現了類的對象如何協同工作實現用況的功能。設計活動以體系結構設計為中心,體系結構由若干結構視圖來表達,結構視圖是整個設計的抽象和簡化,該視圖中省略了一些細節,使重要的特點體現得更加清晰。體系結構不僅僅是良好設計模型的承載媒介,而且在系統的開發中能提高被創建模型的質量。?

實現

實現(Implementation)工作流的目的包括以層次化的子系統形式定義代碼的組織結構;以組件的形式(源
文件、二進制文件、可執行文件)實現類和對象;將開發出的組件作為單元進行測試以及集成由單個開發者
(或小組)所產生的結果,使其成為可執行的系統。?


測試


測試(Test)工作流要驗證對象間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正
確的實現,識別并確認缺陷在軟件部署之前被提出并處理。RUP提出了迭代的方法,意味著在整個項目中進
行測試,從而盡可能早地發現缺陷,從根本上降低了修改缺陷的成本。測試類似于三維模型,分別從可靠性、
功能性和系統性能來進行。


部署

?部署(Deployment)工作流的目的是成功的生成版本并將軟件分發給最終用戶。部署工作流描述了那些與確保軟件產品對最終用戶具有可用性相關的活動,包括:軟件打包、生成軟件本身以外的產品、安裝軟件、為用戶提供幫助。在有些情況下,還可能包括計劃和進行beta測試版、移植現有的軟件和數據以及正式驗收。


配置和變更管理


配置和變更管理工作流描繪了如何在多個成員組成的項目中控制大量的產物。配置和變更管理工作流提供了準則來管理演化系統中的多個變體,跟蹤軟件創建過程中的版本。工作流描述了如何管理并行開發、分布式開發、如何自動化創建工程。同時也闡述了對產品修改原因、時間、人員保持審計記錄。

項目管理

軟件項目管理(Project Management)平衡各種可能產生沖突的目標,管理風險,克服各種約束并成功交付使用戶滿意的產品。其目標包括:為項目的管理提供框架,為計劃、人員配備、執行和監控項目提供實用的準則,為管理風險提供框架等。

環境

環境(Environment)工作流的目的是向軟件開發組織提供軟件開發環境,包括過程和工具。環境工作流集中于配置項目過程中所需要的活動,同樣也支持開發項目規范的活動,提供了逐步的指導手冊并介紹了如何在組織中實現過程。


?

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

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

相關文章

解決在vue中img標簽不顯示圖片的問題

在vue中, 經常會遇到img標簽不展示的問題, 本人遇到兩種, 都是因為webpack打包, 導致找不到路徑, 所以不現實, 總結幾個可以解決本地圖片路徑顯示不出來的問題: 1.把圖片放在src同級的static文件夾下。 2.把圖片放在cdn上,把網絡地址存在imgUrl里&#x…

RabbitMQ: 詳解、使用教程和示例

RabbitMQ: 詳解、使用教程和示例 什么是 RabbitMQ? RabbitMQ 是一個開源的消息代理(Message Broker)軟件,它實現了高級消息隊列協議(AMQP),用于在應用程序之間進行異步消息傳遞。它允許應用程…

uni-app日期選擇器

寫個簡單的日期選擇器&#xff0c;還沒搞樣式&#xff0c;所以有點丑 大概長這樣吧 首先是這個picker選擇器&#xff0c;mode選擇日期&#xff0c;end是寫一個范圍前日期&#xff0c;:end就是這個日期是動態變化的&#xff0c;還有change函數 <template><view>&l…

【pinia】Pinia入門和基本使用:

文章目錄 一、 什么是pinia二、 創建空Vue項目并安裝Pinia1. 創建空Vue項目2. 安裝Pinia并注冊 三、 實現counter四、 實現getters五、 異步action六、 storeToRefs保持響應式解構七、基本使用&#xff1a;【1】main.js【2】store》index.js【3】member.ts 一、 什么是pinia P…

Python:列表、元組、集合、字典,數據類型之間的 5 個差異

Python&#xff1a;列表、元組、集合、字典&#xff0c;數據類型之間的 5 個差異 1. 相同點2. 不同點2.1 排序2.2 索引2.3 可變性2.5 允許的類型2.4 允許重復 源碼 這篇博客將介紹列表、元組、集合、字典&#xff08;lists, tuples, sets, and dictionaries&#xff09;數據類型…

6.0 Python 使用函數裝飾器

裝飾器可以使函數執行前和執行后分別執行其他的附加功能&#xff0c;這種在代碼運行期間動態增加功能的方式&#xff0c;稱之為"裝飾器"(Decorator)&#xff0c;裝飾器的功能非常強大&#xff0c;裝飾器一般接受一個函數對象作為參數&#xff0c;以對其進行增強&…

安達發APS|生產計劃排產軟件助力加工制造業智能化轉型

隨著全球經濟一體化的不斷深入&#xff0c;市場競爭日益激烈&#xff0c;加工制造企業面臨著巨大的生存壓力。在這種情況下&#xff0c;企業對于生產計劃的精細化管理需求日益迫切。為了適應這一市場需求&#xff0c;安達發推出了專門針對加工企業的APS生產計劃排產軟件&#x…

新一代構建工具 maven-mvnd

新一代構建工具 maven-mvnd mvnd的前世今生下載安裝 mvndIDEA集成 mvnd的前世今生 maven 作為一代經典的構建工具&#xff0c;流行了很多年&#xff0c;知道現在依然是大部分Java項目的構建工具的首選&#xff1b;但隨著項目復雜度提高&#xff0c;代碼量及依賴庫的增多使得ma…

簡單易懂的 Postman Runner 參數自增教程

目錄 什么是 Postman Runner&#xff1f; Postman Runner 如何實現參數自增&#xff1f; 步驟一&#xff1a;設置全局參數 步驟二&#xff1a;將全局參數帶入請求參數 步驟三&#xff1a;實現參數自增 資料獲取方法 什么是 Postman Runner&#xff1f; Postman Runner 是…

Python爬蟲(1)一次性搞定Selenium(新版)8種find_element元素定位方式

selenium中有8種不錯的元素定位方式&#xff0c;每個方式和應用場景都不一樣&#xff0c;需要根據自己的使用情況來進行修改 8種find_element元素定位方式 1.id定位2.CSS定位3.XPATH定位4.name定位5.class_name定位6.Link_Text定位7.PARTIAL_LINK_TEXT定位8.TAG_NAME定位總結 …

【第一階段】kotlin中反引號中的函數名特點

在kotlin中可以直接中文定義函數&#xff0c;使用反引號進行調用 eg: fun main() {2023年8月9日定義的函數(5) }private fun 2023年8月9日定義的函數(num:Int){println("反引號的用法$num") }執行結果 在Java中is,in可以定義方法&#xff0c;但是在kotlin中is,in是…

資料分析(三)—— 基期、現期、人口、增長量

基期 基期值 現期值 - 增長量 增長量/增長率 現期值/1&#xff08;間隔)增長率 化除為乘 &#xff1a;當增長率&#xff5c;r| < 5% 時&#xff0c;&#xff0c; 注&#xff1a;當選項首位相同&#xff0c;第二位也相同時&#xff0c;只能用直除 基期和差 (結合選…

SolidUI社區-根據Prompt打造人設

背景 隨著文本生成圖像的語言模型興起&#xff0c;SolidUI想幫人們快速構建可視化工具&#xff0c;可視化內容包括2D,3D,3D場景&#xff0c;從而快速構三維數據演示場景。SolidUI 是一個創新的項目&#xff0c;旨在將自然語言處理&#xff08;NLP&#xff09;與計算機圖形學相…

【openwrt學習筆記】dnsmasq源碼閱讀

目錄 一、DHCP(Dynamic Host Configuration Protocol)1.1 前置知識1.2 參考鏈接1.3 IP地址分配代碼分析rfc2131.cdhcp-common.cdhcp.c 1.4 幾個小問題1.4.1 連續IP模式&#xff08;sequential_ip&#xff09;1.4.2 重新連接使用IP地址1.4.3 續約租期1.4.4 不同的MAC地址分配到相…

VS+Qt+C++旅游景區地圖導航源碼實例

程序示例精選 VSQtC旅游景區地圖導航 如需安裝運行環境或遠程調試&#xff0c;見文章底部個人QQ名片&#xff0c;由專業技術人員遠程協助&#xff01; 前言 這篇博客針對<<VSQtC旅游景區地圖導航>>編寫代碼&#xff0c;代碼整潔&#xff0c;規則&#xff0c;易讀。…

【Vue框架】菜單欄權限的使用與顯示

前言 在 【Vue框架】Vue路由配置 中的getters.js里&#xff0c;可以看到有一個應用程序的狀態&#xff08;變量&#xff09;叫 permission_routes&#xff0c;這個就是管理前端菜單欄的狀態。具體代碼的介紹&#xff0c;都以注釋的形式來說明。 1、modules\permission.js 1…

SpringBoot 將項目打包成 jar 包

SpringBoot 將項目打包成 jar 包 一、項目打包成 jar 包 首先在 pom.xml 文件中導入 Springboot 的 maven 依賴 <!-- 將應用打包成一個可以執行的 jar 包 --> <build><plugins><plugin><groupId>org.springframework.boot</groupId><…

學習筆記整理-面向對象-02-認識函數的上下文

一、認識函數的上下文 什么是上下文 垃圾分類&#xff0c;這是非常好的習慣&#xff0c;值得表揚隨手關燈&#xff0c;這是非常好的習慣&#xff0c;值得表揚遛狗栓繩&#xff0c;這是非常好的習慣&#xff0c;值得表揚課后復習&#xff0c;這是非常好的習慣&#xff0c;值得…

【數據結構】單鏈表OJ題(二)

&#x1f525;博客主頁&#xff1a;小王又困了 &#x1f4da;系列專欄&#xff1a;數據結構 &#x1f31f;人之為學&#xff0c;不日近則日退 ??感謝大家點贊&#x1f44d;收藏?評論?? 目錄 一、鏈表分割 &#x1f4a1;方法一&#xff1a; 二、鏈表的回文 &#x…

hosts文件中被添加 windows10.microdone.cn

在網上搜了一圈逗說是之前下過征信中心的安全控件,是微通新成網絡科技有限公司這家公司提供的,也是http://microdone.cn的運營商。后邊只要使用代理,就會跳出來,所以常規處理操作就是去把瀏覽器上的安全控件卸載了。 參考 解決 windows10 的 代理頻繁被自動篡改為windows10.mi…