1軟件工程概述_第1頁
1軟件工程概述_第2頁
1軟件工程概述_第3頁
1軟件工程概述_第4頁
1軟件工程概述_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022/10/12第1章 軟件工程概述 哈工大軟件學(xué)院楊大易2020-02-09本章主要要內(nèi)容1.1什么是軟軟件1.2軟件危機機1.3軟件工程程1.4軟件工程程方法學(xué)學(xué)1.5軟件開發(fā)發(fā)模型1.6本章小結(jié)結(jié)2020-02-091.1什么是軟軟件軟件的定定義是計算機機程序、程序使使用的數(shù)據(jù)以及說明明程序的的各種文檔的集合。軟件(software)由三部分分組成可以在計計算機上上運行的的程序(program)。運行程序序需要的的數(shù)據(jù)(data)。軟件開發(fā)發(fā)、維護護、使用用需要的的各種文檔(document)1.1什么是軟軟件軟件的特特征軟件是一一種邏輯輯實體,具有抽抽象性軟件沒有有明顯的的制造過過

2、程軟件在使使用過程程中,沒沒有磨損損、老化化的問題題軟件對硬硬件和環(huán)環(huán)境有著著不同程程度的依依賴性軟件開發(fā)發(fā)至今尚尚未完全全擺脫手手工作坊坊式的開開發(fā)方式式,生產(chǎn)產(chǎn)效率低低軟件的成成本相當(dāng)當(dāng)昂貴大多數(shù)軟軟件是自自定的,而不是是通過已已有的構(gòu)構(gòu)件組裝裝而來的的軟件工作作牽涉到到很多社社會因素素2020-02-092020-02-091.1什么是軟軟件軟件的發(fā)發(fā)展過程程從1946年到60年代初:程序設(shè)計計時期,其主要要特征是是程序生生產(chǎn)方式式為個體體手工方方式。從20世紀60年代初到到70年代初:程序系統(tǒng)統(tǒng)時期,程序的規(guī)規(guī)模已經(jīng)經(jīng)很大,需要多多人分工工協(xié)作,軟件的的開發(fā)方方式由“個體生生產(chǎn)”發(fā)發(fā)展

3、到了了“軟件件作坊”。從20世紀70年代中期期至80年代中期期:軟件工程程時期,軟件的開開發(fā)以工工程化的的思想為為指導(dǎo),用工程程化原則則、方法法和標準準來開發(fā)發(fā)和維護護軟件。從20世紀80年代中期期至今:面向?qū)ο笙髸r期,面向?qū)ο筌浖_發(fā)技技術(shù)在迅迅速取代代傳統(tǒng)軟軟件工程程開發(fā)方方法。2020-02-091.2軟件危機機1968年北大西西洋公約約組織的的計算機機科學(xué)家家在德國國召開國國際會議議,把計計算機軟軟件的開開發(fā)和維維護過程程中出現(xiàn)現(xiàn)的一系系列嚴重重問題稱稱為“軟件危機機”。軟件危機機包括兩兩個方面面的問題題如何開發(fā)發(fā)軟件以以滿足用用戶對軟軟件日益益增長的的需求如何維護護數(shù)量迅迅速增長

4、長的已有有軟件2020-02-091.2軟件危機機軟件危機機的表現(xiàn)現(xiàn)軟件功能能與實際際需求不不符軟件開發(fā)發(fā)生產(chǎn)率率提高的的速度遠遠遠不能能滿足用用戶需要要軟件價格格昂貴軟件產(chǎn)品品的質(zhì)量量差對軟件開開發(fā)成本本和進度度的估計計常常不不準確軟件文檔檔資料通通常既不不完整也也不合格格軟件的維維護費用用急劇上上升2020-02-091.2軟件危機機產(chǎn)生軟件件危機的的原因軟件缺乏乏“可見見性”,在寫出出程序代代碼并在在計算機機上運行行之前,軟件開開發(fā)過程程的進展展質(zhì)量較較難衡量量,很難難檢驗開開發(fā)的正正確性。軟件規(guī)模模龐大,邏輯結(jié)結(jié)構(gòu)復(fù)雜雜。開發(fā)管理理人員只只重視設(shè)設(shè)計程序序而輕視視用戶需需求分析析,導(dǎo)致

