軟件開發(fā)模型課件_第1頁
軟件開發(fā)模型課件_第2頁
軟件開發(fā)模型課件_第3頁
軟件開發(fā)模型課件_第4頁
軟件開發(fā)模型課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022年7月25日第1頁第1章 概述本章內(nèi)容結(jié)構(gòu)本章引言學(xué)習(xí)目標教學(xué)內(nèi)容本章小結(jié)思考和練習(xí)課堂討論本章引言本書將分成3篇,全面詳細地講述軟件工程的知識。第1篇按照生存周期模型詳細闡述面向過程的軟件工程;第2篇介紹面向?qū)ο筌浖こ痰姆治?、設(shè)計和實現(xiàn);第3篇則分別給出面向過程和面向?qū)ο筌浖こ剃爩嶒炛笇?dǎo)和案例。“軟件工程”一詞是由北大西洋公約組織(North Atlantic Treaty Organization,NATO)的計算機科學(xué)家在聯(lián)邦德國召開的國際會議上首次提出來的。產(chǎn)生軟件工程這門學(xué)科的時代背景是“軟件危機”。軟件工程的發(fā)展和應(yīng)用不僅緩和了軟件危機,而且促使一門新興的工程學(xué)科誕生了

2、。本章將講述軟件、軟件危機及軟件工程的相關(guān)概念、歷史發(fā)展和開發(fā)模型。2022年7月25日第2頁2022年7月25日第3頁學(xué)習(xí)目標掌握軟件的定義、特點和分類理解軟件危機的定義、表現(xiàn)形式、產(chǎn)生原因及解決途徑理解和掌握軟件工程的定義、目標、研究內(nèi)容和基本原理,了解軟件工程的發(fā)展史理解和掌握軟件過程和軟件生存周期的相關(guān)概念和特點了解不同軟件開發(fā)模型的特點和應(yīng)用范圍理解傳統(tǒng)軟件工程和面向?qū)ο筌浖こ痰膮^(qū)別與聯(lián)系2022年7月25日第4頁教學(xué)內(nèi)容1.1 軟件和軟件危機 1.2 軟件工程1.3 軟件過程和軟件生存周期1.4 軟件開發(fā)模型1.5 傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?.6 本章小結(jié)和習(xí)題 2022年

3、7月25日第5頁1.1 軟件和軟件危機1.1.1 軟件的定義、特點及分類1.1.2 軟件危機的定義及表現(xiàn)形式1.1.3 軟件危機的產(chǎn)生原因及解決途徑2022年7月25日第6頁1.1.1 軟件的定義、特點及分類一、軟件的定義軟件不是程序,而是程序、數(shù)據(jù)以及開發(fā)、使用和維護程序需要的所有文檔的完整集合。1983年IEEE為軟件下的定義是:計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行程序時所必須的數(shù)據(jù)。其中的方法和規(guī)則通常是在文檔中說明并在程序中實現(xiàn)的。特別是當軟件成為商品時,相關(guān)的文檔資料是必不可少的。沒有相關(guān)文檔,僅有程序是不能稱為軟件產(chǎn)品的。程序是為了解決某個特定問題而用程序設(shè)計語

4、言描述的適合計算機處理的語句序列。文檔則是軟件開發(fā)活動的記錄,主要供人們閱讀,既可用于專業(yè)人員和用戶之間的通信和交流,也可以用于軟件開發(fā)過程的管理和運行階段的維護。 2022年7月25日第7頁1.1.1 軟件的定義、特點及分類二、軟件的特點軟件是一種特殊的產(chǎn)品,與傳統(tǒng)的工業(yè)產(chǎn)品相比,它具有以下一些獨特的特點。(1)軟件是一種邏輯產(chǎn)品,而不是具體的物理實體,具有抽象性。(2)軟件產(chǎn)品的生產(chǎn)主要是開發(fā)研制,沒有明顯的制造過程。(3)軟件產(chǎn)品在使用過程中,不存在磨損、消耗、老化等問題(4)軟件產(chǎn)品的開發(fā)主要是腦力勞動,還未完全擺脫手工開發(fā)方式,大部分產(chǎn)品是“定做的”,生產(chǎn)效率低。2022年7月25日

