清華大學(xué)鄭人杰殷仁昆教授《軟件工程講義》_第1頁
清華大學(xué)鄭人杰殷仁昆教授《軟件工程講義》_第2頁
清華大學(xué)鄭人杰殷仁昆教授《軟件工程講義》_第3頁
清華大學(xué)鄭人杰殷仁昆教授《軟件工程講義》_第4頁
清華大學(xué)鄭人杰殷仁昆教授《軟件工程講義》_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件工程軟件工程1 1軟件工程軟件工程第一章第一章 軟件工程概念軟件工程概念授課老師:清華大學(xué)計(jì)算機(jī)系授課老師:清華大學(xué)計(jì)算機(jī)系 殷人昆殷人昆軟件工程軟件工程2 2提示:設(shè)計(jì)與建模要點(diǎn)提示:設(shè)計(jì)與建模要點(diǎn)1. 結(jié)構(gòu)化分析建模:數(shù)據(jù)流圖、實(shí)體關(guān)系圖、狀結(jié)構(gòu)化分析建模:數(shù)據(jù)流圖、實(shí)體關(guān)系圖、狀態(tài)遷移圖、數(shù)據(jù)字典態(tài)遷移圖、數(shù)據(jù)字典2. 結(jié)構(gòu)化設(shè)計(jì)建模:數(shù)據(jù)流圖轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖結(jié)構(gòu)化設(shè)計(jì)建模:數(shù)據(jù)流圖轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖3. 結(jié)構(gòu)化程序設(shè)計(jì):程序流程圖、結(jié)構(gòu)化程序設(shè)計(jì):程序流程圖、N-S圖、圖、PAD4. 程序環(huán)路復(fù)雜性計(jì)算程序環(huán)路復(fù)雜性計(jì)算5. 測試用例設(shè)計(jì):邏輯覆蓋、循環(huán)測試、基本路測試用例設(shè)計(jì):邏輯

2、覆蓋、循環(huán)測試、基本路徑覆蓋、因果圖徑覆蓋、因果圖6. 可靠性分析:估算測試前程序中潛在錯(cuò)誤可靠性分析:估算測試前程序中潛在錯(cuò)誤7. OMT建模:對象模型、動(dòng)態(tài)模型(狀態(tài)圖、事建模:對象模型、動(dòng)態(tài)模型(狀態(tài)圖、事件追蹤圖)件追蹤圖)8. UML建模:用例圖、類圖、順序圖、活動(dòng)圖建模:用例圖、類圖、順序圖、活動(dòng)圖軟件工程軟件工程3 3軟件的概念軟件的概念 軟件的定義軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組軟件的定義軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。成。 軟件與硬件、數(shù)據(jù)庫、人、過程等共同構(gòu)成計(jì)軟件與硬件、數(shù)據(jù)庫、人、過程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。算機(jī)系統(tǒng)。 軟件按功能分類:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件按功能分

3、類:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。軟件。n軟件的發(fā)展經(jīng)歷了三個(gè)階段:程序設(shè)計(jì)階段、軟件的發(fā)展經(jīng)歷了三個(gè)階段:程序設(shè)計(jì)階段、程序系統(tǒng)階段、軟件工程階段。程序系統(tǒng)階段、軟件工程階段。軟件工程軟件工程 軟件工程概念的出現(xiàn)源自軟件危機(jī)。軟件工程概念的出現(xiàn)源自軟件危機(jī)。 軟件危機(jī)的主要特征軟件危機(jī)的主要特征v 軟件價(jià)格在整個(gè)項(xiàng)目投入中的比例不斷升高軟件價(jià)格在整個(gè)項(xiàng)目投入中的比例不斷升高;v 軟件開發(fā)成本嚴(yán)重超標(biāo)軟件開發(fā)成本嚴(yán)重超標(biāo);v 軟件開發(fā)周期大大超過規(guī)定日期軟件開發(fā)周期大大超過規(guī)定日期;v 軟件質(zhì)量難于保證;軟件質(zhì)量難于保證;v 軟件修改、維護(hù)困難軟件修改、維護(hù)困難;v 失敗的根本原因在于:開發(fā)人