5、致最后研研制出的的軟件產(chǎn)產(chǎn)品無法法滿足用用戶的需需求。軟件設(shè)計計技術(shù)和和管理技技術(shù)落后后,沒有有統(tǒng)一的的軟件質(zhì)質(zhì)量管理理規(guī)范。在軟件的的開發(fā)與與維護關(guān)關(guān)系問題題上存在在錯誤的的概念,重視開開發(fā),而而輕視維維護。2020-02-091.3軟件工程程軟件工程程的提出出1968年,北大大西洋公公約組織織在原西西德召開開計算機機科學(xué)會會議,由由FritzBauer首次提出出了“軟件工程程”的概念念。軟件工程程的定義義軟件工程程是用科科學(xué)知識識和技術(shù)術(shù)原理來來定義、開發(fā)、維護軟軟件的一一門學(xué)科科。它應(yīng)應(yīng)用工程程的概念念、原理理、技術(shù)術(shù)和方法法,應(yīng)用用科學(xué)的的開發(fā)技技術(shù)和管管理方法法來開發(fā)發(fā)軟件。1983

6、年IEEE給出的定定義為:“軟件件工程是是開發(fā)、運行、維護和和修復(fù)軟軟件的系系統(tǒng)方法法。”其其中,“軟件”的定義義為:“計算機機程序、方法、規(guī)則、相關(guān)的的文檔資資料以及及在計算算機上運運行時所所必需的的數(shù)據(jù)?!避浖こ坛倘厮兀悍椒?、工具、過程1.3軟件工程程SWEBOK:軟件工工程知識識體系指指南2020-02-091.3軟件工程程SWEBOK2020-02-092020-02-091.3軟件工程程軟件工程程基本思思想著名的軟軟件工程程專家B.W.Boehm于1983年提出用分階段段的生存存周期計計劃嚴格格管理堅持進行行階段評評審實行嚴格格的產(chǎn)品品控制采用現(xiàn)代代程序設(shè)設(shè)計技術(shù)術(shù)結(jié)果應(yīng)能能清

7、楚地地審查開發(fā)小組組的人員員應(yīng)少而而精承認不斷斷改進軟軟件工程程實踐的的必要性性2020-02-091.3軟件工程程軟件工程程的目標標提高軟件件產(chǎn)品質(zhì)質(zhì)量和軟軟件開發(fā)發(fā)效率,減少軟軟件維護護難度需考慮的的問題可修改性性:允許對對系統(tǒng)修修改,而而不增加加系統(tǒng)復(fù)復(fù)雜性。有效性:軟件系系統(tǒng)能在在一定的的時間資資源和空空間資源源環(huán)境下下,完成成規(guī)定的的任務(wù)。正確性:軟件能能準確無無誤地執(zhí)執(zhí)行用戶戶需求的的各種功功能,滿滿足用戶戶要求的的各種性性能指標標??煽啃裕阂卜Q為為健壯性性,在硬硬件、操操作系統(tǒng)統(tǒng)出現(xiàn)故故障,或或人為操操作不當(dāng)當(dāng)?shù)那闆r況下,不不會導(dǎo)致致軟件系系統(tǒng)失效效。2020-02-091.3軟

