




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、會計學1軟件工程基本原理軟件工程基本原理第一頁,編輯于星期二:九點 四十九分。目的要求目的要求:認識軟件工程這門課的內容和教學認識軟件工程這門課的內容和教學安排,了解計算機系統的發展歷程,軟件危機產生安排,了解計算機系統的發展歷程,軟件危機產生的原因及消除途徑;的原因及消除途徑; 掌握軟件工程的概念、基本原理。了解軟件過程的掌握軟件工程的概念、基本原理。了解軟件過程的概念,掌握瀑布模型以及軟件生命周期方法學的階段劃概念,掌握瀑布模型以及軟件生命周期方法學的階段劃分,了解快速原型模型、增量模型、螺旋模型、噴泉模分,了解快速原型模型、增量模型、螺旋模型、噴泉模型的基本思想。型的基本思想。 教學目的
2、、要求,重點、難點教學目的、要求,重點、難點第1頁/共49頁第二頁,編輯于星期二:九點 四十九分。教學重點:教學重點:講述軟件危機產生的原因;軟件工程的概念;軟件過程的概念,瀑布模型以及軟件生命周期方法學的階段劃分;講述軟件危機產生的原因;軟件工程的概念;軟件過程的概念,瀑布模型以及軟件生命周期方法學的階段劃分;教學難點:教學難點:螺旋模型、噴泉模型的基本思想;螺旋模型、噴泉模型的基本思想;講授內容:講授內容:計算機系統發展歷程;軟件危機;軟件工程。軟件過程的概念,瀑布模型以及軟件生命周期方法學的階段劃分快速原型模型、增量模型、螺旋模型、噴泉模型。計算機系統發展歷程;軟件危機;軟件工程。軟件過
3、程的概念,瀑布模型以及軟件生命周期方法學的階段劃分快速原型模型、增量模型、螺旋模型、噴泉模型。第2頁/共49頁第三頁,編輯于星期二:九點 四十九分。 計算機系統應用的日益普及和深化。硬件和軟件計算機系統應用的日益普及和深化。硬件和軟件的迅速發展。在計算機系統發展的早期時代所形成的的迅速發展。在計算機系統發展的早期時代所形成的一些錯誤概念和做法,已經嚴重地阻礙了計算機軟件一些錯誤概念和做法,已經嚴重地阻礙了計算機軟件的開發,為更有效地開發和維護軟件,軟件工作者在的開發,為更有效地開發和維護軟件,軟件工作者在2020世紀世紀6060年代后期開始認真研究消除軟件危機的方法年代后期開始認真研究消除軟件
4、危機的方法,從而形成了計算機科學技術領域中的一們新興學科,從而形成了計算機科學技術領域中的一們新興學科:計算機軟件工程學計算機軟件工程學。 第3頁/共49頁第四頁,編輯于星期二:九點 四十九分。 計算機系統已經經歷了計算機系統已經經歷了4個不同的發展階段,計算機軟件也經歷了個不同的發展階段,計算機軟件也經歷了4個階段。個階段。 6060年代中期以前年代中期以前:為具體應用專門編寫,認為無需預先計劃,規模較小,編寫者和使用者是同一人,無系統化方法,無管理,人們頭腦中的一個隱含過程,除程序清單無文檔資料。為具體應用專門編寫,認為無需預先計劃,規模較小,編寫者和使用者是同一人,無系統化方法,無管理,
5、人們頭腦中的一個隱含過程,除程序清單無文檔資料。 6060年代中期到年代中期到7070年代中期年代中期:第二代,多道程序、多用戶系統的引入,數據庫系統的出現,重要特征:軟件作坊,廣泛使用產品軟件,但仍使用個體化軟件開發方法。程序運行時發現的錯誤必須設法改正,用戶有了新的需求時必須相應的修改程序,硬件或操作系統更新時通常需要修改程序以適應新的環境。:第二代,多道程序、多用戶系統的引入,數據庫系統的出現,重要特征:軟件作坊,廣泛使用產品軟件,但仍使用個體化軟件開發方法。程序運行時發現的錯誤必須設法改正,用戶有了新的需求時必須相應的修改程序,硬件或操作系統更新時通常需要修改程序以適應新的環境。第一節
6、第一節 軟件概述軟件概述一、軟件的發展與特點一、軟件的發展與特點第4頁/共49頁第五頁,編輯于星期二:九點 四十九分。1968年北大西洋公約組織的計算機科學家在聯邦德國召開國際會議,討論軟件危機問題,正式提出年北大西洋公約組織的計算機科學家在聯邦德國召開國際會議,討論軟件危機問題,正式提出“軟件工程軟件工程”。 從從2020世紀世紀7070年代中期開始的年代中期開始的1010年年:分布式系統,局域網、廣域網、寬帶數字通信等對軟件開發者提出了更高的要求,主要特點:出現了微處理器,及智能產品(個人計算機)。:分布式系統,局域網、廣域網、寬帶數字通信等對軟件開發者提出了更高的要求,主要特點:出現了微
7、處理器,及智能產品(個人計算機)。 計算機系統發展的第四代計算機系統發展的第四代:以硬件和軟件的綜合效果為主,復雜的操作系統控制的強大的桌面機及局域網、廣域網,與先進的應用軟件相配合,已經成為當前的主流。:以硬件和軟件的綜合效果為主,復雜的操作系統控制的強大的桌面機及局域網、廣域網,與先進的應用軟件相配合,已經成為當前的主流。第5頁/共49頁第六頁,編輯于星期二:九點 四十九分。計算機軟件發展的三個階段及其特點計算機軟件發展的三個階段及其特點特點,階段特點,階段程序設計程序設計程序系統程序系統軟件工程軟件工程軟件所指軟件所指程序程序程序及說明書程序及說明書程序、文檔、程序、文檔、數據數據主要程
8、序設計主要程序設計語言語言匯編及機器語匯編及機器語言言高級語言高級語言軟件語言軟件語言* *軟件工作范圍軟件工作范圍程序編寫程序編寫設計和測試設計和測試整個軟件生命整個軟件生命周期周期需求者需求者程序設計者程序設計者少數用戶少數用戶市場用戶市場用戶開發軟件的組開發軟件的組織織個人個人開發小組開發小組開發小組及大開發小組及大中型開發機構中型開發機構軟件規模軟件規模小型小型中、小型中、小型大、中、小型大、中、小型第6頁/共49頁第七頁,編輯于星期二:九點 四十九分。特點,階段特點,階段程序設計程序設計程序系統程序系統軟件工程軟件工程決定質量的決定質量的因素因素個人技術個人技術小組技術水小組技術水平
9、平技術與管理水平技術與管理水平開發技術和開發技術和手段手段子程序、程子程序、程序庫序庫結構化程序結構化程序設計設計數據庫數據庫, ,開發工具開發工具, ,集成開發集成開發環境環境, ,工程化開發方法工程化開發方法, ,標準標準和規范和規范, ,網絡及分布式開網絡及分布式開發發, ,OOOO技術技術, ,CASECASE維護責任者維護責任者程序設計者程序設計者開發小組開發小組專職維護人員專職維護人員硬件的特征硬件的特征高價、存儲高價、存儲量小、可靠量小、可靠性差性差降價,速度、降價,速度、容量、可靠容量、可靠性明顯提高性明顯提高向超高速向超高速, ,大容量大容量, ,網網絡化絡化, ,微型化方向
10、發展微型化方向發展軟件的特征軟件的特征完全不受重完全不受重視視軟件的技術軟件的技術發展不能滿發展不能滿足需求足需求開發技術有進步,但開發技術有進步,但尚未完全擺脫軟件危尚未完全擺脫軟件危機機第7頁/共49頁第八頁,編輯于星期二:九點 四十九分。 指在計算機軟件開發和維護的過程中所遇到的一系列嚴重問題。指在計算機軟件開發和維護的過程中所遇到的一系列嚴重問題。 概括的說:概括的說:如何開發軟件,怎樣滿足對軟件的日益增長的需求;如何維護數量不斷膨脹的已有軟件。如何開發軟件,怎樣滿足對軟件的日益增長的需求;如何維護數量不斷膨脹的已有軟件。 具體的說:具體的說:主要有以下一些表現:主要有以下一些表現:1
11、 1、對軟件開發成本和進度的估計常常很不準確;、對軟件開發成本和進度的估計常常很不準確;2 2、用戶對已完成的軟件系統不滿意的現象經常發生;、用戶對已完成的軟件系統不滿意的現象經常發生;3 3、軟件產品的質量經常靠不住;、軟件產品的質量經常靠不住;4 4、軟件常常是不可維護的;、軟件常常是不可維護的;5 5、軟件通常沒有適當文檔資料;、軟件通常沒有適當文檔資料;6 6、軟件成本在計算機系統總成本中中所占的比例逐年上升;、軟件成本在計算機系統總成本中中所占的比例逐年上升;7 7、軟件開發的生產率提高的速度,既跟不上硬件發展的速度,也遠遠跟不上計算機應用普及深入的趨勢。、軟件開發的生產率提高的速度
12、,既跟不上硬件發展的速度,也遠遠跟不上計算機應用普及深入的趨勢。二、軟件危機二、軟件危機第8頁/共49頁第九頁,編輯于星期二:九點 四十九分。 IBM公司的公司的 OS/360OS/360,共約,共約100100萬條指令,花費了萬條指令,花費了50005000個人年;經費達數億美圓,而結果卻令人沮喪,錯誤多達個人年;經費達數億美圓,而結果卻令人沮喪,錯誤多達20002000個以上,系統根本無法正常運行。個以上,系統根本無法正常運行。 OS/360OS/360系統的負責人系統的負責人BrooksBrooks這樣描述開發過程的困難和混亂:這樣描述開發過程的困難和混亂:“像巨獸在泥潭中作垂死掙扎,掙
13、扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運。像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運。” 第9頁/共49頁第十頁,編輯于星期二:九點 四十九分。 在軟件開發和維護的過程中存在這么多嚴重問題,一方面與軟件本身的特點有關,另一方面也和軟件開發與維護的方法不正確有關。在軟件開發和維護的過程中存在這么多嚴重問題,一方面與軟件本身的特點有關,另一方面也和軟件開發與維護的方法不正確有關。1 1、軟件不同于硬件、軟件不同于硬件:它是計算機系統中的邏輯部件,在寫出程序代碼并在計算機上運行之前,軟件開發過程的進展情況較難衡量,軟件
14、開發的質量也較難評價,因此管理和控制軟件開發過程相當困難。:它是計算機系統中的邏輯部件,在寫出程序代碼并在計算機上運行之前,軟件開發過程的進展情況較難衡量,軟件開發的質量也較難評價,因此管理和控制軟件開發過程相當困難。2 2、軟件在運行過程中不會因使用時間過長而被用壞、軟件在運行過程中不會因使用時間過長而被用壞,如果運行中發現錯誤,很可能是遇到了一個在開發時期引入雜在測試階段沒能檢測出來的故障,因此軟件維護通常意味著改正或修改原來的設計。,如果運行中發現錯誤,很可能是遇到了一個在開發時期引入雜在測試階段沒能檢測出來的故障,因此軟件維護通常意味著改正或修改原來的設計。產生軟件危機的原因產生軟件危
15、機的原因第10頁/共49頁第十一頁,編輯于星期二:九點 四十九分。3 3、軟件不同于一般程序、軟件不同于一般程序:規模龐大,必須有嚴格而科學的管理。規模龐大,必須有嚴格而科學的管理。4 4、軟件專業人員對軟件開發和維護有不少的糊涂觀念、軟件專業人員對軟件開發和維護有不少的糊涂觀念,在實踐過程中或多或少地采用了錯誤的方法和技術,忽視軟件需求分析的重要性,認為開發軟件就是寫程序并使之運行,輕視軟件維護,這可能是軟件危機的主要原因在實踐過程中或多或少地采用了錯誤的方法和技術,忽視軟件需求分析的重要性,認為開發軟件就是寫程序并使之運行,輕視軟件維護,這可能是軟件危機的主要原因。 硬件硬件/ /軟件產品
16、失效率曲線軟件產品失效率曲線磨合調整磨損用壞時間失效率修改點實際曲線時間失效率理想曲線軟件產品軟件產品硬件產品硬件產品第11頁/共49頁第十二頁,編輯于星期二:九點 四十九分。52002020001000需求分析結構設計詳細設計編碼集成測試系統測試現場改正一個問題的估算費用/美元改正一個問題的估算工作量/人日0.050.52.5改正一個問題改正一個問題需付出的代價需付出的代價代價早期 中期 晚期 時間高中低變更代價隨時變更代價隨時間變化的趨勢間變化的趨勢第12頁/共49頁第十三頁,編輯于星期二:九點 四十九分。一個軟件從定義、開發、使用、維護,一個軟件從定義、開發、使用、維護,直到最終被廢棄,
17、要經歷一個漫長的時期,這就直到最終被廢棄,要經歷一個漫長的時期,這就如同一個人要經過胎兒、兒童、青年、中年、老如同一個人要經過胎兒、兒童、青年、中年、老年,直到最終死亡的漫長時期一樣,通常把軟件年,直到最終死亡的漫長時期一樣,通常把軟件經歷的這個漫長時期稱為生存周期。經歷的這個漫長時期稱為生存周期。在軟件開發的不同階段進行修改需要付在軟件開發的不同階段進行修改需要付出的代價很不相同:出的代價很不相同:軟件工程學的一個重要目標就是提高軟件軟件工程學的一個重要目標就是提高軟件的可維護性,減少軟件維護的代價。的可維護性,減少軟件維護的代價。生存周期:生存周期:第13頁/共49頁第十四頁,編輯于星期二
18、:九點 四十九分。1 1、軟件開發應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。、軟件開發應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。2 2、必須充分吸收和借鑒人類長期以來從事各種工程項目所積累的行之有效的原理、概念、技術和方法,特別是要吸取幾十年來從事計算機硬件研究和開發的經驗教訓。、必須充分吸收和借鑒人類長期以來從事各種工程項目所積累的行之有效的原理、概念、技術和方法,特別是要吸取幾十年來從事計算機硬件研究和開發的經驗教訓。3 3、應該推廣使用在實踐中總結出來的開發軟件的成功的、應該推廣使用在實踐中總結出來的開發軟件的成功的 技術和方法。技術和
19、方法。4 4、應該開發和使用更好的、應該開發和使用更好的 軟件工具。軟件工具。總之,為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程總之,為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程. .正是從管理和技術兩方面研究如何更好的開發和維護計算機軟件的一門新興學科正是從管理和技術兩方面研究如何更好的開發和維護計算機軟件的一門新興學科. .解決軟件危機的途徑解決軟件危機的途徑第14頁/共49頁第十五頁,編輯于星期二:九點 四十九分。軟件工程軟件工程是指導計算機軟件開發和維護的工程學科是指導計算機軟件開發和維護的工程學科. .采用工
20、程的概念、原理、技術和方法來開發和維護軟件采用工程的概念、原理、技術和方法來開發和維護軟件, ,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來, ,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程. .19831983年年IEEEIEEE給軟件工程的定義給軟件工程的定義:“軟件工程是開發、運行、維護和修復軟件的系統方法。軟件工程是開發、運行、維護和修復軟件的系統方法。” 強調強調“系統方法系統方法”不是不是“個人技巧個人技巧”。Fai
21、rlyFairly認為認為:“軟件工程學是為了在成本限額以內按時完成開發和修復軟件產品所需要的系統生產和維護技術及管理學科軟件工程學是為了在成本限額以內按時完成開發和修復軟件產品所需要的系統生產和維護技術及管理學科”。強調。強調“成本限額以內成本限額以內”及及“技術和管理兩個方面技術和管理兩個方面” 。第二節第二節 軟件工程軟件工程一、軟件工程與方法學一、軟件工程與方法學第15頁/共49頁第十六頁,編輯于星期二:九點 四十九分。Fritz BauerFritz Bauer認為認為:“軟件工程是為了經濟地獲得軟件工程是為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用可靠的且能在
22、實際機器上有效地運行的軟件,而建立和使用的完善的工程化原則的完善的工程化原則”。強調。強調“經濟地開發出高質量的軟經濟地開發出高質量的軟件,應建立和使用的完善的工程化原則件,應建立和使用的完善的工程化原則”。19931993年年IEEEIEEE進一步給出了一個更全面的定義進一步給出了一個更全面的定義:軟件工程是:(軟件工程是:(1 1)把系統化的、規范的、可)把系統化的、規范的、可度量的途徑應用于軟件開發、運行和維護的過程,也度量的途徑應用于軟件開發、運行和維護的過程,也就是把工程化應用于軟件中;(就是把工程化應用于軟件中;(2 2)研究()研究(1 1)中提到)中提到的途徑。的途徑。 第16
23、頁/共49頁第十七頁,編輯于星期二:九點 四十九分。1 1、用分階段的生命周期計劃嚴格管理、用分階段的生命周期計劃嚴格管理2 2、堅持進行階段評審、堅持進行階段評審3 3、實行嚴格的產品控制、實行嚴格的產品控制4 4、采用現代程序設計技術、采用現代程序設計技術5 5、結果應能清楚的審查、結果應能清楚的審查6 6、開發小組的人員應該少而精、開發小組的人員應該少而精7 7、承認不斷改進軟件工程實踐的必要性、承認不斷改進軟件工程實踐的必要性 二、軟件工程的基本原理二、軟件工程的基本原理第17頁/共49頁第十八頁,編輯于星期二:九點 四十九分。軟件開發技術軟件開發方法學瀑布模型的生命周期方法、動態需求
24、的快速原型、面向對象的方法;軟件工具用來開發軟件的軟件。軟件工程環境 支持軟件開發的環境、工具及其關系;軟件工程管理質量管理人力管理、進度安排、質量保證、資源管理軟件工程經濟學以經濟的觀點研究開發過程中的經濟效益:成本估算、效益分析。第18頁/共49頁第十九頁,編輯于星期二:九點 四十九分。軟件工程包含:技術和管理。是技術和管軟件工程包含:技術和管理。是技術和管理的緊密結合。通過計劃、組織和控制等一系列理的緊密結合。通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定活動,合理地配置和使用各種資源,以達到既定目標的過程。目標的過程。軟件工程方法學包括三個要素:軟件工程方法學包
25、括三個要素:方法:方法:完成軟件開發的各項任務的技術方法;回答完成軟件開發的各項任務的技術方法;回答“如何做如何做”的問題。的問題。工具:工具:為方法的應用提供或半自動的軟件支撐環為方法的應用提供或半自動的軟件支撐環境;境;過程:過程:為了獲得高質量的軟件所需要完成的一系列任務為了獲得高質量的軟件所需要完成的一系列任務的框架、規定了完成各項任務的工作步驟。的框架、規定了完成各項任務的工作步驟。四、軟件工程方法學四、軟件工程方法學第19頁/共49頁第二十頁,編輯于星期二:九點 四十九分。劃分軟件生存周期階段的劃分軟件生存周期階段的基本原則基本原則: :使各階段的任務彼此間盡可能相對獨立使各階段的
26、任務彼此間盡可能相對獨立, ,同一階段各項任務的性質盡可能相同同一階段各項任務的性質盡可能相同, ,從而降低每個階段任務的復雜程度從而降低每個階段任務的復雜程度, ,簡化不同階段之間的聯系簡化不同階段之間的聯系, ,有利于軟件開發工程的組織管理有利于軟件開發工程的組織管理. . 面向對象方法的四個要點:對象;類;父類(基類)和子類(派生類);消息。面向對象方法的四個要點:對象;類;父類(基類)和子類(派生類);消息。 面向對象方法學的出發點和基本原則面向對象方法學的出發點和基本原則,是盡可能模擬人類習慣的思維方式,使開發軟件的方法和過程盡可能接近人類認識世界解決問題的方法和過程,從而使描述問題
27、的問題空間與實現解法的解空間在結構上盡可能一致。,是盡可能模擬人類習慣的思維方式,使開發軟件的方法和過程盡可能接近人類認識世界解決問題的方法和過程,從而使描述問題的問題空間與實現解法的解空間在結構上盡可能一致。 傳統方法學(生命周期方法學)或(結構化范型):采用結構化技術(結構化分析、結構化設計、結構程序設計和結構化測試)。傳統方法學(生命周期方法學)或(結構化范型):采用結構化技術(結構化分析、結構化設計、結構程序設計和結構化測試)。第20頁/共49頁第二十一頁,編輯于星期二:九點 四十九分。第三節第三節 軟件工程過程軟件工程過程第21頁/共49頁第二十二頁,編輯于星期二:九點 四十九分。
28、軟件工程軟件工程過程過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,包括軟件工程活動和軟件管理活動。這些活動的執行可以是有序的、循環的、嵌套的,也可以有條件引發的。是為了獲得高質量的軟件所需要完成的一系列任務的框架,包括軟件工程活動和軟件管理活動。這些活動的執行可以是有序的、循環的、嵌套的,也可以有條件引發的。 在完成開發任務時必須進行一些活動,并使用適當的資源(人員、時間、計算機硬件、軟件工具等),在過程結束時將把輸入(軟件需求)轉化為輸出(軟件產品)。在完成開發任務時必須進行一些活動,并使用適當的資源(人員、時間、計算機硬件、軟件工具等),在過程結束時將把輸入(軟件需求)轉化為輸出
29、(軟件產品)。ISO9000ISO9000把過程定義為:把過程定義為:“把輸入轉化為輸出的一組彼此相關的資源和活動把輸入轉化為輸出的一組彼此相關的資源和活動”。過程定義了運用方法的順序、應交付的文檔資料、為保證軟件質量和協調變化所需要采取的管理措施以及標志軟件開發各個階段任務完成的里程碑。過程定義了運用方法的順序、應交付的文檔資料、為保證軟件質量和協調變化所需要采取的管理措施以及標志軟件開發各個階段任務完成的里程碑。軟件工程過程包括:開發過程、運作過程、維護過程、管理過程、支持過程、獲取過程、供應過程、剪裁過程等軟件工程過程包括:開發過程、運作過程、維護過程、管理過程、支持過程、獲取過程、供應
30、過程、剪裁過程等第22頁/共49頁第二十三頁,編輯于星期二:九點 四十九分。在美國在美國SEI(軟件工程研究所,設在美國卡耐基軟件工程研究所,設在美國卡耐基- -梅農大學,是致力于軟件過程改進的權威機構梅農大學,是致力于軟件過程改進的權威機構)提出的)提出的“能力成熟度模型能力成熟度模型”(CMMCMM,C Capability apability M Maturity aturity M Moduleodule)中,設定了中,設定了52個目標,個目標,18個關鍵活動域和個關鍵活動域和316個關鍵個關鍵活動,能夠用來評價軟件開發組織的過程能力。活動,能夠用來評價軟件開發組織的過程能力。第23頁
31、/共49頁第二十四頁,編輯于星期二:九點 四十九分。工作任務工作任務里程碑、交付物里程碑、交付物軟件質量保證點軟件質量保證點任務集合任務集合框架活動框架活動公共過程框架公共過程框架保護性輔助活動保護性輔助活動軟件工程過程軟件工程過程通過定義適合于所有軟件項目的框架活動而建立。每個集合由軟件工程工作任務、軟件項目里程碑、軟件工作產品和交付物以及質量保證點組成。獨立于任何一個框架第24頁/共49頁第二十五頁,編輯于星期二:九點 四十九分。從宏觀上來看,所有的軟件開發過程從宏觀上來看,所有的軟件開發過程都可以看成一個循環解決問題的過程。包括都可以看成一個循環解決問題的過程。包括4 4個不同的階段:狀
32、態描述,問題定義,技術開個不同的階段:狀態描述,問題定義,技術開發和方案綜述。發和方案綜述。問題循環解決的各個階段問題循環解決的各個階段狀態描述狀態描述問題定義問題定義技術開發技術開發方案綜述方案綜述第25頁/共49頁第二十六頁,編輯于星期二:九點 四十九分。狀態描述狀態描述問題定義問題定義技術開發技術開發方案綜述方案綜述狀態描述狀態描述問題定義問題定義技術開發技術開發方案綜述方案綜述狀態描述狀態描述問題定義問題定義技術開發技術開發方案綜述方案綜述問題循環解決問題循環解決階段中的階段中的階段階段狀態描述狀態描述第26頁/共49頁第二十七頁,編輯于星期二:九點 四十九分。 軟件生存周期軟件生存周
33、期劃分為四個時期:劃分為四個時期:軟件分析時期、設計時期、編碼與測試時期、運行與維護時期軟件分析時期、設計時期、編碼與測試時期、運行與維護時期。每個時期又劃分為若干個階段。每個時期又劃分為若干個階段。 1、軟件的分析時期任務、軟件的分析時期任務:確定軟件開發工程必須完成的總目標;可行性;采用的策略;必要的功能;所需的資源和成本;工程進度;分為三個階段:問題定義、可行性研究、需求分析;:確定軟件開發工程必須完成的總目標;可行性;采用的策略;必要的功能;所需的資源和成本;工程進度;分為三個階段:問題定義、可行性研究、需求分析; 2、軟件設計時期的任務、軟件設計時期的任務:具體設計和實現在前一時期定
34、義的軟件。分為:具體設計和實現在前一時期定義的軟件。分為2個階段:總體設計;詳細設計;個階段:總體設計;詳細設計; 3、編碼和測試時期、編碼和測試時期;編碼和單元測試、綜合測試;編碼和單元測試、綜合測試; 4、軟件維護時期的任務、軟件維護時期的任務:使軟件持久地滿足用戶的需要。有四個方面的維護活動:改正性、完善性、適應性、預防性;:使軟件持久地滿足用戶的需要。有四個方面的維護活動:改正性、完善性、適應性、預防性; 第四節第四節 軟件生存周期軟件生存周期第27頁/共49頁第二十八頁,編輯于星期二:九點 四十九分。階段階段關鍵問題關鍵問題結束標準結束標準問題定問題定義義問題是什么問題是什么關于規模
35、和目標的報告關于規模和目標的報告書書可行性可行性研究研究有可行的解有可行的解嗎嗎系統高層邏輯模型:數系統高層邏輯模型:數據流圖,成本據流圖,成本/ /效益分析效益分析需求分需求分析析系統必須做系統必須做什么什么系統的邏輯模型:數據系統的邏輯模型:數據流圖,數據字典,算法流圖,數據字典,算法描述描述總體設總體設計計概括的說,概括的說,系統應該如系統應該如何解決這個何解決這個問題問題可能的解法:系統流程可能的解法:系統流程圖,成本圖,成本/ /效益分析,推效益分析,推薦的系統結構:層次圖薦的系統結構:層次圖或結構圖或結構圖第28頁/共49頁第二十九頁,編輯于星期二:九點 四十九分。階段階段關鍵問題
36、關鍵問題結束標準結束標準詳細設計詳細設計怎樣具體地實怎樣具體地實現這個系統現這個系統編寫規格說明編寫規格說明編碼和單編碼和單元測試元測試正確的程序模正確的程序模塊塊源程序清單,單元測源程序清單,單元測試方案和結果試方案和結果綜合測試綜合測試符合要求的軟符合要求的軟件件綜合測試方案和結果、綜合測試方案和結果、完整一致的軟件配置完整一致的軟件配置維護維護持久地滿足用持久地滿足用戶需要的軟件戶需要的軟件完整準確的維護記錄完整準確的維護記錄第29頁/共49頁第三十頁,編輯于星期二:九點 四十九分。第五節第五節 軟件開發模型軟件開發模型一、軟件生存周期模型的概念:一、軟件生存周期模型的概念: 軟件生存周
37、期模型是從軟件項目需求定義直至軟軟件生存周期模型是從軟件項目需求定義直至軟件經使用后廢棄為止,跨越整個生存周期的系統開發件經使用后廢棄為止,跨越整個生存周期的系統開發、運行和維護所實施的全部過程、活動和任務的結構、運行和維護所實施的全部過程、活動和任務的結構框架。框架。第30頁/共49頁第三十一頁,編輯于星期二:九點 四十九分。瀑布模型瀑布模型 按照傳統的瀑布模型來開發軟件,有以下按照傳統的瀑布模型來開發軟件,有以下特點特點:1、階段間有順序性和依賴性;、階段間有順序性和依賴性;2、推遲實現的觀點;、推遲實現的觀點;3、質量保證的觀點;、質量保證的觀點;需求分析驗證規格說明驗證設計驗證編碼測試
38、綜合測試維護優點:優點:可強迫開發人員采用規范的方法;嚴格規定可強迫開發人員采用規范的方法;嚴格規定了每個階段必須提交的文檔;要求每個階段了每個階段必須提交的文檔;要求每個階段交出的產品都必須經過質量保證小組的仔細交出的產品都必須經過質量保證小組的仔細驗證驗證。需求分析驗證實線箭頭表示開發過程;虛線箭頭表示維護過程實線箭頭表示開發過程;虛線箭頭表示維護過程。反饋線開發過程維護過程第31頁/共49頁第三十二頁,編輯于星期二:九點 四十九分。 快速原型是快速建立起來的可以在快速原型是快速建立起來的可以在計算機上運行的程序,完成的功能計算機上運行的程序,完成的功能是最終產品能完成功能的一個子集是最終
39、產品能完成功能的一個子集。 快速原型模型不帶反饋環,軟快速原型模型不帶反饋環,軟件開發基本上是線形順序進行的。件開發基本上是線形順序進行的。1、原型系統已經通過與用戶交互得到驗證、原型系統已經通過與用戶交互得到驗證;開發人員在建立原型中學到了許多東西;開發人員在建立原型中學到了許多東西;快速原型驗證規格說明驗證設計驗證編碼測試綜合測試維護變化的需求驗證實線箭頭表示開發過程;虛線箭頭表示維護過程實線箭頭表示開發過程;虛線箭頭表示維護過程。開發過程開發過程維護過程維護過程快速原型模型快速原型模型第32頁/共49頁第三十三頁,編輯于星期二:九點 四十九分。 把軟件產品作為一系列的把軟件產品作為一系列
40、的增量構件增量構件來設計、來設計、編碼、集成和測試。每個構件由多個相互作用的編碼、集成和測試。每個構件由多個相互作用的模塊構成,并能完成特定的功能。每個增量構件模塊構成,并能完成特定的功能。每個增量構件實現軟件的基本需求,提供最核心的功能。應該實現軟件的基本需求,提供最核心的功能。應該使構件的規模適中。使構件的規模適中。 分解的約束條件:當把新構件集成到現有軟件分解的約束條件:當把新構件集成到現有軟件中時,所形成的產品必須是可測試的。中時,所形成的產品必須是可測試的。 分批地逐步向用戶提交產品,每次提交一個分批地逐步向用戶提交產品,每次提交一個滿足用戶需求子集的可運行產品。滿足用戶需求子集的可
41、運行產品。增量模型(漸增模型增量模型(漸增模型) )第33頁/共49頁第三十四頁,編輯于星期二:九點 四十九分。增量模型的優點:增量模型的優點:1、能在較短的時間內向用戶提交可完成一些有用的工作的產品。、能在較短的時間內向用戶提交可完成一些有用的工作的產品。2、逐步增加產品功能可以使用戶有較充裕的時間學習和適應新產品。、逐步增加產品功能可以使用戶有較充裕的時間學習和適應新產品。 需求分析需求分析驗證驗證規格說明規格說明驗證驗證概要設計概要設計驗證驗證針對每個構件,完成詳針對每個構件,完成詳細設計、編碼和集成,細設計、編碼和集成,經測試后交付給用戶經測試后交付給用戶維護維護增量模型增量模型第34
42、頁/共49頁第三十五頁,編輯于星期二:九點 四十九分。規格說規格說明明設計設計交付客戶交付客戶編碼和集成編碼和集成構件構件1:規格說明規格說明設計設計交付客戶交付客戶編碼和集成編碼和集成構件構件2:規格說明規格說明設計設計交付客戶交付客戶編碼和集成編碼和集成構件構件n:風險更大的風險更大的增量模型增量模型第35頁/共49頁第三十六頁,編輯于星期二:九點 四十九分。 軟件開發的風險:軟件開發的風險:1 1、 產品交付用戶之后用戶可能不滿意;產品交付用戶之后用戶可能不滿意;2 2、到交付日期后軟件可能還未開發出來;、到交付日期后軟件可能還未開發出來;3 3、實際開發成本可能超過預算;、實際開發成本
43、可能超過預算;4 4、產品完成之前一些關鍵的開發人員可能、產品完成之前一些關鍵的開發人員可能“跳槽跳槽”了了;5 5、 聘請不到需要的專業人員;聘請不到需要的專業人員; 基本思想:使用原型及其他方法來盡量降低風險基本思想:使用原型及其他方法來盡量降低風險。可看作在每個階段之前都增加了風險分析過程的快。可看作在每個階段之前都增加了風險分析過程的快速原型模型。螺旋線每個周期對應一個開發階段。速原型模型。螺旋線每個周期對應一個開發階段。 螺旋模型螺旋模型第36頁/共49頁第三十七頁,編輯于星期二:九點 四十九分。快速原型快速原型驗證驗證規格說明規格說明驗證驗證設計設計驗證驗證編碼編碼測試測試綜合測試
44、綜合測試維護維護變化的需求變化的需求驗證驗證風險風險分析分析風險風險分析分析風險風險分析分析風險風險分析分析風險風險分析分析風險分析風險分析簡化的螺旋簡化的螺旋模型模型 螺旋模型的基本思想:使用原型及其他方法來盡量降低風險。螺旋模型的基本思想:使用原型及其他方法來盡量降低風險。 簡化的螺旋模型可看作在每個階段都增加了風險分析過程的快速原型模型。簡化的螺旋模型可看作在每個階段都增加了風險分析過程的快速原型模型。第37頁/共49頁第三十八頁,編輯于星期二:九點 四十九分。完整的螺旋完整的螺旋模型模型計劃下一階段確定目標,選擇方案,設定約束條件各步驟的進度風險分析可運行的原型風險風險分析分析風險分析
45、風險分析風險分析原型原型3原型2原型原型1評估方案,識別并排除風險操作操作概念概念詳細設計設計驗證設計驗證與確認與確認軟件產品軟件產品設計設計需求確認軟件需求實現集成與測試集成與測試計劃計劃編碼單元測試集成測試驗收測試開發計劃需求計劃與需求計劃與生命周期計生命周期計劃劃模擬、模型、基準開發驗證下一級產品當前累計的開發費用第38頁/共49頁第三十九頁,編輯于星期二:九點 四十九分。每個階段每個階段開始時開始時(左上象限)的任務是:確(左上象限)的任務是:確定該項目的目標、為完成這些目標選擇方案及設定這定該項目的目標、為完成這些目標選擇方案及設定這些方案的約束條件。些方案的約束條件。接下來接下來的
46、任務是:從風險角度分的任務是:從風險角度分析上步的工作結果,努力排除各種潛在的風險,如析上步的工作結果,努力排除各種潛在的風險,如果風險不能排除,則停止開發工作或大幅度削減項果風險不能排除,則停止開發工作或大幅度削減項目規模。如果成功排除了所有風險,則啟動下一個目規模。如果成功排除了所有風險,則啟動下一個開發步驟(右下象限),這個步驟相當于純粹的瀑開發步驟(右下象限),這個步驟相當于純粹的瀑布模型。布模型。最后最后是評價該階段工作成果并計劃下一階段是評價該階段工作成果并計劃下一階段的工作。的工作。第39頁/共49頁第四十頁,編輯于星期二:九點 四十九分。優點:優點:1、對可選方案和約束條件的強調有利于已、對可選方案和約束條件的強調有利于已有軟件的重用,也有利于把軟件質量作為軟件開發有軟件的重用,也有利于把軟件質量作為軟件開發的一個重要目標;的一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《脂質的代謝》課件
- 紡織機械多元化發展案例試題及答案
- 企業診斷報告課件制作
- 酒店經營管理師優勢與挑戰試題及答案
- 知識結構清晰質量工程師試題及答案
- 焊接工程師資格考試新手指南試題及答案
- 酒店消費趨勢分析研究試題及答案
- 2024年酒店經營管理師考試知識語境試題及答案
- 掌握焊接工程師資格考試的原則與方法試題及答案
- 汽輪機軸封蒸汽系統的認知(熱力發電廠課件)
- 中學生心理危機識別與預防- 班主任技能培訓課件
- 征信查詢委托書(共4篇)
- 銷售談判技巧課件
- PADI開放水域潛水員理論考試A卷
- 無錫黿頭渚課件
- 管道工技師理論知識題庫及答案(完整版)
- golf高爾夫介紹課件
- 物業管理服務品質檢查表
- 六年級下冊第五單元16表里的生物-表里的生物-學習任務單
- JJF 1318-2011 影像測量儀校準規范-(高清現行)
- 高中美術《匠心之用-雕塑藝術》“紀念與象征-空間中的實體藝術”課件
評論
0/150
提交評論