4、員寫出的東西失敗的根本原因在于:開發(fā)人員寫出的東西達(dá)不到用戶要求達(dá)不到用戶要求 (人的問題、技術(shù)問題人的問題、技術(shù)問題)軟件工程軟件工程5 5 1968 年德國人年德國人 Bauer 在北大西洋公約組織會(huì)議在北大西洋公約組織會(huì)議上的定義:上的定義: 建立并使用完善的工程化原則建立并使用完善的工程化原則 , 以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法的可靠軟件的一系列方法。 1983 年年 IEEE 的軟件工程定義:的軟件工程定義: 軟件工程是軟件工程是開發(fā),運(yùn)行開發(fā),運(yùn)行 , 維護(hù)和修復(fù)軟件的系統(tǒng)方法維護(hù)和修復(fù)軟件的系統(tǒng)方法。 199

5、3 年年 IEEE 的一個(gè)更加綜合的定義:的一個(gè)更加綜合的定義: 將系將系統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的開發(fā)開發(fā) , 運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中軟件中。軟件工程定義軟件工程定義軟件工程軟件工程6 6軟件工程框架軟件工程框架可可用用性性性性性性確確正正合合算算選取適宜的開發(fā)選取適宜的開發(fā)模型模型采用合適的設(shè)計(jì)方法采用合適的設(shè)計(jì)方法提供高質(zhì)量的工程支持提供高質(zhì)量的工程支持重視軟件工程的管理重視軟件工程的管理基基本本過過程程支支持持過過程程組組織織過過程程目標(biāo)目標(biāo)過過程程原原則則軟件工程軟件工程7 7n

6、軟件工程框架給出了軟件工程三個(gè)主要方面。軟件工程框架給出了軟件工程三個(gè)主要方面。n軟件工程目標(biāo)軟件工程目標(biāo)包括可用性、正確性和合算性,包括可用性、正確性和合算性,規(guī)定了軟件工程實(shí)踐的結(jié)果(即軟件)應(yīng)具有的規(guī)定了軟件工程實(shí)踐的結(jié)果(即軟件)應(yīng)具有的基本性質(zhì);基本性質(zhì);n軟件工程過程軟件工程過程包含的基本活動(dòng)有需求、分析與包含的基本活動(dòng)有需求、分析與設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)與測試、維護(hù)與支持;設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)與測試、維護(hù)與支持;n軟件工程的四條原則軟件工程的四條原則-采用適宜的開發(fā)模型,使采用適宜的開發(fā)模型,使用恰當(dāng)?shù)拈_發(fā)方法,提供高質(zhì)量的工程支持,實(shí)用恰當(dāng)?shù)拈_發(fā)方法,提供高質(zhì)量的工程支持,實(shí)施有效的工程

7、管理,從四個(gè)方面指導(dǎo)每一項(xiàng)工程施有效的工程管理,從四個(gè)方面指導(dǎo)每一項(xiàng)工程的活動(dòng),以實(shí)現(xiàn)軟件工程目標(biāo)。的活動(dòng),以實(shí)現(xiàn)軟件工程目標(biāo)。軟件工程軟件工程8 8軟件工程的知識(shí)結(jié)構(gòu)軟件工程的知識(shí)結(jié)構(gòu) 2001年年5月月ISO/IEC JTC 1發(fā)布了發(fā)布了SWEBOK 指南指南 V0.95(試用版)(試用版),即,即 Guide to the Software Engineering Body of Knowledge 。 SWEBOK 把軟件工程學(xué)科的主體知識(shí)分為把軟件工程學(xué)科的主體知識(shí)分為 10 個(gè)知識(shí)領(lǐng)域這個(gè)知識(shí)領(lǐng)域這 10 個(gè)領(lǐng)域包括:軟件需求,軟個(gè)領(lǐng)域包括:軟件需求,軟件設(shè)計(jì),軟件構(gòu)造,軟件測試

