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

下載本文檔

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

文檔簡介

1、軟件工程高海波2018-9-29主講:高海波 電話Email:課程性質(zhì):考試課 學(xué)時(shí):理論課36學(xué)時(shí)+實(shí)驗(yàn)18學(xué)時(shí)=54學(xué)時(shí)這門課干什么?這門課怎么上?課程目的與任務(wù)目的:通過介紹軟件工程的基本原理、概念與技術(shù)方法,采用理論與實(shí)踐相結(jié)合的方式,使大家初步建立工程化意識(shí),學(xué)會(huì)用工程化思想(包括技術(shù)、方法與環(huán)境)開發(fā)各種軟件,為今后實(shí)際工程中能夠進(jìn)行系統(tǒng)分析與設(shè)計(jì)奠定良好的基礎(chǔ)任務(wù):掌握軟件與軟件工程基本概念和基本知識(shí)。掌握軟件生命周期與軟件開發(fā)模式。掌握結(jié)構(gòu)化程序設(shè)計(jì)的編程思想。掌握面向?qū)ο蠓治?、設(shè)計(jì)與編碼方法。掌握有關(guān)軟件的評審、測試與維護(hù),項(xiàng)目計(jì)劃與項(xiàng)目管理方法。能

2、用軟件工程的方法參與軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)。教學(xué)進(jìn)度表:章 節(jié)主要內(nèi)容計(jì)劃學(xué)時(shí)第一章軟件工程概述2第二章可行性研究4+2第三、四章需求分析的任務(wù)、方法、建模10+2第五、六章系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)6+8第七、八章軟件測試、維護(hù)6+4第九-十二章面向?qū)ο蠓椒?、模?第十三章項(xiàng)目實(shí)戰(zhàn)2+2總計(jì):理論36學(xué)時(shí),實(shí)驗(yàn)18學(xué)時(shí)形成性成績:40%(考勤:10分;實(shí)驗(yàn):30分)終結(jié)性考核:60%考核項(xiàng)目分值權(quán)重項(xiàng)目一(%)項(xiàng)目二(%)項(xiàng)目三(%)項(xiàng)目四(%)項(xiàng)目五(%)項(xiàng)目六(%)項(xiàng)目七(%)項(xiàng)目八(%)項(xiàng)目九(%)合計(jì)考勤實(shí)驗(yàn)、實(shí)訓(xùn)態(tài)度預(yù)習(xí)報(bào)告實(shí)驗(yàn)、實(shí)訓(xùn)報(bào)告動(dòng)手能力產(chǎn)品質(zhì)量其它自選形式考核方式小組自評小

3、組互評204535100%課程成績構(gòu)成:實(shí)驗(yàn)及分組總要求每組4-5人,推舉一名負(fù)責(zé)人,在實(shí)驗(yàn)課程中,組織協(xié)調(diào)項(xiàng)目的正常開展。各小組成員協(xié)商,在實(shí)驗(yàn)課程開始前,共同商定一個(gè)題目,該題目是小組接下來實(shí)驗(yàn)所需完成的項(xiàng)目。學(xué)習(xí)委員統(tǒng)計(jì)各分組情況,填寫分組名單。各小組根據(jù)所選題目搜集資料,準(zhǔn)備第一次實(shí)驗(yàn)可行性研究報(bào)告。每次實(shí)驗(yàn)都隨機(jī)由1-2個(gè)小組對該次實(shí)驗(yàn)內(nèi)容進(jìn)行5分鐘左右的簡單匯報(bào),各小組對匯報(bào)情況打分。參考書目(1)蔡敏等,UML基礎(chǔ)和Rose建模教程,人民郵電出版社,2006年(2)李芷,軟件工程方法與實(shí)踐,電子工業(yè)出版社,2004年(3)鄭人杰,實(shí)用軟件工程(第二版),清華大學(xué)出版社,1997年

