軟件工程修訂本PPT SE01_第1頁
軟件工程修訂本PPT SE01_第2頁
軟件工程修訂本PPT SE01_第3頁
軟件工程修訂本PPT SE01_第4頁
軟件工程修訂本PPT SE01_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2020年12月5日,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,1,軟件工程Software Engineering,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,2,參考文獻(xiàn),1.邵維忠.面向?qū)ο蟮南到y(tǒng)分析.清華大學(xué)出版社,98 2.邵維忠.面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).清華大學(xué)出版社,03 3.齊志昌,軟件工程 ,高等教育出版社,2004 4.李代平,面向?qū)ο蠓治雠c設(shè)計(jì),冶金工業(yè)出版社,05 5.李代平,軟件工程,冶金工業(yè)出版社,2002,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,3,引論:,1、我們已經(jīng)學(xué)習(xí)過:計(jì)算機(jī)組成原理、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、程序設(shè)計(jì)等課程。 2、是否具備完成一般軟件目標(biāo)能力呢?例如:編寫計(jì)算y

2、=sin(x)的源碼;手機(jī)芯片操作系統(tǒng)(COS)設(shè)計(jì);大學(xué)課表編制系統(tǒng)。等等。 3、要達(dá)到完成上述目標(biāo),我們僅有計(jì)算機(jī)的基礎(chǔ)技術(shù)是不行的。 4、一般情況下,一個(gè)軟件的完成,除了要掌握計(jì)算機(jī)的基礎(chǔ)技術(shù)外,還要有數(shù)學(xué)、物理、電子技術(shù)等 基礎(chǔ)科學(xué)與領(lǐng)域知識(shí)。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,4,5、有了上述技術(shù)還不夠。還要有軟件開發(fā)的專門技術(shù)。例如,我們要編寫問題2中的程序時(shí): 我們發(fā)現(xiàn)要知道他的設(shè)計(jì)是怎樣的; 當(dāng)設(shè)計(jì)該問題時(shí),我們發(fā)現(xiàn)對(duì)該問題要進(jìn)行分析。 我們求解該問題的程序?qū)幔?如果軟件開發(fā)周期比較長(zhǎng),如何應(yīng)付開發(fā)對(duì)象的變化。 參加的人員多的時(shí)候。對(duì)參加人員的分工、布局 軟件質(zhì)量怎

3、么管理?。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,5,6、一個(gè)軟件的開發(fā)用什么工具。 7、開發(fā)中如何與用戶交流與合作,與同伴合作。 8、每一個(gè)軟件技術(shù)人員都希望有軟件項(xiàng)目開發(fā)。那么是不是有投資就可以開發(fā)呢?這就是所謂的可行性問題。 9、如何計(jì)算一個(gè)軟件工程的費(fèi)用與開發(fā)周期。 10、工程中個(gè)人榮譽(yù)與利益。 只有學(xué)習(xí)軟件工程,才能回答上述問題。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,6,主要內(nèi)容,第一部分基礎(chǔ)理論 : 第1章:緒論 第2章:基本理論 第3章:可行性研究 第二部分結(jié)構(gòu)化方法 : 第4章:軟件需求分析 第5章:總體設(shè)計(jì) 第6章:軟件詳細(xì)設(shè)計(jì),2020/12/5,廣東工業(yè)大學(xué)

4、計(jì)算機(jī)學(xué)院,7,第三部分面向?qū)ο蠓椒ㄅc實(shí)現(xiàn) : 第7章:面向?qū)ο蠓椒ǜ耪?第8章:模型 第9章:對(duì)象分析 第10章:關(guān)系分析 第11章:面向?qū)ο笤O(shè)計(jì)原則 第12章:對(duì)象設(shè)計(jì) 第13章:接口設(shè)計(jì) *第14章:形式化方法 第15章:軟件實(shí)現(xiàn),2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,8,第四部分質(zhì)量與工程管理 : 第16章:軟件質(zhì)量 第17章:軟件測(cè)試 第18章:軟件維護(hù) 第19章:軟件項(xiàng)目管理與計(jì)劃,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,9,第1章 緒 論,本章內(nèi)容 : 1.1 軟件概述 1.1.1 什么是計(jì)算機(jī)軟件 1.1.2 軟件的特點(diǎn) 1.1.3 軟件的分類 1.1.4 軟件的發(fā)展

