第01章軟件工程學(xué)概述_第1頁(yè)
第01章軟件工程學(xué)概述_第2頁(yè)
第01章軟件工程學(xué)概述_第3頁(yè)
第01章軟件工程學(xué)概述_第4頁(yè)
第01章軟件工程學(xué)概述_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、天津市大學(xué)軟件學(xué)院天津市大學(xué)軟件學(xué)院 本章學(xué)習(xí)目標(biāo):本章學(xué)習(xí)目標(biāo): 了解軟件危機(jī)的發(fā)生原因和典型表現(xiàn) 識(shí)記軟件工程的概念和基本原理 識(shí)記軟件生命周期和軟件過(guò)程的概念 識(shí)記常用的生命周期模型第1章 軟件工程學(xué)概述第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期1.1.1 軟件的定義 17世紀(jì)60年代,Augusta Ada Lovelace為分析機(jī)編寫(xiě)程序,包括計(jì)算三角函數(shù)、級(jí)數(shù)相乘、伯努利函數(shù)等的程序 軟件伴隨著ENIAC的問(wèn)世而誕生 20世紀(jì)60年代,美國(guó)出現(xiàn)專(zhuān)門(mén)教授編寫(xiě)軟件的專(zhuān)業(yè)

2、1.1.1 軟件的定義 軟件(Software)的經(jīng)典定義:軟件軟件=“完成特定功能的程序完成特定功能的程序+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+文檔文檔” 程序:按照事先設(shè)計(jì)的功能性能要求執(zhí)行的指令序列; 文檔:與程序開(kāi)發(fā)維護(hù)和使用有關(guān)的各種圖文數(shù)據(jù)1.1.1 軟件的定義 軟件的特征:1、軟件是抽象的邏輯實(shí)體2、軟件是開(kāi)發(fā)的,而不是制造的; 軟件的質(zhì)量取決于開(kāi)發(fā)過(guò)程,而不是制造過(guò)程3、軟件不磨損,但退化,不適應(yīng)新的軟硬件環(huán)境;4、自定義,定制,需要復(fù)用及管理。1.1.1 軟件的定義 軟件規(guī)模的分類(lèi):類(lèi)型類(lèi)型參加人數(shù)參加人數(shù)研制日期研制日期產(chǎn)品規(guī)模產(chǎn)品規(guī)模/代碼行數(shù)代碼行數(shù)微型11-4周0.5K行小型11-6周

3、1-2K行中型2-51-2年5K-50K行大型5-202-3年50K-100K行甚大型100-10004-5年1M行極大型1000以上5-10年1M-10M行1.1.1 軟件的定義 軟件發(fā)展中的相關(guān)問(wèn)題: 硬件的發(fā)展超過(guò)軟件; 現(xiàn)有軟件與用戶的要求矛盾; 軟件失敗導(dǎo)致“災(zāi)難性后果”; 需要高質(zhì)量、高可靠性的軟件; 設(shè)計(jì)的問(wèn)題使升級(jí)和維護(hù)十分困難。1.1.2 軟件危機(jī)的定義 定義定義 “在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重的問(wèn)題。中所遇到的一系列嚴(yán)重的問(wèn)題?!盨oftware Crisis1.1.2 軟件危機(jī)的表現(xiàn)(1)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)

4、確。)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。 實(shí)際成本往往大大超過(guò)估計(jì)成本,或開(kāi)發(fā)進(jìn)度比計(jì)劃推遲幾個(gè)月或一年以上。這種現(xiàn)象極大地影響了軟件開(kāi)發(fā)組織的信譽(yù),也會(huì)引起用戶的強(qiáng)烈不滿。(2)軟件產(chǎn)品質(zhì)量較差,可靠性低。)軟件產(chǎn)品質(zhì)量較差,可靠性低。 軟件開(kāi)發(fā)過(guò)程中不能堅(jiān)持嚴(yán)格的審查、復(fù)審和測(cè)試,使得軟件可靠性差、質(zhì)量問(wèn)題多。 1.1.2 軟件危機(jī)的表現(xiàn)(3)用戶對(duì)開(kāi)發(fā)出來(lái)的軟件產(chǎn)品不滿意。)用戶對(duì)開(kāi)發(fā)出來(lái)的軟件產(chǎn)品不滿意。 開(kāi)發(fā)人員與用戶之間的交流不充分,僅對(duì)用戶需求有了一個(gè)模糊的認(rèn)識(shí)就匆忙開(kāi)始寫(xiě)程序。這樣的結(jié)果就是用戶對(duì)于所謂已經(jīng)完成的軟件很不滿意。(4)軟件常常是不可維護(hù)的。)軟件常常是不可維