8、件工程程可理解性性:包括兩兩個方面面的內(nèi)容容,一是是軟件系系統(tǒng)結(jié)構(gòu)構(gòu)清晰、容易理理解,二二是程序序算法功功能清晰晰,容易易讀懂??芍赜眯孕裕很浖兄械哪硞€個部分可可以在系系統(tǒng)的多多處重復(fù)復(fù)使用,或者在在多個系系統(tǒng)中使使用??蛇m應(yīng)性性:軟件在在不同硬硬件和操操作系統(tǒng)統(tǒng)環(huán)境下下的適應(yīng)應(yīng)程度??梢浦残孕裕后w現(xiàn)了了軟件從從一種計計算機軟軟件移動動到另一一種計算算機環(huán)境境下的難難易程度度??筛櫺孕裕喊▋蓛煞矫?,一是可可以根據(jù)據(jù)軟件開開發(fā)的文文檔對設(shè)設(shè)計過程程進行正正向跟蹤蹤或逆向向跟蹤;二是軟軟件測試試和維護護過程中中,對程程序的執(zhí)執(zhí)行進行行跟蹤,根據(jù)跟跟蹤情況況,分析析程序執(zhí)執(zhí)行的因因果關(guān)系系?;?/p>

9、操作性性:多個軟軟件相互互通信,協(xié)作完完成任務(wù)務(wù)的能力力。2020-02-091.3軟件工程程軟件工程程的原則則抽象(abstraction):抽取取各個事事物中共共同的最最基本的的特征和和行為,暫時忽忽略它們們之間的的差異。信息隱藏藏(informationhiding):將模模塊內(nèi)部部信息(數(shù)據(jù)和和過程)封裝起起來。局部化(localization):即在在一個物物理模塊塊內(nèi)集中中邏輯上上相互關(guān)關(guān)聯(lián)的計計算資源源。一致性(consistency):應(yīng)保保證在開開發(fā)過程程中相關(guān)關(guān)內(nèi)容的的一致。完全性(completeness):軟件件系統(tǒng)不不丟失任任何重要要成分,完全實實現(xiàn)所需需的系統(tǒng)統(tǒng)功能

10、的的程度。可驗證性性(verifiability):開發(fā)發(fā)大型軟軟件系統(tǒng)統(tǒng)需要對對系統(tǒng)逐逐層分解解、驗證證。2020-02-091.4軟件工程程方法把在軟件件生命周周期全過過程中使使用的一一整套技技術(shù)集合合稱為方法(methodology),也稱稱為范型(paradigm)。軟件工程程方法包包括開發(fā)發(fā)方法、開發(fā)工具和開發(fā)過程三方面開發(fā)方法法:完成成軟件開開發(fā)的技技術(shù)方法法開發(fā)工具具:開發(fā)發(fā)軟件的的支撐環(huán)環(huán)境開發(fā)過程程:完成成開發(fā)軟軟件各項項任務(wù)的的工作步步驟。目前使用用得最廣廣泛的軟軟件工程程方法,分別是是傳統(tǒng)方法法和面向?qū)ο笙蠓椒ā?020-02-091.4軟件工程程方法傳統(tǒng)方法法:也可稱稱

11、為軟件生命命周期方方法或結(jié)構(gòu)化方方法,把軟件件開發(fā)和和維護分分成軟件件定義、軟件開開發(fā)和軟軟件維護護三個時時期,每每個時期期又分成成若干個個階段。軟件定義義時期:確定軟軟件開發(fā)發(fā)必須完完成的任任務(wù);論論證軟件件可行性性;確定定用戶需需求的詳詳細功能能和性能能??蓜潉澐譃槿齻€階段段:問題題定義、可行性性研究和和需求分分析。軟件開發(fā)發(fā)時期:設(shè)計和和實現(xiàn)軟軟件的定定義。四四個階段段:總體體設(shè)計、詳細設(shè)設(shè)計、編編碼及單單元測試試、綜合合測試。軟件維護護時期:對投入入使用的的軟件的的修改,實際上上是對軟軟件的一一次重新新定義和和開發(fā)過過程。2020-02-091.4軟件工程程方法傳統(tǒng)方法法的各階階段問

