第1章 高級軟件工程概述_第1頁
第1章 高級軟件工程概述_第2頁
第1章 高級軟件工程概述_第3頁
第1章 高級軟件工程概述_第4頁
第1章 高級軟件工程概述_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、主講教師:課程的性質、目的與任務課程的性質、目的與任務 軟件工程是計算機科學與技術專業的一門專軟件工程是計算機科學與技術專業的一門專業核心課程。通過本課程的學習,使學生掌握系業核心課程。通過本課程的學習,使學生掌握系統的軟件開發理論、技術和方法,使用正確的工統的軟件開發理論、技術和方法,使用正確的工程方法開發出成本低、可靠性好并在機器上能高程方法開發出成本低、可靠性好并在機器上能高效運行的軟件,為今后從事軟件開發和維護打下效運行的軟件,為今后從事軟件開發和維護打下堅實的基礎。堅實的基礎。課程主要內容課程主要內容 本課程比較全面、系統地介紹軟件工程的概念、技術與本課程比較全面、系統地介紹軟件工程

2、的概念、技術與方法。主要內容包括:軟件工程概述、軟件生存周期及軟件方法。主要內容包括:軟件工程概述、軟件生存周期及軟件需求分析、軟件設計方法、軟件測試技術等。需求分析、軟件設計方法、軟件測試技術等。 通過本課程學習,使學生能真正的了解軟件開發的整個通過本課程學習,使學生能真正的了解軟件開發的整個過程。為了讓學生真正得以實踐,結合實際軟件開發項目,過程。為了讓學生真正得以實踐,結合實際軟件開發項目,讓學生從問題定義開始,經過可行性研究、需求分析、概要讓學生從問題定義開始,經過可行性研究、需求分析、概要設計、詳細設計、編碼直到最后對自己開發的軟件進行測試設計、詳細設計、編碼直到最后對自己開發的軟件

3、進行測試,這樣一個軟件開發全過程,使學生掌握軟件開發的基本技,這樣一個軟件開發全過程,使學生掌握軟件開發的基本技能。能。u軟件的概念軟件的概念u軟件的危機軟件的危機u軟件工程概念軟件工程概念u軟件的生命周期軟件的生命周期u軟件工程的目標和原則軟件工程的目標和原則軟件的概念 軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序、數據及其相關文檔的完整集合。其中,程序是按事先設計的功能和性能要求執行的指令序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發、維護和使用有關的圖文材料。 軟件具有以下8個特點: (1)軟件是一種邏輯實體,而不是具體的物理實體,具有抽象性 (2)軟件的生產與

4、硬件不同,在開發過程中沒有明顯的制造過程 (3)在軟件的運行和使用期間,沒有像硬件那樣的機械磨損,老化問題(4)軟件的開發和運行常受到計算機系統的限制,對計算機 系統有著不同程度的依賴性。 (5)軟件的開發至今尚未完全擺脫手工藝的開發方式。 (6)軟件本身是復雜的。包括實際問題的復雜性和程序邏輯 結構的復雜性。 (7)軟件成本是昂貴的。 (8)相當多的軟件工作涉及到社會因素。 (a) 硬件失效率曲線 (b) 軟件失效率曲線軟件的分類1.按功能劃分: (1) 系統軟件。如操作系統、編譯程序、設備驅動程序等 (2) 支撐軟件。如數據庫管理系統、網絡軟件、軟件開發 環境等 (3) 應用軟件。如工程與

5、科學計算軟件、CAD/CAM軟件、 CAI軟件、信息管理系統等2.按工作方式劃分: (1) 實時處理軟件 (2) 分時軟件 (3) 交互式軟件 (4) 批處理軟件 3.按服務對象的范圍劃分 (1)項目軟件 (2)產品軟件 4.按使用頻度劃分 (1)一次使用軟件 (2)頻繁使用軟件5.按軟件失效的影響進行劃分 (1)高可靠性軟件 (2)一般可靠性軟件軟件的危機軟件的危機 軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。 軟件危機主要有以下一些典型表現: (1)對軟件開發成本和進度的估計常常很不準確 (2)用戶對“已完成的”軟件系統不滿意的現象經常發生 (3)軟件產品的質量往往沒

6、有保證 (4)軟件常常是不可維護的 (5)軟件通常沒有適當的文檔資料 (6)軟件成本在計算機系統總成本中所占的比例逐年 上升 (7)軟件開發生產率提高的速度,遠遠跟不上計算機 應用迅速普及深入的趨勢 軟件危機的產生主要有以下一些原因: (1)軟件不同于硬件,它是計算機系統中的邏輯部件而不是 物理部件 (2)軟件規模大,程序的復雜性將隨著程序規模的增加而呈 指數上升 (3)與軟件開發和維護有關的許多錯誤認識和作法的形成, 可以歸因于計算機系統發展的早期軟件開發的個體化 特點 (4)軟件的生命周期:一個軟件從定義、開發、使用和維護 ,直到最終被廢棄,要經歷一個漫長的周期 (5)軟件維護 消除軟件危