5、第8頁1.1.1 軟件的定義、特點及分類二、軟件的特點軟件是一種特殊的產(chǎn)品,與傳統(tǒng)的工業(yè)產(chǎn)品相比,它具有以下一些獨特的特點(續(xù))(5)軟件產(chǎn)品的成本相當昂貴,軟件費用不斷增加,軟件的研制需要投入大量的人力、物力和資金,生產(chǎn)過程中還需對產(chǎn)品進行質(zhì)量控制,對每件產(chǎn)品進行嚴格的檢驗。(6)軟件對硬件和環(huán)境有不同程度的依賴性,為了減少這種依賴性,在軟件開發(fā)中提出了軟件的可移植性問題。(7)軟件是復(fù)雜的。軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品,軟件是一個龐大的邏輯系統(tǒng)。軟件開發(fā),尤其是應(yīng)用軟件的開發(fā)常常涉及到其他領(lǐng)域的專門知識,這就對軟件開發(fā)人員提出了很高的要求。 2022年7月25日第9頁1.1

6、.1 軟件的定義、特點及分類三、軟件的分類從計算機系統(tǒng)角度看,分為兩大類:系統(tǒng)軟件和應(yīng)用軟件。從計算機軟件用途來劃分,分為:服務(wù)類、維護類和操作管理類。 2022年7月25日第10頁1.1.2 軟件危機的定義及表現(xiàn)形式軟件危機的定義指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機主要包含了這樣兩方面的問題:一是如何開發(fā)軟件以滿足多軟件日益增長的需求;二是如何維護數(shù)量不斷增長的已有軟件。軟件危機的典型表現(xiàn)形式 (1)對軟件開發(fā)成本和研制進度的估計常常很不精確。(2)“已完成”的軟件不能滿足用戶要求。(3)軟件產(chǎn)品質(zhì)量差,可靠性得不到保證。(4)軟件產(chǎn)品可維護性差。(5)軟件成本在

7、計算機系統(tǒng)總成本中所占的比例逐年上升。(6)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應(yīng)用速度普及深入的趨勢。1.1.3 軟件危機的產(chǎn)生原因及解決途徑產(chǎn)生原因(1) 軟件是計算機系統(tǒng)中的邏輯部件,軟件產(chǎn)品往往規(guī)模龐大,結(jié)構(gòu)復(fù)雜。(2) 軟件開發(fā)的管理困難。(3) 軟件開發(fā)費用不斷增加,維護費用急劇上升,直接威脅計算機應(yīng)用的擴大。(4) 軟件開發(fā)技術(shù)落后。(5) 生產(chǎn)方式落后。(6) 開發(fā)工具落后,生產(chǎn)效率提高緩慢。2022年7月25日第11頁1.1.3 軟件危機的產(chǎn)生原因及解決途徑解決途徑(1)首先應(yīng)該對計算機軟件有一個正確的認識,徹底清除“軟件就是程序”的錯誤觀念。(2)要使用好的開發(fā)技術(shù)和

8、方法,并且要不斷研究探索更好更有效的技術(shù)和方法。盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤觀念和作法。(3)要有良好的組織、嚴密的管理,各類人員要相互配合,共同完成任務(wù)。充分認識軟件開發(fā)不是某種個體勞動的神秘技巧。(4)應(yīng)該開發(fā)和使用好的軟件工具。2022年7月25日第12頁2022年7月25日第13頁1.2 軟件工程1.2.1 軟件工程的定義及目標1.2.2 軟件工程的研究內(nèi)容和基本原理1.2.3 軟件工程的發(fā)展史2022年7月25日第14頁1.2.1 軟件工程的定義及目標軟件工程定義軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的一門工程學(xué)科,采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護軟件。19

