軟件工程課件2年下半年部分題目網(wǎng)工略過(guò)版_第1頁(yè)
軟件工程課件2年下半年部分題目網(wǎng)工略過(guò)版_第2頁(yè)
軟件工程課件2年下半年部分題目網(wǎng)工略過(guò)版_第3頁(yè)
軟件工程課件2年下半年部分題目網(wǎng)工略過(guò)版_第4頁(yè)
軟件工程課件2年下半年部分題目網(wǎng)工略過(guò)版_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄第 1 章 軟件工程基礎(chǔ)知識(shí)11.11.21.31.4什么是軟件?1軟件及軟件工程?1有哪些流行的軟件工程方法學(xué)及其要素?1什么是軟件生存周期?有哪些活動(dòng)?11.4.1 問(wèn)題定義-“要解決的問(wèn)題是什么?”11.4.2 可行性分析和項(xiàng)目開(kāi)發(fā)計(jì)劃-“有行得通的解決方案嗎?”11.4.3 需求分析和定義-“系統(tǒng)必須做什么?”11.4.4 概要設(shè)計(jì)-“概括地說(shuō),應(yīng)該怎樣做?”21.4.5 詳細(xì)設(shè)計(jì)-“具體怎么樣做?”21.4.6 編碼-代碼實(shí)現(xiàn)21.4.7 測(cè) 試21.4.8 運(yùn)行維護(hù)2各活動(dòng)階段主要文檔21.5.1 可行性分析和項(xiàng)目開(kāi)發(fā)計(jì)劃21.5.2 需求分析中的文檔21.5.3 概要設(shè)計(jì)階

2、段文檔21.5.4 詳細(xì)設(shè)計(jì)階段21.5.5 編碼21.5.6 測(cè)試31.5.7 系統(tǒng)測(cè)試階段3有哪些主要生存期模型?31.6.1 瀑布模型(傳統(tǒng)的軟件周期模型)31.6.2 原型模型31.6.3 螺旋模型41.6.4 噴泉模型41.6.5 敏捷開(kāi)發(fā)方法5軟件過(guò)程基礎(chǔ)知識(shí)71.7.1 軟件過(guò)程71.7.2 評(píng)估工具7軟件工程項(xiàng)目管理基本知識(shí)81.8.1 時(shí)間管理81.8.2 成本管理91.8.3 風(fēng)險(xiǎn)管理101.51.61.71.81.8.4組織管理111.9軟件配置管理121.10 模塊化基本知識(shí)121.10.1 模塊特性131.10.2 模塊與模塊的耦合性(7 種)131.10.3 模塊的

3、內(nèi)聚性131.10.4 模塊的深度、寬度、扇出與扇入141.10.5 模塊作用域和域141.10.6 模塊化基礎(chǔ)知識(shí)小結(jié)141.11 什么是軟件開(kāi)發(fā)方法?有哪些主要方法?151.11.1 結(jié)構(gòu)化方法學(xué)151.11.2 結(jié)構(gòu)化設(shè)計(jì)161.11.3 詳細(xì)設(shè)計(jì)階段設(shè)計(jì)質(zhì)量度量方法 McCabe(網(wǎng)工略過(guò))171.11.4 Jackson 方法191.12 軟件工具191.13 軟件質(zhì)量管理基礎(chǔ)知識(shí)191.14 軟件質(zhì)量191.15 容錯(cuò)系統(tǒng)201.16 McCall 軟件質(zhì)量模型(網(wǎng)工略過(guò))201.17 代碼評(píng)審技術(shù)211.18 軟件測(cè)試211.18.1 軟件測(cè)試經(jīng)過(guò)的步驟211.18.2 白盒測(cè)試

4、211.18.3 黑盒測(cè)試221.18.4 灰盒測(cè)試231.18.5 回歸測(cè)試231.18.6 單元測(cè)試231.18.7 集成測(cè)試231.18.8 確認(rèn)測(cè)試231.18.9 系統(tǒng)測(cè)試231.19 軟件工程標(biāo)準(zhǔn)和軟件文檔241.20 軟件維護(hù)241.20.1 軟件維護(hù)類(lèi)型241.20.2 軟件的可維護(hù)性251.21. 25第1章軟件工程基礎(chǔ)知識(shí)1.1 什么是軟件?1. 滿(mǎn)足用戶(hù)功能需求和性能需求的指令或計(jì)算機(jī)程序集合;2. 處理信息的數(shù)據(jù)結(jié)構(gòu);3. 描述程序功能以及程序如何操作和使用所要求的文檔。以上三部分的組合了軟件。1.2 軟件及軟件工程?軟件是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一序列

5、嚴(yán)重問(wèn)題,在 20 世紀(jì) 60 年代末全面爆發(fā),1968 年,北大西洋公約組織提出使用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,即以工程化的方式組織軟件的開(kāi)發(fā)。產(chǎn)生軟件的可歸結(jié)為兩個(gè)重要的方面:軟件生產(chǎn)本身存在的復(fù)雜性;軟件開(kāi)發(fā)所使用的方法和技術(shù)。注意:我們只能盡力減少軟件的危害,不可能徹底消除軟件,猶如人類(lèi)的感冒,永遠(yuǎn)不可能徹底消除!1.3 有哪些流行的軟件工程方法學(xué)及其要素?1. 使用最廣泛的軟件工程方法學(xué)是面向結(jié)構(gòu)化方法學(xué)、迭代化方法學(xué)、面向?qū)ο蠓椒▽W(xué)(上世紀(jì) 70-90 年代,流行面向結(jié)構(gòu)化方法學(xué),上世紀(jì) 90 年代到現(xiàn)在,流行面向?qū)ο蠓椒▽W(xué))。2. 要素:方法、工具和過(guò)程。1.4

6、 什么是軟件生存周期?有哪些活動(dòng)?軟件生存周期指的是:一個(gè)軟件從提出開(kāi)發(fā)要求開(kāi)始到軟件廢棄不用的整個(gè)過(guò)程。而個(gè)軟件的活動(dòng)從前往后依次是:?jiǎn)栴}定義、可行性分析和項(xiàng)目開(kāi)發(fā)計(jì)劃、需求分析和定義、軟件設(shè)計(jì)(先后細(xì)分為:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測(cè)試和運(yùn)行維護(hù)。1.4.1 問(wèn)題定義-“要解決的問(wèn)題是什么?”通過(guò)對(duì)客戶(hù)的,系統(tǒng)分析員扼要地寫(xiě)出關(guān)于問(wèn)題性質(zhì)、工程目標(biāo)和工程規(guī)模的報(bào)告,經(jīng)過(guò)討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶(hù)的確認(rèn)。參與人:用戶(hù)、系統(tǒng)分析員、項(xiàng)目。1.4.2 可行性分析和項(xiàng)目開(kāi)發(fā)計(jì)劃-“有行得通的解決方案嗎?”用戶(hù)、項(xiàng)目和系統(tǒng)分析師搞清楚系統(tǒng)要解決的問(wèn)題是什么?以及從技術(shù)、等方面論證項(xiàng)目

7、開(kāi)發(fā)可行性。1. 技術(shù)可行性:現(xiàn)有的技術(shù)是否能夠有效地解決該問(wèn)題?是否有多種不同的解決方案?現(xiàn)有的技術(shù)力量是否達(dá)到?2.何?3.可行性:所有可能的解決方案所需投入的成本能否超過(guò)它的開(kāi)發(fā)成本?它的成本效益分析結(jié)果如何?投資回報(bào)率如可行性:該解決方案是否符合企業(yè)實(shí)際情況?是否符合員工利益?是否符合相關(guān)和行業(yè)規(guī)范?1.4.3 需求分析和定義-“系統(tǒng)必須做什么?”用戶(hù)、項(xiàng)目求,從而確和系統(tǒng)分析師確必須做什么?但不關(guān)心具體怎么做?要確的功能、性能、數(shù)據(jù)、界面等要的邏輯模型,同時(shí)制定后期測(cè)試計(jì)劃。1. 需求分析的任務(wù) (2014 年上)以下關(guān)于文檔的敘述中,不正確的是 (33) 。(33)A文檔僅僅描述和

8、規(guī)定了軟件的使用范圍及相操作命令 B文檔也是軟件的一部分,沒(méi)有文檔的軟件就不能稱(chēng)之為軟件 C軟件文檔的編制在軟件開(kāi)發(fā)工作中占有突出的地位和相當(dāng)大的工作量D高質(zhì)量文檔對(duì)于發(fā)揮軟件的效益有著重要的意義(1) 確定軟件系統(tǒng)的綜合要求:界面要求,功能要求,性能要求,安全性、理要求,將來(lái)可能提出的要求。性、可靠性要求,系統(tǒng)運(yùn)行要求,異常處(2)(3)(4)(5)分析系統(tǒng)的數(shù)據(jù)要求:數(shù)據(jù)元素、數(shù)據(jù)元間的邏輯關(guān)系、數(shù)據(jù)量和峰值等。常用的數(shù)據(jù)描述是實(shí)體-關(guān)系模型。導(dǎo)的邏輯模型:結(jié)構(gòu)化分析方法中使用數(shù)據(jù)流圖;面向?qū)ο蠓治龇椒ㄖ惺褂妙?lèi)模型(類(lèi)圖)修正項(xiàng)目開(kāi)發(fā)計(jì)劃:在明確了用戶(hù)的真正需求后,可以更準(zhǔn)確地估算軟件的成

