計(jì)算機(jī)軟件基礎(chǔ)課件:軟件工程概述_第1頁(yè)
計(jì)算機(jī)軟件基礎(chǔ)課件:軟件工程概述_第2頁(yè)
計(jì)算機(jī)軟件基礎(chǔ)課件:軟件工程概述_第3頁(yè)
計(jì)算機(jī)軟件基礎(chǔ)課件:軟件工程概述_第4頁(yè)
計(jì)算機(jī)軟件基礎(chǔ)課件:軟件工程概述_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程概述《計(jì)算機(jī)軟件基礎(chǔ)》01.軟件工程簡(jiǎn)介02.軟件生命周期03.軟件過程模型主要內(nèi)容04.敏捷開發(fā)本章重點(diǎn)難點(diǎn)本章重點(diǎn):軟件危機(jī)的表現(xiàn)和產(chǎn)生原因;軟件工程的概念和基本原理;軟件生命周期各個(gè)階段的主要任務(wù);軟件測(cè)試的基本準(zhǔn)則、步驟和方法;黑盒測(cè)試;不同軟件過程模型的特點(diǎn);敏捷開發(fā)思想和模型。本章難點(diǎn):使用判定樹表達(dá)簡(jiǎn)單算法;等價(jià)劃分方法;軟件過程模型;敏捷開發(fā)模型。01軟件工程簡(jiǎn)介1.軟件危機(jī)1)軟件危機(jī)介紹

軟件危機(jī)是指軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。

軟件危機(jī)主要有以下典型表現(xiàn):軟件開發(fā)成本和進(jìn)度難以估計(jì)。用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量無法保證。軟件常常是不可維護(hù)的。軟件缺少適當(dāng)?shù)奈臋n資料,難以維護(hù)。軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)速度跟不上社會(huì)需求的增長(zhǎng)。2.軟件危機(jī)產(chǎn)生原因1)與軟件自身的特點(diǎn)有關(guān)軟件是計(jì)算機(jī)系統(tǒng)中的邏輯部件。軟件規(guī)模龐大,且程序的復(fù)雜性隨著程序規(guī)模的增加而呈指數(shù)級(jí)上升。2)與軟件開發(fā)和維護(hù)的方法不正確有關(guān)2.軟件工程的定義與特征

軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科,采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理和技術(shù)與當(dāng)前能夠得到的最好方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。軟件工程的本質(zhì)特征:1)軟件工程關(guān)注于大型程序的構(gòu)造。

2)軟件工程的中心課題是控制復(fù)雜性。3)軟件應(yīng)隨著所模擬的現(xiàn)實(shí)世界一起變化。

4)開發(fā)軟件的效率非常重要。5)有效地多人協(xié)同工作是軟件開發(fā)的關(guān)鍵。

6)軟件必須有效地支持它的用戶。7)軟件通常是由缺乏應(yīng)用領(lǐng)域知識(shí)和文化知識(shí)的工程師創(chuàng)造完成。3.軟件工程的基本原理1)用分階段的生存周期計(jì)劃進(jìn)行嚴(yán)格管理。2)堅(jiān)持進(jìn)行階段評(píng)審。3)實(shí)行嚴(yán)格的產(chǎn)品控制。4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。5)清楚地審查結(jié)果。6)軟件開發(fā)小組的人員應(yīng)該少而精。7)必須不斷改進(jìn)軟件工程實(shí)踐。4.軟件工程方法學(xué)1)傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來完成軟件開發(fā)的各項(xiàng)任務(wù)并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運(yùn)用。2)面向?qū)ο蠓椒▽W(xué)把對(duì)象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類。按照父類(又稱為基類)與子類(又稱為派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。對(duì)象彼此間僅能通過發(fā)送消息互相聯(lián)系。02軟件生命周期

軟件從定義、開發(fā)、使用、維護(hù),直至最終被廢棄的漫長(zhǎng)時(shí)期稱為軟件生命周期(SoftwareLifeCycle)。1、軟件生命周期

軟件生命周期的各階段1.軟件定義

該階段的任務(wù)是確定軟件開發(fā)過程必須完成的總目標(biāo) 即根據(jù)用戶具體需求解決系統(tǒng)“做什么”的問題1)問題定義

明確“軟件要解決的問題是什么?”。首先要收集和分析相關(guān)信息,準(zhǔn)確、完整地描述出用戶提出的要求。該子階段最后產(chǎn)生的結(jié)果是問題描述文檔。2)可行性研究技術(shù)可行性經(jīng)濟(jì)可行性操作可行性3)需求分析明確“目標(biāo)系統(tǒng)必須做什么?”,是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程,其目的是確定目標(biāo)系統(tǒng)必須具備哪些功能。結(jié)果是具體的軟件需求規(guī)格說明。2.總體設(shè)計(jì)