5、護(hù)的。 在實(shí)際項(xiàng)目中,很多程序的錯(cuò)誤往往難以修改,而且不能適應(yīng)軟硬件環(huán)境的變化,也無(wú)法添加用戶需要的一些新功能。 1.1.2 軟件危機(jī)的表現(xiàn)(5)軟件產(chǎn)品缺少應(yīng)有的文檔資料。)軟件產(chǎn)品缺少應(yīng)有的文檔資料。 軟件=程序+數(shù)據(jù)+文檔。開(kāi)發(fā)人員對(duì)文檔認(rèn)識(shí)不足,不能保證在開(kāi)發(fā)過(guò)程中文檔的完整性和準(zhǔn)確性。缺少文檔資料會(huì)造成軟件開(kāi)發(fā)、管理、審查、用戶交流、軟件維護(hù)等方面的諸多問(wèn)題。 (6)軟件產(chǎn)品的供不應(yīng)求。軟件產(chǎn)品的供不應(yīng)求。 軟件開(kāi)發(fā)的生產(chǎn)率遠(yuǎn)遠(yuǎn)低于計(jì)算機(jī)硬件發(fā)展速度和用戶的需求,造成了軟件產(chǎn)品的供不應(yīng)求。1.1.3 產(chǎn)生軟件危機(jī)的原因客觀原因:客觀原因:軟件與硬件產(chǎn)品不同,軟件是“開(kāi)發(fā)的”而非“制造

6、的”。其開(kāi)發(fā)過(guò)程難以管理和控制,產(chǎn)品質(zhì)量也不好把握。軟件沒(méi)有“磨損”,但是它會(huì)不斷“退化”。軟件系統(tǒng)無(wú)法適應(yīng)不斷變化的環(huán)境和功能需求。軟件都規(guī)模龐大,而程序的復(fù)雜性是隨其規(guī)模的擴(kuò)大呈指數(shù)增加。 主觀原因:主觀原因:對(duì)用戶要求沒(méi)有完整和準(zhǔn)確的認(rèn)識(shí)就匆忙編寫(xiě)程序。 對(duì)軟件的開(kāi)發(fā)過(guò)程的認(rèn)識(shí)不準(zhǔn)確。生命周期的每個(gè)階段都有特定的工作和特點(diǎn),都是不可逾越的。只有上一階段工作完成,才能開(kāi)始下一階段的工作。 對(duì)軟件質(zhì)量的重視不夠是造成軟件開(kāi)發(fā)成本激增的主要原因。注意軟件開(kāi)發(fā)過(guò)程中錯(cuò)誤的“放大效應(yīng)”。輕視軟件維護(hù)將是一個(gè)重大的錯(cuò)誤。軟件開(kāi)發(fā)時(shí)期各階段的關(guān)鍵目標(biāo)都是提高軟件的可維護(hù)性。 1.1.3 產(chǎn)生軟件危機(jī)的

7、原因第1章 軟件工程學(xué)概述 1.1 軟件危機(jī)軟件危機(jī) 1.2 軟件工程軟件工程 1.3 軟件生命周期1.2 軟件工程 為了更有效地開(kāi)發(fā)與維護(hù)軟件,軟件工作者在20世紀(jì)60年代后期開(kāi)始認(rèn)真研究消除軟件危機(jī)的途徑,從而逐漸形成了一門(mén)新興的工程學(xué)科計(jì)算機(jī)軟件工程學(xué)計(jì)算機(jī)軟件工程學(xué)(簡(jiǎn)稱(chēng)為軟件工程軟件工程)。 1.2.1 軟件工程的概念 定義指導(dǎo)軟件開(kāi)發(fā)與維護(hù)的工程科學(xué)指導(dǎo)軟件開(kāi)發(fā)與維護(hù)的工程科學(xué) 采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)和維護(hù)軟件,綜合運(yùn)用正確的管理技術(shù)和最好的技術(shù)方法,以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效維護(hù)它。 1.2.1 軟件工程的概念 IEEE的定義 軟件工程是把系統(tǒng)的、規(guī)范的、可

