




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