《軟件工程基礎與訓實教程》由會員分享,可在線閱讀,更多相關《軟件工程基礎與訓實教程(14頁珍藏版)》請在裝配圖網上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,電子工業(yè)出版社,下頁,上頁,軟件工程基礎與實訓教程,杜文潔 主編,第 1 章 軟件工程概述,內容介紹,1.1 軟件危機,1.2 軟件工程,1.3 軟件的開發(fā)方法,1.4 軟件生存周期,1.5 軟件開發(fā)模型,1.6 小結,1.1 軟件危機,1.1.1 軟件的定義及特點,軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關數(shù)據及其說明文檔。其中程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據是程序運行過程中處理的對象;文檔是與程序開發(fā)、維護和使用有關的各種圖文資料。,軟件有如下特點:,(1)軟件是一種邏輯實體,具有抽
2、象性。,(2)軟件在使用過程中沒有磨損的問題。,(3)軟件一旦研制成功,就可以重復制造,其生產過程就變成復制過程。,(4)軟件的開發(fā)和運行必須依賴于特定的計算機系統(tǒng)環(huán)境。,(5)軟件開發(fā)至今尚未擺脫手工方式。,1.1.2 軟件危機的產生原因,軟件危機是指落后的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發(fā)與維護過程中出現(xiàn)一系列嚴重問題的現(xiàn)象。,軟件危機的產生有兩方面的因素:一方面與軟件本身的抽象性和復雜性有關,這是客觀原因;另一方面則與軟件開發(fā)和維護過程中使用的技術和方法有關,這是主觀原因。,其根本原因是軟件開發(fā)過程不成熟,主要表現(xiàn)為:,(1)忽視軟件開發(fā)前期的調研和分析工作。
3、,(2)開發(fā)過程缺乏統(tǒng)一的規(guī)范。,(3)軟件開發(fā)管理困難而負責。,(4)沒有完善的質量保證體系。,1.1.3 解決軟件危機的方法,為了擺脫軟件危機造成的困境,北大西洋公約組織(NATO)的科學委員會于1968年在聯(lián)邦德國召開的有關研討會上,第一次提出了“軟件工程”(Software Engineering)的概念。從此,軟件工程作為一門新興的工程學科誕生了。,軟件工程的主要思想是運用工程學的基本原理和方法來組織和管理軟件生產。,1.2 軟件工程,1.2.1 軟件工程的定義及目標,軟件工程就是采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經過時間考驗而證明是正確的管理方法和最先進的軟件開發(fā)
4、技術結合起來,運用到軟件開發(fā)和維護過程中。,軟件工程旨在開發(fā)滿足用戶需求、及時交付、不超過預算和無故障的軟件,其主要目標如下:,(1)合理預算開發(fā)成本,付出較低的開發(fā)費用;,(2)實現(xiàn)預期的軟件功能,達到較好的軟件性能,滿足用戶的需求;,(3)提高所開發(fā)軟件的可維護性,降低維護費用;,(4)提高軟件開發(fā)生產率,及時交付使用。,1.2.2 軟件工程研究的內容,軟件工程作為一門新興的學科,研究的主要內容是軟件開發(fā)技術和軟件工程管理兩方面。在軟件開發(fā)技術方面,主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件工程管理方面,主要研究軟件管理學、軟件經濟學、軟件心理學等。,1.3 軟件的開發(fā)
5、方法,1.3.1 面向過程的方法,面向過程的方法包括面向過程需求分析、面向過程設計、面向過程編程、面向過程測試、面向過程維護、面向過程管理。面向過程的方法又稱結構化方法,習慣上叫做結構化分析、結構化設計、結構化編程、結構化測試、結構化維護。面向過程的方法的特點是:程序的執(zhí)行過程不由用戶控制,完全由程序控制。面向過程的方法的優(yōu)點是簡單實用,缺點是維護困難。,1.3.2 面向數(shù)據的方法,面向數(shù)據的方法,也稱為面向元數(shù)據(Metadata)的方法。元數(shù)據是關于數(shù)據的數(shù)據,組織數(shù)據的數(shù)據。,面向數(shù)據方法的特點是:程序的執(zhí)行過程中,根據數(shù)據流動和處理的需要,有時由程序員控制(如數(shù)據庫服務器上觸發(fā)器和存儲
6、過程的執(zhí)行),有時由用戶控制(如用戶瀏覽層上控件的選擇與執(zhí)行)。,面向數(shù)據方法的優(yōu)點是通俗易懂,特別適合信息系統(tǒng)中數(shù)據層(數(shù)據庫服務器)上的設計與實現(xiàn),缺點是實現(xiàn)窗口界面較困難。,1.3.3 面向對象的方法,面向對象方法起源于面向對象編程語言。面向對象方法包括分析、設計和實現(xiàn)活動。它是一種把面向對象的思想運用于軟件開發(fā)過程,指導開發(fā)活動的系統(tǒng)方法,建立在“對象”概念(對象、類和繼承)基礎上的方法學基于對象概念,以對象為中心,以類和繼承為構造機制來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統(tǒng)。,1.3.4 三種開發(fā)方法的比較,面向過程的方法、面向數(shù)據的方法和面向對象的方法這三種方法的比較如
7、表1-1所示。,表1-1 三種開發(fā)方法總結對比,方法名稱,優(yōu)點,缺點,適用情況,面向過程的方法,簡單好學,不適應窗口界面、維護困難,大型工程計算、實時數(shù)據跟蹤處理、各種自動化控制系統(tǒng)、系統(tǒng)軟件實現(xiàn)等領域,面向數(shù)據的方法,通俗易懂,不適應窗口界面,以關系數(shù)據庫管理系統(tǒng)為支撐環(huán)境的信息系統(tǒng)建設,面向對象的方法,功能強大、易于維護,不易掌握,互聯(lián)網時代,完全由用戶交互控制程序執(zhí)行過程的應用軟件和系統(tǒng)軟件的開發(fā),軟件生命周期是指軟件產品或軟件系統(tǒng)從產生、投入使用到被淘汰的全過程。軟件生命周期大致可以分為6個階段:可行性研究、需求分析、軟件設計、編碼、測試和維護。,1.4 軟件生命周期,在軟件工程中,人們通過建立抽象的軟件開發(fā)模型,把軟件生命周期中的各個活動或步驟安排到一個框架中,將軟件開發(fā)的全過程清晰且直觀地表達出來。,常見的軟件開發(fā)模型有瀑布模型、原型模型、增量模型、螺旋模型以及統(tǒng)一軟件開發(fā)過程。,1.5 軟件開發(fā)模型,本章主要介紹了與軟件工程相關的基本概念,同時還介紹了軟件工程的目標和研究內容。軟件生命周期描述了軟件產品的整個生存過程。使用軟件開發(fā)模型來描述軟件開發(fā)各個階段之間的關系,常用的開發(fā)模型有瀑布模型、原型模型、增量模型、螺旋模型和統(tǒng)一軟件開發(fā)過程。,1.6 小結,