免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
軟件過程開發(fā)方法(RUP、AP、MP、HP)

軟件過程開發(fā)方法(RUP、AP、MP、HP)收藏

 

軟件開發(fā)一個復雜的活動, 它包含了需求調研, 系統(tǒng)設計, 開發(fā), 部署, 維護等活動而且現(xiàn)有規(guī)范和流程目的并不是讓你去完成文檔而是通過這些文檔, 讓軟件的質量更能得到保證。組成軟件開發(fā)和系統(tǒng)演化的活動有著各種模型(軟件生存周期,軟件開發(fā)模型,軟件過程),但是典型地都包含了以下的過程或活動:分析、設計、實現(xiàn)、確認(測試驗收)、產品化、維護。

軟件開發(fā)方法的一般要求:當提出一種軟件開發(fā)方法時,應該考慮許多因素,包括:

     覆蓋開發(fā)全過程,并且便于在各階段間的過渡;

     便于在開發(fā)各階段中有關人員之間的通信;

     支持有效的解決問題的技術

     支持系統(tǒng)設計和開發(fā)的各種不同途徑

     在開發(fā)過程中支持軟件正確性的校驗和驗證;

     便于在系統(tǒng)需求中列入設計、實際和性能的約束;

     支持設計師和其他技術人員的智力勞動;

     在系統(tǒng)的整個生存周期都支持它的演化;

⑨受自動化工具的支持。

 

一個項目的成功與否跟人員、技術、資源、測試、架構、需求、領導、組織等因素有關系。把以上內容我們劃分為生命周期、人員、方法、工件、組織。而我們的軟件過程就針對這些方面討論解決方案,目前的有RupAP、MPHP、CMMI、Psp、Tsp等。這里將介紹一些方法的思想與指導原則。

一、軟件過程模型

    分類:

1.慣例過程模型。

  2.瀑布模型(又叫作生命周期模型)

  3.增量過程模型: 包括 增量模型、RAD模型。

  4.演化過程模型: 包括 原型開發(fā)模型、螺旋模型、協(xié)同開發(fā)模型。

  5.專用過程模型: 包括 基于構件的開發(fā)模型、形式化方法模型、面向方面的軟件開發(fā)模型。

過程模型圖:

 

 

 

 

 

 

 

二、常見軟件過程開發(fā)方法(Rup、APMP、HP

1、RUP

RUPRational Unified Process,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程)是一個面向對象且基于網絡的程序開發(fā)方法論。以用例驅動、架構為中心、迭代增量開發(fā)方法。

主要內容:

1六大經驗:迭代式開發(fā)、管理需求、基于組件的體系結構、可視化建模、驗證軟件質量、控制軟件變更。

2統(tǒng)一軟件開發(fā)過程RUP的二維開發(fā)模型

RUP軟件開發(fā)生命周期是一個二維的軟件開發(fā)模型。橫軸通過時間組織,是過程展開的生命周期特征,體現(xiàn)開發(fā)過程的動態(tài)結構,用來描述它的術語主要包括周期(Cycle)、階段(Phase)、迭代(Iteration)和里程碑(Milestone);縱軸以內容來組織為自然的邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結構,用來描述它的術語主要包括活動(Activity)、產物(Artifact)、工作者(Worker)和工作流(Workflow)。如圖:

 

3開發(fā)過程中的各個階段和里程碑

  RUP中的軟件生命周期在時間上被分解為四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。每個階段結束于一個主要的里程碑(Major Milestones);每個階段本質上是兩個里程碑之間的時間跨度。在每個階段的結尾執(zhí)行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許項目進入下一個階段。

 ?。?/span>1). 初始階段

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

 ?。?/span>2). 細化階段

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

 ?。?/span>3). 構造階段

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

 ?。?/span>4). 交付階段

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

4RUP的核心工作流(Core Workflows)

  RUP中有9個核心工作流,分為6個核心過程工作流(Core Process Workflows)3個核心支持工作流(Core Supporting Workflows)。盡管6個核心過程工作流可能使人想起傳統(tǒng)瀑布模型中的幾個階段,但應注意迭代過程中的階段是完全不同的,這些工作流在整個生命周期中一次又一次被訪問。9個核心工作流在項目中輪流被使用,在每一次迭代中以不同的重點和強度重復。

 ?。?/span>1). 商業(yè)建模(Business Modeling)

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

 ?。?/span>2). 需求(Requirements)

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

 ?。?/span>3). 分析和設計(Analysis & Design)

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

 ?。?/span>4). 實現(xiàn)(Implementation)

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

  (5). 測試(Test)

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

 ?。?/span>6). 部署(Deployment)

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

 ?。?/span>7). 配置和變更管理(Configuration & Change Management)

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

 ?。?/span>8). 項目管理(Project Management)

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

 ?。?/span>9). 環(huán)境(Environment)

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