9、68年的定義1993年IEEE給出的定義軟件工程的不同定義使用了不同的詞句,強調(diào)的重點也有所差異,但是它的中心思想,是把軟件當作一種工業(yè)產(chǎn)品,要求“采用工程化的原理和方法對軟件進行計劃、開發(fā)和維護?!弊谥际菫榱颂岣哕浖a(chǎn)率、降低生產(chǎn)成本,以較小的代價獲得高質(zhì)量的軟件產(chǎn)品。2022年7月25日第15頁1.2.1 軟件工程的定義及目標軟件工程的目標1)降低軟件開發(fā)成本;2)滿足用戶要求的全部軟件功能;3)符合用戶要求,令用戶滿意的軟件性能;4)具有較好的易用性、可重用性和可移植性;5)較低的維護成本,較高的可靠性;6)按合同要求完成開發(fā)任務(wù),即使交付用戶使用。2022年7月25日第16頁1.2.

10、2 軟件工程的研究內(nèi)容和基本原理軟件工程的研究內(nèi)容軟件工程的主要研究內(nèi)容是指軟件開發(fā)技術(shù)和軟件開發(fā)過程管理兩個方面。在軟件開發(fā)技術(shù)方面主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和技術(shù)。在軟件開發(fā)過程管理方面主要研究軟件工程經(jīng)濟學(xué)和軟件管理學(xué)。軟件工程的基本原理用分階段的生存周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚地審查 開發(fā)小組人員應(yīng)該少而精承認不斷改進軟件工程實踐的必要性2022年7月25日第17頁1.2.3 軟件工程的發(fā)展史1. 程序設(shè)計時代 1946年到1956年為程序設(shè)計年代2. 程序系統(tǒng)時代 1956年到1968年為程序系統(tǒng)時代,或者程

11、序+說明時代3 軟件工程時代1968年至今為軟件工程年代,或者程序+文檔時代。2022年7月25日第18頁1.3 軟件工程和軟件生存周期1.3.1 軟件過程1.3.2 軟件生存周期2022年7月25日第19頁1.3.1 軟件過程ISO 9000把軟件過程定義為:“把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動”。軟件過程是為了獲得高質(zhì)量所需要完成的一系列任務(wù)的框架,它規(guī)定了完成多項任務(wù)的工作步驟。其中框架由幾個重要過程組成,包括用來獲取、供應(yīng)、開發(fā)、操作和維護軟件所用的基本的、一致的要求。各種組織和開發(fā)機構(gòu)可以根據(jù)具體情況進行選擇和取舍。軟件開發(fā)過程是把用戶要求轉(zhuǎn)化為軟件需求,把軟件需求轉(zhuǎn)化為設(shè)計

12、,用代碼來實現(xiàn)設(shè)計,對代碼進行測試,完成各階段的文檔編制并確認軟件可以投入運行使用的過程。2022年7月25日第20頁1.3.2 軟件生存周期軟件生存周期是借用工程中產(chǎn)品生存周期的概念而得來的,是指某一軟件項目被提出來并著手實現(xiàn)開始直到該軟件報廢或停止使用為止。軟件的生存周期一般分為軟件計劃、軟件開發(fā)和軟件運行三個時期。2022年7月25日第21頁1.3.2 軟件生存周期軟件計劃時期(1)問題定義(2)可行性研究軟件開發(fā)時期(1)需求分析(2)概要設(shè)計(3)詳細設(shè)計(4)編碼(5)測試軟件運行維護時期2022年7月25日第22頁1.4 軟件開發(fā)模型1.4.1 瀑布模型1.4.2 快速原型模型1

13、.4.3 增量模型 1.4.4 螺旋模型1.4.5 噴泉模型1.4.6 基于構(gòu)件的開發(fā)模型1.4.7 統(tǒng)一過程模型1.4.8 基于形式化的模型 模型是為了理解事物而對事物做出的一種抽象。建摸是軟件工程最常使用的一種技術(shù)。所謂軟件開發(fā)模型,就是為整個軟件期建立的模型。2022年7月25日第23頁1.4.1 瀑布模型瀑布模型也稱生存周期模型或線性順序模型,是WRoyce于1970年首先提出來的。這種模型是將軟件生存周期各個活動規(guī)定為依線性順序連接的若干階段的模型,包括問題定義、可行性研究、需求分析、概要設(shè)計、詳細設(shè)計、編碼、測試和維護。瀑布模型規(guī)定了由前至后、相互銜接的固定次序,恰如奔流不息拾級而