8、,軟件維護(hù),軟件設(shè)計(jì),軟件構(gòu)造,軟件測試,軟件維護(hù),軟件配置管理,軟件工程管理,軟件工程過程,件配置管理,軟件工程管理,軟件工程過程,軟件工程工具和方法,軟件質(zhì)量。軟件工程工具和方法,軟件質(zhì)量。軟件工程軟件工程9 9軟件工程的知識(shí)結(jié)構(gòu)軟件工程的知識(shí)結(jié)構(gòu) 2001年年5月月ISO/IEC JTC 1發(fā)布了發(fā)布了 SWEBOK指指南南V0.95(試用版)(試用版),即,即 Guide to the Software Engineering Body of Knowledge。 SWEBOK把軟件工程學(xué)科的主體知識(shí)分為把軟件工程學(xué)科的主體知識(shí)分為10個(gè)個(gè)知識(shí)領(lǐng)域。這知識(shí)領(lǐng)域。這10個(gè)領(lǐng)域包括:個(gè)領(lǐng)域

9、包括: 軟件需求軟件需求 軟件設(shè)計(jì)軟件設(shè)計(jì) 軟件構(gòu)造軟件構(gòu)造 軟件測試軟件測試 軟件維護(hù)軟件維護(hù) 軟件配置管理軟件配置管理 軟件工程管理軟件工程管理 軟件工程過程軟件工程過程 軟件工程工具和方法軟件工程工具和方法 軟件質(zhì)量軟件質(zhì)量軟件工程軟件工程1010nISO 9000定義:定義:軟件工程過程是把輸入轉(zhuǎn)化為軟件工程過程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)輸出的一組彼此相關(guān)的資源和活動(dòng)。n從軟件開發(fā)的觀點(diǎn)看,它就是使用適當(dāng)?shù)馁Y源從軟件開發(fā)的觀點(diǎn)看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時(shí)間等),為開發(fā)(包括人員、硬軟件工具、時(shí)間等),為開發(fā)軟件進(jìn)行的一組開發(fā)活動(dòng),在過程結(jié)束時(shí)將輸

