第1章 軟件工程基礎
《第1章 軟件工程基礎》由會員分享,可在線閱讀,更多相關《第1章 軟件工程基礎(64頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章第一章 軟件工程基礎軟件工程基礎 主要內容n計算機系統(tǒng)工程計算機系統(tǒng)工程 n軟件工程軟件工程 n軟件生存期模型軟件生存期模型 n軟件開發(fā)方法軟件開發(fā)方法 n軟件工程環(huán)境軟件工程環(huán)境 軟件與計算機的系統(tǒng)要素之間的關系軟件與計算機的系統(tǒng)要素之間的關系n大多數(shù)軟件系統(tǒng)都是為了開發(fā)滿足某種需求大多數(shù)軟件系統(tǒng)都是為了開發(fā)滿足某種需求而建立。這些軟件必須要而建立。這些軟件必須要計算機系統(tǒng)的支持。的支持。n不論系統(tǒng)的自動化程度有多高,都需要不論系統(tǒng)的自動化程度有多高,都需要人人的的參與。任何系統(tǒng)都必須配備參與。任何系統(tǒng)都必須配備使用手冊使用手冊及必要及必要的表格和其他文檔。在網(wǎng)絡時代的應用系統(tǒng)的表格和
2、其他文檔。在網(wǎng)絡時代的應用系統(tǒng)中,絕大多數(shù)應用系統(tǒng)都離不開中,絕大多數(shù)應用系統(tǒng)都離不開數(shù)據(jù)庫數(shù)據(jù)庫和和網(wǎng)網(wǎng)絡絡這樣的基礎設施。如圖這樣的基礎設施。如圖1.11.1所示。所示。過程輸出輸入文檔硬件軟件人系統(tǒng)系統(tǒng)數(shù)據(jù)庫、網(wǎng)絡圖1.1 基于計算機的系統(tǒng)要素 1.11.1計算機系統(tǒng)工程計算機系統(tǒng)工程 n計算機系統(tǒng)工程:與構造基于計算機系統(tǒng)有關的過:與構造基于計算機系統(tǒng)有關的過程、方法和技術。程、方法和技術。n一種問題求解活動,目的是揭示與分析所期望的功一種問題求解活動,目的是揭示與分析所期望的功能,并把這些功能分配到系統(tǒng)的各個獨立系統(tǒng)元素能,并把這些功能分配到系統(tǒng)的各個獨立系統(tǒng)元素中去。中去。n計算機
3、系統(tǒng)工程師與用戶充分合作,以確認用戶的計算機系統(tǒng)工程師與用戶充分合作,以確認用戶的目標與約束。目標與約束。1.1.11.1.1硬件與硬件工程硬件與硬件工程 n計算機系統(tǒng)工程師根據(jù)系統(tǒng)需求為硬件系統(tǒng)計算機系統(tǒng)工程師根據(jù)系統(tǒng)需求為硬件系統(tǒng)指派任務,產(chǎn)生硬件需求。指派任務,產(chǎn)生硬件需求。n硬件工程師根據(jù)硬件需求設計、制造或選擇硬件工程師根據(jù)硬件需求設計、制造或選擇硬部件或設備。硬部件或設備。n硬件工程過程分為三個階段,即計劃和定義硬件工程過程分為三個階段,即計劃和定義階段;設計和樣機實現(xiàn)階段;生產(chǎn)、銷售和階段;設計和樣機實現(xiàn)階段;生產(chǎn)、銷售和售后服務階段。售后服務階段。硬件功能開發(fā)計劃評審詳細需求分
4、析評審成本進度硬件規(guī)格說明(a)計劃與定義階段 該階段的任務是制訂開發(fā)計劃,確定項目成本預算和該階段的任務是制訂開發(fā)計劃,確定項目成本預算和工程進度,并進行詳細需求分析,確定硬件規(guī)格說明。工程進度,并進行詳細需求分析,確定硬件規(guī)格說明。設計圖紙設計圖紙樣機設 計 分析評審建立樣機與測試評審生產(chǎn)分析(b)設計與樣機實現(xiàn)階段 該階段的任務是分析設計,畫出設計圖,必要時建造原該階段的任務是分析設計,畫出設計圖,必要時建造原型對樣機進行測試,最后進行制造分析,畫出生產(chǎn)圖型對樣機進行測試,最后進行制造分析,畫出生產(chǎn)圖。產(chǎn)品備件制造質 量 保證銷售評審返工維護機構(c)制造、銷售與售后服務階段該階段的任務
5、是按照質量保證計劃和要求生產(chǎn)硬件產(chǎn)品。該階段的任務是按照質量保證計劃和要求生產(chǎn)硬件產(chǎn)品。1.1.21.1.2軟件與軟件工程軟件與軟件工程 n計算機軟件:軟件工程師設計和建造的產(chǎn)品。:軟件工程師設計和建造的產(chǎn)品。包括:包括:可執(zhí)行的程序可執(zhí)行的程序+開發(fā)各階段文檔開發(fā)各階段文檔+各種數(shù)據(jù)。各種數(shù)據(jù)。n軟件工程是研究軟件生產(chǎn)和軟件管理的工程科學。是研究軟件生產(chǎn)和軟件管理的工程科學。內容包括:內容包括:市場調研、正式立項、需求分析、項目策劃、市場調研、正式立項、需求分析、項目策劃、概要設計、詳細設計、編程、測試、試運行、產(chǎn)品發(fā)布、用概要設計、詳細設計、編程、測試、試運行、產(chǎn)品發(fā)布、用戶培訓、產(chǎn)品復制
6、、銷售、實施、系統(tǒng)維護和版本升級等。戶培訓、產(chǎn)品復制、銷售、實施、系統(tǒng)維護和版本升級等。n軟件工程模型一般包括:軟件項目的定義階段、軟軟件工程模型一般包括:軟件項目的定義階段、軟件開發(fā)階段、軟件的檢驗、交付與維護階段件開發(fā)階段、軟件的檢驗、交付與維護階段。原型(a)定義階段軟件項目計劃評審需求分析或原型評審項目計劃需求規(guī)格說明軟件功能原型數(shù)據(jù)與結構設計評審過程設計評審程序編碼評審詳細設計規(guī)格說明概要設計規(guī)格說明源程序代碼(b)開發(fā)階段操作過程(c)檢驗、交付與維護階段(運行維護階段)單元測試組裝測試確認測試調試交付與銷售評審維護評審用戶文檔測試計劃測試過程測試結果修改的源程序代碼因缺陷可能導致
7、返回到前面步驟修改的文檔代碼1.1.31.1.3人機工程人機工程 n關鍵是處理軟件與人的交互問題。關鍵是處理軟件與人的交互問題。n現(xiàn)在現(xiàn)在“人機界面友好人機界面友好”的要求,已成為基于計算機系的要求,已成為基于計算機系統(tǒng)的一項重要技術指標統(tǒng)的一項重要技術指標。n人機工程包括下列步驟:1.1.創(chuàng)建系統(tǒng)功能的外部模型創(chuàng)建系統(tǒng)功能的外部模型 2.2.確定為完成此系統(tǒng)功能人和計算機應分別完成的任務確定為完成此系統(tǒng)功能人和計算機應分別完成的任務 3.3.考慮界面設計中的典型問題考慮界面設計中的典型問題 4.4.借助借助CASECASE工具構造界面原型和最終實現(xiàn)設計模型工具構造界面原型和最終實現(xiàn)設計模型
8、5.5.從質量的角度對界面進行評估從質量的角度對界面進行評估 1.1.41.1.4數(shù)據(jù)庫工程數(shù)據(jù)庫工程 n數(shù)據(jù)庫系統(tǒng)是基于計算機系統(tǒng)的重要組成部數(shù)據(jù)庫系統(tǒng)是基于計算機系統(tǒng)的重要組成部分,它將有關的硬件、軟件、數(shù)據(jù)和數(shù)據(jù)庫分,它將有關的硬件、軟件、數(shù)據(jù)和數(shù)據(jù)庫管理人員結合起來,為用戶提供信息服務。管理人員結合起來,為用戶提供信息服務。n數(shù)據(jù)庫系統(tǒng)的開發(fā)方法主要有:結構化生命數(shù)據(jù)庫系統(tǒng)的開發(fā)方法主要有:結構化生命周期開發(fā)方法、原型法、面向對象的開發(fā)方周期開發(fā)方法、原型法、面向對象的開發(fā)方法等。法等。數(shù)據(jù)庫工程的任務數(shù)據(jù)庫工程的任務n數(shù)據(jù)庫工程應完成下列任務:1.1.確定系統(tǒng)的各項指標并進行評估和計
9、劃制定確定系統(tǒng)的各項指標并進行評估和計劃制定 2.2.論證、選擇和配置數(shù)據(jù)庫系統(tǒng)論證、選擇和配置數(shù)據(jù)庫系統(tǒng) 3.3.數(shù)據(jù)庫設計與實現(xiàn)數(shù)據(jù)庫設計與實現(xiàn) 概念設計(概念設計(E-RE-R圖)、邏輯設計、物理設計圖)、邏輯設計、物理設計4.4.數(shù)據(jù)庫的管理與維護數(shù)據(jù)庫的管理與維護 1.1.51.1.5網(wǎng)絡工程網(wǎng)絡工程 n網(wǎng)絡工程是研究網(wǎng)絡系統(tǒng)的規(guī)劃、設計與網(wǎng)絡工程是研究網(wǎng)絡系統(tǒng)的規(guī)劃、設計與管理的工程科學,要求工程技術人員根據(jù)管理的工程科學,要求工程技術人員根據(jù)既定的目標,嚴格依照行業(yè)規(guī)范,制定網(wǎng)既定的目標,嚴格依照行業(yè)規(guī)范,制定網(wǎng)絡建設的方案,協(xié)助工程招投標、設計、絡建設的方案,協(xié)助工程招投標、設
10、計、實施、管理與維護等活動。實施、管理與維護等活動。網(wǎng)絡工程的任務網(wǎng)絡工程的任務n網(wǎng)絡工程應該完成以下任務:網(wǎng)絡工程應該完成以下任務:1.1.需求分析需求分析。2.2.總體設計分析,總體設計分析,確定該網(wǎng)絡的服務類型,進而確定該網(wǎng)絡的服務類型,進而確定系統(tǒng)建設的具體目標以及系統(tǒng)構件拓撲結確定系統(tǒng)建設的具體目標以及系統(tǒng)構件拓撲結構等。構等。3.實施,即實施,即選擇合適的設備,按設計方案實現(xiàn)網(wǎng)選擇合適的設備,按設計方案實現(xiàn)網(wǎng)絡建設。絡建設。4.驗收與維護驗收與維護。1.21.2軟件工程軟件工程 n1.2.1軟件軟件n1.1.軟件定義軟件定義 (1)(1)在運行中能提供所希望的功能和性在運行中能提供
11、所希望的功能和性能的指令集(即程序);能的指令集(即程序);(2)(2)使程序能夠正確運行的數(shù)據(jù)結構;使程序能夠正確運行的數(shù)據(jù)結構;(3)(3)描述程序研制過程、方法所用的文描述程序研制過程、方法所用的文檔。檔。2.2.軟件的特點軟件的特點 n軟件是一種邏輯實體,不是具體的物理實體,具有軟件是一種邏輯實體,不是具體的物理實體,具有抽象性。抽象性。n軟件是通過人們的智力活動,把知識與技術轉化成軟件是通過人們的智力活動,把知識與技術轉化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。n在軟件的運行和使用期間,沒有硬件那樣的機械磨在軟件的運行和使用期間,
12、沒有硬件那樣的機械磨損、老化問題。損、老化問題。軟件存在故障(錯誤)的原因軟件存在故障(錯誤)的原因n軟件的開發(fā)和運行經(jīng)常受到計算機硬件系統(tǒng)的軟件的開發(fā)和運行經(jīng)常受到計算機硬件系統(tǒng)的限制,軟件對計算機硬件系統(tǒng)有著不同程度的限制,軟件對計算機硬件系統(tǒng)有著不同程度的依賴關系。依賴關系。n軟件的開發(fā)尚未完全擺脫手工的開發(fā)方式。軟件的開發(fā)尚未完全擺脫手工的開發(fā)方式。n軟件的開發(fā)費用越來越高,成本相當昂貴。軟件的開發(fā)費用越來越高,成本相當昂貴。n軟件的開發(fā)是一個復雜的過程,管理是軟件開軟件的開發(fā)是一個復雜的過程,管理是軟件開發(fā)過程中必不可少內容。發(fā)過程中必不可少內容。1.2.21.2.2軟件工程的概念軟
13、件工程的概念 軟件發(fā)展的四個階段1.1950s1960s中:規(guī)模較小的程序,個體化的軟件開規(guī)模較小的程序,個體化的軟件開發(fā),只有程序清單。發(fā),只有程序清單。程序設計階段程序設計階段2.1960s中1970中:“軟件作坊軟件作坊”,廣泛使用產(chǎn)品軟,廣泛使用產(chǎn)品軟件。件。程序系統(tǒng)階段程序系統(tǒng)階段3.1970中 1980s:微處理器的出現(xiàn)并廣泛應用。分布微處理器的出現(xiàn)并廣泛應用。分布式系統(tǒng)、嵌入智能。式系統(tǒng)、嵌入智能。進入軟件工程階段進入軟件工程階段4.1980s:網(wǎng)絡迅速普及網(wǎng)絡迅速普及,強大的桌面系統(tǒng)、面向對象技術、強大的桌面系統(tǒng)、面向對象技術、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡、并行計算、網(wǎng)格計算、
14、虛擬專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡、并行計算、網(wǎng)格計算、虛擬組織。組織。軟件發(fā)展過程中存在的問題軟件發(fā)展過程中存在的問題 軟件開發(fā)能力不能滿足人們的需要;軟件開發(fā)能力不能滿足人們的需要;社會對軟件的依賴程度加大,人們普遍關注軟件的社會對軟件的依賴程度加大,人們普遍關注軟件的安全和可靠性;安全和可靠性;若干年前開發(fā)的應用軟件經(jīng)過幾十次修改已無人認若干年前開發(fā)的應用軟件經(jīng)過幾十次修改已無人認識它的內部結構,己經(jīng)不可維護;識它的內部結構,己經(jīng)不可維護;由于經(jīng)濟原因由于經(jīng)濟原因,嵌入式系統(tǒng)存在許多怪現(xiàn)象,企業(yè)嵌入式系統(tǒng)存在許多怪現(xiàn)象,企業(yè)不愿意投入資源再生產(chǎn),而采取打補丁不愿意投入資源再生產(chǎn),而采取打補
15、丁+時髦界面時髦界面的方法。的方法。1.1.軟件危機軟件危機 軟件危機軟件危機是指在計算機軟件的是指在計算機軟件的開發(fā)和維護過程開發(fā)和維護過程中所遇中所遇到的一系列嚴重問題。到的一系列嚴重問題。典型表現(xiàn):典型表現(xiàn):n 開發(fā)成本和進度的估計常常很不準確;開發(fā)成本和進度的估計常常很不準確;n 用戶對用戶對“已完成的已完成的”軟件系統(tǒng)不滿意;軟件系統(tǒng)不滿意;“閉門造閉門造車車”;n 軟件質量不可靠;軟件質量不可靠;n 軟件常常是不可維護的;軟件常常是不可維護的;n 軟件成本的比例逐年上升;軟件成本的比例逐年上升;n 軟件產(chǎn)品軟件產(chǎn)品“供不應求供不應求”;2.2.消除軟件危機的途徑消除軟件危機的途徑
16、消除消除“軟件就是程序軟件就是程序”的錯誤觀念。的錯誤觀念。一個軟件必須由一個完整的配置組成,事實上,一個軟件必須由一個完整的配置組成,事實上,軟件是軟件是程序、數(shù)據(jù)及相關文檔的完整集合。程序、數(shù)據(jù)及相關文檔的完整集合。軟件開發(fā)不是某種個體勞動的神秘技巧,而應該軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的共同完成的工程項目。工程項目。成功的軟件開發(fā)技術和方法。成功的軟件開發(fā)技術和方法。軟件工具和軟件工程支撐環(huán)境。軟件工具和軟件工程支撐環(huán)境。3.3.軟件工程的定義軟件工程的定義 n1968年在聯(lián)邦德國
17、召開的年在聯(lián)邦德國召開的計算機國際會議計算機國際會議NATOn軟件危機軟件危機根源根源解決途徑解決途徑軟件工程軟件工程n“概括地說,概括地說,軟件工程是指導計算機軟件開發(fā)和是指導計算機軟件開發(fā)和維護的一門工程學科。采用維護的一門工程學科。采用工程的概念、原理、的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的而證明正確的管理技術和當前能夠得到的最好的和當前能夠得到的最好的技術方法結合起來,以技術方法結合起來,以經(jīng)濟地開發(fā)出高質量的軟件并有效地維護它?!?.4.軟件工程的目標軟件工程的目標 n軟件工程的目標是明確的,就是研制、開發(fā)軟件工
18、程的目標是明確的,就是研制、開發(fā)與生產(chǎn)出具有良好軟件質量和費用合算的產(chǎn)與生產(chǎn)出具有良好軟件質量和費用合算的產(chǎn)品品。1)1)采用工程化方法和途徑來開發(fā)與維護軟件。采用工程化方法和途徑來開發(fā)與維護軟件。2)2)應該開發(fā)和使用更好的軟件工具。應該開發(fā)和使用更好的軟件工具。3)3)采取必要的管理措施。采取必要的管理措施。5.5.軟件工程的基本原則軟件工程的基本原則1.1.用分階段的生命周期計劃嚴格管理用分階段的生命周期計劃嚴格管理2.2.堅持進行階段評審堅持進行階段評審錯誤出現(xiàn)的時間:在編代碼之前(設計錯誤占錯誤出現(xiàn)的時間:在編代碼之前(設計錯誤占63%63%:編碼占:編碼占37%37%)改正錯誤的代
19、價:發(fā)現(xiàn)得越晚,開發(fā)代價越高改正錯誤的代價:發(fā)現(xiàn)得越晚,開發(fā)代價越高3.3.實行嚴格的產(chǎn)品控制實行嚴格的產(chǎn)品控制n基線配置(經(jīng)階段評審后的軟件配置)、變動控制(要嚴格評審才基線配置(經(jīng)階段評審后的軟件配置)、變動控制(要嚴格評審才能修改)能修改)4.4.采用現(xiàn)代程序設計技術采用現(xiàn)代程序設計技術5.5.結果應能清楚地審查結果應能清楚地審查6.6.開發(fā)小組的人員應該少而精開發(fā)小組的人員應該少而精7.7.承認不斷改進軟件工程實踐的必要性承認不斷改進軟件工程實踐的必要性6.6.軟件工程研究的基本內容軟件工程研究的基本內容 n軟件工程學分為:理論與結構、方法、工具與環(huán)境、軟件工程學分為:理論與結構、方法
20、、工具與環(huán)境、管理和規(guī)范等。管理和規(guī)范等。n理論與結構包括:程序正確性證明理論、軟件可靠理論與結構包括:程序正確性證明理論、軟件可靠性理論、軟件成本估算模型、軟件開發(fā)模型、模塊性理論、軟件成本估算模型、軟件開發(fā)模型、模塊劃分原理等。劃分原理等。n軟件開發(fā)技術包括:軟件開發(fā)方法學、軟件工具和軟件開發(fā)技術包括:軟件開發(fā)方法學、軟件工具和軟件開發(fā)環(huán)境。軟件開發(fā)環(huán)境。n軟件工程管理包括:軟件開發(fā)管理和軟件經(jīng)濟管理軟件工程管理包括:軟件開發(fā)管理和軟件經(jīng)濟管理。1.2.31.2.3軟件生命周期軟件生命周期 v軟件生存周期就是從提出軟件產(chǎn)品開始,直到該就是從提出軟件產(chǎn)品開始,直到該軟件產(chǎn)品被淘汰的全過程軟件
21、產(chǎn)品被淘汰的全過程。v我國軟件工程標準將軟件生命周期分成以下幾個我國軟件工程標準將軟件生命周期分成以下幾個階段:階段:n軟件定義:確定軟件開發(fā)總目標;確定工程的可行性;確定軟件開發(fā)總目標;確定工程的可行性;導出實現(xiàn)策略及系統(tǒng)功能;估計資源和成本,并且制定導出實現(xiàn)策略及系統(tǒng)功能;估計資源和成本,并且制定工程進度表。工程進度表。n問題定義、可行性研究、需求分析問題定義、可行性研究、需求分析n軟件開發(fā):具體設計和實現(xiàn)在前一個時期定義的軟件具體設計和實現(xiàn)在前一個時期定義的軟件n總體設計、詳細設計、編碼和單元測試、綜合測試總體設計、詳細設計、編碼和單元測試、綜合測試n軟件維護:使軟件持久地滿足用戶的需要
22、。使軟件持久地滿足用戶的需要。軟件生命周期軟件生命周期(續(xù)續(xù)1)1)1.1.問題定義問題定義 “要解決的問題是什么要解決的問題是什么?”?”確定用戶要求解決的性質、工程的目標和規(guī)模。確定用戶要求解決的性質、工程的目標和規(guī)模。2.2.可行性研究可行性研究 “對于上一個階段所確定的問題有行得通的解決辦法嗎對于上一個階段所確定的問題有行得通的解決辦法嗎?”?”經(jīng)濟可行性、技術可行性、法律可行性、不同的方案經(jīng)濟可行性、技術可行性、法律可行性、不同的方案3.3.需求分析需求分析 “為了解決這個問題,目標系統(tǒng)必須做什么為了解決這個問題,目標系統(tǒng)必須做什么”確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運行環(huán)境,
23、并且確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運行環(huán)境,并且預測系統(tǒng)發(fā)展的前景。預測系統(tǒng)發(fā)展的前景。規(guī)格說明書規(guī)格說明書(specification)(specification)軟件生命周期軟件生命周期(續(xù)續(xù)2)2)4.總體設計(概要設計)總體設計(概要設計)n “概括地說,應該怎樣實現(xiàn)目標系統(tǒng)概括地說,應該怎樣實現(xiàn)目標系統(tǒng)?”n 設計出實現(xiàn)目標系統(tǒng)的幾種可能的方案。推薦一個最佳方案。設計出實現(xiàn)目標系統(tǒng)的幾種可能的方案。推薦一個最佳方案。5.詳細設計詳細設計n “應該怎樣具體地實現(xiàn)這個系統(tǒng)呢應該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”n 設計出程序的詳細規(guī)格說明。設計出程序的詳細規(guī)格說明。6.編碼和單元測
24、試編碼和單元測試n 寫出正確的容易理解、容易維護的程序模塊寫出正確的容易理解、容易維護的程序模塊n 仔細測試編寫出的每一個模塊。仔細測試編寫出的每一個模塊。7.綜合測試綜合測試n 集成測試和驗收測試,現(xiàn)場測試或平行運行集成測試和驗收測試,現(xiàn)場測試或平行運行8.軟件維護軟件維護 使系統(tǒng)持久地滿足用戶的需要。使系統(tǒng)持久地滿足用戶的需要。改正性維護,適應性維護,完善性維護,預防性維護。改正性維護,適應性維護,完善性維護,預防性維護。1.31.3軟件生存期模型軟件生存期模型 n軟件生存期模型反映軟件生存周期內各種工作應如軟件生存期模型反映軟件生存周期內各種工作應如何組織及,以及各個階段應如何銜接。何組
25、織及,以及各個階段應如何銜接。n軟件生存期模型是跨越整個軟件生存周期的系統(tǒng)開軟件生存期模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運作、維護所實施的全部工作和任務的結構框發(fā)、運作、維護所實施的全部工作和任務的結構框架。架。n常用的軟件生存期模型有:瀑布模型、原型模型、常用的軟件生存期模型有:瀑布模型、原型模型、螺旋模型、基于四代技術模型、噴泉模型和增量模螺旋模型、基于四代技術模型、噴泉模型和增量模型。型。1.3.21.3.2瀑布模型瀑布模型(Waterfall model)n瀑布模型又稱生存周期模型,由瀑布模型又稱生存周期模型,由B.M.Boehm提出,提出,是軟件工程的基礎模型。是軟件工程的基礎模
26、型。理想的瀑布模型理想的瀑布模型實際的瀑布模型實際的瀑布模型瀑布模型的特點瀑布模型的特點1.階段間具有順序性和依賴性n各個階段如同瀑布流水,逐級下落,自上而下、相互銜接的固定次序。2.推遲實現(xiàn)的觀點n清楚地區(qū)分邏輯設計與物理設計,盡可能推遲程序的物理實現(xiàn)。3.質量保證的觀點(文檔驅動)n每個階段都必須完成規(guī)定的文檔n每個階段結束前都要對所完成的文檔進行評審瀑布模型的缺點瀑布模型的缺點模型缺乏靈活性。模型缺乏靈活性。開發(fā)過程一般不能逆轉,否則代價太大開發(fā)過程一般不能逆轉,否則代價太大規(guī)格說明很難理解:規(guī)格說明很難理解:“我知道這是按我我知道這是按我的要求做的,但不是我想要的樣子。的要求做的,但不
27、是我想要的樣子?!避浖膶嶋H情況必須到項目開發(fā)的后期軟件的實際情況必須到項目開發(fā)的后期客戶才能看到。(客戶才能看到。(文檔驅動的兩面性文檔驅動的兩面性)1.3.3 1.3.3 快速原型模型快速原型模型 快速建立起來的可以在計算機上運行的程序,它所能完快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。成的功能往往是最終產(chǎn)品能完成的功能的一個子集。用戶測試用戶測試運行原型運行原型建造建造/修改修改 原型原型 聽取用聽取用 戶意見戶意見1.1.快速原型模型的優(yōu)點快速原型模型的優(yōu)點快速原型的本質是快速原型的本質是“快速快速”,主要幫助建立正確的,主要幫助建立
28、正確的規(guī)規(guī)格說明。格說明。原型模型給用戶以機會,更改心中原先設想的、不原型模型給用戶以機會,更改心中原先設想的、不盡合理的最終系統(tǒng)。盡合理的最終系統(tǒng)。原型模型可以低風險開發(fā)柔性較大的計算機系統(tǒng)。原型模型可以低風險開發(fā)柔性較大的計算機系統(tǒng)。原型模型使系統(tǒng)更易維護,生成對用戶更友好的最原型模型使系統(tǒng)更易維護,生成對用戶更友好的最終系統(tǒng)。終系統(tǒng)。原型模型使總的開發(fā)費用降低,開發(fā)時間縮短。原型模型使總的開發(fā)費用降低,開發(fā)時間縮短。有利于開發(fā)與培訓的同步有利于開發(fā)與培訓的同步2.2.缺點缺點 對于開發(fā)者不熟悉的領域,可能會把次要部分當作對于開發(fā)者不熟悉的領域,可能會把次要部分當作主要框架,從而做出不切題
29、的原型。主要框架,從而做出不切題的原型。原型迭代不收斂于開發(fā)者預先定義的目標。原型迭代不收斂于開發(fā)者預先定義的目標。原型過快收斂于需求集合,而忽略了一些基本點。原型過快收斂于需求集合,而忽略了一些基本點。資源規(guī)劃和管理較為困難,隨時更新文檔也帶來麻資源規(guī)劃和管理較為困難,隨時更新文檔也帶來麻煩。煩。長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,容易容易“遺忘遺忘”用戶環(huán)境和原型環(huán)境的差異。用戶環(huán)境和原型環(huán)境的差異。3.3.原型模型的應用范圍原型模型的應用范圍對所開發(fā)的領域比較熟悉而且有快速的原型開發(fā)工具對所開發(fā)的領域比較熟悉而且有快速的原型開發(fā)工具項目
30、招投標時,可以以原型模型作為軟件的開發(fā)模型項目招投標時,可以以原型模型作為軟件的開發(fā)模型進行產(chǎn)品移植或升級時,或對已有產(chǎn)品原型進行客戶進行產(chǎn)品移植或升級時,或對已有產(chǎn)品原型進行客戶化工作時,原型模型是非常適合的化工作時,原型模型是非常適合的原型模型不適用嵌入式軟件、實時控制軟件、數(shù)值計原型模型不適用嵌入式軟件、實時控制軟件、數(shù)值計算軟件算軟件比較比較 瀑布模型瀑布模型試圖一次就獲得正確的產(chǎn)品試圖一次就獲得正確的產(chǎn)品 快速原型快速原型頻繁變化,然后廢棄頻繁變化,然后廢棄1.3.41.3.4螺旋模型螺旋模型 n1988年,年,Barry Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的正式發(fā)表了軟件系統(tǒng)開發(fā)的“
31、螺旋螺旋模型模型”,它將瀑布模型和快速原型模型結合起來,強調了其,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的他模型所忽視的風險分析。n該模型通常用來指導大型軟件項目的開發(fā),它將開發(fā)劃分為該模型通常用來指導大型軟件項目的開發(fā),它將開發(fā)劃分為制訂計劃、風險分析、實施開發(fā)和客戶評估四類活動。制訂計劃、風險分析、實施開發(fā)和客戶評估四類活動。簡化版本:瀑布模型簡化版本:瀑布模型+風險分析風險分析 每個階段之前每個階段之前-確定目標,可供選擇的辦法及其限制條件確定目標,可供選擇的辦法及其限制條件-風險分析風險分析 每個階段之后每個階段之后-評估評估-計劃下一階段計劃下一階段簡化的螺旋模型簡
32、化的螺旋模型完整的螺旋模型完整的螺旋模型 螺旋模型的優(yōu)點容易確定什么時候已經(jīng)對某一階段的產(chǎn)品充分測試完畢容易確定什么時候已經(jīng)對某一階段的產(chǎn)品充分測試完畢維護和開發(fā)之間沒有什么本質上的差別維護和開發(fā)之間沒有什么本質上的差別 螺旋模型的缺點僅適合于大型軟件僅適合于大型軟件 風險驅動既是優(yōu)點也是缺點風險驅動既是優(yōu)點也是缺點1.3.51.3.5基于四代技術模型基于四代技術模型n軟件工程的第四代技術(軟件工程的第四代技術(4GT)包含一系列的軟件)包含一系列的軟件工具。工具。n共同點:使軟件設計者在較高級別上說明軟件的某些特征;使軟件設計者在較高級別上說明軟件的某些特征;軟件工具根據(jù)說明,自動生成源代碼
33、。軟件工具根據(jù)說明,自動生成源代碼。n支持第四代技術模型的軟件開發(fā)環(huán)境和工具要求較支持第四代技術模型的軟件開發(fā)環(huán)境和工具要求較高,高,例如數(shù)據(jù)庫查詢的非過程語言、報告生成器、數(shù)據(jù)操縱、屏幕交例如數(shù)據(jù)庫查詢的非過程語言、報告生成器、數(shù)據(jù)操縱、屏幕交互及定義、以及代碼生成;高級圖形功能;電子表格功能。互及定義、以及代碼生成;高級圖形功能;電子表格功能。n優(yōu)點:極大地降低了軟件的開發(fā)時間,并顯著極大地降低了軟件的開發(fā)時間,并顯著提高了構造軟件的生產(chǎn)率。提高了構造軟件的生產(chǎn)率。n缺點:目前目前4GT并不比程序設計語言更容易使并不比程序設計語言更容易使用,而且這類工具生成的結果源代碼是用,而且這類工具生
34、成的結果源代碼是“低效低效的的”,使用,使用4GT開發(fā)的大型軟件系統(tǒng)的可維護開發(fā)的大型軟件系統(tǒng)的可維護性令人懷疑的。性令人懷疑的。1.3.61.3.6噴泉模型噴泉模型 n在面向對象方法中,提出了與瀑布模型相對應的噴在面向對象方法中,提出了與瀑布模型相對應的噴泉模型,該模型的主要特點是認為軟件生命周期的泉模型,該模型的主要特點是認為軟件生命周期的各個階段是相互重疊和多次反復的各個階段是相互重疊和多次反復的。n噴泉模型主要支持面向對象的開發(fā)方法。系統(tǒng)某個噴泉模型主要支持面向對象的開發(fā)方法。系統(tǒng)某個部分常常重復工作多次,相關功能在每次迭代中隨部分常常重復工作多次,相關功能在每次迭代中隨之加入演進的系
35、統(tǒng)。之加入演進的系統(tǒng)。n在開發(fā)活動,即分析、設計和編碼之間不存在明顯在開發(fā)活動,即分析、設計和編碼之間不存在明顯的邊界。的邊界。圖1.9 噴泉模型 1.3.71.3.7增量模型增量模型 也稱:漸增模型也稱:漸增模型把軟件產(chǎn)品作為一系列增量構件來設計、編碼、集成和測試。把軟件產(chǎn)品作為一系列增量構件來設計、編碼、集成和測試。瀑布模型和快速原型模型的目標交付給客戶一個完整的、可用的產(chǎn)品交付給客戶一個完整的、可用的產(chǎn)品增量模型的優(yōu)點每個階段交付一個可用的產(chǎn)品每個階段交付一個可用的產(chǎn)品減少一個全新產(chǎn)品給客戶帶來的心理上的影響減少一個全新產(chǎn)品給客戶帶來的心理上的影響分階段地交付產(chǎn)品不需要大的資金支出分階段
36、地交付產(chǎn)品不需要大的資金支出需求經(jīng)常變化,增量模型的靈活性使其具有更加優(yōu)越需求經(jīng)常變化,增量模型的靈活性使其具有更加優(yōu)越的適用性的適用性增量模型的困難需要一個開放的結構,方便構件的加入需要一個開放的結構,方便構件的加入增量模型本身就是一個矛盾的名詞增量模型本身就是一個矛盾的名詞1.41.4軟件開發(fā)方法軟件開發(fā)方法 n結構化方法結構化方法n面向數(shù)據(jù)結構方法面向數(shù)據(jù)結構方法 n面向對象方法面向對象方法 n原型法原型法 1.4.11.4.1結構化方法結構化方法n結構是指系統(tǒng)內各組成要素之間的相互聯(lián)系、是指系統(tǒng)內各組成要素之間的相互聯(lián)系、相互作用的框架。相互作用的框架。n結構化方法:強調結構的合理性,
37、以及所開發(fā)強調結構的合理性,以及所開發(fā)軟件的結構合理性,由此提出了一組提高軟軟件的結構合理性,由此提出了一組提高軟件結構合理性的準則,如分解和抽象、模塊件結構合理性的準則,如分解和抽象、模塊的獨立性、信息隱蔽等。的獨立性、信息隱蔽等。n針對不同的開發(fā)活動,有結構化分析、結構針對不同的開發(fā)活動,有結構化分析、結構化設計、結構化編程和結構化測試等。化設計、結構化編程和結構化測試等。結構化分析方法結構化分析方法n結構化分析方法給出一組幫助系統(tǒng)分析人員結構化分析方法給出一組幫助系統(tǒng)分析人員產(chǎn)生功能規(guī)約的原理和技術。產(chǎn)生功能規(guī)約的原理和技術。n利用圖形表示用戶需求,以數(shù)據(jù)流圖和控制利用圖形表示用戶需求,
38、以數(shù)據(jù)流圖和控制流圖為基礎,伴以數(shù)據(jù)詞典,并配上結構化流圖為基礎,伴以數(shù)據(jù)詞典,并配上結構化語言、判定表和判定樹等等描述手段,從而語言、判定表和判定樹等等描述手段,從而達到為解決問題而建立模型。達到為解決問題而建立模型。結構化分析的步驟結構化分析的步驟n結構化分析的步驟如下:結構化分析的步驟如下:(1)進行系統(tǒng)分析,做出反映當前物理模型的數(shù)據(jù)流圖;)進行系統(tǒng)分析,做出反映當前物理模型的數(shù)據(jù)流圖;(2)推導出等價的邏輯模型的數(shù)據(jù)流圖;)推導出等價的邏輯模型的數(shù)據(jù)流圖;(3)設計新的邏輯系統(tǒng),生成數(shù)據(jù)詞典描述;)設計新的邏輯系統(tǒng),生成數(shù)據(jù)詞典描述;(4)建立人機接口界面,提出可供選擇的目標系統(tǒng)的物
39、理模)建立人機接口界面,提出可供選擇的目標系統(tǒng)的物理模型數(shù)據(jù)流圖;型數(shù)據(jù)流圖;(5)確定各種方案的成本和風險等級,據(jù)此對各種方案進行)確定各種方案的成本和風險等級,據(jù)此對各種方案進行分析;分析;(6)選擇一種方案;)選擇一種方案;(7)建立完整的需求規(guī)約。)建立完整的需求規(guī)約。結構化設計結構化設計n結構化設計通常與結構化分析銜接起來使用,以數(shù)據(jù)流圖為結構化設計通常與結構化分析銜接起來使用,以數(shù)據(jù)流圖為基礎,得到軟件模塊結構?;A,得到軟件模塊結構。n結構化設計的步驟如下:(1)評審和細化數(shù)據(jù)流圖;)評審和細化數(shù)據(jù)流圖;(2)確定數(shù)據(jù)流圖的類型;)確定數(shù)據(jù)流圖的類型;(3)把數(shù)據(jù)流圖映射到軟件模
40、塊結構,設計出模塊結構的上)把數(shù)據(jù)流圖映射到軟件模塊結構,設計出模塊結構的上層;層;(4)基于數(shù)據(jù)流圖逐步分解高層模塊,設計中下層模塊;)基于數(shù)據(jù)流圖逐步分解高層模塊,設計中下層模塊;(5)對軟件模塊結構進行優(yōu)化,得到更為合理的軟件結構;)對軟件模塊結構進行優(yōu)化,得到更為合理的軟件結構;(6)描述模塊接口。)描述模塊接口。1.4.21.4.2面向數(shù)據(jù)結構方法面向數(shù)據(jù)結構方法n面向數(shù)據(jù)結構方法是結構化方法的變形,它面向數(shù)據(jù)結構方法是結構化方法的變形,它著重數(shù)據(jù)結構而不是數(shù)據(jù)流。著重數(shù)據(jù)結構而不是數(shù)據(jù)流。n結構化方法:以分析信息流為主,用數(shù)據(jù)流以分析信息流為主,用數(shù)據(jù)流圖來表示信息流;圖來表示信息
41、流;n面向數(shù)據(jù)結構方法:從分析數(shù)據(jù)結構入手,從分析數(shù)據(jù)結構入手,即分析信息結構,并用數(shù)據(jù)結構圖來表示,即分析信息結構,并用數(shù)據(jù)結構圖來表示,再在此基礎上進行需求分析,導出軟件的結再在此基礎上進行需求分析,導出軟件的結構。構。n面向數(shù)據(jù)結構方法面向數(shù)據(jù)結構方法:Warmer法、法、Jackson法以及法以及DSSD(數(shù)據(jù)結構系統(tǒng)開發(fā))方法等。(數(shù)據(jù)結構系統(tǒng)開發(fā))方法等。n面向數(shù)據(jù)結構的開發(fā)方法包括:分析和設計活動。面向數(shù)據(jù)結構的開發(fā)方法包括:分析和設計活動。nJackson方法實例:把系統(tǒng)開發(fā)分為方法實例:把系統(tǒng)開發(fā)分為描述和和實現(xiàn)兩兩個階段。個階段。n描述階段建立一個與系統(tǒng)相關的客觀世界的模型
42、,描述階段建立一個與系統(tǒng)相關的客觀世界的模型,并在此基礎上確定系統(tǒng)功能。實現(xiàn)階段在具體的計并在此基礎上確定系統(tǒng)功能。實現(xiàn)階段在具體的計算機軟硬件環(huán)境下,實現(xiàn)系統(tǒng)功能。算機軟硬件環(huán)境下,實現(xiàn)系統(tǒng)功能。1.4.31.4.3面向對象方法面向對象方法n起源起源:面向對象編程語言面向對象編程語言 nOOP(面向對象編程)(面向對象編程)-OOD(面向對象設計)(面向對象設計)+OOA(面向(面向對象分析)對象分析)-OMT(對象建模技術)對象建模技術)和和UML(統(tǒng)一建模語言:面(統(tǒng)一建模語言:面向對象的軟件開發(fā)方法)向對象的軟件開發(fā)方法)n面向對象方法的開發(fā)步驟:1)從問題陳述入手,構造系統(tǒng)模型(對象
43、模型)從問題陳述入手,構造系統(tǒng)模型(對象模型,再導出動態(tài)模型和功能模型)。再導出動態(tài)模型和功能模型)。2)逐層分解成各級子系統(tǒng)。)逐層分解成各級子系統(tǒng)。1.4.41.4.4原型法原型法n原型法首先構造一個功能簡單的原型系統(tǒng),然后通原型法首先構造一個功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的軟件系統(tǒng)。軟件系統(tǒng)。n原型法的主要優(yōu)點:原型法的主要優(yōu)點:1)一種支持用戶的方法,使得用戶在系統(tǒng)生存周期)一種支持用戶的方法,使得用戶在系統(tǒng)生存周期的設計階段起到積極的作用;的設計階段起到積極的作用;2)它能減少系統(tǒng)開發(fā)的風險,特別是在大
44、型項目的)它能減少系統(tǒng)開發(fā)的風險,特別是在大型項目的開發(fā)中,由于對項目需求的分析難以一次完成,應開發(fā)中,由于對項目需求的分析難以一次完成,應用原型法效果更為明顯。用原型法效果更為明顯。1.51.5軟件工程環(huán)境軟件工程環(huán)境n軟件工程環(huán)境是軟件工程學的組成部分,也軟件工程環(huán)境是軟件工程學的組成部分,也是實現(xiàn)軟件生產(chǎn)工程化的重要基礎。是實現(xiàn)軟件生產(chǎn)工程化的重要基礎。n軟件工程環(huán)境的定義 “軟件工程環(huán)境是一組方法、過程及計算軟件工程環(huán)境是一組方法、過程及計算機程序的整體化構建,支持從需求定義、程機程序的整體化構建,支持從需求定義、程序生成直到維護的整個軟件生存期序生成直到維護的整個軟件生存期”。美國國
45、防部的定義美國國防部的定義 n軟件工程環(huán)境是相關的一組軟件工具的集軟件工程環(huán)境是相關的一組軟件工具的集合,支持一定的軟件開發(fā)方法或按照一定合,支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成。的軟件開發(fā)模型組織而成。n軟件工程環(huán)境支持應用軟件的全部或部分軟件工程環(huán)境支持應用軟件的全部或部分自動生產(chǎn)過程,大大提高了軟件的生產(chǎn)率,自動生產(chǎn)過程,大大提高了軟件的生產(chǎn)率,降低了軟件的成本,改善了軟件的質量。降低了軟件的成本,改善了軟件的質量。n現(xiàn)普遍用現(xiàn)普遍用CASE一詞來描述軟件工程環(huán)境。一詞來描述軟件工程環(huán)境。1.5.2 1.5.2 軟件軟件工程工程環(huán)境的特點環(huán)境的特點n一個理想的軟件工程環(huán)境:支持開發(fā)支持開發(fā)+支持管理的支持管理的工具。工具。n軟件開發(fā)環(huán)境的特點1.數(shù)據(jù)庫數(shù)據(jù)庫 2.軟件工具的集成軟件工具的集成3.友好的用戶界面友好的用戶界面 4.信息提取的能力信息提取的能力 5.分析能力分析能力 6.可裁減性和可擴充性可裁減性和可擴充性 7.項目控制和管理項目控制和管理 8.方法學的支持方法學的支持 演講完畢,謝謝觀看!
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。