-軟件工程概念與過程課件_第1頁
-軟件工程概念與過程課件_第2頁
-軟件工程概念與過程課件_第3頁
-軟件工程概念與過程課件_第4頁
-軟件工程概念與過程課件_第5頁
已閱讀5頁,還剩177頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件工程薛建民xjm@87818127軟件工程薛建民軟件工程軟件概念與分類軟件的發(fā)展與軟件危機(jī)軟件工程基本定義軟件過程及其模型小結(jié)、思考題、實(shí)驗(yàn)軟件工程軟件概念與分類軟件概念與分類軟件定義程序、數(shù)據(jù)及其相關(guān)文檔的集合軟件的特點(diǎn)軟件的品質(zhì)軟件的分類軟件概念與分類軟件定義軟件的特點(diǎn)1軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。它具有抽象性軟件的生產(chǎn)與硬件不同大多數(shù)軟件是定制的在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損、老化問題(圖示)軟件的特點(diǎn)1軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。它具有第01講_軟件工程概念與過程課件5軟件的特點(diǎn)2軟件的開發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制對計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件是復(fù)雜的軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素軟件的特點(diǎn)2軟件的開發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制對計(jì)算機(jī)軟件的品質(zhì)產(chǎn)品必須可靠,只執(zhí)行需求說明書的任務(wù)可用(易用性)健壯滿足性能要求可維護(hù)有效利用資源可演化(可擴(kuò)展)可移植、可重用軟件的品質(zhì)產(chǎn)品必須可靠,只執(zhí)行需求說明書的任務(wù)軟件的分類按功能按規(guī)模按工作方式按應(yīng)用領(lǐng)域按服務(wù)對象項(xiàng)目軟件(定制軟件)產(chǎn)品軟件按使用頻度按軟件失效的影響軟件的分類按功能軟件的分類—按功能系統(tǒng)軟件支撐軟件應(yīng)用軟件硬件系統(tǒng)軟件支撐軟件/應(yīng)用軟件軟件的分類—按功能系統(tǒng)軟件硬件系統(tǒng)軟件支撐軟件/應(yīng)用軟件軟件的分類—按規(guī)模軟件的分類—按規(guī)模Windows家族軟件規(guī)模Win95:1500萬行Win98:1800萬行Winxp:3500萬行Vista:5000萬行9000名開發(fā)人員5年60億美金355臺服務(wù)器,75萬多行測試環(huán)境Windows開發(fā)人員1000行代碼/人年Windows家族軟件規(guī)模Win95:1500萬行軟件的分類—按工作方式實(shí)時(shí)軟件分時(shí)軟件交互軟件批處理軟件軟件的分類—按工作方式實(shí)時(shí)軟件軟件的分類—按應(yīng)用領(lǐng)域分系統(tǒng)軟件實(shí)時(shí)軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個(gè)人計(jì)算機(jī)軟件基于Web的軟件人工智能軟件移動應(yīng)用云計(jì)算軟件的分類—按應(yīng)用領(lǐng)域分系統(tǒng)軟件軟件的發(fā)展與軟件危機(jī)軟件的發(fā)展階段軟件危機(jī)產(chǎn)生表現(xiàn)原因軟件的發(fā)展趨勢軟件的發(fā)展與軟件危機(jī)軟件的發(fā)展階段第01講_軟件工程概念與過程課件15軟件的發(fā)展~危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。產(chǎn)生于軟件發(fā)展的第二階段(軟件系統(tǒng)階段)末期。硬件性價(jià)比和應(yīng)用范圍、數(shù)量增大軟件的需求和規(guī)模增大軟件開發(fā)技術(shù)落后、低產(chǎn)量、低質(zhì)量軟件危機(jī)軟件的發(fā)展~危機(jī)軟件危機(jī)硬件性價(jià)比和應(yīng)用范圍、數(shù)量增大軟件的軟件危機(jī)---主要表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確用戶不滿意軟件質(zhì)量不高、可靠性差軟件常常不可維護(hù)、錯(cuò)誤難以改正缺乏適當(dāng)?shù)奈臋n資料軟件成本占系統(tǒng)總成本的比例逐年上升(1985----90%)軟件開發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度歸結(jié)為主要為三方面----“時(shí)間、成本、質(zhì)量”軟件危機(jī)---主要表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確軟件危機(jī)--原因1軟件規(guī)模日漸龐大(數(shù)量、功能、成本、質(zhì)量、時(shí)間)軟件開發(fā)管理困難。邏輯部件而不是物理部件。在寫出程序代碼并在計(jì)算機(jī)運(yùn)行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評價(jià)。因此,管理和控制軟件開發(fā)過程相當(dāng)困難。開發(fā)人員錯(cuò)誤的觀念、方法和技術(shù)重編程、輕需求。生產(chǎn)方式落后:個(gè)體手工方式。開發(fā)技術(shù)落后\開發(fā)工具落后軟件危機(jī)--原因1軟件規(guī)模日漸龐大(數(shù)量、功能、成本、質(zhì)量、軟件危機(jī)---原因2忽視軟件開發(fā)前期的需求分析開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論的指導(dǎo)文檔資料不齊全或不準(zhǔn)確忽視與用戶之間、開發(fā)組成員之間的交流忽視測試的重要性不重視維護(hù)或由于上述原因造成維護(hù)工作的困難需求變化預(yù)料不足軟件危機(jī)---原因2忽視軟件開發(fā)前期的需求分析軟件發(fā)展趨勢平臺網(wǎng)絡(luò)化技術(shù)對象化系統(tǒng)構(gòu)件化開發(fā)過程化生產(chǎn)規(guī)?;a(chǎn)品領(lǐng)域化競爭國際化移動計(jì)算云環(huán)境與智慧-任何軟件都是有體系結(jié)構(gòu)的,體系結(jié)構(gòu)決定了軟件的整體性能-任何軟件生產(chǎn)都是有過程的,軟件過程決定了軟件的質(zhì)量-任何軟件都是處理信息的,數(shù)據(jù)-信息-知識-智慧軟件發(fā)展趨勢平臺網(wǎng)絡(luò)化-任何軟件都是有體系結(jié)構(gòu)的,軟件工程基本定義定義性質(zhì)范圍目標(biāo)軟件工程基本定義定義軟件工程--定義1軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來軟件工程--定義1軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)軟件工程定義2定義---Boehm

運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序設(shè)計(jì)及為開發(fā),運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料定義---IEEE[93]將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)中,即將工程化應(yīng)用于軟件;上面所述方法的研究軟件工程定義2定義---Boehm軟件工程定義3定義---Fairley

軟件工程學(xué)是為在成本限額以內(nèi)、按時(shí)完成開發(fā)和修改軟件產(chǎn)品所需的系統(tǒng)生產(chǎn)和維護(hù)的技術(shù)和管理的學(xué)科定義---FritzBauer建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法軟件工程定義3定義---Fairley軟件工程—性質(zhì)軟件工程是一門綜合性的交叉學(xué)科,它涉及哲學(xué)、計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)和應(yīng)用領(lǐng)域知識工作崗位項(xiàng)目經(jīng)理系統(tǒng)分析員架構(gòu)工程師系統(tǒng)分析師項(xiàng)目實(shí)施顧問軟件工程—性質(zhì)軟件工程是一門綜合性的交叉學(xué)科,它涉及哲學(xué)、計(jì)軟件工程—范圍1計(jì)算機(jī)系統(tǒng)工程軟件工程實(shí)現(xiàn)(編碼)硬件工程。。。。。。如果把軟件工程比喻為戰(zhàn)略的話,則編碼實(shí)現(xiàn)只能算是戰(zhàn)術(shù)。地位軟件工程—范圍1實(shí)現(xiàn)硬件工程。。。。。。如果把軟件工程比喻為26分析設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施維護(hù)項(xiàng)目管理范圍時(shí)間成本質(zhì)量人力資源溝通風(fēng)險(xiǎn)采購共通軟件工程--范圍2涉及主要方面

