第1部分軟件危機(jī)與軟件工程_第1頁
第1部分軟件危機(jī)與軟件工程_第2頁
第1部分軟件危機(jī)與軟件工程_第3頁
第1部分軟件危機(jī)與軟件工程_第4頁
第1部分軟件危機(jī)與軟件工程_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1部分

軟件危機(jī)與軟件工程1案例描述如同蓋一座大樓時(shí)所做的工作不僅僅是砌磚和壘墻一樣,軟件開發(fā)過程所涉及到的環(huán)節(jié)和活動也不僅僅是編寫代碼這樣簡單。比如:在編碼之前,我們要了解編寫的程序是為了解決什么樣的問題,即實(shí)現(xiàn)何種功能;對軟件的系統(tǒng)要進(jìn)行規(guī)劃、架構(gòu)工作;編碼完成之后,要采用特定的方法和途徑來減少軟件系統(tǒng)中存在的錯(cuò)誤;軟件產(chǎn)品交付給用戶后,還要對軟件系統(tǒng)進(jìn)行維護(hù)。另外,在這個(gè)過程中,要保證軟件產(chǎn)品的質(zhì)量。軟件工程就是一門將所有與軟件開發(fā)相關(guān)的活動歸納在一起,并形成系統(tǒng)的方法和理論的學(xué)科。2教學(xué)要求知識目標(biāo)能力目標(biāo)關(guān)聯(lián)知識軟件危機(jī)了解軟件危機(jī)的產(chǎn)生和發(fā)展及解決途徑軟件、軟件成本、軟件質(zhì)量軟件工程掌握軟件工程的概念及目標(biāo)軟件生產(chǎn)率軟件生命周期掌握軟件生命周期各個(gè)階段的任務(wù)軟件定義、開發(fā)、維護(hù)軟件開發(fā)模型掌握各種典型的軟件開發(fā)模型瀑布、演化、原型、螺旋軟件項(xiàng)目管理掌握軟件項(xiàng)目管理的目標(biāo)和特點(diǎn)項(xiàng)目管理、軟件過程3知識分析:

什么是軟件危機(jī)軟件危機(jī)的表現(xiàn)及其產(chǎn)生原因軟件工程的基本原理軟件生命周期與軟件生命周期模型項(xiàng)目管理與軟件項(xiàng)目管理影響軟件項(xiàng)目成功的因素4§1.1軟件危機(jī)1、軟件危機(jī)(1)早期軟件的特點(diǎn)(20世紀(jì)60年代以前)使用機(jī)器代碼或匯編語言編寫軟件軟件的規(guī)模比較小軟件的編寫者和使用者是同一人軟件產(chǎn)品除了源代碼清單外,幾乎沒有其他文檔資料軟件開發(fā)方式隨意,采用“手工作坊”的開發(fā)方式5(2)軟件危機(jī)的產(chǎn)生

60年代中后期,軟件開發(fā)需求急劇增長;高級語言開始出現(xiàn),軟件系統(tǒng)的規(guī)模越來越大,復(fù)雜程度越來越高,軟件數(shù)量急劇膨脹;“手工作坊”式的單打獨(dú)斗的軟件生產(chǎn)方式已經(jīng)不能夠適應(yīng)日益增長的軟件需求;軟件供求關(guān)系嚴(yán)重失調(diào),最終形成了不可調(diào)和的尖銳矛盾,軟件危機(jī)開始爆發(fā)。(3)軟件危機(jī)的定義“手工作坊”式的生產(chǎn)方式無法滿足迅速增長的計(jì)算機(jī)軟件需求,從而導(dǎo)致了軟件開發(fā)和維護(hù)過程中的一系列嚴(yán)重問題,這一現(xiàn)象叫做軟件危機(jī)(SoftwareCrisis)。§1.1軟件危機(jī)62、軟件危機(jī)的表現(xiàn)軟件開發(fā)費(fèi)用和進(jìn)度難以控制;軟件不能滿足用戶的需求;軟件可靠性差;軟件產(chǎn)品缺乏相應(yīng)的文檔資料;軟件可維護(hù)性差;軟件開發(fā)的速度與計(jì)算機(jī)應(yīng)用的普及速度不相適應(yīng);

