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

下載本文檔

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

文檔簡介

1、軟件工程軟件工程APPLE I,II斯蒂芬Win GUI阿倫凱 最早的軟件公司,旦布萊克林 Bill Gates最早的計算機求伯君軟件工程微軟公司總部華為深圳研發基地現代軟件開發部以軟件與服務外包作為支柱產業的成都高新區軟件工程第一講 軟件危機與軟件工程學 軟件基本概念 計算機軟件的發展 軟件危機 軟件工程學 軟件生命周期軟件工程軟件基本概念 軟件的定義 程序:計算機用戶使用計算機,為完成某項特定任務而編寫的一個有序的命令和數據的集合。 軟件: 與計算機系統操作有關的計算機程序、規程、規則及相關的文件和數據。 軟件=可執行部分+不可執行部分軟件工程計算機軟件的發展程序設計時期( 四五十年代)

2、軟件發展初期,人們最關心的是計算機能否可靠、持續地運行等問題。僅僅是把它當作在計算機上求解某一問題而必須進行的準備工作而已,此時的程序設計很少考慮通用性。程序系統時期(60、70年代) 程序規模增大,程序的設計需要多人分工協作;軟件的開發方式由個體生產”發展到“軟件作坊”;程序的運行、維護也不再內一個人來承擔;程序已不再是計算機硬件的附屬成分;在計算機系統的開發過程中,起主導作用的已不僅僅是硬件工程師,同時也包括軟件工程師。 由于相互溝通與理解已成為瓶頸,軟件危機出現.軟件工程時期(70年代后期) 以工程化的思想作指導,用工程化的原則、方法和標準來開發和維護軟件。軟件開發的成功率大大提高,軟件

3、的質量也有了很大的保證。軟件也已經產品化、系列化、標準化、工程化。軟件工程軟件危機-軟件危機的表現軟件危機的表現 軟件的復雜性越來越高,“手工作坊”式的軟件開發方式已無法滿足要求; 軟件開發的成本與進度嚴重估計不足; 軟件開發周期長; 軟件成本在計算機系統總成本中所占的比例逐年上升; 軟件的維護工作量大; 軟件沒有足夠的文檔資料 軟件的開發速度遠遠跟不上計鞠機應用普及的速度 軟件產品質量難以保證 用戶對“己完成的“軟件系統極不滿意軟件工程軟件危機-軟件危機產生原因軟件危機產生的原因 軟件危機的產生,一方面和軟件本身的特性有關,另一方面和軟件開發與維護的方法不當有關; 軟件開發涉及兩方面用戶和軟

4、件開發人員,用戶熟悉本專業業務但不熟悉計算機,軟件開發人員熟悉計算機但不了解用戶的專業。 軟件規模的增大,使程序的復雜程度大大增加,軟件開發的難度難以銜量; 軟件危機產生,還因為軟件的開發采用了“手工作坊”式的開發模式; 軟件作為一種產品,如果缺少必要的文檔就無法進行維護。軟件工程軟件工程學-基本概念 軟件工程學的研究對象 軟件工程學研究如何應用一些科學理論和工程技術來指導軟件系統的開發與維護,使其成為一門嚴格的工程學科。 軟件工程學的基本目標 軟件工程學的基本目標在于研究一套科學的工程方法,設計一套方便實用的工具系統,以達到在軟件研制生產中投資少、效率高、質量優的目的。軟件工程學的三要素 軟

5、件工程學的三個基本要素是方法、工具和管理。軟件工程第二講 軟件生命周期與模型 軟件生命周期 軟件過程與過程模型 軟件過程模型CMM 軟件過程的選擇 軟件生命周期的定義軟件工程軟件工程學-軟件生命周期軟件生命周期由軟件定義、軟件開發、教件維護三個時期組成。每個時期又分為若干個階段。 軟件定義,又稱為系統分析。確定軟件開發的總目標,確定軟件開發工程的可行性,確定實現工程目標應該采用的策賂和必須完成的功能,估計完成該項工程需要的資源和成本劃定出工程進度表。軟件定義,劃分為三個階段,即問題定義、可行性研究和需求分析。 軟件開發,是實現前一個時期定義的軟件。它包含四個階段:總體設計、詳細設計、編碼與單元