10、軟件進(jìn)行的一組開發(fā)活動(dòng),在過程結(jié)束時(shí)將輸入(用戶要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。入(用戶要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。軟件工程過程與軟件生存周期軟件工程過程與軟件生存周期軟件工程軟件工程11 11n軟件工程過程定義了軟件工程過程定義了: 方法使用的順序、要求方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、軟件開發(fā)各個(gè)階段完成的里程碑。要的管理、軟件開發(fā)各個(gè)階段完成的里程碑。n軟件工程過程包含四種基本的過程活動(dòng):軟件工程過程包含四種基本的過程活動(dòng):v plan : 軟件規(guī)格說明軟件規(guī)格說明v do : 軟件開發(fā)軟件開發(fā)v check :

11、 軟件確認(rèn)軟件確認(rèn)v action : 軟件演進(jìn)軟件演進(jìn)軟件工程軟件工程1212n軟件生存周期包含三個(gè)階段:軟件定義、軟件軟件生存周期包含三個(gè)階段:軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)。開發(fā)及軟件運(yùn)行維護(hù)。n軟件生存周期模型是軟件工程思想的具體化,軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的系統(tǒng)開發(fā)、運(yùn)行、維護(hù)是跨越軟件生存周期的系統(tǒng)開發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部活動(dòng)和任務(wù)的過程框架。所實(shí)施的全部活動(dòng)和任務(wù)的過程框架。n常用的軟件生存周期模型有瀑布模型,演化模常用的軟件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,噴泉模型,快速應(yīng)型,螺旋模型,增量模型,噴泉模型,快速應(yīng)用開發(fā)

12、(用開發(fā)( RAD )模型。)模型。軟件工程軟件工程1313瀑布模型瀑布模型n各項(xiàng)活動(dòng)按自上而下,相互銜接的固定次序,各項(xiàng)活動(dòng)按自上而下,相互銜接的固定次序,如同瀑布逐級(jí)下落,每項(xiàng)活動(dòng)均處于一個(gè)質(zhì)如同瀑布逐級(jí)下落,每項(xiàng)活動(dòng)均處于一個(gè)質(zhì)量環(huán)(輸入量環(huán)(輸入- -處理處理- -輸出輸出- -評(píng)審)中。評(píng)審)中。n階段間具有階段間具有順序性順序性和和依賴性依賴性。n推遲實(shí)現(xiàn)的觀點(diǎn)。推遲實(shí)現(xiàn)的觀點(diǎn)。n每個(gè)階段必須完成規(guī)定的文檔;每個(gè)階段結(jié)每個(gè)階段必須完成規(guī)定的文檔;每個(gè)階段結(jié)束前完成文檔審查。束前完成文檔審查。軟件工程軟件工程1414需求定義需求定義系統(tǒng)與軟件設(shè)計(jì)系統(tǒng)與軟件設(shè)計(jì)集成與系統(tǒng)測試集成與系統(tǒng)

13、測試實(shí)現(xiàn)與單元測試實(shí)現(xiàn)與單元測試運(yùn)行與維護(hù)運(yùn)行與維護(hù)軟件工程軟件工程1515演化模型演化模型n演化模型是演化模型是迭代迭代的,軟件必須經(jīng)過不斷的,軟件必須經(jīng)過不斷演化演化才才能完善。能完善。n演化模型先開發(fā)一個(gè)演化模型先開發(fā)一個(gè)“原型原型”軟件,完成部分軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。完善,最終獲得滿意的軟件產(chǎn)品。n業(yè)務(wù)和產(chǎn)品需求在變化中,采用線性開發(fā)方式業(yè)務(wù)和產(chǎn)品需求在變化中,采用線性開發(fā)方式是不實(shí)際的。是不實(shí)際的。n快速實(shí)現(xiàn)和提交一個(gè)有限的版本,可以應(yīng)付市快速實(shí)現(xiàn)和提交一個(gè)有限的版本,可以應(yīng)付市場競

14、爭的壓力。場競爭的壓力。軟件工程軟件工程1616需求的采集需求的采集與細(xì)化與細(xì)化客戶評(píng)價(jià)原型客戶評(píng)價(jià)原型快速設(shè)計(jì)快速設(shè)計(jì)加工原型加工原型產(chǎn)生樣品產(chǎn)生樣品停止停止開始開始軟件工程軟件工程1717螺旋模型螺旋模型n螺旋模型將瀑布模型與演化模型結(jié)合起來,螺旋模型將瀑布模型與演化模型結(jié)合起來,并且加入兩種模型均忽略了的并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析。n螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個(gè)新版本。圈便開發(fā)出更完善的一個(gè)新版本。 制定計(jì)劃制定計(jì)劃 風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析 實(shí)施工程實(shí)施工程 客戶評(píng)估客戶評(píng)估軟件工程軟件工程1818決定目標(biāo)、

15、決定目標(biāo)、方案和限制方案和限制評(píng)價(jià)方案評(píng)價(jià)方案識(shí)別風(fēng)險(xiǎn)識(shí)別風(fēng)險(xiǎn)弱化風(fēng)險(xiǎn)弱化風(fēng)險(xiǎn) 開發(fā)、驗(yàn)證、開發(fā)、驗(yàn)證、下一級(jí)產(chǎn)品下一級(jí)產(chǎn)品 計(jì)劃下一階段計(jì)劃下一階段集成測試軟件工程軟件工程1919增量模型增量模型n增量模型是增量模型是迭代迭代和和演進(jìn)演進(jìn)的過程。的過程。n增量模型把軟件產(chǎn)品分解成一系列的增量構(gòu)件,增量模型把軟件產(chǎn)品分解成一系列的增量構(gòu)件,在增量開發(fā)迭代中逐步加入。在增量開發(fā)迭代中逐步加入。n每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。夠完成特定的功能。n早先完成的增量可以為后期的增量提供服務(wù)。早先完成的增量可以為后期的增量提供服務(wù)。n增量

16、開發(fā)方法的新演進(jìn)版本叫做增量開發(fā)方法的新演進(jìn)版本叫做 極限程序設(shè)極限程序設(shè)計(jì)(計(jì)(eXtreme Programming) 。軟件工程軟件工程2020定義基定義基本需求本需求將需求將需求對應(yīng)到對應(yīng)到各增量各增量設(shè)計(jì)系設(shè)計(jì)系統(tǒng)架構(gòu)統(tǒng)架構(gòu)開發(fā)其開發(fā)其中一個(gè)中一個(gè)增量增量檢驗(yàn)和檢驗(yàn)和確認(rèn)該確認(rèn)該增量增量將增量將增量集成到集成到系統(tǒng)中系統(tǒng)中確認(rèn)集確認(rèn)集成后的成后的系統(tǒng)系統(tǒng)軟件工程軟件工程2121日歷時(shí)間日歷時(shí)間分析分析 增量增量1 增量增量1交付交付設(shè)計(jì)設(shè)計(jì) 編碼編碼 測試測試 分析分析 增量增量2 增量增量2交付交付設(shè)計(jì)設(shè)計(jì) 編碼編碼 測試測試 分析分析 增量增量3 增量增量3交付交付設(shè)計(jì)設(shè)計(jì) 編碼

17、編碼 測試測試 分析分析 增量增量4 增量增量4交付交付設(shè)計(jì)設(shè)計(jì) 編碼編碼 測試測試 系統(tǒng)和信息工程系統(tǒng)和信息工程軟件工程軟件工程2222噴泉模型噴泉模型n體現(xiàn)了體現(xiàn)了迭代迭代和和無間隙無間隙的特性。的特性。n系統(tǒng)某個(gè)部分常常重復(fù)工作多次,相關(guān)對象在系統(tǒng)某個(gè)部分常常重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入演進(jìn)的軟件成分。每次迭代中隨之加入演進(jìn)的軟件成分。n無間隙是指在各項(xiàng)開發(fā)活動(dòng),即分析、設(shè)計(jì)和無間隙是指在各項(xiàng)開發(fā)活動(dòng),即分析、設(shè)計(jì)和編碼之間不存在明顯的邊界。編碼之間不存在明顯的邊界。n噴泉模型是對象驅(qū)動(dòng)的過程。噴泉模型是對象驅(qū)動(dòng)的過程。軟件工程軟件工程2323需求階段需求階段分析階段分析階

18、段設(shè)計(jì)階段設(shè)計(jì)階段編程階段編程階段集成與測試階段集成與測試階段維護(hù)與演進(jìn)階段維護(hù)與演進(jìn)階段軟件工程軟件工程2424變換模型變換模型n變換模型是一種基于形式化規(guī)格說明語言及程變換模型是一種基于形式化規(guī)格說明語言及程序變換的軟件開發(fā)模型。序變換的軟件開發(fā)模型。n它采用形式化的軟件開發(fā)方法,對形式化的軟它采用形式化的軟件開發(fā)方法,對形式化的軟件規(guī)格說明進(jìn)行一系列自動(dòng)的或半自動(dòng)的程序件規(guī)格說明進(jìn)行一系列自動(dòng)的或半自動(dòng)的程序變換,最終映射成為計(jì)算機(jī)系統(tǒng)能夠接受的程變換,最終映射成為計(jì)算機(jī)系統(tǒng)能夠接受的程序系統(tǒng)。序系統(tǒng)。n多步程序變換過程的重要性質(zhì)是:每一步程序多步程序變換過程的重要性質(zhì)是:每一步程序變換

19、的正確性僅與該步變換所依據(jù)的規(guī)范變換的正確性僅與該步變換所依據(jù)的規(guī)范 Mi 以及對變換后的假設(shè)以及對變換后的假設(shè) Mi+1 有關(guān)。有關(guān)。軟件工程軟件工程2525軟件需求軟件需求形式化說形式化說明明 (M0)軟件設(shè)計(jì)軟件設(shè)計(jì)形式化說形式化說明明 (M1)(M2)(Mn)模型檢查模型檢查程序變換程序變換程序變換程序變換程序變換程序變換n在此意義上,變換步驟獨(dú)立于其他變換步驟。在此意義上,變換步驟獨(dú)立于其他變換步驟。這稱為變換的獨(dú)立性。這稱為變換的獨(dú)立性。n該模型只適合于軟件的形式化開發(fā)方法;需要該模型只適合于軟件的形式化開發(fā)方法;需要嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)支持;需要一整嚴(yán)格的數(shù)學(xué)理論和形式化技

20、術(shù)支持;需要一整套開發(fā)環(huán)境(如程序變換工具、定理證明工具套開發(fā)環(huán)境(如程序變換工具、定理證明工具等)的支持。等)的支持。 軟件工程軟件工程2626基于第四代技術(shù)的模型基于第四代技術(shù)的模型n第四代語言第四代語言 (4GL) 是在大型數(shù)據(jù)庫管理系統(tǒng)的是在大型數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是一種面向結(jié)果的非過程基礎(chǔ)上發(fā)展起來的,是一種面向結(jié)果的非過程性語言。它獨(dú)立于具體的處理機(jī),有豐富的軟性語言。它獨(dú)立于具體的處理機(jī),有豐富的軟件工具支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源件工具支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源并能適應(yīng)不同水平用戶的需要。并能適應(yīng)不同水平用戶的需要。n以以4GL為核心的軟件開發(fā)技術(shù)成

21、為第四代技術(shù)為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用,采用4GT的軟件開發(fā)模型如圖。的軟件開發(fā)模型如圖。n軟件開發(fā)人員在定義軟件需求,給出需求規(guī)格軟件開發(fā)人員在定義軟件需求,給出需求規(guī)格說明之后,說明之后,4GT工具可將該需求規(guī)格說明自動(dòng)工具可將該需求規(guī)格說明自動(dòng)軟件工程軟件工程2727轉(zhuǎn)換為程序代碼。這大大減少了分析、設(shè)計(jì)、轉(zhuǎn)換為程序代碼。這大大減少了分析、設(shè)計(jì)、編碼和測試的時(shí)間。編碼和測試的時(shí)間。n以以4GL為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用,采用4GT的軟件開發(fā)模型如圖。的軟件開發(fā)模型如圖。收集需求收集需求“設(shè)計(jì)設(shè)計(jì)”策略策略用

22、用“4GL”實(shí)現(xiàn)實(shí)現(xiàn)測試測試軟件工程軟件工程2828快速應(yīng)用開發(fā)(快速應(yīng)用開發(fā)( RAD RAD )模型)模型n快速應(yīng)用開發(fā)模型是一種增量開發(fā)模型,該快速應(yīng)用開發(fā)模型是一種增量開發(fā)模型,該模型開發(fā)軟件大量使用了可復(fù)用的構(gòu)件。模型開發(fā)軟件大量使用了可復(fù)用的構(gòu)件。n每一個(gè)增量的開發(fā)經(jīng)歷五個(gè)階段:每一個(gè)增量的開發(fā)經(jīng)歷五個(gè)階段: 業(yè)務(wù)建模業(yè)務(wù)建模 對業(yè)務(wù)功能的信息流建模。對業(yè)務(wù)功能的信息流建模。 數(shù)據(jù)建模數(shù)據(jù)建模 對業(yè)務(wù)的數(shù)據(jù)對象和關(guān)系建模。對業(yè)務(wù)的數(shù)據(jù)對象和關(guān)系建模。 過程建模過程建模 描述完成業(yè)務(wù)功能的數(shù)據(jù)變換。描述完成業(yè)務(wù)功能的數(shù)據(jù)變換。 應(yīng)用生成應(yīng)用生成 應(yīng)用構(gòu)件和自動(dòng)化工具建造。應(yīng)用構(gòu)件和自

23、動(dòng)化工具建造。 測試與反復(fù)測試與反復(fù) 對新構(gòu)件和接口進(jìn)行測試。對新構(gòu)件和接口進(jìn)行測試。軟件工程軟件工程2929業(yè)務(wù)建模業(yè)務(wù)建模數(shù)據(jù)建模數(shù)據(jù)建模過程建模過程建模應(yīng)用生成應(yīng)用生成測試及反復(fù)測試及反復(fù)小組小組1#業(yè)務(wù)建模業(yè)務(wù)建模數(shù)據(jù)建模數(shù)據(jù)建模過程建模過程建模應(yīng)用生成應(yīng)用生成測試及反復(fù)測試及反復(fù)小組小組2#2#業(yè)務(wù)建模業(yè)務(wù)建模數(shù)據(jù)建模數(shù)據(jù)建模過程建模過程建模應(yīng)用生成應(yīng)用生成測試及反復(fù)測試及反復(fù)小組小組3#3#6090天天軟件工程軟件工程3030軟件開發(fā)范型軟件開發(fā)范型(Paradigm)(Paradigm)n范型又稱為范型又稱為風(fēng)范風(fēng)范。通常認(rèn)為范型就是開發(fā)模型。通常認(rèn)為范型就是開發(fā)模型(Model

24、)或開發(fā)模式或開發(fā)模式(Pattern),實(shí)際上它與方,實(shí)際上它與方法法(Methodology)一樣,都被視為一種開發(fā)技一樣,都被視為一種開發(fā)技術(shù)。范型支配了設(shè)計(jì)方法、編碼語言、測試和術(shù)。范型支配了設(shè)計(jì)方法、編碼語言、測試和檢驗(yàn)技術(shù)的選擇。檢驗(yàn)技術(shù)的選擇。n過程性范型過程性范型把軟件視為處理流,定義成由一系把軟件視為處理流,定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有輸入和列步驟構(gòu)成的算法。每一步驟都是帶有輸入和輸出的一個(gè)過程,把這些步驟串聯(lián)在一起可產(chǎn)輸出的一個(gè)過程,把這些步驟串聯(lián)在一起可產(chǎn)生貫通于整個(gè)程序的控制流。生貫通于整個(gè)程序的控制流。軟件工程軟件工程3131n面向?qū)ο蠓缎兔嫦驅(qū)ο蠓?/p>