§1.1軟件危機(jī)73、軟件危機(jī)的原因軟件危機(jī)的一個(gè)重要成因是其本身的復(fù)雜性;軟件危機(jī)與軟件開發(fā)和維護(hù)的技術(shù)方法有關(guān);軟件的開發(fā)方法不恰當(dāng),開發(fā)技術(shù)落后忽略了開發(fā)人員和用戶之間的矛盾缺乏有力的開發(fā)管理方法,有序的工作流程軟件從業(yè)人員的技術(shù)水平停滯不前開發(fā)過程缺乏統(tǒng)一的規(guī)范;軟件開發(fā)管理困難而復(fù)雜;開發(fā)工具落后,生產(chǎn)率提高緩慢;§1.1軟件危機(jī)84、軟件危機(jī)的解決途徑

1968年,北大西洋公約組織成員國召開會議,討論軟件危機(jī)問題,并共同商討和制定緩解或解決“軟件危機(jī)”的對策。第一次提出了“軟件工程”(SoftwareEngineering)的概念。其主要思想是,運(yùn)用工程學(xué)的基本原理和方法來組織和管理軟件生產(chǎn)。盡管“軟件危機(jī)”至今尚未被徹底解決,但在40年的發(fā)展中,經(jīng)過不斷的實(shí)踐和總結(jié),人們得到一個(gè)結(jié)論:按照工程化的原則和方法組織軟件開發(fā),是擺脫軟件危機(jī)的一個(gè)主要出路?!?.1軟件危機(jī)91、軟件工程的定義

軟件工程是指導(dǎo)軟件開發(fā)和維護(hù)的工程學(xué)科。其核心思想是采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過實(shí)踐考驗(yàn)而證明是正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,從而大大提高軟件開發(fā)的成功率和生產(chǎn)率?!?.2軟件工程概述102、軟件工程的范疇

軟件開發(fā)方法學(xué)軟件開發(fā)技術(shù)軟件工具軟件工程環(huán)境軟件管理學(xué)軟件工程管理軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)§1.2軟件工程概述11(1)軟件開發(fā)方法學(xué)指導(dǎo)軟件開發(fā)的某種標(biāo)準(zhǔn)規(guī)程,它告訴開發(fā)人員“什么時(shí)候做以及怎樣做”

(2)軟件工具輔助和支持軟件開發(fā)全過程的一系列軟件。從定義、分析、設(shè)計(jì)、編碼、測試、歸檔和管理等各方面,提供各種幫助的一類軟件。(3)軟件工程環(huán)境

指以軟件工程為依據(jù),支持軟件生產(chǎn)的技術(shù)和管理工具系統(tǒng),通常被集成到一個(gè)固定的平臺上

(4)軟件工程管理

