![軟件工程73課件_第1頁](http://file4.renrendoc.com/view/51c335f606e1561343d5740ddc192f88/51c335f606e1561343d5740ddc192f881.gif)
![軟件工程73課件_第2頁](http://file4.renrendoc.com/view/51c335f606e1561343d5740ddc192f88/51c335f606e1561343d5740ddc192f882.gif)
![軟件工程73課件_第3頁](http://file4.renrendoc.com/view/51c335f606e1561343d5740ddc192f88/51c335f606e1561343d5740ddc192f883.gif)
![軟件工程73課件_第4頁](http://file4.renrendoc.com/view/51c335f606e1561343d5740ddc192f88/51c335f606e1561343d5740ddc192f884.gif)
![軟件工程73課件_第5頁](http://file4.renrendoc.com/view/51c335f606e1561343d5740ddc192f88/51c335f606e1561343d5740ddc192f885.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程第1章軟件工程概述1看了《色戒》,知道女人是靠不住的看了《投名狀》,知道兄弟是靠不住的看了《集結(jié)號(hào)》,知道組織是靠不住的看了《長江7號(hào)》,知道外星人是靠不住的看了《霍元甲》,知道徒弟是靠不住的看了《無間道》,知道警察是靠不住的看了《史密斯夫婦》,知道公司是靠不住的看了《瘋狂的石頭》,知道國際高手是靠不住的看了《越獄》,知道牢房是靠不住的……看了《軟件工程》,知道軟件是靠不住的2軟件工程的產(chǎn)生緣起:“軟件危機(jī)”困難:軟件的屬性解決之道:工程化3軟件工程學(xué)科范疇計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造軟件的模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本以及確定權(quán)衡等;管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。軟件工程知識(shí)與實(shí)踐數(shù)學(xué)基本原理計(jì)算機(jī)科學(xué)基本原理應(yīng)用領(lǐng)域知識(shí)與實(shí)踐工程科學(xué)知識(shí)與實(shí)踐管理科學(xué)知識(shí)與實(shí)踐5CC2005的軟件工程范疇6軟件工程知識(shí)體系(SWEBOK)軟件設(shè)計(jì)軟件測(cè)試基本概念和定義測(cè)試級(jí)別測(cè)試技術(shù)測(cè)試相關(guān)度量測(cè)試過程管理軟件需求需求工程過程需求獲取需求分析需求規(guī)格說明需求驗(yàn)證需求管理軟件構(gòu)造降低復(fù)雜性預(yù)知多樣性結(jié)構(gòu)化驗(yàn)證使用外部標(biāo)準(zhǔn)軟件維護(hù)基本概念維護(hù)過程關(guān)鍵問題維護(hù)技術(shù)軟件配置管理配置過程管理配置標(biāo)識(shí)配置控制配置狀態(tài)報(bào)告配置審計(jì)軟件發(fā)布管理與交付軟件工程管理組織管理過程/項(xiàng)目管理軟件工程度量軟件工程過程軟件過程概念過程基礎(chǔ)設(shè)施過程度量過程定義定性過程分析過程實(shí)施與變更軟件工程工具與方法軟件工具軟件方法軟件質(zhì)量軟件質(zhì)量概念SQA和V&V目的與計(jì)劃SQA和V&V活動(dòng)與技術(shù)適用于SQA和V&V的度量基本概念關(guān)鍵問題結(jié)構(gòu)與體系結(jié)構(gòu)質(zhì)量分析與評(píng)價(jià)設(shè)計(jì)符號(hào)策略與方法7軟件工程教育知識(shí)體系(5)軟件建模與分析建?;A(chǔ) 模型類型分析基礎(chǔ)需求基礎(chǔ)獲取需求需求規(guī)格說明與文檔需求驗(yàn)證(6)軟件設(shè)計(jì)設(shè)計(jì)概念 設(shè)計(jì)策略體系結(jié)構(gòu)設(shè)計(jì)人機(jī)界面設(shè)計(jì)詳細(xì)設(shè)計(jì)設(shè)計(jì)策略設(shè)計(jì)支持工具與評(píng)價(jià)9軟件工程教育知識(shí)體系(7)軟件驗(yàn)證與確認(rèn)驗(yàn)證與確認(rèn)的術(shù)語和基礎(chǔ)評(píng)審測(cè)試人機(jī)用戶界面測(cè)試和評(píng)價(jià)問題分析與報(bào)告(8)軟件演化演化過程演化活動(dòng)(9)軟件質(zhì)量軟件質(zhì)量概念與文化軟件質(zhì)量標(biāo)準(zhǔn)軟件質(zhì)量過程過程保證產(chǎn)品保證(10)軟件管理管理概念項(xiàng)目計(jì)劃項(xiàng)目人員與組織項(xiàng)目控制軟件配置管理10內(nèi)容摘要軟件的概念軟件工程的基本概念軟件過程及其模型11軟件的發(fā)展
1946-1956年
從計(jì)算機(jī)問世到實(shí)用的高級(jí)程序語言出現(xiàn)前存儲(chǔ)容量比較小,運(yùn)算速度比較慢采用個(gè)體工作方式,用低級(jí)語言編寫程序應(yīng)用領(lǐng)域主要是以數(shù)值數(shù)據(jù)處理為主的科學(xué)計(jì)算,其特點(diǎn)是輸入、輸出量較小衡量程序質(zhì)量的標(biāo)準(zhǔn)主要是功效,即運(yùn)行時(shí)間省、占用內(nèi)存小主要研究內(nèi)容是科學(xué)計(jì)算程序、服務(wù)性程序和程序庫,研究對(duì)象是順序程序131956-1968年
從實(shí)用的高級(jí)程序語言出現(xiàn)到軟件工程出現(xiàn)前存儲(chǔ)器容量大,外圍設(shè)備得到迅速發(fā)展,出現(xiàn)了高級(jí)程序設(shè)計(jì)語言應(yīng)用領(lǐng)域包括數(shù)據(jù)處理(非數(shù)值數(shù)據(jù)),其特點(diǎn)是計(jì)算量不大,但輸入、輸出量卻較大高速主機(jī)與低速外圍設(shè)備的矛盾突出,出現(xiàn)了操作系統(tǒng)、并發(fā)程序、數(shù)據(jù)庫及其管理系統(tǒng)20世紀(jì)60年代初提出了軟件一詞,開始認(rèn)識(shí)到文檔的重要性研究高級(jí)程序設(shè)計(jì)語言、編譯程序、操作系統(tǒng)、支持編程的工具及各種應(yīng)用軟件工作方式逐步從個(gè)體方式轉(zhuǎn)向合作方式出現(xiàn)“軟件危機(jī)”141968年-至今
從軟件工程出現(xiàn)到現(xiàn)在硬件向巨型機(jī)和微型機(jī)二個(gè)方向發(fā)展,出現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò),軟件方面提出了軟件工程,出現(xiàn)了“計(jì)算機(jī)輔助軟件工程”(CASE)計(jì)算機(jī)的應(yīng)用領(lǐng)域滲透到各個(gè)業(yè)務(wù)領(lǐng)域,出現(xiàn)了嵌入式應(yīng)用,其特點(diǎn)是受制于它所嵌入的宿主系統(tǒng)開發(fā)方式逐步由個(gè)體合作方式轉(zhuǎn)向工程方式軟件工程方面的研究主要包括軟件開發(fā)模型、軟件開發(fā)方法及技術(shù)、軟件工具與環(huán)境、軟件過程、軟件自動(dòng)化系統(tǒng)等軟件方面研究以智能化、自動(dòng)化、集成化、并行化、以及自然化為標(biāo)志的軟件開發(fā)新技術(shù)15代價(jià)高進(jìn)度難控制工作量和成本估算難質(zhì)量差維護(hù)難用戶不滿意軟件生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)1979年,美國USGovernmentAccountingOffice的調(diào)查1999年,美國StandishGroup的調(diào)查“軟件危機(jī)”17軟件危機(jī)的原因軟件是邏輯產(chǎn)品,開發(fā)進(jìn)度、成本難以估計(jì)缺乏或不完整、不一致的文檔給維護(hù)帶來困難用戶對(duì)軟件需求的描述往往不夠精確,有遺漏,有二義軟件開發(fā)人員對(duì)需求的理解與用戶的本來愿望有差異大型軟件項(xiàng)目需多人協(xié)同完成,缺乏管理經(jīng)驗(yàn)開發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件的全部關(guān)系缺乏有力的方法學(xué)和工具的支持軟件項(xiàng)目的特殊性和人類智力的局限性……18問題歸結(jié)軟件生命期階段計(jì)劃需求設(shè)計(jì)實(shí)現(xiàn)測(cè)試維護(hù)主觀盲目地制定計(jì)劃;成本、資源、工作量估算不準(zhǔn);進(jìn)度計(jì)劃無法遵循需求提出不明確或者表達(dá)不準(zhǔn);需求錯(cuò)誤;需求說明書質(zhì)量不高沒有統(tǒng)一的、公認(rèn)的方法論和規(guī)范指導(dǎo);設(shè)計(jì)資料不完整;忽視接口;編碼不規(guī)范、難讀;程序文檔不完整;修改隨意,與設(shè)計(jì)有偏差,無修改記錄變更隨意不規(guī)范;維護(hù)文檔不完整;維護(hù)錯(cuò)誤測(cè)試不充分;測(cè)試文檔不完整;測(cè)試過程缺乏控制不注意回歸測(cè)試19軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進(jìn)度難以準(zhǔn)確地估算軟件是被開發(fā)的或被設(shè)計(jì)的,它沒有明顯的制造過程,一旦開發(fā)成功,只需復(fù)制即可,但其維護(hù)的工作量大軟件的使用沒有硬件那樣的機(jī)械磨損和老化問題21軟件的故障曲線22軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)硬件的限制,對(duì)計(jì)算機(jī)硬件有著不同程度的依賴性軟件的開發(fā)至今尚未完全實(shí)現(xiàn)自動(dòng)化軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會(huì)因素軟件的特點(diǎn)(續(xù))23內(nèi)容摘要軟件的概念軟件工程的基本概念軟件過程及其模型25軟件工程的定義1968年NATO(北大西洋公約組織)會(huì)議上首次提出FritzBauer:軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則IEEE:軟件工程是(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中;(2)(1)中所述方法的研究計(jì)算機(jī)科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程26軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對(duì)象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程
80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。軟件工程的發(fā)展29軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對(duì)象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程80年代中開始,人們?cè)谲浖_發(fā)的實(shí)踐過程中認(rèn)識(shí)到:提高軟件生產(chǎn)率,保證軟件質(zhì)量的關(guān)鍵是“軟件過程”,是軟件開發(fā)和維護(hù)中的管理和支持能力,逐步形成軟件過程工程。軟件工程的發(fā)展30軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對(duì)象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開發(fā)可通過使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無需從頭開始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。軟件工程的發(fā)展31軟件工程的三要素三要素:軟件工程方法軟件工程工具軟件工程過程軟件工程層次32要素一:軟件工程方法軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)在時(shí)間上將軟件開發(fā)工作劃分為若干階段,為每一階段規(guī)定了若干任務(wù),并提供為完成這些任務(wù)所需的各種技術(shù)是一種使用早已定義好的技術(shù)集和符號(hào)表示習(xí)慣來組織軟件生產(chǎn)的過程代表:結(jié)構(gòu)化開發(fā)方法Jackson開發(fā)方法Z形式化開發(fā)方法面向?qū)ο箝_發(fā)方法33軟件開發(fā)方法可分為幾大類:面向過程的開發(fā)方法(傳統(tǒng)的)面向?qū)ο蟮拈_發(fā)方法基于構(gòu)件的開發(fā)方法特別要注意:由于軟件與程序是不同的概念,軟件開發(fā)方法與程序設(shè)計(jì)方法是兩個(gè)不同的概念軟件開發(fā)方法可以是針對(duì)局部的,也可以是針對(duì)全局的。軟件工程方法,更加強(qiáng)調(diào)和重點(diǎn)研究的是需求分析與軟件設(shè)計(jì)的開發(fā)方法34一、結(jié)構(gòu)化開發(fā)方法(StructuredDevelopingMethod)是一種面向數(shù)據(jù)流的開發(fā)方法,是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下、逐步求精,以數(shù)據(jù)流,數(shù)據(jù)的封閉性準(zhǔn)則來逐層分解的,它的基本原則是功能的分解與抽象。
結(jié)構(gòu)化方法強(qiáng)調(diào)結(jié)構(gòu)的合理性。提出了一組提高軟件結(jié)構(gòu)質(zhì)量的準(zhǔn)則,如功能的分解與抽象、模塊獨(dú)立性、信息屏蔽等。35面向?qū)ο蠓椒ㄊ?0年代推出的一種全新的軟件開發(fā)方法。非常實(shí)用而強(qiáng)有力,被譽(yù)為90年代軟件的核心技術(shù)之一。面向?qū)ο蠓椒?/p>
其基本思想是:對(duì)問題領(lǐng)域進(jìn)行自然的分割,以更接近人類通常思維的方式建立問題領(lǐng)域的模型,以便對(duì)客觀的信息實(shí)體進(jìn)行結(jié)構(gòu)和行為的模擬,從而使設(shè)計(jì)的軟件更直接地表現(xiàn)問題的求解過程。面向?qū)ο蟮拈_發(fā)方法以對(duì)象作為最基本的元素,是分析和解決問題的核心。36軟件復(fù)用技術(shù)“軟件重用”或“軟件復(fù)用”(SoftwareReuse)是指將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng)。該技術(shù)是提高軟件生產(chǎn)率和質(zhì)量,降低成本的有效方法。復(fù)用方式復(fù)用程序:包括目標(biāo)代碼和源代碼的復(fù)用,可通過連接(Link)、綁定(Binding)、包含(include)等功能支持及對(duì)象鏈接及嵌入(OLE)技術(shù)實(shí)現(xiàn)。復(fù)用分析
比設(shè)計(jì)復(fù)用級(jí)別更高,實(shí)現(xiàn)方式與設(shè)計(jì)復(fù)用類似復(fù)用設(shè)計(jì):設(shè)計(jì)結(jié)果比源程序的抽象級(jí)別高,因此復(fù)用受環(huán)境影響小??梢酝ㄟ^從現(xiàn)有系統(tǒng)中提取全部或者不同粒度的設(shè)計(jì)構(gòu)件,或者獨(dú)立于具體應(yīng)用開發(fā)設(shè)計(jì)構(gòu)件。復(fù)用結(jié)構(gòu)
復(fù)用模塊結(jié)構(gòu)或者數(shù)據(jù)結(jié)構(gòu)。可復(fù)用的構(gòu)件
構(gòu)件是指可以被明確標(biāo)識(shí)的軟件制品,可以是軟件開發(fā)不同階段的產(chǎn)品。
可復(fù)用構(gòu)件是指可被其它系統(tǒng)復(fù)用,用于構(gòu)成新系統(tǒng)的構(gòu)件??蓮?fù)用構(gòu)件的特性:1.獨(dú)立性解決相對(duì)獨(dú)立的問題,與外界聯(lián)系盡量少。2.完整性既要包括完整的解決方案,還定義相應(yīng)操作。3.通用性在同類應(yīng)用中具有一般性。4.可標(biāo)識(shí)性通過合適的命名,構(gòu)件所解決的問題是可標(biāo)識(shí)的。5.可適應(yīng)性適應(yīng)環(huán)境變化。6.可靠性對(duì)各個(gè)使用它的系統(tǒng)都具有高的可靠性。38要素二:軟件工具為支援軟件人員的開發(fā)和維護(hù)活動(dòng)而使用的軟件項(xiàng)目估算工具、需求分析工具、設(shè)計(jì)工具、編程和調(diào)試工具、測(cè)試工具和維護(hù)工具、……軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。軟件工具集成起來,構(gòu)成“計(jì)算機(jī)輔助軟件工程”(CASE)39在軟件工程活動(dòng)中,軟件工程師和管理人員按照軟件工程的方法和原則,借助于計(jì)算機(jī)及其軟件工具的幫助,開發(fā)、維護(hù)、管理軟件產(chǎn)品的過程稱為計(jì)算機(jī)輔助軟件工程計(jì)算機(jī)輔助軟件工程(CASE)
ComputerAidedSoftwareEngineering40軟件工具是用來輔助計(jì)算機(jī)軟件的開發(fā)、運(yùn)行、維護(hù)、管理、支持過程中的活動(dòng)或任務(wù)的軟件CASE工具41CASE工具的類型按支持的軟件過程活動(dòng)分類:開發(fā)過程:需求分析工具,設(shè)計(jì)工具,編碼工具,測(cè)試工具它們還可按支持的開發(fā)方法分為:結(jié)構(gòu)化XX工具,面向?qū)ο骕X工具維護(hù)過程:版本控制工具,文檔分析工具,逆向工程(reverseengineering)工具,再工程(reengineering)工具管理過程:項(xiàng)目管理工具,配置管理工具,軟件評(píng)價(jià)工具應(yīng)用類工具42集成型開發(fā)環(huán)境是一種把支持多種軟件開發(fā)方法和過程模型的軟件工具集成到一起的軟件開發(fā)環(huán)境集成型開發(fā)環(huán)境由環(huán)境集成機(jī)制和工具集組成集成型軟件開發(fā)環(huán)境43軟件開發(fā)環(huán)境一個(gè)理想的軟件工程環(huán)境:支持開發(fā)+支持管理的工具軟件開發(fā)環(huán)境的特點(diǎn)數(shù)據(jù)庫軟件工具的集成友好的用戶界面信息提取的能力分析能力可裁減性和可擴(kuò)充性項(xiàng)目控制和管理方法學(xué)的支持
44典型的軟件工程環(huán)境具有三級(jí)結(jié)構(gòu):1.核心級(jí)(核心工具組、數(shù)據(jù)庫、通訊工具、運(yùn)行支持功能、與硬件無關(guān)的移植接口)2.基本級(jí)(環(huán)境的用戶工具,編譯、編輯程序,作業(yè)控制語言的解釋程序等)3.應(yīng)用級(jí)(應(yīng)用軟件的開發(fā)工具)應(yīng)用級(jí)基本級(jí)核心級(jí)45要素三:軟件工程過程將軟件工程的方法和工具綜合起來,達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的定義方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個(gè)階段完成的里程碑等基本的過程活動(dòng)包括軟件描述、軟件開發(fā)、軟件確認(rèn)、軟件演化等46軟件生存周期
(softwarelifecycle)軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的生存過程。這個(gè)過程即為計(jì)算機(jī)軟件的生存周期軟件生存周期大體可分為如下幾個(gè)活動(dòng):計(jì)算機(jī)系統(tǒng)工程(計(jì)劃和分析)、需求分析、設(shè)計(jì)、編碼、測(cè)試、運(yùn)行和維護(hù)47軟件開發(fā)的基本目標(biāo)較低的開發(fā)成本達(dá)到要求的軟件功能取得較好的軟件性能開發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用按時(shí)完成開發(fā)工作,及時(shí)交付使用48目標(biāo)之間的關(guān)系軟件開發(fā)項(xiàng)目的實(shí)施,力圖在各個(gè)目標(biāo)的沖突之間取得一定程度的平衡49軟件工程七原則(B.W.Boehm,1983)按軟件生存期分階段制定計(jì)劃并認(rèn)真實(shí)施堅(jiān)持進(jìn)行階段評(píng)審堅(jiān)持嚴(yán)格的產(chǎn)品控制使用先進(jìn)的程序設(shè)計(jì)技術(shù)明確責(zé)任用人少而精不斷改進(jìn)開發(fā)過程50內(nèi)容摘要軟件的概念軟件工程的基本概念軟件過程及其模型51軟件過程軟件過程是軟件生存周期中的一系列相關(guān)的過程。過程是活動(dòng)的集合,活動(dòng)是任務(wù)的集合。軟件過程有三層含義:個(gè)體含義:軟件產(chǎn)品或系統(tǒng)在生存周期中的某一類活動(dòng)的集合,如軟件開發(fā)過程,軟件管理過程等整體含義:軟件產(chǎn)品或系統(tǒng)在所有上述含義下的軟件過程的總體工程含義:即指解決軟件過程的工程,它應(yīng)用軟件工程的原則、方法來構(gòu)造軟件過程模型,并結(jié)合軟件產(chǎn)品的具體要求進(jìn)行實(shí)例化,以及在用戶環(huán)境下的運(yùn)作,以此進(jìn)一步提高軟件生產(chǎn)率,降低成本52軟件過程體系結(jié)構(gòu)53ISO12207軟件生存周期過程ISO/IEC12207標(biāo)準(zhǔn)把軟件生存周期中可以開展的活動(dòng)分為:5個(gè)基本過程8個(gè)支持過程4個(gè)組織過程每一個(gè)過程劃分為一組活動(dòng),每項(xiàng)活動(dòng)進(jìn)一步劃分為一組任務(wù)。541、軟件規(guī)格說明:規(guī)定軟件的功能及其運(yùn)行環(huán)境2、軟件開發(fā):產(chǎn)生滿足規(guī)格說明的軟件3、軟件確認(rèn):確認(rèn)軟件能夠完成客戶提出的要求4、軟件演化:為滿足客戶的變更要求,軟件必須在使用的過程中演進(jìn)。軟件過程通常包括四類基本過程55軟件過程模型軟件過程模型是軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架也稱軟件開發(fā)模型或軟件生存周期模型典型的軟件過程模型有:瀑布模型(waterfallmodel)演化模型(evolutionarymodel)增量模型(incrementalmodel)原型模型(prototypingmodel)螺旋模型(spiralmodel)噴泉模型(waterfountainmodel)基于構(gòu)件的開發(fā)模型(component-baseddevelopmentmodel)形式方法模型(formalmethodsmodel)56邊做邊改模型(Build-and-FixModel)“作坊式”開發(fā),主要問題在于:缺少規(guī)劃和設(shè)計(jì)環(huán)節(jié),導(dǎo)致軟件無法繼續(xù)修改忽略需求環(huán)節(jié)沒有考慮測(cè)試和程序的可維護(hù)性57瀑布模型
(W.Royce,1970年)問題定義編碼需求分析設(shè)計(jì)可行性研究運(yùn)行與維護(hù)測(cè)試開發(fā)時(shí)期運(yùn)行時(shí)期計(jì)劃時(shí)期(目標(biāo)與范圍說明書)(可行性論證論告)(維護(hù)報(bào)告)(測(cè)試報(bào)告)(程序)(設(shè)計(jì)文檔)(需求說明書)58瀑布模型的特點(diǎn):
特征接受上一階段的結(jié)果作為本階段的輸入利用這一輸入實(shí)施本階段應(yīng)完成的活動(dòng)對(duì)本階段的工作進(jìn)行評(píng)審將本階段的結(jié)果作為輸出,傳遞給下一階段
缺點(diǎn)缺乏靈活性,難以適應(yīng)需求不明確或需求經(jīng)常變化的軟件開發(fā)開發(fā)早期存在的問題往往要到交付使用時(shí)才發(fā)現(xiàn),維護(hù)代價(jià)大59循環(huán)模型為了描述軟件開發(fā)過程中可能的回溯,尤其是維護(hù)階段往往要經(jīng)歷上述各個(gè)階段,采用循環(huán)模型描述需求分析設(shè)計(jì)編碼測(cè)試運(yùn)行評(píng)價(jià)計(jì)劃60增量模型項(xiàng)目日歷時(shí)間軟件功能性和特征12345第2次增量發(fā)布增量212345第n次增量發(fā)布增量n12345第1次增量發(fā)布增量1┇5部署(發(fā)布,反饋)4構(gòu)造(編碼,測(cè)試)3建模(分析,設(shè)計(jì))2計(jì)劃1交流61增量模型將軟件的開發(fā)過程分成若干個(gè)日程時(shí)間交錯(cuò)的線性序列,每個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的“增量”版本,后一個(gè)版本是對(duì)前一版本的修改和補(bǔ)充,重復(fù)增量發(fā)布的過程,直至產(chǎn)生最終的完善產(chǎn)品。增量模型融合了瀑布模型的基本成分(重復(fù)地應(yīng)用)和演化模型的迭代特征增量模型強(qiáng)調(diào)每一個(gè)增量都發(fā)布一個(gè)可運(yùn)行的產(chǎn)品62增量模型特別適用于:需求經(jīng)常變化的軟件開發(fā)市場(chǎng)急需而開發(fā)人員和資金不能在設(shè)定的市場(chǎng)期限之前實(shí)現(xiàn)一個(gè)完善的產(chǎn)品的軟件開發(fā)增量模型能有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn),如早期增量版本中避免采用尚未成熟的技術(shù)63原型(prototype)是預(yù)期系統(tǒng)的一個(gè)可執(zhí)行版本,它反映了系統(tǒng)性質(zhì)(如功能、計(jì)算結(jié)果等)的一個(gè)選定的子集。一個(gè)原型不必滿足目標(biāo)軟件的所有約束,其目的是能快速、低成本地構(gòu)建原型。原型方法從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標(biāo),標(biāo)識(shí)需求。然后快速制訂原型開發(fā)的計(jì)劃,確定原型的目標(biāo)和范圍,采用快速設(shè)計(jì)的方式對(duì)其建模,并構(gòu)建原型。被開發(fā)的原型應(yīng)交付給客戶試用,并收集客戶的反饋意見,這些反饋意見可在下一輪迭代中對(duì)原型進(jìn)行改進(jìn)。在前一個(gè)原型需要改進(jìn),或者需要擴(kuò)展其范圍的時(shí)候,進(jìn)入下一輪原型的迭代開發(fā)。原型模型64部署交付和反饋構(gòu)建原型交流快速設(shè)計(jì)方式建??焖儆?jì)劃原型模型65原型模型的特點(diǎn)優(yōu)點(diǎn)能夠處理模糊的需求,開發(fā)人員與用戶可通過原型充分進(jìn)行交流原型系統(tǒng)可用做培訓(xùn)環(huán)境有助于降低風(fēng)險(xiǎn)、降低總的開發(fā)費(fèi)用,縮短開發(fā)時(shí)間缺點(diǎn)對(duì)于開發(fā)人員不熟悉的領(lǐng)域,演化模型可能誤導(dǎo)開發(fā)者把系統(tǒng)的次要部分當(dāng)作主要框架,作出不切題的原型原型迭代不收斂于開發(fā)者預(yù)定的目標(biāo)原型過快地收斂于需求集合,使得某些基本方面被忽視資源規(guī)劃和管理比較困難,隨時(shí)更新文檔也會(huì)帶來許多麻煩長期在原型環(huán)境下開發(fā),只注意得到令人滿意的原型,容易“遺忘”用戶環(huán)境與實(shí)際客戶環(huán)境之間的差別66瀑布模型和演化模型的結(jié)合,增加了風(fēng)險(xiǎn)分析螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限上分別表達(dá)四個(gè)方面的活動(dòng),即:制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件風(fēng)險(xiǎn)分析:評(píng)價(jià)所選的方案,識(shí)別風(fēng)險(xiǎn),消除風(fēng)險(xiǎn)工程實(shí)施:實(shí)施軟件開發(fā),驗(yàn)證工作產(chǎn)品客戶評(píng)估:評(píng)價(jià)開發(fā)工作,提出修正建議螺旋模型(B.Boehm,1988)67
68簡化的螺旋模型
簡化版本:瀑布模型+風(fēng)險(xiǎn)分析每個(gè)階段之前確定目標(biāo),可供選擇的辦法及其限制條件風(fēng)險(xiǎn)分析每個(gè)階段之后評(píng)估計(jì)劃下一階段69螺旋模型的特點(diǎn)適合于大型軟件的開發(fā),它吸收了軟件工程“演化”的概念,使得開發(fā)人員和客戶對(duì)每個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn)有所了解,繼而做出應(yīng)有的反映模型的使用需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí)。如果項(xiàng)目風(fēng)險(xiǎn)較大,又未能及時(shí)發(fā)現(xiàn),勢(shì)必造成重大損失70噴泉模型噴泉模型是一種支持面向?qū)ο箝_發(fā)的模型體現(xiàn)迭代和無間隙特征迭代:各開發(fā)活動(dòng)常常重復(fù)工作多次,相關(guān)的功能在每次迭代中隨之加入演進(jìn)的系統(tǒng)無間隙:開發(fā)活動(dòng)之間不存在明顯的邊界71支持軟件復(fù)用(reuse)利用預(yù)先包裝好的軟件構(gòu)件(包括組織內(nèi)部開發(fā)的構(gòu)件和現(xiàn)存商品化構(gòu)件COTS)來構(gòu)造應(yīng)用系統(tǒng)基于構(gòu)件的開發(fā)模型72形式方法模型(formalmethods)是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計(jì)、編程、系統(tǒng)集成、測(cè)試、文檔生成、直至維護(hù)各個(gè)階段,凡是采用嚴(yán)格的數(shù)學(xué)語言,具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化方法用嚴(yán)格的數(shù)學(xué)語言和語義描述功能規(guī)約和設(shè)計(jì)規(guī)約,通過數(shù)學(xué)的分析和推導(dǎo),易于發(fā)現(xiàn)需求的岐義性、不完整性和不一致性,易于對(duì)分析模型、設(shè)計(jì)模型和程序進(jìn)行驗(yàn)證。通過數(shù)學(xué)的演算,使得從形式化功能規(guī)約到形式化設(shè)計(jì)規(guī)約,以及從形式化設(shè)計(jì)規(guī)約到程序代碼的轉(zhuǎn)換成為可能。73形式化開發(fā)的方式采用形式化的軟件開發(fā)方法,對(duì)形式化的軟件規(guī)格說明進(jìn)行一系列自動(dòng)的或半自動(dòng)的程序變換,最終映射成為計(jì)算機(jī)系統(tǒng)能夠接受的程序系統(tǒng)74形式化規(guī)格說明及其變換技術(shù)主要技術(shù)手段基于模型的規(guī)格說明及其變換技術(shù)基于代數(shù)結(jié)構(gòu)及其變換技術(shù)基于時(shí)序邏輯的規(guī)格說明和驗(yàn)證技術(shù)基于可視化的形式化技術(shù)……程序變換系統(tǒng)由一系列程序變換語言(大多是系統(tǒng)內(nèi)部的中間語言)及其編譯系統(tǒng)、分析驗(yàn)證工具、控制變換過程的工具和變換規(guī)則庫構(gòu)成。
75本章小結(jié)軟件的基本概念軟件危機(jī)的表現(xiàn)和原因軟件工程的基本概念常見的軟件過程模型及其特點(diǎn)76討論:一些關(guān)于軟件工程的觀點(diǎn)我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問題如果我們已經(jīng)落后于計(jì)劃,可以增加更多的程序員來趕上進(jìn)度項(xiàng)目需求總是在不斷變化,但這些變化能夠很容易地滿足,因?yàn)檐浖庆`活的一旦我們寫出了程序并使其正常運(yùn)行,我們的工作就結(jié)束了。人們有時(shí)認(rèn)為,只有差的軟件產(chǎn)品才需要維護(hù)77本課程的教學(xué)目標(biāo)軟件生命期各個(gè)階段的主要工作需求分析、設(shè)計(jì)、測(cè)試等關(guān)鍵任務(wù)的方法和技術(shù)有關(guān)CASE工具的使用MSProject;RationalRose;MSVisualSourceSafe;JUnit等主要軟件文檔的撰寫經(jīng)驗(yàn)與討論78w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaJ7F4C0z)w&oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOG5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版七年級(jí)上冊(cè)歷史與社會(huì)第三單元 第三課《傍水而居》教學(xué)設(shè)計(jì)
- 27 故事二則《扁鵲治病》(教學(xué)設(shè)計(jì) )-2024-2025學(xué)年統(tǒng)編版語文四年級(jí)上冊(cè)
- Introductory Unit High Technology(教學(xué)設(shè)計(jì))-2024-2025學(xué)年劍橋國際少兒英語Kid's Box6第六冊(cè)
- Welcome to school (教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)(2024)英語三年級(jí)上冊(cè)
- 11爸爸媽媽在我心中-愛父母在行動(dòng)(第2課時(shí))(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版道德與法治三年級(jí)上冊(cè)
- 滬科版高中信息技術(shù)必修教材《信息技術(shù)基礎(chǔ)》教學(xué)設(shè)計(jì):第3章 信息的加工與獲取 綜合活動(dòng) 資料網(wǎng)站的制作(保護(hù)水資源)
- 全國中圖版高中信息技術(shù)選修2第二單元第一節(jié)1、《素材獲取》教學(xué)設(shè)計(jì)
- 新型儲(chǔ)能在電動(dòng)汽車中的應(yīng)用
- 第五單元《倍的認(rèn)識(shí)》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年三年級(jí)數(shù)學(xué)上學(xué)期人教版
- 影劇院外立面裝修合同范本
- 蘭州市規(guī)范醫(yī)療服務(wù)價(jià)格項(xiàng)目基準(zhǔn)價(jià)格表
- 西漢-北京大學(xué)歷史學(xué)系教學(xué)課件
- DB3202-T 1026-2022 無錫市安全生產(chǎn)技術(shù)服務(wù)單位等級(jí)評(píng)定規(guī)范
- 產(chǎn)品設(shè)計(jì)材料及工藝PPT完整版全套教學(xué)課件
- 2006年度銀行業(yè)金融機(jī)構(gòu)信息科技風(fēng)險(xiǎn)評(píng)價(jià)審計(jì)要點(diǎn)
- 反恐C-TPAT程序文件整套(通用)
- 2022年全國高考詩歌鑒賞試題-教學(xué)課件
- 化學(xué)檢驗(yàn)工高級(jí)工理論知識(shí)試題題及答案
- 廣東省五年一貫制語文試卷
- 收養(yǎng)協(xié)議書真實(shí)范本模板
- 國家電網(wǎng)公司電力安全工作規(guī)程 配電部分 試行
評(píng)論
0/150
提交評(píng)論