14、下的瀑布。在20世紀80年代之前,瀑布模型一直是唯一被廣泛采用的生存周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過程模型。傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述。而且是以文檔為驅(qū)動,適合于需求很明確的軟件項目開發(fā)的模型。2022年7月25日第24頁1.4.1 瀑布模型需求分析需求規(guī)格說明書概要設(shè)計軟件結(jié)構(gòu)圖詳細設(shè)計模塊說明編碼驗收測試集成測試單元測試源程序清單圖1.2 瀑布模型各階段的相互關(guān)系2022年7月25日第25頁1.4.1 瀑布模型瀑布模型的特點(1)階段的順序性和依賴性:首先必須等前一階段的工作完成之后,才能開始后一階段的工作;其次前一階段的輸出文檔就是后一階段的

15、輸入文檔。(2)推遲實現(xiàn)的觀點(3)質(zhì)量保證的觀點: 每一個階段都必須完成所規(guī)定的相應(yīng)文檔; 每一個階段結(jié)束之前都必須對已完成的文檔進行評審(4)存在的問題:是一種理想的線性開發(fā)模式,缺乏靈活性。特別是無法解決軟件需求不明確或不準確的問題。2022年7月25日第26頁1.4.2 快速原型模型主要思想:首先快速建立一個能夠反映用戶主要需求的原型系統(tǒng),讓用戶在計算機上試用它,通過實踐讓用戶了解未來目標系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面需要改進,用戶會提出許多改進意見,開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),然后再次請用戶試用,這樣反復(fù)改進,最終建立完全符合用戶需求的新系統(tǒng)。202

16、2年7月25日第27頁1.4.2 快速原型模型需求分析原形開發(fā)原形評價最終軟件設(shè)計最終軟件實現(xiàn)圖1.3 快速原型模型法生存期模型2022年7月25日第28頁1.4.3 增量模型 增量模型也稱為漸增模型,是瀑布模型的順序特征和快速原型法的迭代特征相結(jié)合的產(chǎn)物,是一種非整體開發(fā)的模型。軟件在模型中是“逐漸”開發(fā)出來的,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、組裝和測試。每個構(gòu)件由多個相互作用的模型構(gòu)成,并且能夠完成特定的功能。開發(fā)出一部分,向用戶展示一部分,可讓用戶及早看到部分軟件,及早發(fā)現(xiàn)問題。2022年7月25日第29頁1.4.3 增量模型 規(guī)格說明設(shè)計編碼和集成交付用戶規(guī)格說明設(shè)計編碼和

17、集成交付用戶規(guī)格說明設(shè)計編碼和集成交付用戶圖1.4 增量模型構(gòu)件1:構(gòu)件2 : 構(gòu)件n:2022年7月25日第30頁1.4.4 螺旋模型螺旋模型加入了瀑布模型與增量模型都忽略了的風(fēng)險分析,即將兩種模型結(jié)合起來,彌補了兩種模型的不足。它是一種風(fēng)險驅(qū)動的模型。螺旋模型是一種迭代模型,它把開發(fā)過程分為幾個螺旋周期,每迭代一次,螺旋線就前一周,如圖1.5所示。2022年7月25日第31頁1.4.4 螺旋模型圖1.5 螺旋模型2022年7月25日第32頁1.4.5 噴泉模型噴泉模型是一種比較典型的面向?qū)ο筌浖_發(fā)模型,以用戶需求為動力,以對象作為驅(qū)動的模型,適合面向?qū)ο蟮拈_發(fā)方法。圖1.6 噴泉模型20