5RUP的十大要素

 ?。?/span>1. 開發(fā)前景

 ?。?/span>2. 達成計劃

 ?。?/span>3. 標識和減小風險

 ?。?/span>4. 分配和跟蹤任務。。

 ?。?/span>5. 檢查商業(yè)理由

  (6. 設計組件構架

 ?。?/span>7. 對產品進行增量式的構建和測試

  (8. 驗證和評價結果

 ?。?/span>9. 管理和控制變化

 ?。?/span>10. 提供用戶支持

  讓我們逐一的審視這些要素,看一看它們什么地方適合RUP,找出它們能夠成為十大要素的理由。

 ?。?/span>1. 開發(fā)一個前景

  有一個清晰的前景是開發(fā)一個滿足涉眾真正需求的產品的關鍵。 前景抓住了RUP需求流程的要點:分析問題,理解涉眾需求,定義系統(tǒng),當需求變化時管理需求。 前景給更詳細的技術需求提供了一個高層的、有時候是合同式的基礎。正像這個術語隱含的那樣,它是軟件項目的一個清晰的、通常是高層的視圖,能被過程中任何決策者或者實施者借用。它捕獲了非常高層的需求和設計約束,讓前景的讀者能理解將要開發(fā)的系統(tǒng)。它還提供了項目審批流程的輸入,因此就與商業(yè)理由密切相關。最后,由于前景構成了項目是什么?為什么要進行這個項目?,所以可以把前景作為驗證將來決策的方式之一。 對前景的陳述應該能回答以下問題,需要的話這些問題還可以分成更小、更詳細的問題: ? 關鍵術語是什么?(詞匯表) ? 我們嘗試解決的問題是什么?(問題陳述) ? 涉眾是誰?用戶是誰?他們各自的需求是什么? ? 產品的特性是什么? ? 功能性需求是什么?(Use Cases) ? 非功能性需求是什么? ? 設計約束是什么?

 ?。?/span>2. 達成計劃

  產品的質量只會和產品的計劃一樣好。” (2) 在RUP中,軟件開發(fā)計劃(SDP)綜合了管理項目所需的各種信息,也許會包括一些在先啟階段開發(fā)的單獨的內容。SDP必須在整個項目中被維護和更新。 SDP定義了項目時間表(包括項目計劃和迭代計劃)和資源需求(資源和工具),可以根據(jù)項目進度表來跟蹤項目進展。同時也指導了其他過程內容(原文:process components)的計劃:項目組織、需求管理計劃、配置管理計劃、問題解決計劃、QA計劃、測試計劃、評估計劃以及產品驗收計劃。

  在較簡單的項目中,對這些計劃的陳述可能只有一兩句話。比如,配置管理計劃可以簡單的這樣陳述:每天結束時,項目目錄的內容將會被壓縮成ZIP包,拷貝到一個ZIP磁盤中,加上日期和版本標簽,放到中央檔案柜中。 軟件開發(fā)計劃的格式遠遠沒有計劃活動本身以及驅動這些活動的思想重要。正如Dwight D.Eisenhower所說:“plan什么也不是,planning才是一切。” “達成計劃”—和列表中第34、58條一起抓住了RUP中項目管理流程的要點。項目管理流程包括以下活動:構思項目、評估項目規(guī)模和風險、監(jiān)測與控制項目、計劃和評估每個迭代和階段。

 ?。?/span>3. 標識和減小風險

  RUP的要點之一是在項目早期就標識并處理最大的風險。項目組標識的每一個風險都應該有一個相應的緩解或解決計劃。風險列表應該既作為項目活動的計劃工具,又作為確定迭代的基礎。

 ?。?/span>4. 分配和跟蹤任務

  有一點在任何項目中都是重要的,即連續(xù)的分析來源于正在進行的活動和進化的產品的客觀數(shù)據(jù)。在RUP中,定期的項目狀態(tài)評估提供了講述、交流和解決管理問題、技術問題以及項目風險的機制。團隊一旦發(fā)現(xiàn)了這些障礙物(籬笆),他們就把所有這些問題都指定一個負責人,并指定解決日期。進度應該定期跟蹤,如有必要,更新應該被發(fā)布。(原文:updates should be issued as necessary。) 這些項目快照突出了需要引起管理注意的問題。隨著時間的變化/雖然周期可能會變化(原文:While the period may vary。),定期的評估使經理能捕獲項目的歷史,并且消除任何限制進度的障礙或瓶頸。

  (5. 檢查商業(yè)理由

  商業(yè)理由從商業(yè)的角度提供了必要的信息,以決定一個項目是否值得投資。商業(yè)理由還可以幫助開發(fā)一個實現(xiàn)項目前景所需的經濟計劃。它提供了進行項目的理由,并建立經濟約束。當項目繼續(xù)時,分析人員用商業(yè)理由來正確的估算投資回報率(ROI,即return on investment)。 商業(yè)理由應該給項目創(chuàng)建一個簡短但是引人注目的理由,而不是深入研究問題的細節(jié),以使所有項目成員容易理解和記住它。在關鍵里程碑處,經理應該回顧商業(yè)理由,計算實際的花費、預計的回報,決定項目是否繼續(xù)進行。

  (6. 設計組件構架

  在RUP中,件系統(tǒng)的構架是指一個系統(tǒng)關鍵部件的組織或結構,部件之間通過接口交互,而部件是由一些更小的部件和接口組成的。即主要的部分是什么?他們又是怎樣結合在一起的? RUP提供了一種設計、開發(fā)、驗證構架的很系統(tǒng)的方法。在分析和設計流程中包括以下步驟:定義候選構架、精化構架、分析行為(用例分析)、設計組件。 要陳述和討論軟件構架,你必須先創(chuàng)建一個構架表示方式,以便描述構架的重要方面。在RUP中,構架表示由軟件構架文檔捕獲,它給構架提供了多個視圖。每個視圖都描述了某一組涉眾所關心的正在進行的系統(tǒng)的某個方面。涉眾有最終用戶、設計人員、經理、系統(tǒng)工程師、系統(tǒng)管理員,等等。這個文檔使系統(tǒng)構架師和其他項目組成員能就與構架相關的重大決策進行有效的交流。

 ?。?/span>7. 對產品進行增量式的構建和測試

  在RUP中實現(xiàn)和測試流程的要點是在整個項目生命周期中增量的編碼、構建、測試系統(tǒng)組件,在先啟之后每個迭代結束時生成可執(zhí)行版本。在精化階段后期,已經有了一個可用于評估的構架原型;如有必 要,它可以包括一個用戶界面原型。然后,在構建階段的每次迭代中,組件不斷的被集成到可執(zhí)行、經過測試的版本中,不斷地向最終產品進化。動態(tài)及時的配置管理和復審活動也是這個基本過程元素(原文:essential process element)的關鍵。

  (8. 驗證和評價結果

  顧名思義,RUP的迭代評估捕獲了迭代的結果。評估決定了迭代滿足評價標準的程度,還包括學到的教訓和實施的過程改進。 根據(jù)項目的規(guī)模和風險以及迭代的特點,評估可以是對演示及其結果的一條簡單的紀錄,也可能是一個完整的、正式的測試復審記錄。 這兒的關鍵是既關注過程問題又關注產品問題。越早發(fā)現(xiàn)問題,就越沒有問題。(原文:The sooner you fall behind, the more time you will have to catch up.

 ?。?/span>9. 管理和控制變化

  RUP的配置和變更管理流程的要點是當變化發(fā)生時管理和控制項目的規(guī)模,并且貫穿整個生命周期。其目的是考慮所有的涉眾需求,盡可能的滿足,同時仍能及時的交付合格的產品。 用戶拿到產品的第一個原型后(往往在這之前就會要求變更),他們會要求變更。重要的是,變更的提出和管理過程始終保持一致。 RUP中,變更請求通常用于記錄和跟蹤缺陷和增強功能的要求,或者對產品提出的任何其他類型的變更請求。變更請求提供了相應的手段來評估一個變更的潛在影響,同時記錄就這些變更所作出的決策。他們也幫助確保所有的項目組成員都能理解變更的潛在影響。

  (10. 提供用戶支持

RUP中,部署流程的要點是包裝和交付產品,同時交付有助于最終用戶學習、使用和維護產品的任何必要的材料。 項目組至少要給用戶提供一個用戶指南(也許是通過聯(lián)機幫助的方式提供),可能還有一個安裝指南和版本發(fā)布說明。 根據(jù)產品的復雜度,用戶也許還需要相應的培訓材料。最后,通過一個材料清單(BOM表,即Bill of Materials)清楚地記錄應該和產品一起交付哪些材料。 關于需求 有人看了我的要素清單后,可能會非常不同意我的選擇。例如,他會問,需求在哪兒呢?他們不重要嗎?我會告訴他我為什么沒有把它們包括進來。有時,我會問一個項目組(特別是內部項目的項目組):你們的需求是什么?,而得到的回答卻是:我們的確沒有什么需求。剛開始我對此非常驚訝(我有軍方的宇航開發(fā)背景)。他們怎么會沒有需求呢?當我進一步詢問時,我發(fā)現(xiàn),對他們來說,需求意味著一套外部提出的強制性的陳述,要求他們必須怎么樣,否則項目驗收就不能通過。但是他們的確沒有得到這樣的陳述。尤其是當項目組陷入了邊研究邊開發(fā)的境地時,產品需求從頭到尾都在演化。 因此,我接著問他們另外一個問題:好的,那么你們的產品的前景是什么呢?。這時他們的眼睛亮了起來。然后,我們非常順利的就第一個要素(開發(fā)一個前景)中列出的問題進行了溝通,需求也自然而然的流動著(原文:and the requirements just flow naturally.)。 也許只有對于按照有明確需求的合同工作的項目組,在要素列表中加入滿足需求才是有用的。請記住,我的清單僅僅意味著進行進一步討論的一個起點。

RUP的生命周期模型與傳統(tǒng)的瀑布模型、演化模型、螺旋模型、噴泉模型不同的是在先啟、精化、構建、產品化階段每個過程可以有迭代和增量,而迭代以里程碑確定,在具體的過程中工作流程的側重點是不同的,還有就是各個工作流程是可以并行的,提高開發(fā)效率。方法上采用用例驅動;人員上有相關角色和個體的劃分,對于產品,主要是要以架構為中心,設計出具有高重用性、安全性、可擴展性等的系統(tǒng)。

 

2、AP

敏捷開發(fā)(agile development)是一種以人為核心、迭代、循序漸進的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。但敏捷開發(fā)并不是一種創(chuàng)新,敏捷開發(fā)可理解為在原有軟件開發(fā)方法基礎上的整合——取其精華,去其糟粕。因此敏捷開發(fā)繼承了不少原有方法的優(yōu)勢。然而,我們不得不面對的現(xiàn)實卻是,敏捷中模式與方法的優(yōu)化并不意味著問題的終結。作為一種開發(fā)模式,敏捷開發(fā)同樣需要面對眾多挑戰(zhàn)。

敏捷開發(fā)是由一些業(yè)界專家針對一些企業(yè)現(xiàn)狀提出了一些讓軟件開發(fā)團隊具有快速工作、響應變化能力的價值觀和原則,并于2001初成立了敏捷聯(lián)盟。他們正在通過親身實踐以及幫助他人實踐,揭示更好的軟件開發(fā)方法。

 

主要內容:

1)  敏捷是一個過程
敏捷不是一個過程,是一類過程的統(tǒng)稱,它們有一個共性,就是符合敏捷宣言,遵循敏捷的原則。

敏捷宣言如下:

個體和交互 勝過 過程和工具

可以工作的軟件 勝過 面面俱到的文檔

客戶合作 勝過 合同談判

響應變化 勝過 遵循計劃

由價值觀引出的12條敏捷原則:

我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意。

即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。

經常性地交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。

在整個項目開發(fā)期間,業(yè)務人員和開發(fā)人員必須天天都在一起工作。

圍繞被激勵起來的個體來構建項目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。

在團隊內部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談。

工作的軟件是首要的進度度量標準。

敏捷過程提倡可持續(xù)的開發(fā)速度。責任人、開發(fā)者和用戶應該能夠保持一個長期的、恒定的開發(fā)速度。

不斷地關注優(yōu)秀的技能和好的設計會增強敏捷能力。

簡單——使未完成的工作最大化的藝術——是根本的。

最好的構架、需求和設計出自于自組織的團隊。

每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然后相應地對自己的行為進行調整。

建立敏捷聯(lián)盟的17位大師所創(chuàng)立的敏捷方法包括:極限編程,Scrum,特征驅動開發(fā),動態(tài)系統(tǒng)開發(fā)方法,自適應軟件開發(fā),水晶方法,實用編程方法。這些方法統(tǒng)稱為敏捷方法。

其實每個人都可以從敏捷宣言和原則出發(fā),明確問題,找出一些解決方法,形成自己的過程。

2)敏捷開發(fā)的設計原則

關于敏捷開發(fā)的設計原則:

單一職責原則SRPSingle Responsibility Principle

開放封閉原則OCPOpenClose Principle

Liskov替換原則LSPLiskov Substitution Principle

依賴倒置原則DIPDependency Invertion Principle

接口隔離原則ISPInterface Separate Principle

關于包的設計原則:

重用發(fā)布等價原則REPReuse Equivalence Principle

共同重用原則CRPCommon Resue Principle

共同封閉原則CCPCommon Close Principle

無環(huán)依賴原則ADPAcyclic Dependency Principle

穩(wěn)定依賴原則SDPStabilization Dependency Principle

穩(wěn)定性度量公式:ICe/(Ca+Ce) (I:不穩(wěn)定度,Ce:輸入耦合度,Ca:輸出耦合度)

I取值范圍在【01】,I0表示具有最大穩(wěn)定度;iI1標識具有最大不穩(wěn)定度

穩(wěn)定抽象原則SAPStabilization Abstract Principle

AP主要有XP流派,當然還有很多的流派,包括極限編程,SCRUM,動態(tài)系統(tǒng)開發(fā),特征驅動開發(fā)等,但是這里主要探討的是XPAP中有4個思想,12條原則,主要在開發(fā)中強調人員的重要性和可操作性軟件的重要性,在方法上我們強調簡單,在人員上強調人員和交互高于環(huán)境和工具,產品上強調最早交付,迭代歡迎需求的變化,直到項目后期依舊歡迎需求的變更,最大化的包含需求為客戶提高競爭力。所以在AP中,由于是方法學家提出來的,所以是比較激進的,適合小型的項目開發(fā),以及在資源等有要求的情況下快速開發(fā)。

Extreme ProgrammingXP,極限編程) 是一種輕量級的軟件開發(fā)方法,它使用快速的反饋,大量而迅速的交流,經過保證的測試來最大限度的滿足用戶的需求。XP強調用戶滿意,開發(fā)人員可以對需求的變化作出快速的反應。XP強調team work。項目管理者,用戶,開發(fā)人員都處于同一個項目中,他們之間的關系不是對立的,而是互相協(xié)作的,具有共同的目標:提交正確的軟件。XP強調4個因素:

交流(communication),XP要求程序員之間以及和用戶之間有大量而迅速的交流

簡單(simplicity),XP要求設計和實現(xiàn)簡單和干凈

反饋(feedback)通過測試得到反饋,盡快提交軟件并根據(jù)反饋修改

勇氣(courage)。勇敢的面對需求和技術上的變化

XP特別適用于需求經常改變的領域,客戶可能并系統(tǒng)的功能并沒有清晰的認識,可能系統(tǒng)的需求經常需要變動。

XP也適用于風險比較高的項目,當開發(fā)人員面對一個新的領域或技術時,XP可以幫助減低風險

XP適用于小的項目(人員上),人員在2-12人之間,XP不適用于人員太多的項目,事實上,在需求經常變化或風險比較高的項目中,少量而有效的XP開發(fā)人員效率要遠遠高于大量的開發(fā)人員。

3MP

MP主要是微軟依靠自己的開發(fā)經驗建立的軟件過程,作為全球最大、最成功的軟件公司,MP有自己的體系。當然在人員上主要摒棄了傳統(tǒng)的項目經理職務,取而代之的是產品經理和程序經理,這里我要說明的是這個舉措是相當?shù)暮?,可以使得項目經理的職責細化,使得任務明確,產品經理對外滿足用戶需求而程序經理對內組織團隊開發(fā)。方法上:Mp采用每日編譯,和AP中的持續(xù)集成是一樣的,需求是提出遠景范圍文檔,提出遠期和近期的目標,而且把整個生命周期劃分為5個階段。當然MP主要提出均衡三角形的模型,使得人員、進

度、功能&性能三者達到平衡。

微軟過程原則:

1 制定計劃時兼顧未來不確定因素

2 通過有效的風險管理減少不確定因素的影響

3 經常生成過渡性的版本并快速測試來提高產品的穩(wěn)定性及可測性

4 快速循環(huán)遞進的開發(fā)過程

5 從產品特性和成本控制出發(fā)創(chuàng)造性地工作

6 創(chuàng)建確定的進度表

7 使用小型項目組并發(fā)完成工作,并設置多個同步

8 將大型項目分解成多個可管理的單元,以便更快地發(fā)布產品

9 用產品的前景目標和概要說明指導項目開發(fā)工作-先基線后凍結

10)避免產品走形

11)使用原型驗證概念,進行開發(fā)前的測試

12 零缺陷概念

13 非責難式的里程碑評審會

 

微軟開發(fā)產品的每個生命周期分五個階段

1 構想階段

2 計劃階段

3 開發(fā)階段

4 穩(wěn)定階段

5 發(fā)布階段

 

4、HP和諧軟件過程

在新的發(fā)展階段繼續(xù)全面快速地發(fā)展IT,必須堅持以和諧軟件過程為指導,和諧軟件過程是軟件工程在中國的新發(fā)展,是對軟件生命周期、軟件項目管理、系統(tǒng)架構、系統(tǒng)分析的重要指導方針,是企業(yè)進行信息化建設的重大戰(zhàn)略思想。和諧軟件過程第一次科學地回答了什么是軟件、如何保證并提高軟件品質、如何展開軟件工程各環(huán)節(jié)等軟件基本問題,認為品質低下不是軟件、操作不便不是軟件、非人性化不是軟件、存在較多bug不是軟件、效率低下(研發(fā)效率和運行效率)不是軟件、業(yè)務錯亂不是軟件、團隊不穩(wěn)不是軟件、管理混亂不是軟件、難以擴展和維護不是軟件、不能共享軟件成果不肯共擔軟件責任不是軟件、研發(fā)維護過于繁瑣不是軟件等實際問題。

和諧軟件過程,是立足中國當前基本國情和行業(yè)發(fā)展背景,是在總結我國實踐經驗和借鑒國外發(fā)展經驗基礎上,為適應新的軟件發(fā)展要求提出來的。進入新世紀新階段,我國軟件行業(yè)發(fā)展呈現(xiàn)出了一系列新的階段性特征,主要是:企業(yè)對軟件需求與日俱增,同時軟件研發(fā)不規(guī)范、漏洞多、性能差,技術思想大多依靠外國,自主創(chuàng)新能力不強,長期形成的需求誤解、返工率高、效率低下、系統(tǒng)不穩(wěn)定等問題尚未根本改變;從業(yè)人員的收入水平參差不齊、加班福利得不到根本保障,客戶、企業(yè)、員工三者利益沖突此伏彼起,要想統(tǒng)籌兼顧各方面利益難度加大。

行業(yè)軟件建設發(fā)展不平衡,企業(yè)霸占市場,信息化建設的難以分割性,導致公開招標不可能,因而只能漫天要價議標;IT從業(yè)人員的與日俱增,導致企業(yè)可以選擇職員范圍更廣,因而員工的薪資待遇得不到合理的價位保證;另一方面,IT企業(yè)的迅速擴建,導致IT從業(yè)人員有了更多的選擇,通過頻繁的跳槽來快速提升薪資待遇成為有實力一族的經驗技巧,從而使得企業(yè)的項目風險與日俱增;企業(yè)的速增,客戶也有了更多的選擇,一些新項目或者老項目改造擴建等,通過惡意招標使得企業(yè)利潤大幅降低;在企業(yè)利潤得不到保證時,加班成了家常便飯,得不到加班補貼,使得降低軟件品質成為了一線職員的自救措施,軟件品質得不到保障又反過來影響了公司的業(yè)務業(yè)績形象,從而進一步影響了員工的薪資福利;同時更多人對信息技術的掌握,以及對軟件要求、軟件文化需求、薪資待遇、職業(yè)規(guī)劃日趨旺盛,企業(yè)、員工的選擇性、多變性、差異性明顯增強,對企業(yè)信息化建設提出了更高要求;軟件活力顯著增強,同時社會結構、公司項目組織形式、社會利益格局發(fā)生深刻變化,軟件工程、系統(tǒng)架構和項目管理面臨諸多新課題;對外開放日益擴大,同時面臨的國際競爭日趨激烈,歐美國家的語言壓力長期存在,可以預見和難以預見的風險與困難將不斷增多,統(tǒng)籌國內發(fā)展和對外開放要求更高。

我們要強調認清國內軟件行業(yè)的基本國情,不是要妄自菲薄、自甘落后,也不是要脫離實際、急于求成,更不能閉門自鎖,而是要堅持把它作為推進改革、謀劃發(fā)展的根本依據(jù)。我們必須始終保持清醒的頭腦,立足當前情況這個最大的實際,科學分析我國全面參與軟件全球化的新機遇新挑戰(zhàn),全面認識軟件工業(yè)化、信息化、城鎮(zhèn)化、市場化、國際化深入發(fā)展的新形勢新任務,深刻把握我國軟件發(fā)展面臨的新課題新矛盾,更加自覺地走和諧軟件道路,奮力開拓中國特色軟件工程更為廣闊的發(fā)展前景。

和諧軟件過程,第一要義是平衡,核心是以人為本,基本要求是涉眾共同承擔軟件義務共享軟件成果,根本指導思想與實施方法是簡易法則,實踐要求是全面協(xié)調。

必須堅持把平衡作為和諧軟件工程的第一要義。平衡,對于整個軟件生命周期,具有決定性意義。和諧的目的在于永續(xù),平衡是永續(xù)的根本保證。平衡,包括了各方利益(軟件權利和軟件義務)的平衡,對于員工則更體現(xiàn)了工作績效與薪資待遇的平衡,例如加班必須給予補貼,這直接體現(xiàn)了勞動法第44條和民法通則的補償原則,是和諧軟件過程對自然法原則的應用,也是牛頓力學的受力平衡與熱平衡、心理平衡等自然法則在和諧軟件過程中的具體應用。我們要牢牢把握好平衡這個中心,堅持聚精會神搞信息化建設、一心一意做項目,不斷解放和發(fā)展軟件生產力。更好地實施軟件興國策略、軟件強國戰(zhàn)略,著力把握軟件發(fā)展規(guī)律、創(chuàng)新軟件發(fā)展理念、轉變軟件研發(fā)模式、破解軟件難題,提高軟件品質和軟件效益,實現(xiàn)又好又快地永續(xù)研發(fā)軟件。努力實現(xiàn)以人為本、涉眾共同承擔軟件義務共享軟件成果,實現(xiàn)各方面的有機統(tǒng)一、員工企業(yè)客戶團結和睦的和諧發(fā)展,實現(xiàn)通過維護軟件平衡、發(fā)展員工和企業(yè)、提升客戶競爭力。

和諧軟件過程必須堅持簡易法則。簡易的目的在于務實、實用,在于提高效率、政通人和。乾以易知,坤以簡能;易則易知,簡則易從;易知則有親,易從則有功;有親則可久,有功則可大;可久則賢人之德,可大則賢人之業(yè);易簡而天下之理得矣;天下之理得,而成位乎其中矣。系統(tǒng)架構、項目研發(fā)不能舍近求遠、舍簡求繁,不能以為了騙取高額的項目費而故意采用繁瑣的方法,騙取較多的工時;也不能以本來就有簡易快速的方法、成熟的技術方案可以借鑒參考,卻故意采用其他方法;當現(xiàn)有方法或者新技術不足以提高效率甚者會影響效率時,是否存在重復設計時,我們務必考慮如何優(yōu)化,使之可以多塊好省地進行。務必堅持信息向上集中、服務向下延伸為基本理念,以信息集成化為原則,不要不斷建立一個又一個的信息孤島。軟件至簡,不教而用!

和諧軟件過程必須始終堅持以人為本。軟件最終是給人用過的,研發(fā)過程也離不開人的積極努力,全心全意為客戶創(chuàng)造最好的軟件是和諧軟件過程的根本宗旨,企業(yè)和員工的一切奮斗和工作都是為了服務客戶。要始終把實現(xiàn)好、維護好、升級發(fā)展好最廣泛客戶的軟件需求作為企業(yè)和員工一切工作的出發(fā)點和落腳點,尊重客戶、員工的主體地位,發(fā)揮員工的首創(chuàng)精神,保障員工的各項權益,走利益共贏的軟件道路,促進三者的全面發(fā)展,做到軟件為了人、研發(fā)依靠人、軟件成果由人共享(企業(yè)即企業(yè)法人)。

和諧軟件過程必須堅持全面協(xié)調。要按照軟件需求進行系統(tǒng)總體分析和系統(tǒng)架構,全面做好需求調研、設計、研發(fā)、測試、上線實施、配置管理、數(shù)據(jù)庫DBA、網絡管理,各個環(huán)節(jié)、各個方面相協(xié)調,促進客戶與企業(yè)、績效與薪資福利相協(xié)調。

和諧軟件過程必須堅持統(tǒng)籌兼顧。要正確認識和妥善處理軟件研發(fā)過程中的各項重大關系,務必統(tǒng)籌兼顧利益、質量、時間、成本、范圍、員工與企業(yè)和客戶和諧永續(xù)地發(fā)展、國內創(chuàng)新發(fā)展和借鑒吸取國外成功優(yōu)秀經驗、實行軟件對外開放政策,統(tǒng)籌員工、企業(yè)與客戶的關系,統(tǒng)籌員工利益和企業(yè)利益、企業(yè)利益和客戶利益、公司業(yè)績和軟件品質,充分調動各方面積極性。統(tǒng)籌三方利益、把握軟件品質大局,樹立世界眼光,加強戰(zhàn)略思維,善于從國際形勢發(fā)展變化和充分借鑒祖國傳統(tǒng)哲學中各類有效經驗,把握發(fā)展機遇、應對風險挑戰(zhàn),營造良好的軟件開發(fā)環(huán)境。既要總攬全局、統(tǒng)籌規(guī)劃,又要抓住牽動全局的主要工作、事關多方利益的突出問題,著力推進、重點突破。

深入貫徹落實和諧軟件過程,要求我們始終堅持“平衡、簡易、統(tǒng)籌”的基本觀點和方法。軟件過程的基本政策路線是企業(yè)、員工、客戶的生命線,是實現(xiàn)和諧永續(xù)研發(fā)的根本保證。以平衡為第一要義是軟件過程得以正常開展的基本前提,是員工、企業(yè)、客戶基本要求得以實現(xiàn)的根本要求;簡易法則是展開具體工作之本,是實現(xiàn)員工、企業(yè)、客戶利益最大化的現(xiàn)實基礎;總結、吸收和創(chuàng)新是不斷提高工作效率、提高各方利益的活力源泉。要堅持把以促進利益平衡、以簡易法則提高效率、保證軟件品質三個基本點統(tǒng)一于共享軟件成果共擔軟件義務之中,不斷促進和發(fā)展具有中國特色的和諧軟件過程的偉大實踐之中,任何時候都決不能動搖。

深入貫徹落實和諧軟件過程,要求我們繼續(xù)深化改善軟件過程。要把改善創(chuàng)新精神貫徹到軟件工程的各個環(huán)節(jié),毫不動搖地堅持改善方向,提高改善決策的科學性,增強改善措施的協(xié)調性。要完善和諧的軟件權力義務體制,推進各方面體制改善創(chuàng)新,加快重要過程和關鍵環(huán)節(jié)的改善步伐,全面提高開放總結反思吸收借鑒創(chuàng)新水平,著力構建充滿活力、富有效率、更加開放、有利于軟件研發(fā)的體制機制,為發(fā)展中國特色軟件事業(yè)提供強大動力和體制保障。要堅持把改善各方權力義務平衡作為正確處理改善研發(fā)過程和發(fā)展穩(wěn)定團隊的結合點,使改善始終得到多方軟件人民的擁護和支持。

深入貫徹落實和諧軟件過程,要求我們切實加強和改進團隊建設。企業(yè)要站在完成為客戶提高工作效率使命的高度,要把提高軟件項目系統(tǒng)架構能力、保持和提高軟件品質能力,體現(xiàn)到項目管理、系統(tǒng)分析、促進軟件過程的和諧上來,要落實到引領軟件過程發(fā)展進步、擔任起創(chuàng)新的重要使命,要更好地代表和實現(xiàn)最廣大軟件人民的根本利益上來,使軟件工程的各項工作更加符合和諧軟件過程的要求,為和諧軟件過程提供可靠的體制和組織保障。

和諧軟件過程,在思想理念和實踐方法上,要充分借鑒中國先秦諸子百家中法家、儒家、兵家、道家、醫(yī)家、史家、墨家、縱橫家、易家等一切優(yōu)秀的思想理念和有效的方法論,尤其是法家的變通和效率思想、儒家的人性關懷、墨家的人才觀、縱橫家的心理學談判技巧解釋溝通、兵家的靈活創(chuàng)新、醫(yī)家的防范思想和整體辯證觀念、道家全面協(xié)調和諧永續(xù)思想、史家的反思總結借鑒方法論、和易經(遠勝于西方所謂的系統(tǒng)工程)的系統(tǒng)觀念,是由工作在軟件一線的客戶代表、企業(yè)領導、系統(tǒng)分析師、系統(tǒng)架構師、項目經理、高級程序員根據(jù)實踐經驗、教訓和理論的不斷反思總結所得出的,具有很強的理論基礎和切實的實際可操作可行性。同時和諧軟件過程在吸收借鑒方面始終堅持泰山不讓土壤、河海不擇細流、王者不卻眾庶、有容乃大、海納百川的博大胸懷與思想境界以及不期修古、不法???、論世之事、因為之備的方法論。和諧軟件過程雖然是軟件工程在中國發(fā)展的新發(fā)展、新成果,但是和諧軟件過程同樣很強調應當根據(jù)不同文化、不同信仰的民族特點、國家國情來做出裁減和調整。

深入貫徹落實和諧軟件過程,要求我們積極構建和諧的軟件文化。和諧軟件過程是中國特色軟件工程的本質屬性,和諧軟件過程是軟件工程在中國發(fā)展的新成果,是和黨的科學發(fā)展是內在統(tǒng)一的,也是黨所一貫主張的自主創(chuàng)新理念和自主知識產權在軟件工程中的應用。沒有和諧軟件過程就沒有軟件工程,沒有和諧軟件過程也不可能持續(xù)永續(xù)地研發(fā)出具備完美軟件品質的軟件產品。實施和諧軟件過程是貫穿于中國特色軟件工程全過程的長期歷史任務,是在軟件研發(fā)的基礎上正確處理各種軟件矛盾的歷史過程和社會結果。要通過發(fā)展不斷促進增加各方利益、不斷改善人的軟件生活,又要通過軟件研發(fā)保障軟件公平正義、不斷促進過程和諧。實現(xiàn)軟件過程的公平正義是涉眾的一貫主張,是中國軟件事業(yè)走向世界并引領世界軟件產業(yè)發(fā)展方向的重大任務。在軟件過程中要始終按照民主法治、公平正義、誠信友愛、充滿活力、安定有序、員工企業(yè)客戶和諧相處的總要求和共同建設、共同享有的原則,著力解決三方最關心、最直接、最現(xiàn)實的利益問題,努力形成軟件人民各盡其能、各得其所而又和諧相處的局面,為發(fā)展軟件提供良好的軟件文化環(huán)境。

全體IT從業(yè)人員、所有軟件人民要全面把握和諧軟件過程的科學內涵和精神實質,增強貫徹落實和諧軟件過程的自覺性和堅定性,著力轉變不適應不符合和諧軟件過程的思想觀念,著力解決影響和制約和諧軟件過程的突出問題,把軟件社會的發(fā)展積極性引導到和諧過程上來,把和諧軟件過程貫徹落實到軟件工程的各個方面。

總之,我們要不斷堅持和諧軟件過程,根據(jù)軟件、行業(yè)、人文等各類因素,不斷地落實和深化和諧軟件過程的理念,不斷反思總結吸收借鑒改善創(chuàng)新,把黨所一貫主張的自主創(chuàng)新、自主知識產權要求通過和諧軟件過程真正得到體現(xiàn),使中國軟件能夠趕上并超過美國甚至領先世界。

 和諧軟件過程是以人為核心,堅持“平衡、簡易、統(tǒng)籌”的基本觀點和方法。軟件過程的基本政策路線是企業(yè)、員工、客戶的生命線,是實現(xiàn)和諧永續(xù)研發(fā)的根本保證。以平衡為第一要義是軟件過程得以正常開展的基本前提,是員工、企業(yè)、客戶基本要求得以實現(xiàn)的根本要求;簡易法則是展開具體工作之本,是實現(xiàn)員工、企業(yè)、客戶利益最大化的現(xiàn)實基礎;總結、吸收和創(chuàng)新是不斷提高工作效率、提高各方利益的活力源泉。要堅持把以促進利益平衡、以簡易法則提高效率、保證軟件品質三個基本點統(tǒng)一于共享軟件成果共擔軟件義務之中。

 

總結:軟件過程方法沒有最好的方法,只有最適合的方法。由于每個公司文化和項目背景不同,最適合公司文化和項目特點的方法就是最佳、最好的開法。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
軟件開發(fā)過程學習總結CMM、RUP、XP
軟件生命周期[轉載]
軟件開發(fā)過程模型,軟件過程模型,軟件開發(fā)過程幾種模型對比
幾種常見的軟件開發(fā)模型
淺析軟件工程開發(fā)方法學RUP
RUP和IPD流程的優(yōu)缺點
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服