5、 1.1.5 軟件危機(jī),2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,10,1.2 軟件工程 1.2.1 軟件工程與方法學(xué) 1.2.2 軟件工程的基本原理 1.2.3 軟件工程的目標(biāo) 1.2.4 軟件工程的內(nèi)容 1.2.5 軟件工程原則 1.2.6 軟件工程面臨的問題,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,11,1.1 軟件概述 硬件和軟件費(fèi)用比例的變化,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,12,1.1.1 什么是計(jì)算機(jī)軟件 計(jì)算機(jī)軟件定義: 定義1-1:計(jì)算機(jī)運(yùn)行所需要的各種程序和數(shù)據(jù)的總稱,包括操作系統(tǒng)、匯編程序、編譯程序、數(shù)據(jù)庫、文字編輯及維護(hù)使用手冊(cè)等。 計(jì)算機(jī)語言:Bas

6、ic、Visual Basic、C、FoxBase、PowerBuilder、Hyper text及所見即所得工具(FrontPage、Dreamweaver、Flash)。 文檔:指用自然語言或者形式化語言所編寫的文字資料和圖表,用來描述程序的內(nèi)容、組成、設(shè)計(jì)、功能規(guī)格、開發(fā)情況、測(cè)試結(jié)果及使用方法。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,13,1.1.2 軟件的特點(diǎn) (1)軟件產(chǎn)品的生產(chǎn)主要是腦力勞動(dòng),還未完全擺脫手工開發(fā)方式,大部分產(chǎn)品是“定做”的。 (2)軟件是一種邏輯產(chǎn)品,它與物質(zhì)產(chǎn)品有很大的區(qū)別,它是腦力勞動(dòng)的結(jié)晶。軟件產(chǎn)品是看不見摸不著的,因而具有無形性。它以程序和文檔的形

7、式出現(xiàn),保存在存儲(chǔ)介質(zhì)上,通過計(jì)算機(jī)的運(yùn)行才能體現(xiàn)它的功能和作用。 (3)軟件產(chǎn)品不會(huì)用壞,不存在磨損、消耗問題。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,14,(4)軟件產(chǎn)品的生產(chǎn)主要是研制。其成本主要體現(xiàn)在軟件的開發(fā)和研制上,軟件開發(fā)研制完成后,通過復(fù)制就產(chǎn)生了大量軟件產(chǎn)品。 (5)軟件費(fèi)用不斷增加,軟件成本相當(dāng)昂貴。軟件的研制工作需要投入大量的、復(fù)雜的、高強(qiáng)度的腦力勞動(dòng),它的成本非常高。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,15,1.1.3 軟件的分類,按照控制層次,分為系統(tǒng)軟件和應(yīng)用軟件兩大類 1. 系統(tǒng)軟件 計(jì)算機(jī)系統(tǒng)軟件是計(jì)算機(jī)管理自身資源(如CPU、內(nèi)存空間、外存、外

8、部設(shè)備等),提高計(jì)算機(jī)的使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的基礎(chǔ)軟件。 (1)操作系統(tǒng)。 (2)語言處理程序 (3)數(shù)據(jù)庫管理系統(tǒng) (4)實(shí)用程序與軟件工具,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,16,2. 應(yīng)用軟件 應(yīng)用軟件是計(jì)算機(jī)所應(yīng)用程序的總稱,主要用于解決一些實(shí)際的應(yīng)用問題。按業(yè)務(wù)、行業(yè),應(yīng)用軟件也可分為: (1)個(gè)人計(jì)算機(jī)軟件 (2)科學(xué)和工程計(jì)算軟件 (3)實(shí)時(shí)軟件,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,17,(4)人工智能軟件 (5)嵌入式軟件 (6)事務(wù)處理軟件 (7)工具軟件,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,18,1.1.4 軟件的發(fā)展,自第一臺(tái)計(jì)算機(jī)