18、22年7月25日第33頁1.4.6 基于構(gòu)件的開發(fā)模型經(jīng)過一定的設(shè)計和實現(xiàn)的類可稱為構(gòu)件,它們可以有不同的計算機軟件系統(tǒng)中復(fù)用,在某個領(lǐng)域具有一定的通用性。基于構(gòu)件的開發(fā)模型是利用預(yù)先封裝的軟件構(gòu)件來構(gòu)造應(yīng)用軟件系統(tǒng),從而提高軟件的重用性和可靠性。2022年7月25日第34頁1.4.7 統(tǒng)一過程模型軟件統(tǒng)一開發(fā)過程是經(jīng)過近40多年的發(fā)展形成的,它是基于面向?qū)ο蠼y(tǒng)一建模語言UML(Unified Modeling Language)的一種面向?qū)ο蟮能浖^程模型。它汲取了多種生存周期模型的先進思想和豐富的實踐經(jīng)驗而產(chǎn)生的。RUP(Rational Unified Process)是一個通用的過程框

19、架,可以用于各種不同模型的軟件系統(tǒng),各種不同的應(yīng)用領(lǐng)域和不同規(guī)模的項目。RUP的特點是由用例驅(qū)動,以構(gòu)架為中心,采用迭代和增量的開發(fā)策略。RUP軟件生存周期是一個二維的軟件開發(fā)模型。2022年7月25日第35頁1.4.8 基于形式化的模型 變換模型和凈室模型是兩種比較典型的適合于形式化開發(fā)的模型。變換模型是結(jié)合形式化軟件開發(fā)方法和程序自動生成技術(shù)的一種軟件開發(fā)模型。它采用嚴格的、數(shù)學(xué)的表示體系來表示軟件規(guī)格說明,從軟件需求形式化說明開始,經(jīng)過一系列變換,最終的得到了系統(tǒng)的目標程序。凈室模型是一種化的增量開發(fā)模型。其基本思想是力求在分析和設(shè)計階段就消除缺陷,卻保正確,然后在無錯誤或“凈室”的狀態(tài)

20、下實現(xiàn)軟件的開發(fā)。2022年7月25日第36頁各種軟件開發(fā)模型的對比1 瀑布模型 :經(jīng)典,需求變化不大2 快速原型模型 :快速獲取用戶需求3 增量模型 :靈活,允許軟件變化4 螺旋模型 :加入風(fēng)險5 噴泉模型 :典型面向?qū)ο箝_發(fā)模型6 基于構(gòu)件的開發(fā)模型:提高軟件重用性和可靠性7 統(tǒng)一過程模型 :基于UML的OO過程模型8 基于形式化的模型 :確保嚴格、無措2022年7月25日第37頁1.5 傳統(tǒng)的軟件工程和面向?qū)ο蟮能浖こ?.5.1 傳統(tǒng)軟件工程方法1.5.2 面向?qū)ο筌浖こ谭椒?.5.3 兩種軟件工程方法的對比1.5.1 傳統(tǒng)軟件工程方法采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實

21、現(xiàn))來完成軟件開發(fā)的各項任務(wù)具體過程如下: (1)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn))完成軟件開發(fā)的各項任務(wù)。(2)把軟件生存周期劃分成若干個階段,然后順序完成各個階段的任務(wù)。 (3)每一個階段的開始和結(jié)束都有嚴格標準,前一階段結(jié)束的標準是后一階段工作開始的標準。(4)在每一階段結(jié)束之前必須正式地進行嚴格的技術(shù)審查和管理復(fù)審。 2022年7月25日第38頁1.5.2 面向?qū)ο筌浖こ谭椒嫦驅(qū)ο蟮拈_發(fā)方法的重點是放在軟件生存周期的分析階段。因為面向?qū)ο蠓椒ㄔ陂_發(fā)的早起就定義了一系列面向問題領(lǐng)域的對象,即建立了對象模型,整個開發(fā)過程統(tǒng)一使用這些對象,并不過分充實和擴展對象模型。面向?qū)ο箝_發(fā)過程的特點是,開發(fā)階段界限模糊,開發(fā)過程逐步求精,開發(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論