又稱概要設(shè)計(jì),其任務(wù)是提出候選的最佳方案,確定模塊結(jié)構(gòu),編寫總體設(shè)計(jì)說明書。

首先,應(yīng)該設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。然后,依據(jù)最佳方案,制定出實(shí)現(xiàn)該方案的詳細(xì)計(jì)劃。如果用戶接受所推薦的方案,則繼續(xù)完成總體設(shè)計(jì)的另一項(xiàng)主要任務(wù),即設(shè)計(jì)軟件的結(jié)構(gòu)。程序應(yīng)該模塊化模塊獨(dú)立性

3.詳細(xì)設(shè)計(jì)

又稱模塊設(shè)計(jì),其根本任務(wù)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),是編碼的先導(dǎo)。

結(jié)構(gòu)化程序設(shè)計(jì)是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ),采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)三種基本結(jié)構(gòu)。

描述程序處理過程的工具稱為詳細(xì)設(shè)計(jì)工具,主要包括如下三類:1)圖形工具:如程序流程圖、盒圖(N_S圖)、問題分析圖(PAD)。2)表格工具:如判定樹、判定表。3)語(yǔ)言工具:如過程設(shè)計(jì)語(yǔ)言。

4.軟件編碼

任務(wù)是根據(jù)設(shè)計(jì)說明書中每個(gè)模塊的算法描述,用指定的程序設(shè)計(jì)語(yǔ)言編寫出相應(yīng)的程序。軟件編碼階段結(jié)束后需要交付的是源程序及其相關(guān)文檔。1)程序設(shè)計(jì)語(yǔ)言

程序設(shè)計(jì)語(yǔ)言分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言:用戶選擇高級(jí)語(yǔ)言類型的原則如下:1)系統(tǒng)的應(yīng)用領(lǐng)域。2)用戶的要求。3)軟件的執(zhí)行環(huán)境。當(dāng)前,用戶均采用高級(jí)語(yǔ)言來編程實(shí)現(xiàn)軟件系統(tǒng)。4)目標(biāo)系統(tǒng)的性能要求。5)程序員的知識(shí)水平。6)軟件的可移植性要求。2)程序設(shè)計(jì)風(fēng)格一般而言,良好的程序設(shè)計(jì)風(fēng)格需要遵循以下準(zhǔn)則:簡(jiǎn)潔化模塊化簡(jiǎn)單化結(jié)構(gòu)化文檔化格式化

測(cè)試階段的根本任務(wù)是發(fā)現(xiàn)并改正軟件中的錯(cuò)誤。

測(cè)試只是查找出程序中的錯(cuò)誤,不能證明程序中沒有錯(cuò)誤,即決不能證明程序是正確的。1)基本準(zhǔn)則:所有測(cè)試都應(yīng)該能追溯到用戶需求。應(yīng)該遠(yuǎn)在測(cè)試開始之前就制定出測(cè)試計(jì)劃。把Pareto原理應(yīng)用到軟件測(cè)試中。應(yīng)該從“小規(guī)?!睖y(cè)試開始,并逐步進(jìn)行“大規(guī)模”測(cè)試。窮舉測(cè)試是不可能的。為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。5.軟件測(cè)試2)軟件測(cè)試的步驟

大型軟件系統(tǒng)的測(cè)試過程基本上由4個(gè)步驟組成:?jiǎn)卧獪y(cè)試,又稱為模塊測(cè)試。子系統(tǒng)測(cè)試。系統(tǒng)測(cè)試。確認(rèn)測(cè)試,又稱為驗(yàn)收測(cè)試。軟件測(cè)試是軟件開發(fā)過程中最艱巨最繁重的任務(wù)。3)軟件測(cè)試的方法:測(cè)試的目的是以最少的測(cè)試用例集合測(cè)試出盡可能多的程序中潛在的錯(cuò)誤。黑盒測(cè)試,又稱功能測(cè)試。把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只是對(duì)程序的每一個(gè)功能進(jìn)行測(cè)試,看是否都達(dá)到了預(yù)期的要求。白盒測(cè)試,又稱結(jié)構(gòu)測(cè)試。它把程序看成一個(gè)白盒子,需要完全了解程序的內(nèi)部結(jié)構(gòu)和處理過程,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。黑盒測(cè)試白盒測(cè)試性質(zhì)是一種確認(rèn)技術(shù),回答“我們?cè)跇?gòu)造一個(gè)正確的系統(tǒng)嗎?”是一種驗(yàn)證技術(shù),回答“我們?cè)谡_地構(gòu)造一個(gè)系統(tǒng)嗎?”優(yōu)點(diǎn)①適用于各階段測(cè)試。②從產(chǎn)品功能角度測(cè)試。③容易入手生成測(cè)試數(shù)據(jù)。①可構(gòu)造測(cè)試數(shù)據(jù)使程序的特定部分得到測(cè)試。②一定的充分性度量手段。③可獲得較多的工具支持。缺點(diǎn)①某些代碼得不到測(cè)試。②若規(guī)格說明有誤,則無法發(fā)現(xiàn)。③不易進(jìn)行充分性測(cè)試。①通常不易生成測(cè)試數(shù)據(jù)。②無法對(duì)未實(shí)現(xiàn)規(guī)格說明的部分進(jìn)行測(cè)試。③工作量大,通常只用于單元測(cè)試,有應(yīng)用的局限性。4)測(cè)試用例的設(shè)計(jì)需要精心設(shè)計(jì)測(cè)試用例,力爭(zhēng)用盡可能少的測(cè)試次數(shù),測(cè)出盡可能多的錯(cuò)誤。