6、測試、綜合測試。 軟件維護的任務,是使軟件能夠持久地滿足用戶的需求。軟件工程軟件過程與過程模型 定義了軟件生命周期的歷程與階段。軟件過程軟件過程 過程階段過程階段構成了軟件生命周期的基礎,并且確立了前后階段之間的關系,其中規定了技術方法的采用、工程產品(模型、文檔、數據、報告)的產生、里程碑的建立、質量的保證及變化的適當管理。軟件工程軟件過程的一般階段軟件過程的一般階段定義階段定義階段 集中于“做什么”,涉及項目目標、項目范圍、項目需求、項目計劃等。開發階段開發階段 集中于“如何做”,涉及軟件設計、代碼生成、軟件測試等。維護階段維護階段 集中于“改變”,涉及軟件糾錯、軟件適應、功能增強、預防變

7、化等軟件工程軟件過程定義的要素軟件過程定義的要素 任務集合 里程碑 軟件工程產品和交付物 質量保證點 保護性活動(軟件質量保證、軟件配置管理等)軟件工程軟件過程模型軟件過程模型(1 1)線性順序模型)線性順序模型(傳統生命周期或瀑布模型)需求分析設計編碼測試系統/信息工程線性順序模型軟件工程 本書為配合國家技能型緊缺人才培養培訓工程并根據計算機應用和軟件專業領域技能型緊缺人才培養培訓指導方案的要求而編寫。 本書針對職業院校學生的特點,充分體現指導方案中素質為基礎、能力為本位、需求為依據、就業為導向的基本原則,教學內容注重選擇當前軟件工程中的一些新理論、新方法與新技術,通過一個小型軟件項目為案例

8、貫穿全書,使學生在學完后能基本掌握軟件工程的基本理論與方法在軟件項目開發中的實際應用。其主要內容涉及軟件工程中的軟件策劃、需求分析、軟件設計、編碼實現、軟件測試及實施與維護等方面的內容,考慮職業院校學生的就業定位,重點側重于詳細設計、軟件編碼、軟件測試、軟件維護這幾個方面的基本知識與技能。為保持教學內容的先進性同時便于對教學進行科學靈活的組織,對諸如UML方法、面向對象的分析、設計與編程、面向對象軟件測試、CMM等也作了介紹。 本書可以作為職業院校計算機類專業的軟件工程課程的教材或教學參考書,也可作為IT行業程序員、測試員、維護員等的培訓教材或參考書。軟件工程主要內容主要內容第第1章章 軟件工

9、程概述軟件工程概述第第2章章 系統策劃系統策劃第第3章章 需求分析需求分析第第4章章 軟件設計軟件設計第第5章章 編碼編碼第第6章章 軟件測試軟件測試第第7章章 軟件實施與維護軟件實施與維護第第8章章 軟件項目管理軟件項目管理第第9章章 軟件過程管理軟件過程管理軟件工程第一章 軟件工程概述軟件工程本章主要內容本章主要內容1.1 軟件與軟件工程軟件與軟件工程1.2 軟件生存周期與開發模型軟件生存周期與開發模型1.3 軟件工程過程軟件工程過程1.4 軟件開發工具簡介軟件開發工具簡介1.5 學習指南學習指南軟件工程11 11 軟件及軟件工程軟件及軟件工程軟件軟件軟件的定義軟件的定義v在運行中能提供所

