軟件工程、軟件生命周期和軟件過程模型等概念回顧Pub_第1頁
軟件工程、軟件生命周期和軟件過程模型等概念回顧Pub_第2頁
軟件工程、軟件生命周期和軟件過程模型等概念回顧Pub_第3頁
軟件工程、軟件生命周期和軟件過程模型等概念回顧Pub_第4頁
軟件工程、軟件生命周期和軟件過程模型等概念回顧Pub_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程、軟件生命周期和軟件過程模型等概念回顧停下來,思考才是進(jìn)步的本質(zhì)

--李維.《大道至簡.序》議程軟件工程軟件生命周期軟件開發(fā)過程模型什么是軟件?軟件是計(jì)算機(jī)系統(tǒng)中與硬件相對應(yīng)的另一部分,包括一系列程序、數(shù)據(jù)及其相關(guān)文檔的集合。三要素:程序文檔數(shù)據(jù)軟件的特征特性:復(fù)雜性一致性不會磨損和“老化”易變性移植性成本高時間故障率軟件演化-1第一代:程序設(shè)計(jì)階段。1946年到60年代初,其主要特征是程序生產(chǎn)方式為個體手工方式。第二代:程序系統(tǒng)階段。60年代初到70年代初,軟件工程學(xué)科誕生。軟件的開發(fā)方式由個體生產(chǎn)發(fā)展到了小組生產(chǎn),軟件的開發(fā)與維護(hù)費(fèi)用以驚人的速度增加,維護(hù)困難,導(dǎo)致軟件危機(jī)。軟件演化-2第三代:傳統(tǒng)軟件工程階段。20世紀(jì)70年代中期至80年代中期,軟件工程師把工程化的思想加入到軟件的開發(fā)過程中,用工程化的原則、方法和標(biāo)準(zhǔn)來開發(fā)和維護(hù)軟件。第四代:面向?qū)ο箅A段。20世紀(jì)80年代中期至今,面向?qū)ο蟮姆椒▽W(xué)受到了人們的重視,促進(jìn)了軟件業(yè)的飛速發(fā)展,軟件產(chǎn)業(yè)在世界經(jīng)濟(jì)中已經(jīng)占有舉足輕重的地位。軟件工程定義-1FritzBauer的定義:

軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件而建立和使用的一系列完善的工程化原則。1968年在NATO科技會議上首次提出軟件工程的概念軟件工程定義-2B.W.Boehm的定義:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料。巴利·玻姆,軟件工程估算模型COCOMO模型之父、軟件過程螺旋式模型之父。軟件工程定義-31983年美國《IEEE軟件工程標(biāo)準(zhǔn)術(shù)語》的定義為:

軟件工程是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法,其中“軟件”的定義為:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計(jì)事機(jī)上運(yùn)行時所必需的數(shù)據(jù)。軟件工程化思想把軟件看作是一個工程產(chǎn)品兩個方面:軟件工程討論軟件工程軟件工程議程軟件工程軟件生命周期軟件開發(fā)過程模型軟件生命周期

任何有生命的動物、植物和人,都有一個生存周期(LifeCycle),例如人的生存周期為胎兒、嬰兒、幼兒、兒童、少年、青年、中年、老年、死亡。沒有生命的事物或?qū)嶓w,例如PC機(jī)、路由器、家具、房子、汽車,它們也有一個生存周期,這個生存周期就是使用壽命,即生產(chǎn)周期加上使用周期。

