




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
北京理工大學(xué)教學(xué)課件軟件工程北京理工大學(xué)教學(xué)課件
課名:軟件工程參考教材:1、張海藩,軟件工程導(dǎo)論(第5版),清華大學(xué)出版社,20082、齊治昌等,軟件工程(第二版),高等教育出版社,20063、鄭人杰等,軟件工程概論,機(jī)械工業(yè)出版社,2010教學(xué)方式:授課+實(shí)驗(yàn)課時:40課名:軟件工程參考教材:教學(xué)目的和要求:(1)掌握軟件工程的基本概念(2)學(xué)會軟件工程項(xiàng)目開發(fā)過程的分析、設(shè)計(jì)、編碼要求以及測試、維護(hù)的基本策略和方法(3)了解軟件工程項(xiàng)目管理的基本內(nèi)容和方法教學(xué)目的和要求:(1)掌握軟件工程的基本概念主要內(nèi)容為:(1)軟件工程概述:軟件工程發(fā)展、過程模型.(2)
軟件工程技術(shù):
軟件工程分析方法、軟件工程系統(tǒng)設(shè)計(jì)方法、軟件測試技術(shù)(3)軟件維護(hù):軟件的可維性、軟件維護(hù)的任務(wù)及過程、
軟件維護(hù)的副作用(4)軟件項(xiàng)目管理技術(shù):軟件項(xiàng)目管理的基本概念、項(xiàng)目計(jì)劃、風(fēng)險分析、軟件質(zhì)量保證、軟件配置管理主要內(nèi)容為:(1)軟件工程概述:軟件工程發(fā)展、過程模型.第一章軟件工程概述第一章第一章軟件工程概述的內(nèi)容1.1引言
1.2
軟件基本概念、分類、特點(diǎn)1.3軟件工程的發(fā)展過程
1.4軟件工程的活動
1.5
軟件過程模型
1.6
Rational統(tǒng)一過程模型
第一章軟件工程概述的內(nèi)容1.1引言
1.1引言為什么要講軟件和軟件工程?唯有對軟件和軟件的開發(fā)過程,有充分的認(rèn)識,才能更好的開發(fā)出過程受控、質(zhì)量受控的軟件產(chǎn)品。對于軟件和軟件工程的認(rèn)識是困難的,但軟件開發(fā)過程又存在很多困惑,需要對此有正確的、深刻的認(rèn)識。1.1引言為什么要講軟件和軟件工程?1.1引言軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序任何預(yù)先定義好的程序步驟的地方,都有軟件的身影軟件的應(yīng)用領(lǐng)域系統(tǒng)軟件實(shí)時軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個人計(jì)算機(jī)軟件基于Web的軟件(網(wǎng)站)人工智能軟件1.1引言軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序1.2.1軟件1.2軟件基本概念、分類、特點(diǎn)
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。三要素程序:按事先設(shè)計(jì)的功能、性能要求執(zhí)行的指令
(語句)序列;數(shù)據(jù):使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔:與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料??蓤?zhí)行的1.2.1軟件1.2軟件基本概念、分類、特點(diǎn)計(jì)算機(jī)軟件定義(GB)與計(jì)算機(jī)系統(tǒng)的操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。其中:I=(i1,i2,…,in)
輸入集合。Ij表示一個抽象的輸入數(shù)據(jù)類型O=(O1,O2,…,On)
輸出集合。Oj表示一個抽象的輸出數(shù)據(jù)類型E=(e1,e2,…,en)
構(gòu)成集合。ei表示一個子系統(tǒng)或一個構(gòu)件R=(r1,r2,…,rn)
構(gòu)件關(guān)系集合.ri表示一個關(guān)系。軟件表示
S=(I,O,E,R)計(jì)算機(jī)軟件定義(GB)其中:軟件表示1.2.2軟件的特點(diǎn)1.是邏輯實(shí)體,非物理實(shí)體,具抽象性;2.沒有明顯的制作過程;3.運(yùn)行、使用期間不存在磨損、老化;4.軟件的開發(fā)、運(yùn)行受計(jì)算機(jī)系統(tǒng)的限制;復(fù)雜性高,成本昂貴。涉及社會因素。1.2.2軟件的特點(diǎn)1.是邏輯實(shí)體,非物理實(shí)體,具抽象1.2.3軟件分類軟件從設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)工程有相同的基礎(chǔ)2.基于軟件工作方式:*實(shí)時處理*分時處理*交互處理*批處理1.基于軟件大的功能框架:
*系統(tǒng)軟件*支撐(工具)軟件*應(yīng)用軟件1.2.3軟件分類軟件從設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)工程有管理者的錯誤觀點(diǎn):我們已經(jīng)有標(biāo)準(zhǔn)和規(guī)程了我們已經(jīng)有好的開發(fā)平臺和工具了我們可以在開發(fā)進(jìn)度得不到保障時,可增加開發(fā)人員我們可以外包一部分項(xiàng)目,緩解項(xiàng)目的壓力用戶的錯誤觀點(diǎn):因?yàn)橹理?xiàng)目的目標(biāo),可先編程序。不考慮項(xiàng)目將來怎樣,以后要變改就行了開發(fā)者的錯誤觀點(diǎn):編完程序就大功告成程序未運(yùn)行前,沒有質(zhì)量問題最后項(xiàng)目完成只提交程序軟件工程,就是寫文檔,增加開發(fā)成本1軟件開發(fā)的錯誤觀點(diǎn)開發(fā)者管理者用戶1.2.4軟件開發(fā)技術(shù)面臨的問題管理者的錯誤觀點(diǎn):用戶的錯誤觀點(diǎn):開發(fā)者的錯誤觀點(diǎn):1軟件開1.2.5軟件危機(jī)概括地說,軟件危機(jī)包含下述兩個方面的問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。在軟件開發(fā)和維護(hù)的過程中存在這么多嚴(yán)重問題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。1.2.5軟件危機(jī)概括地說,軟件危機(jī)包含下述兩個方面的問題1.2.6.軟件危機(jī)的主要特點(diǎn)軟件開發(fā)周期大大超過規(guī)定日期;軟件系統(tǒng)開發(fā)成本高,周期長,質(zhì)量差,滿足不了市場需求;
軟件質(zhì)量無保證軟件系統(tǒng)開發(fā)人員數(shù)量少,質(zhì)量低.軟件系統(tǒng)維護(hù)難度大.軟件開發(fā)缺乏合適的工具和方法軟件的版權(quán)問題得不到保證1.2.6.軟件危機(jī)的主要特點(diǎn)軟件開發(fā)周期大大超過規(guī)定日期;1.2.7yet,SuccessHasntComeEasily31%53%成功爭議失敗16%成功的標(biāo)準(zhǔn):用戶在使用用戶使用軟件很容易做完要做的事
開發(fā)人員寫出的軟件達(dá)不到用戶要求:人的能力問題.
當(dāng)前技術(shù)發(fā)展問題系統(tǒng)平臺問題失敗的根本原因1.2.7yet,SuccessHasntCome1.3軟件工程的發(fā)展1.3.1軟件的發(fā)展在軟件危機(jī)形式下,軟件工程誕生了,1968年在北大西洋公約組織(NATO)的德國開的學(xué)術(shù)會議上,軟件工程術(shù)語首次提出1.3軟件工程的發(fā)展1.3.1軟件的發(fā)展在軟件危機(jī)形式1.3.2軟件生命周期(SoftwareLifeCycle)軟件產(chǎn)品或軟件系統(tǒng)從設(shè)計(jì)、投入使用到被淘汰的全過程1.3.2軟件生命周期(SoftwareLife工作成果計(jì)劃任務(wù)書需求規(guī)格說明書設(shè)計(jì)說明書基本任務(wù)理解工作范圍建立軟件結(jié)構(gòu)確定模塊結(jié)構(gòu)定義用戶需求階段計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)系統(tǒng)分析員開發(fā)組完成人編碼測試維護(hù)編寫程序發(fā)現(xiàn)和排除問題運(yùn)行和管理程序軟件產(chǎn)品改進(jìn)的軟件產(chǎn)品用戶程序員測試小組工作成果計(jì)劃任務(wù)書需求規(guī)格說明書設(shè)計(jì)說明書基本任務(wù)理解工作范1.3.3硬件、軟件生命周期的比較硬件故障率曲線軟件實(shí)際故障率曲線生命初期磨損后理想曲線實(shí)際曲線由于副作用造成的故障率提高修改故障率故障率時間時間1.3.3硬件、軟件生命周期的比較硬件故障率曲線軟件實(shí)際故
改正一個問題需付出的代價需求分析結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的估計(jì)費(fèi)用改正一個問題估計(jì)的工作量20200200010005.02.50.050.5(美元)(人天)改正一個問題需付出的代價需結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測試系統(tǒng)1.4軟件工程的定義1IEEE93對軟件工程定義:軟件工程是(1)將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)。即將工程化應(yīng)用于軟件。(2)在(1)中所述方法的研究IEEE:美國電氣和電子工程師學(xué)會:(InstituteofElectricalandElectronicsEngineers)學(xué)會設(shè)各種專門技術(shù)分會,軟件標(biāo)準(zhǔn)分技術(shù)委員會為SESS2定義給的四個要點(diǎn):軟件工程方法和性質(zhì)----系統(tǒng)化、嚴(yán)格約束、可量化的方法軟件工程方法的作用和范圍-----軟件的開發(fā)、運(yùn)行和維護(hù)軟件工程方法的目標(biāo)----即將工程化應(yīng)用于軟件軟件工程方法的趨勢-----方法的研究1.4軟件工程的定義1IEEE93對軟件工程定義:I在給定成本、進(jìn)度的前提下,開發(fā)出有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。3軟件工程的目標(biāo)技術(shù)的觀點(diǎn):包括:軟件項(xiàng)目的分析、設(shè)計(jì)、編碼、測試、維護(hù)等技術(shù)方法。按軟件技術(shù)理論,以高效、健壯、可復(fù)用、可維護(hù)為目的,研究軟件體系結(jié)構(gòu)、組成以及構(gòu)造方式、等工程的觀點(diǎn):包括:軟件項(xiàng)目招標(biāo)、合同、實(shí)施、監(jiān)督、驗(yàn)收推廣等。以經(jīng)濟(jì)管理科學(xué)為依據(jù),研究軟件工程的規(guī)劃策略和經(jīng)濟(jì)收益等工程問題管理的觀點(diǎn):包括:軟件項(xiàng)目開發(fā)人員組織控制、進(jìn)度風(fēng)險分析和質(zhì)量保證體系等方面。以科學(xué)性、高效可行及可測量性為目標(biāo)來研究工程項(xiàng)目管理4軟件工程的三視圖在給定成本、進(jìn)度的前提下,開發(fā)出有可修改性、有效性、可靠性、5軟件工程基本原理1、用分階段的生命周期計(jì)劃嚴(yán)格管理2、堅(jiān)持進(jìn)行階段評審3、實(shí)行嚴(yán)格的產(chǎn)品控制4、采用現(xiàn)代程序設(shè)計(jì)技術(shù)5、結(jié)果應(yīng)能清楚地審查6、開發(fā)小組的人員應(yīng)該少而精7、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性5軟件工程基本原理1、用分階段的生命周期計(jì)劃嚴(yán)格管理軟件工程的基本思想生命周期的觀點(diǎn)重視文檔的作用自上而下和逐步細(xì)化的思想模塊化的思想反復(fù)迭代的思想注意編程風(fēng)格軟件工程的基本思想1.5軟件過程模型軟件工程學(xué)的基礎(chǔ)是軟件過程軟件過程貫穿于軟件生命周期中軟件工程學(xué)中的方法用于軟件過程的各階段的各項(xiàng)活動中1.5軟件過程模型軟件工程學(xué)的基礎(chǔ)是軟件過程1軟件過程定義工具方法過程質(zhì)量焦點(diǎn)Softwareengineeringlayers質(zhì)量焦點(diǎn):支持軟件工程的根基就在于對質(zhì)量的關(guān)注。過程:軟件工程的過程將技術(shù)層結(jié)合在一起,使計(jì)算機(jī)軟件合理和及時開發(fā)出來。方法:涵蓋一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測試和維護(hù)。工具:對過程、方法提供自動或半自動的支持。例CASE集成軟件、硬件或一個軟件工程數(shù)據(jù)庫。根據(jù)不同的項(xiàng)目來定義貫穿于軟件生命周期之中的一組關(guān)鍵活動區(qū)域。也稱過程模型2軟件過程的位置和作用1軟件過程定義工具方法過程質(zhì)量焦點(diǎn)Softwaree3.瀑布模型(線形順序模型)可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段開發(fā)軟件的特點(diǎn):過程具有順序性和依賴性不適應(yīng)需求不確定的項(xiàng)目錯誤最后才發(fā)現(xiàn)開始進(jìn)程呈阻塞情況
承接上一項(xiàng)活動中接收本項(xiàng)活動所需的對象作為輸入利用輸入進(jìn)行本項(xiàng)活動。把本項(xiàng)的活動成果傳送下一項(xiàng)對本項(xiàng)工作進(jìn)行評審,若評審正確才能進(jìn)行下一項(xiàng)工作確定:系統(tǒng)功能系統(tǒng)性能設(shè)計(jì):數(shù)據(jù)結(jié)構(gòu)體系結(jié)構(gòu)接口算法開發(fā)軟件的原則分析:系統(tǒng)需求軟件需求3.瀑布模型(線形順序模型)可行性研究與計(jì)劃需求分析設(shè)計(jì)4原型模型聽取用戶意見建造/修改原型用戶測試運(yùn)行原型原型模型帶來的問題:原型時期的質(zhì)量問題用戶如何理解進(jìn)度先入為主的非最佳方式不適合原型開發(fā)的領(lǐng)域:
實(shí)時控制軟件數(shù)值計(jì)算軟件原型產(chǎn)生的步驟需求分析和定義規(guī)格軟件設(shè)計(jì)的一種工具解決不確定性的工具一種實(shí)驗(yàn)工具開發(fā)同時,作為同步培訓(xùn)工具原型演化為最終系統(tǒng)軟件維護(hù)的輔助工具應(yīng)用領(lǐng)域4原型模型聽取用建造/修改原型用戶測試原型模型帶來的問題:需求設(shè)計(jì)編碼測試集成運(yùn)行、試用核心系統(tǒng)開發(fā)設(shè)計(jì)需求編碼測試集成運(yùn)行、試用第二次迭代反饋反饋5演化(迭代)模型需要足夠的人力資源用戶和設(shè)計(jì)都成為關(guān)鍵適用于MIS形式的系統(tǒng)開發(fā)過程(1)根據(jù)用戶要求開發(fā)出核心系統(tǒng)(2)用戶試用后,提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求,開發(fā)人員實(shí)施開發(fā)的迭代過程需求設(shè)計(jì)編碼測試集成運(yùn)核心系統(tǒng)開發(fā)設(shè)計(jì)需求編碼測試集成運(yùn)第二6增量模型(遞增模型、增殖模型)
先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能(系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。系統(tǒng)的總體設(shè)計(jì)在初始子集設(shè)計(jì)階段就應(yīng)作出設(shè)想。6增量模型(遞增模型、增殖模型)先完成一個系統(tǒng)子分析增量模型設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試增量1增量2增量3增量4交付的增量1交付的增量2交付的增量3交付的增量4日歷時間分析增量模型設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析7.螺旋模型
瀑布模型和增量模型相結(jié)合,增加風(fēng)險分析用來指導(dǎo)大型軟件項(xiàng)目的開發(fā)將開發(fā)劃分為制定計(jì)劃、風(fēng)險分析、實(shí)施工程、客戶評估四類活動沿螺旋線每轉(zhuǎn)一圈,表示開發(fā)出一個更完善的新的軟件版本要點(diǎn):相似于增量模型,是順序模型與原型過程的統(tǒng)一,強(qiáng)調(diào)版本的升級?;顒踊植煌鼜?qiáng)調(diào):計(jì)劃、風(fēng)險分析、用戶評估與增量模型的區(qū)別:7.螺旋模型瀑布模型和增量模型相結(jié)合,增加風(fēng)險分析要8.噴泉模型演化分析設(shè)計(jì)實(shí)現(xiàn)確認(rèn)維護(hù)1990年B.H.Sollers和J.M.Edwards提出主要用于采用面向?qū)ο蠹夹g(shù)的項(xiàng)目噴泉體現(xiàn)迭代和無間隙的特征軟件的某些部分常常被重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入漸進(jìn)的軟件成分在分析、設(shè)計(jì)、實(shí)現(xiàn)等各項(xiàng)活動之間無明顯邊界8.噴泉模型演化分析設(shè)計(jì)實(shí)現(xiàn)確認(rèn)維護(hù)1990年B.H.So9.構(gòu)件集成模型
構(gòu)件庫問題域識別構(gòu)件查找構(gòu)件生成構(gòu)件組裝系統(tǒng)查到構(gòu)件未查到構(gòu)件模型要點(diǎn):?基于軟件復(fù)用性?形成統(tǒng)一開發(fā)過程?采用統(tǒng)一建模語言359.構(gòu)件集成模型構(gòu)件庫問題域識別構(gòu)件查找構(gòu)件生成構(gòu)件組裝系基本需求螺旋螺旋模型第n次迭代原型建造原型第n次迭代維護(hù)運(yùn)行系統(tǒng)需求分析設(shè)計(jì)編碼測試132578614944GT4GT4GT10111213組合模型要點(diǎn):幾種模型配合使用以一種模型為主,嵌入其它模型由開發(fā)者選擇開發(fā)路徑基本需求螺旋螺旋模型原型建造原型維護(hù)運(yùn)行系統(tǒng)需求分析設(shè)計(jì)編碼?已經(jīng)有先例的項(xiàng)目?問題明確且時間緊的項(xiàng)目?規(guī)模較大且時間緊的項(xiàng)目?需求不確定的項(xiàng)目?帶有突破性技術(shù)的項(xiàng)目?客戶難以溝通和理解的項(xiàng)目?明顯復(fù)用潛力的項(xiàng)目項(xiàng)目適應(yīng)模型的規(guī)律(一般情況)
項(xiàng)目情況適用模型瀑布模型增量模型演化模型原型模型螺旋模型原型模型構(gòu)件模型37?已經(jīng)有先例的項(xiàng)目項(xiàng)Rational統(tǒng)一過程RUPRUP是由IBM公司開發(fā)和維護(hù)的過程產(chǎn)品它提供了在開發(fā)機(jī)構(gòu)中分派任務(wù)和責(zé)任的方法它的目的是在可以預(yù)見的日程和預(yù)算前提下確保滿足最終用戶需求的高質(zhì)量軟件的產(chǎn)生Rational統(tǒng)一過程RUPRUP是由IBM公司開發(fā)和維護(hù)RUP的優(yōu)越性提高了團(tuán)隊(duì)的生產(chǎn)力創(chuàng)建并維護(hù)模型為如何有效地使用UML提供了指導(dǎo)是一個可配置的過程吸收了許多在商業(yè)上得到證明的軟件開發(fā)的最佳實(shí)踐經(jīng)驗(yàn)RUP的優(yōu)越性提高了團(tuán)隊(duì)的生產(chǎn)力RUP所吸收的最佳工程實(shí)踐經(jīng)驗(yàn)迭代地開發(fā)軟件需求管理使用基于組件的體系結(jié)構(gòu)可視化的軟件建模驗(yàn)證軟件質(zhì)量控制軟件的變化RUP所吸收的最佳工程實(shí)踐經(jīng)驗(yàn)迭代地開發(fā)軟件RUP的二維結(jié)構(gòu)RUP的二維結(jié)構(gòu)軟件工程方法學(xué)
通常把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。軟件工程方法學(xué)包括三個要素,這就是方法、工具和過程。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。軟件工程方法學(xué)43結(jié)構(gòu)化方法PK面向?qū)ο蠓椒?3結(jié)構(gòu)化方法PK面向?qū)ο蠓椒?4結(jié)構(gòu)化方法PK面向?qū)ο蠓椒▊鹘y(tǒng)的結(jié)構(gòu)化開發(fā)方法是以功能分析和數(shù)據(jù)分析為基礎(chǔ),采用分解和抽象的方法找出軟件功能模塊及其之間的連接關(guān)系,并找出數(shù)據(jù)的表或視圖以及它們之間的關(guān)聯(lián)。但是,該方法使得人們對現(xiàn)實(shí)世界的認(rèn)識與編程之間存在理解上的鴻溝,整個系統(tǒng)的變動和修改十分困難,不便于軟件重用,并且難以適應(yīng)以突出控制特性的系統(tǒng)要求。44結(jié)構(gòu)化方法PK面向?qū)ο蠓椒▊鹘y(tǒng)的結(jié)構(gòu)化開發(fā)方法是以功45結(jié)構(gòu)化方法PK面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄊ菑默F(xiàn)實(shí)世界中客觀存在的事物(即對象)出發(fā),盡可能地運(yùn)用人類的自然思維方式來構(gòu)造軟件系統(tǒng)。它運(yùn)用人類在日常的邏輯思維中經(jīng)常采用的思想方法與原則,例如抽象、分類、繼承、聚合、封裝等,將其貫穿于整個分析和設(shè)計(jì)過程,實(shí)現(xiàn)了客觀世界到計(jì)算機(jī)系統(tǒng)的平滑過渡,容易為人們所理解,并使得軟件的復(fù)用在面向?qū)ο蟮脑O(shè)計(jì)中成了自然而然的事情。45結(jié)構(gòu)化方法PK面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄊ菑默F(xiàn)實(shí)世界中46什么是CASECASE(ComputerAidedSoftwareEngineering)計(jì)算機(jī)輔助軟件工程是一組工具和方法的集合,用于輔助軟件開發(fā)、維護(hù)、管理過程中的各項(xiàng)活動,促進(jìn)軟件過程的工程化和自動化所有軟件工程方法都需要CASE的相應(yīng)技術(shù)支持用于系統(tǒng)模型的圖形編輯器管理設(shè)計(jì)實(shí)體的數(shù)據(jù)字典生成用戶界面的GUI軟件支持程序糾錯的調(diào)試器代碼生成器…46什么是CASECASE(ComputerAided47CASE工具IBMRational公司產(chǎn)品()開發(fā)管理軟件過程:RUP需求管理:Requisite
Pro
可視化建模:Rose自動測試:Robot,TestRealtime,TestManager,XDETester項(xiàng)目管理:ProjectConsole配置管理:ClearCase,ClearQuest開源CASE工具:(
)CVS:應(yīng)用廣泛的版本管理工具UMLModeler:UML模型圖形編輯工具UML2EJB:將XML表示的UML模型轉(zhuǎn)換成EJB代碼的轉(zhuǎn)換器47CASE工具IBMRational公司產(chǎn)品(http48進(jìn)一步說明48進(jìn)一步說明49軟件工程面臨的挑戰(zhàn)遺留系統(tǒng)的問題遺留系統(tǒng)是指那些過時或存在問題的計(jì)算機(jī)系統(tǒng),通常是許多年以前開發(fā)的挑戰(zhàn):既要以合理的成本維護(hù)和更新系統(tǒng),又要能夠繼承系統(tǒng)中重要的商業(yè)信息和服務(wù)異構(gòu)系統(tǒng)的問題網(wǎng)絡(luò)環(huán)境下包含不同的硬件平臺和軟件系統(tǒng)挑戰(zhàn):需要提出新的開發(fā)技術(shù),能夠使所開發(fā)的軟件系統(tǒng)運(yùn)行在不同的硬件平臺和系統(tǒng)環(huán)境下49軟件工程面臨的挑戰(zhàn)遺留系統(tǒng)的問題50軟件工程面臨的挑戰(zhàn)高可信軟件開發(fā)的要求軟件的重要作用要求正確性、可靠性、安全性等可信性質(zhì)挑戰(zhàn):如何在軟件的開發(fā)和運(yùn)行中保證其具有高可信的性質(zhì)軟件開發(fā)方式的變化網(wǎng)絡(luò)時代帶來的沖擊挑戰(zhàn):研究分布式的軟件體系結(jié)構(gòu)和開發(fā)模式,探索與之相適應(yīng)的軟件工程策略50軟件工程面臨的挑戰(zhàn)高可信軟件開發(fā)的要求51軟件工程知識體系軟件工程知識體系(SWEBOK)IEEE計(jì)算機(jī)學(xué)會發(fā)起研究,從而促進(jìn)軟件工程發(fā)展成為獨(dú)立的專業(yè)學(xué)科2001年5月完成,發(fā)布“SWEBOK指南V1.00(試用版)”SWEBOK的組成將軟件工程知識分解成若干知識域,形成層次化的組成結(jié)構(gòu)10個知識域軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試、軟件維護(hù)軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具與方法、軟件質(zhì)量51軟件工程知識體系軟件工程知識體系(SWEBOK)525253軟件工程及其相關(guān)學(xué)科軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)與管理科學(xué)等基本原理,開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則和方法,以提高質(zhì)量,降低成本為目的計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造軟件的模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評估成本及確定權(quán)衡;管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理53軟件工程及其相關(guān)學(xué)科軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、54軟件工程與計(jì)算機(jī)科學(xué)軟件工程與計(jì)算機(jī)科學(xué)的區(qū)別計(jì)算機(jī)科學(xué)研究構(gòu)成計(jì)算機(jī)和軟件系統(tǒng)基礎(chǔ)的有關(guān)理論和方法舉例:數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、算法分析等軟件工程研究開發(fā)和發(fā)布軟件的實(shí)際問題舉例:飛行控制軟件軟件工程的研究與實(shí)踐包括兩方面,一是扎根于計(jì)算機(jī)科學(xué),二是表現(xiàn)為一種工程學(xué)科54軟件工程與計(jì)算機(jī)科學(xué)軟件工程與計(jì)算機(jī)科學(xué)的區(qū)別55思考與討論以下系統(tǒng)適合采用什么樣的軟件過程模型?為什么?在一種新型機(jī)器上,為一種已知語言開發(fā)一個普通的編譯器瀑布模型該項(xiàng)目的語言是已知的,需求是明確的和穩(wěn)定的,整個系統(tǒng)屬于中小規(guī)模,因此適合采用瀑布模型進(jìn)行軟件開發(fā)55思考與討論以下系統(tǒng)適合采用什么樣的軟件過程模型?為什么?56案例分析大學(xué)教務(wù)管理系統(tǒng),準(zhǔn)備替換現(xiàn)有的系統(tǒng)增量模型從該系統(tǒng)的具體情況來看,系統(tǒng)的需求是比較容易明確的,整個系統(tǒng)的結(jié)構(gòu)需要重新設(shè)計(jì),但是原有的遺留系統(tǒng)中有些部分是可以重用的,因此我們可以采用增量模型實(shí)施軟件開發(fā)56案例分析大學(xué)教務(wù)管理系統(tǒng),準(zhǔn)備替換現(xiàn)有的系統(tǒng)增量模型57案例分析快速原型模型本項(xiàng)目的主要問題在于用戶需要方面,該系統(tǒng)與最終用戶的交互是十分關(guān)鍵的,但是在項(xiàng)目初期用戶的需求基本上是不知道的,因此適合采用快速原型方法來確定用戶需求,在需求確定的基礎(chǔ)上再開發(fā)最終系統(tǒng)大學(xué)校園的虛擬漫游系統(tǒng),這是該大學(xué)首次使用該系統(tǒng)57案例分析快速原型模型大學(xué)校園的虛擬漫游系統(tǒng),這是該大學(xué)首小結(jié)軟件、軟件工程的概念軟件的特點(diǎn)軟件危機(jī)的表現(xiàn)形式軟件工程模型:瀑布、原型、演化、構(gòu)件、RUP軟件過程模型的選擇依據(jù)兩種軟件工程方法學(xué)的比較小結(jié)軟件、軟件工程的概念北京理工大學(xué)教學(xué)課件軟件工程北京理工大學(xué)教學(xué)課件
課名:軟件工程參考教材:1、張海藩,軟件工程導(dǎo)論(第5版),清華大學(xué)出版社,20082、齊治昌等,軟件工程(第二版),高等教育出版社,20063、鄭人杰等,軟件工程概論,機(jī)械工業(yè)出版社,2010教學(xué)方式:授課+實(shí)驗(yàn)課時:40課名:軟件工程參考教材:教學(xué)目的和要求:(1)掌握軟件工程的基本概念(2)學(xué)會軟件工程項(xiàng)目開發(fā)過程的分析、設(shè)計(jì)、編碼要求以及測試、維護(hù)的基本策略和方法(3)了解軟件工程項(xiàng)目管理的基本內(nèi)容和方法教學(xué)目的和要求:(1)掌握軟件工程的基本概念主要內(nèi)容為:(1)軟件工程概述:軟件工程發(fā)展、過程模型.(2)
軟件工程技術(shù):
軟件工程分析方法、軟件工程系統(tǒng)設(shè)計(jì)方法、軟件測試技術(shù)(3)軟件維護(hù):軟件的可維性、軟件維護(hù)的任務(wù)及過程、
軟件維護(hù)的副作用(4)軟件項(xiàng)目管理技術(shù):軟件項(xiàng)目管理的基本概念、項(xiàng)目計(jì)劃、風(fēng)險分析、軟件質(zhì)量保證、軟件配置管理主要內(nèi)容為:(1)軟件工程概述:軟件工程發(fā)展、過程模型.第一章軟件工程概述第一章第一章軟件工程概述的內(nèi)容1.1引言
1.2
軟件基本概念、分類、特點(diǎn)1.3軟件工程的發(fā)展過程
1.4軟件工程的活動
1.5
軟件過程模型
1.6
Rational統(tǒng)一過程模型
第一章軟件工程概述的內(nèi)容1.1引言
1.1引言為什么要講軟件和軟件工程?唯有對軟件和軟件的開發(fā)過程,有充分的認(rèn)識,才能更好的開發(fā)出過程受控、質(zhì)量受控的軟件產(chǎn)品。對于軟件和軟件工程的認(rèn)識是困難的,但軟件開發(fā)過程又存在很多困惑,需要對此有正確的、深刻的認(rèn)識。1.1引言為什么要講軟件和軟件工程?1.1引言軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序任何預(yù)先定義好的程序步驟的地方,都有軟件的身影軟件的應(yīng)用領(lǐng)域系統(tǒng)軟件實(shí)時軟件商業(yè)軟件工程和科學(xué)計(jì)算軟件嵌入式軟件個人計(jì)算機(jī)軟件基于Web的軟件(網(wǎng)站)人工智能軟件1.1引言軟件不僅僅是在計(jì)算機(jī)運(yùn)行的程序1.2.1軟件1.2軟件基本概念、分類、特點(diǎn)
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。三要素程序:按事先設(shè)計(jì)的功能、性能要求執(zhí)行的指令
(語句)序列;數(shù)據(jù):使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔:與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料??蓤?zhí)行的1.2.1軟件1.2軟件基本概念、分類、特點(diǎn)計(jì)算機(jī)軟件定義(GB)與計(jì)算機(jī)系統(tǒng)的操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。其中:I=(i1,i2,…,in)
輸入集合。Ij表示一個抽象的輸入數(shù)據(jù)類型O=(O1,O2,…,On)
輸出集合。Oj表示一個抽象的輸出數(shù)據(jù)類型E=(e1,e2,…,en)
構(gòu)成集合。ei表示一個子系統(tǒng)或一個構(gòu)件R=(r1,r2,…,rn)
構(gòu)件關(guān)系集合.ri表示一個關(guān)系。軟件表示
S=(I,O,E,R)計(jì)算機(jī)軟件定義(GB)其中:軟件表示1.2.2軟件的特點(diǎn)1.是邏輯實(shí)體,非物理實(shí)體,具抽象性;2.沒有明顯的制作過程;3.運(yùn)行、使用期間不存在磨損、老化;4.軟件的開發(fā)、運(yùn)行受計(jì)算機(jī)系統(tǒng)的限制;復(fù)雜性高,成本昂貴。涉及社會因素。1.2.2軟件的特點(diǎn)1.是邏輯實(shí)體,非物理實(shí)體,具抽象1.2.3軟件分類軟件從設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)工程有相同的基礎(chǔ)2.基于軟件工作方式:*實(shí)時處理*分時處理*交互處理*批處理1.基于軟件大的功能框架:
*系統(tǒng)軟件*支撐(工具)軟件*應(yīng)用軟件1.2.3軟件分類軟件從設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)工程有管理者的錯誤觀點(diǎn):我們已經(jīng)有標(biāo)準(zhǔn)和規(guī)程了我們已經(jīng)有好的開發(fā)平臺和工具了我們可以在開發(fā)進(jìn)度得不到保障時,可增加開發(fā)人員我們可以外包一部分項(xiàng)目,緩解項(xiàng)目的壓力用戶的錯誤觀點(diǎn):因?yàn)橹理?xiàng)目的目標(biāo),可先編程序。不考慮項(xiàng)目將來怎樣,以后要變改就行了開發(fā)者的錯誤觀點(diǎn):編完程序就大功告成程序未運(yùn)行前,沒有質(zhì)量問題最后項(xiàng)目完成只提交程序軟件工程,就是寫文檔,增加開發(fā)成本1軟件開發(fā)的錯誤觀點(diǎn)開發(fā)者管理者用戶1.2.4軟件開發(fā)技術(shù)面臨的問題管理者的錯誤觀點(diǎn):用戶的錯誤觀點(diǎn):開發(fā)者的錯誤觀點(diǎn):1軟件開1.2.5軟件危機(jī)概括地說,軟件危機(jī)包含下述兩個方面的問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。在軟件開發(fā)和維護(hù)的過程中存在這么多嚴(yán)重問題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。1.2.5軟件危機(jī)概括地說,軟件危機(jī)包含下述兩個方面的問題1.2.6.軟件危機(jī)的主要特點(diǎn)軟件開發(fā)周期大大超過規(guī)定日期;軟件系統(tǒng)開發(fā)成本高,周期長,質(zhì)量差,滿足不了市場需求;
軟件質(zhì)量無保證軟件系統(tǒng)開發(fā)人員數(shù)量少,質(zhì)量低.軟件系統(tǒng)維護(hù)難度大.軟件開發(fā)缺乏合適的工具和方法軟件的版權(quán)問題得不到保證1.2.6.軟件危機(jī)的主要特點(diǎn)軟件開發(fā)周期大大超過規(guī)定日期;1.2.7yet,SuccessHasntComeEasily31%53%成功爭議失敗16%成功的標(biāo)準(zhǔn):用戶在使用用戶使用軟件很容易做完要做的事
開發(fā)人員寫出的軟件達(dá)不到用戶要求:人的能力問題.
當(dāng)前技術(shù)發(fā)展問題系統(tǒng)平臺問題失敗的根本原因1.2.7yet,SuccessHasntCome1.3軟件工程的發(fā)展1.3.1軟件的發(fā)展在軟件危機(jī)形式下,軟件工程誕生了,1968年在北大西洋公約組織(NATO)的德國開的學(xué)術(shù)會議上,軟件工程術(shù)語首次提出1.3軟件工程的發(fā)展1.3.1軟件的發(fā)展在軟件危機(jī)形式1.3.2軟件生命周期(SoftwareLifeCycle)軟件產(chǎn)品或軟件系統(tǒng)從設(shè)計(jì)、投入使用到被淘汰的全過程1.3.2軟件生命周期(SoftwareLife工作成果計(jì)劃任務(wù)書需求規(guī)格說明書設(shè)計(jì)說明書基本任務(wù)理解工作范圍建立軟件結(jié)構(gòu)確定模塊結(jié)構(gòu)定義用戶需求階段計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)系統(tǒng)分析員開發(fā)組完成人編碼測試維護(hù)編寫程序發(fā)現(xiàn)和排除問題運(yùn)行和管理程序軟件產(chǎn)品改進(jìn)的軟件產(chǎn)品用戶程序員測試小組工作成果計(jì)劃任務(wù)書需求規(guī)格說明書設(shè)計(jì)說明書基本任務(wù)理解工作范1.3.3硬件、軟件生命周期的比較硬件故障率曲線軟件實(shí)際故障率曲線生命初期磨損后理想曲線實(shí)際曲線由于副作用造成的故障率提高修改故障率故障率時間時間1.3.3硬件、軟件生命周期的比較硬件故障率曲線軟件實(shí)際故
改正一個問題需付出的代價需求分析結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的估計(jì)費(fèi)用改正一個問題估計(jì)的工作量20200200010005.02.50.050.5(美元)(人天)改正一個問題需付出的代價需結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測試系統(tǒng)1.4軟件工程的定義1IEEE93對軟件工程定義:軟件工程是(1)將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)。即將工程化應(yīng)用于軟件。(2)在(1)中所述方法的研究IEEE:美國電氣和電子工程師學(xué)會:(InstituteofElectricalandElectronicsEngineers)學(xué)會設(shè)各種專門技術(shù)分會,軟件標(biāo)準(zhǔn)分技術(shù)委員會為SESS2定義給的四個要點(diǎn):軟件工程方法和性質(zhì)----系統(tǒng)化、嚴(yán)格約束、可量化的方法軟件工程方法的作用和范圍-----軟件的開發(fā)、運(yùn)行和維護(hù)軟件工程方法的目標(biāo)----即將工程化應(yīng)用于軟件軟件工程方法的趨勢-----方法的研究1.4軟件工程的定義1IEEE93對軟件工程定義:I在給定成本、進(jìn)度的前提下,開發(fā)出有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。3軟件工程的目標(biāo)技術(shù)的觀點(diǎn):包括:軟件項(xiàng)目的分析、設(shè)計(jì)、編碼、測試、維護(hù)等技術(shù)方法。按軟件技術(shù)理論,以高效、健壯、可復(fù)用、可維護(hù)為目的,研究軟件體系結(jié)構(gòu)、組成以及構(gòu)造方式、等工程的觀點(diǎn):包括:軟件項(xiàng)目招標(biāo)、合同、實(shí)施、監(jiān)督、驗(yàn)收推廣等。以經(jīng)濟(jì)管理科學(xué)為依據(jù),研究軟件工程的規(guī)劃策略和經(jīng)濟(jì)收益等工程問題管理的觀點(diǎn):包括:軟件項(xiàng)目開發(fā)人員組織控制、進(jìn)度風(fēng)險分析和質(zhì)量保證體系等方面。以科學(xué)性、高效可行及可測量性為目標(biāo)來研究工程項(xiàng)目管理4軟件工程的三視圖在給定成本、進(jìn)度的前提下,開發(fā)出有可修改性、有效性、可靠性、5軟件工程基本原理1、用分階段的生命周期計(jì)劃嚴(yán)格管理2、堅(jiān)持進(jìn)行階段評審3、實(shí)行嚴(yán)格的產(chǎn)品控制4、采用現(xiàn)代程序設(shè)計(jì)技術(shù)5、結(jié)果應(yīng)能清楚地審查6、開發(fā)小組的人員應(yīng)該少而精7、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性5軟件工程基本原理1、用分階段的生命周期計(jì)劃嚴(yán)格管理軟件工程的基本思想生命周期的觀點(diǎn)重視文檔的作用自上而下和逐步細(xì)化的思想模塊化的思想反復(fù)迭代的思想注意編程風(fēng)格軟件工程的基本思想1.5軟件過程模型軟件工程學(xué)的基礎(chǔ)是軟件過程軟件過程貫穿于軟件生命周期中軟件工程學(xué)中的方法用于軟件過程的各階段的各項(xiàng)活動中1.5軟件過程模型軟件工程學(xué)的基礎(chǔ)是軟件過程1軟件過程定義工具方法過程質(zhì)量焦點(diǎn)Softwareengineeringlayers質(zhì)量焦點(diǎn):支持軟件工程的根基就在于對質(zhì)量的關(guān)注。過程:軟件工程的過程將技術(shù)層結(jié)合在一起,使計(jì)算機(jī)軟件合理和及時開發(fā)出來。方法:涵蓋一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測試和維護(hù)。工具:對過程、方法提供自動或半自動的支持。例CASE集成軟件、硬件或一個軟件工程數(shù)據(jù)庫。根據(jù)不同的項(xiàng)目來定義貫穿于軟件生命周期之中的一組關(guān)鍵活動區(qū)域。也稱過程模型2軟件過程的位置和作用1軟件過程定義工具方法過程質(zhì)量焦點(diǎn)Softwaree3.瀑布模型(線形順序模型)可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段開發(fā)軟件的特點(diǎn):過程具有順序性和依賴性不適應(yīng)需求不確定的項(xiàng)目錯誤最后才發(fā)現(xiàn)開始進(jìn)程呈阻塞情況
承接上一項(xiàng)活動中接收本項(xiàng)活動所需的對象作為輸入利用輸入進(jìn)行本項(xiàng)活動。把本項(xiàng)的活動成果傳送下一項(xiàng)對本項(xiàng)工作進(jìn)行評審,若評審正確才能進(jìn)行下一項(xiàng)工作確定:系統(tǒng)功能系統(tǒng)性能設(shè)計(jì):數(shù)據(jù)結(jié)構(gòu)體系結(jié)構(gòu)接口算法開發(fā)軟件的原則分析:系統(tǒng)需求軟件需求3.瀑布模型(線形順序模型)可行性研究與計(jì)劃需求分析設(shè)計(jì)4原型模型聽取用戶意見建造/修改原型用戶測試運(yùn)行原型原型模型帶來的問題:原型時期的質(zhì)量問題用戶如何理解進(jìn)度先入為主的非最佳方式不適合原型開發(fā)的領(lǐng)域:
實(shí)時控制軟件數(shù)值計(jì)算軟件原型產(chǎn)生的步驟需求分析和定義規(guī)格軟件設(shè)計(jì)的一種工具解決不確定性的工具一種實(shí)驗(yàn)工具開發(fā)同時,作為同步培訓(xùn)工具原型演化為最終系統(tǒng)軟件維護(hù)的輔助工具應(yīng)用領(lǐng)域4原型模型聽取用建造/修改原型用戶測試原型模型帶來的問題:需求設(shè)計(jì)編碼測試集成運(yùn)行、試用核心系統(tǒng)開發(fā)設(shè)計(jì)需求編碼測試集成運(yùn)行、試用第二次迭代反饋反饋5演化(迭代)模型需要足夠的人力資源用戶和設(shè)計(jì)都成為關(guān)鍵適用于MIS形式的系統(tǒng)開發(fā)過程(1)根據(jù)用戶要求開發(fā)出核心系統(tǒng)(2)用戶試用后,提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求,開發(fā)人員實(shí)施開發(fā)的迭代過程需求設(shè)計(jì)編碼測試集成運(yùn)核心系統(tǒng)開發(fā)設(shè)計(jì)需求編碼測試集成運(yùn)第二6增量模型(遞增模型、增殖模型)
先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能(系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。系統(tǒng)的總體設(shè)計(jì)在初始子集設(shè)計(jì)階段就應(yīng)作出設(shè)想。6增量模型(遞增模型、增殖模型)先完成一個系統(tǒng)子分析增量模型設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試增量1增量2增量3增量4交付的增量1交付的增量2交付的增量3交付的增量4日歷時間分析增量模型設(shè)計(jì)編碼測試分析設(shè)計(jì)編碼測試分析7.螺旋模型
瀑布模型和增量模型相結(jié)合,增加風(fēng)險分析用來指導(dǎo)大型軟件項(xiàng)目的開發(fā)將開發(fā)劃分為制定計(jì)劃、風(fēng)險分析、實(shí)施工程、客戶評估四類活動沿螺旋線每轉(zhuǎn)一圈,表示開發(fā)出一個更完善的新的軟件版本要點(diǎn):相似于增量模型,是順序模型與原型過程的統(tǒng)一,強(qiáng)調(diào)版本的升級?;顒踊植煌鼜?qiáng)調(diào):計(jì)劃、風(fēng)險分析、用戶評估與增量模型的區(qū)別:7.螺旋模型瀑布模型和增量模型相結(jié)合,增加風(fēng)險分析要8.噴泉模型演化分析設(shè)計(jì)實(shí)現(xiàn)確認(rèn)維護(hù)1990年B.H.Sollers和J.M.Edwards提出主要用于采用面向?qū)ο蠹夹g(shù)的項(xiàng)目噴泉體現(xiàn)迭代和無間隙的特征軟件的某些部分常常被重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入漸進(jìn)的軟件成分在分析、設(shè)計(jì)、實(shí)現(xiàn)等各項(xiàng)活動之間無明顯邊界8.噴泉模型演化分析設(shè)計(jì)實(shí)現(xiàn)確認(rèn)維護(hù)1990年B.H.So9.構(gòu)件集成模型
構(gòu)件庫問題域識別構(gòu)件查找構(gòu)件生成構(gòu)件組裝系統(tǒng)查到構(gòu)件未查到構(gòu)件模型要點(diǎn):?基于軟件復(fù)用性?形成統(tǒng)一開發(fā)過程?采用統(tǒng)一建模語言939.構(gòu)件集成模型構(gòu)件庫問題域識別構(gòu)件查找構(gòu)件生成構(gòu)件組裝系基本需求螺旋螺旋模型第n次迭代原型建造原型第n次迭代維護(hù)運(yùn)行系統(tǒng)需求分析設(shè)計(jì)編碼測試132578614944GT4GT4GT10111213組合模型要點(diǎn):幾種模型配合使用以一種模型為主,嵌入其它模型由開發(fā)者選擇開發(fā)路徑基本需求螺旋螺旋模型原型建造原型維護(hù)運(yùn)行系統(tǒng)需求分析設(shè)計(jì)編碼?已經(jīng)有先例的項(xiàng)目?問題明確且時間緊的項(xiàng)目?規(guī)模較大且時間緊的項(xiàng)目?需求不確定的項(xiàng)目?帶有突破性技術(shù)的項(xiàng)目?客戶難以溝通和理解的項(xiàng)目?明顯復(fù)用潛力的項(xiàng)目項(xiàng)目適應(yīng)模型的規(guī)律(一般情況)
項(xiàng)目情況適用模型瀑布模型增量模型演化模型原型模型螺旋模型原型模型構(gòu)件模型95?已經(jīng)有先例的項(xiàng)目項(xiàng)Rational統(tǒng)一過程RUPRUP是由IBM公司開發(fā)和維護(hù)的過程產(chǎn)品它提供了在開發(fā)機(jī)構(gòu)中分派任務(wù)和責(zé)任的方法它的目的是在可以預(yù)見的日程和預(yù)算前提下確保滿足最終用戶需求的高質(zhì)量軟件的產(chǎn)生Rational統(tǒng)一過程RUPRUP是由IBM公司開發(fā)和維護(hù)RUP的優(yōu)越性提高了團(tuán)隊(duì)的生產(chǎn)力創(chuàng)建并維護(hù)模型為如何有效地使用UML提供了指導(dǎo)是一個可配置的過程吸收了許多在商業(yè)上得到證明的軟件開發(fā)的最佳實(shí)踐經(jīng)驗(yàn)RUP的優(yōu)越性提高了團(tuán)隊(duì)的生產(chǎn)力RUP所吸收的最佳工程實(shí)踐經(jīng)驗(yàn)迭代地開發(fā)軟件需求管理使用基于組件的體系結(jié)構(gòu)可視化的軟件建模驗(yàn)證軟件質(zhì)量控制軟件的變化RUP所吸收的最佳工程實(shí)踐經(jīng)驗(yàn)迭代地開發(fā)軟件RUP的二維結(jié)構(gòu)RUP的二維結(jié)構(gòu)軟件工程方法學(xué)
通常把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。軟件工程方法學(xué)包括三個要素,這就是方法、工具和過程。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。軟件工程方法學(xué)101結(jié)構(gòu)化方法PK面向?qū)ο蠓椒?3結(jié)構(gòu)化方法PK面向?qū)ο蠓椒?02結(jié)構(gòu)化方法PK面向?qū)ο蠓椒▊鹘y(tǒng)的結(jié)構(gòu)化開發(fā)方法是以功能分析和數(shù)據(jù)分析為基礎(chǔ),采用分解和抽象的方法找出軟件功能模塊及其之間的連接關(guān)系,并找出數(shù)據(jù)的表或視圖以及它們之間的關(guān)聯(lián)。但是,該方法使得人們對現(xiàn)實(shí)世界的認(rèn)識與編程之間存在理解上的鴻溝,整個系統(tǒng)的變動和修改十分困難,不便于軟件重用,并且難以適應(yīng)以突出控制特性的系統(tǒng)要求。44結(jié)構(gòu)化方法PK面向?qū)ο蠓椒▊鹘y(tǒng)的結(jié)構(gòu)化開發(fā)方法是以功103結(jié)構(gòu)化方法PK面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄊ菑默F(xiàn)實(shí)世界中客觀存在的事物(即對象)出發(fā),盡可能地運(yùn)用人類的自然思維方式來構(gòu)造軟件系統(tǒng)。它運(yùn)用人類在日常的邏輯思維中經(jīng)常采用的思想方法與原則,例如抽象、分類、繼承、聚合、封裝等,將其貫穿于整個分析和設(shè)計(jì)過程,實(shí)現(xiàn)了客觀世界到計(jì)算機(jī)系統(tǒng)的平滑過渡,容易為人們所理解,并使得軟件的復(fù)用在面向?qū)ο蟮脑O(shè)計(jì)中成了自然而然的事情。45結(jié)構(gòu)化方法PK面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄊ菑默F(xiàn)實(shí)世界中104什么是CASECASE(ComputerAidedSoftwareEngineering)計(jì)算機(jī)輔助軟件工程是一組工具和方法的集合,用于輔助軟件開發(fā)、維護(hù)、管理過程中的各項(xiàng)活動,促進(jìn)軟件過程的工程化和自動化所有軟件工程方法都需要CASE的相應(yīng)技術(shù)支持用于系統(tǒng)模型的圖形編輯器管理設(shè)計(jì)實(shí)體的數(shù)據(jù)字典生成用戶界面的GUI軟件支持程序糾錯的調(diào)試器代碼生成器…46什么是CASECASE(ComputerAided10
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成本控制優(yōu)化方案
- 電廠接網(wǎng)設(shè)備安裝與調(diào)試方案
- 2025年制冷設(shè)備維修工初級(制冷技術(shù))職業(yè)技能鑒定試卷
- 油田開發(fā)信息化管理與數(shù)據(jù)分析
- 2025年職業(yè)指導(dǎo)師(中級)專業(yè)能力試卷:職業(yè)測評與職業(yè)咨詢技巧
- 城市排澇泵站建設(shè)方案
- 輸氣管道材料選擇與應(yīng)用方案
- 2025版石材行業(yè)石材原材料供應(yīng)鏈金融合同
- 2025年百貨行業(yè)商品售后服務(wù)質(zhì)量保證合同
- 人身觸電急救
- 中考英語句子翻譯800題
- T-ZSM 0020-2023 藥品包裝用折疊紙盒
- 軸承基礎(chǔ)知識介紹(共37張PPT)
- 高中物理公式默寫可打印
- 材料性能學(xué)(第2版)付華課件1-彈性變形
- GB/T 6495.9-2006光伏器件第9部分:太陽模擬器性能要求
- GB/T 602-2002化學(xué)試劑雜質(zhì)測定用標(biāo)準(zhǔn)溶液的制備
- 藥用植物學(xué)試題與答案
- 新冠核酸檢測實(shí)驗(yàn)室PCR管八聯(lián)管濾芯吸頭等耗材質(zhì)檢和儲存程序
- 預(yù)防出生缺陷PPT
- ROEDERS (羅德斯CNC)公司內(nèi)部培訓(xùn)手冊
評論
0/150
提交評論