軟件工程概述.ppt課件_第1頁
軟件工程概述.ppt課件_第2頁
軟件工程概述.ppt課件_第3頁
軟件工程概述.ppt課件_第4頁
軟件工程概述.ppt課件_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件工程與技術軟件工程與技術一一本課程學習的目的本課程學習的目的二二本課程的主要內容本課程的主要內容三三本課程的特點本課程的特點四四本課程的教本課程的教/ /學及考核方式學及考核方式五五主要參考書目主要參考書目六六實驗安排實驗安排消除錯誤地認識消除錯誤地認識學習軟件工程基本理論學習軟件工程基本理論學習主流的軟件開發方法學習主流的軟件開發方法熟悉軟件開發過程熟悉軟件開發過程掌握軟件開發全過程中的各重要階段的任務及相掌握軟件開發全過程中的各重要階段的任務及相關描述方法關描述方法 ;如何分析問題并設計出合理的解決方案如何分析問題并設計出合理的解決方案如何保證軟件質量如何保證軟件質量培養軟件工程師的基

2、本素質培養軟件工程師的基本素質1、軟件工程的基本概念及軟件危機、軟件工程的基本概念及軟件危機2、軟件生存周期及軟件開發模型、軟件生存周期及軟件開發模型3、軟件計劃、軟件計劃4、軟件分析、軟件分析(需求分析需求分析)5、軟件系統設計、軟件系統設計6、軟件測試、軟件測試7、軟件維護、軟件維護8、面向對象軟件工程、面向對象軟件工程返回1、是專業課;、是專業課;2、屬、屬“工程工程”學科;學科;3、是一門需不斷完善的、發展的、可創新的學科、是一門需不斷完善的、發展的、可創新的學科。返回1、主要參考書目:、主要參考書目:軟件工程技術及應用軟件工程技術及應用賈鐵軍著賈鐵軍著 機械工業出版社機械工業出版社2

3、、其他參考書目:、其他參考書目:a.軟件工程軟件工程 楊衛東譯楊衛東譯 人民郵電出版社人民郵電出版社b.實用面向對象軟件工程教程實用面向對象軟件工程教程 殷人昆等譯殷人昆等譯 電子工業出版社電子工業出版社返回本章要點本章要點1軟件的定義及軟件發展過程軟件的定義及軟件發展過程2軟件危機及軟件工程的產生軟件危機及軟件工程的產生3軟件工程學定義、本課程學習的目的軟件工程學定義、本課程學習的目的 可執行部分可執行部分不可執行部分不可執行部分文檔文檔1文檔文檔2文檔文檔31軟件的定義軟件的定義 程序 + 數據 + 文檔與計算機系統操作有關的程序、數據以及任何與之相關的文檔的集合。程序程序1軟件的定義:軟

4、件的定義:什么是程序(1/2): 程序: 由程序設計語言所描述的、能為計算機所識別、理解和處理的語句序列程序例子Main( ) int i, j; / 變量定義 char Str10; i = i + j ; / 語句說明 1軟件的定義:軟件的定義:什么是程序(2/2)程序設計語言具有良好、嚴格語法和語義目前程序設計語言主要有以下幾種類型面向機器: 如匯編語言、機器語言等面向過程: 如Fortran, Pascal, C等等面向對象: 如Java等等面向問題: 如結構化查詢語言SQL等等1軟件的定義:軟件的定義:什么是文檔:文檔: 記錄軟件開發活動和階段性成果、理解軟件所必需的闡述性資料需求分

5、析文檔、軟件設計文擋、用戶文檔等 編寫文檔目的 促進對軟件的開發,管理和維護; 便于各種人員(用戶,開發人員)的交流2軟件的特點軟件的特點不會老化邏輯產品 (智力, 無形)維護困難和復雜(完善, 糾錯,.)生產只需復制軟件開發性質如成本、進度等難以估計軟件的開發更加依賴于開發人員的業務素質、智力、人員的合作、組織和管理1、20世紀50年代60年代初:程序設計階段 特點:個體化;只有程序清單;以硬件發展為主以硬件發展為主2、20世紀60年代初70年代初:程序系統階段 特點:作坊式;軟件數量劇增;軟件維護費用驚人;提 出“軟件工廠”概念;出現軟件危機3、 70年代 90年代:軟件工程階段 軟件成本

6、劇增;硬件技術 (微電子學)日趨成熟;軟件工程時軟件工程時代代4、 90年代至今: 現代信息技術飛速發展(并行計算機處理、三層處理模式、數據倉庫、多媒體技術、網絡技術、電子商務等)稱為:網絡時代 軟件在開發和維護過程中遇到的一系列問題困擾學術界和工業界用戶對軟件開發缺乏信心軟件開發的高投入和高風險Crisis!成本高IBM 360 OS, 5000多人年,耗時4年(19631966),花費2億多美元美國空軍:1955年軟件占總費用(計算機系統)的18%,70年60%,85年達到85美國全球軍事指揮控制系統,硬件1億美元,軟件高達7.2億美元計算機軟件和硬件費用比軟件質量得不到保證軟件應用面的擴

7、大:科學計算、軍事、航空航天、工業控制、企業管理、辦公、家庭軟件越來越多的應用于安全猶關(safety critical)的系統,對軟件質量提出更高的要求80年代歐洲亞麗安娜火箭的發射失敗,原因是軟件錯誤美國阿托拉斯火箭的發射失敗,原因是軟件故障英國1986年開發的辦公室信息系統Folios經4年,因性能達不到要求,1989年取消日本第5代機因為軟件問題在投入50億美元后于1993年下馬由于軟件質量問題導致失敗的軟件項目非常多進度難以控制項目延期比比皆是由于進度問題而取消的軟件項目較常見只有一小部分的項目能夠按期完成維護非常困難軟件維護的多樣性軟件維護的復雜性軟件維護的副作用 一、如何開發軟件