25、型把標(biāo)識(shí)和模型化問題領(lǐng)域中的實(shí)把標(biāo)識(shí)和模型化問題領(lǐng)域中的實(shí)體做為系統(tǒng)開發(fā)的起點(diǎn),面向?qū)ο笙到y(tǒng)中的對體做為系統(tǒng)開發(fā)的起點(diǎn),面向?qū)ο笙到y(tǒng)中的對象是數(shù)據(jù)抽象與過程抽象的綜合。象是數(shù)據(jù)抽象與過程抽象的綜合。n邏輯性范型邏輯性范型是基于規(guī)則的,它把有關(guān)問題的知是基于規(guī)則的,它把有關(guān)問題的知識(shí)分解成一組具體規(guī)則識(shí)分解成一組具體規(guī)則(如如prolog語言語言)。n面向進(jìn)程范型面向進(jìn)程范型把一個(gè)問題分解成獨(dú)立執(zhí)行的模把一個(gè)問題分解成獨(dú)立執(zhí)行的模塊。讓不只一個(gè)程序同時(shí)運(yùn)行。這些進(jìn)程互相塊。讓不只一個(gè)程序同時(shí)運(yùn)行。這些進(jìn)程互相配合,解決問題。配合,解決問題。n面向存取范型面向存取范型是一種在構(gòu)造用戶界面方面很有是

