版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程第02章 軟件過程2022/10/1512022/10/151軟件工程第02章 軟件過程2022/10/11120目標軟件過程和軟件過程模型的概念;三個一般的軟件過程模型及何時可以使用它們;軟件需求工程、軟件開發(fā)、測試和進化中所涉及的活動概貌;理解為什么軟件過程要有效地組織以應對軟件需求和設計上的變更;Rational統(tǒng)一過程如何集成好的軟件過程實踐來產(chǎn)生一個現(xiàn)代的一般過程模型;22022/10/152022/10/152目標軟件過程和軟件過程模型的概念;22022/10/1120內(nèi)容軟件過程模型過程活動應對變更Rational統(tǒng)一過程32022/10/152022/10/153內(nèi)容軟
2、件過程模型32022/10/112022/10/113軟件過程一個軟件過程是一組引發(fā)軟件產(chǎn)品生產(chǎn)的活動。軟件描述;軟件設計和實現(xiàn);軟件有效性驗證;軟件進化;軟件過程模型-軟件過程的抽象表示法。每個過程模型從一個特定的角度表現(xiàn)一個過程,只提供過程的某一側面的信息。42022/10/152022/10/154軟件過程一個軟件過程是一組引發(fā)軟件產(chǎn)品生產(chǎn)的活動。42022軟件過程描述過程描述包括:產(chǎn)品,這是軟件過程活動的結果。角色,反映人在軟件過程的職責。前置和后置條件,是指一個過程活動執(zhí)行前后或產(chǎn)品生產(chǎn)的前后,陳訴語句為真。2022/10/155軟件過程描述過程描述包括:2022/10/115計劃驅(qū)
3、動過程和敏捷過程計劃驅(qū)動的過程是提前計劃好所有的過程活動,然后按計劃去考核過程的執(zhí)行。在敏捷過程中,計劃是增量式的,而且很容易根據(jù)不斷變化的客戶需求變更過程。實際應用中,大多數(shù)過程都同時包含計劃驅(qū)動和敏捷方法。沒有所謂好的或壞的的軟件過程2022/10/156計劃驅(qū)動過程和敏捷過程計劃驅(qū)動的過程是提前計劃好所有的過程活2.1 通用軟件過程模型瀑布模型使用單獨的過程階段(如需求描述,軟件設計,實現(xiàn)和測試等階段)表現(xiàn)這些活動。增量式開發(fā)需要分析,設計與驗證都是交錯進行。面向復用的軟件工程這個方法是基于已存在的很多可復用的組件。這三個模型相互不排斥,而且經(jīng)常一起使用,尤其是對大型系統(tǒng)的開發(fā)。7202
4、2/10/152022/10/1572.1 通用軟件過程模型瀑布模型72022/10/11202瀑布模型82022/10/15需求分析和定義系統(tǒng)和軟件設計實現(xiàn)和單元測試集成和系統(tǒng)測試運行和維護2022/10/158瀑布模型82022/10/11需求分析和定義系統(tǒng)和軟件設計實瀑布模型階段瀑布模型也可以看成是軟件的生命周期模型,它是計劃驅(qū)動的軟件過程的實例,也就是說,在開始工作之前,你必須對所有的過程活動制定計劃并給出進度安排。瀑布模型中的主要活動包括:需求分析和定義系統(tǒng)和軟件設計實現(xiàn)和單元測試集成和系統(tǒng)測試運行和維護92022/10/152022/10/159瀑布模型階段瀑布模型也可以看成是軟件
5、的生命周期模型,它是計劃瀑布模型階段每個階段的結果是一個或多個經(jīng)過核準的文件。直到上一個階段完成,下一個階段才能啟動。在實際過程中,這些階段經(jīng)常是重疊和彼此間有信息交換的。生成和確認文檔的成本很高,反復是昂貴且十分費事,但又在所難免。依據(jù)不同的項目需要采取不同的處理方法。102022/10/152022/10/1510瀑布模型階段每個階段的結果是一個或多個經(jīng)過核準的文件。102瀑布模型的問題不能靈活劃分為不同的階段,難以應對不斷變化的客戶需求。只有在全面理解了需求,而且在系統(tǒng)開發(fā)過程中不太可能發(fā)生重大改變的時候,可以采用瀑布模型。 很少有商業(yè)系統(tǒng)有穩(wěn)定的要求。適合大型系統(tǒng)工程項目瀑布模型反映了
6、在其他工程項目中使用的過程模型類型。112022/10/152022/10/1511瀑布模型的問題不能靈活劃分為不同的階段,難以應對不斷變化的客2.1.2 增量式開發(fā)122022/10/15框架描述描述開發(fā)有效性驗證初始版本中間版本最終版本2022/10/15122.1.2 增量式開發(fā)122022/10/11框架描述描述開增量式開發(fā)(一)是敏捷方法的一個基本部分,對于商務、電子商務和個人系統(tǒng)來說更加適合探索式開發(fā) 其目標是與用戶一起工作,共同探索系統(tǒng)需求,直到最后交付系統(tǒng)。拋棄式原型這種開發(fā)方法的目標是理解用戶需求,然后再給出系統(tǒng)的一個較好的需求定義。132022/10/152022/10/1
7、513增量式開發(fā)(一)是敏捷方法的一個基本部分,對于商務、電子商務增量式開發(fā)的優(yōu)點降低了適應用戶需求變更的成本重新分析和修改文檔的工作量較之瀑布模型要少很多在開發(fā)過程中更容易得到用戶對于已做的開發(fā)工作的反饋意見用戶可以評價軟件的實現(xiàn)版本,并可以看到已實現(xiàn)了多少使更快的交付和部署有用的軟件到客戶方成為可能相比瀑布模型,用戶可以更早地使用軟件并創(chuàng)造商業(yè)價值2022/10/1514增量式開發(fā)的優(yōu)點降低了適應用戶需求變更的成本2022/10/增量式開發(fā)的問題過程不可見;頻繁文檔交互伴隨新功能增加,系統(tǒng)結構逐漸退化,導致結構通常較差;重構適用性小型或中型的交互式系統(tǒng);大型系統(tǒng)的部件;生命周期比較短的系統(tǒng)
8、。152022/10/152022/10/1515增量式開發(fā)的問題過程不可見;152022/10/1120222.1.3 面向復用的軟件工程面向復用的方法依賴可以存取的可復用軟件組件以及能集成這些組件的框架。這些組件本身就是一個獨立的能滿足某種需要的系統(tǒng)(COTS或商業(yè)現(xiàn)成產(chǎn)品系統(tǒng))。過程階段組件分析;需求修改;使用復用的系統(tǒng)設計; 開發(fā)和集成;162022/10/152022/10/15162.1.3 面向復用的軟件工程面向復用的方法依賴可以存取的可面向復用開發(fā)172022/10/15需求描述組件分析需求修改使用復用的系統(tǒng)設計開發(fā)和集成系統(tǒng)有效性驗證2022/10/1517在需求描述的基礎上
9、,搜尋能滿足需求的組件。通常情況下,正好合適的組件很難獲得。根據(jù)得到的組件信息分析需求,然后修改需求以反映可得到的組件。當需求修改無法做到的時候,就需要考慮其他替代方案。設計系統(tǒng)的框架或者重復使用一個已存在的框架。組件不能買到就需要自己開發(fā),然后集成這些組件(自己開發(fā)和購買的)。面向復用開發(fā)172022/10/11需求描述組件分析需求修改軟件組件類型通過標準服務開發(fā)的Web 服務,可用于遠程調(diào)用。對象的集合,作為一個包和組件框架。如.NET或者J2EE 等集成在一起。獨立的軟件系統(tǒng),通過配置在特定的環(huán)境下使用。2022/10/1518軟件組件類型通過標準服務開發(fā)的Web 服務,可用于遠程調(diào)用。
10、面向復用模型的特點優(yōu)勢是減少了需要開發(fā)的軟件數(shù)量,這樣可降低開發(fā)成本,自然降低開發(fā)中的風險??墒管浖焖俳桓丁S捎谛枨笸讌f(xié)不可避免,這樣可能導致交付的系統(tǒng)不符合用戶真正的需要。對系統(tǒng)進化的控制能力降低或失效,因為可復用的組件新版本可能不受機構的控制。2022/10/1519面向復用模型的特點優(yōu)勢是減少了需要開發(fā)的軟件數(shù)量,這樣可降低2.2 過程活動軟件過程是交織著技術、協(xié)作、管理等內(nèi)容的一個活動序列,圍繞一個總的目標:軟件描述軟件設計和實現(xiàn)軟件有效性驗證軟件進化202022/10/152022/10/15202.2 過程活動軟件過程是交織著技術、協(xié)作、管理等內(nèi)容的一2.2.1 軟件描述軟件描述
11、或需求工程主要是理解并定義系統(tǒng)需要哪些服務以及找出開發(fā)和運行期間受到哪些約束。需求工程過程有四個主要的階段:可行性研究需求導出和分析需求描述需求有效性驗證212022/10/152022/10/15212.2.1 軟件描述軟件描述或需求工程主要是理解并定義系統(tǒng)需需求工程過程222022/10/15可行性研究可行性報告需求導出和分析系統(tǒng)模型需求描述需求有效性驗證用戶需求和系統(tǒng)需求需求文檔2022/10/1522需求工程過程222022/10/11可行性研究可行性報告需求2.2.2 軟件設計和實現(xiàn)軟件開發(fā)的實現(xiàn)階段是把系統(tǒng)描述轉換成一個可運行的系統(tǒng)的過程。軟件設計是對實現(xiàn)軟件的結構,系統(tǒng)的數(shù)據(jù),系
12、統(tǒng)組件間的接口以及所用的算法的描述。軟件實現(xiàn)是對上述設計轉化為可執(zhí)行的程序。設計和實現(xiàn)活動是聯(lián)系緊密的,有時還是重疊和交叉的。232022/10/152022/10/15232.2.2 軟件設計和實現(xiàn)軟件開發(fā)的實現(xiàn)階段是把系統(tǒng)描述轉換設計過程的通用模型2022/10/1524設計過程的通用模型2022/10/1124設計過程活動體系結構設計識別系統(tǒng)的總體結構、基本組件、它們之間的關系以及它們是怎樣分布的。接口設計定義系統(tǒng)組件之間的接口。組件設計針對每個系統(tǒng)組件設計它的運行方式。數(shù)據(jù)庫設計設計系統(tǒng)數(shù)據(jù)結構,以及如何在數(shù)據(jù)庫中表示這些數(shù)據(jù)結構。252022/10/152022/10/1525設計過
13、程活動體系結構設計252022/10/112022/12.2.3 軟件有效性驗證軟件有效性驗證,或更一般地稱為檢驗和有效性驗證,是要看系統(tǒng)是否符合它的描述以及系統(tǒng)是否符合客戶的預期目標。包括檢查過程和從用戶需求定義到程序開發(fā)的每個軟件過程階段。絕大多數(shù)的有效性驗證成本發(fā)生在系統(tǒng)完成過程中和完成之后(測試環(huán)節(jié))。262022/10/152022/10/15262.2.3 軟件有效性驗證軟件有效性驗證,或更一般地稱為檢驗測試過程272022/10/152022/10/1527測試過程272022/10/112022/10/1127測試階段組件(或單元)測試測試單個的組件,以確保其操作的正確性。獨立
14、地測試每個組件,而不受其他系統(tǒng)組件的影響。系統(tǒng)測試測試系統(tǒng)的總體特性。 接收測試用客戶提供的真實數(shù)據(jù)測試系統(tǒng)。282022/10/152022/10/1528測試階段組件(或單元)測試282022/10/112022/測試階段292022/10/15需求描述 模塊,單元,代碼,測試系統(tǒng)描述系統(tǒng)設計詳細設計接收測試計劃系統(tǒng)集成測試計劃子系統(tǒng)集成測試計劃子系統(tǒng)集成測試系統(tǒng)集成測試接收測試服務2022/10/1529測試階段292022/10/11需求描述 模塊,單元,系2.2.4 軟件進化軟件本身是靈活的,可以改變的。 由于不斷變化的業(yè)務需求,通過改變該軟件支持的業(yè)務也必須發(fā)展和變化。不再將軟件工
15、程看做開發(fā)和維護兩個完全獨立的過程,而是將其看做一個進化過程,即軟件在其生命周期內(nèi)不斷地隨著需求的變化而變更的進化式過程。302022/10/152022/10/15302.2.4 軟件進化軟件本身是靈活的,可以改變的。 3020系統(tǒng)進化312022/10/152022/10/1531系統(tǒng)進化312022/10/112022/10/11312.3 應對變更在大型項目中,變更是無法避免的業(yè)務的改變新技術的出現(xiàn)平臺的變化變更增加了軟件開發(fā)的成本分析、設計和實現(xiàn)2022/10/15322.3 應對變更在大型項目中,變更是無法避免的2022/10降低返工成本變更避免,軟件過程中預測變更的活動原型系統(tǒng)開
16、發(fā),要先給客戶看系統(tǒng)的一些重要特征。變更容忍,設計過程使得變更以比較低的成本得到處理增量式開發(fā)。2022/10/1533降低返工成本變更避免,軟件過程中預測變更的活動2022/102.3.1 原型構造原型是一個軟件系統(tǒng)的最初版本,用于驗證概念、試用設計選項、發(fā)現(xiàn)更多的問題和可能的解決方法。軟件原型使用需求工程過程中,原型有助于啟發(fā)和驗證系統(tǒng)需求系統(tǒng)設計過程,原型探索特定軟件的解決方案,支持用戶接口設計測試過程中,執(zhí)行回歸測試2022/10/15342.3.1 原型構造原型是一個軟件系統(tǒng)的最初版本,用于驗證概原型的作用提高系統(tǒng)的可用性貼近用戶的真實要求提高設計質(zhì)量提高系統(tǒng)可維護性減少開發(fā)難度20
17、22/10/1535原型的作用提高系統(tǒng)的可用性2022/10/1135原型開發(fā)過程2022/10/1536建立原型目標包括用戶界面、驗證需求、可行性驗證等。定義原型功能從成本和進度方面考慮要開發(fā)的原型及原型該放棄的非功能需求開發(fā)原型程序的可依賴性和質(zhì)量方面的標準可以降低,忽略部分錯誤處理評估原型建立原型評估標準,對照目標要求進行評估。原型開發(fā)過程2022/10/1136建立原型目標定義原型功能原型的開發(fā)基于快速原型語言或工具可能剔除一些功能關注于那些不是理解很清楚的區(qū)域錯誤檢測和系統(tǒng)恢復一般不包括在原型中關注功能性的需求,而不是非功能性的需求,如,可靠性、安全性2022/10/1537原型的開
18、發(fā)基于快速原型語言或工具2022/10/1137拋棄式原型拋棄式原型不能當做正式的系統(tǒng)交付給用戶,因為不可能調(diào)整原型以滿足非功能性的要求原型系統(tǒng)沒有完整的文檔原型開發(fā)過程中的變更可能會破壞系統(tǒng)的結構原型系統(tǒng)一般不滿足質(zhì)量標準2022/10/1538拋棄式原型拋棄式原型不能當做正式的系統(tǒng)交付給用戶,因為2022.3.2 增量式交付在增量開發(fā)過程中,客戶大概地提出系統(tǒng)需要提供的服務,指明哪些服務是最重要的,哪些是最不重要的。當一系列交付增量被確定,每個增量提供系統(tǒng)功能的一個子集。對增量中服務的分配取決于服務的優(yōu)先次序,最高優(yōu)先權的服務首先被交付。392022/10/152022/10/15392.
19、3.2 增量式交付在增量開發(fā)過程中,客戶大概地提出系統(tǒng)需增量式交付402022/10/15定義框架需求對增量指定需求設計系統(tǒng)體系結構開發(fā)系統(tǒng)增量增量有效性驗證增量集成系統(tǒng)有效性驗證2022/10/1540部署增量最終系統(tǒng)系統(tǒng)完成系統(tǒng)未完成增量式交付402022/10/11定義框架需求對增量指定需求增量式開發(fā)的好處客戶無需等到整個系統(tǒng)的實現(xiàn)??蛻艨梢詫⒃缙诘脑隽孔鳛樵危瑥闹蝎@得對后面系統(tǒng)增量的需求經(jīng)驗。項目總體性失敗的風險比較低。因為具有最高優(yōu)先權的服務被首先交付,而后面的增量也不斷被集成進來,這就使得最重要的系統(tǒng)服務肯定接受了最多的測試。412022/10/152022/10/1541增量式
20、開發(fā)的好處客戶無需等到整個系統(tǒng)的實現(xiàn)。412022/1增量式交付的問題大多數(shù)系統(tǒng)需要一組基礎設施,增量式開發(fā)很難確定全體增量所需要的公用設施。開發(fā)替換系統(tǒng)時,迭代開發(fā)比較困難。因為要替代的舊系統(tǒng)的功能無法在增量式開發(fā)的最初得以交互,用戶會很難接受。軟件描述和軟件本身一起開發(fā)是迭代的本質(zhì),但實際實現(xiàn)比較難。2022/10/1542增量式交付的問題大多數(shù)系統(tǒng)需要一組基礎設施,增量式開發(fā)很難確2.3.3 Boehm 螺旋模型它不是將軟件過程用一系列活動和活動間的回溯來表示,而是將過程用螺旋線表示。在螺旋線中,每個回路表示軟件過程的一個階段。 最里面的回路可能與系統(tǒng)可行性有關,下一個回路與系統(tǒng)需求定義
21、有關,再下一個回路與系統(tǒng)設計有關。432022/10/152022/10/15432.3.3 Boehm 螺旋模型它不是將軟件過程用一系列活動軟件過程的螺旋模型442022/10/152022/10/1544軟件過程的螺旋模型442022/10/112022/10/1螺旋式模型回路螺旋開發(fā)中螺旋線中每個回路被分成四個部分:目標設置;風險評估和規(guī)避;開發(fā)和有效性驗證;規(guī)劃 螺旋式模型和其他軟件過程模型之間的重要區(qū)別在于,螺旋式模型中的風險考慮是明確的。452022/10/152022/10/1545螺旋式模型回路螺旋開發(fā)中螺旋線中每個回路被分成四個部分:452.4 Rational 統(tǒng)一過程Ra
22、tional統(tǒng)一過程是現(xiàn)代過程模型的一個實例,該現(xiàn)代過程模型來自于UML上的工作以及相關的統(tǒng)一軟件開發(fā)過程。.一般從三個視角來描述:動態(tài)視角,給出模型隨時間所經(jīng)歷的各個階段;靜態(tài)視角,給出所規(guī)定的過程活動;實踐視角,建議在過程中采用好的實踐實例。462022/10/152022/10/15462.4 Rational 統(tǒng)一過程Rational統(tǒng)一過程是RUP 中的各階段472022/10/15階段反復開端細化構造轉換2022/10/1547RUP 中的各階段472022/10/11階段反復開端細化構RUP 中的階段開端目標是建立系統(tǒng)的一個業(yè)務案例。細化目標是增進對問題域的理解,建立系統(tǒng)的體系框架,給出項目計劃并識別關鍵項目風險。構造主要關心的是系統(tǒng)設計,編程和測試。轉換關注如何將系統(tǒng)從開發(fā)單位轉移到用戶單位,并使之在真實環(huán)境中工作。482022/10/152022/10/1548RUP 中的階段開端482022/10/112022/10/RUP迭代階段內(nèi)迭代跨階段迭代2022/10/1549RUP迭代階段內(nèi)迭代2022/10/1149RUP 的靜態(tài)工作流502022/10/15工作流描述業(yè)務建模使用業(yè)務用例對業(yè)務過程進行建模。需求找出與系統(tǒng)進行交互的參與者并開發(fā)用例完成對系統(tǒng)需求的建模。分析和設計使用體系結構模型、組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電話計費設備行業(yè)深度研究分析報告
- 2018-2024年中國進口乳制品市場深度調(diào)研分析及投資前景研究預測報告
- 2025年內(nèi)燃機連桿項目可行性研究報告
- 2024-2028年中國煙草銀行信貸行業(yè)市場發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢報告
- 2025年度建筑工程承攬合同與BIM技術應用服務協(xié)議4篇
- 2025年度汽車維修行業(yè)人力資源服務合同4篇
- 高中課程有趣課程設計
- 2025年度文化產(chǎn)業(yè)有限責任公司合資經(jīng)營合同4篇
- 2025年度大型商場租賃合同管理與維護協(xié)議4篇
- 2025年水庫承包合同范本:水產(chǎn)養(yǎng)殖合作經(jīng)營協(xié)議3篇
- 安徽省合肥市包河區(qū)2023-2024學年九年級上學期期末化學試題
- 《酸堿罐區(qū)設計規(guī)范》編制說明
- PMC主管年終總結報告
- 售樓部保安管理培訓
- 倉儲培訓課件模板
- 2025屆高考地理一輪復習第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢與政策》課程標準
- 2023年海南省公務員錄用考試《行測》真題卷及答案解析
- 橋梁監(jiān)測監(jiān)控實施方案
評論
0/150
提交評論