軟件工程涉及軟件生產(chǎn)的各個(gè)方面(圖示如下)分析設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施維護(hù)項(xiàng)目管理范圍時(shí)間成本質(zhì)量軟件工程--目標(biāo)目標(biāo)----成功的(大型)軟件系統(tǒng)付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;易于移植需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)工作,及時(shí)交付使用;開發(fā)軟件質(zhì)量指標(biāo)高;統(tǒng)一為——“如何提高軟件生產(chǎn)率”軟件工程--目標(biāo)目標(biāo)----成功的(大型)軟件系統(tǒng)付出較低的軟件工程層次圖質(zhì)量關(guān)注點(diǎn)過程方法工具軟件工程層次圖工具軟件過程及其模型軟件過程概念軟件生命周期軟件生存期各階段軟件生命周期模型軟件過程及其模型軟件過程概念軟件工程過程--概念軟件工程過程是一個(gè)軟件開發(fā)機(jī)構(gòu)針對一類軟件產(chǎn)品為自己規(guī)定的工作步驟,它應(yīng)當(dāng)是科學(xué)的、合理的,否則必將影響到軟件產(chǎn)品的質(zhì)量規(guī)定了獲取、供應(yīng)、開發(fā)和維護(hù)軟件時(shí),要實(shí)施的過程、活動和任務(wù)是指軟件產(chǎn)品或軟件系統(tǒng)從產(chǎn)生、投入使用到被淘汰的全過程是為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動軟件工程過程--概念軟件工程過程是一個(gè)軟件開發(fā)機(jī)構(gòu)針對一類軟《ISO/IEC12207信息技術(shù)--軟件生存期技術(shù)》

定義的軟件過程《ISO/IEC12207信息技術(shù)--軟件生存期技術(shù)》

定32過程元素之間的關(guān)系過程元素之間的關(guān)系33標(biāo)準(zhǔn)軟件過程體系結(jié)構(gòu)圖標(biāo)準(zhǔn)軟件過程體系結(jié)構(gòu)圖34詳細(xì)的軟件過程層次體系結(jié)構(gòu)

