




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 軟件開發(fā)模型老式開發(fā)模型瀑布模型快速原型模型演化開發(fā)模型增量模型螺旋模型面向?qū)ο箝_發(fā)模型噴泉模型構(gòu)件集成模型形式化開發(fā)模型轉(zhuǎn)換模型凈室模型第1頁第1頁2.1 軟件生存周期引言生存周期:工業(yè)產(chǎn)品、軟件、人生命計(jì)劃時(shí)期問題定義系統(tǒng)處理什么問題、目的、范圍可行性分析理解用戶要求及觀測(cè)環(huán)境、搜集資料、數(shù)據(jù)流程、技術(shù)、經(jīng)濟(jì)、操作可行性、組織、人力、物力、效益開發(fā)時(shí)期需求分析弄清用戶所有需求,用“需求規(guī)格闡明書”準(zhǔn)確地表示出來;建立系統(tǒng)目的邏輯模型即“做什么”軟件設(shè)計(jì)分為總體設(shè)計(jì)與詳細(xì)設(shè)計(jì),產(chǎn)生軟件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、用戶界面和算法;建立系統(tǒng)物理模型即“怎么做”編碼實(shí)現(xiàn)用戶界面,將詳細(xì)設(shè)計(jì)“翻譯”組員
2、程序代碼測(cè)試單元、組裝(綜合)、確認(rèn)、系統(tǒng);白盒、黑盒運(yùn)營時(shí)期軟件維護(hù)正確性、適應(yīng)性、完善性第2頁第2頁典型軟件生存周期問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測(cè)試運(yùn)營與維護(hù)計(jì)劃時(shí)期開發(fā)時(shí)期運(yùn)營時(shí)期第3頁第3頁技術(shù)復(fù)審和管理復(fù)審復(fù)審每階段結(jié)束前技術(shù)復(fù)審從技術(shù)角度確保質(zhì)量減少軟件成本(盡早發(fā)覺問題)管理復(fù)審成本、進(jìn)度、經(jīng)費(fèi)等第4頁第4頁技術(shù)復(fù)審和管理復(fù)審審查小組審查過程準(zhǔn)備簡(jiǎn)明簡(jiǎn)介情況閱讀被審文檔開審查會(huì)返工復(fù)查第5頁第5頁2.2 老式軟件開發(fā)模型 1.瀑布模型 瀑布模型是將軟件生存周期各活動(dòng)要求為依線性順序聯(lián)接若干階段模型。它包括可行性分析、項(xiàng)目開發(fā)計(jì)劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試
3、和維護(hù)。它要求了由前至后、互相銜接固定順序,如同瀑布流水,逐層下落。第6頁第6頁瀑布模型問題定義編 碼需求分析設(shè) 計(jì)可行性研究運(yùn)營與維護(hù)測(cè) 試開發(fā)時(shí)期運(yùn)營時(shí)期計(jì)劃時(shí)期(目的與范圍闡明書)(可行性論證論告)(測(cè)試匯報(bào))(程序)(設(shè)計(jì)文檔)(需求闡明書)圖2.2.0 瀑布模型生存周期(運(yùn)營日記,維護(hù)匯報(bào))第7頁第7頁瀑布模型特點(diǎn)階段順序性和依賴性推遲實(shí)現(xiàn)觀點(diǎn)質(zhì)量確保存在問題不適合需求模糊系統(tǒng)第8頁第8頁瀑布模型開發(fā)過程 在實(shí)際開發(fā)過程中,為了確保軟件產(chǎn)品質(zhì)量,每個(gè)階段完畢之后,要對(duì)其階段工作和結(jié)果做出客觀評(píng)價(jià),如發(fā)覺問題,就應(yīng)停止邁進(jìn),沿著所經(jīng)歷階段返回,就構(gòu)成了圖中所表示階段間向上流線。(帶“反
4、饋環(huán)”) 第9頁第9頁瀑布模型各個(gè)階段任務(wù)與文檔 在各個(gè)階段之間工作轉(zhuǎn)換是經(jīng)過各階段不同文檔資料來完成,而各個(gè)階段任務(wù)則由一系列工程化方法和工具來實(shí)現(xiàn)。其中系統(tǒng)分析和系統(tǒng)設(shè)計(jì)是系統(tǒng)生命周期中最主要兩個(gè)階段,它們是系統(tǒng)開發(fā)關(guān)鍵內(nèi)容,開發(fā)難度較大,需要使用有效方法和工具,在系統(tǒng)分析階段慣用技術(shù)有結(jié)構(gòu)化系統(tǒng)分析方法(SA)、結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法(SD),在系統(tǒng)分析階段對(duì)應(yīng)軟件工含有信息關(guān)聯(lián)圖(IRD),管理業(yè)務(wù)流程圖(TFD),數(shù)據(jù)流程圖(DFD),數(shù)據(jù)詞典(DD),實(shí)體關(guān)系圖(E-R)等等。在系統(tǒng)設(shè)計(jì)階段軟件工含有系統(tǒng)模塊結(jié)構(gòu)圖,Jackson設(shè)計(jì)方法。在程序設(shè)計(jì)階段用結(jié)構(gòu)化程序設(shè)計(jì)方法(SP)。
5、第10頁第10頁瀑布模型各個(gè)階段任務(wù)與文檔 瀑布模型法明確要求了每個(gè)階段任務(wù)。上一階段完成確定任務(wù)后就產(chǎn)生一定格式文檔交給下一階段。不同階段任務(wù)普通由不同級(jí)別軟件人員來承擔(dān)。 瀑布模型法適合于在軟件需求比較明確、開發(fā)技術(shù)比較成熟、工程管理比較嚴(yán)格場(chǎng)合下使用。 比如工資管理、會(huì)計(jì)系統(tǒng)軟件需求比較明確,就適合于使用瀑布模型法進(jìn)行開發(fā)。 第11頁第11頁瀑布模型各個(gè)階段任務(wù)與文檔 軟件簡(jiǎn)明定義: 軟件=程序+數(shù)據(jù)+文檔 按照軟件工程學(xué)要求,在軟件生命期每一階段,都有明確任務(wù),并產(chǎn)生相應(yīng)文檔,作為下階段工作基礎(chǔ)和依據(jù)。采用瀑布模型進(jìn)行軟件開發(fā)時(shí),各階段主要任務(wù)及文檔下列: 1.可行性研究與計(jì)劃 就是調(diào)
6、查理解用戶要求及觀測(cè)環(huán)境,包括公司管理現(xiàn)實(shí)狀況和人、財(cái)、物使用情況,公司內(nèi)部分工及內(nèi)部業(yè)務(wù)往來等。 掌握既有系統(tǒng)數(shù)據(jù)處理流程和辦法,包括各部門人員分工,當(dāng)前存在問題及微弱環(huán)節(jié),業(yè)務(wù)處理流程搜集系統(tǒng)相關(guān)賬、證、表、卡、文獻(xiàn)、資料等信息。第12頁第12頁瀑布模型各個(gè)階段任務(wù)與文檔 1.可行性研究與計(jì)劃 從技術(shù)上,經(jīng)濟(jì)上,操作可行性上和其它方面(如組織上、人員上)去研究擬定并論證新系統(tǒng)可行性,包括公司管理工作規(guī)范性、科學(xué)性、各種信息可靠性、管理水平、相關(guān)人員對(duì)新開發(fā)系統(tǒng)設(shè)想和要求,既有些人員對(duì)計(jì)算機(jī)知識(shí)掌握程度是否足以支持新系統(tǒng)運(yùn)營,經(jīng)濟(jì)效益與管理效益初步分析等。 第13頁第13頁瀑布模型各個(gè)階段任
7、務(wù)與文檔 1.可行性研究與計(jì)劃 編寫系統(tǒng)調(diào)查匯報(bào)和可行性匯報(bào),報(bào)相關(guān)部門審批。 可行性匯報(bào),其內(nèi)容主要包括: 單位基本情況(規(guī)模、人員、機(jī)構(gòu)); 系統(tǒng)初步方案; 開發(fā)新系統(tǒng)必要性; 技術(shù)可行性; 操作可行性; 經(jīng)濟(jì)可行性; 結(jié)論或提議。 第14頁第14頁瀑布模型各個(gè)階段任務(wù)與文檔 值得注意是,首先必須有由單位領(lǐng)導(dǎo)簽發(fā)系統(tǒng)開發(fā)任務(wù)書,任務(wù)書內(nèi)容應(yīng)簡(jiǎn)練明了、全面完整而詳細(xì),以作為系統(tǒng)需求分析和開發(fā)工作依據(jù)。 可行性研究匯報(bào)同意之后,便可著手進(jìn)行軟件計(jì)劃工作。對(duì)軟件作用范圍、工作環(huán)境和基本功效、特性加以研究,擬定要做什么,不要做什么,做到什么程序。同時(shí),估算出所需資金、工作量、費(fèi)用和進(jìn)度。編制系統(tǒng)開
8、發(fā)初步進(jìn)度計(jì)劃表。 第15頁第15頁瀑布模型各個(gè)階段任務(wù)與文檔 2. 系統(tǒng)(需求)分析 研究既有系統(tǒng)數(shù)據(jù)處理流程,去粗取精,去偽存真,把握既有系統(tǒng)數(shù)據(jù)處理流程中本質(zhì)要素,改進(jìn)其中不合理部分,增長用戶需要新功效,并以計(jì)算機(jī)為基礎(chǔ),擬定出新系統(tǒng)功效界面,建立新系統(tǒng)邏輯模型(即數(shù)據(jù)流圖、數(shù)據(jù)詞典、加工闡明、控制闡明等),編制出能反應(yīng)新系統(tǒng)功效、特點(diǎn),運(yùn)營環(huán)境和測(cè)試確認(rèn)準(zhǔn)則軟件需求闡明書(或稱系統(tǒng)分析闡明書),報(bào)相關(guān)部門審批。 第16頁第16頁瀑布模型各個(gè)階段任務(wù)與文檔 3.系統(tǒng)(軟件)設(shè)計(jì)(1) 系統(tǒng)設(shè)計(jì)包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩部分。 概要設(shè)計(jì)又叫總體設(shè)計(jì),它在系統(tǒng)分析闡明書基礎(chǔ)上,建立起包括模塊結(jié)
9、構(gòu)和數(shù)據(jù)結(jié)構(gòu)在內(nèi)軟件系統(tǒng)結(jié)構(gòu),并完畢各模塊功效和相應(yīng)之間接口關(guān)系。它以交付包括總體結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)概要設(shè)計(jì)闡明書為完畢標(biāo)志。 第17頁第17頁瀑布模型各個(gè)階段任務(wù)與文檔 3.系統(tǒng)(軟件)設(shè)計(jì)(2) 詳細(xì)設(shè)計(jì)是對(duì)概要設(shè)計(jì)所劃分模塊進(jìn)一步細(xì)化,它詳細(xì)描述每一模塊功效和實(shí)現(xiàn)該功效程序,完畢所用到程序?qū)崿F(xiàn)辦法和內(nèi)部數(shù)據(jù)結(jié)構(gòu)等。并擬定模塊間詳細(xì)接口。設(shè)計(jì)完畢后,應(yīng)提交詳細(xì)設(shè)計(jì)闡明書。 模塊表示能夠用計(jì)算機(jī)程序代碼實(shí)現(xiàn),相對(duì)獨(dú)立單一數(shù)據(jù)處理功效,因此模塊有時(shí)也叫功效模塊。 第18頁第18頁瀑布模型各個(gè)階段任務(wù)與文檔 系統(tǒng)調(diào)查、系統(tǒng)分析與系統(tǒng)設(shè)計(jì)主要區(qū)別在于:系統(tǒng)調(diào)查得出是舊系統(tǒng)邏輯模型;系統(tǒng)分析將舊系
10、統(tǒng)邏輯模型轉(zhuǎn)換成新系統(tǒng)目的邏輯模型;系統(tǒng)設(shè)計(jì)得到則是新系統(tǒng)物理模型(即處理如何用計(jì)算機(jī)實(shí)現(xiàn)邏輯模型所有功效)。 第19頁第19頁瀑布模型各個(gè)階段任務(wù)與文檔 舊系統(tǒng)邏輯模型是手工方式真實(shí)寫照。新系統(tǒng)目的邏輯模型主要用來要求未來新系統(tǒng)應(yīng)具備哪些功效,新系統(tǒng)信息流程等,反應(yīng)了新系統(tǒng)需要做什么,但不反應(yīng)如何做。物理模型則著重于描述在技術(shù)上如何實(shí)現(xiàn)這些功效,采用哪些技術(shù)辦法,處理如何做問題。比如,在調(diào)查階段,我們碰到報(bào)表搜集和輸入問題,這只需要理解報(bào)表種類、作用、各種報(bào)表所包括數(shù)據(jù)項(xiàng),沒有必要考慮、報(bào)表輸入格式、輸入方式、輸入內(nèi)容、輸入正確性控制等問題。這些問題將在系統(tǒng)分析、系統(tǒng)設(shè)計(jì)階段來完畢。第20頁
11、第20頁瀑布模型各個(gè)階段任務(wù)與文檔 4. 程序設(shè)計(jì)(編碼) 程序設(shè)計(jì)是按照詳細(xì)設(shè)計(jì)闡明書要求,用程序設(shè)計(jì)語言或數(shù)據(jù)庫語言為每個(gè)模塊編制計(jì)算機(jī)可運(yùn)營源程序,并且對(duì)單個(gè)模塊進(jìn)行測(cè)試,驗(yàn)證模塊功效、模塊接口與設(shè)計(jì)闡明書一致性。最后提交源程序清單及程序設(shè)計(jì)闡明書。 第21頁第21頁瀑布模型各個(gè)階段任務(wù)與文檔 5.系統(tǒng)測(cè)試 通過測(cè)試,發(fā)覺隱藏在程序內(nèi)部各種錯(cuò)誤。測(cè)試包括單元測(cè)試,組裝(綜合)測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。單元測(cè)試是驗(yàn)證單個(gè)模塊正確性,組裝測(cè)試是將通過模塊測(cè)試各個(gè)模塊進(jìn)行裝配并測(cè)試,從而形成一個(gè)完整系統(tǒng)。確認(rèn)測(cè)試是驗(yàn)證所開發(fā)系統(tǒng)是否符合系統(tǒng)分析中擬定所有功效和性能要求。系統(tǒng)測(cè)試完畢,提交文檔應(yīng)
12、包括測(cè)試匯報(bào),用戶操作手冊(cè)等,經(jīng)相關(guān)部門評(píng)審確認(rèn)后,便結(jié)束了軟件開發(fā)工作,軟件可作為一個(gè)產(chǎn)品投入運(yùn)營。 第22頁第22頁瀑布模型各個(gè)階段任務(wù)與文檔 6.運(yùn)營和維護(hù) (1) 當(dāng)軟件產(chǎn)品制成并交付使用后,便開始了軟件生命周期最后階段運(yùn)營和維護(hù)階段。軟件產(chǎn)品投入運(yùn)營之后。仍有必要對(duì)軟件進(jìn)行維護(hù),維護(hù)工作又分為下列兩個(gè)部分。 程序維護(hù) 正確性維護(hù):更正在開發(fā)階段產(chǎn)生,在測(cè)試階段又沒 有發(fā)覺錯(cuò)誤。 適應(yīng)性維護(hù):為適應(yīng)軟件外界環(huán)境改變引起軟 件修改。 完善性維護(hù):為擴(kuò)充軟件系統(tǒng)功效或改進(jìn)性能而進(jìn)行 修改。 第23頁第23頁瀑布模型各個(gè)階段任務(wù)與文檔 6.運(yùn)營和維護(hù)(2) 使用維護(hù) 環(huán)境維護(hù):為確保軟件產(chǎn)品
13、正常運(yùn)營而進(jìn)行維護(hù) (如主機(jī)、 打印機(jī)等)。 意外事故維護(hù):處理因發(fā)生意外事故而使數(shù)據(jù)混 亂或丟失問題而進(jìn)行維護(hù)。 計(jì)算機(jī)病毒治理和維護(hù):預(yù)防、檢測(cè),清除計(jì)算機(jī) 病毒。 運(yùn)營和維護(hù)也應(yīng)像其它開發(fā)階段同樣,提供運(yùn)營日記、軟件問題匯報(bào)、軟件修改匯報(bào)等維護(hù)文檔。 第24頁第24頁快速原型模型基本思想 在取得用戶基本需求闡明基礎(chǔ)上,投入少許人力和物力,快速建立一個(gè)原始模型,使用戶及時(shí)運(yùn)營和看到模型概貌和使用效果,并對(duì)需求闡明進(jìn)行補(bǔ)充和精化,提出改進(jìn)意見,開發(fā)人員進(jìn)一步修改完善,如此循環(huán)迭代,直到得到一個(gè)用戶滿意模型為止。 從原型法基本思想中能夠看到,用戶能及早看到系統(tǒng)模型,在循環(huán)迭代修改和完善過程中,
14、使用戶需求日益明確,從而消除了用戶需求不擬定性,同時(shí)從原型到模型生成,周期短、見效快,對(duì)環(huán)境改變適應(yīng)能力較強(qiáng)。第25頁第25頁快速原型模型包括內(nèi)容 功效選擇 要恰當(dāng)選擇原型實(shí)現(xiàn)功效。依據(jù)用戶基本需求,對(duì)系統(tǒng)給出初步定義。用戶基本需求包含各種功效要求、數(shù)據(jù)結(jié)構(gòu)、菜單和屏幕、報(bào)表內(nèi)容和格式等要求。這些要求雖是概略,不過最基本,易于描述和定義。原型和最終軟件系統(tǒng)不同,二者在功效范圍上區(qū)分主要有以下兩個(gè)方面:第26頁第26頁快速原型模型包括內(nèi)容 第一最后系統(tǒng)是軟件需求所有功效實(shí)現(xiàn),而原型只實(shí)現(xiàn)所選擇部分功效。 第二最后系統(tǒng)對(duì)每個(gè)軟件需求都要求詳細(xì)實(shí)現(xiàn),而原型僅僅是為了試驗(yàn)和演示用,部分功效需求能夠忽略
15、,或者模擬實(shí)現(xiàn)。第27頁第27頁快速原型模型包括內(nèi)容 結(jié)構(gòu)原型 依據(jù)用戶初步需求,開發(fā)出一個(gè)能夠應(yīng)用系統(tǒng),它應(yīng)滿足上述由用戶提出基本要求。在結(jié)構(gòu)一個(gè)原型時(shí),應(yīng)當(dāng)強(qiáng)調(diào)著眼于預(yù)期評(píng)估,而不是為了正規(guī)長期使用。第28頁第28頁快速原型模型包括內(nèi)容 運(yùn)營和評(píng)價(jià)原型 在試用中能親自參與和面對(duì)一個(gè)實(shí)在模型,能較為直觀和明確地進(jìn)一步提出需求,提出修改意見。通過運(yùn)營原型對(duì)軟件需求規(guī)格闡明進(jìn)行評(píng)價(jià)和確認(rèn)。評(píng)價(jià)要有用戶參與,注意來自用戶反饋信息。第29頁第29頁快速原型模型包括內(nèi)容 修改和完善原型 依據(jù)修改意見進(jìn)行修改,以得到新系統(tǒng)原型,然后再進(jìn)行試用和評(píng)價(jià),這樣通過有限次循環(huán)重復(fù),逐步提升和完善,直到得到一個(gè)用
16、戶滿意系統(tǒng)模型為止。依據(jù)原型實(shí)現(xiàn)特點(diǎn)和環(huán)境,能夠把原型作為試驗(yàn)工具,用完就丟棄之;也能夠使原型所有或部分地成為最后系統(tǒng)構(gòu)成部分。 原型法開發(fā)過程如圖2-3所表示。其中,原型開發(fā)與原型運(yùn)營評(píng)價(jià)兩者需重復(fù)進(jìn)行多次,才干最后得到通過確認(rèn)需求規(guī)格闡明,并以此作為進(jìn)一步軟件設(shè)計(jì)和實(shí)現(xiàn)基礎(chǔ)。第30頁第30頁快速原型模型需求分析原型開發(fā)最后系統(tǒng)設(shè)計(jì)原型評(píng)價(jià)最后系統(tǒng)實(shí)現(xiàn)用戶反饋圖2.3 快速原型模型第31頁第31頁原型模型(快速原型模型)原型范型用戶測(cè)試運(yùn)營原型建造/修改 原型 聽取用 戶意見第32頁第32頁采用原型模型軟件生存周期分析定義系統(tǒng)需求生成原型系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)編碼測(cè)試運(yùn) 行和維護(hù)原型化含原型化軟件
17、生存期第33頁第33頁快速原型模型特點(diǎn)(1)快速開發(fā)工具 (2)循環(huán) (3)低成本種類(1)漸進(jìn)型 (2)拋棄型 原型法含有明顯長處,它開發(fā)周期短,見效快,能夠邊開發(fā)邊使用,較適合于開發(fā)環(huán)境和管理體制多變、系統(tǒng)結(jié)構(gòu)不穩(wěn)定情況。但是開發(fā)系統(tǒng)采用原型法,需要有交互式開發(fā)環(huán)境和第四代語言及自動(dòng)編程系統(tǒng)支持,其初始原型設(shè)計(jì)較為困難,開發(fā)過程尚缺乏有效管理辦法和控制手段。第34頁第34頁2.3 軟件演化模型1.階段式開發(fā):增量模型 系統(tǒng)設(shè)計(jì)時(shí)分片交付,可使用戶在使用一些基本功效同時(shí),開發(fā)剩余功效。這樣通常會(huì)并行地存在兩個(gè)系統(tǒng):生產(chǎn)系統(tǒng)和開發(fā)系統(tǒng)。運(yùn)營或生產(chǎn)系統(tǒng)是當(dāng)前被客戶或用戶所使用系統(tǒng)。而開發(fā)系統(tǒng)是準(zhǔn)
18、備用于替換當(dāng)前生產(chǎn)系統(tǒng)下一個(gè)版本。增量模型是一個(gè)非整體開發(fā)模型。是瀑布模型順序特性和快速原型模型迭代特性相結(jié)合產(chǎn)物。 該模型含有較大靈活性,適合于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)軟件項(xiàng)目。第35頁第35頁創(chuàng)建版本1創(chuàng)建版本2創(chuàng)建版本3使用版本1使用版本2使用版本3開發(fā)者使用者階段式開發(fā):增量和迭代模型第36頁第36頁增量模型規(guī)格闡明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格闡明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格闡明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格闡明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶增量1增量2增量3增量n第37頁第37頁增量模型增量小而可用軟件特點(diǎn)在前面增量基礎(chǔ)上開發(fā)后面增量每個(gè)增量開發(fā)可用瀑布或快速原型模型迭代思緒第38頁第38
19、頁螺旋模型 軟件開發(fā)幾乎總要冒一定風(fēng)險(xiǎn),比如,產(chǎn)品交付給用戶之后用戶可能對(duì)產(chǎn)品不滿意,到了預(yù)定交付日期軟件可能還未開發(fā)出來,實(shí)際開發(fā)成本可能超出了預(yù)算,產(chǎn)品完成之前一些關(guān)鍵開發(fā)人員可能“跳槽”了,產(chǎn)品投入市場(chǎng)之前競(jìng)爭(zhēng)對(duì)手公布了一個(gè)功效相近、價(jià)格更低軟件等等。軟件風(fēng)險(xiǎn)是任何軟件開發(fā)項(xiàng)目中都普遍存在實(shí)際問題,項(xiàng)目越大,軟件產(chǎn)品越復(fù)雜,承擔(dān)該項(xiàng)目所冒風(fēng)險(xiǎn)也越大。軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品質(zhì)量。因此,在軟件開發(fā)過程中必須及時(shí)識(shí)別和分析風(fēng)險(xiǎn),而且采取適當(dāng)辦法以消除或降低風(fēng)險(xiǎn)危害。 構(gòu)建原型是一個(gè)能使一些類型風(fēng)險(xiǎn)降至最低方法。 于是在1988年B.boehm提出了螺旋模型。第39頁
20、第39頁螺旋模型 螺旋模型基本思想是,使用原型及其它方法以盡也許地降低風(fēng)險(xiǎn)。了解這種模型一個(gè)簡(jiǎn)易方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程快速原型模型,如右圖所表示。簡(jiǎn)化螺旋模型圖第40頁第40頁 螺旋模型螺旋模型將瀑布模型與增量模型結(jié)合起來,加入了兩種模型均忽略了風(fēng)險(xiǎn)分析,填補(bǔ)了這兩種模型不足。螺旋模型是一個(gè)風(fēng)險(xiǎn)驅(qū)動(dòng)模型。螺旋模型將開發(fā)過程分為幾種螺旋周期,每個(gè)螺旋周期大體和瀑布模型相符合。 螺旋模型適合于大型軟件開發(fā)。第41頁第41頁 螺旋模型完整螺旋模型圖制定計(jì)劃風(fēng)險(xiǎn)分析客戶評(píng)估工程實(shí)行第42頁第42頁螺旋模型 圖中帶箭頭點(diǎn)劃線長度代表當(dāng)前累計(jì)開發(fā)費(fèi)用,螺線旋過角度值代表開發(fā)進(jìn)度
21、。螺旋線每個(gè)周期相應(yīng)于一個(gè)開發(fā)階段。每個(gè)階段開始時(shí)(左上象限)任務(wù)是,擬定該階段目的、為完畢這些目的選擇方案及設(shè)定這些方案約束條件。接下來任務(wù)是,從風(fēng)險(xiǎn)角度分析上一步工作結(jié)果。努力排除各種潛在風(fēng)險(xiǎn),通慣用建造原型辦法來排除風(fēng)險(xiǎn)。假如風(fēng)險(xiǎn)不能排除,則停止開發(fā)工作或大幅度地削減項(xiàng)目規(guī)模。假如成功地排除了所有風(fēng)險(xiǎn),則啟動(dòng)下一個(gè)開發(fā)環(huán)節(jié)(右下象限),在這個(gè)環(huán)節(jié)工作過程相稱于純正瀑布模型。最后是評(píng)價(jià)該階段工作結(jié)果并計(jì)劃下一個(gè)階段工作。第43頁第43頁螺旋模型特點(diǎn)瀑布模型+快速原型+風(fēng)險(xiǎn)分析迭代過程一個(gè)螺旋式周期 擬定目的,選擇方案,選定完畢目的策略 風(fēng)險(xiǎn)角度分析該策略 啟動(dòng)一個(gè)開發(fā)階段 評(píng)價(jià)前一步結(jié)果,
22、計(jì)劃下一輪工作 第44頁第44頁 2.4 面向?qū)ο箝_發(fā)模型1 在講面向?qū)ο箝_發(fā)模型之前先講面向?qū)ο蠡靖拍顚?duì)象Object類Class繼承Inheritance消息Message 面向?qū)ο髮?duì)象+類+繼承+消息通信第45頁第45頁對(duì)象Object客觀世界中實(shí)體狀態(tài)(靜態(tài)屬性 Attributes)操作(動(dòng)態(tài)行為 Methods)對(duì)象:=Identifier(標(biāo)識(shí):即名稱,用來在問題域中區(qū)別其它對(duì)象)Method Set(即行為或辦法:一是對(duì)本身操作,改變?cè)袑傩誀顟B(tài);另一是施加于其它對(duì)象操作,將產(chǎn)生輸出結(jié)果作為消息發(fā)送操作)Data Structure(數(shù)據(jù):描述對(duì)象屬性存儲(chǔ)或數(shù)據(jù)結(jié)構(gòu),他表示了
23、對(duì)象一個(gè)狀態(tài))Message Interface(接口:主要指對(duì)外接口,指對(duì)象受理外部消息所制定操作名稱集合)第46頁第46頁對(duì)象特點(diǎn)以數(shù)據(jù)為中心對(duì)象是積極實(shí)現(xiàn)數(shù)據(jù)封裝本質(zhì)上有并行性模塊獨(dú)立性好第47頁第47頁類Class和實(shí)例Instance類相同屬性和行為對(duì)象抽象實(shí)例特定類所描述一個(gè)詳細(xì)對(duì)象第48頁第48頁子類直接繼承父類數(shù)據(jù)和操作繼承傳遞性,單繼承、多重繼承繼承(Inheritance)家具桌子椅子衣柜床椅子實(shí)例第49頁第49頁多態(tài)性Polymorphism概念不同類層次共享一個(gè)方法名相同參數(shù)特性和返回值類型各種不同實(shí)現(xiàn)C+中虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編第50頁第50頁重載Overloading函
24、數(shù)重載同一作用域多個(gè)名字相同函數(shù)參數(shù)特性不同靜態(tài)聯(lián)編運(yùn)算符重載第51頁第51頁消息Message對(duì)象間交互手段形式:Message:dest,op,paraDestination Object(目的對(duì)象)Operation(操作)Parameters(參數(shù))第52頁第52頁 2.4 面向?qū)ο箝_發(fā)模型2對(duì)象技術(shù)為軟件工程基于構(gòu)件過程模型提供了技術(shù)框架。面向?qū)ο蠓缎蛷?qiáng)調(diào)了類創(chuàng)建,類封裝了數(shù)據(jù)和用于操縱該數(shù)據(jù)算法。假如經(jīng)過適當(dāng)設(shè)計(jì)和實(shí)現(xiàn),面向?qū)ο箢惸軌蛟诓煌瑧?yīng)用及基于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中復(fù)用。面向?qū)ο竽P腿诤狭寺菪P驮S多特性。它本質(zhì)上是演化,支持軟件開發(fā)迭代方法。 第53頁第53頁噴泉模型噴泉模型是屬
25、于面向?qū)ο筠k法學(xué),是一個(gè)以用戶需求為動(dòng)力,以對(duì)象作為驅(qū)動(dòng)模型。它適合于面向?qū)ο箝_發(fā)辦法。它克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動(dòng)集成不足。噴泉模型使開發(fā)過程含有迭代性和無間隙性。系統(tǒng)一些部分經(jīng)常重復(fù)工作多次,相關(guān)功效在每次迭代中隨之加入演化系統(tǒng)。無間隙是指在分析、設(shè)計(jì)和實(shí)現(xiàn)等開發(fā)活動(dòng)之間不存在明顯邊界。 該模型是由B.H.Sollers和J.M.Edwards于1990年提出一個(gè)新開發(fā)模型。主要用于采用對(duì)象技術(shù)軟件開發(fā)項(xiàng)目。它克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動(dòng)集成不足,噴泉模型使開發(fā)過程含有迭代性和無間隙性。 第54頁第54頁噴泉模型噴泉模型 實(shí) 現(xiàn)軟件設(shè)計(jì)系統(tǒng)設(shè)計(jì)分 析第55頁第
26、55頁噴泉模型其特點(diǎn)下列: 、開發(fā)過程有分析、系統(tǒng)設(shè)計(jì)、軟件設(shè)計(jì)和實(shí)現(xiàn)4個(gè)階段。、各階段互相重疊,它反應(yīng)了軟件過程并行性特點(diǎn)。 、以分析為基礎(chǔ),資源消耗成塔型。、反應(yīng)了軟件過程迭代性自然特性,從高層返回低層無資源消耗。 、強(qiáng)調(diào)增量開發(fā),整個(gè)過程是一個(gè)迭代逐步提煉過程。 6、噴泉模型是對(duì)象驅(qū)動(dòng)過程,對(duì)象是所有活動(dòng)作用實(shí)體,也是項(xiàng)目管理基本內(nèi)容。第56頁第56頁構(gòu)件集成模型 構(gòu)件(component)也稱為組件,是一段實(shí)現(xiàn)一系列有確定接口程序體,含有自己功效和邏輯,能同其它構(gòu)件組裝起來協(xié)調(diào)工作。 該模型支持軟件重用,對(duì)縮短軟件開發(fā)周期、降低項(xiàng)目成本有主要現(xiàn)實(shí)意義。同時(shí),建造符合某應(yīng)用領(lǐng)域體系結(jié)構(gòu)標(biāo)
27、準(zhǔn)構(gòu)件,能夠用來搭建分布式、跨越不同操作平臺(tái)軟件,擴(kuò)展了軟件應(yīng)用前景,促進(jìn)了軟件標(biāo)準(zhǔn)化、商品化發(fā)展。 因此,在此基礎(chǔ)上教授們又提出了“基于構(gòu)件軟件工程”(CBSE)。構(gòu)件組裝模型含有極其遼闊實(shí)用性和深遠(yuǎn)意義。 構(gòu)件組裝模型以下圖所表示:第57頁第57頁構(gòu)件集成模型軟件需求標(biāo)識(shí)構(gòu)件檢索構(gòu)件庫開發(fā)構(gòu)件取出構(gòu)件存入構(gòu)件庫集成目的系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)構(gòu)件適應(yīng)性修改集成測(cè)試系統(tǒng)測(cè)試運(yùn)營維護(hù)第58頁第58頁構(gòu)件集成模型第59頁第59頁構(gòu)件集成模型特點(diǎn)面向?qū)ο蠡跇?gòu)件庫融合螺旋模型特性支持軟件開發(fā)迭代辦法 軟件重用第60頁第60頁構(gòu)件技術(shù) 軟件體系結(jié)構(gòu)被建立后,必須用構(gòu)件去充實(shí),這些構(gòu)件可從復(fù)用庫中取得,或者依
28、據(jù)專門需要而開發(fā)。整個(gè)過程能夠演化地進(jìn)行,面向?qū)ο筠k法予以技術(shù)上支持。 構(gòu)件技術(shù)當(dāng)前主要有三種流行原則: OMGCORBA: 對(duì)象管理組織公布公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture)。一個(gè)對(duì)象請(qǐng)求代理(ORB)提供一系列服務(wù),使得一個(gè)構(gòu)件和其它構(gòu)件通信,而無論它們?cè)谙到y(tǒng)中位置,實(shí)現(xiàn)了遠(yuǎn)程對(duì)象通過接口進(jìn)行通信機(jī)制。第61頁第61頁構(gòu)件技術(shù) 微軟COM/DCOM:微軟開發(fā)了構(gòu)件對(duì)象模型(Component Object Model),它提供了運(yùn)行于windows之上單個(gè)應(yīng)用系統(tǒng)使用不同廠商生產(chǎn)構(gòu)件規(guī)約?;诜植际江h(huán)境下COM稱為
29、DCOM (Distribute COM)。 SUNEJB (Enterprise JavaBean):伴隨Java在企業(yè)級(jí)應(yīng)用地位日趨主要,Sun提出了一個(gè)統(tǒng)一企業(yè)級(jí)Java平臺(tái)J2EE。在J2EE中,EJB負(fù)責(zé)最關(guān)鍵業(yè)務(wù)處理。它為服務(wù)器端應(yīng)用程序提供了一個(gè)與廠商無關(guān)Java接口,讓任何符合EJB規(guī)范構(gòu)件都能夠運(yùn)行在每一臺(tái)這么服務(wù)器上。第62頁第62頁基于構(gòu)件未來軟件生產(chǎn)線應(yīng)用構(gòu)件提取車間 應(yīng)用構(gòu)件庫構(gòu)件生產(chǎn)車間 構(gòu)件庫組裝車間領(lǐng)域 1領(lǐng)域 2應(yīng)用系統(tǒng) .12341基礎(chǔ)構(gòu)件,2功效構(gòu)件 3接口構(gòu)件,4用戶界面構(gòu)件 第63頁第63頁2.5 形式化辦法模型 形式化辦法模型是一個(gè)基于數(shù)學(xué)開發(fā)技術(shù),
30、主要采用數(shù)學(xué)辦法與表示體系描述軟件性質(zhì),表示軟件規(guī)格闡明,然后進(jìn)行一系列自動(dòng)或半自動(dòng)程序轉(zhuǎn)換,最后轉(zhuǎn)化為計(jì)算機(jī)系統(tǒng)能夠接受目的程序系統(tǒng)。 是基于形式化語言和程序變換模型,因此,也稱變換模型。從軟件需求形式化闡明開始,通過一系列數(shù)學(xué)變換和正確性證實(shí),最后得到系統(tǒng)目的程序。形式化辦法使開發(fā)者應(yīng)用一個(gè)嚴(yán)格數(shù)學(xué)符號(hào)體系來表示、結(jié)構(gòu)和驗(yàn)證系統(tǒng),從而大大提升軟件可靠性。 模型見下圖:第64頁第64頁轉(zhuǎn)換模型形式化規(guī)格闡明與需求比較后修正變換2變換1變換n測(cè)試形式化開發(fā)統(tǒng)計(jì)系統(tǒng)需求目的系統(tǒng)第65頁第65頁轉(zhuǎn)換模型兩種技術(shù): 基于模型規(guī)格闡明及其變換技術(shù) 基于模型技術(shù)使用數(shù)學(xué)上結(jié)構(gòu)如集合和函數(shù)為系統(tǒng)建模。它們能呈現(xiàn)系統(tǒng)狀態(tài)以簡(jiǎn)化對(duì)一些行為描述?;谀P兔枋稣Z言及辦法如Z、VDM(Vienna Definition Method)、B、Petri Nets等。 基于代數(shù)結(jié)構(gòu)及其變換技術(shù) 代數(shù)辦法適合于對(duì)接口描述。這里接口被定義為一組對(duì)象類或抽象數(shù)據(jù)類型集合,用接口操作之間關(guān)系來刻畫系統(tǒng)。第66頁第66頁轉(zhuǎn)換模型特點(diǎn): 該模型迫使對(duì)系統(tǒng)需求分析在軟件開發(fā)早期階段完畢。在這個(gè)階段更正錯(cuò)誤比在系統(tǒng)被交付
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025貴州省安全員知識(shí)題庫
- 2025山西省安全員-C證考試(專職安全員)題庫及答案
- 個(gè)人山場(chǎng)租賃合同范本
- 南雄貨物運(yùn)輸短途合同范本
- 入股定金合同范本
- 上海福特購車合同范本
- 三年級(jí)口算練習(xí)題1000道
- 別墅全案設(shè)計(jì)合同范本
- 2025山西省安全員B證考試題庫
- 升降柱施工合同范本
- 第一課 踏上強(qiáng)國之路 復(fù)習(xí)課件 統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 陳赫賈玲小品《歡喜密探》臺(tái)詞劇本
- 部編版語文九年級(jí)下冊(cè)-第三單元古詩文默寫-理解性默寫(排版-附答案)
- 數(shù)學(xué)史與數(shù)學(xué)文化教育
- 雨污水管道施工工藝
- 圖紙疑問匯總表
- 茯苓栽培技術(shù)
- 空氣能熱泵基礎(chǔ)施工方案
- 2023智能低壓配電箱技術(shù)條件
- 起重機(jī)械安全規(guī)程-第部分完整
- 十位偉大的經(jīng)濟(jì)學(xué)家:從馬克思到凱恩斯
評(píng)論
0/150
提交評(píng)論