7、機的途徑: (1)組織管理:軟件開發不是某種個體勞動的神秘技巧 ,軟件開發應該是一種組織良好、管理嚴密、各類人 員協同配合、共同完成的工程項目。 (2)方法:應該推廣使用在實踐中總結出來的開發軟件 的成功的技術和方法,并且研究探索更好更有效的 技術和方法,盡快消除在計算機系統早期發展階段 形成的一些錯誤概念和做法。 (3)工具:應該開發和使用更好的軟件工具。 軟件工程介紹 軟件工程是一門指導計算機軟件系統開發和維護的工程學科,是一門新興的邊緣學科,主要研究如何應用軟件開發的科學理論和工程技術來指導大型軟件系統的開發,涉及計算機科學、工程科學、管理科學、數學等領域的一門綜合性的交叉學科。它借鑒傳

8、統工程的原則、方法,以提高質量、降低成本為目的。 從1968年提出“軟件工程”一術語以來,研究軟件工程的專家學者們陸續提出了100多條關于軟件工程的準則或信條。美國著名的軟件工程專家 Boehm 綜合這些專家的意見,并總結了TRW公司多年的開發軟件的經驗,于1983年提出了軟件工程的七條基本原理,這七條原理是確保軟件產品質量和開發效率的原理的最小集合。 原理1.用分階段的生命周期計劃嚴格管理 原理2.堅持進行階段評審 原理3.實行嚴格的產品控制 原理4.采納現代程序設計技術 原理5.結果應該能清楚地審查 原理6.開發小組的人員應少而精 原理7.承認不斷改進軟件工程實踐的必要性 軟件工程的框架可

9、概括為:軟件工程目標、軟件工程過程和軟件工程原則。 (1)軟件工程目標:生產具有正確性、可用性以及代價合宜的產品 (2)軟件工程過程:生產一個最終能滿足需求且達到 工程目標的軟件產品所需要的步驟 (3)軟件工程的原則:指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則 通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型。 軟件工程方法學包含三個要素:方法、工具和過程。方法是完成軟件開發的各項任務的技術方法;工具是為運用方法而提供的自動的或半自動的軟件工程支撐環境;過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。

10、使用得最廣泛的軟件工程方法學有以下幾種: (1)結構化方法學 (2)面向對象方法學 (3)后面向對象方法學 軟件的生命周期 軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即為計算機軟件的生存期。軟件生存期的八個步驟如下: (1)問題定義 題定義階段必須回答的關鍵問題:“要解決的問題是什么?” ,通過問題定義階段的工作,系統分析員應該提出關于問題性質、工程目標和規模的書面報告。 (2)可行性研究 這個階段要回答的關鍵問題:“對于上一個階段所確定的問題有行得通的解決辦法嗎?” ,可行性研究階段應該導出系統的高層邏輯模型(通常用數據流圖表示),并且在此基礎上更準確、更具體地確定工程規模和

11、目標,然后分析員更準確地估計系統的成本和效益。對建議的系統進行仔細的成本效益分析是這個階段的主要任務之一。 (3)需求分析 確定“為了解決這個問題,目標系統必須做什么”,主要是確定目標系統必須具備哪些功能。系統分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。通常用數據流圖、數據字典和簡要的算法描述表示系統的邏輯模型。 (4)總體設計 這個階段必須回答的關鍵問題是:“概括地說,應該如何解決這個問題?”。首先,應該考慮幾種可能的解決方案。再就是設計軟件的結構,也就是確定程序由哪些模塊組成以及模塊間的關系。 (5)詳細設計 回答下面這個關鍵問題:“應該怎樣具體

12、地實現這個系統呢?”。這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。通常用HIPO圖(層次圖加輸入處理輸出圖)或PDL語言(過程描述語言)描述詳細設計的結果。 (6)編碼和單元測試 這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。 (7)綜合測試 這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟件達到預定的要求。 (8)軟件維護 維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。 通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件

13、使它更完善;預防性維護,即修改軟件為將來的維護活動預先做準備。 軟件生命常見周期模型 瀑布模型 漸增模型 快速原型模型 螺旋模型 噴泉模型 智能模型 傳統的瀑布模型 實際上該瀑布模型過于理想化,人在工作過程中不可能不犯錯誤。在設計階段可能發現規格說明文檔中的錯誤,而設計上的缺陷或錯誤可能在實現過程中顯現出來,在綜合測試階段也會發現需求分析、設計或編碼階段的錯誤。因此,實際的瀑布模型是帶“反饋環”的,如下圖所示(圖中實線箭頭表示開發過程,虛線箭頭表示維護過程)。 實際的瀑布模型 漸增模型 快速原型模型 螺旋模型 噴泉模型 變換模型 智能模型 軟件工程的目標和原則 組織實施軟件工程項目,從技術上和管理上采取了多項措施以后,最終希望得到項目的成功。所謂成功指的是達到以下幾個主要的目標: (1)達到要求的軟件功能; (2)取得較好的軟件性能; (3)開發的軟件易于移植; (4)能按時交付使用; (5)付出較低的開發成本; (6)較低的維護費用。 軟件工程目標之間存在的相互關系如下圖所示: 為達到以上軟件工程的目標,在軟件開發過程中必須遵循下列軟件工程原則: (1)抽象:抽取事物最基本的特性和行為,忽略非基本的細節 (2)信息隱蔽:將模塊設計成“黑箱”,實現的細節隱藏在模塊內部 ,不讓模塊的使用者直接訪問 (3)模塊化:模塊是程序中邏輯上相對獨立的成分,是獨立的編程單 位,應有良好的接

溫馨提示

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

評論

0/150

提交評論