10、希望的功能與性能的程序在運行中能提供所希望的功能與性能的程序 v使程序能夠正確運行的數據及其結構使程序能夠正確運行的數據及其結構v描述軟件研制過程和方法所用的文檔描述軟件研制過程和方法所用的文檔 軟件的特點軟件的特點v軟件角色的雙重性軟件角色的雙重性 v軟件不是傳統意義上的被制造軟件不是傳統意義上的被制造 v軟件不會軟件不會“磨損磨損”,但會退化,但會退化 v軟件都是手工定制的軟件都是手工定制的 v開發過程的復雜與費用的昂貴開發過程的復雜與費用的昂貴 軟件工程11 11 軟件及軟件工程軟件及軟件工程軟件軟件軟件的分類軟件的分類分類方法分類方法軟件類型軟件類型按功能按功能(1)(1)系統軟件系統

11、軟件(2)(2)支撐軟件支撐軟件(3)(3)應用軟件應用軟件按版權按版權(1)(1)商業軟件商業軟件(2)(2)共享軟件共享軟件(3)(3)自由自由( (免費免費) )軟件軟件(4)(4)公有領域軟件公有領域軟件按工作方式按工作方式(1)(1)實時軟件實時軟件(2)(2)分時軟件分時軟件(3)(3)交互式軟件交互式軟件(4)(4)批處理軟件批處理軟件按銷售方式按銷售方式(1)(1)訂制軟件訂制軟件(2)(2)產品軟件產品軟件軟件工程11 11 軟件及軟件工程軟件及軟件工程軟件工程軟件工程軟件危機軟件危機v軟件開發的生產率遠遠不能滿足客觀需要軟件開發的生產率遠遠不能滿足客觀需要 v開發的軟件產品

12、往往不能滿足用戶的實際需要開發的軟件產品往往不能滿足用戶的實際需要 v軟件產品的質量低下且可維護性差軟件產品的質量低下且可維護性差 v很難估計軟件開發的進度計劃與成本很難估計軟件開發的進度計劃與成本 軟件神話軟件神話v有了軟件開發書籍,就可以解決軟件開發中的一切問題有了軟件開發書籍,就可以解決軟件開發中的一切問題v進度滯后了?好,增加程序員進度滯后了?好,增加程序員v只要程序正確,項目就成功,文檔可有可無只要程序正確,項目就成功,文檔可有可無v軟件質量只能在正式投入運行后才知道軟件質量只能在正式投入運行后才知道軟件工程11 11 軟件及軟件工程軟件及軟件工程軟件工程軟件工程軟件工程的定義軟件工

13、程的定義vIEEEIEEE定義:定義:軟件工程是將系統化的、嚴格約束軟件工程是將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件。護,即將工程化應用于軟件。v通俗地說,軟件工程是指導軟件開發和維護的通俗地說,軟件工程是指導軟件開發和維護的一門工程學科。它采用工程的概念、原理、技術一門工程學科。它采用工程的概念、原理、技術和方法,把經過時間檢驗而證明是正確的管理技和方法,把經過時間檢驗而證明是正確的管理技術和當前能夠得到的最好的技術方法結合起來,術和當前能夠得到的最好的技術方法結合起來,用于開發和維護軟件。用于開發和維

14、護軟件。 軟件工程質量焦點質量焦點11 11 軟件及軟件工程軟件及軟件工程軟件工程軟件工程軟件工程軟件工程層次化技術層次化技術過程過程方法方法軟件工程三個要素:軟件工程三個要素:方法、工具、過程方法、工具、過程工具工具軟件工程11 11 軟件及軟件工程軟件及軟件工程軟件工程軟件工程軟件工程的作用軟件工程的作用v【成功案例】美國聯邦速遞公司【成功案例】美國聯邦速遞公司(FedEX)的管理信息系統的管理信息系統 v【失敗案例】英國倫敦的急救服務管理信息系統【失敗案例】英國倫敦的急救服務管理信息系統 軟件工程的基本原理軟件工程的基本原理v用分階段的生存周期計劃嚴格管理用分階段的生存周期計劃嚴格管理