9、本和進(jìn)度,從而修正項(xiàng)目開(kāi)發(fā)計(jì)劃如果必要,可個(gè)原型系統(tǒng)來(lái)獲取用戶(hù)真正的需求。2. 需求的分類(lèi)(1)(2)(3)功能需求:所開(kāi)發(fā)的軟件必須具備什么樣的功能。非功能需求:指必須具備的屬性或品質(zhì),如可靠性、性能、相應(yīng)時(shí)間、容錯(cuò)性和擴(kuò)展性等。設(shè)計(jì)約束:也稱(chēng)為限制條件、補(bǔ)充規(guī)約,這通常是對(duì)解決方案的一些約束說(shuō)明。1.4.4 概要設(shè)計(jì)-“概括地說(shuō),應(yīng)該怎樣做?”系統(tǒng)分析師和軟件設(shè)計(jì)師在需求定義的基礎(chǔ)上,把各功能需求轉(zhuǎn)換成需要的體系結(jié)構(gòu),即劃分模塊、模塊的層次、模塊之間的調(diào)用關(guān)系以及各模塊的功能,同時(shí)設(shè)計(jì)應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu)。特例:進(jìn)銷(xiāo)存分為進(jìn)、銷(xiāo)、存三個(gè)模塊。1.4.5 詳細(xì)設(shè)計(jì)-“具體怎么樣

10、做?”軟件設(shè)計(jì)師和程序員對(duì)概要設(shè)計(jì)階段得出的各功能模塊進(jìn)行詳細(xì)描述成精確的、結(jié)構(gòu)化的過(guò)程描述,即各個(gè)功能模塊具體怎么實(shí)現(xiàn),用相應(yīng)的工具把模塊的結(jié)構(gòu)表示出來(lái),但還未進(jìn)行編碼。1.4.6 編碼-代碼實(shí)現(xiàn)由程序員把詳細(xì)設(shè)計(jì)階段得出的各模塊結(jié)構(gòu)(圖形)轉(zhuǎn)變成計(jì)算機(jī)能識(shí)別的指令代碼。1.4.7 測(cè) 試由另一部門(mén)()的軟件設(shè)計(jì)師或系統(tǒng)分析師花費(fèi)最少的人力物力找出程序最多、最大的錯(cuò)誤(bug)-“高產(chǎn)測(cè)試”,再高產(chǎn)的測(cè)試工作也只能發(fā)現(xiàn)大約 80%的軟件問(wèn)題,不可能 100%的發(fā)現(xiàn)。1.4.8 運(yùn)行維護(hù)由用戶(hù)和維護(hù)進(jìn)行的軟件生存周期中時(shí)間最長(zhǎng)的階段。1.5 各活動(dòng)階段主要文檔1.5.1 可行性分析和項(xiàng)目開(kāi)發(fā)計(jì)

11、劃nn可性行項(xiàng)目開(kāi)發(fā)計(jì)劃1.5.2 需求分析中的文檔nnnnn需求規(guī)格說(shuō)明書(shū) 初步用戶(hù)使用手冊(cè)確認(rèn)測(cè)試的測(cè)試計(jì)劃修改完善的軟件開(kāi)發(fā)計(jì)劃系統(tǒng)測(cè)試計(jì)劃文檔1.5.3 概要設(shè)計(jì)階段文檔nnnn概要設(shè)計(jì)說(shuō)明書(shū)數(shù)據(jù)庫(kù)說(shuō)明書(shū) 用戶(hù)手冊(cè)修訂的測(cè)試計(jì)劃(測(cè)試的策略、方法、步驟)1.5.4 詳細(xì)設(shè)計(jì)階段n詳細(xì)設(shè)計(jì)說(shuō)明書(shū)1.5.5 編碼n程序1.5.6 測(cè)試nn完善的測(cè)試計(jì)劃書(shū)軟件測(cè)試報(bào)告1.5.7 系統(tǒng)測(cè)試階段n系統(tǒng)測(cè)試報(bào)告1.6 有哪些主要生存期模型?瀑布模型、原型開(kāi)發(fā)模型(快速原型模型、演化模型、增量模型)、螺旋模型、噴泉模型、基于知識(shí)的模型和變化模型。1.6.1 瀑布模型(傳統(tǒng)的軟件周期模型)瀑布模型嚴(yán)格

12、遵循軟件生命周期各階段的固定順序:計(jì)劃、分析、設(shè)計(jì)、編程、測(cè)試和維護(hù),上一階段完成后才能進(jìn)入到下一階段,整個(gè)模型就像一個(gè)飛流直下的瀑布,如圖 1.1 所示。圖 1.1 瀑布模型采用規(guī)范的方法,嚴(yán)格規(guī)定了各階段必須提交的文檔;要求每一階段結(jié)束后,都要優(yōu)點(diǎn):以文檔作為驅(qū)動(dòng),強(qiáng)迫開(kāi)發(fā)進(jìn)行嚴(yán)格的評(píng)審。與它最相適應(yīng)的開(kāi)發(fā)方法是結(jié)構(gòu)化方法。缺點(diǎn):不適應(yīng)用戶(hù)需求的改動(dòng)。1.6.2 原型模型1. 快速原型模型快速原型的用途是獲知用戶(hù)的真正需求,一旦需求確定了,原型即被拋棄。主要用于需求分析階段。不追求也不可能要求對(duì)需求的嚴(yán)格定義,而是采用了動(dòng)態(tài)定義需求的方法,所以不能定義完善的文檔。特征:簡(jiǎn)化項(xiàng)目管理、盡快建

13、立初步需求、加強(qiáng)用戶(hù)參與和決策。具有廣泛技能水平的原型化是原型實(shí)施的重要保證。原型化應(yīng)該是具有經(jīng)驗(yàn)與、訓(xùn)練有素的專(zhuān)業(yè)。衡量原型化能力的重要標(biāo)準(zhǔn)是他是否能夠從用戶(hù)的模糊描述中快速獲取需求。2. 演化模型在快速原型模型中,原型的用途是獲知用戶(hù)的真正需求,一旦需求確定了,原型即被拋棄。而演化模型應(yīng)用于整個(gè)軟件開(kāi)發(fā)過(guò)程,是從初始模型逐步演化為最終軟件 的漸進(jìn)過(guò)程。也就是說(shuō),快速原型模型是一種“拋棄式”的原型化方法,而演化模型則是一種“漸進(jìn)式”的原型化方法。3. 增量模型(漸增式)增量模型主要用于設(shè)計(jì)階段,把軟件劃分為一系列的增量構(gòu)件,分別進(jìn)行設(shè)計(jì)、編程、集成和測(cè)試。新的增量構(gòu)件不得破壞已經(jīng)開(kāi)發(fā)出來(lái)的。

