




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1軟件工程軟件工程第一章第一章 軟件工程概述軟件工程概述 第第1章章 軟件工程概述軟件工程概述1.1 軟件工程的發(fā)展軟件工程的發(fā)展1.2 軟件工程的概念軟件工程的概念1.3 軟件生存周期軟件生存周期1.4 軟件開發(fā)模型軟件開發(fā)模型 1.1 軟件工程的發(fā)展軟件工程的發(fā)展一、軟件的概念及特點一、軟件的概念及特點 思考:什么是軟件?思考:什么是軟件? 軟件是由計算機程序的發(fā)展而形成的一種概念。軟件是由計算機程序的發(fā)展而形成的一種概念。 軟件軟件(software)(software)是計算機系統中與硬件是計算機系統中與硬件(hardware)(hardware)相互依存的相互依存的另一部分,它包括程
2、序另一部分,它包括程序(program)(program)、相關數據、相關數據(data)(data)及其說明及其說明文檔文檔(document)(document)。 其中其中程序是按照事先設計的功能和性能要求執(zhí)行的指令序列程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數據是是程序能正常操縱信息的數據結構;文檔是與程序開發(fā)數據是是程序能正常操縱信息的數據結構;文檔是與程序開發(fā)維護和使用有關的各種圖文資料。維護和使用有關的各種圖文資料。 軟件軟件= =程序程序+ +數據數據+ +文檔文檔 軟件概念拓展軟件概念拓展 軟件(Software)是計算機系統運行的指令、數據和資料的集合,包括指令程
3、序、數據、相關文檔和完善的售后服務的完整集合。即: 軟件=程序 + 數據 + 文檔 + 服務。2、軟件的特點、軟件的特點(1) 智能性。軟件是人類智能勞動的產物、代替和延伸。(2) 抽象性。軟件屬于邏輯實體,無形性和智能性致使軟件難以認識和理解。(3) 人工方式。軟件的開發(fā)、維護及設置管理等方面目前尚未完全脫離手工方式。(4) 復雜性和系統性。(5) 泛域性。軟件應用很廣泛,在信息化中可服務于各種領域、行業(yè)和層面。(6) 復制性。軟件成本相對比較昂貴,計算機軟件是人類創(chuàng)造性的特殊產品。(7) 非損及更新性。軟件不存在物理性磨損和老化問題,但可以退化需要更新升級。 1.1 軟件工程的發(fā)展軟件工程
4、的發(fā)展二、軟件工程的發(fā)展過程二、軟件工程的發(fā)展過程50年代初期年代初期60年代初期:程序設計階段(個性年代初期:程序設計階段(個性化軟件環(huán)境)化軟件環(huán)境)60年代中期年代中期70年代末期:程序系統階段(軟件年代末期:程序系統階段(軟件作坊)作坊)70年代中期年代中期 80年代末期年代末期:軟件工程階段:軟件工程階段80年代末期至今:創(chuàng)新完善軟件工程階段年代末期至今:創(chuàng)新完善軟件工程階段 IBM公司的公司的 OS/360OS/360,共約,共約100100萬條指令,花費了萬條指令,花費了50005000個人個人年;經費達數億美元,而結果卻令人沮喪,錯誤多達年;經費達數億美元,而結果卻令人沮喪,錯
5、誤多達20002000個以個以上,系統根本無法正常運行。上,系統根本無法正常運行。 OS/360OS/360系統的負責人系統的負責人BrooksBrooks這樣這樣描述開發(fā)過程的困難和混亂:描述開發(fā)過程的困難和混亂:“像巨獸在泥潭中作垂死掙扎,像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運。沒在泥潭中的命運?!?1.1 軟件工程的發(fā)展軟件工程的發(fā)展三、軟件危機三、軟件危機 開發(fā)軟件所需的高成本同產品低質量之間開發(fā)軟件所需的高成本同產品低質量之間有著尖銳的矛盾,即計算機軟件的開發(fā)和維護有著尖銳
6、的矛盾,即計算機軟件的開發(fā)和維護中遇到的一系列嚴重問題。中遇到的一系列嚴重問題。 軟件危機主要包含兩方面的問題:軟件危機主要包含兩方面的問題: 一是開發(fā)的軟件如何滿足社會對軟件日益增長一是開發(fā)的軟件如何滿足社會對軟件日益增長的各種需求,的各種需求, 二是怎樣維護和管理不斷快速增長的已有軟件。二是怎樣維護和管理不斷快速增長的已有軟件。1、軟件危機產生的原因(1)(1)軟件開發(fā)規(guī)模逐漸變大、復雜度和軟件的需求量不軟件開發(fā)規(guī)模逐漸變大、復雜度和軟件的需求量不斷增加;斷增加;(2)(2)沒有按照工程化方式運作,開發(fā)過程沒有統一的標沒有按照工程化方式運作,開發(fā)過程沒有統一的標準和準則、規(guī)范的指導方法;準
7、和準則、規(guī)范的指導方法;(3)(3)軟件需求分析與設計考慮不周,軟件開發(fā)、維護和軟件需求分析與設計考慮不周,軟件開發(fā)、維護和管理不到位;管理不到位;(4)(4)開發(fā)人員與用戶或開發(fā)人員之間互相的交流溝通不開發(fā)人員與用戶或開發(fā)人員之間互相的交流溝通不夠,文檔資料不完備;夠,文檔資料不完備;(5)(5)軟件測試調試不規(guī)范不細致,提交的軟件質量不達軟件測試調試不規(guī)范不細致,提交的軟件質量不達標;標;(6)(6)忽視軟件運行過程中的正常維護和管理。忽視軟件運行過程中的正常維護和管理。2、軟件危機的表現、軟件危機的表現對開發(fā)成本和進度估計不準確對開發(fā)成本和進度估計不準確用戶對已完成的軟件不滿意用戶對已完
8、成的軟件不滿意軟件產品的質量往往靠不住軟件產品的質量往往靠不住軟件常常是不可維護的軟件常常是不可維護的軟件通常沒有合適的文檔資料軟件通常沒有合適的文檔資料軟件成本在計算機系統總成本中比例逐年上升軟件成本在計算機系統總成本中比例逐年上升軟件開發(fā)生產率提高的速度,跟不上計算機普軟件開發(fā)生產率提高的速度,跟不上計算機普及速度。及速度。3、解決軟件危機的途徑、解決軟件危機的途徑 要解決軟件危機,既要有技術措施(方法和要解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。工具),又要有必要的組織管理措施。 軟件工程正是從管理和技術兩方面研究如何軟件工程正是從管理和技術兩方面研究如何更好
9、地開發(fā)和維護計算機軟件的一門新興學科。更好地開發(fā)和維護計算機軟件的一門新興學科。 1968 1968年,北大西洋公約組織(年,北大西洋公約組織(NATONATO)在聯邦)在聯邦德國召開的一次會議上有人首次提出德國召開的一次會議上有人首次提出“軟件工程軟件工程”這一術語,從此將軟件開發(fā)納入了工程化的軌道,這一術語,從此將軟件開發(fā)納入了工程化的軌道,基本形成了軟件工程的概念、框架、技術和方法?;拘纬闪塑浖こ痰母拍?、框架、技術和方法。 案例分析案例分析課堂討論課堂討論(1)上述案例項目的開發(fā)過程是否存在軟件危機問題? (2)從案例項目的組織和管理等方面分析導致該項目失敗的主要原因有哪些?(3)你
10、認為應當吸取那些教訓,采取的主要措施有哪些?返回目錄1.2 1.2 軟件工程的概念軟件工程的概念 一、軟件工程的定義 按照中國國家標準GB/T 114571995軟件工程術語的定義:軟件工程(Software Engineering)是軟件開發(fā)、運行、維護和引退的系統方法。 計算機科學技術百科全書中對軟件工程的定義是:應用計算機科學、數學及管理科學等原理,開發(fā)軟件的工程。軟件工程借鑒傳統工程的原則、方法,以提高質量、降低成本。其中,計算機科學、數學用于構建模型與算法,工程科學用于制定規(guī)范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質量、成本等管理。1.2 1.2
11、 軟件工程的概念軟件工程的概念 軟件工程是采用工程的概念、原理、技術軟件工程是采用工程的概念、原理、技術和方法,在計劃、開發(fā)、運行、維護與管理軟和方法,在計劃、開發(fā)、運行、維護與管理軟件的過程中,將科學的管理和最佳的技術方法件的過程中,將科學的管理和最佳的技術方法緊密結合,以比較經濟的手段獲得滿足用戶需緊密結合,以比較經濟的手段獲得滿足用戶需求的可靠軟件的一系列方法。求的可靠軟件的一系列方法。 軟件工程 = 工程原理+技術方法 + 管理技術二、軟件工程的特點二、軟件工程的特點 軟件工程是計算機科學中的一個重要分支,是軟件工程是計算機科學中的一個重要分支,是一門指導計算機軟件系統開發(fā)、運行、維護
12、和管理一門指導計算機軟件系統開發(fā)、運行、維護和管理技術的技術的工程學科工程學科,不僅具有一般工程學科的共性,不僅具有一般工程學科的共性,以及智能性、抽象性、復雜性和更新性等特性,還以及智能性、抽象性、復雜性和更新性等特性,還具有軟件工程學科的系統性、工程化、綜合性和學具有軟件工程學科的系統性、工程化、綜合性和學科交叉性的基本特點??平徊嫘缘幕咎攸c。 軟件工程學科的主要特點是軟件工程學科的主要特點是實踐性實踐性和和發(fā)展性發(fā)展性,軟件工程的問題來源并應用于實踐,最終目的是,軟件工程的問題來源并應用于實踐,最終目的是有效地生產軟件產品。有效地生產軟件產品。 其特點體現為其特點體現為“3多多”:一是
13、:一是多學科多學科,涉及計,涉及計算機科學、工程科學、管理科學、數學等多個學科算機科學、工程科學、管理科學、數學等多個學科;二是;二是多目標多目標,不僅關心項目產品及其功能,還注,不僅關心項目產品及其功能,還注重質量、成本、進度、性能、可靠性、安全性、通重質量、成本、進度、性能、可靠性、安全性、通用性、可維護性、有效性和界面等;三是用性、可維護性、有效性和界面等;三是多階段多階段,軟件開發(fā)不只是編程,而是由可行性研究、計劃立軟件開發(fā)不只是編程,而是由可行性研究、計劃立項、需求分析、總體設計、詳細設計、編程、測試項、需求分析、總體設計、詳細設計、編程、測試、運行、維護等階段構成完整過程。、運行、
14、維護等階段構成完整過程。三、軟件工程學的主要內容三、軟件工程學的主要內容軟件工程學軟件開發(fā)技術軟件工程管理軟件工程方法軟件工具軟件開發(fā)環(huán)境軟件工程經濟學軟件管理學軟件度量學1、軟件工程方法學、軟件工程方法學軟件工程方法學包含軟件工程方法學包含3個要素:方法、工具和個要素:方法、工具和過程。過程。方法是完成軟件開發(fā)的各項任務的技術方法,方法是完成軟件開發(fā)的各項任務的技術方法,回答回答“怎樣做怎樣做”的問題;的問題;工具是為運用方法而提供的自動的或半自動的工具是為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境;軟件工程支撐環(huán)境;過程是為了獲得高質量的軟件所需要完成的一過程是為了獲得高質量的軟件所
15、需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工系列任務的框架,它規(guī)定了完成各項任務的工作步驟。作步驟。2、軟件工程方法學、軟件工程方法學1)面向功能方法()面向功能方法(Structured Analysis and Design Technique) 1978年由E.Yourdon和L.L.Constantine提出的,即結構化分析與設計技術。2)面向數據方法)面向數據方法(Jackson system development method) 1975年,M.A.Jackson提出了面向數據(結構)的軟件開發(fā)方法,也叫Jackson方法。從目標系統輸入、輸出數據的結構,導出程序框架結構
16、,再補充其他細節(jié),得到完整的程序結構圖。此方法也可與其他方法結合,用于模塊的詳細設計和數據處理等。對輸入輸出數據結構明確的中小型系統很有效,如商用文件表格處理等3)面向對象方法()面向對象方法(Object-Oriented Method,OOM) 是一種將面向對象的思想應用于軟件開發(fā)過程中,指導開發(fā)活動的系統方法。 面向對象=對象+類+繼承+消息通信4)面向問題方法()面向問題方法(Problem Analysis Method, PAM) 是80年代末由日立公司提出的,是在Yourdon方法、Jackson方法和自底向上的軟件開發(fā)方法基礎上揚長避短改進的。其基本思想是:以輸入輸出數據結構指
17、導系統的問題分解,經過系統分析逐步綜合。5)面向方面的開發(fā)方法)面向方面的開發(fā)方法(Aspect-Oriented Programming, AOP) 是面向對象系統的擴展,在現有的AOP實現技術中,可通過創(chuàng)建Aspect庫或專用Aspect語言實現面向方面的編程。6)基于構件的開發(fā)方法()基于構件的開發(fā)方法(Component-Based Development, CBD)或叫基于構件的軟件工程(Component-Based Software Engineering, CBSE)方法,是軟件開發(fā)新范型。以軟件復用(Software Reuse)或軟件重用技術為基礎。軟件復用是指將已有的軟件
18、構件用于構造新的軟件系統的過程。7)可視化方法()可視化方法(Visual development method) 20世紀90年代隨著可視化技術的興起發(fā)展起來的開發(fā)方法。3、軟件工具 軟件工具(軟件工具(Software tools)是指支持軟件的開發(fā)、維護、管理)是指支持軟件的開發(fā)、維護、管理而專門研發(fā)的計算機程序系統。目的是提高軟件開發(fā)的質量和效率,降低軟件開發(fā)、維護和管理的成本, 支持特定的軟件工程方法,減少手工方式管理的負擔。 軟件工具種類繁多、涉及面廣軟件工具種類繁多、涉及面廣,可組成可組成“工具箱工具箱”或或“集成工具集成工具”,如編輯、編譯、正文格式處理,靜態(tài)分析、動態(tài)跟蹤、需
19、求分析、設計分析、測試、模擬和圖形交互等。按照應用階段分為:計劃工具、分析工具、設計工具、測試工具等,按照功能分為:分析設計、Web開發(fā)、界面開發(fā)、項目管理、軟件配置、質量保證、軟件維護等。4、軟件過程及開發(fā)過程、軟件過程及開發(fā)過程 ISO9000將軟件過程軟件過程(software process)定義為:“將輸入轉化為輸出的一組彼此相關的資源和活動”。軟件過程通常包括軟件過程通常包括4類基本過程類基本過程:(1)軟件規(guī)格說明:規(guī)定軟件的功能、性能、可靠性及其運行環(huán)境等。 (2)軟件開發(fā):研發(fā)滿足規(guī)格說明的具體軟件。(3)軟件確認:確認軟件能夠完成客戶提出的需求(4)軟件演進:為滿足用戶的變
20、更要求,軟件必須在使用過程中引進新技術新方法并根據新業(yè)務及時升級更新。案例分析討論案例分析討論【案例】“企業(yè)人事管理信息系統”總體功能需求和目標要求。主要功能是用于支持企事業(yè)單位完成勞動人事管理工作,實現的主要目標包括:(1)支持企業(yè)高效率完成勞動人事管理的日常業(yè)務,包括新職員調入時人事的管理,職員調出、辭職、退休等。(2)支持企業(yè)進行勞動人事管理及其相關方面的科學決策,如企事業(yè)單位領導根據現有的崗位員工需求情況決定招聘的崗位及人數等。 根據新系統總體功能需求等要求,討論確定系統開發(fā)過程的總體框架。四、軟件工程的基本原理及原則四、軟件工程的基本原理及原則 著名的軟件工程專家著名的軟件工程專家B
21、.W.Boehm綜合這些綜合這些學者們的意見并總結了學者們的意見并總結了TRW(美國湯普森(美國湯普森-拉莫拉莫-伍爾德里奇)公司多年開發(fā)軟件的經驗,于伍爾德里奇)公司多年開發(fā)軟件的經驗,于1983年在一篇論文中提出了軟件工程的年在一篇論文中提出了軟件工程的7條基本條基本原理。他認為這原理。他認為這7條原理是確保軟件產品質量和條原理是確保軟件產品質量和開發(fā)效率的原理的最小集合。開發(fā)效率的原理的最小集合。1、軟件工程的基本原理、軟件工程的基本原理u用分階段的生命周期計劃嚴格管理用分階段的生命周期計劃嚴格管理u堅持進行階段評審堅持進行階段評審u實行嚴格的產品控制實行嚴格的產品控制u采用現代程序設計
22、技術采用現代程序設計技術u結果應能清楚地審查結果應能清楚地審查u開發(fā)小組的人員應該少而精開發(fā)小組的人員應該少而精u承認不斷改進軟件工程實踐的必要性承認不斷改進軟件工程實踐的必要性2、軟件工程的基本原則 (1) 選取適宜的開發(fā)模型。 (2) 采用合適的設計方法。 (3) 提供高質量的工程支撐。 (4) 重視軟件工程的管理。 在實際開發(fā)過程中,同時還應兼顧具體開發(fā)原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性和可預測性。返回目錄1、 軟件生存周期的概念 軟件生存周期(軟件生存周期(Software life cycle)是從開始研發(fā)軟件到軟件停止使用的整個過程。是指軟件產品從用戶提出開發(fā)需求
23、開始,經過開發(fā)、使用和維護,直到最后淘汰的整個周期,因此,也稱為軟件生命周期或軟件生存期,是軟件工程的一個重要概念。 軟件工程中的過程對應軟件生存周期中的階段階段(Phase) ,也是實現軟件生產工程化的重要步驟,并賦予各階段相對獨立的任務。1.3 1.3 軟件生存周期軟件生存周期 2、軟件生存周期的階段劃分、軟件生存周期的階段劃分 軟件生存周期階段劃分的原則: (1)各階段的任務相對獨立。便于分階段計劃、逐步完成。 (2)同一階段的工作任務性質盡量相同。有利于軟件開發(fā)和組織管理,明確開發(fā)人員的分工與職責,以便協同工作、保證質量。u可行性研究與計劃:調查用戶需求及處理過程,進行可可行性研究與計
24、劃:調查用戶需求及處理過程,進行可行性分析研究行性分析研究u需求分析:分析用戶需求,建立目標系統邏輯模型。需求分析:分析用戶需求,建立目標系統邏輯模型。u系統設計:分為概要設計和詳細設計,概要設計建立目系統設計:分為概要設計和詳細設計,概要設計建立目標系統的總體結構及數據庫設計;詳細設計對模塊進行標系統的總體結構及數據庫設計;詳細設計對模塊進行過程描述,確定模塊間的詳細接口。過程描述,確定模塊間的詳細接口。u程序設計:按詳細設計說明書為每個模塊編寫程序。程序設計:按詳細設計說明書為每個模塊編寫程序。u系統測試:檢查和調試程序的正確性,排除錯誤。系統測試:檢查和調試程序的正確性,排除錯誤。u維護
25、運行:運行軟件;對程序擴充修改;修改有關的文維護運行:運行軟件;對程序擴充修改;修改有關的文檔。檔。 返回目錄3、軟件生存周期各階段的任務、軟件生存周期各階段的任務課堂討論課堂討論 結合結合“企業(yè)人事管理信息系統企業(yè)人事管理信息系統”案例進行案例進行階段劃分,并指出各階段的主要任務。階段劃分,并指出各階段的主要任務。步步 驟驟任務及說明任務及說明參與者參與者生成文檔或程序生成文檔或程序可行性分析可行性分析對項目的技術,功能需求和市場進行調研和初步分析,對項目的技術,功能需求和市場進行調研和初步分析,確定是否需要啟動項目確定是否需要啟動項目部門主管部門主管核心技術人員核心技術人員可行性分析報告可
26、行性分析報告技術調研報告技術調研報告啟動項目啟動項目正式啟動項目,有部門主管制定項目經理,項目經理制正式啟動項目,有部門主管制定項目經理,項目經理制定初步計劃,初步計劃包括設計和開發(fā)時間的初步估計定初步計劃,初步計劃包括設計和開發(fā)時間的初步估計部門主管部門主管核心技術人員核心技術人員項目計劃書項目計劃書項目合同項目合同需求分析需求分析對項目詳細需求分析,編寫需求文檔,對對項目詳細需求分析,編寫需求文檔,對B/S B/S 結構的系結構的系統應制作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面統應制作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面需要通過部門主管審批才能進行到下一步驟需要通過部門主管審批才能進
27、行到下一步驟項目經理項目經理項目小組核心成員項目小組核心成員需求分析說明書需求分析說明書靜態(tài)演示頁面靜態(tài)演示頁面項目計劃修訂版本項目計劃修訂版本概要設計概要設計根據需求分析進行概要設計。編寫目的是說明對系統的根據需求分析進行概要設計。編寫目的是說明對系統的設計考慮,包括程序系統流程、組織結構、模塊劃分、設計考慮,包括程序系統流程、組織結構、模塊劃分、功能分配、接口設計。運行設計、數據結構設計和出錯功能分配、接口設計。運行設計、數據結構設計和出錯處理設計等,為詳細設計提供基礎。概要設計經過評審處理設計等,為詳細設計提供基礎。概要設計經過評審后,項目經理通過部門主管一起指定項目小組成員。后,項目經
28、理通過部門主管一起指定項目小組成員。項目經理項目經理項目小組核心成員項目小組核心成員概要設計說明書概要設計說明書詳細設計詳細設計詳細設計編制目的是說明一個軟件各個層次中的每一個詳細設計編制目的是說明一個軟件各個層次中的每一個程序(每個模塊或子程序)的設計考慮,如果一個軟件程序(每個模塊或子程序)的設計考慮,如果一個軟件系統比較簡單,層次很少,可以不單獨編寫,有關內容系統比較簡單,層次很少,可以不單獨編寫,有關內容合并入概要設計說明書。合并入概要設計說明書。項目經理項目經理項目小組成員項目小組成員詳細設計文檔詳細設計文檔項目計劃確定版本項目計劃確定版本編碼實現編碼實現根據設計開發(fā)項目,同時有美工
29、對操作界面進行美化根據設計開發(fā)項目,同時有美工對操作界面進行美化項目經理、程序設計項目經理、程序設計員、美工員、美工項目計劃修訂版本項目計劃修訂版本調試調試項目經理提交測試申請,由測試部門對項目進行測試,項目經理提交測試申請,由測試部門對項目進行測試,項目小組配合測試部門修改軟件中的錯誤項目小組配合測試部門修改軟件中的錯誤項目經理項目經理程序開發(fā)人員程序開發(fā)人員測試部門測試部門測試申請測試申請測試計劃測試計劃測試報告測試報告項目驗收項目驗收項目驗收歸檔項目驗收歸檔部門主管部門主管項目經理項目經理項目所有文檔和程序項目所有文檔和程序1.4 1.4 開發(fā)模型開發(fā)模型 瀑布模型瀑布模型演化模型演化模
30、型螺旋模型螺旋模型噴泉模型噴泉模型RUP開發(fā)開發(fā)敏捷過程與極限編程敏捷過程與極限編程微軟過程微軟過程開發(fā)時期運行維護時期計劃時期(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設計文檔)(需求說明書)瀑布模型瀑布模型軟件開發(fā)具有以下幾個特征:瀑布模型軟件開發(fā)具有以下幾個特征:1 1階段間的順序性和依賴性階段間的順序性和依賴性 順序性是指:只有等前一階段的工作完成以后,后一順序性是指:只有等前一階段的工作完成以后,后一階段的工作才能開始;前一階段的輸出文檔,就是后一階段的工作才能開始;前一階段的輸出文檔,就是后一階段的輸入文檔。依賴性又同時表明了,只有前一階段階段的輸入文
31、檔。依賴性又同時表明了,只有前一階段有正確的輸出時,后一階段才可能有正確的結果。有正確的輸出時,后一階段才可能有正確的結果。2 2推遲實現的觀點推遲實現的觀點 過早地考慮程序的實現,常常導致大量返工,有時甚過早地考慮程序的實現,常常導致大量返工,有時甚至給開發(fā)人員帶來災難性的后果。至給開發(fā)人員帶來災難性的后果。 瀑布模型在編碼以前安排了分析階段和設計階段,并瀑布模型在編碼以前安排了分析階段和設計階段,并且明確宣布,這兩個階段都只考慮目標系統的邏輯模型,且明確宣布,這兩個階段都只考慮目標系統的邏輯模型,不涉及軟件的物理實現。不涉及軟件的物理實現。 把邏輯設計與物理設計清楚地劃分開來,盡可能推把邏
32、輯設計與物理設計清楚地劃分開來,盡可能推遲程序的物理實現,這是瀑布型軟件開發(fā)的一條重要的遲程序的物理實現,這是瀑布型軟件開發(fā)的一條重要的指導思想。指導思想。3 3質量保證的觀點質量保證的觀點 為了保證質量,瀑布型軟件開發(fā)在各個階段堅持了兩為了保證質量,瀑布型軟件開發(fā)在各個階段堅持了兩個重要的做法:個重要的做法: (1 1)每一階段都要完成規(guī)定的文檔。沒有完成文檔,)每一階段都要完成規(guī)定的文檔。沒有完成文檔,就認為沒有完成該階段的任務。就認為沒有完成該階段的任務。 (2 2)每一階段都要對完成的文檔進行復審,以便盡早)每一階段都要對完成的文檔進行復審,以便盡早發(fā)現問題,消除隱患。發(fā)現問題,消除隱
33、患。1.4.2 1.4.2 快速原型模型(快速原型模型(Rapid Prototype modelRapid Prototype model) 所謂快速原型是快速建立起來的可以在計算所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終機上運行的程序,它所能完成的功能往往是最終產品能完成功能的一個子集。產品能完成功能的一個子集。1.4.2 快速原型模型快速原型模型1.4.2 快速原型模型快速原型模型 快速原型模型是不帶反饋環(huán)的,軟件產品的快速原型模型是不帶反饋環(huán)的,軟件產品的開發(fā)基本上是線性順序進行的。主要原因如下:開發(fā)基本上是線性順序進行的。主要原因如下:(1)原型
34、系統已經通過與用戶交互而得到驗證,據)原型系統已經通過與用戶交互而得到驗證,據此產生的規(guī)格說明文檔正確地描述了用戶需求;此產生的規(guī)格說明文檔正確地描述了用戶需求;(2)開發(fā)人員通過建立系統原型已經了解了許多與)開發(fā)人員通過建立系統原型已經了解了許多與構建系統有關的內容,因此在后面設計和編碼階構建系統有關的內容,因此在后面設計和編碼階段犯錯的可能性大大降低。段犯錯的可能性大大降低。1.4.3 增量模型(增量模型(Increment Model) 使用增量模型開發(fā)軟件時,把軟件產品作為使用增量模型開發(fā)軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。一系列的增量構件來設計、編碼、集成
35、和測試。每個構件由多個相互作用的模塊構成,并且能夠每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能。完成特定的功能。把軟件產品分解成增量構件時,應該使構件把軟件產品分解成增量構件時,應該使構件的規(guī)模適中,規(guī)模過大或過小都不好。分解時必的規(guī)模適中,規(guī)模過大或過小都不好。分解時必須遵守的約束條件是,當把新構件集成到現有軟須遵守的約束條件是,當把新構件集成到現有軟件中時,所形成的產品必須是可測試的。件中時,所形成的產品必須是可測試的。 1.4.41.4.4螺旋模型螺旋模型(Spiral Model) (Spiral Model) 對于大型軟件,只對于大型軟件,只開發(fā)一個原型往往達不到要求。螺
36、旋模型將瀑布模型和增量模型開發(fā)一個原型往往達不到要求。螺旋模型將瀑布模型和增量模型結合起來,并加入了風險分析。結合起來,并加入了風險分析。螺旋模型將開發(fā)過程螺旋模型將開發(fā)過程分為幾個螺旋周期,分為幾個螺旋周期,每個螺旋周期可分為每個螺旋周期可分為4 4個工作步驟:個工作步驟: 1.1.確定目標、方案確定目標、方案和限制條件;和限制條件; 2.2.評估方案、標識評估方案、標識風險和解決風險;風險和解決風險; 3.3.開發(fā)確認產品;開發(fā)確認產品; 4.4.計劃下一周期工計劃下一周期工作。作。 螺旋模型分分 析析系統系統 設計設計軟件軟件 設計設計實實 現現圖1.5 噴泉模型該模型是由該模型是由B.
37、H.Sollers和和J.M.Edwards于于1990年提出的一年提出的一種新的開發(fā)模型。主要用于采用對象技術的軟件開發(fā)項目。它種新的開發(fā)模型。主要用于采用對象技術的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。噴泉模型使開發(fā)過程具有迭代性和無間隙性。 其特點如下:其特點如下: 、開發(fā)過程有分析、系統設計、軟件開發(fā)過程有分析、系統設計、軟件設計和實現設計和實現4個階段。個階段。、各階段相互重疊,它反映了軟件過、各階段相互重疊,它反映了軟件過程并行性的特點。程并行性的特點。
38、 、以分析為基礎,資源消耗成塔型。、以分析為基礎,資源消耗成塔型。、反映了軟件過程迭代性的自然特性,、反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。從高層返回低層無資源消耗。 、強調增量開發(fā),整個過程是一個迭、強調增量開發(fā),整個過程是一個迭代的逐步提煉的過程。代的逐步提煉的過程。 1.4.6 RUP軟件開發(fā)(軟件開發(fā)(1)RUP總結了經過多年商業(yè)化驗證的總結了經過多年商業(yè)化驗證的6條最有效的條最有效的軟件開發(fā)經驗,這些經驗被稱為最佳實踐:軟件開發(fā)經驗,這些經驗被稱為最佳實踐:n迭代式開發(fā)n管理需求n使用基于構件的體系結構n可視化建模n驗證軟件質量n控制軟件變更1.4.6 RUP(2
39、)RUP軟件開發(fā)生命周期軟件開發(fā)生命周期核心工作流:核心工作流:RUP有有9個核心工作流,前個核心工作流,前6個為核心過程工個為核心過程工作流程,后作流程,后3個位核心支持工作流程。個位核心支持工作流程。n業(yè)務建模n需求n分析與設計n實現n測試n部署n配置與變更管理n項目管理n環(huán)境1.4.6 RUP(3)RUP工作階段工作階段n初始階段:建立業(yè)務模型,定義最終產品視圖,并且確定項目的范圍n精化階段:設計并確定系統的體系結構,制定項目計劃,確定資源需求n構建階段:開發(fā)出所有構建和應用程序,把它們集成為客戶需要的產品,并且詳盡地測試所有功能。n移交階段:把開發(fā)出的產品提交給用戶使用1.4.6 RU
40、P(4)RUP的迭代開發(fā)模式的迭代開發(fā)模式1.4.6 RUP(5)1.4.7 敏捷過程與極限編程敏捷過程與極限編程(1)為了使軟件開發(fā)團隊具有高效工作和快速響為了使軟件開發(fā)團隊具有高效工作和快速響應變化的能力,應變化的能力,17位著名的軟件專家于位著名的軟件專家于2001年年2月聯合起草的敏捷軟件開發(fā)宣言。月聯合起草的敏捷軟件開發(fā)宣言。敏捷過程敏捷過程4個簡單的價值觀聲明個簡單的價值觀聲明n個體和交互勝過過程和工具n可以工作的軟件勝過面面俱到的文檔n客戶合作勝過合同談判n響應變化勝過遵循計劃1.4.7 敏捷過程與極限編程敏捷過程與極限編程(2)XP是敏捷過程中最負盛名是敏捷過程中最負盛名的一個
41、的一個XP的有效實踐的有效實踐n客戶作為開發(fā)團隊的成員n使用用戶素材n短交付周期n驗收測試n結對編程n測試驅動開發(fā)n集體所有n持續(xù)集成n可持續(xù)的開發(fā)速度n開放的工作空間n及時調整計劃n簡單的設計n重構n使用隱喻1.4.7 敏捷過程與極限編程敏捷過程與極限編程(3)XP項目的整體開發(fā)過程項目的整體開發(fā)過程1.4.7 敏捷過程與極限編程敏捷過程與極限編程(4)XP迭代開發(fā)過程迭代開發(fā)過程 1.4.8 微軟過程微軟過程(1)微軟過程準則微軟過程準則n項目計劃應該兼顧未來的不確定因素n用有效的風險管理來減少不確定因素的影響n經過生成并快速地測試軟件的過渡版本,從而提高產品的穩(wěn)定性和可預測性。n采用快速
42、循環(huán)、遞進的開發(fā)過程n用創(chuàng)造性的工作來平衡產品特性和產品成本n項目進度表應該具有較高穩(wěn)定性和權威性n使用小型項目組并發(fā)地完成開發(fā)工作n在項目早期把軟件配置項基線化,項目后期則凍結產品n使用原型驗證概念,對項目進行早期結論n把零缺陷作為追求的目標n里程碑評審會的目的是改進工作,切忌相互指責1.4.8 微軟過程微軟過程(2)微軟軟件生命周期階段劃分和主要里程碑微軟軟件生命周期階段劃分和主要里程碑 1.4.8 微軟過程微軟過程(3)微軟過程的生命周期模型微軟過程的生命周期模型 各模型比較各模型比較(1)每個軟件開發(fā)組織應該選擇適合于該組織的軟每個軟件開發(fā)組織應該選擇適合于該組織的軟件開發(fā)模型,并且應
43、該隨著當前正在開發(fā)的特件開發(fā)模型,并且應該隨著當前正在開發(fā)的特定產品特性而變化,以減小所選模型的缺點,定產品特性而變化,以減小所選模型的缺點,充分利用其優(yōu)點,下表列出了幾種常見模型的充分利用其優(yōu)點,下表列出了幾種常見模型的優(yōu)缺點。優(yōu)缺點。各模型比較各模型比較(2)模型模型優(yōu)點優(yōu)點缺點缺點瀑布模型瀑布模型 文檔驅動文檔驅動 系統可能不滿足客戶的系統可能不滿足客戶的需求需求 快速原型模型快速原型模型 關注滿足客戶需求關注滿足客戶需求 可能導致系統設計差、可能導致系統設計差、效率低,難于維護效率低,難于維護 增量模型增量模型 開發(fā)早期反饋及時,開發(fā)早期反饋及時,易于維護易于維護 需要開放式體系結構,
44、需要開放式體系結構,可能會設計差、效率低可能會設計差、效率低 螺旋模型螺旋模型 風險驅動風險驅動 風險分析人員需要有經風險分析人員需要有經驗且經過充分訓練驗且經過充分訓練 1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定1. 開發(fā)模型與開發(fā)方法及工具的關系 一般應用軟件的開發(fā)過程,主要包括生存周期的系統規(guī)劃、需求分析、軟件設計、實現四個階段。軟件的開發(fā)方法多種多樣,當采用不同的開發(fā)方法時,軟件的生存周期過程將表現為不同的過程模型。為解決開發(fā)工程中大量復雜的手工勞動,提高軟件的開發(fā)效率,還要采用計算機輔助軟件工程CASE開發(fā)工具來支持整個開發(fā)過程。1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定
45、開發(fā)模型、方法和工具之間的關系開發(fā)模型、方法和工具之間的關系 1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定2軟件開發(fā)模型選取 最常用的是瀑布模型和原型模型,其次是增量模型,由于迭代模型比較難以掌握使用較少。各種模型各有其特點和優(yōu)缺點。在具體選擇模型時需要綜合考慮以下6點: (1)符合軟件本身的性質,包括規(guī)模、復雜性等; (2)滿足軟件應用系統整體開發(fā)進度要求; (3)盡可能控制并消除軟件開發(fā)風險; (4)具有計算機輔助工具快速的支持,如快速原型工具; (5)與用戶和軟件開發(fā)人員的知識和技能匹配; (6)有利于軟件開發(fā)的管理與控制。通常情況下,面向過程方法可使用瀑布模型、增量模型和螺旋模型進
46、行開發(fā);面向對象方法可采用快速原型、增量模型、噴泉模型和統一過程進行開發(fā);面向數據方法一股采用瀑布模型和增量模型進行開發(fā)。1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定3軟件開發(fā)模型的修定 在實際軟件開發(fā)過程中,開發(fā)模型的選定并非直接照抄照搬、一成不變,有時還需要根據實際開發(fā)目標要求進行裁剪、修改、確定和綜合運用。小結:軟件工程項目的基本目標小結:軟件工程項目的基本目標 (1)付出較低的開發(fā)成本;)付出較低的開發(fā)成本;(2)達到要求的軟件功能;)達到要求的軟件功能;(3)取得較好的軟件性能;)取得較好的軟件性能;(4)開發(fā)的軟件易于移植;)開發(fā)的軟件易于移植;(5)需要較低的維護費用;)需要較低的維護費用; (6)能按時完成開發(fā)工作,及時交付使用。)能按時完成開發(fā)工作,及時交付使用。 軟件工程項目的基本目標軟件工程項目的基本目標低開發(fā)成本按時交付高性能高可靠性易于維護互補關系互斥關系返回目錄本章小結本章小結 軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項 任務的工作步驟。ISO 9000把軟件過程定義為:“把輸入轉化為輸出的一組彼此相關的資源和活動”。軟件過程定義了運用方法的順序、應該交付的文檔、開發(fā)軟件的管理措施、各階段任務完成的標志。軟件過程必須科學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食品冷凍機械項目申請報告
- 2025年工具臺車項目提案報告模板
- 2025年閉式塔項目申請報告模范
- 2025年銀行監(jiān)管及中央銀行服務項目申請報告
- 2025年清洗劑項目發(fā)展計劃
- 發(fā)揮比較優(yōu)勢 用好后發(fā)優(yōu)勢打好經濟轉型升級攻堅戰(zhàn)
- 第2章 粒子的模型與符號-八年級科學下冊單元達標卷B卷(浙教版)
- 2024廣東廣州花都城投建設管理有限公司擬錄用人員(第二批)筆試參考題庫附帶答案詳解
- 2024廣東臺山市新城市基礎建設投資有限公司招聘2人筆試參考題庫附帶答案詳解
- 第二單元第2課 告訴我地址 -從IPv4到IPv6的傳奇 教學設計 2024-2025學年清華大學版(2024)B版初中信息技術七年級上冊
- 2024年珠算五級考試試題及答案公布
- 第07講 兩個基本計數原理(七大題型)(解析版)
- 設備缺陷管理培訓課件
- 績效薪酬管理課程設計
- 《控方證人》完整中英文對照劇本
- 福特福睿斯說明書
- 萬千教育學前幼兒園課程故事:支架教師的專業(yè)成長
- 城市社會學課件
- 居間協議書-五金工具銷售服務
- 企業(yè)數字化轉型之路燈塔工廠專題報告
- 酒店賓客意見表
評論
0/150
提交評論