軟件工程講義-01.ppt_第1頁
軟件工程講義-01.ppt_第2頁
軟件工程講義-01.ppt_第3頁
軟件工程講義-01.ppt_第4頁
軟件工程講義-01.ppt_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,軟件工程第一章 軟件工程概念,授課老師:清華大學(xué)計算機(jī)系 殷人昆 password qhdxjsjx,2,提示:設(shè)計與建模要點,結(jié)構(gòu)化分析建模:數(shù)據(jù)流圖、實體關(guān)系圖、狀態(tài)遷移圖、數(shù)據(jù)字典 結(jié)構(gòu)化設(shè)計建模:數(shù)據(jù)流圖轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖 結(jié)構(gòu)化程序設(shè)計:程序流程圖、N-S圖、PAD 程序環(huán)路復(fù)雜性計算 測試用例設(shè)計:邏輯覆蓋、循環(huán)測試、基本路徑覆蓋、因果圖 可靠性分析:估算測試前程序中潛在錯誤 OMT建模:對象模型、動態(tài)模型(狀態(tài)圖、事件追蹤圖) UML建模:用例圖、類圖、順序圖、活動圖,3,軟件的概念,軟件的定義軟件由計算機(jī)程序、數(shù)據(jù)及文檔組成。 軟件與硬件、數(shù)據(jù)庫、人、過程等共同構(gòu)成計算機(jī)系統(tǒng)

2、。 軟件按功能分類:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。 軟件的發(fā)展經(jīng)歷了三個階段:程序設(shè)計階段、程序系統(tǒng)階段、軟件工程階段。,軟件工程概念的出現(xiàn)源自軟件危機(jī)。 軟件危機(jī)的主要特征 軟件開發(fā)周期大大超過規(guī)定日期; 軟件開發(fā)成本嚴(yán)重超標(biāo); 軟件質(zhì)量難于保證; 失敗的根本原因在于:開發(fā)人員寫出的東西達(dá)不到用戶要求 (人的問題、技術(shù)問題),5,1968 年德國人 Bauer 在北大西洋公約組織會議上的定義: 建立并使用完善的工程化原則 , 以較經(jīng)濟(jì)的手段獲得能在實際機(jī)器上有效運行的可靠軟件的一系列方法。 1983 年 IEEE 的軟件工程定義: 軟件工程是開發(fā),運行 , 維護(hù)和修復(fù)軟件的系統(tǒng)方法。 199

3、3 年 IEEE 的一個更加綜合的定義: 將系統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的開發(fā) , 運行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。,軟件工程定義,6,軟件工程框架,7,軟件工程框架給出了軟件工程三個主要方面。 軟件工程目標(biāo)包括可用性、正確性和合算性,規(guī)定了軟件工程實踐的結(jié)果(即軟件)應(yīng)具有的基本性質(zhì); 軟件工程過程包含的基本活動有需求、分析與設(shè)計、實現(xiàn)、確認(rèn)與測試、維護(hù)與支持; 軟件工程的四條原則-采用適宜的開發(fā)模型,使用恰當(dāng)?shù)拈_發(fā)方法,提供高質(zhì)量的工程支持,實施有效的工程管理,從四個方面指導(dǎo)每一項工程的活動,以實現(xiàn)軟件工程目標(biāo)。,8,軟件工程的知識結(jié)構(gòu),2001年5月ISO/IEC

4、JTC 1發(fā)布了SWEBOK 指南 V0.95(試用版),即 Guide to the Software Engineering Body of Knowledge 。 SWEBOK 把軟件工程學(xué)科的主體知識分為 10 個知識領(lǐng)域這 10 個領(lǐng)域包括:軟件需求,軟件設(shè)計,軟件構(gòu)造,軟件測試,軟件維護(hù),軟件配置管理,軟件工程管理,軟件工程過程,軟件工程工具和方法,軟件質(zhì)量。,9,ISO 9000定義:軟件工程過程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。 從軟件開發(fā)的觀點看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時間等),為開發(fā)軟件進(jìn)行的一組開發(fā)活動,在過程結(jié)束時將輸入(用戶要求)轉(zhuǎn)化

5、為輸出(軟件產(chǎn)品)。,軟件工程過程與軟件生存周期,10,軟件工程過程定義了: 方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、軟件開發(fā)各個階段完成的里程碑。 軟件工程過程包含四種基本的過程活動: plan : 軟件規(guī)格說明 do : 軟件開發(fā) check : 軟件確認(rèn) action : 軟件演進(jìn),11,軟件生存周期包含三個階段:軟件定義、軟件開發(fā)及軟件運行維護(hù)。 軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的系統(tǒng)開發(fā)、運行、維護(hù)所實施的全部活動和任務(wù)的過程框架。 常用的軟件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,噴泉模型,快速應(yīng)用開發(fā)( RAD

6、 )模型。,12,瀑布模型,各項活動按自上而下,相互銜接的固定次序,如同瀑布逐級下落,每項活動均處于一個質(zhì)量環(huán)(輸入-處理-輸出-評審)中。 階段間具有順序性和依賴性。 推遲實現(xiàn)的觀點。 每個階段必須完成規(guī)定的文檔;每個階段結(jié)束前完成文檔審查。,13,14,演化模型,演化模型是迭代的,軟件必須經(jīng)過不斷演化才能完善。 演化模型先開發(fā)一個“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。 業(yè)務(wù)和產(chǎn)品需求在變化中,采用線性開發(fā)方式是不實際的。 快速實現(xiàn)和提交一個有限的版本,可以應(yīng)付市場競爭的壓力。,15,16,螺旋模型,螺旋模型將瀑布模型與演化模型結(jié)合起來,

