




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 軟件工程1 1.1 軟件概述軟件概述 1.2 軟件危機(jī)軟件危機(jī) 1.3 軟件工程軟件工程 1.4 軟件工程的基本原理軟件工程的基本原理1.1 軟件概述2 1717世紀(jì)世紀(jì)6060年代,年代,AdaAda(Augusta Ada LovelaceAugusta Ada Lovelace)成為史上第一個(gè)寫軟件的人,)成為史上第一個(gè)寫軟件的人,她第一次為她第一次為BabbageBabbage的分析機(jī)編制程序,實(shí)現(xiàn)了計(jì)算伯努利函數(shù)、級(jí)數(shù)相乘函數(shù)等的分析機(jī)編制程序,實(shí)現(xiàn)了計(jì)算伯努利函數(shù)、級(jí)數(shù)相乘函數(shù)等功能。也因此,人們公認(rèn)她是世界上第一位軟件工程師。功能。也因此,人們公認(rèn)她是世界上第一位軟件工程
2、師。 2020世紀(jì)世紀(jì)4040年代末,第一臺(tái)電子計(jì)算機(jī)年代末,第一臺(tái)電子計(jì)算機(jī)ENIACENIAC(ElectronicElectronic NumericalNumerical Integrator And CalculatorIntegrator And Calculator)在美國(guó)問世,軟件也隨之誕生,從此很多軟件工程)在美國(guó)問世,軟件也隨之誕生,從此很多軟件工程師陸續(xù)出現(xiàn)。師陸續(xù)出現(xiàn)。 到了到了2020世紀(jì)世紀(jì)6060年代,美國(guó)出現(xiàn)了專門編寫軟件的專業(yè),軟件起到了越來(lái)越突年代,美國(guó)出現(xiàn)了專門編寫軟件的專業(yè),軟件起到了越來(lái)越突出的作用,人們對(duì)軟件的認(rèn)識(shí)也更為深刻。出的作用,人們對(duì)軟件的認(rèn)
3、識(shí)也更為深刻。一、軟件發(fā)展歷程一、軟件發(fā)展歷程 1.1 軟件概述1 1第一階段(第一階段(2020世紀(jì)世紀(jì)5050年代初期至年代初期至2020世紀(jì)世紀(jì)6060年代中期)年代中期) 這個(gè)階段也被稱為程序設(shè)計(jì)階段。軟件生產(chǎn)以個(gè)體化為主;計(jì)算機(jī)的存儲(chǔ)容量這個(gè)階段也被稱為程序設(shè)計(jì)階段。軟件生產(chǎn)以個(gè)體化為主;計(jì)算機(jī)的存儲(chǔ)容量小,運(yùn)算速度比較慢;編寫程序的工具只有低級(jí)語(yǔ)言;軟件規(guī)模不大,幾乎沒有系小,運(yùn)算速度比較慢;編寫程序的工具只有低級(jí)語(yǔ)言;軟件規(guī)模不大,幾乎沒有系統(tǒng)化的標(biāo)準(zhǔn)可遵循,對(duì)軟件開發(fā)也沒有良好的管理方法。統(tǒng)化的標(biāo)準(zhǔn)可遵循,對(duì)軟件開發(fā)也沒有良好的管理方法。2 2第二階段(第二階段(2020世紀(jì)世
4、紀(jì)6060年代中期至年代中期至2020世紀(jì)世紀(jì)7070年代末期)年代末期) 這個(gè)階段也可稱為程序系統(tǒng)階段。在軟件使用中,由于缺乏有效的工程化方法這個(gè)階段也可稱為程序系統(tǒng)階段。在軟件使用中,由于缺乏有效的工程化方法的指導(dǎo),很多軟件不能按計(jì)劃完成,糾正源代碼錯(cuò)誤、變更程序功能等軟件維護(hù)花的指導(dǎo),很多軟件不能按計(jì)劃完成,糾正源代碼錯(cuò)誤、變更程序功能等軟件維護(hù)花費(fèi)了人們更多的精力和資源,到了費(fèi)了人們更多的精力和資源,到了2020世紀(jì)世紀(jì)6060年代中期,出現(xiàn)了所謂的軟件危機(jī)。年代中期,出現(xiàn)了所謂的軟件危機(jī)。3 3第三階段(第三階段(2020世紀(jì)世紀(jì)7070年代末至今)年代末至今) 這個(gè)階段,計(jì)算機(jī)硬件
5、向巨型機(jī)和微型機(jī)兩個(gè)方面發(fā)展;出現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò),這個(gè)階段,計(jì)算機(jī)硬件向巨型機(jī)和微型機(jī)兩個(gè)方面發(fā)展;出現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò),特別是特別是InternetInternet得到了飛速發(fā)展。因此,以軟件產(chǎn)品化、系列化、工程化、得到了飛速發(fā)展。因此,以軟件產(chǎn)品化、系列化、工程化、標(biāo)準(zhǔn)化為特征的軟件產(chǎn)業(yè)迅猛發(fā)展,推動(dòng)了軟件工程學(xué)的進(jìn)步。標(biāo)準(zhǔn)化為特征的軟件產(chǎn)業(yè)迅猛發(fā)展,推動(dòng)了軟件工程學(xué)的進(jìn)步。31.1 軟件概述 軟件軟件是計(jì)算機(jī)系統(tǒng)中與硬件(是計(jì)算機(jī)系統(tǒng)中與硬件(hardwarehardware)相互依存的另一部分,與硬件合為)相互依存的另一部分,與硬件合為一體完成系統(tǒng)功能。一體完成系統(tǒng)功能。軟件定義包括如下幾點(diǎn)
6、:軟件定義包括如下幾點(diǎn):(1 1)功能和性能的指令集(即程序);)功能和性能的指令集(即程序);(2 2)程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)(即相關(guān)數(shù)據(jù));)程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)(即相關(guān)數(shù)據(jù));(3 3)與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文數(shù)據(jù)(即說(shuō)明文檔)。)與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文數(shù)據(jù)(即說(shuō)明文檔)。 隨著計(jì)算機(jī)應(yīng)用的日益普及,說(shuō)明文檔(即各種程序文本、報(bào)告、說(shuō)明、手隨著計(jì)算機(jī)應(yīng)用的日益普及,說(shuō)明文檔(即各種程序文本、報(bào)告、說(shuō)明、手冊(cè)等)在軟件開發(fā)與維護(hù)中體現(xiàn)的價(jià)值超出了軟件產(chǎn)品本身。特別是在軟件日益冊(cè)等)在軟件開發(fā)與維護(hù)中體現(xiàn)的價(jià)值超出了軟件產(chǎn)品本身。特別是在軟件日益成為產(chǎn)品的
7、今天,文檔的作用更加重要了。成為產(chǎn)品的今天,文檔的作用更加重要了。4二、軟件的定義二、軟件的定義 1.1 軟件概述5 1. 1.軟件是一種軟件是一種抽象的邏輯實(shí)體抽象的邏輯實(shí)體。人們無(wú)法看到其具體形態(tài),而必須通過(guò)觀。人們無(wú)法看到其具體形態(tài),而必須通過(guò)觀察、分析、思考、判斷等方式去了解它的特性功能。察、分析、思考、判斷等方式去了解它的特性功能。 2. 2. 軟件是通過(guò)人們的智力活動(dòng),把軟件是通過(guò)人們的智力活動(dòng),把知識(shí)與技術(shù)轉(zhuǎn)化為信息知識(shí)與技術(shù)轉(zhuǎn)化為信息的一種產(chǎn)品,的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來(lái)的。一旦某一軟件被研制成功,只需復(fù)制即可,但是在研制、開發(fā)中被創(chuàng)造出來(lái)的。一旦某一軟件被研制成功
8、,只需復(fù)制即可,但其維護(hù)的工作量大。其維護(hù)的工作量大。 3. 3. 軟件具有軟件具有“復(fù)雜性復(fù)雜性”,開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)的限制。,開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)的限制。 4. 4. 軟件軟件成本昂貴成本昂貴,開發(fā)方式目前尚未擺脫手工生產(chǎn)方式。,開發(fā)方式目前尚未擺脫手工生產(chǎn)方式。 5. 5. 在軟件的運(yùn)行和使用期間,不存在硬件那樣的機(jī)器磨損、老化問題。但是在軟件的運(yùn)行和使用期間,不存在硬件那樣的機(jī)器磨損、老化問題。但是軟件也存在退化問題,也需要軟件也存在退化問題,也需要維護(hù)維護(hù)。三、軟件的特點(diǎn)三、軟件的特點(diǎn) 6硬件失效率曲線硬件失效率曲線軟件失效率曲線軟件失效率曲線1.1 軟件概述1.1
9、 軟件概述7四、軟件的分類四、軟件的分類 1 1基于軟件的功能劃分基于軟件的功能劃分(1 1)系統(tǒng)軟件)系統(tǒng)軟件系統(tǒng)軟件是與計(jì)算機(jī)硬件緊密配合居于計(jì)算機(jī)系統(tǒng)中最靠近硬件系統(tǒng)軟件是與計(jì)算機(jī)硬件緊密配合居于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層。的一層。例如,設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)等。例如,設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)等。 (2 2)支撐軟件)支撐軟件支撐軟件是協(xié)助用戶開發(fā)軟件的工具性軟件。支撐軟件是協(xié)助用戶開發(fā)軟件的工具性軟件。例如,網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理程序等。例如,網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理程序等。 (3 3)應(yīng)用軟件)應(yīng)用軟件應(yīng)用軟件是在特定領(lǐng)域內(nèi)開發(fā)、為特定目的服務(wù)的軟件。應(yīng)用軟件是在特定領(lǐng)域內(nèi)開發(fā)、為特定目的
10、服務(wù)的軟件。例如,工程與科學(xué)計(jì)算軟件、系統(tǒng)仿真和人工智能軟件等。例如,工程與科學(xué)計(jì)算軟件、系統(tǒng)仿真和人工智能軟件等。1.1 軟件概述2 2基于軟件規(guī)模劃分基于軟件規(guī)模劃分(1 1)微型軟件微型軟件是指一個(gè)人在幾天內(nèi)完成、程序不超過(guò)是指一個(gè)人在幾天內(nèi)完成、程序不超過(guò)500500行語(yǔ)句且供個(gè)人專用的行語(yǔ)句且供個(gè)人專用的軟件。這類軟件沒有嚴(yán)格的分析和完整的設(shè)計(jì)與測(cè)試。軟件。這類軟件沒有嚴(yán)格的分析和完整的設(shè)計(jì)與測(cè)試。(2 2)小型軟件小型軟件是指由一個(gè)人在半年內(nèi)完成的是指由一個(gè)人在半年內(nèi)完成的20002000行語(yǔ)句以內(nèi)的程序。這種程序需行語(yǔ)句以內(nèi)的程序。這種程序需要有一定的標(biāo)準(zhǔn)化技術(shù)、正規(guī)的數(shù)據(jù)書寫以
11、及定期的系統(tǒng)審查,但沒有大型軟要有一定的標(biāo)準(zhǔn)化技術(shù)、正規(guī)的數(shù)據(jù)書寫以及定期的系統(tǒng)審查,但沒有大型軟件那樣嚴(yán)格。件那樣嚴(yán)格。(3 3)中型軟件中型軟件是指由是指由5 5個(gè)人以內(nèi)在一年多的時(shí)間里完成的個(gè)人以內(nèi)在一年多的時(shí)間里完成的500050005000050000行語(yǔ)句的程行語(yǔ)句的程序。中型軟件開始出現(xiàn)軟件人員之間、軟件人員與用戶之間的協(xié)調(diào)配合方面的序。中型軟件開始出現(xiàn)軟件人員之間、軟件人員與用戶之間的協(xié)調(diào)配合方面的問題,因而在開發(fā)中使用軟件工程方法是很必要的。問題,因而在開發(fā)中使用軟件工程方法是很必要的。(4 4)大型軟件大型軟件指指5 51010個(gè)人在兩年多的時(shí)間里完成的個(gè)人在兩年多的時(shí)間里
12、完成的5000050000到到100000100000行語(yǔ)句的程序。行語(yǔ)句的程序。在大型軟件中采用軟件工程方法進(jìn)行規(guī)劃可以有效解決和避免突發(fā)事件,減少在大型軟件中采用軟件工程方法進(jìn)行規(guī)劃可以有效解決和避免突發(fā)事件,減少危害性。危害性。(5 5)甚大型軟件甚大型軟件指指10010010001000人在人在4 45 5年時(shí)間里完成的具有年時(shí)間里完成的具有100100萬(wàn)行語(yǔ)句規(guī)模的程萬(wàn)行語(yǔ)句規(guī)模的程序的軟件項(xiàng)目。這種項(xiàng)目可能會(huì)被劃分成很多子項(xiàng)目,子項(xiàng)目間要建立復(fù)雜的序的軟件項(xiàng)目。這種項(xiàng)目可能會(huì)被劃分成很多子項(xiàng)目,子項(xiàng)目間要建立復(fù)雜的接口。接口。(6 6)極大型軟件極大型軟件指指20002000500
13、05000人在人在1010年內(nèi)完成的年內(nèi)完成的10001000萬(wàn)行以內(nèi)語(yǔ)句的程序。這類萬(wàn)行以內(nèi)語(yǔ)句的程序。這類軟件一般用于軍事指揮、彈道防御系統(tǒng)等項(xiàng)目。軟件一般用于軍事指揮、彈道防御系統(tǒng)等項(xiàng)目。81.1 軟件概述3 3基于軟件工作方式劃分基于軟件工作方式劃分(1 1)實(shí)時(shí)處理軟件實(shí)時(shí)處理軟件 指在事件或數(shù)據(jù)產(chǎn)生時(shí),立即處理,并及時(shí)反饋信號(hào),以控制需要監(jiān)測(cè)的部指在事件或數(shù)據(jù)產(chǎn)生時(shí),立即處理,并及時(shí)反饋信號(hào),以控制需要監(jiān)測(cè)的部 分和控制過(guò)程的軟件。分和控制過(guò)程的軟件。(2 2)分時(shí)軟件分時(shí)軟件 允許多個(gè)聯(lián)機(jī)用戶同時(shí)使用計(jì)算機(jī)的軟件。系統(tǒng)把處理機(jī)事件輪流分配給聯(lián)允許多個(gè)聯(lián)機(jī)用戶同時(shí)使用計(jì)算機(jī)的軟件。
14、系統(tǒng)把處理機(jī)事件輪流分配給聯(lián)機(jī)用戶,但用戶感覺是只有自己在使用計(jì)算機(jī)。機(jī)用戶,但用戶感覺是只有自己在使用計(jì)算機(jī)。(3 3)交互式軟件交互式軟件 能實(shí)現(xiàn)人機(jī)通信的軟件。這類軟件接收用戶給出的信息,但在時(shí)間上沒有嚴(yán)能實(shí)現(xiàn)人機(jī)通信的軟件。這類軟件接收用戶給出的信息,但在時(shí)間上沒有嚴(yán)格的限定。這種工作方式給予用戶很大的靈活度。格的限定。這種工作方式給予用戶很大的靈活度。(4 4)批處理軟件批處理軟件 把一組輸入作業(yè)或一批數(shù)據(jù)以成批處理的方式一次運(yùn)行,按順序逐個(gè)處理的把一組輸入作業(yè)或一批數(shù)據(jù)以成批處理的方式一次運(yùn)行,按順序逐個(gè)處理的軟件。軟件。91.2軟件危機(jī)10 軟件危機(jī)軟件危機(jī)是計(jì)算機(jī)軟件在它的開發(fā)
15、和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問題。是計(jì)算機(jī)軟件在它的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問題。主要包含兩方面的問題:一方面是如何開發(fā)軟件,怎樣滿足對(duì)軟件日益增長(zhǎng)的需求主要包含兩方面的問題:一方面是如何開發(fā)軟件,怎樣滿足對(duì)軟件日益增長(zhǎng)的需求;另一方面是如何維護(hù)數(shù)量不斷膨脹的已有軟件。;另一方面是如何維護(hù)數(shù)量不斷膨脹的已有軟件。一、軟件危機(jī)的定義一、軟件危機(jī)的定義 二、產(chǎn)生軟件危機(jī)的原因二、產(chǎn)生軟件危機(jī)的原因 一、與軟件本身的特點(diǎn)有關(guān)一、與軟件本身的特點(diǎn)有關(guān)二、與軟件開發(fā)和維護(hù)的方法不正確有關(guān)。二、與軟件開發(fā)和維護(hù)的方法不正確有關(guān)。111.2軟件危機(jī)軟件危機(jī)的產(chǎn)生,與以下因素有著密切的關(guān)系:軟件危
16、機(jī)的產(chǎn)生,與以下因素有著密切的關(guān)系:(1 1)軟件是計(jì)算機(jī)系統(tǒng)的邏輯部件,缺乏)軟件是計(jì)算機(jī)系統(tǒng)的邏輯部件,缺乏“可見性可見性”,且軟件產(chǎn)品往往規(guī)模龐大,且軟件產(chǎn)品往往規(guī)模龐大,給軟件的開發(fā)和維護(hù)帶來(lái)了客觀的困難。給軟件的開發(fā)和維護(hù)帶來(lái)了客觀的困難。(2 2)軟件一般要使用)軟件一般要使用5 51010年,在這段時(shí)間里,可能會(huì)出現(xiàn)當(dāng)初沒有預(yù)料的問題。年,在這段時(shí)間里,可能會(huì)出現(xiàn)當(dāng)初沒有預(yù)料的問題。如系統(tǒng)運(yùn)行的環(huán)境發(fā)生變化、軟件需求發(fā)生變化等,都需要及時(shí)地對(duì)軟件進(jìn)行維如系統(tǒng)運(yùn)行的環(huán)境發(fā)生變化、軟件需求發(fā)生變化等,都需要及時(shí)地對(duì)軟件進(jìn)行維護(hù)和更新,以延長(zhǎng)軟件的使用壽命。護(hù)和更新,以延長(zhǎng)軟件的使用壽
17、命。(3 3)軟件的開發(fā)技術(shù)落后,生產(chǎn)方式和開發(fā)工具落后。)軟件的開發(fā)技術(shù)落后,生產(chǎn)方式和開發(fā)工具落后。(4 4)軟件開發(fā)人員忽視軟件需求分析的重要性,輕視軟件的維護(hù),也是造成軟件)軟件開發(fā)人員忽視軟件需求分析的重要性,輕視軟件的維護(hù),也是造成軟件危機(jī)的原因。危機(jī)的原因。1.2軟件危機(jī)12三、軟件危機(jī)的表現(xiàn)形式三、軟件危機(jī)的表現(xiàn)形式 1.1.軟件發(fā)展速度跟不上硬件的發(fā)展和用戶的實(shí)際需求軟件發(fā)展速度跟不上硬件的發(fā)展和用戶的實(shí)際需求 計(jì)算機(jī)硬件發(fā)展迅速,生產(chǎn)成本逐年下降,呈現(xiàn)出迅速普及和深入的趨勢(shì),計(jì)算機(jī)硬件發(fā)展迅速,生產(chǎn)成本逐年下降,呈現(xiàn)出迅速普及和深入的趨勢(shì),而軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不
18、上發(fā)展的要求,使人們不能充分利用計(jì)算而軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不上發(fā)展的要求,使人們不能充分利用計(jì)算機(jī)硬件提供的巨大潛力。機(jī)硬件提供的巨大潛力。2 2對(duì)軟件開發(fā)成本和進(jìn)度估計(jì)不準(zhǔn)確使用戶不滿意對(duì)軟件開發(fā)成本和進(jìn)度估計(jì)不準(zhǔn)確使用戶不滿意 由于軟件應(yīng)用范圍的擴(kuò)大,軟件開發(fā)者對(duì)某些領(lǐng)域不熟悉,再加上和用戶交由于軟件應(yīng)用范圍的擴(kuò)大,軟件開發(fā)者對(duì)某些領(lǐng)域不熟悉,再加上和用戶交流少,使得對(duì)軟件開發(fā)成本的估算偏低,實(shí)際進(jìn)度比預(yù)期進(jìn)度推遲。流少,使得對(duì)軟件開發(fā)成本的估算偏低,實(shí)際進(jìn)度比預(yù)期進(jìn)度推遲。3. 3. 軟件產(chǎn)品的質(zhì)量差軟件產(chǎn)品的質(zhì)量差軟件質(zhì)量保證技術(shù)沒有應(yīng)用到軟件開發(fā)的全部過(guò)程,導(dǎo)致了軟件產(chǎn)品的
19、質(zhì)量軟件質(zhì)量保證技術(shù)沒有應(yīng)用到軟件開發(fā)的全部過(guò)程,導(dǎo)致了軟件產(chǎn)品的質(zhì)量問題頻繁發(fā)生。問題頻繁發(fā)生。1.2軟件危機(jī)134. 4. 軟件產(chǎn)品的可維護(hù)性差軟件產(chǎn)品的可維護(hù)性差 軟件設(shè)計(jì)時(shí)不注重程序的可讀性,程序中出現(xiàn)的很多錯(cuò)誤難以改正,這些程軟件設(shè)計(jì)時(shí)不注重程序的可讀性,程序中出現(xiàn)的很多錯(cuò)誤難以改正,這些程序也就不能很好地適應(yīng)硬件環(huán)境的發(fā)展,對(duì)于用戶提出的新需求不能在原程序的序也就不能很好地適應(yīng)硬件環(huán)境的發(fā)展,對(duì)于用戶提出的新需求不能在原程序的基礎(chǔ)上增加功能,造成軟件的不可重用,維護(hù)困難,從而影響到產(chǎn)品的壽命?;A(chǔ)上增加功能,造成軟件的不可重用,維護(hù)困難,從而影響到產(chǎn)品的壽命。5 5軟件文檔資料不完
20、整軟件文檔資料不完整 計(jì)算機(jī)軟件不僅僅是程序,還應(yīng)該包括完整的文檔資料。這些文檔資料應(yīng)該計(jì)算機(jī)軟件不僅僅是程序,還應(yīng)該包括完整的文檔資料。這些文檔資料應(yīng)該是在軟件開發(fā)過(guò)程中生產(chǎn)出來(lái)的,而且應(yīng)該是和程序代碼完全一致的。通過(guò)軟件是在軟件開發(fā)過(guò)程中生產(chǎn)出來(lái)的,而且應(yīng)該是和程序代碼完全一致的。通過(guò)軟件危機(jī)的表現(xiàn)形式,可以得出結(jié)論,在軟件開發(fā)和維護(hù)過(guò)程中存在著嚴(yán)重的問題。危機(jī)的表現(xiàn)形式,可以得出結(jié)論,在軟件開發(fā)和維護(hù)過(guò)程中存在著嚴(yán)重的問題。這些問題一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法有這些問題一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法有關(guān)。關(guān)。1.2軟件危機(jī) (
21、1 1)加強(qiáng)軟件開發(fā)過(guò)程的管理,構(gòu)建良好的組織、嚴(yán)密的管理和協(xié)調(diào)工作的)加強(qiáng)軟件開發(fā)過(guò)程的管理,構(gòu)建良好的組織、嚴(yán)密的管理和協(xié)調(diào)工作的機(jī)制。機(jī)制。 (2 2)推廣使用開發(fā)軟件的成功技術(shù)與方法,探索更好的、更有效的技術(shù)和方)推廣使用開發(fā)軟件的成功技術(shù)與方法,探索更好的、更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的錯(cuò)誤概念。法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的錯(cuò)誤概念。 (3 3)開發(fā)和使用好的軟件工具,在適當(dāng)?shù)能浖ぞ叩闹С窒?,開發(fā)人員可以)開發(fā)和使用好的軟件工具,在適當(dāng)?shù)能浖ぞ叩闹С窒拢_發(fā)人員可以更好地完成工作。更好地完成工作。 總之,解決軟件危機(jī)既有技術(shù)措施,又有管理
22、措施。軟件工程正是從這兩個(gè)總之,解決軟件危機(jī)既有技術(shù)措施,又有管理措施。軟件工程正是從這兩個(gè)方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。14四、解決軟件危機(jī)的途徑四、解決軟件危機(jī)的途徑 1.3軟件工程15一、軟件工程的定義一、軟件工程的定義 “ “軟件工程軟件工程”一詞是一詞是19681968年北大西洋公約組織(年北大西洋公約組織(NATONATO)在聯(lián)邦德國(guó)召開的一)在聯(lián)邦德國(guó)召開的一次會(huì)議上首次提出的,這個(gè)會(huì)議專門討論了軟件危機(jī)問題次會(huì)議上首次提出的,這個(gè)會(huì)議專門討論了軟件危機(jī)問題. .這反映了軟件人員認(rèn)識(shí)這反映了軟件人員認(rèn)識(shí)
23、到軟件危機(jī)的出現(xiàn)及謀求解決這一危機(jī)的努力,因此,這次會(huì)議被看作是軟件發(fā)到軟件危機(jī)的出現(xiàn)及謀求解決這一危機(jī)的努力,因此,這次會(huì)議被看作是軟件發(fā)展史上一個(gè)重要的里程碑。到現(xiàn)在,軟件工程走過(guò)了展史上一個(gè)重要的里程碑。到現(xiàn)在,軟件工程走過(guò)了4040多年的歷程。在這多年的歷程。在這4040多年多年的發(fā)展中,人們針對(duì)軟件危機(jī)的表現(xiàn)和原因,經(jīng)過(guò)不斷的實(shí)踐和總結(jié),越來(lái)越認(rèn)的發(fā)展中,人們針對(duì)軟件危機(jī)的表現(xiàn)和原因,經(jīng)過(guò)不斷的實(shí)踐和總結(jié),越來(lái)越認(rèn)識(shí)到,按照工程化的原則和方法組織軟件開發(fā)工作是擺脫軟件危機(jī)的一個(gè)主要出識(shí)到,按照工程化的原則和方法組織軟件開發(fā)工作是擺脫軟件危機(jī)的一個(gè)主要出路。目前,盡管軟件危機(jī)并沒有被徹
24、底解決,但軟件工程的發(fā)展可以說(shuō)碩果累累。路。目前,盡管軟件危機(jī)并沒有被徹底解決,但軟件工程的發(fā)展可以說(shuō)碩果累累。1 1著名的軟件工程專家著名的軟件工程專家B.W.BoehmB.W.Boehm對(duì)軟件工程的定義對(duì)軟件工程的定義 “軟件工程軟件工程”是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法。這個(gè)定義概括了軟是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法。這個(gè)定義概括了軟件工程是一種系統(tǒng)方法,而不是單獨(dú)的個(gè)人技巧的體現(xiàn)。件工程是一種系統(tǒng)方法,而不是單獨(dú)的個(gè)人技巧的體現(xiàn)。2 2Frize BauerFrize Bauer在在NATONATO會(huì)議上對(duì)軟件工程的定義會(huì)議上對(duì)軟件工程的定義盡力使用完善的工程化原則,以較
25、經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行盡力使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。的可靠軟件的一系列方法。3 3IEEEIEEE在軟件工程術(shù)語(yǔ)匯編中的定義在軟件工程術(shù)語(yǔ)匯編中的定義IEEEIEEE對(duì)軟件工程給出了更加全面的定義。軟件工程是把系統(tǒng)化的、規(guī)范化的、對(duì)軟件工程給出了更加全面的定義。軟件工程是把系統(tǒng)化的、規(guī)范化的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的過(guò)程并研究其實(shí)現(xiàn)途徑,即把工程可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的過(guò)程并研究其實(shí)現(xiàn)途徑,即把工程 化的方法應(yīng)用于軟件中。化的方法應(yīng)用于軟件中。1.3軟件工程 除以上定義外,軟件工程還有許多
26、其他的定義,但其基本思想都是強(qiáng)調(diào)在軟件除以上定義外,軟件工程還有許多其他的定義,但其基本思想都是強(qiáng)調(diào)在軟件開發(fā)過(guò)程中應(yīng)用工程化原則,解決軟件的整體質(zhì)量較低、最后期限和費(fèi)用沒有開發(fā)過(guò)程中應(yīng)用工程化原則,解決軟件的整體質(zhì)量較低、最后期限和費(fèi)用沒有保證等問題保證等問題。16(1 1)質(zhì)量保證層:支持軟件工程的根基就在)質(zhì)量保證層:支持軟件工程的根基就在于對(duì)質(zhì)量的關(guān)注。于對(duì)質(zhì)量的關(guān)注。(2 2)過(guò)程層:與方法層結(jié)合在一起,定義了)過(guò)程層:與方法層結(jié)合在一起,定義了一組關(guān)鍵過(guò)程域框架,目的是保證軟件工程一組關(guān)鍵過(guò)程域框架,目的是保證軟件工程技術(shù)被有效地利用,使得軟件能夠被及時(shí)地、技術(shù)被有效地利用,使得軟
27、件能夠被及時(shí)地、高質(zhì)量地和合理地開發(fā)出來(lái)。高質(zhì)量地和合理地開發(fā)出來(lái)。(3 3)方法層:提供了軟件開發(fā)的各種方法,)方法層:提供了軟件開發(fā)的各種方法,包括如何進(jìn)行軟件需求的分析和設(shè)計(jì),如何包括如何進(jìn)行軟件需求的分析和設(shè)計(jì),如何實(shí)現(xiàn)設(shè)計(jì)、測(cè)試和維護(hù)等方法。實(shí)現(xiàn)設(shè)計(jì)、測(cè)試和維護(hù)等方法。(4 4)工具層:為軟件工程方法和過(guò)程提供了)工具層:為軟件工程方法和過(guò)程提供了自動(dòng)軟件工程工具,可以有效地改善軟件開自動(dòng)軟件工程工具,可以有效地改善軟件開發(fā)過(guò)程,提高軟件開發(fā)的效率,降低開發(fā)和發(fā)過(guò)程,提高軟件開發(fā)的效率,降低開發(fā)和管理成本。管理成本。軟件工程層次結(jié)構(gòu)圖軟件工程層次結(jié)構(gòu)圖1.3軟件工程17 1 1、合理
28、預(yù)算開發(fā)成本,付出較低的開發(fā)費(fèi)用。、合理預(yù)算開發(fā)成本,付出較低的開發(fā)費(fèi)用。2 2、達(dá)到要求的軟件功能,滿足用戶的需求。、達(dá)到要求的軟件功能,滿足用戶的需求。3 3、取得較好的軟件性能。、取得較好的軟件性能。4 4、開發(fā)的軟件易于移植。、開發(fā)的軟件易于移植。5 5、提高開發(fā)軟件的可維護(hù)性,降低維護(hù)費(fèi)用。、提高開發(fā)軟件的可維護(hù)性,降低維護(hù)費(fèi)用。6 6、能按時(shí)完成開發(fā)工作,及時(shí)交付使用。、能按時(shí)完成開發(fā)工作,及時(shí)交付使用。二、軟件工程的目標(biāo)二、軟件工程的目標(biāo)1.3軟件工程18軟件工程目標(biāo)之間的關(guān)系1.3軟件工程序號(hào)序號(hào)研究?jī)?nèi)容研究?jī)?nèi)容具體內(nèi)容具體內(nèi)容1 1軟件開發(fā)模型軟件開發(fā)模型如瀑布模型、增量模型
29、等如瀑布模型、增量模型等2 2軟件開發(fā)方法軟件開發(fā)方法如面向過(guò)程方法、面向數(shù)據(jù)結(jié)構(gòu)方法、面向?qū)θ缑嫦蜻^(guò)程方法、面向數(shù)據(jù)結(jié)構(gòu)方法、面向?qū)ο蠓椒ǖ认蠓椒ǖ? 3軟件支持過(guò)程軟件支持過(guò)程如如CASECASE工具工具ROSEROSE、Power DesignerPower Designer等等 4 4軟件管理過(guò)程軟件管理過(guò)程如如ISO 9000ISO 9000、CMMCMM(軟件能力成熟度模型)等(軟件能力成熟度模型)等 19三、軟件工程的研究?jī)?nèi)容三、軟件工程的研究?jī)?nèi)容現(xiàn)代軟件工程研究的內(nèi)容現(xiàn)代軟件工程研究的內(nèi)容1.3軟件工程 軟件開發(fā)模型軟件開發(fā)模型是描述軟件開發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型;是描述
30、軟件開發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型; 軟件開發(fā)方法軟件開發(fā)方法是使用定義好的計(jì)數(shù)集和符號(hào)來(lái)表示習(xí)慣,以組織軟件生產(chǎn)是使用定義好的計(jì)數(shù)集和符號(hào)來(lái)表示習(xí)慣,以組織軟件生產(chǎn)過(guò)程的方法;過(guò)程的方法; 軟件工程中的過(guò)程軟件工程中的過(guò)程,是指軟件生命周期中的時(shí)間序列,它有起始點(diǎn)和終,是指軟件生命周期中的時(shí)間序列,它有起始點(diǎn)和終止點(diǎn),軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段的生產(chǎn)工具組成,止點(diǎn),軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段的生產(chǎn)工具組成,如需求分析工具、設(shè)計(jì)工具實(shí)現(xiàn)工具、測(cè)試工具和開發(fā)環(huán)境等;如需求分析工具、設(shè)計(jì)工具實(shí)現(xiàn)工具、測(cè)試工具和開發(fā)環(huán)境等; 軟件工程的管理過(guò)程軟件工程的管理過(guò)程,能保證改進(jìn)企業(yè)的管理過(guò)程,并最終促進(jìn)產(chǎn)品質(zhì),能保證改進(jìn)企業(yè)的管理過(guò)程,并最終促進(jìn)產(chǎn)品質(zhì)量的提高,但是不能保證企業(yè)軟量的提高,但是不能保證企業(yè)軟100%合格。合格。201.4軟件工程的基本原理
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老機(jī)構(gòu)授權(quán)委托書模板
- 2025至2030年中國(guó)麥芽糖行業(yè)市場(chǎng)深度分析及投資策略咨詢報(bào)告
- MySQL數(shù)據(jù)庫(kù)應(yīng)用實(shí)戰(zhàn)教程(慕課版)(第2版)實(shí)訓(xùn)指導(dǎo)-9-1 用戶管理
- 個(gè)人對(duì)個(gè)人紙質(zhì)版的協(xié)議合同
- 關(guān)于合同差價(jià)的補(bǔ)充協(xié)議
- 江蘇省常州市2024-2025學(xué)年八年級(jí)下學(xué)期期末考試道德與法治試卷(含答案)
- 農(nóng)村建房加盟協(xié)議書范本
- 廣東省韶關(guān)市2024-2025學(xué)年七年級(jí)下學(xué)期期末考試道德與法治試卷(含答案)
- 第20課 《第一次工業(yè)革命》 一課一練 (含答案) 2025-2026學(xué)年統(tǒng)編版歷史九年級(jí)上冊(cè)
- 如何與業(yè)主簽租賃合同協(xié)議
- 2024廣東東莞市橋頭實(shí)業(yè)投資控股有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 頭孢他啶的毒理學(xué)研究
- GB/T 43657.2-2024工業(yè)車輛能效試驗(yàn)方法第2部分:操作者控制的自行式車輛、牽引車和載運(yùn)車
- 企業(yè)盡調(diào)報(bào)告模板
- 《癌痛的護(hù)理》課件
- 《細(xì)胞培養(yǎng)基礎(chǔ)知識(shí)》課件
- 量具培訓(xùn)機(jī)械
- 醫(yī)院檢驗(yàn)科培訓(xùn)課件:《標(biāo)本溢灑處理流程》
- STK基礎(chǔ)教程完整
- 四級(jí)養(yǎng)老護(hù)理員習(xí)題庫(kù)與參考答案
- 公共廁所新建工程施工組織設(shè)計(jì)投標(biāo)方案
評(píng)論
0/150
提交評(píng)論