4、(4)張海藩,軟件工程導(dǎo)論(第五版)學(xué)習(xí)輔導(dǎo),清華大學(xué)出版社,2008年(5)周蘇,軟件工程學(xué)試驗(yàn).科學(xué)出版社,2005年第1章 軟件工程學(xué)概述1.1 軟件危機(jī)1.2 軟件工程1.3 軟件生命周期1.4 軟件過程1.1 軟件危機(jī)軟件發(fā)展的歷程: 60年代中期以前:通用硬件相當(dāng)普遍,軟件卻是為某個(gè)具體的應(yīng)用而編寫的,常采用“個(gè)體生產(chǎn)方式” 。 60年代中到70年代中:隨著軟件規(guī)模的擴(kuò)大,軟件開發(fā)需幾個(gè)人協(xié)同完成,即采用“作坊生產(chǎn)方式”。隨著軟件需求量、規(guī)模及復(fù)雜度的增大,作坊生產(chǎn)方式已不能夠適應(yīng)軟件生產(chǎn)需要,出現(xiàn)“軟件危機(jī)”。 軟件工程時(shí)代:為應(yīng)對軟件危機(jī),適應(yīng)軟件發(fā)展,誕生了“工程化生產(chǎn)” 方

5、式。將工程學(xué)中的原理、方法應(yīng)用在軟件設(shè)計(jì)和開發(fā)中來,即軟件工程。60年代美國IBM公司開發(fā)IBM360機(jī)的操作系統(tǒng),耗費(fèi)5000人年的工作量,工期一再推遲,結(jié)果依然不理想。項(xiàng)目負(fù)責(zé)人Brook后來對整個(gè)過程反思,總結(jié)經(jīng)驗(yàn)和教訓(xùn),寫成了人月神話,被稱為程序員的“圣經(jīng)”。1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在西德召開國際會(huì)議,討論軟件危機(jī)問題,在這次會(huì)議上正式提出并使用了“軟件工程”一詞,軟件工程學(xué)由此開始研究。 典型的軟件危機(jī)事件:軟件危機(jī):在計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中,遇到的一系列嚴(yán)重問題,造成軟件危機(jī)。(正常、不正常運(yùn)行的軟件都具有這種問題)典型表現(xiàn):1、成本和進(jìn)度的估計(jì)很不準(zhǔn)確,實(shí)際成

6、本比估計(jì)成本高幾倍十幾倍,實(shí)際進(jìn)度比預(yù)期進(jìn)度拖延幾個(gè)月甚至幾年。2、用戶對完成的軟件系統(tǒng)很不滿意:開發(fā)人員與用戶的信息交流不充分。3、產(chǎn)品質(zhì)量極端靠不?。很浖|(zhì)量保證技術(shù)的不完善和未全面推廣。 1.1.1 軟件危機(jī)的介紹4、軟件常常不可維護(hù):程序中的錯(cuò)誤難以改正,“軟件重用”難以實(shí)現(xiàn)。5、沒有適當(dāng)?shù)奈臋n資料:文檔資料缺乏、或不合格,軟件的開發(fā)和維護(hù)極端困難。6、軟件成本在計(jì)算機(jī)系統(tǒng)中的占比逐年上升;7、軟件生產(chǎn)率的提高速度,遠(yuǎn)遠(yuǎn)慢于計(jì)算機(jī)的迅速普及和深入發(fā)展,軟件產(chǎn)品“供不應(yīng)求”。1.1.2 軟件危機(jī)的產(chǎn)生原因1)本身特點(diǎn)造成;2)軟件開發(fā)與維護(hù)的方法問題。主要表現(xiàn): (a)忽視軟件需求分析;

7、 (b)無統(tǒng)一、規(guī)范的方法論指導(dǎo)開發(fā)過程,文檔資料不全,堅(jiān)持認(rèn)為軟件開發(fā)就是寫程序、運(yùn)行程序; (c)輕視軟件維護(hù)。不同階段修改軟件需付出的代價(jià)很不相同:高中低早期中期后期軟件開發(fā)時(shí)期代價(jià)引入同一修改的代價(jià)隨時(shí)間變化的趨勢“有一個(gè)對目標(biāo)的概括描述就足以著手編寫程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充?!薄八^軟件開發(fā)就是編寫程序并設(shè)法使它運(yùn)行?!薄坝脩魧浖囊蟛粩嘧兓?,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)。”“軟件投入生產(chǎn)性運(yùn)行以后需要的維護(hù)工作并不多,而且維護(hù)是一種很容易做的簡單工作。”軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的5570不完善的系統(tǒng)定義往往是導(dǎo)致軟件項(xiàng)目失敗的主要原因。只有質(zhì)量差的軟件產(chǎn)品才