8、度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件;對(duì)這些途徑加以研究。 1.2.1 軟件工程的概念 諸多軟件工程的定義所揭示的軟件工程軟件工程的本質(zhì)的本質(zhì)認(rèn)識(shí)是一致的: 軟件工程一般更關(guān)注于大型軟件系統(tǒng)的開(kāi)發(fā);其中核心任務(wù)是控制整個(gè)軟件系統(tǒng)的復(fù)雜性,提高軟件開(kāi)發(fā)的效率,加強(qiáng)人員和技術(shù)的管理,更好地滿足用戶的需要。1.2.2 軟件工程的基本原理(1)用分階段的生命周期計(jì)劃嚴(yán)格管理)用分階段的生命周期計(jì)劃嚴(yán)格管理 應(yīng)該將軟件開(kāi)發(fā)和維護(hù)的漫長(zhǎng)生命周期劃分成若干個(gè)階段,并針對(duì)每個(gè)階段制定切實(shí)可行的計(jì)劃,然后嚴(yán) 格按照計(jì)劃對(duì)軟件的開(kāi)發(fā)和維護(hù)工作進(jìn)行管理。 (2)堅(jiān)持進(jìn)行階段評(píng)審)堅(jiān)持進(jìn)行

9、階段評(píng)審 錯(cuò)誤發(fā)現(xiàn)的越早,改正錯(cuò)誤所付出的代價(jià)就越小。因此,開(kāi)發(fā)人員應(yīng)該堅(jiān)持在每個(gè)階段都進(jìn)行嚴(yán)格的評(píng) 審,以便更早地發(fā)現(xiàn)和改正錯(cuò)誤。 1.2.2 軟件工程的基本原理(3)實(shí)行嚴(yán)格的產(chǎn)品控制)實(shí)行嚴(yán)格的產(chǎn)品控制 在軟件開(kāi)發(fā)的過(guò)程中不應(yīng)隨意修改需求,當(dāng)改變需 求時(shí),必須實(shí)行嚴(yán)格的產(chǎn)品控制以保持軟件各個(gè)配置成 分的一致性。 (4)采用現(xiàn)代程序設(shè)計(jì)技術(shù))采用現(xiàn)代程序設(shè)計(jì)技術(shù) 采用先進(jìn)的技術(shù)不僅可以提高軟件開(kāi)發(fā)和維護(hù)的效率,而且還能有效地提高軟件產(chǎn)品的質(zhì)量。 1.2.2 軟件工程的基本原理(5) 結(jié)果可以清楚地審查結(jié)果可以清楚地審查 應(yīng)規(guī)定每個(gè)開(kāi)發(fā)階段的產(chǎn)品標(biāo)準(zhǔn)和文檔要求,使得到的結(jié)果可以清楚地審查。

10、(6)開(kāi)發(fā)小組成員少而精)開(kāi)發(fā)小組成員少而精 軟件開(kāi)發(fā)小組人員要求素質(zhì)高,而人數(shù)不宜過(guò)多。隨著人數(shù)n的增加,通信路徑也急劇增加。1.2.2 軟件工程的基本原理(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 軟件開(kāi)發(fā)和維護(hù)的過(guò)程也需要隨之改進(jìn)。要主動(dòng)采用最新的軟件技術(shù),而且還要不斷總結(jié)經(jīng)驗(yàn)和教訓(xùn)、收集歷史數(shù)據(jù)幫助開(kāi)發(fā)人員改進(jìn)軟件工程實(shí)踐。1.2.3 軟件工程方法學(xué) 軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué)。 軟件工程方法學(xué)主要包含3個(gè)要素:方法、工具方法、工具和過(guò)程和過(guò)程。 目前使用最為廣泛的軟件工程方法學(xué)是傳統(tǒng)方法傳統(tǒng)方法學(xué)學(xué)和面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓?/p>

