軟件工程概論 1- 軟件工程概述學(xué)習(xí)課件_第1頁
軟件工程概論 1- 軟件工程概述學(xué)習(xí)課件_第2頁
軟件工程概論 1- 軟件工程概述學(xué)習(xí)課件_第3頁
軟件工程概論 1- 軟件工程概述學(xué)習(xí)課件_第4頁
軟件工程概論 1- 軟件工程概述學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

哈爾濱工業(yè)大學(xué)軟件學(xué)院第1章軟件工程概述楊大易2015/11/24本章主要內(nèi)容1.1什么是軟件1.2軟件危機(jī)1.3軟件工程1.4軟件工程方法1.5軟件生命周期模型1.6本章小結(jié)哈爾濱工業(yè)大學(xué)軟件學(xué)院11.1什么是軟件

軟件的定義

計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計(jì)算機(jī)上運(yùn)行時(shí)所必需的數(shù)據(jù)。(IEEE-1983)

軟件(software)由三部分組成

可以在計(jì)算機(jī)上運(yùn)行的程序(program);

運(yùn)行程序需要的數(shù)據(jù)(data);

開發(fā)、維護(hù)、使用需要的各種文檔(document)。哈爾濱工業(yè)大學(xué)軟件學(xué)院21.1什么是軟件

軟件的特征

軟件是一種邏輯實(shí)體,具有抽象性

軟件沒有明顯的制造過程

軟件在使用過程中,沒有磨損、老化的問題

軟件對(duì)硬件和環(huán)境有著不同程度的依賴性

軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低

軟件的成本相當(dāng)昂貴

軟件工作牽涉到很多社會(huì)因素哈爾濱工業(yè)大學(xué)軟件學(xué)院31.1什么是軟件

軟件的發(fā)展過程

從1946年到60年代初:程序設(shè)計(jì)時(shí)期,其主要特征是程序生產(chǎn)方式為個(gè)體手工方式。

從20世紀(jì)60年代初到70年代初:程序系統(tǒng)時(shí)期,程序的規(guī)模已經(jīng)很大,需要多人分工協(xié)作,軟件的開發(fā)方式由“個(gè)體生產(chǎn)”發(fā)展到了“軟件作坊”。

從20世紀(jì)70年代中期至80年代中期:軟件工程時(shí)期,軟件的開發(fā)以工程化的思想為指導(dǎo),用工程化原則、方法和標(biāo)準(zhǔn)來開發(fā)和維護(hù)軟件。

從20世紀(jì)80年代中期至今:面向?qū)ο髸r(shí)期,面向?qū)ο筌浖_發(fā)技術(shù)在迅速取代傳統(tǒng)軟件工程開發(fā)方法。哈爾濱工業(yè)大學(xué)軟件學(xué)院41.2軟件危機(jī)

1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在德國(guó)召開國(guó)際會(huì)議,把計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中出現(xiàn)的一系列嚴(yán)重問題稱為“軟件危機(jī)”。

軟件危機(jī)的主要表現(xiàn)

軟件功能與實(shí)際需求不符

軟件價(jià)格昂貴

軟件產(chǎn)品的質(zhì)量差

對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確

軟件文檔資料通常既不完整也不合格

軟件的維護(hù)費(fèi)用急劇上升哈爾濱工業(yè)大學(xué)軟件學(xué)院51.2軟件危機(jī)

產(chǎn)生軟件危機(jī)的原因

軟件缺乏“可見性”,在寫出程序代碼并在計(jì)算機(jī)上運(yùn)行之前,軟件開發(fā)過程的進(jìn)展質(zhì)量較難衡量,很難檢驗(yàn)開發(fā)的正確性。

軟件規(guī)模龐大,邏輯結(jié)構(gòu)復(fù)雜。

開發(fā)管理人員只重視設(shè)計(jì)程序而輕視用戶需求分析,導(dǎo)致最后研制出的軟件產(chǎn)品無法滿足用戶的需求。

軟件設(shè)計(jì)技術(shù)和管理技術(shù)落后,沒有統(tǒng)一的軟件質(zhì)量管理規(guī)范。

在軟件的開發(fā)與維護(hù)關(guān)系問題上存在錯(cuò)誤的概念,重視開發(fā),而輕視維護(hù)。哈爾濱工業(yè)大學(xué)軟件學(xué)院61.3軟件工程

軟件工程的提出

1968年,北大西洋公約組織在原西德召開計(jì)算機(jī)科學(xué)會(huì)議,由FritzBauer首次提出了“軟件工程”的概念。

軟件工程的定義