8、需要維護(hù)。 關(guān)于軟件開發(fā)的常見觀點(diǎn): or X在軟件開發(fā)的過程中,若能推遲暴露其中的錯(cuò)誤,則為修復(fù)和改正錯(cuò)誤所花費(fèi)的代價(jià)就會(huì)降低。只要我們寫出了程序并使其正常運(yùn)行,我們的工作就結(jié)束了。我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問題。在項(xiàng)目計(jì)劃發(fā)生延遲的情況下,增加更多的程序員一定會(huì)加快進(jìn)度。文檔是軟件產(chǎn)品的一部分,沒有文檔的軟件就不稱其為軟件。一個(gè)成功的項(xiàng)目唯一提交的就是運(yùn)行程序。1)正確認(rèn)識(shí)軟件的概念。2)充分認(rèn)識(shí)到軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合共同完成的工程項(xiàng)目。3)充分吸取和借鑒人類

9、長期以來從事各種工程項(xiàng)目所積累的行之有效的原理、概念、技術(shù)和方法,特別要吸取幾十年來人類從事計(jì)算機(jī)軟硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn)。4)在軟件開發(fā)中,要總結(jié)、使用軟件開發(fā)的成功經(jīng)驗(yàn)(技術(shù)和方法),并探索更有效的技術(shù)和方法;5)開發(fā)更好的軟件工具;6)良好的組織管理措施。 1.1.3 解決軟件危機(jī)的途徑軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。軟件概念:軟件=程序+數(shù)據(jù)+文檔開發(fā)軟件編寫程序!總之,為了消除軟件危機(jī),既要有技術(shù)措施

10、(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。1.2 軟件工程1.2.1 介紹 1968年NATO(北大西洋公約組織 )會(huì)議:軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。 1993年IEEE(美國電氣和電子工程師協(xié)會(huì)):軟件工程是(1)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程;(2)研究(1)中提到的途徑。 特性: 1. 關(guān)注大型、超大型程序的構(gòu)造; 2. 中心課題是控制復(fù)雜性; 3. 軟件經(jīng)常變化; 4. 開發(fā)軟件的效率非常重要;5. 和諧地合作是

11、軟件開發(fā)的關(guān)鍵; 6. 軟件必須有效地支持它的用戶;7. 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。特性和定義: 定義: 軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)與維護(hù)的工程學(xué)科。它采用工程學(xué)的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明是正確的管理技術(shù)和目前能夠得到的最有效的軟件技術(shù)與方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。 目標(biāo): 軟件工程研究的目標(biāo)是“以較少的投資獲取較高質(zhì)量的軟件”。(1)付出較低的開發(fā)成本(2)實(shí)現(xiàn)要求的軟件功能(3)取得較好的軟件性能(4)開發(fā)的軟件易于維護(hù)(5)需要的維護(hù)費(fèi)用較低(6)能按時(shí)完成開

12、發(fā)工作,及時(shí)交付使用1.2.2 軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理 把軟件生命周期劃分成若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格地按照計(jì)劃對軟件的開發(fā)與維護(hù)工作進(jìn)行管理。2. 堅(jiān)持進(jìn)行階段評審 軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行。原因:一、大部分錯(cuò)誤是在編碼之前造成的,例如,根據(jù)Boehm等人的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,而編碼錯(cuò)誤僅占37%;二、錯(cuò)誤發(fā)現(xiàn)與改正得越晚,改正錯(cuò)誤所需付出的代價(jià)也越高。3. 實(shí)行嚴(yán)格的產(chǎn)品控制基線配置管理(變動(dòng)控制)4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)構(gòu)化分析、設(shè)計(jì)技術(shù)、結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),面向?qū)ο蠓治龊驮O(shè)計(jì)技術(shù)。實(shí)踐表明,