8、,以滿足不斷增長,日趨復雜的需求; 二、如何維護數量不斷膨脹的軟件產品。邏輯產品,不同于物理產品復雜性高邏輯產品,邏輯復雜性,遠高于硬件復雜性軟件的復雜性隨規模呈指數級上升規模大應用擴大,代碼量,1000萬行,仍在不斷膨脹影響軟件生產率和質量的因素比較復雜人員的能力和水平團隊合作缺乏有效、系統原理、原則、方法和工具的指導和輔助:開發一個具有一定規模和復雜性的軟件系統與編寫一個簡單的程序不開發一個具有一定規模和復雜性的軟件系統與編寫一個簡單的程序不一樣一樣正如建設一個平房和高樓大廈建造房屋的過程l確定和分析需求l房子的總體設計(建筑平面圖和建筑透視圖) l房子的詳細設計(建筑平面圖的細化以及規格

9、說明)l識別并設計房子的組成部分l建造房子的每一個組成部分l測試房子的每一個組成部分l把房子的各個部分集成在一起,在住戶搬進來之前作最后的修改大型、復雜軟件系統的開發是一項工程,必須按照工程化的方法組織大型、復雜軟件系統的開發是一項工程,必須按照工程化的方法組織軟件的生產和管理,必須經過分析、設計、實現、測試、維護等一系軟件的生產和管理,必須經過分析、設計、實現、測試、維護等一系列軟件過程和活動列軟件過程和活動20世紀60年代爆發,然而實際上軟件危機隨著計算機軟件的產生而產生,只是在此之前其問題的嚴重性沒有引起人們的關注和重視提出有效的方法和工具支持軟件開發1968年提出軟件工程概念和思想20

10、世紀70年代的結構化軟件開發方法20世紀80年代的面向對象的軟件開發方法新的技術: 軟件重用、快速原型、需求工程典型技術: COM, Java, C+, J2EE, .Net, .支撐工具和環境:Jbuilder, Visual Studio, WebLogic, 到了20世紀90年代,軟件危機依然存在,甚至更為嚴重應用變得越來越大和復雜,技術變得更加力不從心錯誤的觀念“只要有好的軟件開發方法和工具就能高效率地開發出高質量的軟件”問題出在哪里?20世紀80年代末,美國工業界開始認識到管理的重要性美國的一項研究表明,70%的項目由于管理不善導致難以控制進步、成本和質量;進一步的研究發現:管理是影

11、響軟件項目成功開發的全局性因素,而技術只影響局部如果軟件開發組織不能對軟件項目進行有效管理,就不能充分發揮軟件開發方法和工具的潛力,也就不能高效率地開發出高質量的軟件產品 硬件發展?開發人員增加?軟件開發工具的發展?軟件工程!由于認識到軟件的設計、實現、維護和傳統的工程規則有相同由于認識到軟件的設計、實現、維護和傳統的工程規則有相同的基礎。的基礎。1967年NATO的研究組織首次提出“軟件工程”1968年NATO軟件工程會議正式提出“軟件工程”概念1968-至今, 40余年1968年NATO(北大西洋公約組織)會議上首次提出軟件工程:給出了軟件工程的早期定義:軟件工程是為了經濟地獲得可靠的和能

12、在實際機器上高效運行的軟件而建立和使用的好的工程原則。(強調軟件工程的目標)IEEE: 軟件工程是(1)將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護的過程,即將工程化應用于軟件中;(2)(1)中所述方法的研究。計算機科學技術百科全書:所謂軟件工程就是指導計算機軟件開發和維護的工程學科。采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最先進的技術方法結合起來。l管理管理:希望實現軟件開發過程的工程化。這方面最為著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。它是在60年代末“軟件危機”后出現的第一個生命周期模型。如下所

13、示: 分析 設計 編碼 測試 維護后來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等對“瀑布式”生命周期模型進行補充。現在,它們在軟件開發的實踐中被廣泛采用。 認識到了文檔的標準以及開發者之間、開發者與用戶之間的交流方式的重要性。l方法:方法:側重與對軟件開發過程中分析、設計的方法的研究。這方面的重要成果就是在70年代風靡一時的結構化開發方法,即PO(面向過程的開發或結構化方法)以及結構化的分析、設計和相應的測試方法。2l方法:方法:面向對象的分析、設計方法(OOA和OOD)的出現使傳統的開發方法發生了翻天覆地的變化。隨之而來的是面向對象建模語言(以UML為代表)、軟件復用、

14、基于組件的軟件開發等新的方法和領域。l管理:管理: 從企業管理的角度提出的軟件過程管理。即關注于軟件生存周期中所實施的一系列活動并通過過程度量、過程評價和過程改進等涉及對所建立的軟件過程及其實例進行不斷優化的活動使得軟件過程循環往復、螺旋上升式地發展。其中最著名的軟件過程成熟度模型是美國卡內基梅隆大學軟件工程研究所(SEI)建立的CMM(Capability Maturity Model),即能力成熟度模型。軟件程是一種層次化的技術。包含了一個觀點,和三要素,如下圖:工具工具 + 方法方法 + 過程過程 軟件工程包括兩方面內容: 軟件開發技術包括軟件開發方法學、軟件工具和軟件工程環境。 軟件項目管理包括軟件度量、項目估算、進度控制、人員組織、配置管理、項目計劃等。軟件工程技術有兩個明顯的特點: 第一,強調規范化。 第二,強調文檔化。消除 錯誤的概念和做法推廣使用成功的開發技術和方法使用軟件工具和軟件工程支持環境加強軟件管理u嚴格按照軟件生命周期各階段的計劃進行管理。u堅

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論