軟件工程是用科學(xué)知識(shí)和技術(shù)原理來定義、開發(fā)、維護(hù)軟件的一門學(xué)科。它應(yīng)用工程的概念、原理、技術(shù)和方法,應(yīng)用科學(xué)的開發(fā)技術(shù)和管理方法來開發(fā)軟件。

1983年IEEE給出的定義:將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用與軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化方法應(yīng)用于軟件。哈爾濱工業(yè)大學(xué)軟件學(xué)院71.3軟件工程

軟件工程基本思想——著名的軟件工程專家B.W.Boehm于1983年提出

用分階段的生存周期計(jì)劃嚴(yán)格管理

堅(jiān)持進(jìn)行階段評(píng)審

實(shí)行嚴(yán)格的產(chǎn)品控制

采用現(xiàn)代程序設(shè)計(jì)技術(shù)

結(jié)果應(yīng)能清楚地審查

開發(fā)小組的人員應(yīng)少而精

承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性哈爾濱工業(yè)大學(xué)軟件學(xué)院81.3軟件工程

軟件工程知識(shí)體系

swebok_2004軟件工程知識(shí)體系指南

軟件工程三要素:方法、工具、過程

軟件工程過程:將各個(gè)技術(shù)層次結(jié)合在一起,使合理、及時(shí)地開發(fā)計(jì)算機(jī)軟件成為可能。

軟件工程方法:為構(gòu)建軟件提供技術(shù)上的解決方法。

軟件工程工具:為過程和方法提供自動(dòng)化或半自動(dòng)化的支持。哈爾濱工業(yè)大學(xué)軟件學(xué)院91.4軟件工程方法

把在軟件生命周期全過程中使用的一整套技術(shù)集合稱為方法(methodology),也可稱為方法學(xué)或范型。

軟件工程方法包括開發(fā)方法、開發(fā)工具和開發(fā)過程三方面。

目前使用得最廣泛的軟件工程方法,分別是傳統(tǒng)方法和面向?qū)ο蠓椒ā9枮I工業(yè)大學(xué)軟件學(xué)院101.4軟件工程方法

傳統(tǒng)方法:把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,自頂向下,逐層分解,使得每個(gè)階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。

軟件定義時(shí)期:確定軟件開發(fā)必須完成的任務(wù);論證軟件可行性;確定用戶需求的詳細(xì)功能和性能??蓜澐譃槿齻€(gè)階段:?jiǎn)栴}定義、可行性研究和需求分析。

軟件開發(fā)時(shí)期:設(shè)計(jì)和實(shí)現(xiàn)軟件的定義。四個(gè)階段:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼及單元測(cè)試、綜合測(cè)試。

軟件維護(hù)時(shí)期:對(duì)投入使用的軟件的修改,實(shí)際上是對(duì)軟件的一次重新定義和開發(fā)過程。

傳統(tǒng)方法也稱為生命周期方法或結(jié)構(gòu)化方法。哈爾濱工業(yè)大學(xué)軟件學(xué)院111.4軟件工程方法

傳統(tǒng)方法的特征

開發(fā)過程分為三個(gè)時(shí)期,每個(gè)時(shí)期又分成若干階段;

采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運(yùn)用;

從上而下,順序地完成軟件開發(fā)的各階段任務(wù)。

傳統(tǒng)方法仍然是使用十分廣泛的軟件工程方法。哈爾濱工業(yè)大學(xué)軟件學(xué)院121.4軟件工程方法

面向?qū)ο蠓椒ǎ菏且环N把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法,簡(jiǎn)稱OO

(Object-Oriented)方法。

面向?qū)ο蠓椒ǖ奶卣?/p>

是建立在對(duì)象概念基礎(chǔ)上的方法學(xué),對(duì)象的概念貫穿于開發(fā)全過程。

運(yùn)用人類日常的思維方法和原則進(jìn)行系統(tǒng)開發(fā),體現(xiàn)出繼承性、封裝性、多態(tài)性等基本特征。

可劃分為三個(gè)階段:面向?qū)ο蠓治觯∣OA)、面向?qū)ο笤O(shè)計(jì)(OOD)、面向?qū)ο髮?shí)現(xiàn)(OOI)。哈爾濱工業(yè)大學(xué)軟件學(xué)院131.5軟件生命周期模型

軟件項(xiàng)目開發(fā)和維護(hù)的全過程。

軟件生命周期模型的種類:

以軟件需求完全確定為基礎(chǔ)的瀑布模型;

開發(fā)初期僅給出基本需求的漸進(jìn)式模型,如原型模型、螺旋模型、噴泉模型等;