13、采用先進(jìn)的技術(shù)不僅可以提高軟件開發(fā)和維護(hù)的效率,而且可以提高軟件產(chǎn)品的質(zhì)量。5. 結(jié)果應(yīng)該能夠清楚地審查依據(jù)開發(fā)項(xiàng)目的總目標(biāo)和完成期限,規(guī)定開發(fā)小組的責(zé)任、產(chǎn)品標(biāo)準(zhǔn)及完成日期,使結(jié)果能夠清楚地審查。6. 開發(fā)小組的人員應(yīng)該少而精 素質(zhì)高的人員的開發(fā)效率比素質(zhì)低的人員的開發(fā)效率可能高幾倍至幾十倍,而且素質(zhì)高的人員所開發(fā)的軟件中的錯(cuò)誤明顯少于素質(zhì)低的人員所開發(fā)的軟件中的錯(cuò)誤。 隨著開發(fā)小組人員數(shù)目的增加,為了交流信息、討論問題而造成的通信開銷也急劇增加。當(dāng)開發(fā)小組人數(shù)為N時(shí),可能的通信路徑有N(N1)/2條。7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性軟件工程隨著技術(shù)的進(jìn)步而不斷的發(fā)展。1.2.3 軟件

14、工程方法學(xué) 軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合形成的工程學(xué)科。 管理是通過計(jì)劃、組織和控制等一系列活動(dòng),合理配置和使用資源,以達(dá)到既定目標(biāo)的過程。 通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(Methodology),也稱為范型(Paradigm)。 軟件工程方法學(xué)的3要素:方法、工具和過程。方法是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做”的問題;工具是為運(yùn)用方法而提供的自動(dòng)或半自動(dòng)的軟件工程支撐環(huán)境;過程是為了獲得高質(zhì)量的軟件所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。1、傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型) 強(qiáng)調(diào)自頂向下

15、 采用結(jié)構(gòu)化技術(shù)來完成軟件; 劃分為若干個(gè)階段,然后順序地完成每個(gè)階段的任務(wù);每個(gè)階段的任務(wù)相對獨(dú)立,而且比較簡單,整個(gè)降低了軟件開發(fā)工程的困難程度; 前一個(gè)階段是后一個(gè)階段的前提和基礎(chǔ),而后一階段提出的解法更具體,細(xì)節(jié)更多; 每個(gè)階段結(jié)束前必須從技術(shù)和管理兩方面對這個(gè)階段的開發(fā)成果進(jìn)行嚴(yán)格的檢查,通過之后這個(gè)階段才算結(jié)束;保證質(zhì)量,提高可維護(hù)性; 當(dāng)軟件規(guī)模龐大,或者的需求模糊或隨時(shí)間而變化時(shí),傳統(tǒng)方法學(xué)往往不成功;維護(hù)起來仍然很困難。2、面向?qū)ο蠓椒▽W(xué) 強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代 面向?qū)ο蠓椒ǎ喊褦?shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法。 面向?qū)ο?/p>

16、方法學(xué)4個(gè)要點(diǎn): 對象(object):融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為。 類(class):類是對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。 繼承:按照父類與子類的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。 消息:對象彼此間僅能通過發(fā)送消息互相聯(lián)系。 面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn): 面向?qū)ο蠓椒▽W(xué)的盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程。 面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程,保證了在各項(xiàng)開發(fā)活動(dòng)之間的平滑過渡。 促進(jìn)了軟件重用。最終的軟件產(chǎn)品由許多較小的、基本上獨(dú)立的對象組成,每個(gè)對象相當(dāng)于一個(gè)微型程序,而且大多數(shù)