12、題定義義:弄清楚楚要解決決什么問問題??尚行匝醒芯浚悍治銮迩宄坝糜檬裁崔k辦法解決決這個問問題”,保證在在技術(shù)上上、實效效上、法法律上都都是行得得通的。需求分析析:確定軟軟件的功功能和性性能。用用戶要要要清楚開開發(fā)出的的軟件系系統(tǒng)能夠夠做什么么;軟件件開發(fā)人人員也應(yīng)應(yīng)該清楚楚用戶的的具體要要求是什什么??傮w設(shè)計計:設(shè)計軟軟件的總總體結(jié)構(gòu)構(gòu),將一一個大系系統(tǒng)按照照功能設(shè)設(shè)計成小小模塊,總體設(shè)設(shè)計有時時也稱概概要設(shè)計計。詳細設(shè)計計:對每個個模塊設(shè)設(shè)計具體體算法和和數(shù)據(jù)結(jié)結(jié)構(gòu),詳詳細設(shè)計計有時也也稱模塊塊設(shè)計。編碼及單單元測試試:根據(jù)詳詳細設(shè)計計的結(jié)果果,用程程序設(shè)計計語言,編寫正正確的源源程序,并

13、且對對每段程程序進行行嚴格測測試。綜合測試試:通過測測試使軟軟件系統(tǒng)統(tǒng)達到用用戶的要要求。最最基本的的測試集集成測試試和驗收收測試。軟件維護護:軟件投投入運行行后的維維護活動動,通常??蓜澐址譃樗念愵悾焊恼跃S護護、適應(yīng)應(yīng)性維護護、完善善性維護護、預(yù)防防性維護護。1.4軟件工程程方法仍然是使使用十分分廣泛的的軟件工工程方法法。采用結(jié)構(gòu)構(gòu)化技術(shù)術(shù)來完成成軟件開開發(fā)的各各項任務(wù)務(wù),并使使用適當(dāng)當(dāng)?shù)能浖ぞ呋蚧蜍浖すこ汰h(huán)境境來支持持結(jié)構(gòu)化化技術(shù)的的運用。從上而下下,順序序地完成成軟件開開發(fā)的各各階段任任務(wù)。2020-02-091.4軟件工程程方法面向?qū)ο笙蠓椒ㄒ环N把面面向?qū)ο笙蟮乃枷胂霊?yīng)用于于

14、軟件開開發(fā)過程程中,指指導(dǎo)開發(fā)發(fā)活動的的系統(tǒng)方方法,簡簡稱OO(Object-Oriented)方法。面向?qū)ο笙蠓椒ǖ牡奶卣魇墙⒃谠趯ο蟾鸥拍罨A(chǔ)礎(chǔ)上的方方法學(xué),對象的的概念貫貫穿于開開發(fā)全過過程。運用人類類日常的的思維方方法和原原則進行行系統(tǒng)開開發(fā),體體現(xiàn)出繼繼承性、封裝性性、多態(tài)態(tài)性等基基本特征征??蓜澐譃闉槿齻€階階段:面面向?qū)ο笙蠓治觯∣OA)、面向向?qū)ο笤O(shè)設(shè)計(OOD)、面向向?qū)ο髮崒崿F(xiàn)(OOI)。2020-02-092020-02-091.5軟件生命命周期模模型軟件項目目開發(fā)和和維護的的全過程程軟件生命命周期模模型的種種類以軟件需需求完全全確定為為基礎(chǔ)的的瀑布模模型;開發(fā)初期期僅給

15、出出基本需需求的漸漸進式模模型,如如原型模模型、螺螺旋模型型、噴泉泉模型等等;以形式化化開發(fā)方方法為基基礎(chǔ)的變變換模型型、基于于第四代代語言技技術(shù)的模模型。在實際開開發(fā)時,應(yīng)根據(jù)據(jù)項目的的特點和和現(xiàn)有的的條件選選取合適適的模型型,也可可以把幾幾種模型型組合起起來使用用以便充充分利用用各模型型的優(yōu)點點。2020-02-091.5軟件開發(fā)發(fā)模型瀑布模型型嚴格按照照軟件生生存周期期各個階階段來進進行開發(fā)發(fā),上一一階段的的輸出即即是下一一階段的的輸入,強調(diào)每每一階段段的嚴格格性。2020-02-091.5軟件開發(fā)發(fā)模型瀑布模型型的優(yōu)點點提供了軟軟件開發(fā)發(fā)的基本本框架,有利于于大型軟軟件開發(fā)發(fā)過程中中人