詳細(xì)的軟件過程層次體系結(jié)構(gòu)35軟件生命周期定義它是指一個(gè)軟件從提出開發(fā)要求開始到該軟件報(bào)廢為止的整個(gè)時(shí)期(生存過程)。從時(shí)間角度,把整個(gè)周期劃分為若干個(gè)階段(步驟),每個(gè)階段有明確的任務(wù),然后再逐步完成每個(gè)階段的任務(wù)軟件從孕育、誕生、成長、成熟、衰亡的生存過程軟件生命周期定義軟件生存期各階段一般可分為六個(gè)步驟/階段:制定計(jì)劃(Planning)需求分析和定義(RequirementAnalysisandDefinition)軟件設(shè)計(jì)(SoftwareDesign)程序編寫(Coding/Programming)軟件測試(Testing)運(yùn)行/維護(hù)(Running/Maintenance)軟件生存期各階段一般可分為六個(gè)步驟/階段:軟件生命周期模型線性順序模型瀑布模型RAD模型原型模型演化模型形式化開發(fā)模型基于構(gòu)件的開發(fā)統(tǒng)一過程敏捷軟件開發(fā)軟件生命周期模型線性順序模型瀑布模型問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測試維護(hù)定義階段開發(fā)階段維護(hù)階段瀑布模型問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測39瀑布模型--特點(diǎn)優(yōu)點(diǎn):提供了軟件開發(fā)的基本框架,比靠“個(gè)人技藝”開發(fā)好的多。嚴(yán)格活動序列,嚴(yán)格階段成果評審,有利于大型軟件開發(fā)過程的人員的組織和管理缺點(diǎn):對用戶需求變更的響應(yīng)較困難。初始階段較長,用戶極大的耐心,需求的不確定性;后期階段時(shí),需求錯(cuò)誤、設(shè)計(jì)及實(shí)現(xiàn)錯(cuò)誤才出現(xiàn)適用:需求明確、大型的項(xiàng)目。瀑布模型--特點(diǎn)優(yōu)點(diǎn):瀑布模型變化1瀑布模型變化141瀑布模型變化2瀑布模型變化242快速應(yīng)用開發(fā)模型RAD1快速應(yīng)用開發(fā)模型RAD143快速應(yīng)用開發(fā)模型RAD2快速應(yīng)用開發(fā)模型RAD244RAD模型--特點(diǎn)優(yōu)點(diǎn)開發(fā)時(shí)間短快速發(fā)布缺點(diǎn)多團(tuán)隊(duì)開發(fā)協(xié)調(diào)困難了解需求困難不注意小細(xì)節(jié)RAD模型--特點(diǎn)優(yōu)點(diǎn)原型模型1建造/修改原型聽取客戶意見客戶測試運(yùn)行原型原型模型1建造/修改聽取客戶客戶測試原型模型2原型模型247原型模型3原型模型348原型模型----特點(diǎn)優(yōu)點(diǎn):成品的用戶滿意度高。用戶參與,需求不斷完善缺點(diǎn)軟件的“臨時(shí)版本”,未考慮性能需求進(jìn)度控制、質(zhì)量檢驗(yàn)較難,技術(shù)方案未必最優(yōu),會導(dǎo)致開發(fā)過程的不可收斂性系統(tǒng)結(jié)構(gòu)通常較差,連續(xù)的變更損壞了系統(tǒng)的結(jié)構(gòu)原型模型----特點(diǎn)優(yōu)點(diǎn):原型模型----特點(diǎn)適用:中小規(guī)模、生存期短的系統(tǒng),知識型系統(tǒng)用戶定義了一組一般性目標(biāo),但不能標(biāo)識出詳細(xì)的輸入、處理及輸出需求開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式當(dāng)你的客戶有一個(gè)合理的需求,但對細(xì)節(jié)則沒有任何線索時(shí),先開發(fā)一個(gè)原型系統(tǒng)是一個(gè)好的選擇原型模型----特點(diǎn)適用:演化軟件過程模型漸增模型以盡早占領(lǐng)市場為目的,逐步發(fā)布版本;可有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn)螺旋模型不同版本、不同形式的不斷進(jìn)化;需要高水平的風(fēng)險(xiǎn)評估技術(shù)并發(fā)開發(fā)模型由用戶要求、管理決策和評審結(jié)果驅(qū)動;每一個(gè)軟件工程活動觸發(fā)活動網(wǎng)絡(luò)的狀態(tài)變遷;演化軟件過程模型漸增模型漸增模型1分析設(shè)計(jì)編碼測試增量1分析設(shè)計(jì)編碼測試增量2分析設(shè)計(jì)編碼測試增量3分析設(shè)計(jì)編碼測試增量4第1個(gè)增量發(fā)布第2個(gè)增量發(fā)布第3個(gè)增量發(fā)布第4個(gè)增量發(fā)布漸增模型1分析設(shè)計(jì)編碼測試增量1分析設(shè)計(jì)編碼測試增量2分析設(shè)漸增模型2漸增模型253漸增模型-特點(diǎn)優(yōu)點(diǎn)易于預(yù)測、管理、控制使用的資源快速版本發(fā)布缺點(diǎn)有可能消弱結(jié)構(gòu)和設(shè)計(jì)使用用戶需求不明確設(shè)計(jì)用戶界面漸增模型-特點(diǎn)優(yōu)點(diǎn)螺旋模型1螺旋模型155螺旋模型2螺旋模型256螺旋模型-特點(diǎn)(spiralmodel)TRWB.Boehm,1988提出。將過程用螺旋線表示,每個(gè)回路表示軟件過程的一個(gè)階段。因此,最里面的回路可能與系統(tǒng)可行性有關(guān),下一個(gè)回路可能與系統(tǒng)需求定義有關(guān),再下一個(gè)回路與系統(tǒng)設(shè)計(jì)有關(guān)。多個(gè)任務(wù)區(qū)優(yōu)點(diǎn):漸增、使用原型模型減少風(fēng)險(xiǎn),快速、可在軟件的整個(gè)生命期間使用缺點(diǎn):客戶與開發(fā)團(tuán)隊(duì)需要豐富的風(fēng)險(xiǎn)評估專業(yè)知識,演化是否完全可控螺旋模型-特點(diǎn)(spiralmodel)TRWB.Bo并發(fā)開發(fā)模型1開始開發(fā)等待改變修改評審基線評估完成分析活動表示一個(gè)軟件工程的狀態(tài)并發(fā)開發(fā)模型1開始開發(fā)等待改變修改評審基線評估完成分析活動表并發(fā)開發(fā)模型2并發(fā)開發(fā)模型259優(yōu)點(diǎn)適用所有類型的軟件開發(fā)尤其適用客戶端/服務(wù)器應(yīng)用程序在實(shí)際項(xiàng)目中使用是成功的將降低整個(gè)過程的風(fēng)險(xiǎn)缺點(diǎn)對管理要求較高并發(fā)開發(fā)模型優(yōu)缺點(diǎn)優(yōu)點(diǎn)并發(fā)開發(fā)模型優(yōu)缺點(diǎn)形式化方法模型1通過一組指定的活動來產(chǎn)生計(jì)算機(jī)軟件的數(shù)學(xué)規(guī)約。軟件工程師應(yīng)用一個(gè)嚴(yán)格的、數(shù)學(xué)的符號體系來進(jìn)行規(guī)約、開發(fā)和驗(yàn)證基于計(jì)算機(jī)的系統(tǒng)特點(diǎn):完全可以產(chǎn)生無缺陷的軟件缺點(diǎn)成本高與客戶交流困難使用在對可靠性要求極高的系統(tǒng)開發(fā)中形式化方法模型1通過一組指定的活動來產(chǎn)生計(jì)算機(jī)軟件的數(shù)學(xué)規(guī)約形式化方法模型2需求定義形式的規(guī)格說明形式化變換集成和系統(tǒng)測試形式化方法模型2需求定義形式的規(guī)格說明形式化變換集成和系統(tǒng)測基于構(gòu)件的開發(fā)客戶交流計(jì)劃風(fēng)險(xiǎn)分析客戶評估工程構(gòu)造及發(fā)布標(biāo)識候選構(gòu)件如果不可用則建造構(gòu)件構(gòu)造系統(tǒng)的第n次迭代將新構(gòu)件放入庫中在庫中查找構(gòu)件如果可用則提取構(gòu)件基于構(gòu)件的開發(fā)客戶交流計(jì)劃風(fēng)險(xiǎn)分析客戶評估工程構(gòu)造及發(fā)布標(biāo)識RUP簡介RUP(RationalUnifiedProcess)Rational統(tǒng)一過程近30年的發(fā)展和實(shí)際運(yùn)用每一次軟件開發(fā)過程定義了九個(gè)核心規(guī)程六個(gè)技術(shù)規(guī)程業(yè)務(wù)建模規(guī)程、需求工程、分析和設(shè)計(jì)規(guī)程、實(shí)現(xiàn)規(guī)程、測試規(guī)程、部署規(guī)程三個(gè)管理規(guī)程配置和變更管理規(guī)程、項(xiàng)目管理規(guī)程、環(huán)境規(guī)程開發(fā)周期的四個(gè)階段初始階段、細(xì)化階段、構(gòu)造階段、移交階段RUP簡介RUP(RationalUnifiedProc初始細(xì)化構(gòu)造移交階段初始化細(xì)化#1細(xì)化#2構(gòu)造#1構(gòu)造#2構(gòu)造#3移交#1移交#2迭代技術(shù)規(guī)程工作流業(yè)務(wù)建模需求

分析與設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施配置和變更管理項(xiàng)目管理規(guī)程環(huán)境規(guī)程沿時(shí)間軸的組織結(jié)構(gòu)沿內(nèi)容軸的組織RUP-Rational統(tǒng)一過程初始細(xì)化構(gòu)造移交階段初始化細(xì)化#1細(xì)化#2構(gòu)造#165業(yè)務(wù)建模(BusinessModeling)理解系統(tǒng)的組織結(jié)構(gòu)及其商業(yè)運(yùn)作,確保所有參與人員對開發(fā)系統(tǒng)有共同的認(rèn)識。需求分析(Requirements)定義系統(tǒng)功能及用戶界面,明確客戶需要的系統(tǒng)的功能,開發(fā)人員理解系統(tǒng)的需求,為項(xiàng)目預(yù)算及計(jì)劃提供基礎(chǔ)。分析與設(shè)計(jì)(AnalysisandDesign)把需求分析的結(jié)果轉(zhuǎn)化為實(shí)現(xiàn)規(guī)格。工作流描述業(yè)務(wù)建模(BusinessModeling)工作流描述66實(shí)現(xiàn)(Implementation)定義代碼的組織結(jié)構(gòu)、實(shí)現(xiàn)代碼、單元測試、系統(tǒng)集成。測試(Test)驗(yàn)證各自子系統(tǒng)的交互與集成。配置(Deployment)打包、分發(fā)、安裝軟件,升級舊系統(tǒng);培訓(xùn)用戶及銷售人員,并提供技術(shù)支持。制定并實(shí)施beta測試。工作流描述實(shí)現(xiàn)(Implementation)工作流描述67設(shè)置和變更管理(ConfigurationandChangeManagement)跟蹤并維護(hù)系統(tǒng)所有產(chǎn)品的完整性和一致性。項(xiàng)目管理(ProjectManagement)為計(jì)劃、執(zhí)行和監(jiān)控軟件開發(fā)項(xiàng)目提供可行性的指導(dǎo);為風(fēng)險(xiǎn)管理提供框架。環(huán)境(Environment)為組織提供過程管理和工具的支持。工作流描述設(shè)置和變更管理(ConfigurationandChan68RUP的四個(gè)階段RUP包括以下四個(gè)階段:起始階段、細(xì)化階段、構(gòu)建階段、交付階段每個(gè)階段結(jié)束于一個(gè)主要的里程碑(MajorMilestones)每個(gè)階段本質(zhì)上是兩個(gè)里程碑之間的時(shí)間跨度RUP的四個(gè)階段RUP包括以下四個(gè)階段:RUP的四個(gè)階段--初始階段進(jìn)行如下的活動明確說明項(xiàng)目規(guī)模,了解環(huán)境以及最重要的需求和約束,以便可以得出最終產(chǎn)品的驗(yàn)收標(biāo)準(zhǔn)。計(jì)劃和準(zhǔn)備商業(yè)理由。評估風(fēng)險(xiǎn)管理、人員配備、項(xiàng)目計(jì)劃以及成本/進(jìn)度/收益折衷的被選方案。綜合考慮被選構(gòu)架,評估構(gòu)架。準(zhǔn)備項(xiàng)目的環(huán)境,評估項(xiàng)目和組織,選擇工具,決定流程中要改進(jìn)的部分。評估標(biāo)準(zhǔn)如下:出資人同意系統(tǒng)范圍定義以及費(fèi)用和進(jìn)度評估。主要用例是否符合需求。費(fèi)用和進(jìn)度評估、優(yōu)先級、風(fēng)險(xiǎn)以及開發(fā)過程的可信性。任何已開發(fā)的原型的深度和廣度。實(shí)際開銷與計(jì)劃開銷。初始階段的焦點(diǎn)是需求和分析工作流。RUP的四個(gè)階段--初始階段進(jìn)行如下的活動RUP的四個(gè)階段-細(xì)化階段細(xì)化階段的評估標(biāo)準(zhǔn)如下:標(biāo)明用例模型中的用戶和參與者,并且建立用例的描述文檔。用例模型需完成80%。創(chuàng)建軟件系統(tǒng)開發(fā)過程中的軟件結(jié)構(gòu)的描述文檔。創(chuàng)建可執(zhí)行的系統(tǒng)原型。細(xì)化商業(yè)案例和風(fēng)險(xiǎn)列表。創(chuàng)建整個(gè)項(xiàng)目的開發(fā)計(jì)劃。細(xì)化階段的焦點(diǎn)是需求、分析和設(shè)計(jì)工作流。RUP的四個(gè)階段-細(xì)化階段細(xì)化階段的評估標(biāo)準(zhǔn)如下:RUP的四個(gè)階段--構(gòu)建階段主要目標(biāo)如下:優(yōu)化資源、避免不必要的報(bào)廢和返工,使開發(fā)成本降到最低。盡快達(dá)到質(zhì)量的要求??焖偻瓿捎杏玫陌姹?,例如Alpha版、Beta版和其他測試發(fā)布版。完成所有功能的分析、開發(fā)和測試。迭代式、遞增地開發(fā)隨時(shí)可以發(fā)布的產(chǎn)品。確定準(zhǔn)備好軟件系統(tǒng)的外部環(huán)境。構(gòu)建階段的焦點(diǎn)是實(shí)現(xiàn)工作流。RUP的四個(gè)階段--構(gòu)建階段主要目標(biāo)如下:RUP的四個(gè)階段-交付階段主要目標(biāo)如下:進(jìn)行Beta版測試,按用戶的要求驗(yàn)證新系統(tǒng)。替換舊的系統(tǒng)。對用戶和維護(hù)人員進(jìn)行培訓(xùn)。開始調(diào)整活動,例如調(diào)試、性能或可用性的增強(qiáng)。與用戶達(dá)成共識,配置基線與評估標(biāo)準(zhǔn)一致。交付階段的焦點(diǎn)是實(shí)現(xiàn)和測試工作流。RUP的四個(gè)階段-交付階段主要目標(biāo)如下:RUP的迭代開發(fā)模型RUP中的每個(gè)階段可以進(jìn)一步分解為迭代。RUP的迭代開發(fā)模型RUP中的每個(gè)階段可以進(jìn)一步分解為迭代。RUP的迭代開發(fā)模型與傳統(tǒng)的瀑布模型相比較,迭代過程的優(yōu)點(diǎn):降低了在一個(gè)增量上的開發(fā)風(fēng)險(xiǎn)。降低了產(chǎn)品無法按照既定進(jìn)度進(jìn)入市場的風(fēng)險(xiǎn)。加快了整個(gè)開發(fā)工作的進(jìn)度。RUP的迭代開發(fā)模型與傳統(tǒng)的瀑布模型相比較,迭代過程的優(yōu)點(diǎn):核心工作流介紹-需求捕獲工作流需求捕獲通過對應(yīng)問題的理解和分析,確立問題涉及的信息、功能和系統(tǒng)行為,將用戶需求精確化、完全化。需求的焦點(diǎn)主要在初始和精化階段,在精化階段后期,需求捕獲的工作量大幅下降。核心工作流介紹-需求捕獲工作流需求捕獲通過對應(yīng)問題的理解和分需求捕獲工作流主要的UML制品:用例模型(UseCaseModel)、參與者(Actor)、用例(UseCase)、構(gòu)架描述、術(shù)語表(Glossary)、用戶界面原型參與需求捕獲階段的工作人員:系統(tǒng)分析人員(SystemAnalyst)、用例描述人員(UseCaseSpecifier)、用戶界面設(shè)計(jì)人員(UserInterfaceDesigner)構(gòu)架設(shè)計(jì)師(Architect)需求捕獲的工作流主要包括五個(gè)活動:確定參與者和用例、區(qū)分用例的優(yōu)先級、詳細(xì)描述一個(gè)用例、構(gòu)造用戶界面原型、構(gòu)造用例模型需求捕獲工作流主要的UML制品:核心工作流介紹--分析工作流主要的UML制品:分析模型、分析類、用例實(shí)現(xiàn)(分析)、分析包、構(gòu)架模型參與的工作人員:構(gòu)架設(shè)計(jì)師、用例工程師、構(gòu)件工程師主要包括四種活動:構(gòu)架分析、分析用例、分析類、分析包核心工作流介紹--分析工作流主要的UML制品:核心工作流介紹--設(shè)計(jì)工作流主要的UML制品:設(shè)計(jì)模型、設(shè)計(jì)類、用例實(shí)現(xiàn)-設(shè)計(jì)、設(shè)計(jì)子系統(tǒng)、接口、配置圖工作人員包括構(gòu)架設(shè)計(jì)師、用例工程師、構(gòu)件工程師主要包括四種活動構(gòu)架設(shè)計(jì)、設(shè)計(jì)一個(gè)用例、設(shè)計(jì)一個(gè)類、設(shè)計(jì)一個(gè)子系統(tǒng)核心工作流介紹--設(shè)計(jì)工作流主要的UML制品:核心工作流介紹--實(shí)現(xiàn)工作流主要有六種制品:實(shí)現(xiàn)模型、組件、實(shí)現(xiàn)子系統(tǒng)、接口、構(gòu)架描述(實(shí)現(xiàn)模型)、集成構(gòu)造計(jì)劃工作人員:構(gòu)架設(shè)計(jì)師、構(gòu)件工程師、系統(tǒng)集成人員系列活動:構(gòu)架實(shí)現(xiàn)、系統(tǒng)集成、實(shí)現(xiàn)一個(gè)子系統(tǒng)、實(shí)現(xiàn)一個(gè)類、執(zhí)行單元測試核心工作流介紹--實(shí)現(xiàn)工作流主要有六種制品:核心工作流介紹--測試工作流包括七個(gè)制品:測試模型、測試用例、測試規(guī)程、測試組件、制定測試計(jì)劃、缺陷、評估測試工作人員主要有四類:測試設(shè)計(jì)人員、構(gòu)件工程師、集成測試人員、系統(tǒng)測試人員包括六種活動:制定測試計(jì)劃、設(shè)計(jì)測試、實(shí)現(xiàn)測試、執(zhí)行集成測試、執(zhí)行系統(tǒng)測試、評估測試核心工作流介紹--測試工作流包括七個(gè)制品:敏捷軟件開發(fā)敏捷軟件開發(fā)(輕量級方法)XP方法,SCRUM方法,DSDM方法敏捷軟件開發(fā)聯(lián)盟(Agile聯(lián)盟)的4個(gè)價(jià)值觀和12條原則個(gè)人和交互高于過程和工具可運(yùn)行軟件高于詳盡的文檔與客戶協(xié)作高于合同(契約)談判對變更及時(shí)做出反映高于遵循計(jì)劃敏捷軟件開發(fā)敏捷軟件開發(fā)(輕量級方法)敏捷軟件開發(fā)2敏捷軟件開發(fā)聯(lián)盟(Agile聯(lián)盟)開發(fā)遵循的12條原則最優(yōu)先的是通過盡早地和不斷提交有價(jià)值的軟件來使客戶滿意歡迎變化的需求,即使該變化出現(xiàn)在開發(fā)的后期,為了提高客戶的競爭優(yōu)勢,敏捷過程利用變化作為動力以幾周到幾個(gè)月為周期,盡快、不斷地交付可運(yùn)行的軟件在整個(gè)項(xiàng)目過程中,業(yè)務(wù)人員和開發(fā)人員必須天天一起工作以積極向上的員工為中心建立項(xiàng)目組,給與他們所需要的環(huán)境和支持,對他們的工作給與充分的信任敏捷軟件開發(fā)2敏捷軟件開發(fā)聯(lián)盟(Agile聯(lián)盟)開發(fā)遵循的1敏捷軟件開發(fā)3項(xiàng)目組內(nèi)效率最高、最有效的信息傳遞方式是面對面交流測量項(xiàng)目進(jìn)展的首要依據(jù)是可運(yùn)行的軟件敏捷過程提倡可持續(xù)的開發(fā),項(xiàng)目發(fā)起人、開發(fā)者和用戶應(yīng)能長期保持恒定的速度應(yīng)該時(shí)刻關(guān)注技術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷性簡單化是必不可少的,這是盡可能減少不必要工作的藝術(shù)最好的架構(gòu)、需求和設(shè)計(jì)出自于自我組織的團(tuán)隊(duì)團(tuán)隊(duì)要定期反思怎樣才能更加有效,并據(jù)此調(diào)整自己的行為敏捷軟件開發(fā)3項(xiàng)目組內(nèi)效率最高、最有效的信息傳遞方式是面對面XP方法四個(gè)價(jià)值觀交流簡單反饋勇氣12個(gè)核心實(shí)踐完整的團(tuán)隊(duì)計(jì)劃對策系統(tǒng)比喻小發(fā)布測試簡單設(shè)計(jì)結(jié)對編程設(shè)計(jì)改進(jìn)持續(xù)集成代碼全體共有編碼標(biāo)準(zhǔn)可持續(xù)步調(diào)XP方法四個(gè)價(jià)值觀測試85其它敏捷方法自適應(yīng)軟件開發(fā)思考、協(xié)作、學(xué)習(xí)動態(tài)系統(tǒng)開發(fā)方法可行性研究、業(yè)務(wù)研究、功能模型迭代、設(shè)計(jì)和構(gòu)建迭代、實(shí)現(xiàn)ScrumCrystal特征驅(qū)動開發(fā)敏捷建模其它敏捷方法自適應(yīng)軟件開發(fā)小結(jié)軟件及其特點(diǎn)、分類軟件危機(jī)產(chǎn)生的原因軟件工程定義與目標(biāo)軟件工程過程生命周期/生存期生命周期模型統(tǒng)一過程敏捷軟件開發(fā)小結(jié)軟件及其特點(diǎn)、分類思考題軟件特點(diǎn)有哪些?為什么會產(chǎn)生軟件危機(jī)?軟件工程的目標(biāo)?思考題軟件特點(diǎn)有哪些?思考題什么是軟件的生命周期模型?它主要有哪些模型?軟件生命周期內(nèi)階段的劃分為什么要受軟件的規(guī)模、性質(zhì)、種類、開發(fā)方法的影響?簡述原型模型的特點(diǎn),與瀑布模型的關(guān)鍵區(qū)別是什么?原型模型與演化模型的異同分析。Rup與敏捷的區(qū)別。思考題什么是軟件的生命周期模型?它主要有哪些模型?實(shí)驗(yàn)01實(shí)驗(yàn)方式課后進(jìn)行分析與設(shè)計(jì)實(shí)驗(yàn)課討論評比內(nèi)容分組了解項(xiàng)目環(huán)境,系統(tǒng)應(yīng)該解決的問題實(shí)驗(yàn)01實(shí)驗(yàn)方式實(shí)驗(yàn)02_相關(guān)信息檢索分析與項(xiàng)目背景實(shí)驗(yàn)要求了解項(xiàng)目環(huán)境,系統(tǒng)應(yīng)該解決的問題來源:上網(wǎng),現(xiàn)場調(diào)研確定項(xiàng)目目標(biāo)提交文檔調(diào)查過程對需要解決的問題的認(rèn)識明確項(xiàng)目目標(biāo)存在的困難其它。。。。實(shí)驗(yàn)02_相關(guān)信息檢索分析與項(xiàng)目背景實(shí)驗(yàn)要求軟件工程薛建民xjm@87818127軟件工程薛建民軟件工程軟件概念與分類軟件的發(fā)展與軟件危機(jī)軟件工程基本定義軟件過程及其模型小結(jié)、思考題、實(shí)驗(yàn)軟件工程軟件概念與分類軟件概念與分類軟件定義程序、數(shù)據(jù)及其相關(guān)文檔的集合軟件的特點(diǎn)軟件的品質(zhì)軟件的分類軟件概念與分類軟件定義軟件的特點(diǎn)1軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。它具有抽象性軟件的生產(chǎn)與硬件不同大多數(shù)軟件是定制的在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損、老化問題(圖示)軟件的特點(diǎn)1軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。它具有第01講_軟件工程概念與過程課件96軟件的特點(diǎn)2軟件的開發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制對計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件是復(fù)雜的軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素軟件的特點(diǎn)2軟件的開發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制對計(jì)算機(jī)軟件的品質(zhì)產(chǎn)品必須可靠,只執(zhí)行需求說明書的任務(wù)可用(易用性)健壯滿足性能要求可維護(hù)有效利用資源可演化(可擴(kuò)展)可移植、可重用軟件的品質(zhì)產(chǎn)品必須可靠,只執(zhí)行需求說明書的任務(wù)軟件的分類按功能按規(guī)模按工作方式按應(yīng)用領(lǐng)域按服務(wù)對象項(xiàng)目軟件(定制軟件)產(chǎn)品軟件按使用頻度按軟件失效的影響軟件的分類按功能軟件的分類—按功能系統(tǒng)軟件支撐軟件應(yīng)用軟件硬件系統(tǒng)軟件支撐軟件/應(yīng)用軟件軟件的分類—按功能系統(tǒng)軟件硬件系統(tǒng)軟件支撐軟件/應(yīng)用軟件軟件的分類—按規(guī)模軟件的分類—按規(guī)模Windows家族軟件規(guī)模Win95:1500萬行Win98:1800萬行Winxp:3500萬行Vista:5000萬行9000名開發(fā)人員5年60億美金355臺服務(wù)器,75萬多行測試環(huán)境Windows開發(fā)人員1000行代碼/人年Windows家族軟件規(guī)模Win95:1500萬行軟件的分類—按工作方式實(shí)時(shí)軟件分時(shí)軟件交互軟件批處理軟件軟件的分類—按工作方式實(shí)時(shí)軟件軟件的分類—按應(yīng)用領(lǐng)域分系統(tǒng)軟件實(shí)時(shí)軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個(gè)人計(jì)算機(jī)軟件基于Web的軟件人工智能軟件移動應(yīng)用云計(jì)算軟件的分類—按應(yīng)用領(lǐng)域分系統(tǒng)軟件軟件的發(fā)展與軟件危機(jī)軟件的發(fā)展階段軟件危機(jī)產(chǎn)生表現(xiàn)原因軟件的發(fā)展趨勢軟件的發(fā)展與軟件危機(jī)軟件的發(fā)展階段第01講_軟件工程概念與過程課件106軟件的發(fā)展~危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。產(chǎn)生于軟件發(fā)展的第二階段(軟件系統(tǒng)階段)末期。硬件性價(jià)比和應(yīng)用范圍、數(shù)量增大軟件的需求和規(guī)模增大軟件開發(fā)技術(shù)落后、低產(chǎn)量、低質(zhì)量軟件危機(jī)軟件的發(fā)展~危機(jī)軟件危機(jī)硬件性價(jià)比和應(yīng)用范圍、數(shù)量增大軟件的軟件危機(jī)---主要表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確用戶不滿意軟件質(zhì)量不高、可靠性差軟件常常不可維護(hù)、錯(cuò)誤難以改正缺乏適當(dāng)?shù)奈臋n資料軟件成本占系統(tǒng)總成本的比例逐年上升(1985----90%)軟件開發(fā)速度跟不上計(jì)算機(jī)發(fā)展速度歸結(jié)為主要為三方面----“時(shí)間、成本、質(zhì)量”軟件危機(jī)---主要表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確軟件危機(jī)--原因1軟件規(guī)模日漸龐大(數(shù)量、功能、成本、質(zhì)量、時(shí)間)軟件開發(fā)管理困難。邏輯部件而不是物理部件。在寫出程序代碼并在計(jì)算機(jī)運(yùn)行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評價(jià)。因此,管理和控制軟件開發(fā)過程相當(dāng)困難。開發(fā)人員錯(cuò)誤的觀念、方法和技術(shù)重編程、輕需求。生產(chǎn)方式落后:個(gè)體手工方式。開發(fā)技術(shù)落后\開發(fā)工具落后軟件危機(jī)--原因1軟件規(guī)模日漸龐大(數(shù)量、功能、成本、質(zhì)量、軟件危機(jī)---原因2忽視軟件開發(fā)前期的需求分析開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論的指導(dǎo)文檔資料不齊全或不準(zhǔn)確忽視與用戶之間、開發(fā)組成員之間的交流忽視測試的重要性不重視維護(hù)或由于上述原因造成維護(hù)工作的困難需求變化預(yù)料不足軟件危機(jī)---原因2忽視軟件開發(fā)前期的需求分析軟件發(fā)展趨勢平臺網(wǎng)絡(luò)化技術(shù)對象化系統(tǒng)構(gòu)件化開發(fā)過程化生產(chǎn)規(guī)?;a(chǎn)品領(lǐng)域化競爭國際化移動計(jì)算云環(huán)境與智慧-任何軟件都是有體系結(jié)構(gòu)的,體系結(jié)構(gòu)決定了軟件的整體性能-任何軟件生產(chǎn)都是有過程的,軟件過程決定了軟件的質(zhì)量-任何軟件都是處理信息的,數(shù)據(jù)-信息-知識-智慧軟件發(fā)展趨勢平臺網(wǎng)絡(luò)化-任何軟件都是有體系結(jié)構(gòu)的,軟件工程基本定義定義性質(zhì)范圍目標(biāo)軟件工程基本定義定義軟件工程--定義1軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來軟件工程--定義1軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)軟件工程定義2定義---Boehm

運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序設(shè)計(jì)及為開發(fā),運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料定義---IEEE[93]將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)中,即將工程化應(yīng)用于軟件;上面所述方法的研究軟件工程定義2定義---Boehm軟件工程定義3定義---Fairley