包括管理風(fēng)險(xiǎn)、平衡沖突目標(biāo)、克服各種限制、合理配置和使用資源等一系列活動?!?.2軟件工程概述12軟件工程常用技術(shù)軟件架構(gòu)軟件復(fù)用軟件測試計(jì)算機(jī)輔助設(shè)計(jì)工具CASE面向?qū)ο筌浖こ虒?shí)時(shí)軟件工程軟件成本估算軟件工程經(jīng)濟(jì)學(xué)軟件演化軟件維護(hù)軟件規(guī)范軟件文檔編寫§1.2軟件工程概述133、軟件開發(fā)的幾個(gè)模型(1)軟件開發(fā)模型“軟件開發(fā)模型”(SoftwareDevelopmentModel),用來描述軟件開發(fā)各個(gè)階段之間的關(guān)系,以及說明和表示復(fù)雜的軟件開發(fā)過程。(2)軟件開發(fā)模型的作用給出軟件開發(fā)活動中各階段之間的關(guān)系。清晰、直觀的表達(dá)軟件開發(fā)全過程,明確的規(guī)定要完成的主要活動和任務(wù),是軟件項(xiàng)目工作的基礎(chǔ)。(3)常見的開發(fā)模型瀑布模型、演化模型、原型模型、螺旋模型等?!?.2軟件工程概述14瀑布模型瀑布模型概述瀑布模型是由WinstonW.Royce于1970年提出的一種軟件開發(fā)模型。該模型將整個(gè)系統(tǒng)開發(fā)過程劃分成若干個(gè)線性的、順序的階段,每個(gè)階段既相互區(qū)別,又彼此聯(lián)系。(2)瀑布模型的工作原理瀑布模型將軟件生命周期劃分為6個(gè)階段,各個(gè)階段之間如同瀑布流水,自上而下,逐級下落,形成相互銜接的固定次序。每一個(gè)階段的工作都以上一個(gè)階段工作的結(jié)果為依據(jù),同時(shí)現(xiàn)階段的工作也為下一個(gè)階段的工作提供前提和基礎(chǔ)?!?.2軟件工程概述1516(3)瀑布模型的特點(diǎn)前一階段的工作結(jié)果作為輸入傳送給當(dāng)前階段,當(dāng)前階段的工作根據(jù)該輸入來開展。

當(dāng)前階段的工作結(jié)果需要進(jìn)行評審和驗(yàn)證。

若該結(jié)果驗(yàn)證通過,方可作為下一個(gè)階段的輸入,軟件生命周期的執(zhí)行轉(zhuǎn)入下一個(gè)階段。若驗(yàn)證不通過,則返回到前一階段進(jìn)行錯(cuò)誤分析和修改。

在當(dāng)前階段的工作未完成前,不允許開展下一個(gè)階段的工作。瀑布模型中各階段活動結(jié)束后,都要進(jìn)行嚴(yán)格的驗(yàn)證和評審,不允許出現(xiàn)未經(jīng)審核就進(jìn)行下一階段活動的工作方式。

§1.2軟件工程概述17(4)瀑布模型的優(yōu)點(diǎn)在瀑布模型中,各個(gè)階段之間的關(guān)系清晰、易懂。該模型原理簡單,易于掌握;每個(gè)階段中都有驗(yàn)證和確認(rèn)環(huán)節(jié),以便進(jìn)行質(zhì)量管理;在下一階段開始前,該模型會通過項(xiàng)目管理來控制本階段工作的完成。(5)瀑布模型的缺點(diǎn)瀑布模型中并沒有引入工程計(jì)劃、進(jìn)度控制和風(fēng)險(xiǎn)管理等措施。缺乏靈活性,特別是在階段反饋和工作修改上還不是很靈活。沒有很好的解決軟件需求定義不確切這一問題,而該問題恰恰是導(dǎo)致軟件開發(fā)失敗的一個(gè)重要原因?!?.2軟件工程概述18演化模型演化模型概述演化模型是瀑布模型的一種演變。演化模型主要針對事先不能完整定義需求的軟件開發(fā)。(2)演化模型的工作過程用戶給出軟件的核心需求,開發(fā)人員根據(jù)需求進(jìn)行問題定義和分析;經(jīng)過設(shè)計(jì)、編碼和測試,開發(fā)核心系統(tǒng)交付使用;用戶試用軟件,并對其進(jìn)行評價(jià);根據(jù)用戶反饋意見,開發(fā)人員實(shí)施新一輪的開發(fā)活動;再次交付用戶試用。周而復(fù)始。

§1.2軟件工程概述1920(3)演化模型的優(yōu)點(diǎn)早期就可以快速的生產(chǎn)出可以運(yùn)行的軟件;

開發(fā)過程靈活,當(dāng)需求或者目標(biāo)改變時(shí),可以及時(shí)的調(diào)整軟件實(shí)施方案;