9、誕生以來,軟件的生產(chǎn)就開始了。隨著計(jì)算機(jī)技術(shù)的飛快發(fā)展和應(yīng)用領(lǐng)域迅速拓寬,自20世紀(jì)60年代中期以后,軟件需求迅速增長(zhǎng),軟件數(shù)量急劇膨脹。這種增長(zhǎng)導(dǎo)致了軟件的發(fā)展,可以將軟件生產(chǎn)的發(fā)展劃分為三個(gè)時(shí)代。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,19,1. 程序設(shè)計(jì)時(shí)代(19461956年) 在這一時(shí)期,軟件的生產(chǎn)主要是個(gè)體手工勞動(dòng)的生產(chǎn)方式。程序設(shè)計(jì)者使用機(jī)器語言、匯編語言作為工具;開發(fā)程序的方法上主要是追求編程技巧和程序運(yùn)行效率。在程序設(shè)計(jì)中還沒有注意其他輔助作用,因此所設(shè)計(jì)的程序難讀、難懂、難修改。這個(gè)時(shí)期軟件特征是只有程序、程序設(shè)計(jì)概念,不重視程序設(shè)計(jì)方法。,2020/12/5,廣東工

10、業(yè)大學(xué)計(jì)算機(jī)學(xué)院,20,2. 程序系統(tǒng)時(shí)代(19561968年) 由于計(jì)算機(jī)的應(yīng)用領(lǐng)域不斷擴(kuò)大,軟件的需求也不斷增長(zhǎng),軟件由于處理的問題域擴(kuò)大而使程序變得復(fù)雜,設(shè)計(jì)者不得不由個(gè)體手工勞動(dòng)組成小集團(tuán)合作,形成作坊式生產(chǎn)方式小集團(tuán)合作生產(chǎn)的程序系統(tǒng)時(shí)代。生產(chǎn)工具是高級(jí)語言。開發(fā)方法仍舊靠個(gè)人技巧。開發(fā)方法仍舊靠個(gè)人技巧。由于大的程序需要合作,在程序設(shè)計(jì)中開始提出結(jié)構(gòu)化方法。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,21,3. 軟件工程時(shí)代(1968年至今) 1968年在聯(lián)邦德國召開的國際會(huì)議上討論軟件危機(jī)的問題,在這次會(huì)議上正式提出并使用了“軟件工程”術(shù)語,新的工程科學(xué)就此誕生。軟件工程時(shí)代的

11、生產(chǎn)方式是采用工程的概念原理技術(shù)和方法。使用數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡(luò)、分布式、面向?qū)ο蠹夹g(shù)來開發(fā)軟件。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,22,1.1.5 軟件危機(jī),所謂軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這種“嚴(yán)重問題”不僅僅是“不能正常運(yùn)行”。實(shí)際上幾乎所有的軟件都不同程度地存在問題。軟件危機(jī)主要是指如何開發(fā)軟件,怎樣滿足對(duì)軟件日益增長(zhǎng)的需求,如何維護(hù)數(shù)量不斷膨脹的現(xiàn)有軟件。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,23,1. 軟件危機(jī)的表現(xiàn) (1)對(duì)于軟件開發(fā)的成本和進(jìn)度的估計(jì)很不準(zhǔn)確。 由于缺乏軟件開發(fā)的經(jīng)驗(yàn)和軟件開發(fā)數(shù)據(jù)的積累,使得

12、開發(fā)工作的計(jì)劃很難制定。主觀盲目制定的計(jì)劃,執(zhí)行起來和實(shí)際情況有很大差距,使得開發(fā)經(jīng)費(fèi)一再突破。由于對(duì)工作量和開發(fā)難度估計(jì)不足,進(jìn)度計(jì)劃無法按時(shí)完成,開發(fā)時(shí)間一再拖延。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,24,(2)開發(fā)的軟件產(chǎn)品不能完全滿足用戶要求,用戶對(duì)已完成的軟件系統(tǒng)不滿意的現(xiàn)象常常發(fā)生。 一般情況下軟件開發(fā)人員在開發(fā)初期對(duì)用戶的要求了解不夠明確,未能得到明確表達(dá),就開始著手編程。開發(fā)工作開始后,軟件人員和用戶又未能及時(shí)交換意見,使得一些問題不能及時(shí)解決,導(dǎo)致開發(fā)的軟件產(chǎn)品不能完全滿足用戶要求。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,25,(3)開發(fā)的軟件可靠性差。 由于