以形式化開發(fā)方法為基礎(chǔ)的變換模型、基于第四代語言技術(shù)的模型。

在實(shí)際開發(fā)時(shí),應(yīng)根據(jù)項(xiàng)目的特點(diǎn)和現(xiàn)有的條件選取合適的模型,也可以把幾種模型組合起來使用以便充分利用各模型的優(yōu)點(diǎn)。哈爾濱工業(yè)大學(xué)軟件學(xué)院141.5軟件生命周期模型

瀑布模型

嚴(yán)格按照軟件生存周期各個(gè)階段來進(jìn)行開發(fā),上一階段的輸出即是下一階段的輸入,強(qiáng)調(diào)每一階段的嚴(yán)格性。哈爾濱工業(yè)大學(xué)軟件學(xué)院151.5軟件生命周期模型

瀑布模型的優(yōu)點(diǎn)

提供了軟件開發(fā)的基本框架,有利于軟件開發(fā)過程中人員組織與管理,有利于開發(fā)方法和工具的研究與使用。

瀑布模型的缺點(diǎn)

在軟件開發(fā)的初期階段就要求做出正確、全面、完整的需求分析對(duì)許多應(yīng)用軟件來說是極其困難的;

不支持產(chǎn)品的演化,缺乏靈活性,對(duì)開發(fā)過程中很難發(fā)現(xiàn)的錯(cuò)誤,使軟件產(chǎn)品難以維護(hù)。

瀑布模型的適用場(chǎng)合

適合于需求明確、完整、無重大變化的軟件系統(tǒng)。哈爾濱工業(yè)大學(xué)軟件學(xué)院161.5軟件生命周期模型

原型模型

開發(fā)人員與用戶一起進(jìn)行需求分析,進(jìn)行快速設(shè)計(jì),建造原型,原型由用戶評(píng)估,進(jìn)一步修改原型,再次進(jìn)行設(shè)計(jì)。迭代這個(gè)過程,逐步滿足用戶需要。哈爾濱工業(yè)大學(xué)軟件學(xué)院171.5軟件生命周期模型

原型模型的優(yōu)點(diǎn)

原型模型法可以得到良好的需求定義,能夠有效處理用戶的模糊需求,開發(fā)者和用戶得到充分的協(xié)作。

原型模型的缺點(diǎn)

開發(fā)者常常需要實(shí)現(xiàn)上的折衷,以使原型能盡快工作;

用戶似乎看到的是軟件的工作版本,其實(shí)軟件質(zhì)量和可靠性難以保證;

資源規(guī)劃和管理較為困難,更新文檔工作量繁重。

原型模型的適用場(chǎng)合

適合于不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā)。哈爾濱工業(yè)大學(xué)軟件學(xué)院181.5軟件生命周期模型

螺旋模型

綜合了瀑布模型和原型模型的優(yōu)點(diǎn),即將兩者結(jié)合,并加入了風(fēng)險(xiǎn)分析機(jī)制。哈爾濱工業(yè)大學(xué)軟件學(xué)院191.5軟件生命周期模型

螺旋模型的優(yōu)點(diǎn)

螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性;

為項(xiàng)目管理人員及時(shí)調(diào)整管理決策提供了方便,可降低開發(fā)風(fēng)險(xiǎn)。

螺旋模型的缺點(diǎn)

如果每次迭代的效率不高,會(huì)致使迭代次數(shù)過多;

需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),要求開發(fā)隊(duì)伍水平較高。

螺旋模型的適用場(chǎng)合

支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā)。哈爾濱工業(yè)大學(xué)軟件學(xué)院201.5軟件生命周期模型

噴泉模型

以用戶需求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型,主要用于描述面向?qū)ο蟮能浖_發(fā)過程。哈爾濱工業(yè)大學(xué)軟件學(xué)院211.5軟件生命周期模型

噴泉模型的特點(diǎn)

軟件系統(tǒng)可維護(hù)性較好;

各階段相互重疊,表明了面向?qū)ο箝_發(fā)方法各階段間的交叉和無縫過渡;

整個(gè)模型是一個(gè)迭代的過程,包括一個(gè)階段內(nèi)部的迭代和跨階段的迭代;

模型具有增量開發(fā)特性,能做到分析一點(diǎn)、設(shè)計(jì)一點(diǎn)、實(shí)現(xiàn)一點(diǎn)、測(cè)試一點(diǎn),支持系統(tǒng)演化。

模型是對(duì)象驅(qū)動(dòng)的,對(duì)象是各階段活動(dòng)的主體,也是項(xiàng)目管理的基本內(nèi)容。

該模型很自然地支持軟部件的重用。哈爾

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論