16、員的的組織、管理,有利于于軟件開開發(fā)方法法和工具具的研究究與使用用,因此此,在軟軟件工程程中占有有重要的的地位。瀑布模型型的缺點點在軟件開開發(fā)的初初期階段段就要求求做出正正確、全全面、完完整的需需求分析析對許多多應(yīng)用軟軟件來說說是極其其困難的的。作為整體體開發(fā)的的瀑布模模型,由由于不支支持產(chǎn)品品的演化化,缺乏乏靈活性性,對開開發(fā)過程程中很難難發(fā)現(xiàn)的的錯誤,只有在在最終產(chǎn)產(chǎn)品運行行時才能能暴露出出來,從從而使軟軟件產(chǎn)品品難以維維護。瀑布模型型的適用用場合適合于功功能、性性能明確確、完整整、無重重大變化化的軟件件系統(tǒng)2020-02-091.5軟件開發(fā)發(fā)模型原型模型型開發(fā)人員員與用戶戶一起進進行需求

17、求分析,進行快快速設(shè)計計,建造造原型,原型由由用戶評評估,進進一步修修改原型型,再次次進行設(shè)設(shè)計。迭迭代這個個過程,逐步滿滿足用戶戶需要。2020-02-091.5軟件開發(fā)發(fā)模型原型模型型的主要要優(yōu)點原型模型型法可以以得到良良好的需需求定義義,能夠夠有效處處理用戶戶的模糊糊需求,開發(fā)者者和用戶戶得到充充分的協(xié)協(xié)作。原型模型型的主要要缺點開發(fā)者常常常需要要實現(xiàn)上上的折衷衷,以使使原型能能盡快工工作;用戶似乎乎看到的的是軟件件的工作作版本,其實軟軟件質(zhì)量量和可靠靠性難以以保證;資源規(guī)劃劃和管理理較為困困難,更更新文檔檔工作量量繁重。原型模型型的適用用場合適合于那那些不能能預(yù)先確確切定義義需求的的軟

18、件系系統(tǒng)的開開發(fā),更更適合于于那些項項目組成成員(包包括分析析員、設(shè)設(shè)計員、程序員員和用戶戶)不能能很好交交流或通通信有困困難的情情況。2020-02-091.5軟件開發(fā)發(fā)模型螺旋模型型綜合了瀑瀑布模型型和原型型模型的的優(yōu)點,即將兩兩者結(jié)合合,并加加入了風(fēng)風(fēng)險分析析機制。2020-02-091.5軟件開發(fā)發(fā)模型螺旋模型型的優(yōu)點點支持用戶戶需求的的動態(tài)變變化。螺旋模型型特別強強調(diào)原型型的可擴擴充性和和可修改改性。為項目管管理人員員及時調(diào)調(diào)整管理理決策提提供了方方便,可可降低開開發(fā)風(fēng)險險。螺旋模型型的缺點點如果每次次迭代的的效率不不高,致致使迭代代次數(shù)過過多。需要有相相當(dāng)豐富富的風(fēng)險險評估經(jīng)經(jīng)驗和專專門知識識,要求求開發(fā)隊隊伍水平平較高。螺旋模型型適用場場合支持需求求不明確確、特別別是大型型軟件系系統(tǒng)的開開發(fā),并并支持多多種軟件件開發(fā)方方法,是是一種具具有廣闊闊前景的的模型。2020-02-091.5軟件開發(fā)發(fā)模型噴泉模型型以面向?qū)ο筌浖_發(fā)方方法為基基礎(chǔ),以以用戶需需求為動動力,以以對象來來驅(qū)動的的模型。2020-02-091.5軟件開發(fā)發(fā)模型噴泉模型型的特點點軟件系統(tǒng)統(tǒng)可維護護性較好好;各階段相相互重疊疊,表明明了面向向?qū)ο箝_開發(fā)方法法各階段段間的交交叉和無無縫過渡渡;整個模型型是一個個迭代的的過程,

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論