17、對象都與現(xiàn)實(shí)世界中的實(shí)體相對應(yīng),降低了復(fù)雜性,提高了可理解性,簡化了開發(fā)和維護(hù)工作。 軟件發(fā)展趨勢: 以面向?qū)ο蠹夹g(shù)為手段,以可重用軟件構(gòu)件化和體系架構(gòu)為基礎(chǔ),以工業(yè)化生產(chǎn)方式和管理支撐體系為核心的軟件新變革。1.3 軟件生命周期 軟件生命周期:指軟件從提出到最終被淘汰的存在期。 三個(gè)時(shí)期八個(gè)階段:軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。三個(gè)時(shí)期:八個(gè)階段:軟件生命周期軟件定義軟件開發(fā)軟件維護(hù)問題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測試綜合測試運(yùn)行維護(hù)系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)1. 問題定義(系統(tǒng)定義) 任務(wù):問題是什么通過

18、對客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告。經(jīng)過討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶的確認(rèn)。結(jié)果:關(guān)于系統(tǒng)規(guī)模和目標(biāo)的報(bào)告書 2. 可行性研究 任務(wù):有可行的解嗎系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化了的系統(tǒng)分析和設(shè)計(jì)過程。研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決辦法。結(jié)果:系統(tǒng)的高層邏輯模型(數(shù)據(jù)流圖、成本效益分析)可行性論證報(bào)告(立即進(jìn)行/推遲進(jìn)行/不能或不值得進(jìn)行)3. 需求分析 任務(wù):必須做什么主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。系統(tǒng)分析員必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。結(jié)果:系統(tǒng)的邏輯模型(

19、數(shù)據(jù)流圖、數(shù)據(jù)字典、簡要的算法描述)用規(guī)格說明書準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求4. 總體設(shè)計(jì) 任務(wù):如何解決已提出的問題設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案(低、中、高成本)。用適當(dāng)?shù)谋磉_(dá)工具描述每種方案,分析優(yōu)缺點(diǎn),推薦一個(gè)最佳方案,制定出實(shí)現(xiàn)最佳方案的詳細(xì)計(jì)劃。設(shè)計(jì)程序的體系結(jié)構(gòu)。結(jié)果:可能的解法(系統(tǒng)流程圖、成本效益分析)推薦的系統(tǒng)體系結(jié)構(gòu)(層次圖或結(jié)構(gòu)圖)5. 詳細(xì)設(shè)計(jì) 任務(wù):怎樣具體實(shí)現(xiàn)該系統(tǒng)詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。結(jié)果:每個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)(程序流程圖、 N-S圖、 PAD圖等)。6. 編碼和單元測試 任務(wù):得到正確的程序模塊選取一種適當(dāng)?shù)母呒壋绦?/p>

20、設(shè)計(jì)語言(必要時(shí)用匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語言書寫的程序;并且仔細(xì)測試編寫出的每一個(gè)模塊。結(jié)果:代碼和測試報(bào)告 7. 綜合測試 任務(wù):得到符合要求的軟件通過集成測試、驗(yàn)收測試、現(xiàn)場測試、平行運(yùn)行等方法對目標(biāo)系統(tǒng)進(jìn)一步測試檢驗(yàn)。通過對軟件測試結(jié)果的分析可以預(yù)測軟件的可靠性;反之,根據(jù)對軟件可靠性的要求,也可以決定測試和調(diào)試過程什么時(shí)候可以結(jié)束。結(jié)果:測試計(jì)劃、詳細(xì)測試方案以及實(shí)際測試結(jié)果完整一致的軟件配置 8. 軟件維護(hù) 任務(wù):使系統(tǒng)持久地滿足用戶的需要改正性維護(hù),診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟

21、件;預(yù)防性維護(hù),修改軟件為將來的維護(hù)活動(dòng)做準(zhǔn)備。每一項(xiàng)維護(hù)活動(dòng)實(shí)質(zhì)上是經(jīng)歷了一次壓縮和簡化了的軟件定義和開發(fā)的全過程。結(jié)果:完整準(zhǔn)確的維護(hù)記錄 各類維護(hù)工作量所占比例維護(hù)工作量在軟件生命周期所占比例1.4 軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程(ISO9000):使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)。輸入:如軟件需求輸出:如軟件產(chǎn)品 軟件過程定義了運(yùn)用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需要采取的管理措施,以及標(biāo)志軟件開發(fā)各個(gè)階段任務(wù)完成的里程碑。為獲得高質(zhì)量的軟件產(chǎn)品,軟件過程必須科學(xué)、有效。傳統(tǒng)