7、并且加入兩種模型均忽略了的風(fēng)險分析。 螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個新版本。 制定計劃 風(fēng)險分析 實施工程 客戶評估,17,18,增量模型,增量模型是迭代和演進(jìn)的過程。 增量模型把軟件產(chǎn)品分解成一系列的增量構(gòu)件,在增量開發(fā)迭代中逐步加入。 每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。 早先完成的增量可以為后期的增量提供服務(wù)。 增量開發(fā)方法的新演進(jìn)版本叫做 極限程序設(shè)計(eXtreme Programming) 。,19,20,21,噴泉模型,體現(xiàn)了迭代和無間隙的特性。 系統(tǒng)某個部分常常重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入演進(jìn)的軟件成分。 無間隙

8、是指在各項開發(fā)活動,即分析、設(shè)計和編碼之間不存在明顯的邊界。 噴泉模型是對象驅(qū)動的過程。,22,23,變換模型,變換模型是一種基于形式化規(guī)格說明語言及程序變換的軟件開發(fā)模型。 它采用形式化的軟件開發(fā)方法,對形式化的軟件規(guī)格說明進(jìn)行一系列自動的或半自動的程序變換,最終映射成為計算機(jī)系統(tǒng)能夠接受的程序系統(tǒng)。 多步程序變換過程的重要性質(zhì)是:每一步程序變換的正確性僅與該步變換所依據(jù)的規(guī)范 Mi 以及對變換后的假設(shè) Mi+1 有關(guān)。,24,在此意義上,變換步驟獨立于其他變換步驟。這稱為變換的獨立性。 該模型只適合于軟件的形式化開發(fā)方法;需要嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)支持;需要一整套開發(fā)環(huán)境(如程序變換工

9、具、定理證明工具等)的支持。,25,基于第四代技術(shù)的模型,第四代語言 (4GL) 是在大型數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是一種面向結(jié)果的非過程性語言。它獨立于具體的處理機(jī),有豐富的軟件工具支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源并能適應(yīng)不同水平用戶的需要。 以4GL為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用4GT的軟件開發(fā)模型如圖。 軟件開發(fā)人員在定義軟件需求,給出需求規(guī)格說明之后,4GT工具可將該需求規(guī)格說明自動,26,轉(zhuǎn)換為程序代碼。這大大減少了分析、設(shè)計、編碼和測試的時間。 以4GL為核心的軟件開發(fā)技術(shù)成為第四代技術(shù)(4GT),采用4GT的軟件開發(fā)模型如圖。,27,快速應(yīng)用開發(fā)(

10、RAD )模型,快速應(yīng)用開發(fā)模型是一種增量開發(fā)模型,該模型開發(fā)軟件大量使用了可復(fù)用的構(gòu)件。 每一個增量的開發(fā)經(jīng)歷五個階段: 業(yè)務(wù)建模 對業(yè)務(wù)功能的信息流建模。 數(shù)據(jù)建模 對業(yè)務(wù)的數(shù)據(jù)對象和關(guān)系建模。 過程建模 描述完成業(yè)務(wù)功能的數(shù)據(jù)變換。 應(yīng)用生成 應(yīng)用構(gòu)件和自動化工具建造。 測試與反復(fù) 對新構(gòu)件和接口進(jìn)行測試。,28,29,軟件開發(fā)范型(Paradigm),范型又稱為風(fēng)范。通常認(rèn)為范型就是開發(fā)模型(Model)或開發(fā)模式(Pattern),實際上它與方法(Methodology)一樣,都被視為一種開發(fā)技術(shù)。范型支配了設(shè)計方法、編碼語言、測試和檢驗技術(shù)的選擇。 過程性范型把軟件視為處理流,定義

11、成由一系列步驟構(gòu)成的算法。每一步驟都是帶有輸入和輸出的一個過程,把這些步驟串聯(lián)在一起可產(chǎn)生貫通于整個程序的控制流。,30,面向?qū)ο蠓缎桶褬?biāo)識和模型化問題領(lǐng)域中的實體做為系統(tǒng)開發(fā)的起點,面向?qū)ο笙到y(tǒng)中的對象是數(shù)據(jù)抽象與過程抽象的綜合。 邏輯性范型是基于規(guī)則的,它把有關(guān)問題的知識分解成一組具體規(guī)則(如prolog語言)。 面向進(jìn)程范型把一個問題分解成獨立執(zhí)行的模塊。讓不只一個程序同時運行。這些進(jìn)程互相配合,解決問題。 面向存取范型是一種在構(gòu)造用戶界面方面很有用的技術(shù)。,31,函數(shù)型范型是基于規(guī)則的,它把有關(guān)問題的知識分解成一組具體規(guī)則,用語言的“if_then”等結(jié)構(gòu)來表示這些規(guī)則。 說明性范型。 每種開發(fā)范型都有它的支持者和用戶: 每種開發(fā)范型都特別適合于某種類型的問題或子問題; 每種開發(fā)范型都用不同的方式考慮問題; 每種開發(fā)范型都使用不同的方法來分解問題,32,每種開發(fā)范型都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則。 系統(tǒng)開發(fā)時通常把大型問題分解成一組子問題。對于每個子問題采用適當(dāng)?shù)能浖_發(fā)范型

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論