序號名稱1立項(xiàng)/簽合同2需求分析3概要設(shè)計(jì)4詳細(xì)設(shè)計(jì)5編碼實(shí)現(xiàn)6軟件測試7軟件發(fā)布與實(shí)施8軟件維護(hù)9版本更新或退役軟件生命周期主要過程獲取過程獲取過程供應(yīng)過程管理過程運(yùn)行過程開發(fā)過程維護(hù)過程獲取者供應(yīng)者管理者運(yùn)行者用戶開發(fā)者維護(hù)者開發(fā)者維護(hù)者組織過程:管理、改進(jìn)...支持過程:文檔、質(zhì)量保證、配置管理...合同使用合同觀點(diǎn)管理觀點(diǎn)運(yùn)行觀點(diǎn)開發(fā)觀點(diǎn)支持觀點(diǎn)主要過程之間關(guān)系討論對不同類型軟件生命周期的認(rèn)識?產(chǎn)品類:操作系統(tǒng)、數(shù)據(jù)庫、開發(fā)語言、各種應(yīng)用項(xiàng)目類:定制化類、各種應(yīng)用領(lǐng)域軟件、應(yīng)用領(lǐng)域類的產(chǎn)品化。議程軟件工程軟件生命周期軟件開發(fā)過程模型軟件過程定義:軟件過程是為了開發(fā)出軟件產(chǎn)品,或者是為了完成軟件工程項(xiàng)目而需要完成的有關(guān)軟件工程的活動通常使用生命周期模型簡潔地描述軟件過程。生命周期模型規(guī)定了把生命周期劃分為哪些階段及各個階段的執(zhí)行順序,也稱為過程模型瀑布模型瀑布模型提供了軟件開發(fā)的基本框架。瀑布模型將軟件生命周期劃分為軟件計(jì)劃、需求分析和定義、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測試、軟件運(yùn)行和維護(hù)這6個階段,規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水逐級下落而得名它是一個軟件開發(fā)架構(gòu),開發(fā)過程是通過一系列階段順序展開的。每個階段都會產(chǎn)生循環(huán)反饋各個階段產(chǎn)生的文檔是維護(hù)軟件產(chǎn)品時必不可少的,沒有文檔的軟件幾乎是不可能維護(hù)的。瀑布模型示意圖瀑布模型特點(diǎn)順序性和依賴性推遲實(shí)現(xiàn)質(zhì)量保證的觀點(diǎn)是一種線性模型強(qiáng)調(diào)文檔的作用增量模型增量模型(IncrementalModel)也稱為漸增模型,是在項(xiàng)目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。軟件被作為一系列的增量構(gòu)件來設(shè)計(jì)、實(shí)現(xiàn)、集成和測試,每一個構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成.增量方式包括:增量開發(fā):以一定的時間間隔開發(fā)部分工作軟件增量提交:以一定的時間間隔增量方式向用戶提交工作軟件及相應(yīng)文檔增量模型融合了線性順序模型的基本成份和原型實(shí)現(xiàn)模型的迭代特征。增量模型分為漸增模型和原型模型漸增模型是瀑布模型的變種,有兩類漸增模型:增量構(gòu)造模型:它在瀑布模型基礎(chǔ)上,對一些階段進(jìn)行整體開發(fā),對另一些階段進(jìn)行增量開發(fā)。前面的開發(fā)階段按瀑布模型進(jìn)行整體開發(fā),后面的開發(fā)階段按增量方式開發(fā)。演化提交模型:它在瀑布模型的基礎(chǔ)上,所有階段都進(jìn)行增量開發(fā),也就是說不僅是增量開發(fā),也是增量提交。增量構(gòu)造模型需求分析設(shè)計(jì)編碼1測試1測試2編碼2編碼3測試3螺旋模型螺旋模型(SpiralModel)是結(jié)合了瀑布模型和快速原型模型的迭代開發(fā)模型強(qiáng)調(diào)了其他模型均忽略了的風(fēng)險分析:風(fēng)險識別風(fēng)險分析風(fēng)險控制特別適合于大型復(fù)雜的系統(tǒng)每一個周期都包括需求定義、風(fēng)險分析、工程實(shí)現(xiàn)和評審螺旋模型示意圖螺旋模型活動四個象限分別代表了以下活動:制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,確定項(xiàng)目開發(fā)的限制條件;風(fēng)險分析:分析評估所選方案,考慮如何識別和消除風(fēng)險;實(shí)施工程:實(shí)施軟件開發(fā)和驗(yàn)證;客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計(jì)劃。螺旋模型是風(fēng)險驅(qū)動的模型協(xié)同開發(fā)模型協(xié)同開發(fā)模型(CollaborativeDevelopmentModel,簡稱CDM),有時也叫做協(xié)同工程,可以表示為一系列框架活動、軟件工程動作和任務(wù)以及相應(yīng)的狀態(tài)。在某一特定時間,建模活動可能處于任何一種狀態(tài)。協(xié)同開發(fā)模型定義了一系列事件,這些事件將觸發(fā)軟件工程活動、動作或任務(wù)的狀態(tài)轉(zhuǎn)換。協(xié)同開發(fā)模型空狀態(tài)開發(fā)狀態(tài)等待變更狀態(tài)評審狀態(tài)修改狀態(tài)建立基線狀態(tài)結(jié)束狀態(tài)建模活動面向?qū)ο筮^程模型面向?qū)ο笫且环N的程序設(shè)計(jì)方法,或者說它是一種程序設(shè)計(jì)范型?;舅枷胧鞘褂脤ο?,類,繼承,封裝,消息等基本概念來進(jìn)行程序設(shè)計(jì)。面向?qū)ο蟮囊兀撼橄螅簭?qiáng)調(diào)實(shí)體的本質(zhì)、內(nèi)在的屬性,忽略一些無關(guān)緊要的屬性。類實(shí)現(xiàn)了對象的數(shù)據(jù)(即狀態(tài))和行為的抽象,是對象的共性的抽象。封裝性:指所有軟件部件內(nèi)部都有明確的范圍以及清楚的外部邊界。共享性:面向?qū)ο蟮奶卣鳎簩ο笪┮恍?;分類性;繼承性;多態(tài)性(多形性)。統(tǒng)一過程模型統(tǒng)一過程(UnifiedProcess,UP)是風(fēng)險驅(qū)動的、基于用例技術(shù)的、以架構(gòu)為中心的、迭代的、可配置的軟件開發(fā)流程。統(tǒng)一過程是以用例驅(qū)動的,以架構(gòu)為中心,迭代和增量的過程。統(tǒng)一過程是一個軟件開發(fā)過程,是一個通用的過程框架:初始細(xì)化構(gòu)造移交統(tǒng)一過程的四個階段統(tǒng)一過程五個核心工作流需求(RequirementsCapture):致力于開發(fā)正確的系統(tǒng)分析(Analysis):更精確地理解需求設(shè)計(jì)(Design):深入理解與非功能性需求和約束相聯(lián)系的問題實(shí)現(xiàn)(Implementation):實(shí)現(xiàn)系統(tǒng)與集成測試(Test):驗(yàn)證實(shí)現(xiàn)的結(jié)構(gòu)核心工作流統(tǒng)一過程準(zhǔn)則準(zhǔn)則迭代的開發(fā)軟件需求管理基于構(gòu)件的體系結(jié)構(gòu)可視化軟件建模驗(yàn)證軟件質(zhì)量控制軟件的變更統(tǒng)一過程主要的優(yōu)點(diǎn)是提高了團(tuán)隊(duì)生產(chǎn)力測試驅(qū)動模型作業(yè)大家每個人所

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論