26、一種在構(gòu)造用戶界面方面很有用的技術(shù)。用的技術(shù)。軟件工程軟件工程3232n函數(shù)型范型函數(shù)型范型是基于規(guī)則的,它把有關(guān)問題的是基于規(guī)則的,它把有關(guān)問題的知 識(shí) 分 解 成 一 組 具 體 規(guī) 則 , 用 語 言 的知 識(shí) 分 解 成 一 組 具 體 規(guī) 則 , 用 語 言 的“if_then”等結(jié)構(gòu)來表示這些規(guī)則。等結(jié)構(gòu)來表示這些規(guī)則。 n說明性范型說明性范型。n每種開發(fā)范型都有它的支持者和用戶:每種開發(fā)范型都有它的支持者和用戶: 每種開發(fā)范型都特別適合于某種類型的問每種開發(fā)范型都特別適合于某種類型的問題或子問題;題或子問題; 每種開發(fā)范型都用不同的方式考慮問題;每種開發(fā)范型都用不同的方式考慮問題

27、; 每種開發(fā)范型都使用不同的方法來分解問每種開發(fā)范型都使用不同的方法來分解問題題軟件工程軟件工程3333 每種開發(fā)范型都導(dǎo)致不同種類的塊、過程、每種開發(fā)范型都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則。產(chǎn)生規(guī)則。n系統(tǒng)開發(fā)時(shí)通常把大型問題分解成一組子問題。系統(tǒng)開發(fā)時(shí)通常把大型問題分解成一組子問題。對于每個(gè)子問題采用適當(dāng)?shù)能浖_發(fā)范型。對于每個(gè)子問題采用適當(dāng)?shù)能浖_發(fā)范型。軟件工程軟件工程3434n軟件工程原則有:軟件工程原則有:1) 抽象與自頂向下、逐層細(xì)化抽象與自頂向下、逐層細(xì)化 采用分層抽象采用分層抽象的方法,有效控制軟件開發(fā)的復(fù)雜性。的方法,有效控制軟件開發(fā)的復(fù)雜性。2) 模塊化模塊化 把問題分解