14、其示意圖如圖 1.2 所示。 (20014 年下)軟件開(kāi)發(fā)中的瀑布模型典型的刻畫(huà)了軟件生存周期的階段劃分,與其最相適應(yīng)的軟件開(kāi)發(fā)方法是 (9) 。(9)A.構(gòu)件化方法B.結(jié)構(gòu)化方法C.面向?qū)ο蠓椒―.快速原型法 (2005 年下)應(yīng)該在 (7) 階段制測(cè)試計(jì)劃。(7)A. 需求分析 B. 概要設(shè)計(jì) C. 詳細(xì)設(shè)計(jì) D. 系統(tǒng)測(cè)試 (2005 年下)(29)詳細(xì)描述軟件的功能、性能和用戶(hù)界面,以使用戶(hù)了解如何使用軟件。(29)A.概要設(shè)計(jì)說(shuō)明書(shū) B.詳細(xì)設(shè)計(jì)說(shuō)明書(shū) C.用戶(hù)手冊(cè)D.用戶(hù)需求說(shuō)明書(shū)圖 1.2 增量模型4. 原型模型小結(jié)從下面的有關(guān)原型化方法的敘述中,選擇出正確的敘述:(1)快速原型

15、方法是一種企圖克服傳統(tǒng)軟件周期模型缺點(diǎn)的開(kāi)發(fā)方法。(2)在用戶(hù)的數(shù)據(jù)沒(méi)有得到很好地組織和管理的時(shí)候,應(yīng)該使用原型化方法。(3)在用戶(hù)沒(méi)有明確地肯定其需求的時(shí)候,應(yīng)該使用原型化方法。(4)在用戶(hù)不希望把的時(shí)間軟件開(kāi)發(fā)過(guò)程中的時(shí)候,應(yīng)該使用原型化方法。(5)使用原型化方法時(shí)應(yīng)該使用第三代編程語(yǔ)言。(6)原型化加強(qiáng)了開(kāi)發(fā)過(guò)程中用戶(hù)的參與和決策。(7)原型化方法大致可分為三類(lèi):拋棄式、演化式和遞增式。(8)原型化方法大致可分為演化式和遞增式。(9)采用原型化方法時(shí),軟件的開(kāi)發(fā)成本較高。(10)采用原型化方法時(shí),關(guān)鍵的因素是建立的速度,而不是運(yùn)行的效率。1.6.3 螺旋模型如圖 1.3 所示,螺旋模型綜

16、合了瀑布模型和原型模型中的演化模型的優(yōu)點(diǎn),還增加了風(fēng)險(xiǎn)分析。螺旋線(xiàn)第一圈的開(kāi)始點(diǎn)可能是一個(gè)概念項(xiàng)目。從第二圈開(kāi)始,一個(gè)新命期結(jié)束。開(kāi)發(fā)項(xiàng)目開(kāi)始了,新的演化沿著螺旋線(xiàn)進(jìn)行若干次迭代,一直轉(zhuǎn)到軟件生圖 1.3 螺旋模型1.6.4 噴泉模型噴泉模型主要用于描述面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程。噴泉一詞體現(xiàn)了面向?qū)ο箝_(kāi)發(fā)過(guò)程的迭代和無(wú)間隙特征。迭代指的是開(kāi)發(fā)活動(dòng)常常需要重復(fù)多次,在不斷的迭代中逐漸完善軟件系統(tǒng),無(wú)間歇性指在開(kāi)發(fā)活動(dòng)之間不存在明顯的邊界,叉、迭代地進(jìn)行,如圖 1.4 所示。各開(kāi)發(fā)活動(dòng)交圖 1.4 噴泉模型1.6.5 敏捷開(kāi)發(fā)方法1. 迭代軟件開(kāi)發(fā)技術(shù)Rational 統(tǒng)一開(kāi)發(fā)流程 RUP(Ration

17、al Unified Process)是一個(gè)通用的軟件流程框架,它是一個(gè)以架構(gòu)為中心、用例驅(qū)動(dòng)的迭代化軟件開(kāi)發(fā)流程。RUP 是從幾千個(gè)軟件項(xiàng)目的實(shí)踐經(jīng)驗(yàn)中總結(jié)出來(lái)的,對(duì)于實(shí)際的項(xiàng)目具有很強(qiáng)的指導(dǎo)意義,是軟件開(kāi)業(yè)事實(shí)上的行業(yè)標(biāo)準(zhǔn)。在 RUP 中,我們把軟件開(kāi)發(fā)生命周期劃分為四個(gè)階段,每個(gè)階段的結(jié)束標(biāo)志就是一個(gè)主要的里程碑(如下圖所示)。圖 1.5 RUP這四個(gè)階段主要是為了達(dá)到以下階段性的目標(biāo)里程碑:nnnn先啟(Inception):確定項(xiàng)目開(kāi)發(fā)的目標(biāo)和范圍精化(Elaboration):確架構(gòu)和明確需求構(gòu)建(Construction):實(shí)現(xiàn)剩余的系統(tǒng)功能化(Transition):完成軟件的

18、化工作,將系統(tǒng)移交給客戶(hù) (2005 年下)在個(gè)系統(tǒng)時(shí),如果用戶(hù)對(duì)系統(tǒng)的目標(biāo)不是很清楚,難以定義需求,這時(shí)最好使用 (6) 。(6)A. 原型法B. 瀑布模型C. V-模型D. 螺旋模型 (2006 年上)漸增式開(kāi)發(fā)方法有利于 (4) 。(4)A.獲取軟件需求 B.快速開(kāi)發(fā)軟件C.大型團(tuán)隊(duì)開(kāi)發(fā) D.商業(yè)軟件開(kāi)發(fā) (2005 年下)在個(gè)系統(tǒng)時(shí),如果用戶(hù)對(duì)系統(tǒng)的目標(biāo)不是很清楚,難以定義需求,這時(shí)最好使用 (6) 。(6)A. 原型法B. 瀑布模型C. V-模型D. 螺旋模型 (2006 年上)漸增式開(kāi)發(fā)方法有利于 (4) 。(4)A.獲取軟件需求 B.快速開(kāi)發(fā)軟件 C.大型團(tuán)隊(duì)開(kāi)發(fā) D.商業(yè)軟件開(kāi)

19、發(fā) (2006 年下)常見(jiàn)的軟件開(kāi)發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。其中(5)模型適用于需求明確或很少變更的項(xiàng)目,(6)主要面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。(5) A瀑布模型B.演化模型C. 螺旋模型D.噴泉模型(6) A瀑布模型B.演化模型C. 螺旋模型D.噴泉模型2. 極限編程(XP-網(wǎng)工略過(guò))一種輕量(敏捷)、高效、低風(fēng)險(xiǎn)、柔性、可最大的不同在于:、科學(xué)而且充滿(mǎn)樂(lè)趣的軟件開(kāi)發(fā)方法。與其他方法對(duì)比,1. 在更短的周期內(nèi),更早地提供具體、持續(xù)的反饋信息2. 迭代地進(jìn)行計(jì)劃編制,首先在最開(kāi)始迅速生成一個(gè)總體計(jì)劃,然后在整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程中不斷地發(fā)展3.依賴(lài)于自動(dòng)測(cè)試程序來(lái)開(kāi)發(fā)進(jìn)度,并及早

20、地捕獲缺陷4. 依賴(lài)于口頭交流,測(cè)試和源程序5. 倡導(dǎo)持續(xù)的演化式的設(shè)計(jì)6. 依賴(lài)于開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部的緊密協(xié)作7. 盡可能達(dá)到程序員短期利益和項(xiàng)目長(zhǎng)期利益的平衡xp 由價(jià)值觀(guān)、原則、實(shí)踐和行為四個(gè)部分組成,它們彼此相互依賴(lài)、關(guān)聯(lián),并通過(guò)行為貫穿于整個(gè)生命周期。xp 的是其總結(jié)的四大價(jià)值觀(guān):、簡(jiǎn)單、反饋和勇氣,它們是 xp 的基礎(chǔ),也是 xp 的。5 個(gè)原則:快速反饋、簡(jiǎn)單性假設(shè)、逐步修改、提倡更改和優(yōu)質(zhì)工作。在 xp 方法中,貫徹的是“小步快走”的開(kāi)發(fā)原則,因此工作質(zhì)量絕不可打折扣,通常采用測(cè)試先行的編碼方式來(lái)提供支持。在 xp 中,集成了 12 個(gè)最佳實(shí)踐:計(jì)劃、小型發(fā)布、隱喻、簡(jiǎn)單設(shè)計(jì)、測(cè)試先