13、在開發(fā)過程中,沒有確保軟件質(zhì)量的體系和措施,在軟件測(cè)試時(shí),又沒有嚴(yán)格的、充分的、完全的測(cè)試,提交給用戶的軟件質(zhì)量差,在運(yùn)行中暴露出大量的問題。這種不可靠的軟件,輕則會(huì)影響系統(tǒng)正常工作,重則會(huì)發(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,26,(4)軟件通常沒有適當(dāng)?shù)奈臋n。 開發(fā)過程無完整、規(guī)范的文檔,發(fā)現(xiàn)問題后進(jìn)行雜亂無章的修改。程序結(jié)構(gòu)不好,運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤也很難修改,導(dǎo)致可維護(hù)性差。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,27,(5)軟件的可維護(hù)性差。 由于開發(fā)過程沒有統(tǒng)一的、公認(rèn)的規(guī)范,軟件開發(fā)人員按各自的風(fēng)格工作,各行其是。很多程序中的錯(cuò)誤非常難改

14、,實(shí)際上不可能使這些程序適應(yīng)新的硬件環(huán)境,也不可能根據(jù)用戶要求在程序中增加新功能。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,28,(6)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用普及深入的趨勢(shì)。 軟件產(chǎn)品“供不應(yīng)求”的現(xiàn)象使人類不能充分利用計(jì)算機(jī)硬件資源提供的巨大潛力。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,29,2. 軟件危機(jī)的產(chǎn)生 軟件發(fā)展第二階段的末期,由于計(jì)算機(jī)硬件技術(shù)的進(jìn)步,計(jì)算機(jī)運(yùn)行速度、容量和可靠性有顯著的提高,生產(chǎn)成本有顯著下降,為計(jì)算機(jī)的廣泛應(yīng)用創(chuàng)造了條件。一些復(fù)雜的、大型的軟件開發(fā)項(xiàng)目提了出來。但是,軟件開發(fā)技術(shù)一直未能滿足發(fā)展的要求。軟件開發(fā)中遇到的問題因找

15、不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,導(dǎo)致了軟件危機(jī)。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,30,3. 軟件危機(jī)的原因 在軟件的開發(fā)和維護(hù)過程中存在著這么多的問題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也與軟件的開發(fā)和維護(hù)的方法有關(guān)。造成上述軟件危機(jī)的原因概括起來有以下幾方面:,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,31,(1)軟件的規(guī)模愈發(fā)龐大。 隨著計(jì)算機(jī)應(yīng)用的日益廣泛,需要開發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復(fù)雜。有人曾估計(jì),軟件設(shè)計(jì)與硬件設(shè)計(jì)相比,其邏輯量要多達(dá)10100倍。對(duì)于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也復(fù)雜,這種復(fù)雜程度超過了人

16、所能接受的程度。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,32,(2)軟件開發(fā)的管理困難。 軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)中的邏輯部件。在寫出代碼并在計(jì)算機(jī)上試運(yùn)行前,由于軟件規(guī)模大,結(jié)構(gòu)復(fù)雜,又具有無形性,軟件開發(fā)過程的進(jìn)展情況較難度量,質(zhì)量也難評(píng)價(jià)。因此導(dǎo)致管理困難,進(jìn)度控制困難,質(zhì)量控制困難,可靠性無法保證。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,33,(3)軟件本身的獨(dú)有特點(diǎn)確實(shí)給開發(fā)和維護(hù)造成一些客觀困難,但是人們?cè)陂L(zhǎng)期的實(shí)踐中也積累了不少成功的經(jīng)驗(yàn)。 如果堅(jiān)持使用成功的經(jīng)驗(yàn)和正確的方法,許多困難是可以克服的。但是相當(dāng)多的軟件開發(fā)人員對(duì)于軟件的開發(fā)和維護(hù)存在不少糊涂的觀念,