22、的瀑布模型實(shí)際的瀑布模型1.4.1 瀑布模型瀑布模型的特點(diǎn):1. 階段間具有順序性和依賴性 前一階段的工作完成之后,才能開始后一階段的工作; 前一階段的輸出文檔就是后一階段的輸入文檔。2. 推遲實(shí)現(xiàn)的觀點(diǎn) 對于規(guī)模較大的軟件項(xiàng)目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時(shí)間反而越長。3. 質(zhì)量保證的觀點(diǎn) 每個(gè)階段都必須完成規(guī)定的文檔,是“文檔驅(qū)動(dòng)”的模型; 每個(gè)階段結(jié)束前都要對所完成的文檔進(jìn)行評審,盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。瀑布模型的優(yōu)點(diǎn): 可強(qiáng)迫開發(fā)人員采用規(guī)范的方法; 嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔; 要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。瀑布模型的缺點(diǎn): 只

23、能通過文檔了解產(chǎn)品,不經(jīng)過實(shí)踐的需求是不切實(shí)際的。瀑布模型適用于: 需求是預(yù)知的; 軟件實(shí)現(xiàn)方法是成熟的;項(xiàng)目周期較短。 1.4.2 快速原型模型 快速原型:是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。 快速原型模型 快速原型模型的特點(diǎn): 快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。 快速原型的本質(zhì)是“快速”。應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約成本。1.4.3 增量模型 增量模型把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。 增量模型的優(yōu)

24、點(diǎn): 人員分配靈活,剛開始不用投入大量人力資源。 當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑。 逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。增量模型的難點(diǎn): 軟件體系結(jié)構(gòu)必須是開放的。 模型本身是自相矛盾的。整體獨(dú)立構(gòu)件。 不同的構(gòu)件并行地構(gòu)建有可能加快工程進(jìn)度,但是冒無法集成到一起的風(fēng)險(xiǎn)。增量模型適用于: 適用于需求經(jīng)常改變的軟件開發(fā)過程。 如果在項(xiàng)目既定的商業(yè)要求期限之前不可能找到足夠的開發(fā)人員,在這種情況下,增量模型顯得特別有用。一種風(fēng)險(xiǎn)更大的增量模型:1.4.4 螺旋模型 螺旋模型的基本思想: 使用原型及其他方法來盡量降低風(fēng)險(xiǎn)??梢园阉醋?/p>

25、在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。 簡化的螺旋模型 螺旋模型的優(yōu)點(diǎn): 主要優(yōu)勢在于它是風(fēng)險(xiǎn)驅(qū)動(dòng)的。 對可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo); 減少了過多測試或測試不足所帶來的風(fēng)險(xiǎn); 維護(hù)只是模型的另一個(gè)周期,維護(hù)和開發(fā)之間沒有本質(zhì)區(qū)別。完整的螺旋模型螺旋模型的缺點(diǎn): 采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢必造成重大損失。 過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。 螺旋模型適用于: 特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。 適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。1.4.5 噴泉模型 噴泉模型:是典型的面向?qū)ο笊芷谀P汀?“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。為避免使用噴泉模型開發(fā)軟件時(shí)開發(fā)過程過分無序,應(yīng)該把一個(gè)線性過程(例如,快速原型模型或圖中的中心垂線)作為總目標(biāo)。噴泉模型的優(yōu)點(diǎn): 該模型的各個(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。多次反復(fù)地增加或明確目標(biāo)系統(tǒng),而不是本質(zhì)性的改動(dòng),降低錯(cuò)誤的可能性。噴泉模型的缺點(diǎn): 由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,不利于項(xiàng)目的管理。 要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對可能隨時(shí)加入各種信息、需求與資料的

溫馨提示

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

評論

0/150

提交評論