28、為若干較小的較易解決把問題分解為若干較小的較易解決的模塊,有助于信息隱蔽和抽象。的模塊,有助于信息隱蔽和抽象。3) 信息隱蔽和數(shù)據(jù)封裝信息隱蔽和數(shù)據(jù)封裝 將模塊中的軟件設(shè)計(jì)將模塊中的軟件設(shè)計(jì)決策封裝在模塊內(nèi)部,使得模塊實(shí)現(xiàn)與使用決策封裝在模塊內(nèi)部,使得模塊實(shí)現(xiàn)與使用分離,有助于控制修改局部化。分離,有助于控制修改局部化。抽象與自頂抽象與自頂向下、逐層細(xì)化向下、逐層細(xì)化軟件工程原則軟件工程原則軟件工程軟件工程35354) 局部化局部化 在一個(gè)物理模塊內(nèi)集中邏輯上相互在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源,促使聚合具有特定目的關(guān)聯(lián)的計(jì)算機(jī)資源,促使聚合具有特定目的的事物。的事物。5) 一致性一致性 整個(gè)軟件系統(tǒng)的模塊使用一致的設(shè)整個(gè)軟件系統(tǒng)的模塊使用一致的設(shè)計(jì)策略、編程風(fēng)格,保持程序內(nèi)部接口的一計(jì)策略、編程風(fēng)格,保持程序內(nèi)部接口的一致性、軟件與硬件接口的一致性、系統(tǒng)規(guī)格致性、軟件與硬件接口的一致性、系統(tǒng)規(guī)格說明與系統(tǒng)行為的一致性。說明與系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論