17、實(shí)踐中或多或少地采用錯(cuò)誤的方法和技術(shù)。這可能是軟件危機(jī)的主要原因。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,34,(4)軟件開發(fā)和維護(hù)中許多錯(cuò)誤認(rèn)識(shí)和方法的形成可以歸結(jié)與計(jì)算機(jī)發(fā)展早期軟件開發(fā)的個(gè)體化特點(diǎn)。 其主要表現(xiàn)在對(duì)軟件需求分析的重要性認(rèn)識(shí)不夠,錯(cuò)誤地認(rèn)為軟件開發(fā)就是寫程序并使之運(yùn)行,不重視軟件需求分析與維護(hù)等工作。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,35,(5)軟件開發(fā)技術(shù)落后。 在20世紀(jì)60年代,人們注重一些計(jì)算機(jī)理論問題的研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫原理、人工智能原理、形式語言理論等,不注重軟件開發(fā)技術(shù)的研究,用戶要求的軟件復(fù)雜性與軟件技術(shù)解決復(fù)雜性的能力

18、不相適應(yīng),它們之間的差距越來越大。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,36,(6)生產(chǎn)方式落后。 軟件仍然采用個(gè)體手工方式開發(fā),根據(jù)個(gè)人習(xí)慣愛好工作,無章可循,無規(guī)范可依據(jù),靠言傳身教方式工作。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,37,(7)開發(fā)工具落后,生產(chǎn)率提高緩慢。 軟件開發(fā)工具過于原始,沒有出現(xiàn)高效率的開發(fā)工具,因而軟件生產(chǎn)率低下。在19601980年期間,計(jì)算機(jī)硬件的生產(chǎn)由于采用計(jì)算機(jī)輔助設(shè)計(jì)、自動(dòng)生產(chǎn)線等先進(jìn)工具,使硬件生產(chǎn)率提高了100萬倍,而軟件生產(chǎn)率只提高了2倍,相差十分懸殊。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,38,1.2 軟件工程,1. 軟件

19、工程的定義 將系統(tǒng)的、規(guī)范的、可度量的工程化方法應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的全過程及上述方法的研究。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,39,2. 軟件工程的性質(zhì) 軟件工程要用工程科學(xué)中的觀點(diǎn)來進(jìn)行費(fèi)用估算、制定進(jìn)度、制定計(jì)劃和方案;要用管理科學(xué)中的方法和原理進(jìn)行軟件生產(chǎn)的管理;要用數(shù)學(xué)的方法建立軟件開發(fā)中各種模型和各種算法,如可靠性模型,說明用戶需求的形式化模型等。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,40,1.2.1 軟件工程與方法學(xué),程序設(shè)計(jì)方法學(xué)和軟件工程方法學(xué)是為了解決軟件危機(jī)問題而逐漸形成的學(xué)科。 “軟件工程”(Software Engineering)作為一個(gè)術(shù)

20、語,是在1968年北大西洋公約組織的一次計(jì)算機(jī)學(xué)術(shù)會(huì)議上,正式提出來的。這個(gè)會(huì)議專門討論了軟件危機(jī)問題。這次會(huì)議是軟件發(fā)展史上一個(gè)重要的里程碑。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,41,事實(shí)上,在軟件工程和方法學(xué)形成以后,研究工作一開始就分成了兩種不同的角度和方法,形成了兩種緊密相關(guān)、相輔相成又各有側(cè)重的學(xué)科。 程序設(shè)計(jì)方法學(xué):以數(shù)學(xué)理論為基礎(chǔ)的理論性學(xué)科。 軟件工程學(xué):以工程方法為基礎(chǔ)的工程學(xué)科。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,42,軟件工程學(xué)與程序設(shè)計(jì)方法學(xué)的研究對(duì)象是軟件和程序。它們的根本目標(biāo)是以較低的成本開發(fā)高質(zhì)量的軟件和程序,具體包括: (1)提高軟件的質(zhì)量與