有助于在早期進(jìn)行軟件測試、進(jìn)度控制、缺陷跟蹤和文檔管理,有利于平衡整個(gè)開發(fā)過程的負(fù)荷;

在每個(gè)迭代過程中,易于捕獲風(fēng)險(xiǎn)信息和收集風(fēng)險(xiǎn)數(shù)據(jù);

開發(fā)過程中的經(jīng)驗(yàn)教訓(xùn)能及時(shí)的反饋應(yīng)用于下一個(gè)循環(huán)過程中,從而提高軟件質(zhì)量和生產(chǎn)率;§1.2軟件工程概述21(4)演化模型的缺點(diǎn)需求定義不是一次完成的,若開發(fā)人員對整個(gè)軟件系統(tǒng)的需求沒有一個(gè)完整的定義,會破壞軟件結(jié)構(gòu)設(shè)計(jì)的完整性和一致性,影響軟件質(zhì)量。

生產(chǎn)過程中如果缺乏有效的過程管理、協(xié)調(diào),“演化模型”可能會退化成“試驗(yàn)-出錯(cuò)-修改-試驗(yàn)-出錯(cuò)-修改”模式;初期就生產(chǎn)出可見的階段性產(chǎn)品,會令開發(fā)者盲目樂觀,

如果用戶接觸到開發(fā)過程中未經(jīng)測試的軟件,會給開發(fā)人員和用戶帶來負(fù)面影響;§1.2軟件工程概述22原型模型原型模型的產(chǎn)生背景原型模型是為了解決軟件系統(tǒng)需求不能一次完整的提出,以及用戶經(jīng)常變更需求等一系列影響軟件開發(fā)效率的問題(2)什么是原型?原型,原本是工程設(shè)計(jì)中的概念,指的是樣品或者試制品,其目的是為了模擬某種產(chǎn)品的原始模型。軟件工程中的“原型”,是指系統(tǒng)或者軟件最終產(chǎn)品的一個(gè)早期可運(yùn)行的版本;是在較短工期和較少成本下,生產(chǎn)的能夠反映最終產(chǎn)品的重要特性的樣品?!?.2軟件工程概述2324(4)原型模型的優(yōu)點(diǎn)增強(qiáng)了開發(fā)者和用戶之間的交流,用戶有更多機(jī)會參與到開發(fā)過程中去;用戶可以盡早的接觸和使用產(chǎn)品的原型,有利于今后的產(chǎn)品使用和維護(hù)。對于系統(tǒng)規(guī)模彈性較大的軟件產(chǎn)品,原型模型可以降低其開發(fā)風(fēng)險(xiǎn)。原型模型降低了軟件開發(fā)費(fèi)用,縮短了軟件開發(fā)時(shí)間?!?.2軟件工程概述25(5)原型模型的缺點(diǎn)開發(fā)者對待開發(fā)軟件應(yīng)用領(lǐng)域缺乏了解,在分析原型需求時(shí),不能正確定義系統(tǒng)核心特性,導(dǎo)致設(shè)計(jì)出不能真正體現(xiàn)軟件主要功能的“樣品”。原型模型過于“模式化”,阻礙開發(fā)人員的創(chuàng)新和突破。用戶不斷提出修改意見,導(dǎo)致開發(fā)者注重修改原型,而忽略對系統(tǒng)主體功能的開發(fā)。頻繁更新相關(guān)文檔資料,容易遺漏,影響文檔資料的一致性與完整性。§1.2軟件工程概述26螺旋模型螺旋模型概述是BarryBoehm在1988年所發(fā)表的一種軟件開發(fā)模型,它是瀑布模型和演化模型的結(jié)合體。不僅體現(xiàn)了兩個(gè)模型的優(yōu)點(diǎn),而且還強(qiáng)調(diào)了其他模型中所缺少的風(fēng)險(xiǎn)分析。

