版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論
鄧娜計(jì)算機(jī)學(xué)院
1/70課程介紹及要求用工程化的方法來(lái)開(kāi)發(fā)軟件2/84教學(xué)目標(biāo)為什么要學(xué)習(xí)這門課程有助于正確理解和認(rèn)識(shí)“軟件”的概念及其特點(diǎn)理解軟件開(kāi)發(fā)面臨的問(wèn)題和挑戰(zhàn)掌握軟件工程的原則、方法和思想來(lái)系統(tǒng)地開(kāi)發(fā)軟件,尤其是復(fù)雜、龐大的軟件的開(kāi)發(fā)了解和接觸軟件開(kāi)發(fā)所需的各種技術(shù)手段理解、掌握和運(yùn)用3/84理解什么是軟件工程為什么需要軟件工程(產(chǎn)生背景)軟件工程需要解決那些問(wèn)題軟件工程涉及那些方面內(nèi)容4/84掌握軟件工程概念技術(shù)過(guò)程手段工具5/84運(yùn)用運(yùn)用工程化思想進(jìn)行軟件開(kāi)發(fā)需求分析軟件設(shè)計(jì)程序設(shè)計(jì)軟件維護(hù)6/84先導(dǎo)要求程序設(shè)計(jì)語(yǔ)言最好有一定的軟件開(kāi)發(fā)經(jīng)驗(yàn)7/84學(xué)習(xí)要求聽(tīng)理解知識(shí)點(diǎn)和思想無(wú)需死記硬背做實(shí)踐體會(huì)軟件工程的原則、方法和技術(shù),在實(shí)踐中提高培養(yǎng)抽象思維能力培養(yǎng)獨(dú)立解決問(wèn)題的能力培養(yǎng)合作精神想閱讀相關(guān)資料8/84考核方式考試(60%)課程設(shè)計(jì)(30%)考勤(10%)9/84課程設(shè)計(jì)(1/2)內(nèi)容選擇一個(gè)項(xiàng)目開(kāi)發(fā)課題,用軟件工程的思想知道其開(kāi)發(fā)過(guò)程。完成需求分析,詳細(xì)設(shè)計(jì),測(cè)試,項(xiàng)目匯報(bào)。分組以小組為單位,6—8人一組為宜時(shí)間平時(shí)可以分組著手準(zhǔn)備和進(jìn)行,期末考試前要交,具體時(shí)間待定10/84課程實(shí)習(xí)要求(2/2)提交內(nèi)容課程設(shè)計(jì)紙質(zhì)文檔,裝入文件袋評(píng)價(jià)方法文檔:完整性、合理性、規(guī)范性11/84教材和課件教材薛繼偉高等學(xué)?!笆濉币?guī)劃教材?計(jì)算機(jī)軟件工程系列:軟件工程導(dǎo)論,第1版哈爾濱工業(yè)大學(xué)出版社課件下載公共郵箱(還未申請(qǐng))12/84參考文獻(xiàn)軟件工程導(dǎo)論(第五版),張海藩,清華大學(xué)出版社軟件工程實(shí)踐導(dǎo)論--有關(guān)方法、設(shè)計(jì)、實(shí)現(xiàn)、管理之三十六計(jì),金尊和,清華大學(xué)出版社,2005.軟件開(kāi)發(fā)的科學(xué)與藝術(shù),微軟亞洲研究院,電子工業(yè)出版社,2002
年
軟件工程-實(shí)踐者的研究方法,RS.Pressman,機(jī)械工業(yè)出版社現(xiàn)代軟件工程,周之英編著,科學(xué)出版社13/84參考書籍14/84第1章軟件工程概述軟件工程產(chǎn)生的背景(軟件危機(jī))軟件工程定義軟件工程方法學(xué)軟件過(guò)程模型軟件工程知識(shí)體系軟件工程師道德規(guī)范小結(jié)15/841.1軟件工程產(chǎn)生的背景軟件
a.軟件的定義軟件(
Software)是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序(Program)
,數(shù)據(jù)(Data)及其相關(guān)文檔(Document)的完整集合。Software=Program+Data+Document程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料16/84非常復(fù)雜邏輯復(fù)雜遠(yuǎn)遠(yuǎn)高于硬件的邏輯復(fù)雜度開(kāi)發(fā)復(fù)雜成本難以估算進(jìn)度難以控制人員素質(zhì)要求質(zhì)量得不到保證1.1軟件工程產(chǎn)生的背景
b、軟件的特征17/84成本高1.1軟件工程產(chǎn)生的背景
b、軟件的特征18/84風(fēng)險(xiǎn)大1995年美國(guó)Standish咨詢集團(tuán)的統(tǒng)計(jì)分析(至90年代初的軟件項(xiàng)目執(zhí)行情況)成功:16.2%失?。?1%受到挑戰(zhàn):53.8%近幾年來(lái)的統(tǒng)計(jì)數(shù)據(jù)成功:26%失?。?8%受到挑戰(zhàn):46%1.1軟件工程產(chǎn)生的背景
b、軟件的特征19/84維護(hù)困難維護(hù)形式多樣化改正性:修改故障完善性:增加功能適應(yīng)性:移植維護(hù)成本越來(lái)越高55%到70%維護(hù)帶來(lái)的問(wèn)題1.1軟件工程產(chǎn)生的背景
b、軟件的特征20/841.1軟件工程產(chǎn)生的背景c.軟件的發(fā)展早期面向批處理有限的分布自定義軟件第二階段多用戶實(shí)時(shí)數(shù)據(jù)庫(kù)軟件產(chǎn)品第三階段分布式系統(tǒng)嵌入“智能”低成本硬件消費(fèi)者的影響第四階段強(qiáng)大的桌面系統(tǒng)面向?qū)ο蠹夹g(shù)專家系統(tǒng)人工神經(jīng)網(wǎng)絡(luò)并行計(jì)算網(wǎng)路計(jì)算機(jī)1950196019701980199020001968年10月,北大西洋公約組織(NATO)的科學(xué)家在德國(guó)召開(kāi)的學(xué)術(shù)會(huì)議上正式提出了軟件危機(jī)問(wèn)題。21/84
軟件危機(jī)1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:
DO5Ⅰ=1,3
誤寫成:DO5Ⅰ=1.31967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開(kāi)降落傘而燒毀。22/84美國(guó)IBM公司在1963年至1966年開(kāi)發(fā)的IBM360機(jī)的操作系統(tǒng)。5000人-年的工作量,1000人投入,近100萬(wàn)行源程序。每次發(fā)行的新版本都是從前一版本中找1000個(gè)程序錯(cuò)誤,項(xiàng)目負(fù)責(zé)人F.D.Brook總結(jié)時(shí)說(shuō):“正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深。最后無(wú)法逃脫滅頂?shù)臑?zāi)難。”
軟件危機(jī)23/841.1軟件工程產(chǎn)生的背景2)軟件危機(jī)a、軟件危機(jī)的表現(xiàn)(1/3)
成本高IBM360OS,5000多人年,耗時(shí)4年(1963-1966),花費(fèi)2億多美元美國(guó)空軍:1955年軟件占總費(fèi)用(計(jì)算機(jī)系統(tǒng))的18%,70年60%,85年達(dá)到85%美國(guó)全球軍事指揮控制系統(tǒng),硬件1億美元,軟件高達(dá)7.2億美元計(jì)算機(jī)軟件和硬件費(fèi)用比24/84軟件質(zhì)量得不到保證軟件應(yīng)用面的擴(kuò)大:科學(xué)計(jì)算、軍事、航空航天、工業(yè)控制、企業(yè)管理、辦公、家庭軟件越來(lái)越多的應(yīng)用于安全攸關(guān)(safetycritical)的系統(tǒng),對(duì)軟件質(zhì)量提出更高的要求80年代歐洲亞麗安娜火箭的發(fā)射失敗,原因是軟件錯(cuò)誤美國(guó)阿托拉斯火箭的發(fā)射失敗,原因是軟件故障英國(guó)1986年開(kāi)發(fā)的辦公室信息系統(tǒng)Folios經(jīng)4年,因性能達(dá)不到要求,1989年取消日本第5代機(jī)因?yàn)檐浖?wèn)題在投入50億美元后于1993年下馬由于軟件質(zhì)量問(wèn)題導(dǎo)致失敗的軟件項(xiàng)目非常多a、軟件危機(jī)的表現(xiàn)(2/3)25/84a、軟件危機(jī)的表現(xiàn)(3/3)進(jìn)度難以控制項(xiàng)目延期比比皆是由于進(jìn)度問(wèn)題而取消的軟件項(xiàng)目較常見(jiàn)只有一小部分的項(xiàng)目能夠按期完成維護(hù)非常困難軟件維護(hù)的多樣性軟件維護(hù)的復(fù)雜性軟件維護(hù)的副作用26/84軟件危機(jī)主要有以下表現(xiàn):對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確。開(kāi)發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定計(jì)劃一再拖延的現(xiàn)象并不罕見(jiàn)。用戶對(duì)“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。Bug一大堆,Patch一個(gè)接一個(gè)。軟件的可維護(hù)程度非常之低。軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。軟件的成本不斷提高。軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長(zhǎng)。27/84b、產(chǎn)生軟件危機(jī)的原因與軟件本身的特點(diǎn)有關(guān)(難于維護(hù),邏輯復(fù)雜)與軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān):軟件≠程序急于求成=拔苗助長(zhǎng)各自為陣無(wú)方法/學(xué)28/84引入同一變化付出的代價(jià)隨時(shí)間變化的趨勢(shì)29/84消除軟件危機(jī)的途徑對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)
(軟件≠程序)必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。非個(gè)人英雄主義推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功技術(shù)和方法。開(kāi)發(fā)和使用更好的軟件工具。30/84開(kāi)發(fā)一個(gè)具有一定規(guī)模和復(fù)雜性的軟件系統(tǒng)與編寫一個(gè)簡(jiǎn)單的程序不一樣正如建設(shè)狗窩和高樓大廈大型、復(fù)雜軟件系統(tǒng)的開(kāi)發(fā)是一項(xiàng)工程,必須按照工程化的方法組織軟件的生產(chǎn)和管理,必須經(jīng)過(guò)分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)等一系列軟件過(guò)程和活動(dòng)C、軟件工程(學(xué))因危機(jī)而產(chǎn)生31/84軟件工程工程工程是對(duì)技術(shù)(或社會(huì))實(shí)體的分析、設(shè)計(jì)、建造、驗(yàn)證和管理。……水利工程建筑工程機(jī)械工程軟件工程傳統(tǒng)工程新興工程氣象工程生物工程32/84軟件工程----SoftwareEngineering于1968年NATO組織在德國(guó)召開(kāi)的一次會(huì)議上提出是把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求“采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開(kāi)發(fā)和維護(hù)”。33/84圍棋與軟件工程的感想圍棋圍棋棋譜拿過(guò)來(lái)的時(shí)候,大師問(wèn)“后面應(yīng)該走哪里?”十個(gè)初級(jí)愛(ài)好者選擇的落點(diǎn)散布在棋盤各處……
十個(gè)職業(yè)棋手說(shuō)的落子點(diǎn)都差不多,甚至包括后面的幾步……
這就是高手和低手的差別……軟件工程當(dāng)一個(gè)小程序拿過(guò)來(lái)的時(shí)候,項(xiàng)目經(jīng)理讓大家編寫……
十個(gè)中國(guó)軟件工程師寫出來(lái)的程序各有“特色”、千差萬(wàn)別,十個(gè)印度軟件工程師寫出來(lái)的程序差不多,以至于懷疑是“抄襲”。項(xiàng)目經(jīng)理也不清楚中國(guó)軟件業(yè)和印度軟件業(yè)的差距是多少年只是覺(jué)得差了好遠(yuǎn)好遠(yuǎn)……34/84d、軟件工程(學(xué)):克服軟件危機(jī)的努力
(1)從管理的角度
軟件開(kāi)發(fā)過(guò)程的研究、文檔的標(biāo)準(zhǔn)化以及人們
的交流方式等(2)軟件開(kāi)發(fā)方法的研究
結(jié)構(gòu)化軟件開(kāi)發(fā)方法,面向?qū)ο蟮拈_(kāi)發(fā)35/84提出有效的方法和工具支持軟件開(kāi)發(fā)1968年提出軟件工程概念和思想20世紀(jì)70年代的結(jié)構(gòu)化軟件開(kāi)發(fā)方法20世紀(jì)80年代的面向?qū)ο蟮能浖_(kāi)發(fā)方法新的技術(shù):軟件重用、快速原型、需求工程典型技術(shù):COM,Java,C++,J2EE,.Net,….支撐工具和環(huán)境:Jbuilder,VisualStudio,WebLogic,…1、解決危機(jī)的技術(shù)途徑36/8420世紀(jì)80年代末,美國(guó)國(guó)防部DoD和工業(yè)界開(kāi)始認(rèn)識(shí)到管理的重要性美國(guó)DoD的一項(xiàng)研究表明,70%的項(xiàng)目由于管理不善導(dǎo)致難以控制進(jìn)步、成本和質(zhì)量;進(jìn)一步的研究發(fā)現(xiàn):管理是影響軟件項(xiàng)目成功開(kāi)發(fā)的全局性因素,而技術(shù)只影響局部如果軟件開(kāi)發(fā)組織不能對(duì)軟件項(xiàng)目進(jìn)行有效管理,就不能充分發(fā)揮軟件開(kāi)發(fā)方法和工具的潛力,也就不能高效率地開(kāi)發(fā)出高質(zhì)量的軟件產(chǎn)品2、解決危機(jī)的管理途徑37/841.2軟件工程定義(1)Theestablishmentanduseofsoundengineeringprinciples(methods)inordertoobtaineconomicallysoftwarethatisreliableandworksonrealmachines.(1968-FritzBauer)
軟件工程就是建立和使用一套合理的工程原理,從而經(jīng)濟(jì)地獲得可靠的、可以在實(shí)際機(jī)器上高效運(yùn)行的軟件。38/841.2軟件工程定義(2)Softwareengineering.(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).(IEEE(TheInstituteforElectricalandElectronicengineers)Std610-1990.)
軟件工程是:(1)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件;(2)研究(1)中提到的途徑。39/841.2軟件工程定義(3)
Engineeringisthe
systematicapplicationofscientificknowledge
increatingandbuildingcost-effectivesolutionstopracticalproblemsintheserviceofmankind.
Softwareengineeringisthat
formofengineering
thatappliestheprinciplesofcomputerscienceandmathematics
toachievingcost-effectivesolutionstosoftwareproblems.SEIsoftwareengineeringdefinitionfrom1990SEIReportonUndergraduateSoftwareEngineeringEducation(卡耐基梅隆大學(xué)在本科生軟件工程教育的報(bào)告):40/841.2軟件工程定義總之:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開(kāi)發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。41/84軟件工程是一門交叉學(xué)科軟件工程的主要研究?jī)?nèi)容軟件開(kāi)發(fā)技術(shù):軟件開(kāi)發(fā)方法學(xué)軟件開(kāi)發(fā)過(guò)程軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件心理學(xué)42/84軟件工程與一般工程的差異軟件是邏輯產(chǎn)品而不是實(shí)物產(chǎn)品軟件的功能依賴于硬件和軟件的運(yùn)行環(huán)境以及人們對(duì)它的操作軟件設(shè)計(jì)的復(fù)雜性軟件特征:功能的多樣性實(shí)現(xiàn)的多樣性能見(jiàn)度低軟件結(jié)構(gòu)合理性差智力密集及知識(shí)產(chǎn)權(quán)保護(hù)43/84軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。在軟件工程領(lǐng)域中,這兩個(gè)術(shù)語(yǔ)的含義基本相同。軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過(guò)程。1.3軟件工程方法學(xué)44/841.3軟件工程方法學(xué)軟件工程:一種層次化技術(shù)質(zhì)量關(guān)注點(diǎn)過(guò)程方法工具
軟件工程層次圖軟件工程三個(gè)要素:工具、方法、過(guò)程基礎(chǔ)層,綜合方法及工具,定義方法使用的順序,所需要的管理為軟件開(kāi)發(fā)提供“如何做”的技術(shù)為軟件開(kāi)發(fā)提供自動(dòng)或半自動(dòng)的軟件支撐環(huán)境,建立計(jì)算機(jī)輔助軟件工程(CASE)的軟件開(kāi)發(fā)支撐系統(tǒng)45/841.4軟件生命周期模型問(wèn)題定義軟件定義可行性研究
需求分析
總體設(shè)計(jì)詳細(xì)設(shè)計(jì)軟件生命周期軟件開(kāi)發(fā)編碼單元測(cè)試綜合測(cè)試運(yùn)行維護(hù)
持久滿足用戶需求46/841.4軟件過(guò)程模型軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。AprocessdefinesWhoisdoingWhat,When,andHow,inordertoreachacertaingoal.公共過(guò)程框架輔助活動(dòng)任務(wù)集合軟件過(guò)程47/841.4軟件過(guò)程模型
軟件生命周期的每一階段都有明確的任務(wù),把規(guī)模大、結(jié)構(gòu)復(fù)雜、管理復(fù)雜的軟件開(kāi)發(fā)變得容易控制和管理。各個(gè)階段的活動(dòng)如何銜接,開(kāi)發(fā)過(guò)程中采用什么樣的策略,應(yīng)遵守什么樣的規(guī)定和制約,將這些活動(dòng)框架(忽略不必要的細(xì)節(jié))用一種模型表示出來(lái),稱為軟件過(guò)程模型(或軟件開(kāi)發(fā)模型或軟件生命周期模型)。
也就是說(shuō),
軟件過(guò)程模型是軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。48/841.4軟件過(guò)程模型(1)瀑布模型(WaterfallModel)
傳統(tǒng)瀑布模型瀑布模型也稱為線性順序模型,在20世紀(jì)80年代以前,瀑布模型一直是唯一被廣泛采用的生命周期模型49/841.4軟件過(guò)程模型傳統(tǒng)瀑布模型的特點(diǎn)提供了軟件過(guò)程模型的基本框架(模板)。強(qiáng)調(diào)了每一階段活動(dòng)的嚴(yán)格順序。質(zhì)量保證觀點(diǎn):以經(jīng)過(guò)評(píng)審確認(rèn)了的階段工作產(chǎn)品(文檔)驅(qū)動(dòng)下一階段的工作,便于管理。是一種整體開(kāi)發(fā)模型,程序的物理實(shí)現(xiàn)集中在開(kāi)發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。
傳統(tǒng)瀑布模型存在什么問(wèn)題?50/841.階段間具有順序性和依賴性。2.推遲實(shí)現(xiàn)的觀點(diǎn)。3.傳統(tǒng)的瀑布模型過(guò)于理想化。事實(shí)上,人在工作過(guò)程中不可能不犯錯(cuò)誤。在設(shè)計(jì)階段可能發(fā)生規(guī)格說(shuō)明文檔中的錯(cuò)誤。而設(shè)計(jì)上的缺陷或錯(cuò)誤可能在實(shí)現(xiàn)過(guò)程中顯現(xiàn)出來(lái)。在綜合測(cè)試階段將發(fā)現(xiàn)需求分析、設(shè)計(jì)或編碼階段的許多錯(cuò)誤傳統(tǒng)化(理想化)瀑布模型的缺點(diǎn)51/841.4軟件過(guò)程模型實(shí)際的瀑布模型52/841.4軟件過(guò)程模型瀑布模型適合于用戶需求明確、完整、無(wú)重大變化的軟件項(xiàng)目開(kāi)發(fā)。瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型??蓮?qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證“瀑布模型是由文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;用戶常常難以清楚地給出所有需求;用戶必須有耐心,等到系統(tǒng)開(kāi)發(fā)完成。
瀑布模型的優(yōu)缺點(diǎn)53/841.4軟件過(guò)程模型(2)原型模型—快速原型模型(RapidPrototypeModel)在用戶不能給出完整、準(zhǔn)確的需求說(shuō)明,或者開(kāi)發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開(kāi)發(fā)者對(duì)將要做的事情有更好的理解。建造/修改原型
聽(tīng)取用戶意見(jiàn)用戶測(cè)試運(yùn)行原型原型實(shí)現(xiàn)范型54/841.4軟件過(guò)程模型快速原型驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證維護(hù)過(guò)程開(kāi)發(fā)過(guò)程55/841.4軟件過(guò)程模型原型模型存在的問(wèn)題
⑴為了使原型盡快的工作,沒(méi)有考慮軟件的總體質(zhì)量和長(zhǎng)期的可維護(hù)性。
⑵為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。
⑶開(kāi)發(fā)過(guò)程不便于管理。有效的使用原型模式建造原型僅是為了定義需求,之后就被拋棄(或被部分拋棄),實(shí)際的軟件在充分考慮了質(zhì)量和可維護(hù)性之后才被開(kāi)發(fā)。56/841.4軟件過(guò)程模型(3)增量模型(IncrementalModel)是一種漸進(jìn)地開(kāi)發(fā)逐步完善的軟件版本的模型。需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證維護(hù)針對(duì)每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶57/841.4軟件過(guò)程模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼編碼編碼測(cè)試測(cè)試測(cè)試測(cè)試增量1增量2增量3增量4交付交付交付交付●●●●●
?
反復(fù)的應(yīng)用瀑布模型的基本成分和原型模型的迭代特征,每一個(gè)線型過(guò)程產(chǎn)生一個(gè)“增量”的發(fā)布或提交,該增量均是一個(gè)可運(yùn)行的產(chǎn)品。
?
早期的版本實(shí)現(xiàn)用戶的基本需求,并提供給用戶評(píng)估的平臺(tái)。增量模型58/841.4軟件過(guò)程模型在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,并分批、逐步地向用戶提交產(chǎn)品。從第一個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件,開(kāi)發(fā)人員可以一個(gè)構(gòu)件一個(gè)構(gòu)件地逐步開(kāi)發(fā)。逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來(lái)的沖擊。采用增量模型比采用瀑布模型和快速原型模型需要更精心的設(shè)計(jì),但在設(shè)計(jì)階段多付出的勞動(dòng)將在維護(hù)階段獲得回報(bào)。增量模型的優(yōu)點(diǎn)59/841.4軟件過(guò)程模型增量模型的困難在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便,也就是說(shuō),軟件體系結(jié)構(gòu)必須是開(kāi)放的。開(kāi)發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨(dú)立的構(gòu)件,相互矛盾。多個(gè)構(gòu)件并行開(kāi)發(fā),具有無(wú)法集成的風(fēng)險(xiǎn)。60/84增量模型適用的情況客戶能夠接受分階段交付工期緊且可分階段提交或者對(duì)目標(biāo)、環(huán)境不熟悉用戶可參與到整個(gè)軟件開(kāi)發(fā)過(guò)程中軟件開(kāi)發(fā)組織自己應(yīng)該擁有較好的類庫(kù)、構(gòu)件庫(kù)軟件企業(yè)開(kāi)發(fā)大型項(xiàng)目時(shí),一般還是采用增量模型,因?yàn)榭梢愿鶕?jù)輕重緩急,逐個(gè)實(shí)現(xiàn)子系統(tǒng)61/84增量模型與瀑布模型、快速原型模型區(qū)別:瀑布模型、快速原型模型:一次性地把一個(gè)滿足所有需求的產(chǎn)品交付給用戶增量模型:分批交付VS62/841.4軟件過(guò)程模型(4)螺旋模型(SpiralModel)
軟件風(fēng)險(xiǎn)是任何軟件開(kāi)發(fā)項(xiàng)目中都普遍存在的實(shí)際問(wèn)題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大?!a(chǎn)品交付給用戶后用戶可能不滿意;——到了預(yù)定的交付日期軟件可能還未開(kāi)發(fā)出來(lái);——實(shí)際的開(kāi)發(fā)成本可能超過(guò)預(yù)算;——產(chǎn)品完成前一些關(guān)鍵的開(kāi)發(fā)人員“跳槽”了;——產(chǎn)品投入市場(chǎng)之前競(jìng)爭(zhēng)對(duì)手發(fā)布了一個(gè)功能相近、價(jià)格更低的軟件等。63/841.4軟件過(guò)程模型(4)螺旋模型(SpiralModel)
對(duì)于復(fù)雜的大型軟件,開(kāi)發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來(lái),加入了風(fēng)險(xiǎn)分析。在該模型中,軟件開(kāi)發(fā)是一系列的增量發(fā)布,早期的迭代中,發(fā)布的增量可能是一個(gè)紙上的模型或原型,在以后的迭代中,逐步產(chǎn)生系統(tǒng)更加完善的版本。螺旋模型的基本思想是降低風(fēng)險(xiǎn)。64/841.4軟件過(guò)程模型快速原型驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析可看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。簡(jiǎn)化的螺旋模型65/84
66/84每一次迭代都包含以下步驟:
1.決定目標(biāo)、替代方案和約束2.識(shí)別和解決項(xiàng)目的風(fēng)險(xiǎn)3.評(píng)估技術(shù)方案和替代解決方案4.開(kāi)發(fā)本次迭代的交付物和驗(yàn)證迭代產(chǎn)出的正確性5.計(jì)劃下一次迭代6.提交下一次迭代的步驟和方案67/841.4軟件過(guò)程模型螺旋模型的優(yōu)點(diǎn)對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo);減少了過(guò)多測(cè)試(浪費(fèi)資金)或測(cè)試不足(產(chǎn)品故障多)所帶來(lái)的風(fēng)險(xiǎn);更重要的是,在螺旋模型中維護(hù)只是模型的另一個(gè)周期,在維護(hù)和開(kāi)發(fā)之間并沒(méi)有本質(zhì)區(qū)別68/84螺旋模型的缺點(diǎn)風(fēng)險(xiǎn)驅(qū)動(dòng),需要相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),否則風(fēng)險(xiǎn)更大要求用戶參與階段評(píng)估過(guò)多的迭代次數(shù)增加了開(kāi)發(fā)成本,延遲了提交時(shí)間69/84螺旋模型適用的情況內(nèi)部開(kāi)發(fā)的大規(guī)模軟件項(xiàng)目:方便中止但是如果風(fēng)險(xiǎn)分析費(fèi)用接近整個(gè)項(xiàng)目的預(yù)算,則風(fēng)險(xiǎn)分析是不可行的不確定因素很多,很多東西開(kāi)始無(wú)法計(jì)劃的情況70/841.4軟件過(guò)程模型(5)噴泉模型(FountainModel)特點(diǎn):主要用于支持面向?qū)ο箝_(kāi)發(fā)過(guò)程,體現(xiàn)了面向?qū)ο蠓椒ㄋ逃械牡蜔o(wú)間隙的特征71/84認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上周期的各階段是相互迭代和無(wú)間隙的特性。軟件的某個(gè)部分常常被重復(fù)工作多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。無(wú)間隙指在各項(xiàng)活動(dòng)之間無(wú)明顯邊界,如分析和設(shè)計(jì)活動(dòng)之間沒(méi)有明顯的界限
72/84噴泉模型的特點(diǎn)規(guī)定了五個(gè)階段:分析、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和演化高層到底層無(wú)資源消耗資源消耗呈塔狀,在分析階段消耗最多資源各階段的重疊反映了軟件過(guò)程的并行性增量開(kāi)發(fā),是迭代的逐步提煉的過(guò)程73/84四種模型的總結(jié):瀑布模型歷史悠久、廣為人知,它的優(yōu)勢(shì)在于它是規(guī)范的、文檔驅(qū)動(dòng)的方法;這種模型的問(wèn)題是,最終開(kāi)發(fā)出的軟件產(chǎn)品可能并不是用戶真正需要的??焖僭湍P驼菫榱丝朔俨寄P偷娜秉c(diǎn)而提出來(lái)的。它通過(guò)快速構(gòu)建起一個(gè)可在計(jì)算機(jī)上運(yùn)行的原型系統(tǒng),讓用戶試用原型并收集用戶反饋意見(jiàn)的辦法,獲取用戶的真實(shí)需求。增量模型具有可在軟件開(kāi)發(fā)的早期階段使投資獲得明顯回報(bào)和較易維護(hù)的優(yōu)點(diǎn),但是,要求軟件具有開(kāi)放的結(jié)構(gòu)是使用這種模型時(shí)固有的困難。風(fēng)險(xiǎn)驅(qū)動(dòng)的螺旋模型適用于內(nèi)部開(kāi)發(fā)的大型軟件項(xiàng)目,但是,只有在開(kāi)發(fā)人員具有風(fēng)險(xiǎn)分析和排除風(fēng)險(xiǎn)的經(jīng)驗(yàn)及專門知識(shí)時(shí),使用這種模型才會(huì)獲得成功。741.4軟件過(guò)程模型(6)可重用部件組裝模型(構(gòu)件集成模型)
(ComponentIntegrationModel)
構(gòu)件(components)也稱為組件,是一段實(shí)現(xiàn)一系列有確定接口的程序體,具有自己的功能和邏輯,能同其他構(gòu)件集成起來(lái)協(xié)調(diào)工作。該模型支持軟件重用(Reusability)
,對(duì)縮短軟件開(kāi)發(fā)周期、降低項(xiàng)目成本有重要的現(xiàn)實(shí)意義。構(gòu)件集成模型如下圖所示:75/84
構(gòu)件集成模型軟件體系結(jié)構(gòu)被建立后,必須用構(gòu)件去充實(shí),這些構(gòu)件可從復(fù)用庫(kù)中獲得,或者根據(jù)專門需要而開(kāi)發(fā)。76/84軟件工程知識(shí)體系指南(2004版)
GuidetotheSoftwareEngineeringBodyofKnowledge2004Version
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 各種引流液相關(guān)顏色知識(shí)
- 專業(yè)物流企業(yè)運(yùn)輸服務(wù)協(xié)議2024年版版B版
- 二零二五年房地產(chǎn)行業(yè)勞動(dòng)關(guān)系優(yōu)化與勞動(dòng)合同保障合同3篇
- 二零二五年度企業(yè)財(cái)務(wù)共享中心信息安全保障合同3篇
- 2025年度體育設(shè)施租賃服務(wù)合同模板3篇
- 二零二五年度卷簾門電機(jī)智能控制系統(tǒng)研發(fā)合同3篇
- 保健品購(gòu)銷合同范本集合
- 標(biāo)準(zhǔn)期房房屋買賣合同
- 幼兒園數(shù)學(xué)活動(dòng)小幫手
- 2025至2030年中國(guó)表面調(diào)理劑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 眼科優(yōu)勢(shì)病種中醫(yī)診療方案
- 統(tǒng)編版六年級(jí)語(yǔ)文上冊(cè)專項(xiàng) 專題11文言文閱讀-原卷版+解析
- 高中數(shù)學(xué)聯(lián)賽歷年真題分類匯編解析(高分強(qiáng)基必刷)
- 高中數(shù)學(xué)筆記總結(jié)高一至高三很全
- 011(1)-《社會(huì)保險(xiǎn)人員減員申報(bào)表》
- 2024年工程部工作總結(jié)與計(jì)劃
- 電廠C級(jí)檢修工藝流程
- 刑事案件律師會(huì)見(jiàn)筆錄
- 金屬的拉伸實(shí)驗(yàn)(實(shí)驗(yàn)報(bào)告)
- 鍋爐定期檢驗(yàn)
- 普通話課件(完整版)
評(píng)論
0/150
提交評(píng)論