21、行、重構(gòu)、結(jié)對(duì)編程、集體代碼所有制、持續(xù)集成、每周工作 40 小時(shí),現(xiàn)場(chǎng)客戶(hù),編碼標(biāo)準(zhǔn)。3. 敏捷建模(Agile Ming)AM 是一種最近才出現(xiàn)的軟件思想,一種輕方法論,XP 實(shí)踐既給了 AM 靈感,也是 AM 的一種具體實(shí)現(xiàn)。其原則為:主張簡(jiǎn)單;擁抱變化;你的第二個(gè)目標(biāo)是可持續(xù)性,簡(jiǎn)單的說(shuō),你在開(kāi)發(fā)的時(shí)候,你要能想象到未來(lái);遞增的變化;令投資人的投資最大化;有目的的建模;多種模型;高質(zhì)量的工作;快速反饋; 軟件是項(xiàng)目的主要目標(biāo);輕裝前進(jìn)。AM 補(bǔ)充原則為:內(nèi)容比表示更重要;三人行必有我?guī)?;了解你的模型;了解你的工具;局部調(diào)整;開(kāi)放 (2008 年上)極限編程是一種輕量級(jí)軟件開(kāi)發(fā)方法,(2

22、9)的準(zhǔn)則不是它強(qiáng)調(diào)的。(29)A.持續(xù)的交流和B.用最簡(jiǎn)單的設(shè)計(jì) C.用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)D.關(guān)注用戶(hù)反饋 (2009 年下)極限編程(XP)由價(jià)值觀(guān)、原則、實(shí)踐和行為四個(gè)部分組成,其中價(jià)值觀(guān)包括、簡(jiǎn)單性、(36)。(36)A.好的計(jì)劃B.不斷的發(fā)布C.反饋和勇氣D.持續(xù)集成 (2006 年下)常見(jiàn)的軟件開(kāi)發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。其中(5)模型適用于需求明確或很少變更的項(xiàng)目,(6)主要面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。(5) A瀑布模型B.演化模型C. 螺旋模型D.噴泉模型(6) A瀑布模型B.演化模型C. 螺旋模型D.噴泉模型 (2006 年下)統(tǒng)一過(guò)程(UP)的基本特征是“用例

23、驅(qū)動(dòng),以架構(gòu)為中心的和受控的迭代式增量開(kāi)發(fā)”。UP 將一個(gè)周期的開(kāi)發(fā)過(guò)程化分為 4 個(gè)階段,其中 (26)提交結(jié)果包含了系統(tǒng)架構(gòu)。(26)A.先啟階段B.精化階段C.構(gòu)建階段D.提交階段 (2008 年下)RUP(Rational Unified Process)分為 4 個(gè)階段,每個(gè)階段結(jié)都有重要的里程碑, 其中生命周期架構(gòu)是在 (18) 結(jié)的里程碑。(18)A.階段B.精化階段C.構(gòu)建階段D.移交階段 (2014 年上)以下關(guān)于統(tǒng)一過(guò)程 UP 的敘述中,不正確的是 (29) 。(29)AUP 是以用例和風(fēng)險(xiǎn)為驅(qū)動(dòng),以架構(gòu)為中心,迭代并且增量的開(kāi)發(fā)過(guò)程BUP 定義了四個(gè)階段,即起始、精化、構(gòu)

24、建和確認(rèn)階段C每次迭代都包含計(jì)劃、分析、設(shè)計(jì)、構(gòu)造、集成、測(cè)試以及內(nèi)部和外部發(fā)布D每個(gè)迭代有五個(gè)工作流(2014 年上)某公司要個(gè)軟件,的某些需求是明確的,而某些需求則需要進(jìn)一步細(xì)化。由于市場(chǎng)競(jìng)爭(zhēng)的,需要盡快上市,則開(kāi)發(fā)該軟件最不適合采用 (30) 模型。(30)A瀑布B原型C增量D螺旋誠(chéng)實(shí)的。4. 自適應(yīng)軟件開(kāi)發(fā)(Adaptive Software Development)ASD 的是三個(gè)非線(xiàn)性的、重迭的開(kāi)發(fā)階段:猜測(cè),合作與學(xué)習(xí)。5. 水晶方法體系(Crystal)水晶方法體系與 XP 一樣,都有以人為中心的理念,但在實(shí)踐上有所不同。水晶方法體系考慮到人們一般很難嚴(yán)格遵循一個(gè)紀(jì)律約束很強(qiáng)的

25、過(guò)程,認(rèn)為每一種不同的項(xiàng)目都需要一套不同的策略、約定和方法論。因此,與 XP 的高度紀(jì)律性不同,水晶方法體系探索了用最少紀(jì)律約束而仍能的方法,從而在產(chǎn)出效率與易于上達(dá)到一種平衡。也就是說(shuō),雖然列不如XP 那樣的產(chǎn)出效率,但會(huì)有的人能夠接受并遵循它。:并列爭(zhēng)球法:用迭代的方法,其中把每 30 天一次的迭代稱(chēng)為一個(gè)“沖刺”,并按需求的優(yōu)先級(jí)來(lái)實(shí)現(xiàn)。多個(gè)自組織和自治小組并行地遞增實(shí)現(xiàn)。協(xié)調(diào)是通過(guò)簡(jiǎn)短的日常會(huì)議來(lái)進(jìn)行的。1.7 軟件過(guò)程基礎(chǔ)知識(shí)1.7.1 軟件過(guò)程軟件過(guò)程是指人們用于開(kāi)發(fā)和維護(hù)軟件及相關(guān)的一系列活動(dòng),包括軟件工程過(guò)程和軟件管理過(guò)程。1.7.2 評(píng)估工具1. 軟件能力成熟度模型(Capa

26、bility Maturity M,CMM),CMM1.1 的 5 個(gè)等級(jí)(由低級(jí)到高級(jí)):n初始級(jí)軟件過(guò)程是無(wú)序的,有時(shí)甚至是的,對(duì)過(guò)程幾乎沒(méi)有定義,取決于個(gè)人努力,管理是反應(yīng)式(消防式)的。n可重復(fù)級(jí)建立了基本的項(xiàng)目管理過(guò)程來(lái)跟蹤費(fèi)用、進(jìn)度和功能特性。制定了必要的過(guò)程紀(jì)律,能重復(fù)早先類(lèi)似應(yīng)用項(xiàng)目取得的。n已定義級(jí)已將軟件管理和工程兩方面的過(guò)程文檔化、標(biāo)準(zhǔn)化,并綜該組織的標(biāo)準(zhǔn)化軟件過(guò)程。所有項(xiàng)目均使用經(jīng)標(biāo)準(zhǔn)、裁減的標(biāo)準(zhǔn)軟件過(guò)程來(lái)開(kāi)發(fā)和維護(hù)軟件。n已管理級(jí)收集對(duì)軟件過(guò)程和質(zhì)量的詳細(xì)度量,對(duì)軟件過(guò)程和都有定量的理解與。n優(yōu)化級(jí)加強(qiáng)了定量分析,通過(guò)來(lái)自過(guò)程質(zhì)量反饋和來(lái)自新觀(guān)念、新技術(shù)的反饋使過(guò)程能

27、持續(xù)不斷地改進(jìn)。巧記:初級(jí)程序員,可重復(fù)寫(xiě)程序,現(xiàn)已定義了管理策略來(lái)優(yōu)化程序設(shè)計(jì)!2. 成立成熟度集成模型CMMI 的一種表述方式為連續(xù)表述,主要關(guān)注某特定域的過(guò)程改進(jìn)和能力評(píng)估;另一種表述方式為階段式,主要是衡量一個(gè)企業(yè)的成熟度,而不把單個(gè)過(guò)程是否完成作為重點(diǎn)。n階段表述方式初始級(jí)、已管理級(jí)、量化管理級(jí)和優(yōu)化級(jí),這些等級(jí)要一級(jí)一級(jí)逐級(jí)進(jìn)行,每個(gè)等級(jí)是下一個(gè)等級(jí)的基礎(chǔ),當(dāng)前一個(gè)級(jí)別沒(méi)有達(dá)到時(shí),不能進(jìn)入下一個(gè)等級(jí)。n連續(xù)表述方式分為 0-5 能力等級(jí):未完成級(jí),已執(zhí)行級(jí),已管理級(jí),已定義級(jí),量化管理級(jí)和優(yōu)化級(jí)。 (2011 年上)關(guān)于過(guò)程改進(jìn),以下敘述中不正確的是 (30) 。(30)A. 軟件

