《軟件工程基礎》全套PPT課件
《軟件工程基礎》全套PPT課件,軟件工程基礎,軟件工程,基礎,全套,PPT,課件
1.1 軟件與軟件危機軟件的作用軟件的作用具有具有產(chǎn)品產(chǎn)品和和產(chǎn)品生產(chǎn)載體產(chǎn)品生產(chǎn)載體的雙重作用。的雙重作用。(1)作為產(chǎn)品,軟件顯示了由計算機硬件體現(xiàn)的計作為產(chǎn)品,軟件顯示了由計算機硬件體現(xiàn)的計算能力,扮演著信息轉換的角色:產(chǎn)生、管理、算能力,扮演著信息轉換的角色:產(chǎn)生、管理、查詢、修改、顯示或者傳遞各種不同的信息。查詢、修改、顯示或者傳遞各種不同的信息。(2)作為產(chǎn)品生產(chǎn)的載體,軟件提供了計算機控制作為產(chǎn)品生產(chǎn)的載體,軟件提供了計算機控制(操作系統(tǒng))、信息通信(網(wǎng)絡),以及應用(操作系統(tǒng))、信息通信(網(wǎng)絡),以及應用程序開發(fā)和控制的基礎平臺(軟件工具和環(huán)境)程序開發(fā)和控制的基礎平臺(軟件工具和環(huán)境)。1.1 軟件與軟件危機軟件的概念軟件的概念 雖然軟件對于現(xiàn)代的人并不陌生,但很多人對于雖然軟件對于現(xiàn)代的人并不陌生,但很多人對于軟件的理解并不準確,軟件的理解并不準確,“軟件就是程序,軟件開軟件就是程序,軟件開發(fā)就是編程序發(fā)就是編程序”的這種錯誤觀點仍然存在。的這種錯誤觀點仍然存在。什么是軟件?1.1 軟件與軟件危機軟件軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是計算機系統(tǒng)中與硬件相互依存的另一部分,是計算機系統(tǒng)中與硬件相互依存的另一部分,是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關文檔的完整集合。它是包括程序,數(shù)據(jù)及其相關文檔的完整集合。它是包括程序,數(shù)據(jù)及其相關文檔的完整集合。它是包括程序,數(shù)據(jù)及其相關文檔的完整集合。程序程序是按事先設計的功能和性能要求執(zhí)行的指令序是按事先設計的功能和性能要求執(zhí)行的指令序是按事先設計的功能和性能要求執(zhí)行的指令序是按事先設計的功能和性能要求執(zhí)行的指令序列。列。列。列。數(shù)據(jù)數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構。是使程序能正常操縱信息的數(shù)據(jù)結構。是使程序能正常操縱信息的數(shù)據(jù)結構。是使程序能正常操縱信息的數(shù)據(jù)結構。文檔文檔是與程序開發(fā),維護和使用有關的圖文材料。是與程序開發(fā),維護和使用有關的圖文材料。是與程序開發(fā),維護和使用有關的圖文材料。是與程序開發(fā),維護和使用有關的圖文材料。1.1 軟件與軟件危機軟件的特性軟件的特性(1)(1)形態(tài)特性形態(tài)特性形態(tài)特性形態(tài)特性:軟件是無形的、不可見的邏輯實體。軟件是無形的、不可見的邏輯實體。軟件是無形的、不可見的邏輯實體。軟件是無形的、不可見的邏輯實體。度量常規(guī)產(chǎn)品的幾何尺寸、物理性質和化學成分度量常規(guī)產(chǎn)品的幾何尺寸、物理性質和化學成分度量常規(guī)產(chǎn)品的幾何尺寸、物理性質和化學成分度量常規(guī)產(chǎn)品的幾何尺寸、物理性質和化學成分對它卻是毫無意義的。對它卻是毫無意義的。對它卻是毫無意義的。對它卻是毫無意義的。(2)(2)智能特性智能特性智能特性智能特性:軟件是復雜的智力產(chǎn)品,它的開:軟件是復雜的智力產(chǎn)品,它的開:軟件是復雜的智力產(chǎn)品,它的開:軟件是復雜的智力產(chǎn)品,它的開發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了知識實踐經(jīng)驗和人類的智慧,具有一定的智能。知識實踐經(jīng)驗和人類的智慧,具有一定的智能。知識實踐經(jīng)驗和人類的智慧,具有一定的智能。知識實踐經(jīng)驗和人類的智慧,具有一定的智能。它可以幫助我們解決復雜的計算、分析、判斷和它可以幫助我們解決復雜的計算、分析、判斷和它可以幫助我們解決復雜的計算、分析、判斷和它可以幫助我們解決復雜的計算、分析、判斷和決策問題。決策問題。決策問題。決策問題。(3)(3)開發(fā)特性開發(fā)特性開發(fā)特性開發(fā)特性:盡管已經(jīng)有了一些工具(也是軟件)盡管已經(jīng)有了一些工具(也是軟件)盡管已經(jīng)有了一些工具(也是軟件)盡管已經(jīng)有了一些工具(也是軟件)來輔助軟件開發(fā)工作,但到目前為止尚未實現(xiàn)自來輔助軟件開發(fā)工作,但到目前為止尚未實現(xiàn)自來輔助軟件開發(fā)工作,但到目前為止尚未實現(xiàn)自來輔助軟件開發(fā)工作,但到目前為止尚未實現(xiàn)自動化。軟件開發(fā)中仍然包含了相當份量的個體勞動化。軟件開發(fā)中仍然包含了相當份量的個體勞動化。軟件開發(fā)中仍然包含了相當份量的個體勞動化。軟件開發(fā)中仍然包含了相當份量的個體勞動,使得這一大規(guī)模知識型工作充滿了個人行為動,使得這一大規(guī)模知識型工作充滿了個人行為動,使得這一大規(guī)模知識型工作充滿了個人行為動,使得這一大規(guī)模知識型工作充滿了個人行為和個人因素。和個人因素。和個人因素。和個人因素。(4)(4)質量特性質量特性質量特性質量特性:目前還無法得到完全沒有缺陷的:目前還無法得到完全沒有缺陷的:目前還無法得到完全沒有缺陷的:目前還無法得到完全沒有缺陷的軟件產(chǎn)品軟件產(chǎn)品軟件產(chǎn)品軟件產(chǎn)品 。1.1 軟件與軟件危機(5)(5)生產(chǎn)特性生產(chǎn)特性生產(chǎn)特性生產(chǎn)特性:與硬件或傳統(tǒng)的制造業(yè)產(chǎn)品的生產(chǎn)與硬件或傳統(tǒng)的制造業(yè)產(chǎn)品的生產(chǎn)與硬件或傳統(tǒng)的制造業(yè)產(chǎn)品的生產(chǎn)與硬件或傳統(tǒng)的制造業(yè)產(chǎn)品的生產(chǎn)完全不同,軟件一旦設計開發(fā)出來,如果需要提完全不同,軟件一旦設計開發(fā)出來,如果需要提完全不同,軟件一旦設計開發(fā)出來,如果需要提完全不同,軟件一旦設計開發(fā)出來,如果需要提供多個用戶,它的復制十分簡單,其成本也極為供多個用戶,它的復制十分簡單,其成本也極為供多個用戶,它的復制十分簡單,其成本也極為供多個用戶,它的復制十分簡單,其成本也極為有限有限有限有限 。(6)(6)管理特性管理特性管理特性管理特性:由于上述的幾個特點,使得軟件:由于上述的幾個特點,使得軟件:由于上述的幾個特點,使得軟件:由于上述的幾個特點,使得軟件的開發(fā)管理顯得更為重要,也更為獨特的開發(fā)管理顯得更為重要,也更為獨特的開發(fā)管理顯得更為重要,也更為獨特的開發(fā)管理顯得更為重要,也更為獨特 。1.1 軟件與軟件危機(7)(7)環(huán)境特性環(huán)境特性環(huán)境特性環(huán)境特性:軟件的開發(fā)和運行都離不開相關的軟件的開發(fā)和運行都離不開相關的軟件的開發(fā)和運行都離不開相關的軟件的開發(fā)和運行都離不開相關的計算機系統(tǒng)環(huán)境,包括支持它的開發(fā)和運行的相計算機系統(tǒng)環(huán)境,包括支持它的開發(fā)和運行的相計算機系統(tǒng)環(huán)境,包括支持它的開發(fā)和運行的相計算機系統(tǒng)環(huán)境,包括支持它的開發(fā)和運行的相關硬件和軟件。軟件對于計算機系統(tǒng)的環(huán)境有著關硬件和軟件。軟件對于計算機系統(tǒng)的環(huán)境有著關硬件和軟件。軟件對于計算機系統(tǒng)的環(huán)境有著關硬件和軟件。軟件對于計算機系統(tǒng)的環(huán)境有著不可擺脫的依賴性。不可擺脫的依賴性。不可擺脫的依賴性。不可擺脫的依賴性。(8)(8)維護特性維護特性維護特性維護特性:軟件投入使用以后需要進行維護,:軟件投入使用以后需要進行維護,:軟件投入使用以后需要進行維護,:軟件投入使用以后需要進行維護,但這種維護與傳統(tǒng)產(chǎn)業(yè)產(chǎn)品的維護概念有著很大但這種維護與傳統(tǒng)產(chǎn)業(yè)產(chǎn)品的維護概念有著很大但這種維護與傳統(tǒng)產(chǎn)業(yè)產(chǎn)品的維護概念有著很大但這種維護與傳統(tǒng)產(chǎn)業(yè)產(chǎn)品的維護概念有著很大差別。差別。差別。差別。1.1 軟件與軟件危機(9)(9)廢棄特性廢棄特性廢棄特性廢棄特性:與硬件不同,軟件并不是由于被與硬件不同,軟件并不是由于被與硬件不同,軟件并不是由于被與硬件不同,軟件并不是由于被“用壞用壞用壞用壞”而被廢棄的而被廢棄的而被廢棄的而被廢棄的 。(10)(10)應用特性應用特性應用特性應用特性:軟件的應用極為廣泛,如今它已:軟件的應用極為廣泛,如今它已:軟件的應用極為廣泛,如今它已:軟件的應用極為廣泛,如今它已滲入國民經(jīng)濟和國防的各個領域,現(xiàn)已成為信息滲入國民經(jīng)濟和國防的各個領域,現(xiàn)已成為信息滲入國民經(jīng)濟和國防的各個領域,現(xiàn)已成為信息滲入國民經(jīng)濟和國防的各個領域,現(xiàn)已成為信息產(chǎn)業(yè)、先進制造業(yè)和現(xiàn)代服務業(yè)的核心,占據(jù)了產(chǎn)業(yè)、先進制造業(yè)和現(xiàn)代服務業(yè)的核心,占據(jù)了產(chǎn)業(yè)、先進制造業(yè)和現(xiàn)代服務業(yè)的核心,占據(jù)了產(chǎn)業(yè)、先進制造業(yè)和現(xiàn)代服務業(yè)的核心,占據(jù)了無可取代的地位。無可取代的地位。無可取代的地位。無可取代的地位。1.1 軟件與軟件危機l軟件危機暴發(fā)于上個世紀六十年代末。l主要表現(xiàn)為:軟件的發(fā)展速度遠遠滯后于硬件的發(fā)展速度,不能滿足社會日益增長的軟件需求。軟件開發(fā)周期長、成本高、質量差、維護困難。1.1 軟件與軟件危機軟件危機軟件危機l典型例子:美國IBM公司在1963年至1966年開發(fā)的IBM 360機的操作系統(tǒng)。l這個項目的負責人F.D.Brooks事后總結了他在組織開發(fā)過程中的沉痛教訓時說:正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深。最后無法逃脫滅頂?shù)臑碾y,程序設計工作正像這樣一個泥潭,一批批程序員被迫在泥潭中拼命掙扎,誰也沒有料到竟會陷入這樣的困境1.1 軟件與軟件危機具體來說,軟件危機主要有以下一些典型表現(xiàn)具體來說,軟件危機主要有以下一些典型表現(xiàn):對軟件開發(fā)成本和進度的估計常常很不準確。對軟件開發(fā)成本和進度的估計常常很不準確。用戶對用戶對“已完成的已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質量往往靠不住。軟件產(chǎn)品的質量往往靠不住。軟件常常是不可維護的。軟件常常是不可維護的。軟件通常沒有適當?shù)奈臋n資料。軟件通常沒有適當?shù)奈臋n資料。軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠遠跟不上計算機應用迅速普及深入的趨勢。也遠遠跟不上計算機應用迅速普及深入的趨勢。1.1 軟件與軟件危機除了軟件本身的特點,軟件危機發(fā)生的主要原因有:除了軟件本身的特點,軟件危機發(fā)生的主要原因有:(1)(1)缺乏軟件開發(fā)的經(jīng)驗和有關軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)缺乏軟件開發(fā)的經(jīng)驗和有關軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。工作的計劃很難制定。(2)(2)軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或存在錯誤存在錯誤 。(3)(3)軟件開發(fā)過程不規(guī)范。如,沒有真正了解用戶的需求就開始軟件開發(fā)過程不規(guī)范。如,沒有真正了解用戶的需求就開始編程序。編程序。(4)(4)隨著軟件規(guī)模的增大,其復雜性往往會呈指數(shù)級升高。需要隨著軟件規(guī)模的增大,其復雜性往往會呈指數(shù)級升高。需要很多人分工協(xié)作,不僅涉及技術問題,更重要的是必須有科很多人分工協(xié)作,不僅涉及技術問題,更重要的是必須有科學嚴格的管理。學嚴格的管理。(5)(5)缺少有效的軟件評測手段,提交用戶的軟件質量不能完全保缺少有效的軟件評測手段,提交用戶的軟件質量不能完全保證。證。1.1 軟件與軟件危機徹底消除徹底消除“軟件就是程序軟件就是程序”的錯誤觀念。的錯誤觀念。充分認識到軟件開發(fā)應該是一種組織良好、管理充分認識到軟件開發(fā)應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。嚴密、各類人員協(xié)同配合、共同完成的工程項目。推廣和使用在實踐中總結出來的開發(fā)軟件的成功推廣和使用在實踐中總結出來的開發(fā)軟件的成功技術、方法和工具。技術、方法和工具。按工程化的原則和方法組織軟件開發(fā)工作。按工程化的原則和方法組織軟件開發(fā)工作。如何擺脫軟件危機如何擺脫軟件危機?1.1 軟件與軟件危機1.2 軟件工程及其基本原理l軟件工程的概念軟件工程的概念為了克服軟件危機,1968年10月在北大西洋公約組織(NATO)召開的計算機科學會議上,F(xiàn)ritz Bauer首次提出“軟件工程”的概念,試圖將工程化方法應用于軟件開發(fā)。在NATO會議上,F(xiàn)ritz Bauer對軟件工程的定義是:“軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理?!?993年IEEE給出的定義:“軟件工程是:把系統(tǒng)的、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護過程,也就是把工程應用于軟件;研究中提到的途徑?!?。1.2 軟件工程及其基本原理軟件工程軟件工程是指導計算機軟件開發(fā)和維護的一門是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方工程學科。采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,把經(jīng)過時間考驗而證明法來開發(fā)和維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好技術結正確的管理技術和當前能夠得到的最好技術結合起來,以經(jīng)濟地開發(fā)出高質量的軟件并有效合起來,以經(jīng)濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程。地維護它,這就是軟件工程。1.2 軟件工程及其基本原理1.2 軟件工程及其基本原理軟件工程的目標軟件工程的目標軟件工程的目標是運用先進的軟件開發(fā)技術和軟件工程的目標是運用先進的軟件開發(fā)技術和管理方法來提高軟件的質量和生產(chǎn)率,也就是管理方法來提高軟件的質量和生產(chǎn)率,也就是要以較短的周期、較低的成本生產(chǎn)出高質量的要以較短的周期、較低的成本生產(chǎn)出高質量的軟件產(chǎn)品,并最終實現(xiàn)軟件的工業(yè)化生產(chǎn)。軟件產(chǎn)品,并最終實現(xiàn)軟件的工業(yè)化生產(chǎn)。1.2 軟件工程及其基本原理軟件的質量特性:軟件的質量特性:功能性功能性、可靠性可靠性、可使用性可使用性、效效率率、可維護性可維護性和和可移植性可移植性。功能性功能性是指軟件所實現(xiàn)的功能達到它的設計規(guī)范和滿足用是指軟件所實現(xiàn)的功能達到它的設計規(guī)范和滿足用戶需求的程度;戶需求的程度;可靠性可靠性是指在規(guī)定的時間和條件下,軟件能夠正常維持其是指在規(guī)定的時間和條件下,軟件能夠正常維持其工作的能力;工作的能力;可使用性可使用性是指為了使用該軟件所需要的能力;是指為了使用該軟件所需要的能力;效率效率是指在規(guī)定的條件下用軟件實現(xiàn)某種功能所需要的計是指在規(guī)定的條件下用軟件實現(xiàn)某種功能所需要的計算機資源的有效性;算機資源的有效性;可維護性可維護性是指當環(huán)境改變或軟件運行發(fā)生故障時,為了使是指當環(huán)境改變或軟件運行發(fā)生故障時,為了使其恢復正常運行所做努力的程度;可移植性是指軟件從某其恢復正常運行所做努力的程度;可移植性是指軟件從某一環(huán)境轉移到另一環(huán)境時所做努力的程度。一環(huán)境轉移到另一環(huán)境時所做努力的程度。1.2 軟件工程及其基本原理質量目標之間的關系質量目標之間的關系(1)(1)關注大型軟件的構造關注大型軟件的構造(2)(2)中心課題是控制復雜性中心課題是控制復雜性(3)(3)軟件經(jīng)常變化軟件經(jīng)常變化(4)(4)開發(fā)軟件的效率非常重要開發(fā)軟件的效率非常重要(5)(5)和諧地合作是開發(fā)軟件的關鍵和諧地合作是開發(fā)軟件的關鍵(6)(6)軟件必須有效地支持它的用戶軟件必須有效地支持它的用戶(7)(7)在在軟軟件件工工程程領領域域中中是是由由一一種種文文化化背背景景的的人人替替具具有有另另一一種種文文化背景的人創(chuàng)造產(chǎn)品化背景的人創(chuàng)造產(chǎn)品1.2 軟件工程及其基本原理軟件工程的本質特性軟件工程的本質特性(1)(1)按軟件生存周期分階段制訂計劃并認真實施按軟件生存周期分階段制訂計劃并認真實施 (2)(2)堅持進行階段評審堅持進行階段評審(3)(3)堅持嚴格的產(chǎn)品控制堅持嚴格的產(chǎn)品控制(4)(4)使用現(xiàn)代軟件開發(fā)技術使用現(xiàn)代軟件開發(fā)技術(5)(5)明確責任明確責任(6)(6)用人少而精用人少而精(7)(7)不斷改進開發(fā)過程不斷改進開發(fā)過程 1.2 軟件工程及其基本原理軟件工程的基本原理軟件工程的基本原理 1.3 軟件生命周期概念概念 軟件也有一個孕育、誕生、成長、成熟和衰亡的軟件也有一個孕育、誕生、成長、成熟和衰亡的生存過程,我們稱這個過程為生存過程,我們稱這個過程為軟件生命周期軟件生命周期或或軟軟件生存期件生存期。軟件生存期由軟件定義、軟件開發(fā)和運行維護軟件生存期由軟件定義、軟件開發(fā)和運行維護3 3個個時期組成,每個時期又可劃分為若干個階段。時期組成,每個時期又可劃分為若干個階段。1.3 軟件生命周期軟件定義時期軟件定義時期 主要任務是解決主要任務是解決“做什么做什么”的問題,即確定工程的問題,即確定工程的總目標和可行性;導出實現(xiàn)工程目標應使用的的總目標和可行性;導出實現(xiàn)工程目標應使用的策略及系統(tǒng)必須完成的功能;估計完成工程需要策略及系統(tǒng)必須完成的功能;估計完成工程需要的資源和成本;制訂工程進度表。的資源和成本;制訂工程進度表。通常又分為通常又分為3 3個階段:個階段:問題定義問題定義、可行性研究可行性研究和和需需求分析求分析。1.3 軟件生命周期軟件開發(fā)時期軟件開發(fā)時期 主要任務是解決主要任務是解決“如何做如何做”的問題,即具體設計的問題,即具體設計和實現(xiàn)在前一個時期定義的軟件。和實現(xiàn)在前一個時期定義的軟件。由由概要設計概要設計、詳細設計詳細設計、編碼編碼和和測試測試4 4個階段組成。個階段組成。1.3 軟件生命周期軟件運行維護時期軟件運行維護時期 主要任務是使軟件持久地滿足用戶的需要,通常主要任務是使軟件持久地滿足用戶的需要,通常有有4 4類維護活動:類維護活動:(1)(1)改正性維護改正性維護,也就是診斷和改正在使用過程中,也就是診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯誤;發(fā)現(xiàn)的軟件錯誤;(2)(2)適應性維護適應性維護,即修改軟件以適應環(huán)境的變化;,即修改軟件以適應環(huán)境的變化;(3)(3)完善性維護完善性維護,即根據(jù)用戶的要求改進或擴充軟,即根據(jù)用戶的要求改進或擴充軟件,使它更完善;件,使它更完善;(4)(4)預防性維護預防性維護,即修改軟件為將來的維護活動預,即修改軟件為將來的維護活動預先做準備。先做準備。1.3 軟件生命周期開發(fā)過程中的典型文檔開發(fā)過程中的典型文檔 軟件需求規(guī)格說明書軟件需求規(guī)格說明書:描述將要開發(fā)的軟件做什:描述將要開發(fā)的軟件做什么。么。項目計劃項目計劃:描述將要完成的任務及其順序,并估:描述將要完成的任務及其順序,并估計所需要的時間及工作量。計所需要的時間及工作量。軟件測試計劃軟件測試計劃:描述如何測試軟件,使之確保軟:描述如何測試軟件,使之確保軟件應實現(xiàn)規(guī)定的功能,并達到預期的性能。件應實現(xiàn)規(guī)定的功能,并達到預期的性能。軟件設計說明書軟件設計說明書:描述軟件的結構,包括概要設:描述軟件的結構,包括概要設計及詳細設計。計及詳細設計。用戶手冊用戶手冊:描述如何使用軟件。:描述如何使用軟件。1.3 軟件生命周期各個階段所要完成的基本任務各個階段所要完成的基本任務(1)(1)問題定義與可行性研究問題定義與可行性研究 本階段要回答的關鍵問題是本階段要回答的關鍵問題是“到底要解決什么問題?在到底要解決什么問題?在成本和時間的限制條件下能否解決問題?是否值得做?成本和時間的限制條件下能否解決問題?是否值得做?”(2)(2)需求分析需求分析 本階段要回答的關鍵問題是本階段要回答的關鍵問題是“目標系統(tǒng)應當做什么?目標系統(tǒng)應當做什么?”(3)(3)軟件設計軟件設計 設計是軟件工程的技術核心。本階段要回答的關鍵問題設計是軟件工程的技術核心。本階段要回答的關鍵問題是是“如何實現(xiàn)目標系統(tǒng)?如何實現(xiàn)目標系統(tǒng)?”1.3 軟件生命周期各個階段所要完成的基本任務各個階段所要完成的基本任務(4)(4)程序編碼和單元測試程序編碼和單元測試 本階段要解決的問題是本階段要解決的問題是“正確地實現(xiàn)已做的設計正確地實現(xiàn)已做的設計”,即,即“如何編寫正確的、可維護的程序代碼?如何編寫正確的、可維護的程序代碼?”(5)(5)集成和系統(tǒng)測試集成和系統(tǒng)測試 測試是控制軟件質量的重要手段,本階段的主要任務是做測試是控制軟件質量的重要手段,本階段的主要任務是做集成測試和系統(tǒng)測試。集成測試和系統(tǒng)測試。(6)(6)軟件運行和維護軟件運行和維護 已交付的軟件投入正式使用,便進入運行階段。這一階段已交付的軟件投入正式使用,便進入運行階段。這一階段可能持續(xù)若干年。軟件在運行中可能由于多方面的原因,可能持續(xù)若干年。軟件在運行中可能由于多方面的原因,需要對它進行修改。需要對它進行修改。1.4 軟件工程方法學概念概念軟件工程包含軟件工程包含技術技術和和管理管理兩方面的內(nèi)容,是技術兩方面的內(nèi)容,是技術和管理緊密結合所形成的工程學科。和管理緊密結合所形成的工程學科。通常將軟件開發(fā)全過程中使用的一整套技術方法通常將軟件開發(fā)全過程中使用的一整套技術方法的集合稱為的集合稱為方法學方法學(methedology(methedology),也稱為,也稱為范型范型(paradigm)(paradigm)。目前使用最廣泛的軟件工程方法學:目前使用最廣泛的軟件工程方法學:傳統(tǒng)方法傳統(tǒng)方法(結構化方法)(結構化方法),面向對象方法面向對象方法。1.4 軟件工程方法學三要素:三要素:方法、工具和過程。軟件工程軟件工程方法方法為軟件開發(fā)提供了為軟件開發(fā)提供了 “如何做如何做”的的技術技術;軟件軟件工具工具為軟件工程方法提供了自動的或半自動為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境的軟件支撐環(huán)境;過程過程是為了獲得高質量的軟件所需要完成的一系是為了獲得高質量的軟件所需要完成的一系列任務框架,它規(guī)定了完成各項任務的工作步驟。列任務框架,它規(guī)定了完成各項任務的工作步驟。1.4 軟件工程方法學結構化方法結構化方法 也稱為生命周期方法學或結構化范型。將軟件生也稱為生命周期方法學或結構化范型。將軟件生命周期的全過程依次劃分為若干個階段,采用結命周期的全過程依次劃分為若干個階段,采用結構化技術來完成每個階段的任務。構化技術來完成每個階段的任務。特點:特點:(1)(1)強調自頂向下順序地完成軟件開發(fā)的各階段強調自頂向下順序地完成軟件開發(fā)的各階段任務任務;(2)(2)結構化方法要么面向行為,要么面向數(shù)據(jù),結構化方法要么面向行為,要么面向數(shù)據(jù),缺乏使兩者有機結合的機制。缺乏使兩者有機結合的機制。1.4 軟件工程方法學l面向對象方法面向對象方法是將數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結合起來的方法。是將數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結合起來的方法。軟件開發(fā)過程是多次反復迭代的演化過程。軟件開發(fā)過程是多次反復迭代的演化過程。面向對象方法在概念和表示方法上的一致性,保面向對象方法在概念和表示方法上的一致性,保證了各項開發(fā)活動之間的平滑過渡。證了各項開發(fā)活動之間的平滑過渡。對于大型、復雜及交互性比較強的系統(tǒng),使用面對于大型、復雜及交互性比較強的系統(tǒng),使用面向對象方法更有優(yōu)勢。向對象方法更有優(yōu)勢。1.5 軟件工程知識體系及知識域介紹軟件工程教育軟件工程教育(3 3個歷史時期個歷史時期)(1)1978(1)1978年以前:軟件工程教育以計算機專業(yè)的年以前:軟件工程教育以計算機專業(yè)的一門孤立的課程形式存在。一門孤立的課程形式存在。(2)1978(2)197819881988年期間:早期的研究生學位教育,年期間:早期的研究生學位教育,開始建立軟件工程專業(yè)的研究生學位教育項目。開始建立軟件工程專業(yè)的研究生學位教育項目。(3)1988(3)1988年以后:快速發(fā)展的研究生學科教育,年以后:快速發(fā)展的研究生學科教育,使軟件工程的理論快速發(fā)展,其中,卡內(nèi)基使軟件工程的理論快速發(fā)展,其中,卡內(nèi)基梅隆梅隆大學軟件工程研究所(大學軟件工程研究所(SEISEI)的影響不可忽視。)的影響不可忽視。1.5 軟件工程知識體系及知識域介紹軟件工程知識體軟件工程知識體軟件工程已從計算機科學與技術中脫離出來,逐軟件工程已從計算機科學與技術中脫離出來,逐漸形成了一門獨立的學科。對其知識體系的研究漸形成了一門獨立的學科。對其知識體系的研究從從2020世紀世紀9090年代初就開始了。年代初就開始了。標志是美國標志是美國Embry-RiddleEmbry-Riddle航空大學計算與數(shù)學系航空大學計算與數(shù)學系Thomas B.HilburnThomas B.Hilburn教授的教授的“軟件工程知識體系指軟件工程知識體系指南南”(Guide to Software Engineering Body of Guide to Software Engineering Body of KnowledgeKnowledge,SWEBOKSWEBOK)研究項目。)研究項目。1.5 軟件工程知識體系及知識域介紹軟件工程知識體系指南的目標軟件工程知識體系指南的目標(1)(1)促使軟件工程本體知識成為世界范圍的共識。促使軟件工程本體知識成為世界范圍的共識。(2)(2)澄清軟件工程與其他相關學科,如與計算機科澄清軟件工程與其他相關學科,如與計算機科學、項目管理、計算機工程以及計算機數(shù)學之間學、項目管理、計算機工程以及計算機數(shù)學之間的關系,并且確定軟件工程學科的范圍。的關系,并且確定軟件工程學科的范圍。(3)(3)反映軟件工程學科內(nèi)容的特征。反映軟件工程學科內(nèi)容的特征。(4)(4)確定軟件工程本體知識的各個專題。確定軟件工程本體知識的各個專題。(5)(5)為相應的課程和職業(yè)資格認證材料的編寫奠定為相應的課程和職業(yè)資格認證材料的編寫奠定基礎。基礎。1.5 軟件工程知識體系及知識域介紹軟件工程知識體系指南的內(nèi)容軟件工程知識體系指南的內(nèi)容 SWEBOKSWEBOK指南將軟件工程知識體系劃分為指南將軟件工程知識體系劃分為1010個知識個知識域(域(knowledge areasknowledge areas,KAKA),分為兩類過程。),分為兩類過程。一類是一類是開發(fā)與維護過程開發(fā)與維護過程,包括軟件需求、軟件設,包括軟件需求、軟件設計、軟件構造、軟件測試和軟件維護;計、軟件構造、軟件測試和軟件維護;另一類是另一類是支持和組織過程支持和組織過程,包括軟件配置管理、,包括軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具與軟件工程管理、軟件工程過程、軟件工程工具與方法和軟件質量。每個知識域還可進一步分解為方法和軟件質量。每個知識域還可進一步分解為若干論題。若干論題。1.5 軟件工程知識體系及知識域介紹軟件工程知識體系指南的內(nèi)容軟件工程知識體系指南的內(nèi)容1.5 軟件工程知識體系及知識域介紹每個知識域又可分解為若干子知識域,如表所示。每個知識域又可分解為若干子知識域,如表所示。1.6 軟件產(chǎn)業(yè)的形成與發(fā)展我國軟件產(chǎn)業(yè)的形成我國軟件產(chǎn)業(yè)的形成 軟件產(chǎn)業(yè)是以開發(fā)、研究、經(jīng)營、銷售軟件產(chǎn)品軟件產(chǎn)業(yè)是以開發(fā)、研究、經(jīng)營、銷售軟件產(chǎn)品或軟件服務為主的企業(yè)組織及其在市場上的相互或軟件服務為主的企業(yè)組織及其在市場上的相互關系的集合。關系的集合。軟件產(chǎn)業(yè)是信息產(chǎn)業(yè)的核心,是國民經(jīng)濟基礎性、軟件產(chǎn)業(yè)是信息產(chǎn)業(yè)的核心,是國民經(jīng)濟基礎性、戰(zhàn)略性產(chǎn)業(yè),直接關系國家政治、經(jīng)濟和社會的戰(zhàn)略性產(chǎn)業(yè),直接關系國家政治、經(jīng)濟和社會的安全。安全。目前我國軟件產(chǎn)業(yè)鏈已經(jīng)初步形成,在其形成的目前我國軟件產(chǎn)業(yè)鏈已經(jīng)初步形成,在其形成的過程中,我國的軟件產(chǎn)業(yè)主要經(jīng)歷了萌芽期、起過程中,我國的軟件產(chǎn)業(yè)主要經(jīng)歷了萌芽期、起步期、進入期和發(fā)展期步期、進入期和發(fā)展期4 4個階段。個階段。進入了進入了20002000年以后,中國的軟件企業(yè)開始進入網(wǎng)年以后,中國的軟件企業(yè)開始進入網(wǎng)絡軟件時期。絡軟件時期。1.6 軟件產(chǎn)業(yè)的形成與發(fā)展全球軟件產(chǎn)業(yè)的發(fā)展全球軟件產(chǎn)業(yè)的發(fā)展 到目前為止,全球軟件產(chǎn)業(yè)的發(fā)展已經(jīng)經(jīng)歷了比到目前為止,全球軟件產(chǎn)業(yè)的發(fā)展已經(jīng)經(jīng)歷了比較完整的較完整的5 5代。代。第一代:早期專業(yè)的服務公司(第一代:早期專業(yè)的服務公司(1949194919591959年)年)第二代:早期軟件產(chǎn)品公司(第二代:早期軟件產(chǎn)品公司(1959195919691969年)年)第三代:強大的企業(yè)解決方案提供商的出現(xiàn)第三代:強大的企業(yè)解決方案提供商的出現(xiàn)(1969196919811981年)年)第四代:客戶大眾市場軟件(第四代:客戶大眾市場軟件(1981198119941994年)年)第五代:互聯(lián)網(wǎng)增值服務(第五代:互聯(lián)網(wǎng)增值服務(19941994年至今)年至今)1.6 軟件產(chǎn)業(yè)的形成與發(fā)展軟件產(chǎn)業(yè)的發(fā)展模式軟件產(chǎn)業(yè)的發(fā)展模式 目前得到公認的產(chǎn)業(yè)發(fā)展模式有目前得到公認的產(chǎn)業(yè)發(fā)展模式有美國模式美國模式、印度印度模式模式、愛爾蘭模式愛爾蘭模式、日本模式日本模式等。等。美國模式美國模式技術與服務領導型技術與服務領導型 美國的軟件產(chǎn)業(yè)主要由美國的軟件產(chǎn)業(yè)主要由3 3個部分組成。個部分組成。(1)(1)以商業(yè)銷售或租賃為目的,設計和生產(chǎn)軟件以商業(yè)銷售或租賃為目的,設計和生產(chǎn)軟件產(chǎn)品的公司。產(chǎn)品的公司。(2)(2)開發(fā)因特網(wǎng)和電子商務技術,提供網(wǎng)上信息開發(fā)因特網(wǎng)和電子商務技術,提供網(wǎng)上信息和服務的公司。和服務的公司。(3)(3)專為計算機提供軟件服務的公司。專為計算機提供軟件服務的公司。1.6 軟件產(chǎn)業(yè)的形成與發(fā)展軟件產(chǎn)業(yè)的發(fā)展模式軟件產(chǎn)業(yè)的發(fā)展模式印度模式印度模式國際加工服務型國際加工服務型 印度的軟件產(chǎn)業(yè)屬于外向型的產(chǎn)業(yè),以外包服務印度的軟件產(chǎn)業(yè)屬于外向型的產(chǎn)業(yè),以外包服務為主,軟件企業(yè)對于促進印度的出口起了十分重為主,軟件企業(yè)對于促進印度的出口起了十分重要的作用。要的作用。愛爾蘭模式愛爾蘭模式生產(chǎn)本地化型生產(chǎn)本地化型 根據(jù)歐洲市場根據(jù)歐洲市場2020多種不同語言的實際需要,愛爾多種不同語言的實際需要,愛爾蘭將自己定位為美國軟件公司產(chǎn)品歐洲化版本的蘭將自己定位為美國軟件公司產(chǎn)品歐洲化版本的加工基地,吸引跨國軟件公司和國際知名學府在加工基地,吸引跨國軟件公司和國際知名學府在國內(nèi)建立研發(fā)和分支機構,實現(xiàn)國外軟件產(chǎn)品本國內(nèi)建立研發(fā)和分支機構,實現(xiàn)國外軟件產(chǎn)品本地化。地化。1.6 軟件產(chǎn)業(yè)的形成與發(fā)展軟件產(chǎn)業(yè)的發(fā)展模式軟件產(chǎn)業(yè)的發(fā)展模式日本和歐洲模式日本和歐洲模式嵌入式系統(tǒng)開發(fā)型嵌入式系統(tǒng)開發(fā)型 日本以硬件帶動軟件發(fā)展,其軟件屬于嵌入式的。日本以硬件帶動軟件發(fā)展,其軟件屬于嵌入式的。松下、東芝、日立等跨國公司都有自己的軟件公松下、東芝、日立等跨國公司都有自己的軟件公司,他們研發(fā)的軟件產(chǎn)品往往隨著企業(yè)的各類產(chǎn)司,他們研發(fā)的軟件產(chǎn)品往往隨著企業(yè)的各類產(chǎn)品出口世界各地。品出口世界各地。德國模式德國模式企業(yè)級應用及自主研發(fā)型企業(yè)級應用及自主研發(fā)型 德國軟件產(chǎn)業(yè)可分為德國軟件產(chǎn)業(yè)可分為“主要軟件企業(yè)主要軟件企業(yè)”和和“輔助輔助軟件企業(yè)軟件企業(yè)”兩類。第一類除從事數(shù)據(jù)處理服務的兩類。第一類除從事數(shù)據(jù)處理服務的企業(yè)外,還包括數(shù)據(jù)處理設備制造商。第二類是企業(yè)外,還包括數(shù)據(jù)處理設備制造商。第二類是指機械制造、電子、通信、汽車、金融服務等行指機械制造、電子、通信、汽車、金融服務等行業(yè)的企業(yè)。業(yè)的企業(yè)。1.6 軟件產(chǎn)業(yè)的形成與發(fā)展軟件工程在軟件產(chǎn)業(yè)中的作用軟件工程在軟件產(chǎn)業(yè)中的作用 一方面,軟件產(chǎn)業(yè)離不開軟件工程理論及標準的一方面,軟件產(chǎn)業(yè)離不開軟件工程理論及標準的指導;另一方面,軟件產(chǎn)業(yè)的發(fā)展需要大量軟件指導;另一方面,軟件產(chǎn)業(yè)的發(fā)展需要大量軟件工程人才。工程人才。軟件工程理論軟件工程理論是人們從長期的軟件工程實踐中總是人們從長期的軟件工程實踐中總結出來的,對軟件開發(fā)起著重要的指導作用。結出來的,對軟件開發(fā)起著重要的指導作用。軟件產(chǎn)業(yè)的發(fā)展需要大量的軟件產(chǎn)業(yè)的發(fā)展需要大量的軟件工程人才軟件工程人才。實際。實際情況已經(jīng)證明,軟件產(chǎn)業(yè)的競爭不僅是技術和資情況已經(jīng)證明,軟件產(chǎn)業(yè)的競爭不僅是技術和資本的競爭,從根本上來講是人才的競爭。本的競爭,從根本上來講是人才的競爭。小結對軟件及軟件工程進行了概要介紹對軟件及軟件工程進行了概要介紹介紹了軟件的作用、概念、特性及軟件危機的主介紹了軟件的作用、概念、特性及軟件危機的主要表現(xiàn);要表現(xiàn);對軟件工程的概念、軟件工程的基本原理以及軟對軟件工程的概念、軟件工程的基本原理以及軟件工程知識體系進行了簡要介紹件工程知識體系進行了簡要介紹;最后介紹了軟件產(chǎn)業(yè)的形成與發(fā)展以及軟件工程最后介紹了軟件產(chǎn)業(yè)的形成與發(fā)展以及軟件工程在軟件產(chǎn)業(yè)中的重要性。在軟件產(chǎn)業(yè)中的重要性。小結介紹了軟件生命周期方法介紹了軟件生命周期方法軟件生命周期方法將軟件生命周期劃分為若干個軟件生命周期方法將軟件生命周期劃分為若干個相對獨立的階段,每個階段都完成一定的任務;相對獨立的階段,每個階段都完成一定的任務;基本上按順序完成各個階段的任務;基本上按順序完成各個階段的任務;在完成每個階段的任務時采用結構化技術和適當在完成每個階段的任務時采用結構化技術和適當?shù)能浖ぞ?;的軟件工具;在每個階段結束之前都進行嚴格的技術復審和管在每個階段結束之前都進行嚴格的技術復審和管理復審。理復審。軟件生命周期方法使軟件開發(fā)結束了之前的混亂軟件生命周期方法使軟件開發(fā)結束了之前的混亂狀態(tài)。狀態(tài)。
收藏
編號:65494723
類型:共享資源
大小:6.60MB
格式:ZIP
上傳時間:2022-03-24
40
積分
- 關 鍵 詞:
-
軟件工程基礎
軟件工程
基礎
全套
PPT
課件
- 資源描述:
-
《軟件工程基礎》全套PPT課件,軟件工程基礎,軟件工程,基礎,全套,PPT,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。