軟件工程學(xué)是為在成本限額以內(nèi)、按時(shí)完成開發(fā)和修改軟件產(chǎn)品所需的系統(tǒng)生產(chǎn)和維護(hù)的技術(shù)和管理的學(xué)科定義---FritzBauer建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法軟件工程定義3定義---Fairley軟件工程—性質(zhì)軟件工程是一門綜合性的交叉學(xué)科,它涉及哲學(xué)、計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)和應(yīng)用領(lǐng)域知識工作崗位項(xiàng)目經(jīng)理系統(tǒng)分析員架構(gòu)工程師系統(tǒng)分析師項(xiàng)目實(shí)施顧問軟件工程—性質(zhì)軟件工程是一門綜合性的交叉學(xué)科,它涉及哲學(xué)、計(jì)軟件工程—范圍1計(jì)算機(jī)系統(tǒng)工程軟件工程實(shí)現(xiàn)(編碼)硬件工程。。。。。。如果把軟件工程比喻為戰(zhàn)略的話,則編碼實(shí)現(xiàn)只能算是戰(zhàn)術(shù)。地位軟件工程—范圍1實(shí)現(xiàn)硬件工程。。。。。。如果把軟件工程比喻為117分析設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施維護(hù)項(xiàng)目管理范圍時(shí)間成本質(zhì)量人力資源溝通風(fēng)險(xiǎn)采購共通軟件工程--范圍2涉及主要方面