28、質(zhì)量依賴(lài)于軟件開(kāi)發(fā)過(guò)程的質(zhì)量,其中個(gè)人因素占主導(dǎo)作用B. 要使過(guò)程改進(jìn)有效,需要制定過(guò)程改進(jìn)目標(biāo)C. 要使過(guò)程改進(jìn)有效,需要進(jìn)行培訓(xùn) (2006 年下)軟件能力成熟度模型(CMM)是目前國(guó)際上最流行、最實(shí)用的軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn)和軟件企業(yè)成熟度的等級(jí)認(rèn)證標(biāo)準(zhǔn)。該模型將軟件能力成熟度自低到高依次劃分為初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、已管理級(jí)、優(yōu)化級(jí)。從(17)開(kāi)始,要求企業(yè)建立基本的項(xiàng)目管理過(guò)程的政策和管理規(guī)程,使項(xiàng)目管理過(guò)程有章可循。(17)A初始級(jí) B. 可重復(fù)級(jí) C. 已定義級(jí) D. 已管理級(jí) (2012 年下)敏捷開(kāi)發(fā)方法中,(30)認(rèn)為每一種不同的項(xiàng)目都需要一套不同的策略、約定和方法論。(30

29、) A極限編程(XP) B水晶法(Crystal) C并列爭(zhēng)球法( Scrum) D自適應(yīng)軟件開(kāi)發(fā)(ASD)1.8 軟件工程項(xiàng)目管理基本知識(shí)軟件項(xiàng)目管理開(kāi)始于任何技術(shù)活動(dòng)之前,并且貫穿于整個(gè)的軟件生命周期。軟件工程項(xiàng)目管理一般分為時(shí)間管理、成本管理、人力管理、風(fēng)險(xiǎn)管理。1.8.1 時(shí)間管理1. Gantt 圖如圖 1.6 所示,是一種簡(jiǎn)單的水平條形圖,它以水平線(xiàn)段表示子任務(wù)的工作階段,線(xiàn)段的起點(diǎn)和終點(diǎn)分別對(duì)應(yīng)著子任務(wù)的起始時(shí)間,線(xiàn)段長(zhǎng)度指示完成該任務(wù)所需要的時(shí)間。圖 1.6、可從圖上清楚地標(biāo)出子任務(wù)間的時(shí)間對(duì)比,但它也有缺點(diǎn):的優(yōu)點(diǎn):直觀(guān)簡(jiǎn)明、易學(xué)(1)(2)(3)不能顯示地描繪各項(xiàng)彼此間的依

30、賴(lài)關(guān)系;進(jìn)度計(jì)劃的關(guān)鍵部分不明顯,難以哪些部分應(yīng)當(dāng)是主攻和主控的對(duì)象;計(jì)劃中有潛力的部分以及潛力的大小不明確,往往造成潛力的浪費(fèi)。2. PERT 網(wǎng)圖與關(guān)鍵路徑PERT 網(wǎng)圖是一個(gè)由箭頭(標(biāo)識(shí)任務(wù))和結(jié)點(diǎn)(標(biāo)識(shí)圖 1.7 所示。)組成的有向圖。將網(wǎng)絡(luò)方法用于工作計(jì)劃安排的評(píng)審和檢查,如圖 1.7 任務(wù)網(wǎng)絡(luò)圖間和完成該任務(wù)所需的時(shí)間,還給出了任務(wù)之間的依賴(lài)關(guān)系,即哪些任務(wù)PERT 圖不僅給出了每個(gè)任務(wù)的開(kāi)始時(shí)間、結(jié)完成后才能開(kāi)始另一些任務(wù),以及如期完成整個(gè)工程的“關(guān)鍵路徑”。關(guān)鍵路徑(Critical Path)是由一連串的任務(wù)所組成的鏈,距離最大的一條路徑。軟件項(xiàng)目的管理應(yīng)該密切注視關(guān)鍵任務(wù)的

31、進(jìn)展情況。如果希望縮短工期,只有往關(guān)鍵任務(wù)中增加有效果。 (2006 年上)在軟件項(xiàng)目管理中可以使用各種圖形工具來(lái)輔助決策,下面對(duì) Gantt 圖的描述中,不正確的是 (5) 。A. Gantt 圖表現(xiàn)了各個(gè)活動(dòng)的持續(xù)時(shí)間B. Gantt 圖表現(xiàn)了各個(gè)活動(dòng)的起始時(shí)間C. Gantt 圖反映了各個(gè)活動(dòng)之間的依賴(lài)關(guān)系 D. Gantt 圖表現(xiàn)了完成各個(gè)活動(dòng)的進(jìn)度D. CMMI 成熟度模型是一種過(guò)程改進(jìn)模型,僅支持階段性過(guò)程改進(jìn)而不支持連續(xù)性過(guò)程改進(jìn)1.8.2 成本管理1. 成本估算方法一種常用的成本估算方法是先估計(jì)完成軟件項(xiàng)目所需的工作量(人月數(shù)),然后根據(jù)每個(gè)人月的代價(jià)(金額)計(jì)算機(jī)軟件的開(kāi)發(fā)費(fèi)

32、用:開(kāi)發(fā)費(fèi)用 人月數(shù)×每個(gè)人月的代價(jià)另法是估計(jì)軟件的規(guī)模(通常指源代碼行數(shù)),然后根據(jù)每行源代碼的平均開(kāi)發(fā)費(fèi)用(包括分析、設(shè)計(jì)、編碼、測(cè)試所花的費(fèi)用),計(jì)算機(jī)軟件的開(kāi)發(fā)費(fèi)用:開(kāi)發(fā)費(fèi)用源代碼行數(shù)×每行平均費(fèi)用。估算源代碼行數(shù)時(shí),可以請(qǐng)n 為有經(jīng)驗(yàn)的,每位對(duì)軟件給出 3 個(gè)估計(jì)值:nnnai-最少源代碼行數(shù)(該軟件可能的最小規(guī)模) bi-最大源代碼行數(shù)(該軟件可能的最大規(guī)模)mi-最可能的代碼行數(shù)(該軟件最可能的規(guī)模)a + 4m + b的估算期 Ei = iii ,n 位n的估算期望值的平均值 1 å E 就是代碼行數(shù)的估算值。然后計(jì)算出每位6in12. 成本估算模

33、型Putnam 模型和O 模型是常用的成本估算模型。(1) Putnam 模型:是一種動(dòng)態(tài)多變量模型,它是假設(shè)在軟件開(kāi)發(fā)的整個(gè)生存期中工作量的分布。(2)O 模型:是結(jié)構(gòu)性成本模型,是最精確、最易于使用的成本估算模型之一。該模型可以分為:1) 基本2) 中級(jí)O 模型,是一個(gè)靜態(tài)單變量模型,它是對(duì)整個(gè)軟件系統(tǒng)進(jìn)行估算。O 模型,是一個(gè)靜態(tài)多變量模型。它將軟件系統(tǒng)模型分和部件兩個(gè)層次,系統(tǒng)由部件,它把軟件開(kāi)發(fā)所需人力(成本)看作是程序大小和一系列“成本驅(qū)動(dòng)屬性”的函數(shù)。3) 詳細(xì)O 模型,它將軟件系統(tǒng)模型分、子系統(tǒng)和模塊 3 個(gè)層次,它除包括中級(jí)模型所考慮的因素外,還考慮了在需求分析、軟件設(shè)計(jì)等每

