軟件與軟件工程課件_第1頁(yè)
軟件與軟件工程課件_第2頁(yè)
軟件與軟件工程課件_第3頁(yè)
軟件與軟件工程課件_第4頁(yè)
軟件與軟件工程課件_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件與軟件工程本章目標(biāo)2了解軟件的概念,特點(diǎn)及主要分類了解軟件危機(jī)的表現(xiàn)及其產(chǎn)生原因掌握軟件工程的概念,以及軟件工程的基本原則了解軟件開發(fā)的方法了解與軟件開發(fā)項(xiàng)目相關(guān)的常用工具了解軟件工程人員的職業(yè)道德目錄3第一節(jié)軟件第二節(jié)

軟件危機(jī)第三節(jié)

軟件工程第四節(jié)

軟件開發(fā)方法第五節(jié)

軟件工程工具第六節(jié)

職業(yè)道德第一節(jié)軟件1.1.1軟件的概念及特點(diǎn)1.1.2軟件的分類1.1 軟件

1.1.1軟件的概念及特點(diǎn)概念:計(jì)算機(jī)軟件是由專業(yè)人員開發(fā)并長(zhǎng)期維護(hù)的軟件產(chǎn)品。完整的軟件產(chǎn)品包括了在各種不同容量和體系結(jié)構(gòu)計(jì)算機(jī)上的可執(zhí)行的程序,運(yùn)行過程中產(chǎn)生的各種結(jié)果,以及以硬復(fù)制和電子表格等多種方式存在的軟件文檔。51.1 軟件

特點(diǎn):1)具有抽象性2)無明顯的制造過程3)存在退化問題4)對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性5)尚未完全擺脫人工的開發(fā)方式6)軟件本身是復(fù)雜的7)成本相當(dāng)昂貴8)相當(dāng)多的軟件工作涉及社會(huì)因素61.1軟件1.1.2軟件的分類7第二節(jié)軟件危機(jī)1.2.1軟件危機(jī)的表現(xiàn)與原因1.2.2軟件危機(jī)的啟示1.2軟件危機(jī)1.2.1軟件危機(jī)的表現(xiàn)與原因在軟件開發(fā)的過程中,會(huì)經(jīng)常出現(xiàn)一些不能按時(shí)完成任務(wù)、產(chǎn)品質(zhì)量得不到保證、工作效率低下和開發(fā)經(jīng)費(fèi)嚴(yán)重超支等現(xiàn)象。計(jì)算機(jī)軟件的開發(fā)、維護(hù)和應(yīng)用過程中普遍出現(xiàn)的這一些嚴(yán)重的問題便是軟件危機(jī)91.2軟件危機(jī)

主要表現(xiàn)1)產(chǎn)品的功能或特性與需求不符2)相比硬件,軟件代價(jià)過高3)質(zhì)量難以保證,難以發(fā)揮硬件潛能4)難以準(zhǔn)確估計(jì)開發(fā)、維護(hù)的費(fèi)用和開發(fā)周期5)難以控制開發(fā)風(fēng)險(xiǎn),開發(fā)速度趕不上市場(chǎng)變化6)軟件產(chǎn)品修改、維護(hù)困難7)軟件文檔不完備,存在內(nèi)容與產(chǎn)品不符的情況101.2軟件危機(jī)

本質(zhì)原因:人們對(duì)軟件產(chǎn)品認(rèn)識(shí)的不足以及對(duì)軟件開發(fā)的內(nèi)在規(guī)律理解的偏差具體原因1)忽視開發(fā)前期的需求分析2)開發(fā)過程缺乏統(tǒng)一、規(guī)范化的方法論指導(dǎo)3)文檔資料不齊全或不準(zhǔn)確4)忽視與用戶之間、開發(fā)組成員之間的交流5)忽視測(cè)試的重要性6)不重視維護(hù),或維護(hù)工作困難7)對(duì)產(chǎn)業(yè)認(rèn)識(shí)不充分,缺乏經(jīng)驗(yàn)8)沒有完善的質(zhì)量保證體系111.2軟件危機(jī)1.2.2軟件危機(jī)的啟示

