版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實用軟件工實用軟件工程程(第第3版版)第第1章章 軟件工程的內(nèi)容與方法軟件工程的內(nèi)容與方法 本章對軟件、軟件工程、軟件工程學(xué)科體系、軟本章對軟件、軟件工程、軟件工程學(xué)科體系、軟件工程課程進行了定義。件工程課程進行了定義。 本章提出了本章提出了“面向面向過程過程方法、面向方法、面向?qū)ο髮ο蠓椒?、面方法、面向向元?shù)據(jù)元數(shù)據(jù)方法、方法、形式化形式化方法方法”的的軟件工程方法論軟件工程方法論,以及以及“面向面向流程流程分析、面向分析、面向元數(shù)據(jù)元數(shù)據(jù)設(shè)計、面向設(shè)計、面向?qū)ο笙髮崿F(xiàn)、面向?qū)崿F(xiàn)、面向功能功能測試、面向測試、面向過程過程管理管理”的的“五五個面向個面向”軟件工程實踐論軟件工程實踐論。 本章
2、還簡介了本章還簡介了ISO9001、CMMI、軟件企業(yè)文化、軟件企業(yè)文化、信息系統(tǒng)的定義與案例分析。信息系統(tǒng)的定義與案例分析。 本章既是軟件工程課程的緒論,又是軟件工程課本章既是軟件工程課程的緒論,又是軟件工程課程的總結(jié)。程的總結(jié)。 第第1章章 學(xué)習(xí)要求學(xué)習(xí)要求要要 求求具具 體體 內(nèi)內(nèi) 容容了了 解解 1 1)軟件與軟件危機)軟件與軟件危機 2 2)軟件工程的定義與作用)軟件工程的定義與作用 3 3)軟件工程研究的內(nèi)容)軟件工程研究的內(nèi)容理理 解解 1 1)軟件工程方法論)軟件工程方法論 2 2)軟件工程實踐論)軟件工程實踐論 3 3)CMMI、ISO9001、微軟企業(yè)文化、敏捷文化、微軟企
3、業(yè)文化、敏捷文化現(xiàn)象現(xiàn)象關(guān)關(guān) 注注 1 1)軟件工程的最新發(fā)展)軟件工程的最新發(fā)展 2 2)CASE工具與軟件工程環(huán)境工具與軟件工程環(huán)境 3 3)軟件業(yè)務(wù)基礎(chǔ)平臺)軟件業(yè)務(wù)基礎(chǔ)平臺第第1章章 軟件工程的內(nèi)容與方法軟件工程的內(nèi)容與方法 1.1 軟件的定義軟件的定義 1.2 軟件工程的定義軟件工程的定義 1.3 軟件工程在軟件行業(yè)中的應(yīng)用軟件工程在軟件行業(yè)中的應(yīng)用 1.4 軟件工程方法論軟件工程方法論 1.5 軟件工程實踐論軟件工程實踐論 1.6 軟件支持過程軟件支持過程 1.7 軟件管理過程軟件管理過程 1.8 實例分析實例分析1.1 軟件定義軟件定義 1計算機硬件與軟件計算機硬件與軟件 計算機
4、計算機(Computer)由硬件()由硬件(Hardware)和軟)和軟件(件(Software)組成。)組成。 硬件硬件是看得見、摸得著的電子機械設(shè)備塊,如機是看得見、摸得著的電子機械設(shè)備塊,如機箱、主板、硬盤、光盤、箱、主板、硬盤、光盤、U盤、電源、顯示器、盤、電源、顯示器、鍵盤、鼠標(biāo)、打印機、電纜等等。鍵盤、鼠標(biāo)、打印機、電纜等等。 軟件軟件是依附在硬件上面的程序、數(shù)據(jù)和文檔的集是依附在硬件上面的程序、數(shù)據(jù)和文檔的集合,是指揮控制計算機系統(tǒng)(包括硬件和軟件)合,是指揮控制計算機系統(tǒng)(包括硬件和軟件)工作的神經(jīng)中樞。工作的神經(jīng)中樞。 如果將硬件比做人的身體,那么軟件就相當(dāng)于人如果將硬件比做
5、人的身體,那么軟件就相當(dāng)于人的神經(jīng)中樞和知識才能。的神經(jīng)中樞和知識才能。 軟件分類軟件分類 按功能分:按功能分: (1) 系統(tǒng)軟件系統(tǒng)軟件 ;(2) 支撐軟件;支撐軟件;(3) 應(yīng)用軟件。應(yīng)用軟件。 按規(guī)模分:按規(guī)模分: (1) 小型軟件小型軟件(1-5人年人年); (2) 中型軟件中型軟件(5-50人年人年) (3) 大型軟件大型軟件(50人年以上人年以上)。 按工作方式分:按工作方式分: (1) 實時軟件;實時軟件;(2) 分時軟件;分時軟件;(3) 交互式軟件;交互式軟件; (4) 批處理軟件;批處理軟件;(5) 嵌入式軟件。嵌入式軟件。 按服務(wù)對象分:按服務(wù)對象分: (1) 項目軟件;
6、項目軟件;(2) 產(chǎn)品軟件。產(chǎn)品軟件。 計算機工程計算機工程(Computer Engineering)由硬件)由硬件工程(工程(Hardware Engineering)和軟件工程)和軟件工程(Software Engineering)組成。)組成。 硬件工程硬件工程是研究硬件生產(chǎn)和硬件管理的工程科學(xué),是研究硬件生產(chǎn)和硬件管理的工程科學(xué),其內(nèi)容包括計算機及網(wǎng)絡(luò)硬件的分析、設(shè)計、生其內(nèi)容包括計算機及網(wǎng)絡(luò)硬件的分析、設(shè)計、生產(chǎn)、采購、驗收、安裝、培訓(xùn)、維護。產(chǎn)、采購、驗收、安裝、培訓(xùn)、維護。 軟件工程軟件工程是研究軟件生產(chǎn)和軟件管理的工程科學(xué),是研究軟件生產(chǎn)和軟件管理的工程科學(xué),其內(nèi)容包括市場調(diào)
7、研、正式立項、需求分析、項其內(nèi)容包括市場調(diào)研、正式立項、需求分析、項目策劃、概要設(shè)計、詳細(xì)設(shè)計、編程、測試、試目策劃、概要設(shè)計、詳細(xì)設(shè)計、編程、測試、試運行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、實施、運行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、實施、系統(tǒng)維護、版本升級。系統(tǒng)維護、版本升級。 【例例1-1】請讀者規(guī)劃、設(shè)計、安裝一個校園網(wǎng)。請讀者規(guī)劃、設(shè)計、安裝一個校園網(wǎng)。這是一個硬件工程,工作內(nèi)容包括:制定設(shè)計方這是一個硬件工程,工作內(nèi)容包括:制定設(shè)計方案,網(wǎng)絡(luò)設(shè)備的選型、配置、采購、驗貨、布線、案,網(wǎng)絡(luò)設(shè)備的選型、配置、采購、驗貨、布線、安裝、調(diào)試、運行和交付。在安裝和調(diào)試中,又安裝、調(diào)試、運行和交付。在
8、安裝和調(diào)試中,又要安裝和調(diào)試許多軟件,如網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)要安裝和調(diào)試許多軟件,如網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、教學(xué)軟件系統(tǒng)、辦公自動化系統(tǒng)、庫管理系統(tǒng)、教學(xué)軟件系統(tǒng)、辦公自動化系統(tǒng)、防火墻及殺毒軟件等。防火墻及殺毒軟件等。 由于有這么多軟件也需要選型、配置、采購、安由于有這么多軟件也需要選型、配置、采購、安裝、調(diào)試,所以在今天,除了生產(chǎn)硬件的廠商之裝、調(diào)試,所以在今天,除了生產(chǎn)硬件的廠商之外,純粹的外,純粹的“硬件工程硬件工程”幾乎不存在,大多數(shù)硬幾乎不存在,大多數(shù)硬件工程都與軟件有關(guān),于是就出現(xiàn)了一個新名詞件工程都與軟件有關(guān),于是就出現(xiàn)了一個新名詞“網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程”,它是介于硬件工程和軟
9、件工程之,它是介于硬件工程和軟件工程之間的系統(tǒng)工程,有時也稱它為間的系統(tǒng)工程,有時也稱它為“系統(tǒng)集成工程系統(tǒng)集成工程”。 2軟件定義軟件定義 為了弄清軟件工程的概念,首先要了解程為了弄清軟件工程的概念,首先要了解程序和軟件的概念。程序是計算機為完成特序和軟件的概念。程序是計算機為完成特定任務(wù)而執(zhí)行的指令的有序集合。站在應(yīng)定任務(wù)而執(zhí)行的指令的有序集合。站在應(yīng)用的角度可以更通俗地理解為:用的角度可以更通俗地理解為: 面向過程的程序面向過程的程序 = 算法算法 + 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟮某绦?= 對象對象 + 消息消息 面向構(gòu)件的程序面向構(gòu)件的程序 = 構(gòu)件構(gòu)件 + 構(gòu)架構(gòu)架 通
10、常,軟件有以下定義:通常,軟件有以下定義: 軟件軟件 = 程序程序 + 數(shù)據(jù)數(shù)據(jù) + 文檔文檔 這里的這里的“程序程序”,是對計算機任務(wù)的處理對象和,是對計算機任務(wù)的處理對象和處理規(guī)則的描述;這里的處理規(guī)則的描述;這里的“文檔文檔”,是為了理解,是為了理解程序所需的詳細(xì)描述性資料;這里的程序所需的詳細(xì)描述性資料;這里的“數(shù)據(jù)數(shù)據(jù)”,主要是軟件系統(tǒng)賴以運行的初始化數(shù)據(jù)。主要是軟件系統(tǒng)賴以運行的初始化數(shù)據(jù)。 上述定義來之不易。表上述定義來之不易。表1-3列出了美國人對軟件列出了美國人對軟件定義的認(rèn)識過程。直到今天,仍然有少數(shù)人認(rèn)為:定義的認(rèn)識過程。直到今天,仍然有少數(shù)人認(rèn)為:“軟件就等于程序軟件就
11、等于程序”。這些人在軟件開發(fā)的過程。這些人在軟件開發(fā)的過程中,上來就寫程序,而不是寫文檔。軟件工程大中,上來就寫程序,而不是寫文檔。軟件工程大師師Roger S Pressman對這些人提出了尖銳的批對這些人提出了尖銳的批評:評:“越早開始寫代碼的人,就是越遲完成代碼越早開始寫代碼的人,就是越遲完成代碼的人的人”。 年年 代代美國人美國人對軟件定義的認(rèn)識對軟件定義的認(rèn)識20世紀(jì)世紀(jì)50年代年代 軟件就等于程序,軟件系統(tǒng)就是程序系統(tǒng)軟件就等于程序,軟件系統(tǒng)就是程序系統(tǒng)20世紀(jì)世紀(jì)60年代年代 軟件等于程序加文檔。這里的文檔,是指軟件開軟件等于程序加文檔。這里的文檔,是指軟件開發(fā)過程中的分析、設(shè)計
12、、實現(xiàn)、測試、維護文檔,發(fā)過程中的分析、設(shè)計、實現(xiàn)、測試、維護文檔,還不包括管理文檔還不包括管理文檔20世紀(jì)世紀(jì)70年代年代 軟件等于程序加文檔再加數(shù)據(jù),這里的數(shù)據(jù)不僅軟件等于程序加文檔再加數(shù)據(jù),這里的數(shù)據(jù)不僅包括初始化數(shù)據(jù)、測試數(shù)據(jù),而且包括研發(fā)數(shù)據(jù)、包括初始化數(shù)據(jù)、測試數(shù)據(jù),而且包括研發(fā)數(shù)據(jù)、運行數(shù)據(jù)、維護數(shù)據(jù),也包括軟件企業(yè)積累的項運行數(shù)據(jù)、維護數(shù)據(jù),也包括軟件企業(yè)積累的項目工程數(shù)據(jù)和項目管理數(shù)據(jù)中的大量決策原始記目工程數(shù)據(jù)和項目管理數(shù)據(jù)中的大量決策原始記錄數(shù)據(jù)錄數(shù)據(jù) 至于對管理文檔的全面認(rèn)識,那就更晚了。至于對管理文檔的全面認(rèn)識,那就更晚了。 1974年年,美國人才開始認(rèn)識到軟件需要管
13、理。,美國人才開始認(rèn)識到軟件需要管理。 1984年年,美國人開始認(rèn)識到軟件管理是一個過程,美國人開始認(rèn)識到軟件管理是一個過程管理,或是一個管理過程。管理,或是一個管理過程。 1991年年,出現(xiàn)了軟件過程能力成熟度模型,出現(xiàn)了軟件過程能力成熟度模型CMM (Capability Maturity Model for Software)1.0版,人們研究了軟件過程管理的具體內(nèi)容與版,人們研究了軟件過程管理的具體內(nèi)容與方法,并將軟件開發(fā)和管理中產(chǎn)生的各種文檔叫方法,并將軟件開發(fā)和管理中產(chǎn)生的各種文檔叫做做“軟件工作產(chǎn)品軟件工作產(chǎn)品”,而將最后交付給用戶使用,而將最后交付給用戶使用的軟件工作產(chǎn)品叫做的
14、軟件工作產(chǎn)品叫做“軟件產(chǎn)品軟件產(chǎn)品”。 1996年年,出現(xiàn)了統(tǒng)一建模語言,出現(xiàn)了統(tǒng)一建模語言UML 0.9版,稱軟版,稱軟件管理文檔為件管理文檔為“管理制品管理制品”,稱軟件開發(fā)文檔為,稱軟件開發(fā)文檔為“技術(shù)制品技術(shù)制品”,兩者合稱為,兩者合稱為“制品制品(Artifact)”。 3文檔的重要性文檔的重要性 文檔在軟件工程中特別重要,文檔是否規(guī)范與齊文檔在軟件工程中特別重要,文檔是否規(guī)范與齊全,是衡量軟件企業(yè)是否成熟的重要標(biāo)志之一。全,是衡量軟件企業(yè)是否成熟的重要標(biāo)志之一。 軟件文檔分為軟件文檔分為開發(fā)文檔開發(fā)文檔和和管理文檔管理文檔兩大類。開發(fā)兩大類。開發(fā)文檔主要由項目組書寫,用于指導(dǎo)軟件開
15、發(fā)與維文檔主要由項目組書寫,用于指導(dǎo)軟件開發(fā)與維護;管理文檔主要由軟件工程管理部門書寫,用護;管理文檔主要由軟件工程管理部門書寫,用于指導(dǎo)軟件管理和決策。于指導(dǎo)軟件管理和決策。 軟件工程規(guī)定:軟件工程規(guī)定:文檔必須指揮程序文檔必須指揮程序,而決不允許,而決不允許程序指揮文檔;文檔與程序必須保持高度一致,程序指揮文檔;文檔與程序必須保持高度一致,而決不允許程序脫離開文檔。而決不允許程序脫離開文檔。 開發(fā)文檔本身具有嚴(yán)格的開發(fā)文檔本身具有嚴(yán)格的層次關(guān)系層次關(guān)系和和依賴關(guān)系依賴關(guān)系,這種關(guān)系反映在如下的這種關(guān)系反映在如下的覆蓋關(guān)系覆蓋關(guān)系之中,即有:之中,即有: (1)目標(biāo)程序目標(biāo)程序覆蓋覆蓋源程序
16、源程序; (2)源程序源程序覆蓋覆蓋詳細(xì)設(shè)計說明書詳細(xì)設(shè)計說明書; (3)詳細(xì)設(shè)計說明書詳細(xì)設(shè)計說明書覆蓋覆蓋概要設(shè)計說明概要設(shè)計說明書書; (4)概要設(shè)計說明書概要設(shè)計說明書覆蓋覆蓋需求分析規(guī)格需求分析規(guī)格說明書說明書; (5)需求分析規(guī)格說明書需求分析規(guī)格說明書覆蓋覆蓋用戶需求用戶需求報告報告; (6)用戶需求報告用戶需求報告覆蓋覆蓋軟件合同軟件合同/軟軟件任務(wù)書件任務(wù)書。 管理文檔本身具有嚴(yán)格的管理文檔本身具有嚴(yán)格的時序關(guān)系時序關(guān)系,這種,這種時序關(guān)系反映在如下的軟件過程之中,而時序關(guān)系反映在如下的軟件過程之中,而過程由一系列的時間序列所組成的:過程由一系列的時間序列所組成的: (1)需
17、求分析過程管理文檔;)需求分析過程管理文檔; (2)軟件策劃過程管理文檔;)軟件策劃過程管理文檔; (3)軟件設(shè)計過程管理文檔;)軟件設(shè)計過程管理文檔; (4)軟件實現(xiàn)過程管理文檔;)軟件實現(xiàn)過程管理文檔; (5)軟件測試過程管理文檔;)軟件測試過程管理文檔; (6)軟件維護過程管理文檔;)軟件維護過程管理文檔; (7)軟件過程改進管理文檔。)軟件過程改進管理文檔。 4軟件最新定義軟件最新定義 軟件軟件 = 知識知識+程序程序+數(shù)據(jù)數(shù)據(jù)+文檔文檔 定義中增加了定義中增加了“知識知識”。對這一定義的討。對這一定義的討論正在進行。論正在進行。 正方正方認(rèn)為:因為軟件是知識在網(wǎng)絡(luò)上的體認(rèn)為:因為軟件
18、是知識在網(wǎng)絡(luò)上的體現(xiàn),所以這個定義非常好。現(xiàn),所以這個定義非常好。 反方反方認(rèn)為:程序、數(shù)據(jù)、文檔本身就是知認(rèn)為:程序、數(shù)據(jù)、文檔本身就是知識的載體與表現(xiàn),所以這個定義是畫蛇添識的載體與表現(xiàn),所以這個定義是畫蛇添足。足。 1.2 軟件工程定義軟件工程定義 1軟件危機軟件危機 軟件工程來源于軟件危機,即先有軟件危軟件工程來源于軟件危機,即先有軟件危機,后有軟件工程。機,后有軟件工程。 二十世紀(jì)六十年代中期,在美國就出現(xiàn)了二十世紀(jì)六十年代中期,在美國就出現(xiàn)了軟件危機(軟件危機(Software Crisis),這種危機),這種危機表現(xiàn)在研發(fā)大型軟件時,軟件開發(fā)的成本表現(xiàn)在研發(fā)大型軟件時,軟件開發(fā)的
19、成本增大、進度延期、維護困難和質(zhì)量得不到增大、進度延期、維護困難和質(zhì)量得不到保障。保障。 所謂軟件危機,就是在軟件開發(fā)和維護過所謂軟件危機,就是在軟件開發(fā)和維護過程中所遇到一系列難以控制的問題。程中所遇到一系列難以控制的問題。 2軟件工程定義軟件工程定義 1993年,權(quán)威雜志年,權(quán)威雜志IEEE對軟件工程的定義對軟件工程的定義是:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、是:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法,應(yīng)用于軟件開發(fā)、運行和可量化的方法,應(yīng)用于軟件開發(fā)、運行和維護中去。維護中去。 2001年,軟件工程大師年,軟件工程大師Roger S Pressman 對軟件工程的定義是:軟件工對
20、軟件工程的定義是:軟件工程是一個過程、一組方法和一系列工具。程是一個過程、一組方法和一系列工具。 由于軟件技術(shù)是飛速發(fā)展的,所以軟件工由于軟件技術(shù)是飛速發(fā)展的,所以軟件工程的定義也要與時俱進。下面,根據(jù)當(dāng)前程的定義也要與時俱進。下面,根據(jù)當(dāng)前軟件技術(shù)的進展?fàn)顩r,給出現(xiàn)代軟件工程軟件技術(shù)的進展?fàn)顩r,給出現(xiàn)代軟件工程的最新定義。的最新定義。 【定義定義1-1】軟件工程是研究軟件工程是研究軟件開發(fā)軟件開發(fā)和和軟件管軟件管理理的一門的一門工程學(xué)科工程學(xué)科。 這里,一是強調(diào)開發(fā),二是強調(diào)管理,三是強調(diào)這里,一是強調(diào)開發(fā),二是強調(diào)管理,三是強調(diào)工程,四是強調(diào)學(xué)科。工程,四是強調(diào)學(xué)科。 開發(fā)和管理是一個問題
21、的相輔相成的兩個方面。開發(fā)和管理是一個問題的相輔相成的兩個方面。許多軟件項目的失敗,不是在開發(fā)技術(shù)上出了問許多軟件項目的失敗,不是在開發(fā)技術(shù)上出了問題,而是在管理過程上出了問題。題,而是在管理過程上出了問題。 要將軟件的開發(fā)當(dāng)作一項工程,既要按照工程的要將軟件的開發(fā)當(dāng)作一項工程,既要按照工程的辦法去開發(fā),又要按照工程的辦法去管理。辦法去開發(fā),又要按照工程的辦法去管理。 時至今日,軟件工程不只是一門課程,而是一個時至今日,軟件工程不只是一門課程,而是一個學(xué)科體系,即軟件工程知識體系。學(xué)科體系,即軟件工程知識體系。 3軟件工程學(xué)科體系軟件工程學(xué)科體系 軟件工程作為一個學(xué)科體系,到本世紀(jì)初軟件工程作
22、為一個學(xué)科體系,到本世紀(jì)初才初步形成。才初步形成。 2001年年4月月18日,美國發(fā)布了軟件工程知日,美國發(fā)布了軟件工程知識體系指南識體系指南SWEBOK(Guide to the Software Engineering Body of Knowledge) 0.95版。版。 2004年,軟件工程學(xué)科體系的內(nèi)容才基本年,軟件工程學(xué)科體系的內(nèi)容才基本確立,就在這一年,美國確立,就在這一年,美國ACM和和IEEE-CS聯(lián)合制訂聯(lián)合制訂SWEBOK 2004年版,它將軟件年版,它將軟件工程學(xué)科體系的知識劃分為如下工程學(xué)科體系的知識劃分為如下10個知識個知識域:域: (1)軟件需求軟件需求(Soft
23、ware Requirements)。 軟件需求是真實世界問題而必須展示的特性。軟件需求是真實世界問題而必須展示的特性。 軟件需求知識域有七個子域:需求基礎(chǔ)、需軟件需求知識域有七個子域:需求基礎(chǔ)、需求過程、需求獲取、需求分析、需求規(guī)格說求過程、需求獲取、需求分析、需求規(guī)格說明、需求確認(rèn)和實踐考慮。明、需求確認(rèn)和實踐考慮。 (2 )軟件設(shè)計軟件設(shè)計(Software Design)。 軟件設(shè)計既是定義一個系統(tǒng)的體系結(jié)構(gòu)、軟件設(shè)計既是定義一個系統(tǒng)的體系結(jié)構(gòu)、組件、接口和其他特征的過程,又是這個組件、接口和其他特征的過程,又是這個過程的結(jié)果。過程的結(jié)果。 軟件設(shè)計知識域有六個子域:軟件設(shè)計基軟件設(shè)計
24、知識域有六個子域:軟件設(shè)計基礎(chǔ)、軟件設(shè)計關(guān)鍵問題、軟件結(jié)構(gòu)與體系礎(chǔ)、軟件設(shè)計關(guān)鍵問題、軟件結(jié)構(gòu)與體系結(jié)構(gòu)、軟件設(shè)計質(zhì)量的分析與評價、軟件結(jié)構(gòu)、軟件設(shè)計質(zhì)量的分析與評價、軟件設(shè)計符號、軟件設(shè)計的策略與方法。設(shè)計符號、軟件設(shè)計的策略與方法。 (3)軟件構(gòu)造軟件構(gòu)造( Software Construction)。 它指通過編碼、驗證、單元測試、集成測它指通過編碼、驗證、單元測試、集成測試和排錯的組合,具體創(chuàng)建一個可以工作試和排錯的組合,具體創(chuàng)建一個可以工作的、有意義的軟件。的、有意義的軟件。 其知識域有三個子域:軟件構(gòu)造基礎(chǔ)、管其知識域有三個子域:軟件構(gòu)造基礎(chǔ)、管理構(gòu)造、實際考慮。理構(gòu)造、實際考慮
25、。 (4)軟件測試軟件測試(Software Testing)。 它是由在有限測試用例集合上,根據(jù)期望它是由在有限測試用例集合上,根據(jù)期望的行為,對程序的行為進行的動態(tài)驗證組的行為,對程序的行為進行的動態(tài)驗證組成,成, 測試用例是實際上無限的執(zhí)行域中適測試用例是實際上無限的執(zhí)行域中適當(dāng)選擇出來的。當(dāng)選擇出來的。 軟件測試域有五個子域:軟件測試基礎(chǔ)和軟件測試域有五個子域:軟件測試基礎(chǔ)和測試級別、測試技術(shù)、需求分析、與測試測試級別、測試技術(shù)、需求分析、與測試相關(guān)的度量、測試過程。相關(guān)的度量、測試過程。 (5)軟件維護軟件維護(Software Maintenance)。 軟件一旦投入運行,就可能出
26、現(xiàn)異常,運軟件一旦投入運行,就可能出現(xiàn)異常,運行環(huán)境可能發(fā)生改變,用戶會提出新的需行環(huán)境可能發(fā)生改變,用戶會提出新的需求。求。 生命周期軟件維護,從軟件交付時開始。生命周期軟件維護,從軟件交付時開始。軟件維護的知識域有四個子域:軟件維護軟件維護的知識域有四個子域:軟件維護基礎(chǔ)、軟件維護的關(guān)鍵問題、維護過程、基礎(chǔ)、軟件維護的關(guān)鍵問題、維護過程、維護技術(shù)。維護技術(shù)。 (6)軟件配置管理軟件配置管理(Software Configuration Management)。 軟件配置是為了系統(tǒng)地控制配置的變更和軟件配置是為了系統(tǒng)地控制配置的變更和維護在整個系統(tǒng)生命周期中的完整性及可維護在整個系統(tǒng)生命周期
27、中的完整性及可追蹤性,而標(biāo)志軟件在時間上不同點的配追蹤性,而標(biāo)志軟件在時間上不同點的配置的學(xué)科。置的學(xué)科。 軟件配置管理域有六個子域:軟件配置管軟件配置管理域有六個子域:軟件配置管理過程管理、軟件配置標(biāo)志、軟件配置控理過程管理、軟件配置標(biāo)志、軟件配置控制、軟件配置狀態(tài)統(tǒng)計、軟件配置審核、制、軟件配置狀態(tài)統(tǒng)計、軟件配置審核、軟件發(fā)行管理和交付。軟件發(fā)行管理和交付。 (7)軟件工程管理軟件工程管理(Software Engineering Management)。 處理軟件工程的管理與度量,雖然度量是處理軟件工程的管理與度量,雖然度量是所有知識域的一個重要方面,但是這里涉所有知識域的一個重要方面,
28、但是這里涉及的是度量程序的專題。及的是度量程序的專題。 軟件工程管理域有六個子域:啟動和范圍軟件工程管理域有六個子域:啟動和范圍定義、軟件項目計劃、軟件項目實施、評定義、軟件項目計劃、軟件項目實施、評審與評價、關(guān)閉、軟件工程度量。前五個審與評價、關(guān)閉、軟件工程度量。前五個覆蓋軟件過程工程管理,第六個描述軟件覆蓋軟件過程工程管理,第六個描述軟件度量的程序。度量的程序。 (8)軟件工程過程軟件工程過程(Software Engineering Process)。 涉及軟件工程過程本身的定義、實現(xiàn)、評涉及軟件工程過程本身的定義、實現(xiàn)、評定、度量、管理、變更和改進。定、度量、管理、變更和改進。 軟件工
29、程過程域有四個子域:過程實施與軟件工程過程域有四個子域:過程實施與改變、過程定義、過程評定、過程和產(chǎn)品改變、過程定義、過程評定、過程和產(chǎn)品度量。度量。 (9)軟件工程工具和方法軟件工程工具和方法(Software Engineering Tool and Method)。 有軟件工程工具、軟件工程方法兩個子域。有軟件工程工具、軟件工程方法兩個子域。 (10)軟件質(zhì)量軟件質(zhì)量(Software Quality)。 處理跨越軟件生命周期過程的軟件質(zhì)量的考慮,處理跨越軟件生命周期過程的軟件質(zhì)量的考慮,由于軟件質(zhì)量在軟件工程中無處不在,其他知識由于軟件質(zhì)量在軟件工程中無處不在,其他知識域也涉及質(zhì)量問題
30、。域也涉及質(zhì)量問題。 軟件質(zhì)量域有三個子域:軟件質(zhì)量基礎(chǔ)、軟件質(zhì)軟件質(zhì)量域有三個子域:軟件質(zhì)量基礎(chǔ)、軟件質(zhì)量過程、實踐考慮。量過程、實踐考慮。 在上述軟件工程學(xué)科體系中,在上述軟件工程學(xué)科體系中,前五個知識域是講前五個知識域是講軟件開發(fā)軟件開發(fā),后五個知識域是講軟件管理后五個知識域是講軟件管理。由此可。由此可見,軟件工程知識體系包括軟件開發(fā)和軟件管理見,軟件工程知識體系包括軟件開發(fā)和軟件管理兩大部分,所以軟件工程的定義也應(yīng)該包括軟件兩大部分,所以軟件工程的定義也應(yīng)該包括軟件開發(fā)和軟件管理兩項內(nèi)容。開發(fā)和軟件管理兩項內(nèi)容。 4軟件工程課程研究的內(nèi)容軟件工程課程研究的內(nèi)容 軟件工程課程與軟件工程學(xué)
31、科體系是有區(qū)軟件工程課程與軟件工程學(xué)科體系是有區(qū)別的:前者是一門課程,或是大學(xué)的軟件別的:前者是一門課程,或是大學(xué)的軟件工程教科書,后者是一個知識體系;前者工程教科書,后者是一個知識體系;前者是一個局部,后者是一個整體。是一個局部,后者是一個整體。 作為一門軟件工程課程,它的研究的內(nèi)容作為一門軟件工程課程,它的研究的內(nèi)容至今沒有統(tǒng)一的說法。可以這么認(rèn)為,軟至今沒有統(tǒng)一的說法??梢赃@么認(rèn)為,軟件工程課程研究的內(nèi)容,應(yīng)該涵蓋件工程課程研究的內(nèi)容,應(yīng)該涵蓋“軟件軟件生命周期模型、軟件開發(fā)方法、軟件支持生命周期模型、軟件開發(fā)方法、軟件支持過程、軟件管理過程過程、軟件管理過程”這四個方面,如表這四個方面
32、,如表1-4所示。所示。 序號序號研究方面研究方面具體內(nèi)容具體內(nèi)容1軟件生命周期模型軟件生命周期模型 如:瀑布模型、增量模型、原型模型、如:瀑布模型、增量模型、原型模型、迭代模型、迭代模型、XP模型模型2軟件開發(fā)方法軟件開發(fā)方法 如:面向過程的方法、面向元數(shù)據(jù)的如:面向過程的方法、面向元數(shù)據(jù)的方法、面向?qū)ο蟮姆椒ǚ椒?、面向?qū)ο蟮姆椒?軟件支持過程軟件支持過程 如:如:CASECASE工具工具RoseRose、北大青鳥系統(tǒng)、北大青鳥系統(tǒng)、Power DesignerPower Designer、ER winER win4軟件管理過程軟件管理過程 如:如:CMMICMMI、軟件企業(yè)文化、敏捷、軟件
33、企業(yè)文化、敏捷(XP)(XP)文化現(xiàn)象文化現(xiàn)象 5軟件工程基本原理軟件工程基本原理 習(xí)慣上,人們常常把軟件工程的方法(開習(xí)慣上,人們常常把軟件工程的方法(開發(fā)方法)、工具(支持方法的工具)、過發(fā)方法)、工具(支持方法的工具)、過程(管理過程)稱為程(管理過程)稱為軟件工程三要素軟件工程三要素。而。而把美國著名的軟件工程專家把美國著名的軟件工程專家B.W Boehm于于1983年提出的年提出的7條原理條原理,作為軟件工程的,作為軟件工程的基本原理。基本原理。 (1)用分階段的生命周期計劃嚴(yán)格管理軟)用分階段的生命周期計劃嚴(yán)格管理軟件開發(fā)。階段劃分為計劃、分析、設(shè)計、件開發(fā)。階段劃分為計劃、分析、
34、設(shè)計、編程、測試和運行維護。編程、測試和運行維護。 (2)堅持進行階段評審。上一階段評審不通過,)堅持進行階段評審。上一階段評審不通過,就不能進入下一階段開發(fā)。就不能進入下一階段開發(fā)。 (3)實行嚴(yán)格的產(chǎn)品版本控制。)實行嚴(yán)格的產(chǎn)品版本控制。 (4)采用現(xiàn)代程序設(shè)計技術(shù)。)采用現(xiàn)代程序設(shè)計技術(shù)。 (5)結(jié)果應(yīng)能清楚地審查。因此,對文檔要有)結(jié)果應(yīng)能清楚地審查。因此,對文檔要有嚴(yán)格要求。嚴(yán)格要求。 (6)開發(fā)小組的成員要少而精。)開發(fā)小組的成員要少而精。 (7)要不斷地改進軟件工程實踐的經(jīng)驗和技術(shù),)要不斷地改進軟件工程實踐的經(jīng)驗和技術(shù),要與時俱進。要與時俱進。 上述七條原理,雖然是在面向過程的
35、程序設(shè)計時上述七條原理,雖然是在面向過程的程序設(shè)計時代(結(jié)構(gòu)化時代)提出來的。但是,直到今天,代(結(jié)構(gòu)化時代)提出來的。但是,直到今天,在面向元數(shù)據(jù)和面向?qū)ο蟮某绦蛟O(shè)計新時代,它在面向元數(shù)據(jù)和面向?qū)ο蟮某绦蛟O(shè)計新時代,它仍然有效。仍然有效。 根據(jù)根據(jù)“與時俱進與時俱進”的原則,還有一條基本原理在的原則,還有一條基本原理在軟件的開發(fā)和管理中特別重要,需要補充進去,軟件的開發(fā)和管理中特別重要,需要補充進去,作為軟件工程的第八條基本原理。作為軟件工程的第八條基本原理。 (8)二八定律二八定律。對軟件項目進度和工作量的估。對軟件項目進度和工作量的估計:一般人主觀上認(rèn)為已經(jīng)完成了計:一般人主觀上認(rèn)為已經(jīng)
36、完成了80%,但實際,但實際上只完成了上只完成了20%;對程序中存在問題的估計:;對程序中存在問題的估計:80%的問題存在于的問題存在于20%的程序之中;對模塊功能的程序之中;對模塊功能的估計:的估計:20%的模塊,實現(xiàn)了的模塊,實現(xiàn)了80%的功能;對人的功能;對人力資源的估計:力資源的估計:20%的人,解決了軟件中的人,解決了軟件中80%的的問題;對投入資金的估計:企業(yè)信息系統(tǒng)中問題;對投入資金的估計:企業(yè)信息系統(tǒng)中80%的問題,可以用的問題,可以用20%的資金來解決。的資金來解決。 研究二八定律的現(xiàn)實意義,在于指導(dǎo)軟件研究二八定律的現(xiàn)實意義,在于指導(dǎo)軟件開發(fā)計劃的制訂與執(zhí)行。開發(fā)計劃的制訂
37、與執(zhí)行。 如果事先掌握了二八定律,就能自覺地用如果事先掌握了二八定律,就能自覺地用二八定律去制訂、跟蹤與執(zhí)行軟件開發(fā)計二八定律去制訂、跟蹤與執(zhí)行軟件開發(fā)計劃。劃。 也就是說,計劃中要用開始的也就是說,計劃中要用開始的20%時間,時間,去完成去完成80%的開發(fā)進度;剩下的開發(fā)進度;剩下20%的進度,的進度,要留下要留下80%的時間去完成。只有這樣,項的時間去完成。只有這樣,項目的開發(fā)計劃與項目的開發(fā)進度才能吻合。目的開發(fā)計劃與項目的開發(fā)進度才能吻合。 6軟件工程在中國軟件工程在中國 1982年,軟件工程的創(chuàng)始人、美藉華人葉祖堯博年,軟件工程的創(chuàng)始人、美藉華人葉祖堯博士士,帶著自己開創(chuàng)的帶著自己開
38、創(chuàng)的“軟件工程學(xué)軟件工程學(xué)”理論來到中國,理論來到中國,成為當(dāng)時中國政府計算機領(lǐng)導(dǎo)小組的顧問。成為當(dāng)時中國政府計算機領(lǐng)導(dǎo)小組的顧問。 1984年,國家科委在北京召開年,國家科委在北京召開“軟件工程軟件工程”大會。大會。會議其間,國防科技大學(xué)陳火旺院士與孟慶余教會議其間,國防科技大學(xué)陳火旺院士與孟慶余教授,宴請了美國軟件工程專家葉祖堯博士。席間,授,宴請了美國軟件工程專家葉祖堯博士。席間,時任美國馬里蘭大學(xué)計算機系主任的葉祖堯博士時任美國馬里蘭大學(xué)計算機系主任的葉祖堯博士說:說:“軟件工程,只有你們長沙軟件工程,只有你們長沙(國防科技大學(xué)國防科技大學(xué))并行機的研究搞的最好!并行機的研究搞的最好!
39、” 巨型機銀河機系列與天河機系列的歷史證明:葉巨型機銀河機系列與天河機系列的歷史證明:葉祖堯的話是對的祖堯的話是對的。1.3 軟件工程作用軟件工程作用 軟件工程是軟件行業(yè)的一門管理科學(xué),也軟件工程是軟件行業(yè)的一門管理科學(xué),也是系統(tǒng)分析員和項目經(jīng)理以上人員必備的是系統(tǒng)分析員和項目經(jīng)理以上人員必備的一種領(lǐng)導(dǎo)藝術(shù),為了將我國的軟件產(chǎn)業(yè)搞一種領(lǐng)導(dǎo)藝術(shù),為了將我國的軟件產(chǎn)業(yè)搞上去,使軟件產(chǎn)業(yè)成為國民經(jīng)濟的支柱產(chǎn)上去,使軟件產(chǎn)業(yè)成為國民經(jīng)濟的支柱產(chǎn)業(yè),使中國早日成為一個軟件大國與軟件業(yè),使中國早日成為一個軟件大國與軟件強國,對于軟件工程的作用,在軟件界怎強國,對于軟件工程的作用,在軟件界怎么強調(diào)也不過分。
40、么強調(diào)也不過分。 為了說明軟件工程的作用,先來看一個例為了說明軟件工程的作用,先來看一個例子。子。 【例例1-3】20世紀(jì)世紀(jì)90年代初,有兩個軟件團年代初,有兩個軟件團隊,一個較大(隊,一個較大(10多人),一個較?。ǘ嗳耍粋€較?。?人),都在開發(fā)財務(wù)系統(tǒng)。人),都在開發(fā)財務(wù)系統(tǒng)。 煙臺的較大的那個團隊,工作不規(guī)范,沒煙臺的較大的那個團隊,工作不規(guī)范,沒有文檔,沒有評審,也沒有團隊協(xié)作精神,有文檔,沒有評審,也沒有團隊協(xié)作精神,結(jié)果開發(fā)出來的產(chǎn)品可維護性差,沒有打結(jié)果開發(fā)出來的產(chǎn)品可維護性差,沒有打開市場,沒有產(chǎn)生經(jīng)濟效益和社會效益,開市場,沒有產(chǎn)生經(jīng)濟效益和社會效益,致使產(chǎn)品與團隊最后
41、同歸于盡。致使產(chǎn)品與團隊最后同歸于盡。 北京的較小的那個團隊,同舟共濟,工作北京的較小的那個團隊,同舟共濟,工作規(guī)范,有正規(guī)文檔,有階段評審,分工明規(guī)范,有正規(guī)文檔,有階段評審,分工明確:確: 一人負(fù)責(zé)原始憑證和輸出報表的收集、歸類和整一人負(fù)責(zé)原始憑證和輸出報表的收集、歸類和整理,這實際上是做需求分析;一人負(fù)責(zé)科目和數(shù)理,這實際上是做需求分析;一人負(fù)責(zé)科目和數(shù)據(jù)字典(代碼表),這實際上是做信息的標(biāo)準(zhǔn)化據(jù)字典(代碼表),這實際上是做信息的標(biāo)準(zhǔn)化與規(guī)范化;一人負(fù)責(zé)記賬憑證的錄入和修改,這與規(guī)范化;一人負(fù)責(zé)記賬憑證的錄入和修改,這實際上是做數(shù)據(jù)庫的設(shè)計和加載工作;一人負(fù)責(zé)實際上是做數(shù)據(jù)庫的設(shè)計和加載
42、工作;一人負(fù)責(zé)日記賬、明細(xì)賬和總賬之間的平衡與對賬,這實日記賬、明細(xì)賬和總賬之間的平衡與對賬,這實際上是做數(shù)據(jù)處理;一人負(fù)責(zé)統(tǒng)計、報表和查詢,際上是做數(shù)據(jù)處理;一人負(fù)責(zé)統(tǒng)計、報表和查詢,這實際上是做數(shù)據(jù)輸出工作;一人負(fù)責(zé)總體設(shè)計這實際上是做數(shù)據(jù)輸出工作;一人負(fù)責(zé)總體設(shè)計和項目管理,這就是項目經(jīng)理的工作。和項目管理,這就是項目經(jīng)理的工作。 較小的那個團隊,后來發(fā)展成為巨大的較小的那個團隊,后來發(fā)展成為巨大的用友軟件用友軟件公司公司。 因為軟件工程來自于軟件企業(yè),又服務(wù)于因為軟件工程來自于軟件企業(yè),又服務(wù)于軟件企業(yè),所以討論它的作用,主要是討軟件企業(yè),所以討論它的作用,主要是討論它在軟件企業(yè)中的作
43、用。論它在軟件企業(yè)中的作用。 從歷史上講從歷史上講,軟件工程的作用,是為了克,軟件工程的作用,是為了克服上個世紀(jì)服上個世紀(jì)60年代出現(xiàn)的軟件危機。年代出現(xiàn)的軟件危機。 從當(dāng)前來講從當(dāng)前來講,軟件工程的作用,就是告訴,軟件工程的作用,就是告訴人們怎樣去開發(fā)軟件和管理軟件。具體地人們怎樣去開發(fā)軟件和管理軟件。具體地講,它表現(xiàn)在與軟件開發(fā)和管理有關(guān)的人講,它表現(xiàn)在與軟件開發(fā)和管理有關(guān)的人員和過程上。為了說明這個問題,首先,員和過程上。為了說明這個問題,首先,來分析一下軟件企業(yè)的人才結(jié)構(gòu),看看這來分析一下軟件企業(yè)的人才結(jié)構(gòu),看看這些人員的工作與軟件工程有什么關(guān)系。些人員的工作與軟件工程有什么關(guān)系。 (
44、1)高層管理人員高層管理人員。他們應(yīng)具備的基本條件是:。他們應(yīng)具備的基本條件是:軟件專業(yè)宏觀知識、軟件工程管理知識,加上商軟件專業(yè)宏觀知識、軟件工程管理知識,加上商業(yè)與資本運作知識。他們要用軟件工程的理論和業(yè)與資本運作知識。他們要用軟件工程的理論和方法,來管理整個公司的軟件業(yè)務(wù)。方法,來管理整個公司的軟件業(yè)務(wù)。 (2)中層項目經(jīng)理和軟件工程師中層項目經(jīng)理和軟件工程師。他們應(yīng)具備。他們應(yīng)具備的基本條件是:系統(tǒng)分析知識、系統(tǒng)設(shè)計知識,的基本條件是:系統(tǒng)分析知識、系統(tǒng)設(shè)計知識,加上項目管理知識。他們要用軟件工程的理論和加上項目管理知識。他們要用軟件工程的理論和方法,來管理項目組的軟件開發(fā)。他們的個人
45、奮方法,來管理項目組的軟件開發(fā)。他們的個人奮斗目標(biāo)是軟件管理專家、分析設(shè)計專家、開發(fā)技斗目標(biāo)是軟件管理專家、分析設(shè)計專家、開發(fā)技術(shù)專家。這兩部分人員,他們是軟件工程的擁有術(shù)專家。這兩部分人員,他們是軟件工程的擁有者和實踐者。者和實踐者。 (3)軟件藍領(lǐng)工人軟件藍領(lǐng)工人。他們應(yīng)具備的基本條件是:。他們應(yīng)具備的基本條件是:掌握閱讀文檔的技能、程序設(shè)計的技巧,加上軟掌握閱讀文檔的技能、程序設(shè)計的技巧,加上軟件測試的知識。他們要用軟件工程的理論和方法,件測試的知識。他們要用軟件工程的理論和方法,來實現(xiàn)軟件項目的軟件功能、性能、接口、界面。來實現(xiàn)軟件項目的軟件功能、性能、接口、界面。 (4)軟件營銷人員
46、軟件營銷人員。他們應(yīng)具備的基本條件是:。他們應(yīng)具備的基本條件是:營銷知識、售前知識,加上軟件工程基本知識。營銷知識、售前知識,加上軟件工程基本知識。他們要用軟件工程的基本思路,來與客戶進行溝他們要用軟件工程的基本思路,來與客戶進行溝通,以贏得客戶的信任。通,以贏得客戶的信任。 (5)軟件實施和維護人員軟件實施和維護人員。他們應(yīng)具備的基本。他們應(yīng)具備的基本條件是:軟件客戶化及安裝、運行、維修技術(shù)。條件是:軟件客戶化及安裝、運行、維修技術(shù)。他們要用軟件工程的基本方法,來實現(xiàn)軟件功能、他們要用軟件工程的基本方法,來實現(xiàn)軟件功能、性能與接口的實施和維護。性能與接口的實施和維護。 (6)軟件售前人員軟件
47、售前人員。他們是軟件公司的產(chǎn)品形。他們是軟件公司的產(chǎn)品形象代表,其奮斗目標(biāo)是:既要成為某個行業(yè)領(lǐng)域象代表,其奮斗目標(biāo)是:既要成為某個行業(yè)領(lǐng)域的產(chǎn)品專家,又要成為該產(chǎn)品的實現(xiàn)顧問。只有的產(chǎn)品專家,又要成為該產(chǎn)品的實現(xiàn)顧問。只有這樣,他們才能看懂招標(biāo)書、寫好投標(biāo)書、講好這樣,他們才能看懂招標(biāo)書、寫好投標(biāo)書、講好投標(biāo)書。投標(biāo)書。 在制作和宣講投標(biāo)書的過程中,有許多與軟件工在制作和宣講投標(biāo)書的過程中,有許多與軟件工程相關(guān)的知識和內(nèi)容,如項目開發(fā)方法、開發(fā)工程相關(guān)的知識和內(nèi)容,如項目開發(fā)方法、開發(fā)工具、開發(fā)環(huán)境、運行環(huán)境、管理方法、質(zhì)量和進具、開發(fā)環(huán)境、運行環(huán)境、管理方法、質(zhì)量和進度控制方法,只有把這些
48、方法寫清講透,用戶才度控制方法,只有把這些方法寫清講透,用戶才能相信認(rèn)可,投標(biāo)才有成功把握。這些知識和內(nèi)能相信認(rèn)可,投標(biāo)才有成功把握。這些知識和內(nèi)容,離不開軟件工程知識的學(xué)習(xí)和教育。容,離不開軟件工程知識的學(xué)習(xí)和教育。 從軟件項目團隊來講從軟件項目團隊來講,軟件工程的作用在于:在,軟件工程的作用在于:在規(guī)定的時間內(nèi),按照規(guī)定的成本,完成預(yù)期質(zhì)量規(guī)定的時間內(nèi),按照規(guī)定的成本,完成預(yù)期質(zhì)量目標(biāo)(軟件的功能、性能和接口達到需求報告標(biāo)目標(biāo)(軟件的功能、性能和接口達到需求報告標(biāo)準(zhǔn))的軟件。準(zhǔn))的軟件。 從軟件企業(yè)本身來講從軟件企業(yè)本身來講,軟件工程的作用在于:持,軟件工程的作用在于:持續(xù)地規(guī)范軟件開發(fā)過
49、程和軟件管理過程,不斷地續(xù)地規(guī)范軟件開發(fā)過程和軟件管理過程,不斷地優(yōu)化軟件組織的個人素質(zhì)和集體素質(zhì),從而逐漸優(yōu)化軟件組織的個人素質(zhì)和集體素質(zhì),從而逐漸增強軟件企業(yè)的市場競爭實力。增強軟件企業(yè)的市場競爭實力。 從軟件大國與強國來講從軟件大國與強國來講,軟件工程的作用在于:,軟件工程的作用在于:它在一個國家的計算機界及軟件界的普及與推廣,它在一個國家的計算機界及軟件界的普及與推廣,可以使這一個國家變?yōu)橐粋€軟件大國,進而變?yōu)榭梢允惯@一個國家變?yōu)橐粋€軟件大國,進而變?yōu)橐粋€軟件強國。一個軟件強國。 從軟件發(fā)展進程來講從軟件發(fā)展進程來講,軟件工程的作用在,軟件工程的作用在于:克服軟件危機,控制軟件進度,節(jié)
50、約于:克服軟件危機,控制軟件進度,節(jié)約開發(fā)成本,提高軟件質(zhì)量。開發(fā)成本,提高軟件質(zhì)量。 從軟件開發(fā)的前景來講從軟件開發(fā)的前景來講,由于軟件開發(fā)的,由于軟件開發(fā)的前景如同開發(fā)大海與開發(fā)藍天,潛力無限前景如同開發(fā)大海與開發(fā)藍天,潛力無限無垠,所以軟件工程的前景也無限無垠。無垠,所以軟件工程的前景也無限無垠。由于軟件工程的作用越來越大,它的地位由于軟件工程的作用越來越大,它的地位也越來越高。以前,軟件工程只是作為一也越來越高。以前,軟件工程只是作為一門課程或一本書?,F(xiàn)在,它作為一個學(xué)科門課程或一本書?,F(xiàn)在,它作為一個學(xué)科體系,設(shè)立了軟件工程專業(yè)和軟件工程學(xué)體系,設(shè)立了軟件工程專業(yè)和軟件工程學(xué)位,產(chǎn)生
51、了有軟件工程碩士和博士學(xué)位。位,產(chǎn)生了有軟件工程碩士和博士學(xué)位。 1.4 軟件工程方法論軟件工程方法論1.4.1 軟件工程方法論的提出軟件工程方法論的提出 長期以來,人們將軟件開發(fā)方法與軟件生命周期長期以來,人們將軟件開發(fā)方法與軟件生命周期模型混為一體,甚至將軟件開發(fā)方法與軟件過程模型混為一體,甚至將軟件開發(fā)方法與軟件過程改進模型也混為一體,因而誤認(rèn)為軟件生命周期改進模型也混為一體,因而誤認(rèn)為軟件生命周期模型或軟件過程改進模型就是軟件開發(fā)方法。模型或軟件過程改進模型就是軟件開發(fā)方法。 例如,他們將迭代模型例如,他們將迭代模型RUP(Rational Unified Process)和過程改善模
52、型和過程改善模型CMMI(Capability Maturity Model Integration)誤認(rèn)為是軟件開發(fā)誤認(rèn)為是軟件開發(fā)方法或軟件工程方法論,這就是有力的證據(jù)。方法或軟件工程方法論,這就是有力的證據(jù)。 事實上,軟件開發(fā)方法與軟件生命周期模型是不事實上,軟件開發(fā)方法與軟件生命周期模型是不同的,軟件開發(fā)方法與軟件過程改進模型就更不同的,軟件開發(fā)方法與軟件過程改進模型就更不相同了。相同了。軟件開發(fā)方法學(xué)來自于程序設(shè)計語言方軟件開發(fā)方法學(xué)來自于程序設(shè)計語言方法學(xué)法學(xué),而軟件生命周期模型或軟件過程改進模型而軟件生命周期模型或軟件過程改進模型與程序設(shè)計語言方法學(xué)無關(guān)與程序設(shè)計語言方法學(xué)無關(guān)。
53、 【定義定義1-2】軟件生命周期模型是指在整個軟件軟件生命周期模型是指在整個軟件生命周期中,軟件開發(fā)過程應(yīng)遵循的生命周期中,軟件開發(fā)過程應(yīng)遵循的開發(fā)路線圖開發(fā)路線圖?;蛘哒f,軟件生命周期模型是軟件開發(fā)全部過程、或者說,軟件生命周期模型是軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架?;顒雍腿蝿?wù)的結(jié)構(gòu)框架。 例如,瀑布模型、增量模型、螺旋模型、噴泉模例如,瀑布模型、增量模型、螺旋模型、噴泉模型、型、XP模型、原型模型和模型、原型模型和RUP迭代模型,它們迭代模型,它們都有各自清晰的開發(fā)路線圖,規(guī)定了各自的開發(fā)都有各自清晰的開發(fā)路線圖,規(guī)定了各自的開發(fā)過程、活動和任務(wù)的結(jié)構(gòu)框架。過程、活動和任務(wù)的結(jié)構(gòu)框架
54、。 【定義定義1-3】軟件開發(fā)方法是指在軟件開發(fā)路線圖軟件開發(fā)方法是指在軟件開發(fā)路線圖中,開發(fā)人員對軟件需求、設(shè)計、實現(xiàn)、維護所采中,開發(fā)人員對軟件需求、設(shè)計、實現(xiàn)、維護所采用的開發(fā)思想、開發(fā)技術(shù)、描述方法、支持工具等。用的開發(fā)思想、開發(fā)技術(shù)、描述方法、支持工具等。 在軟件工程方法學(xué)方面,大體可分為程序設(shè)計方法在軟件工程方法學(xué)方面,大體可分為程序設(shè)計方法學(xué)和軟件開發(fā)方法學(xué),前者是關(guān)于小規(guī)模程序的設(shè)學(xué)和軟件開發(fā)方法學(xué),前者是關(guān)于小規(guī)模程序的設(shè)計方法學(xué),后者是關(guān)于大規(guī)模軟件的開發(fā)方法學(xué)。計方法學(xué),后者是關(guān)于大規(guī)模軟件的開發(fā)方法學(xué)。 在程序設(shè)計方法學(xué)中最基本的方法有:有面向過程在程序設(shè)計方法學(xué)中最基
55、本的方法有:有面向過程程序設(shè)計方法,面向?qū)ο蟪绦蛟O(shè)計方法,面向元數(shù)程序設(shè)計方法,面向?qū)ο蟪绦蛟O(shè)計方法,面向元數(shù)據(jù)(據(jù)(Meta-data)程序設(shè)計方法。)程序設(shè)計方法。 在軟件開發(fā)方法學(xué)中最基本的方法有:有面向過程在軟件開發(fā)方法學(xué)中最基本的方法有:有面向過程方法、面向?qū)ο蠓椒?、面向元?shù)據(jù)方法、形式化方方法、面向?qū)ο蠓椒?、面向元?shù)據(jù)方法、形式化方法,它們就是軟件開發(fā)方法,它們都有各自的開發(fā)法,它們就是軟件開發(fā)方法,它們都有各自的開發(fā)思想、開發(fā)技術(shù)、描述方法、支持工具等。思想、開發(fā)技術(shù)、描述方法、支持工具等。 1.4.2 面向過程方法面向過程方法 面向過程方法面向過程方法(Procedure-or
56、iented method),來自于面向過程的程序設(shè)計語,來自于面向過程的程序設(shè)計語言,如匯編語言、言,如匯編語言、C語言。語言。 面向過程方法包括面向過程需求分析、面面向過程方法包括面向過程需求分析、面向過程設(shè)計、面向過程編程、面向過程測向過程設(shè)計、面向過程編程、面向過程測試、面向過程維護、面向過程管理。試、面向過程維護、面向過程管理。 【定義定義1-4】軟件工程中軟件開發(fā)方法的集軟件工程中軟件開發(fā)方法的集合,稱為合,稱為軟件工程方法論軟件工程方法論。 現(xiàn)在的問題是:到目前為止,軟件工程方現(xiàn)在的問題是:到目前為止,軟件工程方法論中,到底包括哪幾種最基本的軟件開法論中,到底包括哪幾種最基本的軟
57、件開發(fā)方法?這幾種開發(fā)方法,到底存在什么發(fā)方法?這幾種開發(fā)方法,到底存在什么關(guān)系?下面將回答這些問題。關(guān)系?下面將回答這些問題。 面向過程方法,習(xí)慣上稱為傳統(tǒng)軟件工程面向過程方法,習(xí)慣上稱為傳統(tǒng)軟件工程開發(fā)方法,或結(jié)構(gòu)化方法。開發(fā)方法,或結(jié)構(gòu)化方法。 它包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計、結(jié)構(gòu)化它包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計、結(jié)構(gòu)化編程、結(jié)構(gòu)化測試、結(jié)構(gòu)化維護。面向過編程、結(jié)構(gòu)化測試、結(jié)構(gòu)化維護。面向過程的方法,有時又稱面向功能的方法,即程的方法,有時又稱面向功能的方法,即面向功能分析、面向功能設(shè)計、面向功能面向功能分析、面向功能設(shè)計、面向功能編程、面向功能測試、面向功能維護。編程、面向功能測試、面向功
58、能維護。 由此可見,面向過程方法、面向功能方法、由此可見,面向過程方法、面向功能方法、結(jié)構(gòu)化方法,三者是同一個意思。結(jié)構(gòu)化方法,三者是同一個意思。 曾經(jīng)出現(xiàn)過的面向過程方法有:曾經(jīng)出現(xiàn)過的面向過程方法有: (1).面向結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)的開發(fā)方法面向結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)的開發(fā)方法DSSD(Data Structured Systems Development);); (2).面向可維護性和可靠性設(shè)計的面向可維護性和可靠性設(shè)計的Parnas方法;方法; (3).面向數(shù)據(jù)結(jié)構(gòu)設(shè)計的面向數(shù)據(jù)結(jié)構(gòu)設(shè)計的Jackson方法;方法; (4).面向問題設(shè)計的面向問題設(shè)計的PAM方法;方法; (5).面向數(shù)據(jù)流方法。面
59、向數(shù)據(jù)流方法。 上述五種方法的詳細(xì)內(nèi)容,利用百度或上述五種方法的詳細(xì)內(nèi)容,利用百度或Google搜索,都可以在網(wǎng)上查到。搜索,都可以在網(wǎng)上查到。 但是,不管在方法名字上如何稱呼,這五種方法但是,不管在方法名字上如何稱呼,這五種方法在宏觀上都屬于面向過程方法,支持這些方法的在宏觀上都屬于面向過程方法,支持這些方法的是面向過程的結(jié)構(gòu)化編程語言。是面向過程的結(jié)構(gòu)化編程語言。 面向過程方法,設(shè)計時強調(diào)面向過程方法,設(shè)計時強調(diào)模塊化模塊化的思想,的思想,采用采用“自頂向下,逐步求精自頂向下,逐步求精”的技術(shù)對系的技術(shù)對系統(tǒng)進行劃分,統(tǒng)進行劃分,分解和抽象分解和抽象是它的兩個基本是它的兩個基本手段。手段。
60、 面向過程方法編程時采用面向過程方法編程時采用單入口單出口單入口單出口的的控制結(jié)構(gòu),并且只包含控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)順序、選擇和循環(huán)三種結(jié)構(gòu)三種結(jié)構(gòu),目標(biāo)之一是使程序的控制流程,目標(biāo)之一是使程序的控制流程線性化,即程序的線性化,即程序的動態(tài)執(zhí)行順序符合靜態(tài)動態(tài)執(zhí)行順序符合靜態(tài)書寫結(jié)構(gòu)書寫結(jié)構(gòu)。 在面向過程的五種具體方法中,在面向過程的五種具體方法中,面向數(shù)據(jù)面向數(shù)據(jù)流方法最具有代表性流方法最具有代表性。 面向過程的方法,面向過程的方法,來自于來自于20世紀(jì)世紀(jì)6070年年代流行的面向過程的程序設(shè)計語言代流行的面向過程的程序設(shè)計語言,例如,例如,ALGOL,PASCAL,BASIC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人買賣房屋質(zhì)量保證合同模板4篇
- 面包磚道路施工方案
- 2025年廠區(qū)綠化養(yǎng)護與景觀提升服務(wù)合同3篇
- 塔吊四樁基礎(chǔ)施工方案
- 2025年度智能設(shè)備代加工合同書4篇
- 初一月考浙江數(shù)學(xué)試卷
- 3微米波段摻鈥氧化物激光晶體生長及性能研究
- 二零二五版木材行業(yè)綠色認(rèn)證與標(biāo)準(zhǔn)制定合同3篇
- 2025年消防設(shè)施設(shè)備節(jié)能改造設(shè)計與施工合同3篇
- 二零二四年度新能源儲能技術(shù)使用權(quán)合作協(xié)議書范本3篇
- 人教版物理八年級下冊 專項訓(xùn)練卷 (一)力、運動和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級數(shù)學(xué)下冊全冊課件
評論
0/150
提交評論