34、一步的成本驅(qū)動(dòng)屬性的影響。 (2010 年下半年)使用 PERT 圖進(jìn)行進(jìn)度安排,不能清晰地描述(16) ,但可以給出哪些任務(wù)完成后才能開(kāi)始另一些任務(wù)。下面 PERT 圖所示工程從A 到中的關(guān)鍵路徑是(17),(圖中省略了任務(wù)的開(kāi)始和結(jié)刻)。(16)A.每個(gè)任務(wù)從何時(shí)開(kāi)始B.每個(gè)任務(wù)到何時(shí)結(jié)束C.各任務(wù)之間的并行情況D.各任務(wù)之間的依賴(lài)關(guān)系(17)A.ABEGHIKB.ABEGHJKC.ACEGHIKD.ACEGHJK (2010 年下半年)某軟件項(xiàng)目的活動(dòng)圖如下所示。圖中頂點(diǎn)表示項(xiàng)目里程碑,連接頂點(diǎn)的邊表示包含的活動(dòng),則里程碑(16)在關(guān)鍵路徑上,活動(dòng) FG 的松弛時(shí)間為 (17) 。(16

35、) ABBCCDDI(17) A19B20C21D24(2014 年上)以下關(guān)于進(jìn)度管理工具 Gantt 圖的敘述中,不正確的是 (18) 。(18)A能清晰地表達(dá)每個(gè)任務(wù)的開(kāi)始時(shí)間、結(jié)間和持續(xù)時(shí)間 B能清晰地表達(dá)任務(wù)之間的并行關(guān)系C不能清晰地確定任務(wù)之間的依賴(lài)關(guān)系D能清晰地確定影響進(jìn)度的關(guān)鍵任務(wù)1.8.3 風(fēng)險(xiǎn)管理1. 風(fēng)險(xiǎn)的定義n:風(fēng)險(xiǎn)是否會(huì)導(dǎo)致軟件項(xiàng)目失?。縩關(guān)心變化:在用戶(hù)需求、開(kāi)發(fā)技術(shù)、目標(biāo),以及所有其他與項(xiàng)目及時(shí)工作和全面完成有實(shí)體中會(huì)發(fā)生什么樣的變化?n關(guān)心選擇:應(yīng)采用什么方法和工具,應(yīng)配置多少人力,在質(zhì)量上強(qiáng)調(diào)到什么程度才能滿(mǎn)足要求?風(fēng)險(xiǎn)的特性:風(fēng)險(xiǎn)發(fā)生的概率和風(fēng)險(xiǎn)帶來(lái)的損失。

36、2. 風(fēng)險(xiǎn)的類(lèi)型(1) 項(xiàng)目風(fēng)險(xiǎn):指潛在的預(yù)算、進(jìn)度、人力(及組織)、客戶(hù)和需求等方面的問(wèn)題以及它們對(duì)軟件項(xiàng)目的影響。例如:項(xiàng)目復(fù)雜性、規(guī)模和結(jié)構(gòu)不確定性等都是項(xiàng)目風(fēng)險(xiǎn)、項(xiàng)目風(fēng)險(xiǎn)威脅到項(xiàng)目計(jì)劃,即如果項(xiàng)目風(fēng)險(xiǎn)變成現(xiàn)實(shí),有可能會(huì)拖延項(xiàng)目的進(jìn)度,增加項(xiàng)目的成本。(2) 技術(shù)風(fēng)險(xiǎn):指潛在的設(shè)計(jì)、實(shí)現(xiàn)、接口、驗(yàn)證和維護(hù)等方面的問(wèn)題。此外,規(guī)約的二義性、技術(shù)的不正確性,陳舊的技術(shù)和“先進(jìn)的”技術(shù)也是技術(shù)風(fēng)險(xiǎn)因素。技術(shù)風(fēng)險(xiǎn)威脅到開(kāi)發(fā)軟件的質(zhì)量及軟件交付時(shí)間,如果技術(shù)風(fēng)險(xiǎn)成現(xiàn)實(shí),則開(kāi)發(fā)工作可能變得很或根本不可能。(3)nnnnn商業(yè)風(fēng)險(xiǎn):在信息系統(tǒng)項(xiàng)目業(yè)風(fēng)險(xiǎn)威脅到要開(kāi)發(fā)系統(tǒng)的生存能力。一般主要有 5 類(lèi)商業(yè)

37、風(fēng)險(xiǎn):市場(chǎng)風(fēng)險(xiǎn):開(kāi)發(fā)了一個(gè)沒(méi)有人真正需要的優(yōu)秀或系統(tǒng)策略風(fēng)險(xiǎn):開(kāi)發(fā)的不再符合公司的整體商業(yè)策略銷(xiāo)售風(fēng)險(xiǎn):開(kāi)發(fā)了一個(gè)銷(xiāo)售部門(mén)不知道如何去賣(mài)的管理風(fēng)險(xiǎn):由于重點(diǎn)的轉(zhuǎn)移或的變動(dòng)而失去了高級(jí)管理層的支持預(yù)算風(fēng)險(xiǎn):沒(méi)有得到預(yù)算或人力上的保證3. 風(fēng)險(xiǎn)管理活動(dòng)(1) 風(fēng)險(xiǎn)識(shí)別試圖系統(tǒng)化地確定對(duì)項(xiàng)目計(jì)劃的威脅,風(fēng)險(xiǎn)識(shí)別的一個(gè)方法是建立風(fēng)險(xiǎn)條目檢索表(文檔化);常見(jiàn)的已知的及可的風(fēng)險(xiǎn)有:規(guī)模、商業(yè)風(fēng)險(xiǎn)、客戶(hù)特性、過(guò)程定義、開(kāi)發(fā)環(huán)境、構(gòu)建的技術(shù)、數(shù)目及經(jīng)驗(yàn)等。(2) 風(fēng)險(xiǎn):又稱(chēng)風(fēng)險(xiǎn)估算,通過(guò)對(duì)各種風(fēng)險(xiǎn)發(fā)生的可能性和破壞性這兩個(gè)方面進(jìn)行評(píng)估,并將它們按優(yōu)先級(jí)別進(jìn)行排列。在進(jìn)行軟件工程風(fēng)險(xiǎn)分析時(shí),項(xiàng)目管理要進(jìn)行四種

38、風(fēng)險(xiǎn)評(píng)估活動(dòng),包括建立表示風(fēng)險(xiǎn)概率的尺度,描述風(fēng)險(xiǎn)引起的后果,估計(jì)風(fēng)險(xiǎn)影響的大小,確定風(fēng)險(xiǎn)估計(jì)的正確性。(3) 風(fēng)險(xiǎn)評(píng)估:定義風(fēng)險(xiǎn)參照水準(zhǔn),成本、進(jìn)度和性能就是三種典型的風(fēng)險(xiǎn)參照水準(zhǔn),即對(duì)于成本超支、進(jìn)度延期、性能降低有一個(gè)表明導(dǎo)致項(xiàng)目終止的水準(zhǔn);風(fēng)險(xiǎn)評(píng)估的四個(gè)步驟:定義項(xiàng)目的風(fēng)險(xiǎn)參考水平值、建立每一組與每一個(gè)參考水平值之間的關(guān)系、一組臨界點(diǎn)以定義項(xiàng)目終止區(qū)域,該區(qū)域由一條曲線(xiàn)或不確定區(qū)域所界定、水平值。(4) 風(fēng)險(xiǎn)什么樣的風(fēng)險(xiǎn)組合會(huì)影響參考這步所有風(fēng)險(xiǎn)分析活動(dòng)只有一個(gè)目的,即輔助項(xiàng)目建立處理風(fēng)險(xiǎn)的策略。一個(gè)有效的策略必須包含 3 個(gè)問(wèn)題:1)風(fēng)險(xiǎn)避免;2)風(fēng)險(xiǎn);3)風(fēng)險(xiǎn)管理及意外計(jì)劃;如果軟

39、件項(xiàng)目組對(duì)于風(fēng)險(xiǎn)采用主動(dòng)的方法,則避免是最好的策略。4. 風(fēng)險(xiǎn)度風(fēng)險(xiǎn)度(risk exposure)=風(fēng)險(xiǎn)損失*風(fēng)險(xiǎn)概率例如:正在開(kāi)發(fā)的軟件項(xiàng)目可能存在一個(gè)未將發(fā)現(xiàn)的錯(cuò)誤,這個(gè)錯(cuò)誤出現(xiàn)的概率是 0.5%,給公司造成的損失將是 100 萬(wàn)元,那么這個(gè)錯(cuò)誤的風(fēng)險(xiǎn)度是 5000 元。 (2012 年上半年)若軟件項(xiàng)目組對(duì)風(fēng)險(xiǎn)采用主動(dòng)的方法,則 (19) 是最好的風(fēng)險(xiǎn)策略。(19)A風(fēng)險(xiǎn)避免B風(fēng)險(xiǎn)C風(fēng)險(xiǎn)消除D風(fēng)險(xiǎn)管理及意外計(jì)劃 (2012 年下半年)定義風(fēng)險(xiǎn)參照水準(zhǔn)是 (19) 活動(dòng)常用的技術(shù)。(19) A風(fēng)險(xiǎn)識(shí)別B風(fēng)險(xiǎn)C風(fēng)險(xiǎn)評(píng)估D風(fēng)險(xiǎn)(2014 年上)項(xiàng)目復(fù)雜性、規(guī)模和結(jié)構(gòu)的不確定性屬于 (19)