11、法學(xué)。1.2.3 軟件工程方法學(xué)1. 傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)(包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來(lái)完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)。這種方法學(xué)將軟件生命周期劃分為若干個(gè)階段,然后順序完成各個(gè)階段的任務(wù)。 每個(gè)階段依賴上一個(gè)階段產(chǎn)生的結(jié)果,并將上一階段工作進(jìn)一步具體化。1.2.3 軟件工程方法學(xué)2. 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)以數(shù)據(jù)為主線,將數(shù)據(jù)和其上的操作緊密結(jié)合起來(lái)。面向?qū)ο蠓椒▽W(xué)的四要素:類(lèi)+對(duì)象+繼承+消息傳遞。面向?qū)ο蟮姆椒▽W(xué)是盡量模擬人類(lèi)習(xí)慣的思維方式,使軟件開(kāi)發(fā)過(guò)程更接近人類(lèi)認(rèn)知模式,做到問(wèn)題空間與解空間在結(jié)構(gòu)上一致。運(yùn)用面向?qū)ο蠓椒▽W(xué)

12、開(kāi)發(fā)出來(lái)的軟件產(chǎn)品一般是由很多較小的獨(dú)立對(duì)象組成,從而降低了軟件產(chǎn)品的復(fù)雜性,增強(qiáng)了可理解性,使得開(kāi)發(fā)和維護(hù)更為簡(jiǎn)單有效。第1章 軟件工程學(xué)概述 1.1 軟件危機(jī)軟件危機(jī) 1.2 軟件工程軟件工程 1.3 軟件生命周期軟件生命周期1.3.1 軟件生命周期的概念 定義 一個(gè)軟件從定義、開(kāi)發(fā)、使用和維護(hù),直至最終被廢棄,要經(jīng)歷的漫長(zhǎng)的時(shí)期稱(chēng)為軟件生命周期。1.3.1 軟件生命周期的概念 構(gòu)成3個(gè)時(shí)期:軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù) 各時(shí)期任務(wù): 軟件定義時(shí)期:確定軟件開(kāi)發(fā)的總目標(biāo)和工程的可行性;導(dǎo)出實(shí)現(xiàn)策略和系統(tǒng)必須完成的功能;進(jìn)行成本效益的估算;制定開(kāi)發(fā)計(jì)劃等 。 軟件開(kāi)發(fā)時(shí)期:具體設(shè)計(jì)和實(shí)現(xiàn)前一

13、個(gè)時(shí)期定義的軟件。 維護(hù)時(shí)期:使軟件持久地滿足用戶的需要。1.3.1 軟件生命周期的概念 構(gòu)成3個(gè)時(shí)期:軟件定義軟件定義、軟件開(kāi)發(fā)軟件開(kāi)發(fā)和和運(yùn)行維護(hù)運(yùn)行維護(hù)8個(gè)階段: 問(wèn)題定義問(wèn)題定義 可行性研究可行性研究 需求分析需求分析 總體設(shè)計(jì)總體設(shè)計(jì) 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 編碼和單元編碼和單元 測(cè)試測(cè)試 綜合測(cè)試綜合測(cè)試 軟件維護(hù)軟件維護(hù)階段1: 問(wèn)題定義 1.3.2 各階段的基本任務(wù)階段2: 可行性研究 1.3.2 各階段的基本任務(wù)階段3: 需求分析 1.3.2 各階段的基本任務(wù)階段4: 總體設(shè)計(jì)(概要設(shè)計(jì)) 1.3.2 各階段的基本任務(wù)階段5: 詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì)) 1.3.2 各階段的基本任務(wù)階段

14、6: 編碼和單元測(cè)試 1.3.2 各階段的基本任務(wù)階段7: 綜合測(cè)試 1.3.2 各階段的基本任務(wù)階段8: 軟件維護(hù) 1.3.2 各階段的基本任務(wù)1.3.3軟件生命周期的模型 定義 在軟件開(kāi)發(fā)過(guò)程中,人們通常使用生命周期模型來(lái)簡(jiǎn)要地描述軟件過(guò)程。生命周期模型規(guī)定了生命周期各個(gè)階段和它們執(zhí)行的順序,因此也被稱(chēng)為過(guò)程模型。1. 瀑布模型線性模型之一 在20世紀(jì)80年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型。傳統(tǒng)軟件工程方法 學(xué)的軟件過(guò)程,基本上可以用瀑布模型來(lái)描述。 瀑布模型 1. 瀑布模型線性模型之一瀑布模型的特點(diǎn): 瀑布模型的問(wèn)題:1. 瀑布模型線性模型之一 2. 原型模型 原型模型

