計(jì)算機(jī)科學(xué)概論第8章-軟件工程課件_第1頁
計(jì)算機(jī)科學(xué)概論第8章-軟件工程課件_第2頁
計(jì)算機(jī)科學(xué)概論第8章-軟件工程課件_第3頁
計(jì)算機(jī)科學(xué)概論第8章-軟件工程課件_第4頁
計(jì)算機(jī)科學(xué)概論第8章-軟件工程課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《計(jì)算機(jī)科學(xué)概論》第8章軟件工程2軟件工程Outline:軟件工程學(xué)科發(fā)展軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)工具軟件行業(yè)道德與法律軟件工程學(xué)科發(fā)展軟件危機(jī)開始階段60年代中期,大容量、高速度計(jì)算機(jī)的出現(xiàn),使計(jì)算機(jī)的應(yīng)用范圍迅速擴(kuò)大、隨著軟件開發(fā)規(guī)模的增大、復(fù)雜性以及功能的增強(qiáng),高質(zhì)量的軟件開發(fā)變的越來越困難。表現(xiàn)難以在規(guī)定的時(shí)間內(nèi)完成開發(fā)任務(wù)軟件產(chǎn)品的質(zhì)量得不到保證開發(fā)人員開發(fā)的軟件不能完全滿足用戶的需求等典型案例IBM公司的OS/360項(xiàng)目Therac-25事件3軟件工程學(xué)科發(fā)展軟件工程的誕生誕生階段北大西洋公約組織(NATO)在1968年舉辦了首次軟件工程學(xué)術(shù)會(huì)議,并于會(huì)中提出“軟件工程”來界定軟件開發(fā)所需相關(guān)知識(shí)。發(fā)展軟件工程已經(jīng)成為一門獨(dú)立學(xué)科軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)與技術(shù)、數(shù)學(xué)、管理學(xué)的原理,運(yùn)用工程科學(xué)的理論、方法和技術(shù),研究和指導(dǎo)軟件開發(fā)與演化的一門交叉學(xué)科是用工程化的方法開發(fā)軟件4軟件工程學(xué)科發(fā)展軟件工程的內(nèi)容和意義軟件工程知識(shí)體系依據(jù)2014年發(fā)布的《軟件工程知識(shí)體系指南》軟件需求(softwarerequirements)軟件設(shè)計(jì)(softwaredesign)軟件構(gòu)建(softwareconstruction)軟件測試(softwaretesting)軟件維護(hù)(softwaremaintenance)軟件配置管理(softwareconfigurationmanagement)軟件工程管理(softwareengineeringmanagement)軟件工程過程(softwareengineeringprocess)5軟件工程學(xué)科發(fā)展軟件工程的內(nèi)容和意義軟件工程知識(shí)體系軟件工程模型和方法(softwareengineeringmodelsandmethods)軟件質(zhì)量(softwarequality)軟件工程職業(yè)實(shí)踐(softwareengineeringprofessionalpractice)軟件工程經(jīng)濟(jì)學(xué)(softwareengineeringeconomics)計(jì)算基礎(chǔ)(computingfoundations)數(shù)學(xué)基礎(chǔ)(mathematicalfoundations)工程基礎(chǔ)(engineeringfoundations)

6軟件工程學(xué)科發(fā)展軟件工程的內(nèi)容和意義意義軟件工程為軟件開發(fā)提出了形式化的方法,用工程化的理念來指導(dǎo)軟件的開發(fā)過程,在高效的軟件生產(chǎn)和科學(xué)的項(xiàng)目管理的基礎(chǔ)上得到高質(zhì)量的產(chǎn)品

7軟件工程學(xué)科發(fā)展軟件生命周期典型的軟件工程生命周期可行性研究解決的是軟件能不能開發(fā)的問題需求分析目標(biāo)系統(tǒng)需要做什么的問題軟件設(shè)計(jì)目標(biāo)系統(tǒng)該怎么開發(fā)的問題軟件實(shí)現(xiàn)進(jìn)行實(shí)際的編碼工作軟件測試軟件測試的目的是發(fā)現(xiàn)軟件產(chǎn)品中存在的缺陷軟件維護(hù)

