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

下載本文檔

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

文檔簡介

2023/1/20第1章軟件工程概述

哈工大軟件學院楊大易2023/1/20本章主要內(nèi)容1.1什么是軟件1.2軟件危機1.3軟件工程1.4軟件工程方法學1.5軟件開發(fā)模型1.6本章小結(jié)2023/1/201.1什么是軟件軟件的定義是計算機程序、程序使用的數(shù)據(jù)以及說明程序的各種文檔的集合。軟件(software)由三部分組成可以在計算機上運行的程序(program)。運行程序需要的數(shù)據(jù)(data)。軟件開發(fā)、維護、使用需要的各種文檔(document)1.1什么是軟件軟件的特征軟件是一種邏輯實體,具有抽象性軟件沒有明顯的制造過程軟件在使用過程中,沒有磨損、老化的問題軟件對硬件和環(huán)境有著不同程度的依賴性軟件開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低軟件的成本相當昂貴大多數(shù)軟件是自定的,而不是通過已有的構(gòu)件組裝而來的軟件工作牽涉到很多社會因素2023/1/202023/1/201.1什么是軟件軟件的發(fā)展過程從1946年到60年代初:程序設(shè)計時期,其主要特征是程序生產(chǎn)方式為個體手工方式。從20世紀60年代初到70年代初:程序系統(tǒng)時期,程序的規(guī)模已經(jīng)很大,需要多人分工協(xié)作,軟件的開發(fā)方式由“個體生產(chǎn)”發(fā)展到了“軟件作坊”。從20世紀70年代中期至80年代中期:軟件工程時期,軟件的開發(fā)以工程化的思想為指導,用工程化原則、方法和標準來開發(fā)和維護軟件。從20世紀80年代中期至今:面向?qū)ο髸r期,面向?qū)ο筌浖_發(fā)技術(shù)在迅速取代傳統(tǒng)軟件工程開發(fā)方法。2023/1/201.2軟件危機1968年北大西洋公約組織的計算機科學家在德國召開國際會議,把計算機軟件的開發(fā)和維護過程中出現(xiàn)的一系列嚴重問題稱為“軟件危機”。軟件危機包括兩個方面的問題如何開發(fā)軟件以滿足用戶對軟件日益增長的需求如何維護數(shù)量迅速增長的已有軟件2023/1/201.2軟件危機軟件危機的表現(xiàn)軟件功能與實際需求不符軟件開發(fā)生產(chǎn)率提高的速度遠遠不能滿足用戶需要軟件價格昂貴軟件產(chǎn)品的質(zhì)量差對軟件開發(fā)成本和進度的估計常常不準確軟件文檔資料通常既不完整也不合格軟件的維護費用急劇上升2023/1/201.2軟件危機產(chǎn)生軟件危機的原因軟件缺乏“可見性”,在寫出程序代碼并在計算機上運行之前,軟件開發(fā)過程的進展質(zhì)量較難衡量,很難檢驗開發(fā)的正確性。軟件規(guī)模龐大,邏輯結(jié)構(gòu)復雜。開發(fā)管理人員只重視設(shè)計程序而輕視用戶需求分析,導致最后研制出的軟件產(chǎn)品無法滿足用戶的需求。軟件設(shè)計技術(shù)和管理技術(shù)落后,沒有統(tǒng)一的軟件質(zhì)量管理規(guī)范。在軟件的開發(fā)與維護關(guān)系問題上存在錯誤的概念,重視開發(fā),而輕視維護。2023/1/201.3軟件工程軟件工程的提出1968年,北大西洋公約組織在原西德召開計算機科學會議,由FritzBauer首次提出了“軟件工程”的概念。軟件工程的定義軟件工程是用科學知識和技術(shù)原理來定義、開發(fā)、維護軟件的一門學科。它應用工程的概念、原理、技術(shù)和方法,應用科學的開發(fā)技術(shù)和管理方法來開發(fā)軟件。1983年IEEE給出的定義為:“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法?!逼渲?,“軟件”的定義為:“計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行時所必需的數(shù)據(jù)?!避浖こ倘兀悍椒?、工具、過程1.3軟件工程SWEBOK:軟件工程知識體系指南2023/1/201.3軟件工程程SWEBOK2023/1/12023/1/11.3軟件工程程軟件工程程基本思思想——著名的軟軟件工程程專家于1983年提出用分階段段的生存存周期計計劃嚴格格管理堅持進行行階段評評審實行嚴格格的產(chǎn)品品控制采用現(xiàn)代代程序設(shè)設(shè)計技術(shù)術(shù)結(jié)果應能能清楚地地審查開發(fā)小組組的人員員應少而而精承認不斷斷改進軟軟件工程程實踐的的必要性性2023/1/11.3軟件工程程軟件工程程的目標標提高軟件件產(chǎn)品質(zhì)質(zhì)量和軟軟件開發(fā)發(fā)效率,,減少軟軟件維護護難度需考慮的的問題可修改性性:允許對對系統(tǒng)修修改,而而不增加加系統(tǒng)復復雜性。。有效性:軟件系系統(tǒng)能在在一定的的時間資資源和空空間資源源環(huán)境下下,完成成規(guī)定的的任務。。正確性:軟件能能準確無無誤地執(zhí)執(zhí)行用戶戶需求的的各種功功能,滿滿足用戶戶要求的的各種性性能指標標??煽啃裕阂卜Q為為健壯性性,在硬硬件、操操作系統(tǒng)統(tǒng)出現(xiàn)故故障,或或人為操操作不當當?shù)那闆r況下,不不會導致致軟件系系統(tǒng)失效效。2023/1/11.3軟件工程程可理解性性:包括兩兩個方面面的內(nèi)容容,一是是軟件系系統(tǒng)結(jié)構(gòu)構(gòu)清晰、、容易理理解,二二是程序序算法功功能清晰晰,容易易讀懂。??芍赜眯孕裕很浖兄械哪硞€個部分可可以在系系統(tǒng)的多多處重復復使用,,或者在在多個系系統(tǒng)中使使用??蛇m應性性:軟件在在不同硬硬件和操操作系統(tǒng)統(tǒng)環(huán)境下下的適應應程度。??梢浦残孕裕后w現(xiàn)了了軟件從從一種計計算機軟軟件移動動到另一一種計算算機環(huán)境境下的難難易程度度??筛櫺孕裕喊▋蓛煞矫妫?,一是可可以根據(jù)據(jù)軟件開開發(fā)的文文檔對設(shè)設(shè)計過程程進行正正向跟蹤蹤或逆向向跟蹤;;二是軟軟件測試試和維護護過程中中,對程程序的執(zhí)執(zhí)行進行行跟蹤,,根據(jù)跟跟蹤情況況,分析析程序執(zhí)執(zhí)行的因因果關(guān)系系?;ゲ僮餍孕裕憾鄠€軟軟件相互互通信,,協(xié)作完完成任務務的能力力。2023/1/11.3軟件工程軟件工程的原原則抽象(abstraction):抽取各個個事物中共同同的最基本的的特征和行為為,暫時忽略略它們之間的的差異。信息隱藏(informationhiding):將模塊內(nèi)內(nèi)部信息(數(shù)數(shù)據(jù)和過程))封裝起來。。局部化(localization):即在一個個物理模塊內(nèi)內(nèi)集中邏輯上上相互關(guān)聯(lián)的的計算資源。。一致性(consistency):應保證在在開發(fā)過程中中相關(guān)內(nèi)容的的一致。完全性(completeness):軟件系統(tǒng)統(tǒng)不丟失任何何重要成分,,完全實現(xiàn)所所需的系統(tǒng)功功能的程度。??沈炞C性(verifiability):開發(fā)大型型軟件系統(tǒng)需需要對系統(tǒng)逐逐層分解、驗驗證。2023/1/11.4軟件工程方法法把在軟件生命命周期全過程程中使用的一一整套技術(shù)集集合稱為方法(methodology),也稱為范型(paradigm)。軟件工程方法法包括開發(fā)方法、開發(fā)工具和開發(fā)過程三方面開發(fā)方法:完完成軟件開發(fā)發(fā)的技術(shù)方法法開發(fā)工具:開開發(fā)軟件的支支撐環(huán)境開發(fā)過程:完完成開發(fā)軟件件各項任務的的工作步驟。。目前使用得最最廣泛的軟件件工程方法,,分別是傳統(tǒng)方法和面向?qū)ο蠓椒ǚā?023/1/11.4軟件工程方法法傳統(tǒng)方法:也可稱為軟件生命周期期方法或結(jié)構(gòu)化方法,把軟件開發(fā)發(fā)和維護分成成軟件定義、、軟件開發(fā)和和軟件維護三三個時期,每每個時期又分分成若干個階階段。軟件定義時期期:確定軟件開開發(fā)必須完成成的任務;論論證軟件可行行性;確定用用戶需求的詳詳細功能和性性能??蓜澐址譃槿齻€階段段:問題定義義、可行性研研究和需求分分析。軟件開發(fā)時期期:設(shè)計和實現(xiàn)現(xiàn)軟件的定義義。四個階段段:總體設(shè)計計、詳細設(shè)計計、編碼及單單元測試、綜綜合測試。軟件維護時期期:對投入使用用的軟件的修修改,實際上上是對軟件的的一次重新定定義和開發(fā)過過程。2023/1/11.4軟件工程方法法傳統(tǒng)方法的各各階段問題定義:弄清楚要解解決什么問題題??尚行匝芯浚悍治銮宄啊坝檬裁崔k法法解決這個問問題”,保證證在技術(shù)上、、實效上、法法律上都是行行得通的。需求分析:確定軟件的的功能和性能能。用戶要要要清楚開發(fā)出出的軟件系統(tǒng)統(tǒng)能夠做什么么;軟件開發(fā)發(fā)人員也應該該清楚用戶的的具體要求是是什么??傮w設(shè)計:設(shè)計軟件的的總體結(jié)構(gòu),,將一個大系系統(tǒng)按照功能能設(shè)計成小模模塊,總體設(shè)設(shè)計有時也稱稱概要設(shè)計。。詳細設(shè)計:對每個模塊塊設(shè)計具體算算法和數(shù)據(jù)結(jié)結(jié)構(gòu),詳細設(shè)設(shè)計有時也稱稱模塊設(shè)計。。編碼及單元測測試:根據(jù)詳細設(shè)設(shè)計的結(jié)果,,用程序設(shè)計計語言,編寫寫正確的源程程序,并且對對每段程序進進行嚴格測試試。綜合測試:通過測試使使軟件系統(tǒng)達達到用戶的要要求。最基本本的測試集成成測試和驗收收測試。軟件維護:軟件投入運運行后的維護護活動,通常??蓜澐譃樗乃念悾焊恼孕跃S護、適應應性維護、完完善性維護、、預防性維護護。1.4軟件工程方法法仍然是使用十十分廣泛的軟軟件工程方法法。采用結(jié)構(gòu)化技技術(shù)來完成軟軟件開發(fā)的各各項任務,并并使用適當?shù)牡能浖ぞ呋蚧蜍浖こ汰h(huán)環(huán)境來支持結(jié)結(jié)構(gòu)化技術(shù)的的運用。從上而下,順順序地完成軟軟件開發(fā)的各各階段任務。。2023/1/11.4軟件件工工程程方方法法面向向?qū)ο笙蠓椒椒ǚㄒ环N種把把面面向向?qū)ο笙蟮牡乃妓枷胂霊獞糜糜谟谲涇浖_開發(fā)發(fā)過過程程中中,,指指導導開開發(fā)發(fā)活活動動的的系系統(tǒng)統(tǒng)方方法法,,簡簡稱稱OO(Object-Oriented)方方法法。。面向向?qū)ο笙蠓椒椒ǚǖ牡奶靥卣髡魇墙ń⒘⒃谠趯ο笙蟾鸥拍钅罨A(chǔ)礎(chǔ)上上的的方方法法學學,,對對象象的的概概念念貫貫穿穿于于開開發(fā)發(fā)全全過過程程。。運用用人人類類日日常常的的思思維維方方法法和和原原則則進進行行系系統(tǒng)統(tǒng)開開發(fā)發(fā),,體體現(xiàn)現(xiàn)出出繼繼承承性性、、封封裝裝性性、、多多態(tài)態(tài)性性等等基基本本特特征征。??蓜潉澐址譃闉槿齻€個階階段段::面面向向?qū)ο笙蠓址治鑫觯ǎ∣OA)、、面面向向?qū)ο笙笤O(shè)設(shè)計計((OOD)、、面面向向?qū)ο笙髮崒崿F(xiàn)現(xiàn)((OOI)。。2023/1/12023/1/11.5軟件生命命周期模模型軟件項目目開發(fā)和和維護的的全過程程軟件生命命周期模模型的種種類以軟件需需求完全全確定為為基礎(chǔ)的的瀑布模模型;開發(fā)初期期僅給出出基本需需求的漸漸進式模模型,如如原型模模型、螺螺旋模型型、噴泉泉模型等等;以形式化化開發(fā)方方法為基基礎(chǔ)的變變換模型型、基于于第四代代語言技技術(shù)的模模型。在實際開開發(fā)時,,應根據(jù)據(jù)項目的的特點和和現(xiàn)有的的條件選選取合適適的模型型,也可可以把幾幾種模型型組合起起來使用用以便充充分利用用各模型型的優(yōu)點點。2023/1/11.5軟件開發(fā)模型型瀑布模型嚴格按照軟件件生存周期各各個階段來進進行開發(fā),上上一階段的輸輸出即是下一一階段的輸入入,強調(diào)每一一階段的嚴格格性。2023/1/11.5軟件開發(fā)模型型瀑布模型的優(yōu)優(yōu)點提供了軟件開開發(fā)的基本框框架,有利于于大型軟件開開發(fā)過程中人人員的組織、、管理,有利利于軟件開發(fā)發(fā)方法和工具具的研究與使使用,因此,,在軟件工程程中占有重要要的地位。瀑布模型的缺缺點在軟件開發(fā)的的初期階段就就要求做出正正確、全面、、完整的需求求分析對許多多應用軟件來來說是極其困困難的。作為整體開發(fā)發(fā)的瀑布模型型,由于不支支持產(chǎn)品的演演化,缺乏靈靈活性,對開開發(fā)過程中很很難發(fā)現(xiàn)的錯錯誤,只有在在最終產(chǎn)品運運行時才能暴暴露出來,從從而使軟件產(chǎn)產(chǎn)品難以維護護。瀑布模型的適適用場合適合于功能、、性能明確、、完整、無重重大變化的軟軟件系統(tǒng)2023/1/11.5軟件開發(fā)模型型原型模型開發(fā)人員與用用戶一起進行行需求分析,,進行快速設(shè)設(shè)計,建造原原型,原型由由用戶評估,,進一步修改改原型,再次次進行設(shè)計。。迭代這個過過程,逐步滿滿足用戶需要要。2023/1/11.5軟件開發(fā)模型型原型模型的主主要優(yōu)點原型模型法可可以得到良好好的需求定義義,能夠有效效處理用戶的的模糊需求,,開發(fā)者和用用戶得到充分分的協(xié)作。原型模型的主主要缺點開發(fā)者常常需需要實現(xiàn)上的的折衷,以使使原型能盡快快工作;用戶似乎看到到的是軟件的的工作版本,,其實軟件質(zhì)質(zhì)量和可靠性性難以保證;;資源規(guī)劃和管管理較為困難難,更新文檔檔工作量繁重重。原型模型的適適用場合適合于那些不不能預先確切切定義需求的的軟件系統(tǒng)的的開發(fā),更適適合于那些項項目組成員((包括分析員員、設(shè)計員、、程序員和用用戶)不能很很好交流或通通信有困難的的情況。2023/1/11.5軟件開發(fā)發(fā)模型螺旋模型型綜合了瀑瀑布模型型和原型型模型的的優(yōu)點,,即將兩兩者結(jié)合合,并加加入了風風險分析析機制。。2023/1/11.5軟件開發(fā)發(fā)模型螺旋模型型的優(yōu)點點支持用戶戶需求的的動態(tài)變變化。螺旋模型型特別強強調(diào)原型型的可擴擴充性和和可修改改性。為項目管管理人員員及時調(diào)調(diào)整管理理決策提提供了方方便,可可降低開開發(fā)風險險。螺旋模型型的缺點點如果每次次迭代的的效率不不高,致致使迭代代次數(shù)過過多。需要有相相當豐富富的風險險評估經(jīng)經(jīng)驗和專專門知識識,要求求開發(fā)隊隊伍水平平較高。。螺旋模型型適用場場合支持需求求不明確確、特別別是大型型軟件系系統(tǒng)的開開發(fā),并并支持多多種軟件件開發(fā)方方法,是是一種具具有廣闊闊前景

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論