15、是一個(gè)快速開(kāi)發(fā)的過(guò)程,首先和用戶溝通進(jìn)行主要功能的需求分析和快速設(shè)計(jì),然后建立一個(gè)原型,再請(qǐng)用戶進(jìn)行評(píng)價(jià)和反饋。開(kāi)發(fā)人員根據(jù)用戶的反饋進(jìn)一步細(xì)化需求,改進(jìn)原型系統(tǒng)的設(shè)計(jì),如此反復(fù)直至用戶滿意??焖傩枨蠓治觯ㄓ脩魷贤ǎ?gòu)建/修改模型(快速設(shè)計(jì))用戶使用評(píng)價(jià)(運(yùn)行測(cè)試)原型模型 2. 原型模型 2. 原型模型 增量模型也稱(chēng)為漸增模型。使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。分析設(shè)計(jì)編碼測(cè)試交付增量交付增量1分析設(shè)計(jì)編碼測(cè)試交付增量交付增量2 項(xiàng)目時(shí)間分析設(shè)計(jì)編碼測(cè)試交付增量交付增量n增量模型 3. 增量模型軟件系統(tǒng)3. 增量模型增量模型 增量模型的特點(diǎn):增量

16、模型的問(wèn)題:3. 增量模型 - 使用增量模型開(kāi)發(fā)時(shí),第一個(gè)增量往往是系統(tǒng)中的核心構(gòu)件,同時(shí),要求產(chǎn)品分解成增量構(gòu)件的規(guī)模應(yīng)當(dāng)適中。 - 如何不破壞已經(jīng)開(kāi)發(fā)的構(gòu)件將新的構(gòu)件集成到一個(gè)產(chǎn)品中是增量模型的一個(gè)難點(diǎn)。 - 增量模型的提出很好地解決了線性模型中的人員阻塞問(wèn)題,尤其是在項(xiàng)目開(kāi)始初期開(kāi)發(fā)人員不足的時(shí)候,能有效地規(guī)避技術(shù)風(fēng)險(xiǎn)。 3. 增量模型 噴泉模型是噴泉模型是典型的面向?qū)ο蟮能浖^(guò)典型的面向?qū)ο蟮能浖^(guò)程模型之一程模型之一,“噴泉噴泉”較好地體現(xiàn)了面向較好地體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程對(duì)象軟件開(kāi)發(fā)過(guò)程迭代迭代和和無(wú)縫無(wú)縫的特性。的特性。4. 噴泉模型4. 噴泉模型問(wèn)題討論問(wèn)題討論情景分析情景分析解:解: 對(duì)這個(gè)軟件的需求很明確,實(shí)現(xiàn)開(kāi)平方功能的算法也很成熟,因此,既無(wú)須通過(guò)原型來(lái)分析需求也無(wú)須用原型來(lái)驗(yàn)證設(shè)計(jì)方案。此外,一旦實(shí)現(xiàn)并測(cè)試完之后,該產(chǎn)品將被拋棄,因此也無(wú)須使用有助于提高軟件可維護(hù)性的增量模型或螺旋模型來(lái)開(kāi)發(fā)該軟件。問(wèn)題討論問(wèn)題討論情景分析情景分析問(wèn)題討論問(wèn)題討論情景分析情景分析解:解:對(duì)這個(gè)項(xiàng)目的一個(gè)重要要求是,嚴(yán)格按照已對(duì)外公布了的日期完成產(chǎn)品開(kāi)發(fā)工作,因此,選擇生命周期模型時(shí)、應(yīng)該著重考慮哪種模型有助于加快產(chǎn)品開(kāi)發(fā)的進(jìn)度。使用增量模型開(kāi)發(fā)軟件時(shí)可以并行完成開(kāi)發(fā)工作,因此能夠

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論