40、風(fēng)險(xiǎn)。 (2006 年上)使用 LOC (lines of code)度量軟件規(guī)模的優(yōu)點(diǎn)是 (9) 。(9)A.容易計(jì)算 B.與使用的編程語(yǔ)言相關(guān) C.與使用的開(kāi)發(fā)模型有關(guān) D.在設(shè)計(jì)之前就可以計(jì)算出 LOC (2006 年上)軟件項(xiàng)目開(kāi)發(fā)成本的估算依據(jù),通常是開(kāi)發(fā)成本估算模型,常用的模型有:IBM 模型Putnam 模型基本O 模型中級(jí)O 模型高級(jí) OCOMO 模型其中(18)都是靜態(tài)單變量模型。(18)AB. C. D. (2014 年上) (17) 軟件成本估算模型是一種靜態(tài)單變量模型,用于對(duì)整個(gè)軟件系統(tǒng)進(jìn)行估算。(17)APutnamB基本OC中級(jí)OD詳細(xì)O組織管理制程序員組1.8.4

41、1.是一種非正式的組織方式,小組成員完全平等,享有充分,小組成員通過(guò)協(xié)商作出技術(shù)決策,小組有高度的凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,有利于攻克技術(shù)難關(guān)。小組成員之間的通信是平行的,如果小組內(nèi)有 n 個(gè)成員,則可能的通信信道是n(n-1)/2。適用于開(kāi)發(fā)少(28 人),軟件規(guī)模較小,每個(gè)開(kāi)發(fā)技術(shù)水平都高的情況下。2.組在以下情況下,適用組的方式比較合適。nnn軟件開(kāi)發(fā)多數(shù)比較缺乏經(jīng)驗(yàn);程序設(shè)計(jì)過(guò)程中有許多事務(wù)性的工作,例如,大量信息的和更新;多通信很費(fèi)時(shí)間,將降低程序員的生產(chǎn)率。圖 1.8既懂管理,同時(shí)又是技術(shù)很很棒的組的結(jié)構(gòu)。而后備程序員是和如圖1.8 所示,水平相當(dāng),隨時(shí)可替帶主程序員工作的,編程負(fù)

42、責(zé)項(xiàng)目相全部事務(wù)性工作,如維護(hù)項(xiàng)目資料庫(kù)和項(xiàng)目文檔等。3. 現(xiàn)代程序員組在主程序組的基礎(chǔ)上,取消的行政管理工作,讓其單純搞技術(shù),負(fù)責(zé)技術(shù)工作方面的質(zhì)量,而加進(jìn)行政組長(zhǎng)負(fù)責(zé)管理方面的工作?,F(xiàn)代程序員組如圖 1.9、圖 1.10、圖 1.11 所示。圖 1.9 現(xiàn)代程序員組的結(jié)構(gòu)(19)A項(xiàng)目B技術(shù)CD商業(yè)圖 1.10 大型項(xiàng)目的技術(shù)管理組織結(jié)構(gòu)圖 1.11 包含分散決策的組織方式1.9 軟件配置管理軟件配置管理(Software Configure Management,SCM)用于整個(gè)軟件工程過(guò)程。主要目標(biāo)是標(biāo)識(shí)變更; 正確地實(shí)現(xiàn);報(bào)告有關(guān)變更。SCM 是一組管理整個(gè)軟件生存期各階段中變更的活

43、動(dòng)。1. 基線(xiàn)變更;確保變更基線(xiàn)是軟件生存期中各開(kāi)發(fā)階段的一個(gè)特定點(diǎn),把各個(gè)開(kāi)發(fā)階段明確地,使本來(lái)連續(xù)的工作點(diǎn)在這些點(diǎn)上斷開(kāi),以便檢肯定階段成果?;€(xiàn)可以作為一個(gè)檢查點(diǎn),在開(kāi)發(fā)過(guò)程中,當(dāng)采用的基線(xiàn)發(fā)生錯(cuò)誤時(shí),可以知道所處的位置,返回到最近獲最恰當(dāng)?shù)幕€(xiàn)上。2. 軟件配置項(xiàng)軟件配置項(xiàng)(Software Cinfigure Item,SCI)是軟件工程中產(chǎn)生的信息項(xiàng),是配置管理的基本象,并形成基線(xiàn)。,以下的 SCI 是SCM 的對(duì)系統(tǒng)規(guī)格說(shuō)明書(shū)、軟件項(xiàng)目實(shí)施計(jì)劃、軟件需求規(guī)格說(shuō)明書(shū)、設(shè)計(jì)規(guī)格說(shuō)明書(shū)(數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、接口設(shè)計(jì)、對(duì)象描述)、源代碼管理,測(cè)試計(jì)劃和過(guò)程、測(cè)試用例和測(cè)試結(jié)

44、果,操作和安裝手冊(cè)、可執(zhí)行程序(可執(zhí)行程序模塊、連接模塊)、數(shù)據(jù)庫(kù)描述(模式和文件結(jié)果、初始內(nèi)容)、用戶(hù)手冊(cè)、維護(hù)文檔、軟件工程標(biāo)準(zhǔn)、項(xiàng)目開(kāi)發(fā)小結(jié)。3. 版本一些文檔經(jīng)過(guò)轉(zhuǎn)換生成另外一些文檔,并產(chǎn)生一些信息;另一文檔又隨時(shí)會(huì)有新的變更出現(xiàn),形成新的版本。4. 變更變更是一項(xiàng)最重要的軟件配置任務(wù)。為有效地實(shí)現(xiàn)變更,需借助于配置數(shù)據(jù)庫(kù)和基線(xiàn)的概念。配置數(shù)據(jù)庫(kù)分為以下三類(lèi):開(kāi)發(fā)庫(kù)、受控庫(kù)、庫(kù)。1.10 模塊化基本知識(shí)模塊是指執(zhí)行某一特定任務(wù)的數(shù)據(jù)和可執(zhí)行語(yǔ)句程序元素的集合,通常是指可通過(guò)名字來(lái)調(diào)用等。模塊化就是將一個(gè)待開(kāi)發(fā)的軟件劃分成若干個(gè)可完成某一子功能的模塊,每個(gè)模塊可的過(guò)程、函數(shù)、子程序或宏地

45、開(kāi)發(fā)、測(cè)試,最后組裝成 (2012 年上)(18) 最不適于采用無(wú)組的開(kāi)發(fā)組織形式。(18)A項(xiàng)目開(kāi)發(fā)人數(shù)少(如 3-4 人)的項(xiàng)目 B采用新技術(shù)的項(xiàng)目 C大規(guī)模項(xiàng)目 D確定性較小的項(xiàng)目完整的程序。有以下的模塊類(lèi)型:nnn傳入模塊:從下屬模塊取得數(shù)據(jù),經(jīng)過(guò)某些處理,再將其結(jié)果傳送給模塊;傳出模塊:從模塊取得數(shù)據(jù),經(jīng)過(guò)某些處理,再將其結(jié)果傳送給下屬模塊;變化模塊:也叫模塊。它從模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其他形式,再傳回模塊。它的數(shù)據(jù)流叫做變換數(shù)據(jù)流。n協(xié)調(diào)模塊:對(duì)所有的下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。在系統(tǒng)的輸入輸出部分或數(shù)據(jù)部分可以找到這樣的模塊。在一個(gè)好的模塊結(jié)構(gòu)圖中,協(xié)調(diào)模塊應(yīng)在較

46、出現(xiàn)。1.10.1 模塊特性1. 可分解性如果一種設(shè)計(jì)方法提供了將問(wèn)題分解成子問(wèn)題的系統(tǒng)化機(jī)制,它就能降低整個(gè)系統(tǒng)的復(fù)雜性,從而實(shí)現(xiàn)一種有效的模塊化解決方案。2. 可組裝性如果一種設(shè)計(jì)方法使現(xiàn)存的(可復(fù)用的)設(shè)計(jì)構(gòu)件能被組裝成新系統(tǒng),它就能提供一種不需要一切從頭開(kāi)始的模塊化解決方案。3. 可理解性如果一個(gè)模塊可以作為一個(gè)4. 連續(xù)性的(不用參考其他模塊)被理解,那么它就易于構(gòu)造和修改。如果對(duì)系統(tǒng)需求的微小修改只導(dǎo)致對(duì)單個(gè)模塊,而不是整個(gè)系統(tǒng)的修改,則修改引起副作用就會(huì)被最小化。5. 保護(hù)性如果模塊內(nèi)部出現(xiàn)異常情況,并且它的影響限制在模塊內(nèi)部,注意“連續(xù)性”和“保護(hù)性”的區(qū)別!影響其他模塊,則錯(cuò)