89軟件工程Outline:軟件工程學(xué)科發(fā)展軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)工具軟件行業(yè)道德與法律軟件開發(fā)模型軟件開發(fā)模型定義軟件開發(fā)模型描述了主要的開發(fā)階段,定義了每個(gè)階段需要完成的任務(wù)和活動(dòng),規(guī)范了每個(gè)階段的輸入和輸出,并且為開發(fā)過程定義了一個(gè)框架,將必要的活動(dòng)都映射到框架中意義軟件開發(fā)模型是軟件工程思想的具體化,反映了軟件在其生命周期中各個(gè)階段的銜接和過渡關(guān)系,是人們?cè)谲浖_發(fā)過程中總結(jié)出來的方法和步驟10軟件開發(fā)模型瀑布模型提出:由W.W.Royce在1970年首次提出的軟體開發(fā)模型階段:計(jì)劃、需求分析,設(shè)計(jì),編碼,測試,集成,運(yùn)行和維護(hù)前一階段的輸入就是后一階段的輸出特點(diǎn):瀑布模型是一種線性開發(fā)模型,回溯性比較差瀑布模型是一種里程碑式的開發(fā)過程適用:適用于需求變化不大,開發(fā)人員有相關(guān)的經(jīng)驗(yàn)并且風(fēng)險(xiǎn)較低的項(xiàng)目11軟件開發(fā)模型瀑布模型12軟件開發(fā)模型噴泉模型定義:一種過程模型,也同時(shí)支持面向?qū)ο箝_發(fā)階段:分析,設(shè)計(jì),編碼特點(diǎn):面向?qū)ο蠓椒ǖ牡蜔o間隙性各個(gè)階段需要多次重復(fù)各個(gè)階段之間沒有明顯的界限,常常進(jìn)行相互交叉13軟件開發(fā)模型原型模型定義:在初步獲取需求之后,開發(fā)人員會(huì)快速地開發(fā)出一個(gè)原型系統(tǒng),通過對(duì)原型系統(tǒng)的進(jìn)行模擬操作,開發(fā)人員可以更直觀地了解到用戶的需求,并且可以挖掘一部分的隱含的需求分類探索型原型實(shí)驗(yàn)型原型漸增型原型14軟件開發(fā)模型增量模型定義:將軟件開發(fā)模塊化,將每一個(gè)模塊都作為一個(gè)組件,分別進(jìn)行分析、設(shè)計(jì)、編碼、測試等步驟:先開發(fā)核心組件,創(chuàng)建一個(gè)具備基本功能的組件再對(duì)其進(jìn)行完善優(yōu)點(diǎn):開發(fā)組件化、提交批次化、開發(fā)順序靈活、風(fēng)險(xiǎn)比較低缺點(diǎn):

要求被開發(fā)的軟件系統(tǒng)要能夠模塊化15軟件開發(fā)模型增量模型16軟件開發(fā)模型螺旋模型提出:是由美國軟件工程師巴里·勃姆于1988年5月在他的文章《一種螺旋式的軟件開發(fā)與強(qiáng)化模型》提出的一種模型。階段:決定方案對(duì)軟件開發(fā)目標(biāo)進(jìn)行規(guī)劃評(píng)估方案從風(fēng)險(xiǎn)的角度對(duì)當(dāng)前的開發(fā)計(jì)劃進(jìn)行處理,進(jìn)行評(píng)估開發(fā)實(shí)施具體的實(shí)施階段下一階段計(jì)劃迭代地對(duì)下一階段的開發(fā)進(jìn)行合理的計(jì)劃17軟件開發(fā)模型螺旋模型優(yōu)點(diǎn):通過原型開發(fā),使每個(gè)迭代明確自己最初的方向;通過將風(fēng)險(xiǎn)分?jǐn)偟矫總€(gè)迭代過程的方式,降低整體的風(fēng)險(xiǎn)在每個(gè)階段都有自己的支出計(jì)劃,使整體的支出容易得到統(tǒng)計(jì)缺點(diǎn):

過分依賴風(fēng)險(xiǎn)的分析經(jīng)驗(yàn)和技術(shù)會(huì)增加整體的成本18軟件開發(fā)模型統(tǒng)一軟件開發(fā)模型提出:稱為RUP,是Rational軟件公司創(chuàng)建的軟件開發(fā)方法是一種重量級(jí)過程,特別適用于大型軟件團(tuán)隊(duì)開發(fā)大型項(xiàng)目在RUP的開發(fā)過程中,在開發(fā)之外配套的管理過程、文檔等都是非常復(fù)雜的19軟件開發(fā)模型統(tǒng)一軟件開發(fā)模型階段初始細(xì)化構(gòu)造交付適用適用于規(guī)模比較大、團(tuán)隊(duì)成員比較多的項(xiàng)目對(duì)風(fēng)險(xiǎn)控制和進(jìn)度管理都有質(zhì)量保證都有很好地效果20軟件開發(fā)模型敏捷模型定義快捷、小文檔、輕量級(jí)的開發(fā)過程強(qiáng)調(diào)人與人之間溝通的重要性以及開發(fā)過程的簡潔性特點(diǎn)更加強(qiáng)調(diào)發(fā)揮團(tuán)隊(duì)成員的個(gè)性思維強(qiáng)調(diào)軟件開發(fā)過程中團(tuán)隊(duì)成員之間的交流、過程的簡潔性、用戶反饋、對(duì)決定的信心和人性化的特征實(shí)踐極限編程自適應(yīng)軟件開發(fā)方法動(dòng)態(tài)系統(tǒng)開發(fā)方法