21、可靠性。 (2)提高軟件的可維護(hù)性。 (3)提高軟件生產(chǎn)率,降低軟件開發(fā)成本等。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,43,軟件工程學(xué)和程序設(shè)計(jì)方法學(xué)研究的途徑和側(cè)重點(diǎn)有所差異,主要差異有: (1)研究方法和途徑不同。 軟件工程學(xué)應(yīng)用的是工程方法;而程序設(shè)計(jì)方法學(xué)依據(jù)的是數(shù)學(xué)方法。軟件工程學(xué)注重工程方法與工具研究,程序設(shè)計(jì)方法學(xué)則注重算法與邏輯方法研究。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,44,(2)研究對(duì)象有所側(cè)重 。 軟件工程的對(duì)象所指的軟件,一般是指“大型程序”,是一個(gè)系統(tǒng);而程序設(shè)計(jì)方法學(xué)的研究對(duì)象則側(cè)重于一些較小的具體程序模塊。 (3)軟件工程學(xué)注重“宏觀可用性”;

22、程序設(shè)計(jì)方法學(xué)注重“微觀正確性”。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,45,軟件工程方法學(xué)是指應(yīng)用計(jì)算機(jī)科學(xué)理論和工程方法相結(jié)合的研究方法,研究軟件生存周期一切活動(dòng)(包括軟件定義、分析、設(shè)計(jì)、編碼、測(cè)試與正確性證明、維護(hù)與評(píng)價(jià)等)的方法、工具和管理的學(xué)科。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,46,軟件工程方法學(xué)既強(qiáng)調(diào)軟件(一般指大型軟件)開發(fā)的工程特征,又強(qiáng)調(diào)軟件設(shè)計(jì)方法論的科學(xué)性、先進(jìn)性。其基本內(nèi)容包括: (1)結(jié)構(gòu)化理論與方法。 (2)模塊技術(shù)與數(shù)據(jù)抽象。 (3)軟件測(cè)試與程序正確性證明。 (4)軟件分析與設(shè)計(jì)方法、工具及環(huán)境。 (5)軟件工程管理與質(zhì)量評(píng)價(jià)。,2020

23、/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,47,1.2.2 軟件工程的基本原理,1983年B.Weohm提出了軟件工程的七條基本原理。這七條基本原理是保證軟件產(chǎn)品質(zhì)量和開發(fā)效率的最小集合,又是相當(dāng)完備的。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,48,1. 用分階段的生命周期計(jì)劃嚴(yán)格管理 這一條是吸取前人的教訓(xùn)而提出來的。統(tǒng)計(jì)表明,50%以上的失敗項(xiàng)目是由于計(jì)劃不周而造成的。在軟件開發(fā)與維護(hù)的漫長(zhǎng)生命周期中,需要完成許多性質(zhì)各異的工作。這條原理意味著,應(yīng)該把軟件生命周期分成若干階段,并相應(yīng)制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件的開發(fā)和維護(hù)進(jìn)行管理。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)

24、院,49,2. 堅(jiān)持進(jìn)行階段評(píng)審 統(tǒng)計(jì)結(jié)果顯示:大部分錯(cuò)誤是在編碼之前造成的,大約占63%;錯(cuò)誤發(fā)現(xiàn)得越晚,改正它要付出的代價(jià)就越大,要差2到3個(gè)數(shù)量級(jí)。 因此,軟件的質(zhì)量保證工作不能等到編碼結(jié)束之后再進(jìn)行,應(yīng)堅(jiān)持進(jìn)行嚴(yán)格的階段評(píng)審,以便盡早發(fā)現(xiàn)錯(cuò)誤。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,50,3. 實(shí)行嚴(yán)格的產(chǎn)品控制 在軟件開發(fā)的過程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求需要付出較高的代價(jià)。但是實(shí)踐告訴我們,需求的改動(dòng)往往是不可避免的。由于各種客觀的需要,不能禁止用戶提出改變需求的要求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來適應(yīng)這種要求。也就是要采用變動(dòng)控制,又叫基準(zhǔn)配置管理。當(dāng)需求變動(dòng)時(shí),其