軟件危機(jī)給我們的最大啟示,是使我們更加深刻的認(rèn)識(shí)到軟件的特性以及軟件產(chǎn)品開發(fā)的內(nèi)在規(guī)律。軟件產(chǎn)品是復(fù)雜的人造系統(tǒng),具有復(fù)雜性、不可見性和易變性,難以處理。個(gè)人或小組在開發(fā)小型軟件時(shí)使用到的非常有效的編程技術(shù)和過程,在開發(fā)大型、復(fù)雜系統(tǒng)時(shí)難以發(fā)揮同樣的作用。從本質(zhì)上講,軟件開發(fā)的創(chuàng)造性成分很大、發(fā)揮的余地也很大,很接近于藝術(shù)。它介于藝術(shù)與工程之間的某一點(diǎn),并逐步向工程一段漂移,但很難發(fā)展到完全的工程。121.2軟件危機(jī)1.2.2軟件危機(jī)的啟示

軟件危機(jī)給我們的最大啟示,是使我們更加深刻的認(rèn)識(shí)到軟件的特性以及軟件產(chǎn)品開發(fā)的內(nèi)在規(guī)律。計(jì)算機(jī)和軟件技術(shù)的快速發(fā)展,提高了用戶對(duì)軟件的期望,促進(jìn)了軟件產(chǎn)品的演化,對(duì)軟件產(chǎn)品提出了新的、更多的需求,難以在可接受的開發(fā)進(jìn)度內(nèi)保證軟件的質(zhì)量。幾乎所有的軟件項(xiàng)目都是新的,而且是不斷變化的。項(xiàng)目需求在開發(fā)過程中會(huì)發(fā)生變化,而且很多原來預(yù)想不到的問題會(huì)出現(xiàn),對(duì)設(shè)計(jì)和實(shí)現(xiàn)手段進(jìn)行適當(dāng)?shù)恼{(diào)整是不可避免的?!叭嗽律裨挕爆F(xiàn)象——生產(chǎn)力與人數(shù)并不成正比。13第三節(jié)軟件工程1.3.1軟件工程的概念1.3.2軟件工程研究的內(nèi)容1.3.3軟件工程目標(biāo)和原則1.3.4軟件工程知識(shí)體系1.3軟件工程1.3.1軟件工程的概念I(lǐng)EEE對(duì)軟件工程的定義為:1)將系統(tǒng)化、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件2)對(duì)1)中所述方法的研究具體說來,軟件工程是以借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。它是一種層次化的技術(shù)151.3軟件工程161.3軟件工程1.3.1軟件工程的概念軟件工程的根基在于對(duì)質(zhì)量的關(guān)注;軟件工程的基礎(chǔ)是過程層,它定義了一組關(guān)鍵過程區(qū)域的框架,使得軟件能夠被合理和及時(shí)地開發(fā);軟件工程的方法提供了建造軟件在技術(shù)上需要“做什么”,它覆蓋了一系列的任務(wù),包括需求分析、設(shè)計(jì)、編程、測(cè)試和支持等;軟件工程的工具對(duì)過程和方法提供了自動(dòng)的或半自動(dòng)的支持。而軟件工程本身是一個(gè)交叉學(xué)科,涉及多種學(xué)科領(lǐng)域的相關(guān)知識(shí),包括工程學(xué)、數(shù)學(xué)、計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)、管理學(xué)、心理學(xué)等。171.3軟件工程1.3.1軟件工程的概念軟件工程的目標(biāo):關(guān)注質(zhì)量軟件工程的三要素:過程、方法和工具181.3軟件工程1.3.2軟件工程研究的內(nèi)容

