《面向對象的Java與UML課件Chapter 05-01軟件開發(fā)生命周期的階段》由會員分享,可在線閱讀,更多相關《面向對象的Java與UML課件Chapter 05-01軟件開發(fā)生命周期的階段(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Software Development with UML Copyright Ken Lunn 2003,*,第五章 軟件開發(fā)生命周期,本章要點,軟件開發(fā)生命周期的各個階段,軟件開發(fā)的瀑布法和迭代法,控制迭代開發(fā)的一些方法,5.1,軟件開發(fā)生命周期的階段,大型IT工程是十分復雜的,復雜性的原因:對軟件開發(fā)過程沒有一個全面、明確的概念,本章的目的:給出一個全面的過程
2、和開發(fā)路線圖,大家應該注意全面的階段,和怎樣通過這些階段開展工作,關于軟件開發(fā)階段的問題:,統(tǒng)一過程:大量中間產物(Jacobson 1999),極限編程:幾乎沒有階段和中間產物,本書介紹的方式:繪制一副完整的地圖完全的階段性描述,軟件開發(fā)生命周期的階段,每個開發(fā)工程都要經(jīng)歷這些階段,不管是不是正規(guī),自覺的還是不自覺的,這些階段并不必一個接一個的完成,他們可以局部重疊及并行完成,需求分析,系統(tǒng)分析,系統(tǒng)設計,實現(xiàn),測試,部署,維護,需求分析,目的:需求分析決定了系統(tǒng)中各種工程相關者的需要和期望,形成關于系統(tǒng)是做什么的描述。,注意:語言被所有的工程相關者理解,并能對描述達成一致意見,分類,功能需
3、求系統(tǒng)是做什么的,非功能需求可靠性、魯棒性、使用人數(shù)、交互界面,輸入:現(xiàn)有業(yè)務過程 組織目標,可能出現(xiàn)的問題:“越嚴重的問題越晚發(fā)現(xiàn),輸出:業(yè)務模型外部行為、用例模型、原型功能需求、非功能需求,方法:,專題討論、會談,注意反響,并形成協(xié)議,Figure 5.1,Key inputs and outputs of requirements analysis,系統(tǒng)分析,目的:定義計算機系統(tǒng)的行為,以及如何與計算機系統(tǒng)交互,使用被開發(fā)人員理解的語言填寫需求分析的細節(jié)。,輸入:業(yè)務模型、用例模型、原型以及詳細業(yè)務運作知識,輸出:完全專用的用例和詳細的對象模型,確定了系統(tǒng)具有的信息和使用信息的方式,方法
4、:,如何操作?處理什么信息?,專題討論、會談,構成用例并收集細節(jié),劇本分析,要被使用的數(shù)據(jù)以及人們如何使用他們,原型,Figure 5.2,Key inputs and outputs of systems analysis,系統(tǒng)設計,目的:定義了系統(tǒng)將如何運作,以及對開發(fā)和部署來說,如何把系統(tǒng)分解為可管理的局部,產生一個系統(tǒng)構架的概要,并且建立基于該構架的用例圖。,輸入:用例定義集合、對象模型集合、原型,輸出:對象模型,支持用例的對象協(xié)作、對象分組組成組件、組件與外部系統(tǒng)之間的用戶接口說明,以及數(shù)據(jù)庫存儲信息的數(shù)據(jù)模型,方法:,定義架構,完成單獨的對象,對象協(xié)作,Figure 5.3,Key
5、 inputs and outputs of the design process,實現(xiàn),目的:產生了以組件構成的系統(tǒng),把系統(tǒng)新的局部整合到系統(tǒng)先前已構成的局部中去,輸入:對象模型,對象協(xié)作、接口說明、構架定義,數(shù)據(jù)模型,輸出:源代碼、編譯過的組件、部署方案,方法:,對象模型轉化為運行代碼和數(shù)據(jù)庫定義,CASE工具局部轉化后,再由編程人員完成,Figure 5.4,Key inputs and outputs of the implementation process,測試,目的:功能和非功能滿足需求,為開發(fā)提供反響,輸入:已構造的系統(tǒng)、業(yè)務說明、用例說明、非功能性需求說明,輸出:出錯報告 o
6、r 成功的測試報告,方法:,業(yè)務過程和用例說明用來生成測試劇本,測試劇本:輸入 和 希望的輸出,Figure 5.5,Key inputs and outputs of the testing process,維護,目的:保持系統(tǒng)功能,使之與需求一致,輸入:代碼錯誤報告 和 修改請求,輸出:修改的分析、設計與實現(xiàn),方法:,幫助臺Call Center,較小的系統(tǒng)改進,系統(tǒng)的后續(xù)開發(fā),5.2,瀑布法,瀑布:每一階段依次進行,直到前面的階段結束,下一個階段才能進行,每一個階段使用一個正式的方法來“結束,后果,需求變化,產品過時,漫長的過程,可能造成信息的喪失,這樣一個過程的動機,適用條件:,需求長
7、期不變的情況下,才能采用,Figure 5.6,The waterfall life cycle,5.3,迭代法,迭代法是廣泛使用的方法,優(yōu)點,如果需求變化,很多內容并不是固定不變的。開發(fā)的系統(tǒng)能夠被提前使用,交付系統(tǒng)的反響可以在將來的開發(fā)中改進,適用條件:,無論正是和非正式開發(fā),都被廣泛采用,Figure 5.7,Depiction of the iterative approach as an expanding spiral of development,螺旋式擴張的系統(tǒng)按功能和質量成長,Figure 5.8,The iterative approach in terms of stag
8、es,5.3.1,迭代方法和用例,迭代開發(fā)的核心:用例的概念,在需求階段,充分識別用例,在系統(tǒng)分析階段,詳述他們,在設計和實施階段,生成一個系統(tǒng)滿足所選擇的用例集合,如果用例可以獨立使用,那么就可以部署系統(tǒng),進行其他用例的開發(fā),Figure 5.9,The tracing of use cases through the stages in iterativedevelopment,5.3.2,迭代控制方法,80/20原那么,最為常見的功能最先開發(fā),MoSCoW優(yōu)先次序,Must一定要按期交付,Should希望在本階段交付,Could有余下的時間和資源就盡可能將其實現(xiàn),Wont明確在階段內不交付,階段開發(fā)用例表,列出了在一個階段中的開發(fā)用例,時間范圍,階段由時間范圍控制某時間段內工作在某個階段上,Table 5.1,Moscow prioritization for release of the system,Figure 5.10,Organization of the iterations,Table 5.2,Moscow prioritization for the first iteration of the ICANDO chemicals system,