(2)四類活動螺旋模型將開發(fā)過程劃分為四類活動:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)和客戶評價(jià)§1.2軟件工程概述2728(4)螺旋模型的特點(diǎn)每一個(gè)周期的產(chǎn)品都較前一周期的產(chǎn)品更細(xì)化更完善。

螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析。整個(gè)開發(fā)過程的主要風(fēng)險(xiǎn)都得到識別和控制該模型特別適用于規(guī)模大,風(fēng)險(xiǎn)高的軟件項(xiàng)目。用戶可以有更多機(jī)會參與到開發(fā)過程中,有助于提供關(guān)鍵決策?!?.2軟件工程概述294、軟件生命周期軟件生命周期指從提出開發(fā)軟件產(chǎn)品開始,直到軟件報(bào)廢為止的全過程。(2)軟件生命周期的三個(gè)階段:軟件的定義軟件的開發(fā)軟件的維護(hù)

§1.2軟件工程概述305、軟件工程的目標(biāo)目標(biāo)是在一定的成本和進(jìn)度下,生產(chǎn)具有正確性、可靠性、容錯(cuò)性、易用性、靈活性、可擴(kuò)充性、可理解性、可維護(hù)性的軟件產(chǎn)品;§1.2軟件工程概述311、軟件項(xiàng)目管理的特點(diǎn)項(xiàng)目管理項(xiàng)目是為了完成某個(gè)獨(dú)特的產(chǎn)品或服務(wù)所執(zhí)行的一次性任務(wù),是一種有獨(dú)立的開始時(shí)間、結(jié)束時(shí)間,有一定復(fù)雜性的工作。項(xiàng)目管理是指項(xiàng)目的管理者在規(guī)定的時(shí)間、預(yù)算和質(zhì)量目標(biāo)范圍內(nèi),把各種系統(tǒng)、方法和人員結(jié)合在一起,運(yùn)用系統(tǒng)的觀點(diǎn)、方法和理論,對項(xiàng)目涉及的全部工作進(jìn)行有效的管理§1.3軟件項(xiàng)目管理概述32(2)軟件項(xiàng)目管理軟件項(xiàng)目管理

是為了保證軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量要求順利完成,而對成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等因素進(jìn)行分析、控制和管理的活動。軟件項(xiàng)目管理的內(nèi)容:人員的組織與管理:考慮項(xiàng)目組的組織結(jié)構(gòu)和人員分配,及時(shí)對人員結(jié)構(gòu)進(jìn)行優(yōu)化,并根據(jù)實(shí)際需要,隨時(shí)對人員組織進(jìn)行恰當(dāng)?shù)恼{(diào)整。軟件度量:采取量化的方法來評測軟件開發(fā)中的費(fèi)用、生產(chǎn)率、進(jìn)度和產(chǎn)品質(zhì)量是否符合標(biāo)準(zhǔn)?!?.3軟件項(xiàng)目管理概述33軟件項(xiàng)目計(jì)劃:對軟件開發(fā)的工作量、成本、開發(fā)時(shí)間進(jìn)行估計(jì),并根據(jù)估量值制定項(xiàng)目實(shí)施計(jì)劃,調(diào)整相應(yīng)的策略。風(fēng)險(xiǎn)管理:對開發(fā)過程中有可能出現(xiàn)的各種危害軟件產(chǎn)品質(zhì)量和拖延工程進(jìn)度的潛在因素,進(jìn)行分析和預(yù)測,并采取相應(yīng)的措施進(jìn)行預(yù)防。軟件質(zhì)量保證:為了保證產(chǎn)品和服務(wù)能夠充分滿足用戶需求,要進(jìn)行一系列有關(guān)質(zhì)量的監(jiān)督、檢查和促進(jìn)改正等活動。軟件過程能力評估:對軟件開發(fā)能力的高低進(jìn)行衡量。軟件配置管理:針對開發(fā)過程中人員、工具的配置和使用,提出相應(yīng)的管理策略?!?.3軟件項(xiàng)目管理概述34(2)軟件項(xiàng)目管理的特點(diǎn)不同

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論