軟件工程研究的內(nèi)容主要包括以下兩個(gè)部分:軟件開發(fā)技術(shù)。主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。軟件開發(fā)過程管理。主要研究軟件工程經(jīng)濟(jì)學(xué)和軟件管理學(xué)。191.3軟件工程1.3.3軟件工程目標(biāo)和原則軟件工程要達(dá)到的基本目標(biāo)包括:達(dá)到要求的軟件功能取得較好的軟件性能開發(fā)出高質(zhì)量的軟件付出較低的開發(fā)成本需要較低的維護(hù)費(fèi)用能按時(shí)完成開發(fā)工作,及時(shí)交付使用201.3軟件工程1.3.3軟件工程目標(biāo)和原則軟件工程的7條基本原則:用分階段的生命周期計(jì)劃進(jìn)行嚴(yán)格的管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的版本控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)軟件工程結(jié)果應(yīng)能清楚的審查開發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性211.3軟件工程1.3.4軟件工程知識(shí)體系IEEE在2014年發(fā)布的《軟件工程知識(shí)體系指南》中將軟件工程知識(shí)體系劃分為以下15個(gè)知識(shí)領(lǐng)域。221.軟件需求2.軟件設(shè)計(jì)3.軟件構(gòu)建4.軟件測(cè)試5.軟件維護(hù)6.軟件配置管理7.軟件工程管理8.軟件工程過程9.軟件工程模型和方法10.軟件質(zhì)量11.軟件工程職業(yè)實(shí)踐12.軟件工程經(jīng)濟(jì)學(xué)13.計(jì)算基礎(chǔ)14.?dāng)?shù)學(xué)基礎(chǔ)15.工程基礎(chǔ)第四節(jié)軟件開發(fā)方法1.4.1基本的軟件開發(fā)方法1.4.2開源軟件開發(fā)方法1.4.3群體化軟件開發(fā)方法1.4軟件開發(fā)方法1.4.1基本的軟件開發(fā)方法軟件開發(fā)方法是一種使用定義好的技術(shù)集及符號(hào)表示組織軟件生產(chǎn)的過程,它的目標(biāo)是在規(guī)定的時(shí)間和成本內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。常見的軟件開發(fā)方法包括:1)結(jié)構(gòu)化方法2)面向數(shù)據(jù)結(jié)構(gòu)方法3)面向?qū)ο蠓椒?)形式化方法此外,軟件開發(fā)方法還有問題分析法、可視化開發(fā)方法等。241.4軟件開發(fā)方法1.4.2開源軟件開發(fā)方法開源軟件開發(fā)指的是由開源軟件項(xiàng)目開發(fā)開源軟件或類似原件的過程,其中,開源軟件的源代碼是公開可用的。這些軟件產(chǎn)品及其源代碼在開源許可下可用,它們常常被用于研究、更改和改進(jìn)其設(shè)計(jì)。開源項(xiàng)目可分為以下4類:1)各種各樣的軟件程序和庫(kù)2)發(fā)行版3)其他開源項(xiàng)目4)書籍或獨(dú)立文檔項(xiàng)目

251.4軟件開發(fā)方法1.4.2開源軟件開發(fā)方法開源項(xiàng)目的工作方式:1)意識(shí)到項(xiàng)目需求的個(gè)人宣布了公開開發(fā)項(xiàng)目的意圖2)開發(fā)人員在代碼庫(kù)上工作,將其作為開源程序的第一個(gè)版本發(fā)布3)到期項(xiàng)目的源代碼向公眾發(fā)布4)一個(gè)完善的開源項(xiàng)目可以由感興趣的外部用戶派生

261.4軟件開發(fā)方法1.4.3群體化軟件開發(fā)方法群體化軟件開發(fā)方法最大的特點(diǎn)是面向公眾。核心原則:1)開放2)平等3)共享4)全局行動(dòng)相關(guān)模型:1)代碼與證據(jù)緊密耦合的可信軟件演化模型2)創(chuàng)作與生產(chǎn)緊密耦合的軟件開發(fā)過程模型3)協(xié)同、共享、監(jiān)控與分析緊密耦合的服務(wù)支撐模型

271.4軟件開發(fā)方法1.4.3群體化軟件開發(fā)方法群體化軟件開發(fā)方法將軟件開發(fā)過程全面開放并快速迭代,不斷發(fā)布系統(tǒng)原型,吸引互聯(lián)網(wǎng)大眾體驗(yàn),借助互聯(lián)網(wǎng)平臺(tái)開展各種形式的交流、協(xié)同和共享,實(shí)現(xiàn)群體需求及創(chuàng)意的匯聚。軟件開發(fā)團(tuán)隊(duì)對(duì)大眾需求創(chuàng)意進(jìn)行識(shí)別審查,借助工業(yè)化生產(chǎn)的強(qiáng)組織模式來組織軟件開發(fā)過程,實(shí)現(xiàn)高質(zhì)量軟件產(chǎn)品的輸出。群體化軟件方法將大眾群體的軟件創(chuàng)作過程有機(jī)融入開發(fā)團(tuán)隊(duì)的軟件產(chǎn)品的輸出。群體化軟件方法將大眾群體的軟件創(chuàng)作過程有機(jī)融入開發(fā)團(tuán)隊(duì)的軟件生產(chǎn)流程中,能夠充分發(fā)揮大眾群體和開發(fā)團(tuán)隊(duì)在軟件開發(fā)過程中各自的優(yōu)勢(shì),有效地支持網(wǎng)絡(luò)環(huán)境下的軟件開發(fā)。