2122軟件工程Outline:軟件工程學(xué)科發(fā)展軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)工具軟件行業(yè)道德與法律軟件開發(fā)方法軟件開發(fā)方法定義形式上定義了軟件如何被開發(fā)的問題說明了軟件開發(fā)的具體方法和采用的方式結(jié)構(gòu)化方法定義:一種傳統(tǒng)的軟件開發(fā)方法,它由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化程序設(shè)計(jì)三個(gè)部分組成基本思想:把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,而這種分解是自頂向下,逐層分解,使得每個(gè)階段處理的問題都能控制在人們?nèi)菀桌斫夂吞幚淼姆秶畠?nèi)23軟件開發(fā)方法結(jié)構(gòu)化方法設(shè)計(jì)方法以自頂向下,逐步求精,模塊化為基點(diǎn),以模塊化,抽象,逐層分解求精,信息隱蔽化局部化和保持模塊獨(dú)立為準(zhǔn)則的設(shè)計(jì)軟件的數(shù)據(jù)架構(gòu)和模塊架構(gòu)矩形框、直線基本要點(diǎn):自頂向下逐步求精模塊化設(shè)計(jì)結(jié)構(gòu)化編碼24軟件開發(fā)方法面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法定義注重的數(shù)據(jù)結(jié)構(gòu)而不是數(shù)據(jù)流以信息對(duì)象及其操作為核心進(jìn)行需求分析按照順序、選擇、重復(fù)三種結(jié)構(gòu)分解為成員信息對(duì)象供了由層次信息結(jié)構(gòu)映射為程序結(jié)構(gòu)的機(jī)制,典型方法:Jackson方法Warnier方法25軟件開發(fā)方法面向?qū)ο箝_發(fā)方法傳統(tǒng)軟件開發(fā)方法缺點(diǎn)軟件的可重用性差軟件的可維護(hù)性差開發(fā)出來的軟件不能滿足用戶的需求對(duì)象:對(duì)象是指人們要研究的任何事物對(duì)象具有狀態(tài)和行為,狀態(tài)是描述當(dāng)前對(duì)象的數(shù)據(jù)值,行為是該對(duì)象所能進(jìn)行的操作對(duì)象具有狀態(tài)和行為,狀態(tài)是描述當(dāng)前對(duì)象的數(shù)據(jù)值,行為是該對(duì)象所能進(jìn)行的操作26軟件開發(fā)方法面向?qū)ο箝_發(fā)方法對(duì)象每個(gè)對(duì)象都具有唯一性,其標(biāo)識(shí)是唯一的對(duì)象之間可以有繼承關(guān)系繼承性是指在定義一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上進(jìn)行開發(fā)方法Booch方法Coad方法OMT方法