通常使用黑盒法設(shè)計(jì)基本的測(cè)試用例,再用白盒法補(bǔ)充。例12-2

讀入三個(gè)整數(shù)值,分別代表同一個(gè)三角形三條邊的長(zhǎng)度。請(qǐng)根據(jù)這三個(gè)值判斷三角形屬于不等邊、等腰或等邊三角形中的哪一種。等價(jià)劃分方法:等價(jià)劃分方法根據(jù)輸入數(shù)據(jù)和輸出數(shù)據(jù)的特點(diǎn),將程序的輸入域劃分成若干個(gè)部分,即子集,然后從每個(gè)子集中選取具有代表性的數(shù)據(jù)作為測(cè)試用例,能盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。5)

調(diào)試:進(jìn)一步診斷和改正程序中的錯(cuò)誤。

軟件維護(hù)是軟件生存周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng)、代價(jià)最大的一個(gè)階段。其目的是延長(zhǎng)軟件系統(tǒng)的生命周期。

一般來說,需要進(jìn)行軟件維護(hù)的原因有3種:1)改正程序中的錯(cuò)誤和缺陷。2)改進(jìn)設(shè)計(jì)以適應(yīng)新的軟、硬件環(huán)境。3)增加新的應(yīng)用范圍。軟件維護(hù)工作分為4類:1)改正性維護(hù)。2)適應(yīng)性維護(hù)。3)完善性維護(hù)。4)預(yù)防性維護(hù)。6.軟件維護(hù)03軟件過程模型3.軟件過程模型1)瀑布模型在20世紀(jì)80年代之前,由B.M.Boehm提出了瀑布模型,又稱生存周期模型,是軟件工程的基礎(chǔ)模型特點(diǎn):階段間具有順序性和依賴性。推遲實(shí)現(xiàn)原則。質(zhì)量保證機(jī)制。

軟件過程是軟件開發(fā)過程的簡(jiǎn)稱,是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,規(guī)定了完成各項(xiàng)任務(wù)的具體步驟。2)原型模型

原型模型的基本思想是根據(jù)用戶實(shí)際試用原型系統(tǒng)后提出的修改意見快速修改原型樣品,經(jīng)過反復(fù)試用和改進(jìn),最終建立起符合用戶需求的新系統(tǒng)。原型模型通??梢苑譃閮深?原型僅是為了獲得完整的需求說明,在用戶認(rèn)可后,按生命周期重新開發(fā)新系統(tǒng)。不丟棄原型,而是通過對(duì)原型的不斷增加和擴(kuò)充,增強(qiáng)式地開發(fā),逐步達(dá)到系統(tǒng)的要求,目的是為了以后盡量少返工,降低維護(hù)費(fèi)用,這一類稱為快速原型模型。3)螺旋模型

螺旋模型是一種風(fēng)險(xiǎn)驅(qū)動(dòng)模型,它的基本思想是使用原型及其他方法來降低風(fēng)險(xiǎn)。4)統(tǒng)一過程模型

統(tǒng)一過程(UnifiedProcess,UP)嘗試著從傳統(tǒng)的軟件過程中挖掘最好的特征和性質(zhì),但是以敏捷軟件開發(fā)中許多最好的原則來實(shí)現(xiàn)。統(tǒng)一過程認(rèn)識(shí)到與客戶溝通以及從客戶的角度描述系統(tǒng)(即用例)并保持該描述一致性的重要性,它強(qiáng)調(diào)軟件體系結(jié)構(gòu)的重要作用,并幫助架構(gòu)師專注于正確的目標(biāo),例如可理解性、對(duì)未來變更的可適應(yīng)性以及軟件的復(fù)用性。它建立了迭代的、增量的過程流,提供了演進(jìn)的特征,這對(duì)現(xiàn)代軟件開發(fā)非常重要。04敏捷開發(fā)1.敏捷開發(fā)概述敏捷不僅僅能有效地響應(yīng)變更;強(qiáng)調(diào)可以運(yùn)行的軟件的快速交付而不那么看重中間產(chǎn)品;客戶應(yīng)該在開發(fā)過程中始終緊密參與;軟件以增量的方式進(jìn)行開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論