15、v堅持進行階段評審堅持進行階段評審 v實行嚴格的產品控制實行嚴格的產品控制 v采用現代程序設計技術采用現代程序設計技術 v結果應能清楚地審查結果應能清楚地審查 v開發小組的人員應該少而精開發小組的人員應該少而精 v承認不斷改進軟件工程實踐的必要性承認不斷改進軟件工程實踐的必要性 軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型生存周期生存周期軟件生存周期軟件生存周期v人的生存周期人的生存周期嬰兒嬰兒幼兒幼兒兒童兒童少年少年青年青年中年中年老年老年死亡死亡 v軟件的生存周期軟件的生存周期軟件定義軟件定義軟件開發軟件開發軟件支持軟件支持問題定義問題定義可行性分析可行性分析需求分析需

16、求分析概要設計概要設計詳細設計詳細設計編編 碼碼測測 試試軟件發布軟件發布軟件運行軟件運行維護或退役維護或退役軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型生存周期生存周期軟件定義階段軟件定義階段v問題定義問題定義v可行性分析可行性分析v立項或簽訂合同立項或簽訂合同軟件開發階段軟件開發階段v需求分析需求分析v軟件設計軟件設計v編碼與測試編碼與測試v 發布或安裝驗收發布或安裝驗收軟件開發階段軟件開發階段v軟件的使用、運行軟件的使用、運行v軟件維護軟件維護軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型問題的提出問題的提出軟件工程需要解決什么問題?

17、軟件工程需要解決什么問題?軟件開發模型軟件開發模型v做什么軟件?做什么軟件?v怎么做軟件?怎么做軟件?v軟件如何適應變化?軟件如何適應變化?v軟件開發過程概括,是軟件工程思想的具體化軟件開發過程概括,是軟件工程思想的具體化v它是跨越整個軟件生存周期的各個階段所需要的全部它是跨越整個軟件生存周期的各個階段所需要的全部工作與任務的結構框架工作與任務的結構框架 軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型瀑布模型瀑布模型線性順序模型線性順序模型可行性分析可行性分析需求分析需求分析設設 計計編編 碼碼測測 試試支支 持持定義階段定義階段開發階段開發階段支持階段支持階

18、段軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型瀑布模型的特點:瀑布模型的特點:瀑布模型的應用范圍瀑布模型的應用范圍v階段間具有順序性和依賴性階段間具有順序性和依賴性v每個階段必須完成規定的文檔每個階段必須完成規定的文檔; ;每個階段結束前完成文每個階段結束前完成文檔審查檔審查, ,及早改正錯誤及早改正錯誤, ,但:但:開發過程一般不能逆轉,否則代價太大。開發過程一般不能逆轉,否則代價太大。實際的項目開發很難嚴格按該模型進行。實際的項目開發很難嚴格按該模型進行。客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。客戶往往很難清楚地給出所有的需求,而該模型卻要

19、求如此。軟件的實際情況必須到項目開發的后期客戶才能看到,這要軟件的實際情況必須到項目開發的后期客戶才能看到,這要求客戶有足夠的耐心求客戶有足夠的耐心。 v用戶的需求非常清楚全面,且在開發過程中沒有或很用戶的需求非常清楚全面,且在開發過程中沒有或很少變化少變化 v開發人員對軟件的應用領域很熟悉。開發人員對軟件的應用領域很熟悉。v用戶的使用環境非常穩定。用戶的使用環境非常穩定。v開發工作對用戶參與的要求很低開發工作對用戶參與的要求很低 軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型原型模型原型模型用戶測試用戶測試運行原型運行原型建造建造/ /修改修改 原型原型 聽