28第五節(jié)軟件工程工具1.5軟件工程工具軟件工程的工具對(duì)軟件工程中的過程和方法提供自動(dòng)的或半自動(dòng)的支持??梢詭椭浖_發(fā)人員方便、簡(jiǎn)捷、高效地進(jìn)行軟件的分析、設(shè)計(jì)、開發(fā)、測(cè)試、維護(hù)和管理等工作。有效地利用工具軟件可以提高軟件開發(fā)的質(zhì)量,減少成本,縮短工期,方便軟件項(xiàng)目的管理。軟件工程工具通常有3種分類標(biāo)準(zhǔn):按照功能劃分按照支持的過程劃分按照支持的范圍劃分301.5軟件工程工具按照功能劃分:功能是對(duì)軟件進(jìn)行分類的最常用的標(biāo)準(zhǔn),按照功能劃分,軟件工程工具可分為可視化建模工具、程序開發(fā)工具、自動(dòng)化測(cè)試工具、文檔編輯工具、配置管理工具、項(xiàng)目管理工具等。按照支持的過程劃分:根據(jù)支持的過程,軟件工程工具可分為設(shè)計(jì)工具、編程工具、維護(hù)工具等。311.5軟件工程工具按照支持的范圍劃分:根據(jù)支持的范圍,軟件工程工具可以分為窄支持、較寬支持和一般支持工具。窄支持工具支持軟件工程過程中的特定任務(wù),一般將其稱之為工具;較寬支持支持特定的過程階段,一般由多個(gè)工具集合而成,稱之為工作臺(tái);一般支持支持覆蓋軟件過程的全部或大部分階段,包含多個(gè)不同的工作臺(tái),稱之為環(huán)境。321.5軟件工程工具在需求分析與系統(tǒng)設(shè)計(jì)階段,常用的CASE(計(jì)算機(jī)輔助軟件工程)工具有面向通用軟件設(shè)計(jì)的MicrosoftVisio、用于面向?qū)ο筌浖O(shè)計(jì)的RationalRose、用于數(shù)據(jù)庫(kù)設(shè)計(jì)的PowerDesigner,除此之外近幾年還出現(xiàn)了更加集成化的工具,如EnterpriseArchitect、RationalSoftwareArchitect和StarUML等。這些工具通過簡(jiǎn)化UML圖的繪制工作,以及強(qiáng)大的模型轉(zhuǎn)換功能(諸如正向工程、反向工程、數(shù)據(jù)庫(kù)模型轉(zhuǎn)化等),大大簡(jiǎn)化了設(shè)計(jì)以及從設(shè)計(jì)向編碼轉(zhuǎn)化的工作。331.5軟件工程工具在編碼階段,集成開發(fā)環(huán)境(IDE)通過提供代碼高亮、補(bǔ)全,內(nèi)置調(diào)試工具等功能,大大提高了效率。IDE主流的實(shí)例如表所示。34名稱編程語(yǔ)言TurboPascalPascalDevC++C/C++CodeblocksC/C++CLionC/C++/C#VisualStudioC++/VB/C#/JavaScript等VisualStudioCodeC++/VB/C#/JavaScript等GoLandGoRubymineRubyWebstormJavaScriptPHPstormPHPPyCharmPythonEclipseJavaIntelliJIdeaJavaXCodeObjective-C/Swift1.5軟件工程工具在測(cè)試階段,通常會(huì)使用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試。除單元測(cè)試工具外,較為流行的自動(dòng)化測(cè)試工具包括C/S功能測(cè)試工具WinRunner,性能測(cè)試工具LoadRunner、Jmeter,測(cè)試管理工具TestDirector、Jira,Web服務(wù)測(cè)試工具QTester(簡(jiǎn)稱QT)、SoapUI等。單元測(cè)試工具通常與語(yǔ)言及開發(fā)框架關(guān)聯(lián)密切,部分實(shí)例如表所示。35名稱編程語(yǔ)言CUnitCCppUnitC++JUnitJAVANUit.NETPerlTestingPerlMocha/Should.jsNode.js內(nèi)置unittest模塊/pytestPythonPHPUnitPHP內(nèi)置Test::Unit模塊Ruby1.5軟件工程工具除了這幾個(gè)階段,軟件開發(fā)過程還包括諸多其他活動(dòng),而其中最重要的便是配置管理與項(xiàng)目管理。配置管理通常分為不同模式,每一種模式均有對(duì)應(yīng)的工具,較為著名的有MicrosoftVSS、CVS、SVN等,近年來較常用的為Git。而項(xiàng)目管理領(lǐng)域最普遍使用的為微軟公司開發(fā)的MicrosoftProject,該軟件提供了強(qiáng)大的項(xiàng)目管理功能,基本能夠滿足企業(yè)級(jí)項(xiàng)目管理的全部需求。此外,近年來隨著敏捷開發(fā)的興起,諸如基于Scrum的PingCode,以及基于看板(Kanban

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論