軟件工程涉及軟件生產(chǎn)的各個(gè)方面(圖示如下)分析設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施維護(hù)項(xiàng)目管理范圍時(shí)間成本質(zhì)量軟件工程--目標(biāo)目標(biāo)----成功的(大型)軟件系統(tǒng)付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;易于移植需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)工作,及時(shí)交付使用;開發(fā)軟件質(zhì)量指標(biāo)高;統(tǒng)一為——“如何提高軟件生產(chǎn)率”軟件工程--目標(biāo)目標(biāo)----成功的(大型)軟件系統(tǒng)付出較低的軟件工程層次圖質(zhì)量關(guān)注點(diǎn)過程方法工具軟件工程層次圖工具軟件過程及其模型軟件過程概念軟件生命周期軟件生存期各階段軟件生命周期模型軟件過程及其模型軟件過程概念軟件工程過程--概念軟件工程過程是一個(gè)軟件開發(fā)機(jī)構(gòu)針對一類軟件產(chǎn)品為自己規(guī)定的工作步驟,它應(yīng)當(dāng)是科學(xué)的、合理的,否則必將影響到軟件產(chǎn)品的質(zhì)量規(guī)定了獲取、供應(yīng)、開發(fā)和維護(hù)軟件時(shí),要實(shí)施的過程、活動和任務(wù)是指軟件產(chǎn)品或軟件系統(tǒng)從產(chǎn)生、投入使用到被淘汰的全過程是為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動軟件工程過程--概念軟件工程過程是一個(gè)軟件開發(fā)機(jī)構(gòu)針對一類軟《ISO/IEC12207信息技術(shù)--軟件生存期技術(shù)》