25、他各個(gè)階段的文檔或代碼隨之相應(yīng)變動(dòng),以保證軟件的一致性。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,51,4. 采納現(xiàn)代程序設(shè)計(jì)技術(shù) 從提出軟件工程的概念開始,人們主要的精力都用于研究各種新的程序設(shè)計(jì)技術(shù),20世紀(jì)60年代的結(jié)構(gòu)化軟件開發(fā)技術(shù),隨后又發(fā)展的結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計(jì)技術(shù),已成為大多數(shù)人認(rèn)為的先進(jìn)程序設(shè)計(jì)技術(shù)。后來又提出的面向?qū)ο蠹夹g(shù),從第一、第二代語言,到第四代語言,人們已經(jīng)充分認(rèn)識(shí)到:方法大于氣力。采用先進(jìn)的技術(shù)即可以提高軟件開發(fā)的效率,又可以減少軟件維護(hù)的成本。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,52,5. 結(jié)果應(yīng)能清楚地審查 軟件產(chǎn)品不同于一般的物理產(chǎn)品,軟件是一

26、種看不見、摸不著的邏輯產(chǎn)品。軟件開發(fā)小組的工作進(jìn)展情況可見性差,難于評(píng)價(jià)和管理。為更好地進(jìn)行管理,應(yīng)根據(jù)軟件開發(fā)的總目標(biāo)及完成期限,盡量明確地規(guī)定開發(fā)小組的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的標(biāo)準(zhǔn)能清楚地審查。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,53,6. 開發(fā)小組的人員應(yīng)少而精 開發(fā)人員的素質(zhì)和數(shù)量是影響軟件質(zhì)量和開發(fā)效率的重要因素,應(yīng)該少而精。這一條基于兩點(diǎn)原因:高素質(zhì)開發(fā)人員的效率比低素質(zhì)開發(fā)人員的效率要高幾倍到幾十倍,開發(fā)工作中犯的錯(cuò)誤也要少得多。 當(dāng)開發(fā)小組為N人時(shí),可能的通訊信道為N(N-1)/2,可見隨著人數(shù)N的增大,通訊開銷將急劇增大。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算

27、機(jī)學(xué)院,54,7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 遵從上述前六條基本原理,就能夠較好地實(shí)現(xiàn)軟件的工程化生產(chǎn)。但是,它們只是對(duì)現(xiàn)有經(jīng)驗(yàn)的總結(jié)和歸納,并不能保證趕上技術(shù)不斷前進(jìn)發(fā)展的步伐。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,55,1.2.3 軟件工程的目標(biāo),在給定成本、進(jìn)度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶需求的軟件產(chǎn)品。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,56,(1)可修改性(modifiability)。 容許對(duì)系統(tǒng)進(jìn)行修改而不增加原系統(tǒng)的復(fù)雜性。它支持軟件的調(diào)試與維護(hù),是一個(gè)難

28、以度量和難以達(dá)到的目標(biāo)。 (2)有效性(efficiency)。 軟件系統(tǒng)能最有效地利用計(jì)算機(jī)的時(shí)間資源和空間資源。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,57,(3)可靠性(reliability)。 能夠防止因概念、設(shè)計(jì)和結(jié)構(gòu)等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當(dāng)造成軟件系統(tǒng)失效的能力。 (4)可理解性(understandably)。 系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問題的需求??衫斫庑杂兄诳刂栖浖到y(tǒng)的復(fù)雜性,并支持軟件的維護(hù)、移植或重用。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,58,(5)可維護(hù)性(maintainability)。 軟件產(chǎn)品交付用戶使用后,

29、能夠?qū)λM(jìn)行修改,以便改正潛伏的錯(cuò)誤,改進(jìn)性能和其他屬性,使軟件產(chǎn)品適應(yīng)環(huán)境的變化等等。 (6)可重用性(reusebility)。 概念或功能相對(duì)獨(dú)立的一個(gè)或一組相關(guān)模塊定義為一個(gè)軟部件。軟部件可以在多種場(chǎng)合應(yīng)用的程度稱為部件的可重用性。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,59,(7)可適應(yīng)性(adaptability)。 軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。適應(yīng)性強(qiáng)的軟件應(yīng)采用廣為流行的程序設(shè)計(jì)語言編碼,在廣為流行的操作系統(tǒng)環(huán)境中運(yùn)行,采用標(biāo)準(zhǔn)的術(shù)語和格式書寫文檔。適應(yīng)性強(qiáng)的軟件較容易推廣使用。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,60,(8)可移植