47、誤引起的副作用就會(huì)被最小化。1.10.2 模塊與模塊的耦合性(7 種)耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合可以分成下列幾種,它們之間的耦合度由高到低排列。1. 內(nèi)容耦合直接操作或修改另一模塊的數(shù)據(jù),或不通過(guò)正常轉(zhuǎn)入另一個(gè)模塊。軟件設(shè)計(jì)時(shí)應(yīng)堅(jiān)決2. 公共耦合內(nèi)容耦合,應(yīng)設(shè)計(jì)成單、單出口的模塊,避免連接。多個(gè)模塊同一全局?jǐn)?shù)據(jù)區(qū)。例如,C 語(yǔ)言中的 external 數(shù)據(jù)類(lèi)型、磁盤(pán)文件等都是全局?jǐn)?shù)據(jù)區(qū)。3. 外部耦合模塊與軟件以外的環(huán)境有關(guān)聯(lián)。例如,輸入輸出把一個(gè)模塊與特定的設(shè)備、格式、通信協(xié)議耦合在一起。4.耦合一模塊明顯把開(kāi)關(guān)量、名字等信息送入另一模塊,5. 標(biāo)記耦合另一模塊的

48、功能。兩個(gè)模塊之間通過(guò)傳遞公共指針或地址相互作用的耦合。6. 數(shù)據(jù)耦合模塊間通過(guò)傳遞信息。7. 非直接耦合(無(wú)耦合)模塊間無(wú)任何關(guān)系,工作原則上講,模塊化設(shè)計(jì)總是希望模塊之間的耦合表現(xiàn)為非直接耦合方式。在以上耦合中,耦合度從高到低,內(nèi)容耦合度最高,非直接耦合度最低??偨Y(jié):內(nèi)公不好,家外被控了,標(biāo)志數(shù)年心血了?。▋?nèi)功不好,家外被控了,標(biāo)志數(shù)年心血白費(fèi)了!)1.10.3 模塊的內(nèi)聚性?xún)?nèi)聚是指一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部的概念的自然擴(kuò)展。設(shè)計(jì)時(shí)應(yīng)該力求高內(nèi)聚,理想內(nèi)聚的模塊應(yīng)當(dāng)恰好做一件事情。1. 偶然內(nèi)聚:一個(gè)模塊的各成分之間毫無(wú)關(guān)系。比如:一組語(yǔ)句在程序的多處出現(xiàn),為

49、了節(jié)省內(nèi)存空間,這些語(yǔ)句放在一個(gè)模塊中,該模塊的內(nèi)聚是偶然內(nèi)聚的。2. 邏輯內(nèi)聚:把幾種邏輯上相功能組放在同一模塊中。3. 瞬時(shí)內(nèi)聚(時(shí)間內(nèi)聚):一個(gè)模塊所包含的任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行,例如初始化模塊。4. 過(guò)程內(nèi)聚:一個(gè)模塊的處理元素是相,而且必須按特定的次序執(zhí)行。5. 通信內(nèi)聚:一個(gè)模塊的所有成分都結(jié)合在同一個(gè)數(shù)據(jù)結(jié)構(gòu)上。6. 順序內(nèi)聚:模塊的成分同一個(gè)功能密切相關(guān),且輸出,作為另外一個(gè)成分的輸入。7. 功能內(nèi)聚:模塊內(nèi)的所有成分屬于一個(gè)整體,完成單一的功能。在以上的內(nèi)聚中,內(nèi)聚度從低到高,偶然內(nèi)聚度最低,功能內(nèi)聚度最高。模塊的高內(nèi)聚、低耦合的原則稱(chēng)為模塊也稱(chēng)為模塊設(shè)計(jì)的原則。原則,

50、巧記:偶然邏輯,瞬間遺忘過(guò)程,打(通信)詢(xún)問(wèn),順序清楚,功能也搞定!1.10.4 模塊的深度、寬度、扇出與扇入1. 深度:表示軟件結(jié)構(gòu)中的層數(shù);2. 寬度:是軟件結(jié)構(gòu)中同一個(gè)層次上的模塊總數(shù)的最大值;3. 扇入:一個(gè)模塊的扇入是指直接調(diào)用該模塊的模塊的個(gè)數(shù);4. 扇出:一個(gè)模塊調(diào)用的下層模塊個(gè)數(shù)。圖 1.12 模塊結(jié)構(gòu)圖如圖 1.12 所示,模塊M 的深度為 4,寬度為 4,扇出為 4;模塊C 的扇出為 3,扇入為 1。注意:模塊設(shè)計(jì)原則:低扇出、高扇入。1.10.5 模塊作用域和域軟件設(shè)計(jì)時(shí),模塊的作用域應(yīng)在域之內(nèi)。1.10.6 模塊化基礎(chǔ)知識(shí)小結(jié)1. 通過(guò)模塊的合并和分解,降低模塊的耦合度

51、。2. 模塊的扇入應(yīng)盡量大,扇出應(yīng)盡量小。一個(gè)模塊的扇入是指直接調(diào)用該模塊的模塊的個(gè)數(shù)。一個(gè)模塊的扇出是指該模塊直接調(diào)用的下級(jí)模塊的個(gè)數(shù)。扇入大表示模塊的重用性高,利用率高。扇出大表示模塊的復(fù)雜度高。所以要高扇入,低扇出。3. 要將模塊的作用范圍限制在模塊的范圍之內(nèi)。4. 降低模塊之間的復(fù)雜性,避免“連接”。 (2006 年上)模塊的耦合度描述了 (16) 。(16)A模塊內(nèi)各種元素結(jié)合的程度B模塊內(nèi)多個(gè)功能之間的接口C模塊之間公共數(shù)據(jù)的數(shù)量D模塊之間相互關(guān)聯(lián)的程度 (2006 年上)內(nèi)聚是一種指標(biāo),表示一個(gè)模塊 (17) 。(17)A代碼優(yōu)化的程度B代碼功能的集中程度C完成任務(wù)時(shí)及時(shí)程度D為

52、了與其他模塊連接所要完成的工作量 (2012 年下)在軟件設(shè)計(jì)階段,劃分模塊的原則是:一個(gè)模塊的(18)。(18)A作用范圍應(yīng)該在其范圍之內(nèi) B范圍應(yīng)該在其作用范圍之內(nèi)C作用范圍與范圍互不包含D作用范圍與范圍不受任何限制(2014 年上)模塊 A 提供某個(gè)班級(jí)某門(mén)課程的成績(jī)給模塊 B,模塊 B 計(jì)算平均成績(jī)、最高分和最低分,將計(jì)算結(jié)果返回1.11 什么是軟件開(kāi)發(fā)方法?有哪些主要方法?nn軟件開(kāi)發(fā)方法:使用已定義好的技術(shù)集及符號(hào)表示習(xí)慣組織軟件生產(chǎn)的過(guò)程。結(jié)構(gòu)化方法、面向?qū)ο蠓椒?、JACKSON 方法、維也納開(kāi)發(fā)方法(VDM)等。1.11.1 結(jié)構(gòu)化方法學(xué)結(jié)構(gòu)化方法學(xué)也稱(chēng)為生命周期方法學(xué)(瀑布模型方法),是一種面向數(shù)據(jù)流的需求分析方法。它的基本思想是自頂向下逐層分解。為了在需求改變時(shí)對(duì)軟件的影響較小,結(jié)構(gòu)化分析時(shí)應(yīng)該使程序結(jié)構(gòu)與問(wèn)題結(jié)構(gòu)相對(duì)應(yīng)。常用工具: 數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、實(shí)例-關(guān)系圖(E-R 圖)及描述1. 數(shù)據(jù)流圖(DFD 圖)數(shù)據(jù)流圖主要由 4 種成分組成,如表 1.1 所示:處理的結(jié)構(gòu)化語(yǔ)言、判定表、判定樹(shù)。表 1.1 數(shù)據(jù)流

溫馨提示

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

評(píng)論

0/150

提交評(píng)論