定義的軟件過程《ISO/IEC12207信息技術(shù)--軟件生存期技術(shù)》

定123過程元素之間的關(guān)系過程元素之間的關(guān)系124標(biāo)準(zhǔn)軟件過程體系結(jié)構(gòu)圖標(biāo)準(zhǔn)軟件過程體系結(jié)構(gòu)圖125詳細(xì)的軟件過程層次體系結(jié)構(gòu)

詳細(xì)的軟件過程層次體系結(jié)構(gòu)126軟件生命周期定義它是指一個(gè)軟件從提出開發(fā)要求開始到該軟件報(bào)廢為止的整個(gè)時(shí)期(生存過程)。從時(shí)間角度,把整個(gè)周期劃分為若干個(gè)階段(步驟),每個(gè)階段有明確的任務(wù),然后再逐步完成每個(gè)階段的任務(wù)軟件從孕育、誕生、成長、成熟、衰亡的生存過程軟件生命周期定義軟件生存期各階段一般可分為六個(gè)步驟/階段:制定計(jì)劃(Planning)需求分析和定義(RequirementAnalysisandDefinition)軟件設(shè)計(jì)(SoftwareDesign)程序編寫(Coding/Programming)軟件測試(Testing)運(yùn)行/維護(hù)(Running/Maintenance)軟件生存期各階段一般可分為六個(gè)步驟/階段:軟件生命周期模型線性順序模型瀑布模型RAD模型原型模型演化模型形式化開發(fā)模型基于構(gòu)件的開發(fā)統(tǒng)一過程敏捷軟件開發(fā)軟件生命周期模型線性順序模型瀑布模型問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測試維護(hù)定義階段開發(fā)階段維護(hù)階段瀑布模型問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測130瀑布模型--特點(diǎn)優(yōu)點(diǎn):提供了軟件開發(fā)的基本框架,比靠“個(gè)人技藝”開發(fā)好的多。嚴(yán)格活動序列,嚴(yán)格階段成果評審,有利于大型軟件開發(fā)過程的人員的組織和管理缺點(diǎn):對用戶需求變更的響應(yīng)較困難。初始階段較長,用戶極大的耐心,需求的不確定性;后期階段時(shí),需求錯(cuò)誤、設(shè)計(jì)及實(shí)現(xiàn)錯(cuò)誤才出現(xiàn)適用:需求明確、大型的項(xiàng)目。瀑布模型--特點(diǎn)優(yōu)點(diǎn):瀑布模型變化1瀑布模型變化1132瀑布模型變化2瀑布模型變化2133快速應(yīng)用開發(fā)模型RAD1快速應(yīng)用開發(fā)模型RAD1134快速應(yīng)用開發(fā)模型RAD2快速應(yīng)用開發(fā)模型RAD2135RAD模型--特點(diǎn)優(yōu)點(diǎn)開發(fā)時(shí)間短快速發(fā)布缺點(diǎn)多團(tuán)隊(duì)開發(fā)協(xié)調(diào)困難了解需求困難不注意小細(xì)節(jié)RAD模型--特點(diǎn)優(yōu)點(diǎn)原型模型1建造/修改原型聽取客戶意見客戶測試運(yùn)行原型原型模型1建造/修改聽取客戶客戶測試原型模型2原型模型2138原型模型3原型模型3139原型模型----特點(diǎn)優(yōu)點(diǎn):成品的用戶滿意度高。用戶參與,需求不斷完善缺點(diǎn)軟件的“臨時(shí)版本”,未考慮性能需求進(jìn)度控制、質(zhì)量檢驗(yàn)較難,技術(shù)方案未必最優(yōu),會導(dǎo)致開發(fā)過程的不可收斂性系統(tǒng)結(jié)構(gòu)通常較差,連續(xù)的變更損壞了系統(tǒng)的結(jié)構(gòu)原型模型----特點(diǎn)優(yōu)點(diǎn):原型模型----特點(diǎn)適用:中小規(guī)模、生存期短的系統(tǒng),知識型系統(tǒng)用戶定義了一組一般性目標(biāo),但不能標(biāo)識出詳細(xì)的輸入、處理及輸出需求開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式當(dāng)你的客戶有一個(gè)合理的需求,但對細(xì)節(jié)則沒有任何線索時(shí),先開發(fā)一個(gè)原型系統(tǒng)是一個(gè)好的選擇原型模型----特點(diǎn)適用:演化軟件過程模型漸增模型以盡早占領(lǐng)市場為目的,逐步發(fā)布版本;可有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn)螺旋模型不同版本、不同形式的不斷進(jìn)化;需要高水平的風(fēng)險(xiǎn)評估技術(shù)并發(fā)開發(fā)模型由用戶要求、管理決策和評審結(jié)果驅(qū)動;每一個(gè)軟件工程活動觸發(fā)活動網(wǎng)絡(luò)的狀態(tài)變遷;演化軟件過程模型漸增模型漸增模型1分析設(shè)計(jì)編碼測試增量1分析設(shè)計(jì)編碼測試增量2分析設(shè)計(jì)編碼測試增量3分析設(shè)計(jì)編碼測試增量4第1個(gè)增量發(fā)布第2個(gè)增量發(fā)布第3個(gè)增量發(fā)布第4個(gè)增量發(fā)布漸增模型1分析設(shè)計(jì)編碼測試增量1分析設(shè)計(jì)編碼測試增量2分析設(shè)漸增模型2漸增模型2144漸增模型-特點(diǎn)優(yōu)點(diǎn)易于預(yù)測、管理、控制使用的資源快速版本發(fā)布缺點(diǎn)有可能消弱結(jié)構(gòu)和設(shè)計(jì)使用用戶需求不明確設(shè)計(jì)用戶界面漸增模型-特點(diǎn)優(yōu)點(diǎn)螺旋模型1螺旋模型1146螺旋模型2螺旋模型2147螺旋模型-特點(diǎn)(spiralmodel)TRWB.Boehm,1988提出。將過程用螺旋線表示,每個(gè)回路表示軟件過程的一個(gè)階段。因此,最里面的回路可能與系統(tǒng)可行性有關(guān),下一個(gè)回路可能與系統(tǒng)需求定義有關(guān),再下一個(gè)回路與系統(tǒng)設(shè)計(jì)有關(guān)。多個(gè)任務(wù)區(qū)優(yōu)點(diǎn):漸增、使用原型模型減少風(fēng)險(xiǎn),快速、可在軟件的整個(gè)生命期間使用缺點(diǎn):客戶與開發(fā)團(tuán)隊(duì)需要豐富的風(fēng)險(xiǎn)評估專業(yè)知識,演化是否完全可控螺旋模型-特點(diǎn)(spiralmodel)TRWB.Bo并發(fā)開發(fā)模型1開始開發(fā)等待改變修改評審基線評估完成分析活動表示一個(gè)軟件工程的狀態(tài)并發(fā)開發(fā)模型1開始開發(fā)等待改變修改評審基線評估完成分析活動表并發(fā)開發(fā)模型2并發(fā)開發(fā)模型2150優(yōu)點(diǎn)適用所有類型的軟件開發(fā)尤其適用客戶端/服務(wù)器應(yīng)用程序在實(shí)際項(xiàng)目中使用是成功的將降低整個(gè)過程的風(fēng)險(xiǎn)缺點(diǎn)對管理要求較高并發(fā)開發(fā)模型優(yōu)缺點(diǎn)優(yōu)點(diǎn)并發(fā)開發(fā)模型優(yōu)缺點(diǎn)形式化方法模型1通過一組指定的活動來產(chǎn)生計(jì)算機(jī)軟件的數(shù)學(xué)規(guī)約。軟件工程師應(yīng)用一個(gè)嚴(yán)格的、數(shù)學(xué)的符號體系來進(jìn)行規(guī)約、開發(fā)和驗(yàn)證基于計(jì)算機(jī)的系統(tǒng)特點(diǎn):完全可以產(chǎn)生無缺陷的軟件缺點(diǎn)成本高與客戶交流困難使用在對可靠性要求極高的系統(tǒng)開發(fā)中形式化方法模型1通過一組指定的活動來產(chǎn)生計(jì)算機(jī)軟件的數(shù)學(xué)規(guī)約形式化方法模型2需求定義形式的規(guī)格說明形式化變換集成和系統(tǒng)測試形式化方法模型2需求定義形式的規(guī)格說明形式化變換集成和系統(tǒng)測基于構(gòu)件的開發(fā)客戶交流計(jì)劃風(fēng)險(xiǎn)分析客戶評估工程構(gòu)造及發(fā)布標(biāo)識候選構(gòu)件如果不可用則建造構(gòu)件構(gòu)造系統(tǒng)的第n次迭代將新構(gòu)件放入庫中在庫中查找構(gòu)件如果可用則提取構(gòu)件基于構(gòu)件的開發(fā)客戶交流計(jì)劃風(fēng)險(xiǎn)分析客戶評估工程構(gòu)造及發(fā)布標(biāo)識RUP簡介RUP(RationalUnifiedProcess)Rational統(tǒng)一過程近30年的發(fā)展和實(shí)際運(yùn)用每一次軟件開發(fā)過程定義了九個(gè)核心規(guī)程六個(gè)技術(shù)規(guī)程業(yè)務(wù)建模規(guī)程、需求工程、分析和設(shè)計(jì)規(guī)程、實(shí)現(xiàn)規(guī)程、測試規(guī)程、部署規(guī)程三個(gè)管理規(guī)程配置和變更管理規(guī)程、項(xiàng)目管理規(guī)程、環(huán)境規(guī)程開發(fā)周期的四個(gè)階段初始階段、細(xì)化階段、構(gòu)造階段、移交階段RUP簡介RUP(RationalUnifiedProc初始細(xì)化構(gòu)造移交階段初始化細(xì)化#1細(xì)化#2構(gòu)造#1構(gòu)造#2構(gòu)造#3移交#1移交#2迭代技術(shù)規(guī)程工作流業(yè)務(wù)建模需求

分析與設(shè)計(jì)實(shí)現(xiàn)測試實(shí)施配置和變更管理項(xiàng)目管理規(guī)程環(huán)境規(guī)程沿時(shí)間軸的組織結(jié)構(gòu)沿內(nèi)容軸的組織RUP-Rational統(tǒng)一過程初始細(xì)化構(gòu)造移交階段初始化細(xì)化#1細(xì)化#2構(gòu)造#1156業(yè)務(wù)建模(BusinessModeling)理解系統(tǒng)的組織結(jié)構(gòu)及其商業(yè)運(yùn)作,確保所有參與人員對開發(fā)系統(tǒng)有共同的認(rèn)識。需求分析(Requirements)定義系統(tǒng)功能及用戶界面,明確客戶需要的系統(tǒng)的功能,開發(fā)人員理解系統(tǒng)的需求,為項(xiàng)目預(yù)算及計(jì)劃提供基礎(chǔ)。分析與設(shè)計(jì)(AnalysisandDesign)把需求分析的結(jié)果轉(zhuǎn)化為實(shí)現(xiàn)規(guī)格。工作流描述業(yè)務(wù)建模(BusinessModeling)工作流描述157實(shí)現(xiàn)(Implementation)定義代碼的組織結(jié)構(gòu)、實(shí)現(xiàn)代碼、單元測試、系統(tǒng)集成。測試(Test)驗(yàn)證各自子系統(tǒng)的交互與集成。配置(Deployment)打包、分發(fā)、安裝軟件,升級舊系統(tǒng);培訓(xùn)用戶及銷售人員,并提供技術(shù)支持。制定并實(shí)施beta測試。工作流描述實(shí)現(xiàn)(Implementation)工作流描述158設(shè)置和變更管理(ConfigurationandChangeManagement)跟蹤并維護(hù)系統(tǒng)所有產(chǎn)品的完整性和一致性。項(xiàng)目管理(ProjectManagement)為計(jì)劃、執(zhí)行和監(jiān)控軟件開發(fā)項(xiàng)目提供可行性的指導(dǎo);為風(fēng)險(xiǎn)管理提供框架。環(huán)境(Environment)為組織提供過程管理和工具的支持。工作流描述設(shè)置和變更管理(ConfigurationandChan159RUP的四個(gè)階段RUP包括以下四個(gè)階段:起始階段、細(xì)化階段、構(gòu)建階段、交付階段每個(gè)階段結(jié)束于一個(gè)主要的里程碑(MajorMilestones)每個(gè)階段本質(zhì)上是兩個(gè)里程碑之間的時(shí)間跨度RUP的四個(gè)階段RUP包括以下四個(gè)階段:RUP的四個(gè)階段--初始階段進(jìn)行如下的活動明確說明項(xiàng)目規(guī)模,了解環(huán)境以及最重要的需求和約束,以便可以得出最終產(chǎn)品的驗(yàn)收標(biāo)準(zhǔn)。計(jì)劃和準(zhǔn)備商業(yè)理由。評估風(fēng)險(xiǎn)管理、人員配備、項(xiàng)目計(jì)劃以及成本/進(jìn)度/收益折衷的被選方案。綜合考慮被選構(gòu)架,評估構(gòu)架。準(zhǔn)備項(xiàng)目的環(huán)境,評估項(xiàng)目和組織,選擇工具,決定流程中要改進(jìn)的部分。評估標(biāo)準(zhǔn)如下:出資人同意系統(tǒng)范圍定義以及費(fèi)用和進(jìn)度評估。主要用例是否符合需求。費(fèi)用和進(jìn)度評估、優(yōu)先級、風(fēng)險(xiǎn)以及開發(fā)過程的可信性。任何已開發(fā)的原型的深度和廣度。實(shí)際開銷與計(jì)劃開銷。初始階段的焦點(diǎn)是需求和分析工作流。RUP的四個(gè)階段--初始階段進(jìn)行如下的活動RUP的四個(gè)階段-細(xì)化階段細(xì)化階段的評估標(biāo)準(zhǔn)如下:標(biāo)明用例模型中的用戶和參與者,并且建立用例的描述文檔。用例模型需完成80%。創(chuàng)建軟件系統(tǒng)開發(fā)過程中的軟件結(jié)構(gòu)的描述文檔。創(chuàng)建可執(zhí)行的系統(tǒng)原型。細(xì)化商業(yè)案例和風(fēng)險(xiǎn)列表。創(chuàng)建整個(gè)項(xiàng)目的開發(fā)計(jì)劃。細(xì)化階段的焦點(diǎn)是需求、分析和設(shè)計(jì)工作流。RUP的四個(gè)階段-細(xì)化階段細(xì)化階段的評估標(biāo)準(zhǔn)如下:RUP的四個(gè)階段--構(gòu)建階段主要目標(biāo)如下:優(yōu)化資源、避免不必要的報(bào)廢和返工,使開發(fā)成本降到最低。盡快達(dá)到質(zhì)量的要求??焖偻瓿捎杏玫陌姹?,例如Alpha版、Beta版和其他測試發(fā)布版。完成所有功能的分析、開發(fā)和測試。迭代式、遞增地開發(fā)隨時(shí)可以發(fā)布的產(chǎn)品。確定準(zhǔn)備好軟件系統(tǒng)的外部環(huán)境。構(gòu)建階段的焦點(diǎn)是實(shí)現(xiàn)工作流。RUP的四個(gè)階段--構(gòu)建階段主要目標(biāo)如下:RUP的四個(gè)階段-交付階段主要目標(biāo)如下:進(jìn)行Beta版測試,按用戶的要求驗(yàn)證新系統(tǒng)。替換舊的系統(tǒng)。對用戶和維護(hù)人員進(jìn)行培訓(xùn)。開始調(diào)整活動,例如調(diào)試、性能或可用性的增強(qiáng)。與用戶達(dá)成共識,配置基線與評估標(biāo)準(zhǔn)一致。交付階段的焦點(diǎn)是實(shí)現(xiàn)和測試工作流。RUP的四個(gè)階段-交付階段主要目標(biāo)如下:RUP的迭代開發(fā)模型RUP中的每個(gè)階段可以進(jìn)一步分解為迭代。RUP的迭代開發(fā)模型RUP中的每個(gè)階段可以進(jìn)一步分解為迭代。RUP的迭代開發(fā)模型與傳統(tǒng)的瀑布模型相比較,迭代過程的優(yōu)點(diǎn):降低了在一個(gè)增量上的開發(fā)風(fēng)險(xiǎn)。降低了產(chǎn)品無法按照既定進(jìn)度進(jìn)入市場的風(fēng)險(xiǎn)。加快了整個(gè)開發(fā)工作的進(jìn)度。RUP的迭代開發(fā)模型與傳統(tǒng)的瀑布模型相比較,迭代過程的優(yōu)點(diǎn):核心工作流介紹-需求捕獲工作流需求捕獲通過對應(yīng)問題的理解和分析,確立問題涉及的信息、功能和系統(tǒng)行為,將用戶需求精確化、完全化。需求的焦點(diǎn)主要在初始和精化階段,在精化階段后期,需求捕獲的工作量大幅下降。核心工作流介紹-需求捕獲工作流需求捕獲通過對應(yīng)問題的理解和分需求捕獲工作流主要的UML制品:用例模型(UseCaseModel)、參與者(Actor)、用例(UseCase)、構(gòu)架描述、術(shù)語表(Glossary)、用戶界面原

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論