UML語言27軟件開發(fā)方法可視化開發(fā)方法興起可視化開發(fā)方法是從90年代開始興起的一種開發(fā)方法開發(fā)方法通過操作界面元素,如菜單、復(fù)選框、列表框、滾動(dòng)條等事件驅(qū)動(dòng)28軟件開發(fā)方法模塊化開發(fā)方法定義基于模塊的開發(fā)方法模塊是指可以組成系統(tǒng)的,具有某種確定獨(dú)立功能的子系統(tǒng),可以通過與其他子系統(tǒng)按照一定的規(guī)則相互聯(lián)系成為更為復(fù)雜的系統(tǒng)原則:高內(nèi)聚、低耦合步驟將一個(gè)系統(tǒng)按劃分原則分為若干個(gè)獨(dú)立的模塊將模塊分給不同的開發(fā)人員獨(dú)立開發(fā)將各個(gè)模塊按照之前設(shè)定的接口進(jìn)行整合29軟件開發(fā)方法軟件重用技術(shù)定義是利用已有的軟件來重新構(gòu)造軟件的技術(shù)采用已經(jīng)存在軟件產(chǎn)品,再進(jìn)行加工而開發(fā)出新的軟件的過程趨勢基于軟件復(fù)用庫的技術(shù)利用模式重用的生成技術(shù)利用現(xiàn)有模塊的組裝方式與面向?qū)ο笙嘟Y(jié)合類的聚集、實(shí)例對(duì)類的成員函數(shù)或操作的引用組件連接購買所需的大部分組件,進(jìn)行集成3031軟件工程Outline:軟件工程學(xué)科發(fā)展軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)工具軟件行業(yè)道德與法律軟件開發(fā)工具UML語言定義UML(UnifiedModelingLanguage),統(tǒng)一建模語言用于軟件開發(fā)周期的每一個(gè)方面,從需求分析、設(shè)計(jì)等與平臺(tái)和具體的編程語言無關(guān),主要關(guān)注的是上層的抽象和建模組成基礎(chǔ)結(jié)構(gòu)上層結(jié)構(gòu)對(duì)象約束語言圖交換標(biāo)準(zhǔn)32軟件開發(fā)工具UML語言圖示UML2.0共支持13種圖示6種結(jié)構(gòu)圖類圖、組織結(jié)構(gòu)圖、組件圖、部署圖、對(duì)象圖和包圖7種行為圖類圖、時(shí)序圖、用例圖等33軟件開發(fā)工具開發(fā)項(xiàng)目管理工具項(xiàng)目管理工具一般需要具備對(duì)項(xiàng)目進(jìn)行時(shí)間計(jì)劃、進(jìn)行任務(wù)分配、對(duì)預(yù)算進(jìn)行管理和工作量分析等功能工具M(jìn)icrosoftOfficeProjectRedmineOpenProj34軟件開發(fā)工具需求分析建模工具結(jié)構(gòu)化需求建模從高到低逐層分解最頂層的為整個(gè)目標(biāo)系統(tǒng),中間層將目標(biāo)系統(tǒng)劃分為若干個(gè)模塊,而最底層的是對(duì)每個(gè)模塊實(shí)現(xiàn)方法的細(xì)節(jié)性描述工具:數(shù)據(jù)流圖:圖形方式來表達(dá)系統(tǒng)的邏輯功能數(shù)據(jù)字典:定義數(shù)據(jù)流圖中各個(gè)圖元的具體部分E-R圖:描述應(yīng)用系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)35軟件開發(fā)工具需求分析建模工具面向?qū)ο笮枨蠼0凑沼脩襞c系統(tǒng)之間的相互交互過程進(jìn)行需求分析工具:用例圖軟件RationalRoseMicrosoftOfficeVisio36軟件開發(fā)工具需求分析建模工具設(shè)計(jì)工具按照用戶與系統(tǒng)之間的相互交互過程進(jìn)行需求分析工具:用例圖軟件RationalRoseMicrosoftOfficeVisio37軟件開發(fā)工具設(shè)計(jì)工具結(jié)構(gòu)化軟件設(shè)計(jì)方法數(shù)據(jù)流圖描述系統(tǒng)的具體執(zhí)行過程流程圖對(duì)過程和算法流程等的一種圖形化表示使用順序、選擇、循環(huán)和分支的控制方式進(jìn)行描述有一個(gè)入口和一個(gè)出口,分別表示初始條件和結(jié)束條件38軟件開發(fā)工具設(shè)計(jì)工具面向?qū)ο筌浖O(shè)計(jì)方法主要關(guān)注用戶與系統(tǒng)的交互過程時(shí)序圖和活動(dòng)圖等UML圖示例:用戶瀏覽評(píng)論頁面之后再進(jìn)行評(píng)論用戶對(duì)頁面的輸入系統(tǒng)發(fā)生的動(dòng)作展示給用戶的顯示界面39軟件開發(fā)工具編碼工具編碼過程把軟件設(shè)計(jì)階段得到的解決方案轉(zhuǎn)化為可以在計(jì)算機(jī)上運(yùn)行的軟件產(chǎn)品編程語言匯編語言編程在Shell里直接編程腳本語言和高級(jí)語言的專用IDE記事本和SublimeText等文本工具所有編程都可以40軟件開發(fā)工具測試工具測試過程發(fā)現(xiàn)隱藏的錯(cuò)誤和缺陷,保證軟件的質(zhì)量測試分類按照時(shí)間段單元測試、集成測試、系統(tǒng)測試和驗(yàn)收測試按照測試類型黑盒測試和白盒測試測試方法靜態(tài)查錯(cuò)過程,等價(jià)類劃分法、邏輯覆蓋法等測試工具開源測試工具Bugfree、TestLinkIDE測試工具,UnitTest,JUnit4等4142軟件工程Outline:軟件工程學(xué)科發(fā)展軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)工具軟件行業(yè)道德與法律軟件行業(yè)道德與法律軟件的知識(shí)產(chǎn)權(quán)軟件產(chǎn)品法律《中華人民共和國著作權(quán)法》《計(jì)算機(jī)軟件保護(hù)條例》軟件保護(hù)等級(jí)原版軟件除非經(jīng)過軟件開發(fā)者同意或付費(fèi)才具有使用權(quán)的軟件。共享軟件免費(fèi)發(fā)放的定期限試用軟件免費(fèi)軟件免費(fèi)發(fā)放、免費(fèi)使用的弱保護(hù)軟件公有領(lǐ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)論