30、性(portability)。 軟件從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境搬到另一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境的難易程度。為了獲得比較高的可移植性,在軟件設(shè)計(jì)過程中通常采用通用的程序設(shè)計(jì)語言和運(yùn)行支撐環(huán)境。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,61,(9)可追蹤性(tracebility)。 根據(jù)軟件需求對(duì)軟件設(shè)計(jì)、程序進(jìn)行正向追蹤,或根據(jù)程序、軟件設(shè)計(jì)對(duì)軟件需求進(jìn)行逆向追蹤的能力。 (10)可互操作性(interoperability)。 多個(gè)軟件元素相互通信并協(xié)同完成任務(wù)的能力。為了實(shí)現(xiàn)可互操作性,軟件開發(fā)通常要遵循某種標(biāo)準(zhǔn),支持這種標(biāo)準(zhǔn)的環(huán)境將為軟件元素之間的可互操作提供便利。,2020/12/5,廣東工

31、業(yè)大學(xué)計(jì)算機(jī)學(xué)院,62,1.2.4 軟件工程的內(nèi)容,軟件工程研究的主要內(nèi)容是指軟件開發(fā)技術(shù)和軟件開發(fā)管理兩個(gè)方面。 在軟件開發(fā)技術(shù)中,它主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。 在軟件開發(fā)管理中,它主要研究軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)和軟件心理學(xué)等。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,63,從某種角度來說,軟件開發(fā)的本質(zhì)就是要實(shí)現(xiàn)“高層概念”到“低層概念”的映射,實(shí)現(xiàn)“高層處理邏輯”到“低層處理邏輯”的映射。對(duì)于大型軟件系統(tǒng)的開發(fā),這一映射是相當(dāng)復(fù)雜的,涉及到有關(guān)人員、使用的技術(shù)、采取的途徑以及成本和進(jìn)度的約束,因此,可以把軟件工程定義為:,2020/12/5,廣東工業(yè)大學(xué)

32、計(jì)算機(jī)學(xué)院,64,軟件工程(software engineering)是應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按照預(yù)算和進(jìn)度,實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或以之為研究對(duì)象的學(xué)科。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,65,軟件工程的基本目標(biāo)是生產(chǎn)具有正確性、可用性及開銷合宜(合算性)的產(chǎn)品。正確性意指軟件產(chǎn)品達(dá)到預(yù)期功能的程度;可用性意指軟件基本結(jié)構(gòu)、實(shí)現(xiàn)及文檔達(dá)到用戶可用的程度;開銷合宜意指軟件開發(fā)、運(yùn)行的整個(gè)開銷滿足用戶的需求。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,66,1.2.5 軟件工程原則,為了達(dá)到軟件系統(tǒng)開發(fā)目標(biāo),在軟件開發(fā)過程

33、中必須遵循下列軟件工程原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性和可驗(yàn)證性。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,67,1. 抽象(abstraction) 抽取事物最基本的特性和行為,忽略非基本的細(xì)節(jié)。采用分層次抽象的辦法可以控制軟件開發(fā)過程的復(fù)雜性,有利于軟件的可理解性和開發(fā)過程的管理。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,68,2. 模塊化(modularity) 模塊(module)是程序中邏輯上相對(duì)獨(dú)立的成分,它是一個(gè)獨(dú)立的編程單位,應(yīng)有良好的接口定義。模塊化有助于信息隱藏和抽象,有助于表示復(fù)雜的軟件系統(tǒng)。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,69,

34、3. 信息隱藏(information hiding) 將模塊中的軟件設(shè)計(jì)決策封裝起來的技術(shù)。模塊接口應(yīng)盡量簡(jiǎn)潔,不要羅列可有可無的內(nèi)部操作和對(duì)象。按照信息隱藏的原則,系統(tǒng)中的模塊應(yīng)設(shè)計(jì)成“黑箱”,模塊外部只能使用模塊接口說明中給出的信息,如操作、數(shù)據(jù)類型等等。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,70,4. 局部化(1ocalization) 要求在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算資源。從物理和邏輯兩個(gè)方面保證系統(tǒng)中模塊之間具有松散的耦合關(guān)系,而在模塊內(nèi)部有較強(qiáng)的內(nèi)聚性。這樣有助于控制解的復(fù)雜性。,2020/12/5,廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,71,5. 完整性(completeness) 軟件系統(tǒng)不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論