20、取用聽取用 戶意見戶意見軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型原型模型的特點:原型模型的特點:原型模型的應用范圍原型模型的應用范圍v可以得到比較良好的需求定義,容易適應需求的變化。可以得到比較良好的需求定義,容易適應需求的變化。v有利于開發與培訓的同步。有利于開發與培訓的同步。v開發費用低、開發周期短、維護容易且對用戶更友好。開發費用低、開發周期短、維護容易且對用戶更友好。 客戶與開發者對原型理解不同客戶與開發者對原型理解不同準確的原型設計比較困難準確的原型設計比較困難不利于開發人員的創新不利于開發人員的創新v對所開發的領域比較熟悉而且有快速的原型開發

21、工具對所開發的領域比較熟悉而且有快速的原型開發工具v項目招投標時,可以以原型模型作為軟件的開發模型項目招投標時,可以以原型模型作為軟件的開發模型v進行產品移植或升級時,或對已有產品原型進行客戶進行產品移植或升級時,或對已有產品原型進行客戶化工作時,原型模型是非常適合的。化工作時,原型模型是非常適合的。 軟件工程12 12 軟件生存周期與開發模型軟件生存周期與開發模型開發模型開發模型基于構件的開發模型基于構件的開發模型特點:特點:v屬于演化式開發或迭代式開發,其開發過程:屬于演化式開發或迭代式開發,其開發過程:客戶的交流,獲得問題的定義客戶的交流,獲得問題的定義標識基本類標識基本類計劃與風險分析

22、計劃與風險分析類的復用或重新開發類的復用或重新開發構造系統構造系統用戶評估用戶評估v采用了先進的面向對象技術。采用了先進的面向對象技術。 v基于構件庫的開發,這是軟件復用的基礎,開發速度基于構件庫的開發,這是軟件復用的基礎,開發速度快。快。v 融合了螺旋模型特征融合了螺旋模型特征v支持軟件開發的迭代方法,是一種演化型的開發技術。支持軟件開發的迭代方法,是一種演化型的開發技術。 軟件工程13 13 軟件工程過軟件工程過程程軟件工程過程的概念軟件工程過程的概念ISO9000v過程:軟件工程的三要素之一過程:軟件工程的三要素之一v從開發到維護軟件相關產品所采取一系列管理活動。從開發到維護軟件相關產品

23、所采取一系列管理活動。主要包括項目管理、配置管理、質量管理、文檔管理等。主要包括項目管理、配置管理、質量管理、文檔管理等。 vIS09001:設計、開發、生產、安裝和服務的質量保證設計、開發、生產、安裝和服務的質量保證模式模式 vIS09002:生產、安裝和服務的質量保證模式:生產、安裝和服務的質量保證模式 vIS09003 :最終檢驗和試驗的質量保證模式。最終檢驗和試驗的質量保證模式。 軟件工程13 13 軟件工程過軟件工程過程程CMMCMM軟件能力成熟度模型軟件能力成熟度模型 vCMM (Capability Maturity Model) CMM (Capability Maturity

24、 Model) CMM的級別初始級初始級InitialInitial可重復級可重復級RepeatableRepeatable已定義級已定義級DefinedDefined已管理級已管理級ManagedManaged優化級優化級OptimizingOptimizing軟件工程開發工具的作用與功能開發工具的作用與功能14 14 軟件開發工具簡介軟件開發工具簡介CASECASE工具工具計算機輔助軟件工程 CASE作用認識與描述系統需求 保存與管理開發過程中的信息 代碼的生成 文檔的編制與生成 軟件項目的管理 軟件工程開發工具的分類開發工具的分類14 14 軟件開發工具簡介軟件開發工具簡介CASECASE工具工具分類方法按應用階段劃分 按功能劃分設計工具分析工具項目管理軟件配置質量保證分析設計計劃工具界面開發客戶服務器Web開發軟件工程IBM RationalIBM Rational工具工具14 14 軟件開發工具簡介軟件開發工具簡介常用常用CASECASE工具工具 Rational公司是專門從事CASE工具研制與開發的軟件公司,2003年被IBM公司收購。該公司所研發的Rational系列軟件是完整的CASE

溫馨提示

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

評論

0/150

提交評論