軟件工程理論知識(shí)_第1頁
軟件工程理論知識(shí)_第2頁
軟件工程理論知識(shí)_第3頁
軟件工程理論知識(shí)_第4頁
軟件工程理論知識(shí)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程理論知識(shí)軟件工程基礎(chǔ)知識(shí)精解一.什么是軟件? 4二.軟件危機(jī)以及產(chǎn)生軟件危機(jī)的原因? 4三.有哪些流行的軟件工程方法學(xué)及其要素? 4四.什么是軟件生存周期?有哪些活動(dòng)? 44.1軟件生存周期 44.2開發(fā)活動(dòng) 44.3各活動(dòng)階段主要文檔 54.3.1可行性分析和項(xiàng)目開發(fā)計(jì)劃 54.3.2需求分析中的文檔 54.3.3概要設(shè)計(jì)階段文檔 54.4.4詳細(xì)設(shè)計(jì)階段 54.4.5編碼 54.4.5測試 54.4.6系統(tǒng)測試階段 5五.有哪些主要生存期模型? 55.1瀑布模型(傳統(tǒng)的軟件周期模型) 55.2原型模型 65.2.1快速原型模型 65.2.2演化模型 65.2.3增量模型(漸增式) 65.2.4原型模型小結(jié) 65.3螺旋模型 75.4噴泉模型 75.5迭代軟件開發(fā)技術(shù) 75.6極限編程(XP) 8六.軟件過程基礎(chǔ)知識(shí) 96.1軟件過程 96.2評(píng)估工具 9七.軟件工程項(xiàng)目管理基本知識(shí) 97.1時(shí)間管理 97.1.1Gantt圖 97.1.2PERT網(wǎng)圖與關(guān)鍵路徑 107.2成本管理 117.3風(fēng)險(xiǎn)管理 117.3.1風(fēng)險(xiǎn)的定義 117.3.2風(fēng)險(xiǎn)的類型 117.3.3風(fēng)險(xiǎn)管理活動(dòng) 127.3.3風(fēng)險(xiǎn)曝光度 12八.模塊化基本知識(shí) 128.1模塊特性 128.1.1可分解性 128.1.2可組裝性 138.1.3可理解性 138.1.4連續(xù)性 138.1.5保護(hù)性 138.2模塊與模塊的耦合性(7種) 138.2.1內(nèi)容耦合 138.2.2公共耦合 138.2.3外部耦合 138.2.4控制耦合 138.2.5標(biāo)記耦合 138.2.6數(shù)據(jù)耦合 138.2.7非直接耦合(無耦合) 138.3模塊的內(nèi)聚性 138.4模塊的深度、寬度、扇出與扇入 148.5模塊作用域和控制域 148.6模塊化基礎(chǔ)知識(shí)小結(jié) 14九.什么是軟件開發(fā)方法?有哪些主要方法? 149.1結(jié)構(gòu)化方法學(xué) 149.1.1數(shù)據(jù)流圖(DFD圖) 149.1.2數(shù)據(jù)字典 169.1.3結(jié)構(gòu)化語言 169.1.4實(shí)體-關(guān)系圖(E-R圖) 169.2結(jié)構(gòu)化設(shè)計(jì) 179.2.1概要設(shè)計(jì) 179.2.2詳細(xì)設(shè)計(jì) 199.3Jackson方法 199.4面向?qū)ο蠓治龇椒ǎ?0A) 19十.軟件工具 20十一.軟件開發(fā)環(huán)境 20十二.軟件質(zhì)量管理基礎(chǔ)知識(shí) 2012.1軟件質(zhì)量 2012.2軟件質(zhì)量保證 2012.3代碼評(píng)審技術(shù) 21十三.成本-效益分析可用哪些指標(biāo)進(jìn)行度量? 21十四.第四代語言(4GL)的主要特征? 21十五.軟件測試 2115.1軟件測試經(jīng)過的步驟 2115.2測試與軟件開發(fā)各階段的關(guān)系 2215.3白盒測試 2215.4黑盒測試 2315.4灰盒測試 2315.5回歸測試 2315.6單元測試 2315.7集成測試 2315.8確認(rèn)測試 2415.9系統(tǒng)測試 24十六.軟件工程標(biāo)準(zhǔn)和軟件文檔 2417.1軟件維護(hù)類型 2517.2軟件的可維護(hù)性 25十八.軟件的可靠性 25一.什么是軟件?1.滿足用戶功能需求和性能的指令或計(jì)算機(jī)程序集合;2.處理信息的數(shù)據(jù)結(jié)構(gòu);3.描述程序功能以及程序如何操作和使用所要求的文檔;以上三部分的組合構(gòu)成了軟件二.軟件危機(jī)以及產(chǎn)生軟件危機(jī)的原因?1.軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)迅速普及的趨勢。軟件產(chǎn)品“供不應(yīng)求”。2.軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升?!伴_發(fā)成本高”3.軟件開發(fā)人員和用戶之間的信息交流往往很不充分,用戶對(duì)“已完成的”的軟件系統(tǒng)不滿足的現(xiàn)象經(jīng)常發(fā)生。4.軟件產(chǎn)品的質(zhì)量不容易保證。5.軟件產(chǎn)品常常是不可維護(hù)的。6.軟件產(chǎn)品的重用性差,同樣的軟件多次重復(fù)開發(fā)。7.軟件通常沒有適當(dāng)?shù)奈臋n資料。產(chǎn)生軟件危機(jī)的原因可歸結(jié)為兩個(gè)重要的方面:軟件生產(chǎn)本身存在的復(fù)雜性;軟件開發(fā)所使用的方法和技術(shù)。三.有哪些流行的軟件工程方法學(xué)及其要素?1.使用最廣泛的軟件工程方法學(xué)是面向結(jié)構(gòu)化方法學(xué)和面向?qū)ο蟮姆椒▽W(xué)(上世紀(jì)70-90年代,流行面向結(jié)構(gòu)化方法學(xué),上世紀(jì)90年代到現(xiàn)在,流行面向?qū)ο蠓椒▽W(xué))。2.要素:方法、工具和過程。四.什么是軟件生存周期?有哪些活動(dòng)?4.1軟件生存周期一個(gè)軟件從提出開發(fā)要求開始到軟件廢棄不用的整個(gè)過程。4.2開發(fā)活動(dòng)可行性分析和項(xiàng)目開發(fā)計(jì)劃、需求分析和定義、軟件設(shè)計(jì)(先后細(xì)分為:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測試和運(yùn)行維護(hù)可行性分析和項(xiàng)目開發(fā)計(jì)劃:用戶、項(xiàng)目負(fù)責(zé)人和系統(tǒng)分析師搞清楚系統(tǒng)要解決的問題是什么?以及從技術(shù)、經(jīng)濟(jì)、時(shí)間等方面論證項(xiàng)目開發(fā)可行性。需求分析和定義:用戶、項(xiàng)目負(fù)責(zé)人和系統(tǒng)分析師確定系統(tǒng)必須做什么?但不關(guān)心具體怎么做?要確定系統(tǒng)的功能、性能、數(shù)據(jù)、界面等要求,從而確定系統(tǒng)的邏輯模型,同時(shí)制定后期測試計(jì)劃。軟件設(shè)計(jì)-概要設(shè)計(jì):系統(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ù)庫結(jié)構(gòu)。軟件設(shè)計(jì)-詳細(xì)設(shè)計(jì):軟件設(shè)計(jì)師和程序員對(duì)概要設(shè)計(jì)階段得出的各功能模塊進(jìn)行詳細(xì)描述成精確的、結(jié)構(gòu)化的過程描述,即各個(gè)功能模塊具體怎么實(shí)現(xiàn),用相應(yīng)的工具把模塊的控制結(jié)構(gòu)表示出來,但還未進(jìn)行編碼。編碼:由程序員詳細(xì)設(shè)計(jì)階段得出的各模塊控制結(jié)構(gòu)(圖形)轉(zhuǎn)變成計(jì)算機(jī)能識(shí)別的指令代碼。測試:由另一部門(單位)的軟件設(shè)計(jì)師或系統(tǒng)分析師花費(fèi)最少的人力物力找出程序最多、最大的錯(cuò)誤(bug)。維護(hù):由用戶和維護(hù)人員進(jìn)行的軟件生存周期中時(shí)間最長的階段。4.3各活動(dòng)階段主要文檔4.3.1可行性分析和項(xiàng)目開發(fā)計(jì)劃可性行研究報(bào)告項(xiàng)目開發(fā)計(jì)劃4.3.2需求分析中的文檔需求規(guī)格說明書初步用戶使用手冊(cè)確認(rèn)測試的測試計(jì)劃修改完善的軟件開發(fā)計(jì)劃系統(tǒng)測試計(jì)劃文檔4.3.3概要設(shè)計(jì)階段文檔概要設(shè)計(jì)說明書數(shù)據(jù)庫說明書用戶手冊(cè)修訂的測試計(jì)劃(測試的策略、方法、步驟)4.4.4詳細(xì)設(shè)計(jì)階段詳細(xì)設(shè)計(jì)說明書4.4.5編碼程序清單4.4.5測試完善的測試計(jì)劃書軟件測試報(bào)告4.4.6系統(tǒng)測試階段系統(tǒng)測試報(bào)告2005年下半年應(yīng)該在(7)階段制定系統(tǒng)測試計(jì)劃。(7)A.需求分析B.概要設(shè)計(jì)C.詳細(xì)設(shè)計(jì)D.系統(tǒng)測試●(29)詳細(xì)描述軟件的功能、性能和用戶界面,以使用戶了解如何使用軟件。(29)A.概要設(shè)計(jì)說明書B.詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.用戶需求說明書五.有哪些主要生存期模型?瀑布模型、原型開發(fā)模型(快速原型模型、演化模型、增量模型)、螺旋模型、噴泉模型、基于知識(shí)的模型和變化模型。5.1瀑布模型(傳統(tǒng)的軟件周期模型)瀑布模型嚴(yán)格遵循軟件生命周期各階段的固定順序:計(jì)劃、分析、設(shè)計(jì)、編程、測試和維護(hù),上一階段完成后才能進(jìn)入到下一階段,整個(gè)模型就像一個(gè)飛流直下的瀑布,如下圖所示。優(yōu)點(diǎn):以文檔作為驅(qū)動(dòng),強(qiáng)迫開發(fā)人員采用規(guī)范的方法,嚴(yán)格規(guī)定了各階段必須提交的文檔;要求每一階段結(jié)束后,都要進(jìn)行嚴(yán)格的評(píng)審。與它最相適應(yīng)的開發(fā)方法是結(jié)構(gòu)化方法。缺點(diǎn):不適應(yīng)用戶需求的改動(dòng)。2004年下半年:●軟件開發(fā)中的瀑布模型典型的刻畫了軟件生存周期的階段劃分,與其最相適應(yīng)的軟件開發(fā)方法是(9)。

(9)A.構(gòu)件化方法B.結(jié)構(gòu)化方法C.面向?qū)ο蠓椒―.快速原型法5.2原型模型5.2.1快速原型模型快速原型的用途是獲知用戶的真正需求,一旦需求確定了,原型即被拋棄。主要用于需求分析階段。不追求也不可能要求對(duì)需求的嚴(yán)格定義,而是采用了動(dòng)態(tài)定義需求的方法,所以不能定義完善的文檔。特征:簡化項(xiàng)目管理、盡快建立初步需求、加強(qiáng)用戶參與和決策。具有廣泛技能水平的原型化人員是原型實(shí)施的重要保證。原型化人員應(yīng)該是具有經(jīng)驗(yàn)與才干、訓(xùn)練有素的專業(yè)人員。衡量原型化人員能力的重要標(biāo)準(zhǔn)是他是否能夠從用戶的模糊描述中快速獲取需求。5.2.2演化模型在快速原型模型中,原型的用途是獲知用戶的真正需求,一旦需求確定了,原型即被拋棄。而演化模型應(yīng)用于整個(gè)軟件開發(fā)過程,是從初始模型逐步演化為最終軟件產(chǎn)品的漸進(jìn)過程。也就是說,快速原型模型是一種“拋棄式”的原型化方法,而演化模型則是一種“漸進(jìn)式”的原型化方法。5.2.3增量模型(漸增式)增量模型主要用于設(shè)計(jì)階段,把軟件產(chǎn)品劃分為一系列的增量構(gòu)件,分別進(jìn)行設(shè)計(jì)、編程、集成和測試。新的增量構(gòu)件不得破壞已經(jīng)開發(fā)出來的產(chǎn)品。其示意圖如圖4-2所示。5.2.4原型模型小結(jié)從下面的有關(guān)原型化方法的敘述中,選擇出正確的敘述:(1)快速原型方法是一種企圖克服傳統(tǒng)軟件周期模型缺點(diǎn)的開發(fā)方法。(2)在用戶的數(shù)據(jù)資源沒有得到很好地組織和管理的時(shí)候,應(yīng)該使用原型化方法。(3)在用戶沒有明確地肯定其需求的時(shí)候,應(yīng)該使用原型化方法。(4)在用戶不希望把自己的時(shí)間花在軟件開發(fā)過程中的時(shí)候,應(yīng)該使用原型化方法。(5)使用原型化方法時(shí)應(yīng)該使用第三代編程語言。(6)原型化加強(qiáng)了開發(fā)過程中用戶的參與和決策。(7)原型化方法大致可分為三類:拋棄式、演化式和遞增式。(8)原型化方法大致可分為演化式和遞增式。(9)采用原型化方法時(shí),軟件的開發(fā)成本較高。(10)采用原型化方法時(shí),關(guān)鍵的因素是建立原形的速度,而不是原形運(yùn)行的效率。5.3螺旋模型螺旋模型綜合了瀑布模型和原型模型中的演化模型的優(yōu)點(diǎn),還增加了風(fēng)險(xiǎn)分析。螺旋線第一圈的開始點(diǎn)可能是一個(gè)概念項(xiàng)目。從第二圈開始,一個(gè)新產(chǎn)品開發(fā)項(xiàng)目開始了,新產(chǎn)品的演化沿著螺旋線進(jìn)行若干次迭代,一直轉(zhuǎn)到軟件生命期結(jié)束。5.4噴泉模型噴泉模型主要用于描述面向?qū)ο蟮拈_發(fā)過程。噴泉一詞體現(xiàn)了面向?qū)ο箝_發(fā)過程的迭代和無間隙特征。迭代指的是開發(fā)活動(dòng)常常需要重復(fù)多次,在不斷的迭代中逐漸完善軟件系統(tǒng),無間歇性指在開發(fā)活動(dòng)之間不存在明顯的邊界,允許各開發(fā)活動(dòng)交叉、迭代地進(jìn)行。5.5迭代軟件開發(fā)技術(shù)Rational統(tǒng)一開發(fā)流程RUP(RationalUnifiedProcess)是一個(gè)通用的軟件流程框架,它是一個(gè)以架構(gòu)為中心、用例驅(qū)動(dòng)的迭代化軟件開發(fā)流程。RUP是從幾千個(gè)軟件項(xiàng)目的實(shí)踐經(jīng)驗(yàn)中總結(jié)出來的,對(duì)于實(shí)際的項(xiàng)目具有很強(qiáng)的指導(dǎo)意義,是軟件開發(fā)行業(yè)事實(shí)上的行業(yè)標(biāo)準(zhǔn)。在RUP中,我們把軟件開發(fā)生命周期劃分為四個(gè)階段,每個(gè)階段的結(jié)束標(biāo)志就是一個(gè)主要的里程碑(如下圖所示)。這四個(gè)階段主要是為了達(dá)到以下階段性的目標(biāo)里程碑:先啟(Inception):確定項(xiàng)目開發(fā)的目標(biāo)和范圍精化(Elaboration):確定系統(tǒng)架構(gòu)和明確需求構(gòu)建(Construction):實(shí)現(xiàn)剩余的系統(tǒng)功能產(chǎn)品化(Transition):完成軟件的產(chǎn)品化工作,將系統(tǒng)移交給客戶2005年下半年:在開發(fā)一個(gè)系統(tǒng)時(shí),如果用戶對(duì)系統(tǒng)的目標(biāo)是不很清楚,難以定義需求,這時(shí)最好使用(6)。(6)A.原型法B.瀑布模型C.V-模型D.螺旋模型2006年上半年:漸增式開發(fā)方法有利于(4)。

(4)A.獲取軟件需求B.快速開發(fā)軟件C.大型團(tuán)隊(duì)開發(fā)D.商業(yè)軟件開2006年下半年:常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。其中(5)模型適用于需求明確或很少變更的項(xiàng)目,(6)主要用來描述面向?qū)ο蟮能浖_發(fā)過程。(5)A.瀑布模型B.演化模型C.螺旋模型D.噴泉模型(6)A.瀑布模型B.演化模型C.螺旋模型D.噴泉模型●統(tǒng)一過程(UP)的基本特征是“用例驅(qū)動(dòng),以架構(gòu)為中心的和受控的迭代式增量開發(fā)”。UP將一個(gè)周期的開發(fā)過程化分為4個(gè)階段,其中(26)提交結(jié)果包含了系統(tǒng)架構(gòu)。(26)A.先啟階段B.精化階段C.構(gòu)建階段D.提交階段5.6極限編程(XP)一種輕量(敏捷)、高效、低風(fēng)險(xiǎn)、柔性、可預(yù)測、科學(xué)而且充滿樂趣的軟件開發(fā)方法。與其他方法對(duì)比,最大的不同在于:1.在更短的周期內(nèi),更早地提供具體、持續(xù)的反饋信息2.迭代地進(jìn)行計(jì)劃編制,首先在最開始迅速生成一個(gè)總體計(jì)劃,然后在整個(gè)項(xiàng)目開發(fā)過程中不斷地發(fā)展3.依賴于自動(dòng)測試程序來監(jiān)控開發(fā)進(jìn)度,并及早地捕獲缺陷4.依賴于口頭交流,測試和源程序進(jìn)行溝通5.倡導(dǎo)持續(xù)的演化式的設(shè)計(jì)6.依賴于開發(fā)團(tuán)隊(duì)內(nèi)部的緊密協(xié)作7.盡可能達(dá)到程序員短期利益和項(xiàng)目長期利益的平衡如上圖所示,xp由價(jià)值觀、原則、實(shí)踐和行為四個(gè)部分組成,它們彼此相互依賴、關(guān)聯(lián),并通過行為貫穿于整個(gè)生命周期。xp的核心是其總結(jié)的四大價(jià)值觀:溝通、簡單、反饋和勇氣、它們是xp的基礎(chǔ),也是xp的靈魂。5個(gè)原則:快速反饋、簡單性假設(shè)、逐步修改、提倡更改和優(yōu)質(zhì)工作。在xp方法中,貫徹的是“小步快走”的開發(fā)原則,因此工作質(zhì)量絕不可打折扣,通常采用測試先行的編碼方式來提供支持。在xp中,繼承了12個(gè)最佳實(shí)踐:計(jì)劃游戲、小型發(fā)布、隱喻、簡單設(shè)計(jì)、測試先行、重構(gòu)、結(jié)對(duì)編程、集體代碼所有制、持續(xù)繼承、每周工作40小時(shí),現(xiàn)場客戶,編碼標(biāo)準(zhǔn)。六.軟件過程基礎(chǔ)知識(shí)6.1軟件過程軟件過程是指人們用于開發(fā)和維護(hù)軟件及相關(guān)產(chǎn)品的一系列活動(dòng),包括軟件工程過程和軟件管理過程。6.2評(píng)估工具軟件過程的評(píng)估,通常采用軟件能力成熟度模型(CapabilityMaturityModel,CMM)。CMM1.1的5個(gè)等級(jí)(由低級(jí)到高級(jí)):初始級(jí)軟件過程是無序的,有時(shí)甚至是混亂的,對(duì)過程幾乎沒有定義,成功取決于個(gè)人努力,管理是反應(yīng)式(消防式)的??芍貜?fù)級(jí)建立了基本的項(xiàng)目管理過程來跟蹤費(fèi)用、進(jìn)度和功能特性。制定了必要的過程紀(jì)律,能重復(fù)早先類似應(yīng)用項(xiàng)目取得的成功。已定義級(jí)已將軟件管理和工程兩方面的過程文檔化、標(biāo)準(zhǔn)化,并綜合成該組織的標(biāo)準(zhǔn)化軟件過程。所有項(xiàng)目均使用經(jīng)標(biāo)準(zhǔn)、裁減的標(biāo)準(zhǔn)軟件過程來開發(fā)和維護(hù)軟件。已管理級(jí)收集對(duì)軟件過程和產(chǎn)品質(zhì)量的詳細(xì)度量,對(duì)軟件過程和產(chǎn)品都有定量的理解與控制。優(yōu)化級(jí)加強(qiáng)了定量分析,通過來自過程質(zhì)量反饋和來自新觀念、新技術(shù)的反饋使過程能持續(xù)不斷地改進(jìn)。巧記:初級(jí)程序員,可重復(fù)寫程序,現(xiàn)已定義了管理策略來優(yōu)化程序設(shè)計(jì)!2006年下半年:●軟件能力成熟度模型(CMM)是目前國際上最流行、最實(shí)用的軟件生產(chǎn)過程標(biāo)準(zhǔn)和軟件企業(yè)成熟度的等級(jí)認(rèn)證標(biāo)準(zhǔn)。該模型將軟件能力成熟度自低到高依次劃分為初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、已管理級(jí)、優(yōu)化級(jí)。從(17)開始,要求企業(yè)建立基本的項(xiàng)目管理過程的政策和管理規(guī)程,使項(xiàng)目管理過程有章可循。(17)A.初始級(jí)B.可重復(fù)級(jí)C.已定義級(jí)D.已管理級(jí)七.軟件工程項(xiàng)目管理基本知識(shí)軟件項(xiàng)目管理開始于任何技術(shù)活動(dòng)之前,并且貫穿于整個(gè)的軟件生命周期。軟件工程項(xiàng)目管理一般分為時(shí)間管理、成本管理、人力資源管理、風(fēng)險(xiǎn)管理。7.1時(shí)間管理7.1.1Gantt圖是一種簡單的水平條形圖,它以水平線段表示子任務(wù)的工作階段,線段的起點(diǎn)和終點(diǎn)分別對(duì)應(yīng)著子任務(wù)的起始時(shí)間,線段長度指示完成該任務(wù)所需要的時(shí)間。甘特圖的優(yōu)點(diǎn):直觀簡明、易學(xué)易繪、可從圖上清楚地標(biāo)出子任務(wù)間的時(shí)間對(duì)比,但它也有缺點(diǎn):(a)不能顯示地描繪各項(xiàng)彼此間的依賴關(guān)系;(b)進(jìn)度計(jì)劃的關(guān)鍵部分不明顯,難以判斷哪些部分應(yīng)當(dāng)是主攻和主控的對(duì)象;(c)計(jì)劃中有潛力的部分以及潛力的大小不明確,往往造成潛力的浪費(fèi)。2006年5月:●在軟件項(xiàng)目管理中可以使用各種圖形工具來輔助決策,下面對(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)之間的依賴關(guān)系D.Gantt圖表現(xiàn)了完成各個(gè)活動(dòng)的進(jìn)度7.1.2PERT網(wǎng)圖與關(guān)鍵路徑PERT網(wǎng)圖是一個(gè)由箭頭(標(biāo)識(shí)任務(wù))和結(jié)點(diǎn)(標(biāo)識(shí)事件)組成的有向圖。將網(wǎng)絡(luò)方法用于工作計(jì)劃安排的評(píng)審和檢查。開發(fā)模塊A、B、C模塊的任務(wù)網(wǎng)絡(luò)圖PERT圖不僅給出了每個(gè)任務(wù)的開始時(shí)間、結(jié)束時(shí)間和完成該任務(wù)所需的時(shí)間,還給出了任務(wù)之間的依賴關(guān)系,即哪些任務(wù)完成后才能開始另一些任務(wù),以及如期完成整個(gè)工程的“關(guān)鍵路徑”。關(guān)鍵路徑(CriticalPath)是由一連串的任務(wù)所組成的鏈,距離最大的一條路徑。軟件項(xiàng)目的管理人員應(yīng)該密切注視關(guān)鍵任務(wù)的進(jìn)展情況。如果希望縮短工期,只有往關(guān)鍵任務(wù)中增加資源才會(huì)有效果。7.2成本管理一種常用的成本估算方法是先估計(jì)完成軟件項(xiàng)目所需的工作量(人月數(shù)),然后根據(jù)每個(gè)人月的代價(jià)(金額)計(jì)算機(jī)軟件的開發(fā)費(fèi)用:開發(fā)費(fèi)用=人月數(shù)×每個(gè)人月的代價(jià)另一種方法是估計(jì)軟件的規(guī)模(通常指源代碼行數(shù)),然后根據(jù)每行源代碼的平均開發(fā)費(fèi)用(包括分析、設(shè)計(jì)、編碼、測試所花的費(fèi)用),計(jì)算機(jī)軟件的開發(fā)費(fèi)用:開發(fā)費(fèi)用=源代碼行數(shù)×每行平均費(fèi)用估算源代碼行數(shù)時(shí),可以請(qǐng)n為有經(jīng)驗(yàn)的專家,每位專家對(duì)軟件給出3個(gè)估計(jì)值:ai最少源代碼行數(shù)(該軟件可能的最小規(guī)模)bi最大源代碼行數(shù)(該軟件可能的最大規(guī)模)mi最可能的代碼行數(shù)(該軟件最可能的規(guī)模)然后計(jì)算出每位專家的估算期,n位專家的估算期望值的平均值就是代碼行數(shù)的估算值。Putnam模型和COCOMO模型:Putnam模型和COCOMO模型是常用的成本估算模型。Putnam模型:是一種動(dòng)態(tài)多變量模型,它是假設(shè)在軟件開發(fā)的整個(gè)生存期中工作量的分布。COCOMO模型:是結(jié)構(gòu)性成本模型,是最精確、最易于使用的成本估算模型之一。該模型可以分為:(1)基本COCOMO模型,是一個(gè)靜態(tài)單變量模型,它是對(duì)整個(gè)軟件系統(tǒng)進(jìn)行估算。(2)中級(jí)COCOMO模型,是一個(gè)靜態(tài)多變量模型。它將軟件系統(tǒng)模型分為系統(tǒng)和部件兩個(gè)層次,系統(tǒng)由部件構(gòu)成,它把軟件開發(fā)所需人力(成本)看作是程序大小和一系列“成本驅(qū)動(dòng)屬性”的函數(shù)。(3)詳細(xì)COCOMO模型,它將軟件系統(tǒng)模型分為系統(tǒng)、子系統(tǒng)和模塊3個(gè)層次,它除包括中級(jí)模型所考慮的因素外,還考慮了在需求分析、軟件設(shè)計(jì)等每一步的成本驅(qū)動(dòng)屬性的影響。2006年上半年:●使用LOC(linesofcode)度量軟件規(guī)模的優(yōu)點(diǎn)是(9)。

(9)A.容易計(jì)算B.與使用的編程語言相關(guān)C.與使用的開發(fā)模型有關(guān)D.在設(shè)計(jì)之前就可以計(jì)算出LOC●軟件項(xiàng)目開發(fā)成本的估算依據(jù),通常是開發(fā)成本估算模型,常用的模型有:①IBM模型②Putnam模型③基本COCOMO模型④中級(jí)COCOMO模型⑤高級(jí)OCOMO模型其中(18)都是靜態(tài)單變量模型。(18)A.①②B.②④⑤C.①③D.③④⑤7.3風(fēng)險(xiǎn)管理7.3.1風(fēng)險(xiǎn)的定義1.關(guān)心未來:風(fēng)險(xiǎn)是否會(huì)導(dǎo)致軟件項(xiàng)目失敗?2.關(guān)心變化:在用戶需求、開發(fā)技術(shù)、目標(biāo)機(jī)器,以及所有其他與項(xiàng)目及時(shí)工作和全面完成有關(guān)的實(shí)體中會(huì)發(fā)生什么樣的變化?3.關(guān)心選擇:應(yīng)采用什么方法和工具,應(yīng)配置多少人力,在質(zhì)量上強(qiáng)調(diào)到什么程度才能滿足要求?7.3.2風(fēng)險(xiǎn)的類型1.項(xiàng)目風(fēng)險(xiǎn):指潛在的預(yù)算、進(jì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ù)等方面的問題。此外,規(guī)約的二義性、技術(shù)的不正確性,陳舊的技術(shù)和“先進(jìn)的”技術(shù)也是技術(shù)風(fēng)險(xiǎn)因素。技術(shù)風(fēng)險(xiǎn)威脅到開發(fā)軟件的質(zhì)量及軟件交付時(shí)間,如果技術(shù)風(fēng)險(xiǎn)比恩成現(xiàn)實(shí),則開發(fā)工作可能變得很困難或根本不可能。3.商業(yè)風(fēng)險(xiǎn):在信息系統(tǒng)項(xiàng)目中,商業(yè)風(fēng)險(xiǎn)威脅到要開發(fā)系統(tǒng)的生存能力。一般主要有5類商業(yè)風(fēng)險(xiǎn):市場風(fēng)險(xiǎn):開發(fā)了一個(gè)沒有人真正需要的優(yōu)秀產(chǎn)品或系統(tǒng)策略風(fēng)險(xiǎn):開發(fā)的產(chǎn)品不再符合公司的整體商業(yè)策略銷售風(fēng)險(xiǎn):開發(fā)了一個(gè)銷售部門不知道如何去賣的產(chǎn)品管理風(fēng)險(xiǎn):由于重點(diǎn)的轉(zhuǎn)移或人員的變動(dòng)而失去了高級(jí)管理層的支持預(yù)算風(fēng)險(xiǎn):沒有得到預(yù)算或人力上的保證7.3.3風(fēng)險(xiǎn)管理活動(dòng)1.風(fēng)險(xiǎn)識(shí)別:找的哦啊潛風(fēng)險(xiǎn)并將其文檔化,它包括項(xiàng)目風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)和商業(yè)風(fēng)險(xiǎn)三種2.風(fēng)險(xiǎn)評(píng)估:可分為定量評(píng)估和定性評(píng)估。通過對(duì)各種風(fēng)險(xiǎn)發(fā)生的可能性和破壞性這兩個(gè)方面進(jìn)行評(píng)估,并將它們按優(yōu)先級(jí)別進(jìn)行排列。在進(jìn)行軟件工程分析時(shí),項(xiàng)目管理人員要進(jìn)行四種風(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)駕馭:利用某種技術(shù),如原型化、軟件自動(dòng)化、軟件心理學(xué)、可靠性工程學(xué)等方法設(shè)法避開風(fēng)險(xiǎn)。統(tǒng)稱可以把風(fēng)險(xiǎn)應(yīng)對(duì)策略分為兩種類型:防范策略和相應(yīng)策略(1)風(fēng)險(xiǎn)防范策略規(guī)避策略:想方設(shè)法阻止風(fēng)險(xiǎn)的發(fā)生或消除風(fēng)險(xiǎn)發(fā)生的危害。避免策略如果成功則可以消除風(fēng)險(xiǎn)對(duì)項(xiàng)目的影響。例如:針對(duì)技術(shù)風(fēng)險(xiǎn)可以采取聘請(qǐng)技術(shù)專家、針對(duì)項(xiàng)目進(jìn)度風(fēng)險(xiǎn)可以采取延長項(xiàng)目時(shí)間或縮減項(xiàng)目范圍的辦法。減輕策略:當(dāng)風(fēng)險(xiǎn)很難避免或轉(zhuǎn)移時(shí),可以考慮采取減輕策略來降低風(fēng)險(xiǎn)發(fā)生的概率或減輕風(fēng)險(xiǎn)帶來的損失。風(fēng)險(xiǎn)是一種不確定因素,可以通過前期的一些工作來降低風(fēng)險(xiǎn)發(fā)生的可能性;或者也可以通過一些準(zhǔn)備來降低風(fēng)險(xiǎn)發(fā)生的損失。例如對(duì)于需求風(fēng)險(xiǎn),如果認(rèn)為需求變化可能很劇烈,那么可以考慮采用柔性設(shè)計(jì)的方法降低需求變更的代價(jià)。尤其對(duì)于IT項(xiàng)目而言,越早發(fā)現(xiàn)問題越容易解決,例如對(duì)于需求風(fēng)險(xiǎn)帶來的問題,在設(shè)計(jì)階段發(fā)現(xiàn)要好過編碼階段發(fā)現(xiàn)。針對(duì)這些特點(diǎn),也可以采用盡早暴露風(fēng)險(xiǎn)的方法降低發(fā)生風(fēng)險(xiǎn)的損失。(2)制定風(fēng)險(xiǎn)相應(yīng)策略注意,雖然我們采用了很多方法防范風(fēng)險(xiǎn)的發(fā)生,但風(fēng)險(xiǎn)本身就是一種不確定因素,不可能在項(xiàng)目中完全消除。我們還需要制定一些風(fēng)險(xiǎn)發(fā)生后的應(yīng)急措施來解決風(fēng)險(xiǎn)帶來的問題。例如:對(duì)于系統(tǒng)性能的風(fēng)險(xiǎn),由于不清楚目前的系統(tǒng)是否能夠滿足用戶的需求,可能在系統(tǒng)發(fā)布后出現(xiàn)系統(tǒng)性能不足的問題。對(duì)于這個(gè)風(fēng)險(xiǎn),我們可以定義其風(fēng)險(xiǎn)響應(yīng)策略為增加硬件資源以提高系統(tǒng)性能。風(fēng)險(xiǎn)響應(yīng)策略與風(fēng)險(xiǎn)防范策略不同,無論風(fēng)險(xiǎn)是否發(fā)生,風(fēng)險(xiǎn)防范策略都需要體現(xiàn)在項(xiàng)目技術(shù)中,在項(xiàng)目過程中需求有人來執(zhí)行對(duì)應(yīng)的方法策略;而風(fēng)險(xiǎn)響應(yīng)策略是在事件觸發(fā)的,直到當(dāng)風(fēng)險(xiǎn)發(fā)生后才會(huì)被執(zhí)行,如果始終沒有發(fā)生風(fēng)險(xiǎn),則始終不會(huì)被安排到項(xiàng)目活動(dòng)中。7.3.3風(fēng)險(xiǎn)曝光度風(fēng)險(xiǎn)曝光度(riskexposure)=風(fēng)險(xiǎn)損失*風(fēng)險(xiǎn)概率例如:正在開發(fā)的軟件項(xiàng)目可能存在一個(gè)未將發(fā)現(xiàn)的錯(cuò)誤,這個(gè)錯(cuò)誤出現(xiàn)的概率是0.5%,給公司造成的損失將是100萬元,那么這個(gè)錯(cuò)誤的風(fēng)險(xiǎn)曝光度是5000元。八.模塊化基本知識(shí)模塊是指執(zhí)行某一特定任務(wù)的數(shù)據(jù)和可執(zhí)行語句程序元素的集合,通常是指可通過名字來訪問的過程、函數(shù)、子程序或宏調(diào)用等。模塊化就是將一個(gè)待開發(fā)的軟件劃分成若干個(gè)可完成某一子功能的模塊,每個(gè)模塊可獨(dú)立地開發(fā)、測試,最后組裝成完整的程序。8.1模塊特性8.1.1可分解性如果一種設(shè)計(jì)方法提供了將問題分解成子問題的系統(tǒng)化機(jī)制,它就能降低整個(gè)系統(tǒng)的復(fù)雜性,從而實(shí)現(xiàn)一種有效的模塊化解決方案。8.1.2可組裝性如果一種設(shè)計(jì)方法使現(xiàn)存的(可復(fù)用的)設(shè)計(jì)構(gòu)件能被組裝成新系統(tǒng),它就能提供一種不需要一切從頭開始的模塊化解決方案。8.1.3可理解性如果一個(gè)模塊可以作為一個(gè)獨(dú)立的單位(不用參考其他模塊)被理解,那么它就易于構(gòu)造和修改。8.1.4連續(xù)性如果對(duì)系統(tǒng)需求的微小修改只導(dǎo)致對(duì)單個(gè)模塊,而不是整個(gè)系統(tǒng)的修改,則修改引起副作用就會(huì)被最小化。8.1.5保護(hù)性如果模塊內(nèi)部出現(xiàn)異常情況,并且它的影響限制在模塊內(nèi)部,不會(huì)影響其他模塊,則錯(cuò)誤引起的副作用就會(huì)被最小化。注意“連續(xù)性”和“保護(hù)性”的區(qū)別??!8.2模塊與模塊的耦合性(7種)耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合可以分成下列幾種,它們之間的耦合度由高到低排列。8.2.1內(nèi)容耦合直接操作或修改另一模塊的數(shù)據(jù),或不通過正常入口轉(zhuǎn)入另一個(gè)模塊。軟件設(shè)計(jì)時(shí)應(yīng)堅(jiān)決禁止內(nèi)容耦合,應(yīng)設(shè)計(jì)成單入口、單出口的模塊,避免病態(tài)連接。8.2.2公共耦合多個(gè)模塊引用同一全局?jǐn)?shù)據(jù)區(qū)。例如,C語言中的external數(shù)據(jù)類型、磁盤文件等都是全局?jǐn)?shù)據(jù)區(qū)。8.2.3外部耦合模塊與軟件以外的環(huán)境有關(guān)聯(lián)。例如,輸入輸出把一個(gè)模塊與特定的設(shè)備、格式、通信協(xié)議耦合在一起。8.2.4控制耦合一模塊明顯把開關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能。8.2.5標(biāo)記耦合兩個(gè)模塊之間通過傳遞公共指針或地址相互作用的耦合。8.2.6數(shù)據(jù)耦合模塊間通過傳遞數(shù)據(jù)交換信息。8.2.7非直接耦合(無耦合)模塊間無任何關(guān)系,獨(dú)立工作 原則上講,模塊化設(shè)計(jì)總是希望模塊之間的耦合表現(xiàn)為非直接耦合方式。在以上耦合中,耦合度從高到低,內(nèi)容耦合度最高,非直接耦合度最低。總結(jié):內(nèi)公不好,家外被控了,標(biāo)志數(shù)年心血白非了?。▋?nèi)功不好,家外被控了,標(biāo)志數(shù)年心血白費(fèi)了?。?.3模塊的內(nèi)聚性內(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è)模塊的各成分之間毫無關(guān)系。比如:一組語句在程序的多處出現(xiàn),為了節(jié)省內(nèi)存空間,這些語句放在一個(gè)模塊中,該模塊的內(nèi)聚是偶然內(nèi)聚的。 2)邏輯內(nèi)聚:把幾種邏輯上相關(guān)的功能組放在同一模塊中。 3)瞬時(shí)內(nèi)聚(時(shí)間內(nèi)聚):一個(gè)模塊所包含的任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行,例如初始化模塊。 4)過程內(nèi)聚:一個(gè)模塊的處理元素是相關(guān)的,而且必須按特定的次序執(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)聚、低耦合的原則稱為模塊獨(dú)立原則,也稱為模塊設(shè)計(jì)的原則。巧記:偶然邏輯混亂,瞬間遺忘過程,打電話(通信)詢問,順序清楚,功能也搞定!8.4模塊的深度、寬度、扇出與扇入深度:表示軟件結(jié)構(gòu)中控制的層數(shù)。寬度是軟件結(jié)構(gòu)中同一個(gè)層次上的模塊總數(shù)的最大值一個(gè)模塊的扇入是指直接調(diào)用該模塊的上級(jí)模塊的個(gè)數(shù)。設(shè)計(jì)原則:低扇出、高扇入。8.5模塊作用域和控制域軟件設(shè)計(jì)時(shí),模塊的作用域應(yīng)在控制域之內(nèi)。8.6模塊化基礎(chǔ)知識(shí)小結(jié)通過模塊的合并和分解,降低模塊的耦合度。模塊的扇入應(yīng)盡量大,扇出應(yīng)盡量小。一個(gè)模塊的扇入是指直接調(diào)用該模塊的上級(jí)模塊的個(gè)數(shù)。一個(gè)模塊的扇出是指該模塊直接調(diào)用的下級(jí)模塊的個(gè)數(shù)。扇入大表示模塊的重用性高,利用率高。扇出大表示模塊的復(fù)雜度高。所以要高扇入,低扇出。要將模塊的作用范圍限制在模塊的控制范圍之內(nèi)。降低模塊之間的復(fù)雜性,避免“病態(tài)連接”。2006年上半年:●模塊的耦合度描述了(16)。

(16)A.模塊內(nèi)各種元素結(jié)合的程度B.模塊內(nèi)多個(gè)功能之間的接口

C.模塊之間公共數(shù)據(jù)的數(shù)量D.模塊之間相互關(guān)聯(lián)的程度●內(nèi)聚是一種指標(biāo),表示一個(gè)模塊(17)。

(17)A.代碼優(yōu)化的程度B.代碼功能的集中程度C.完成任務(wù)時(shí)及時(shí)程度D.為了與其他模塊連接所要完成的工作量九.什么是軟件開發(fā)方法?有哪些主要方法?軟件開發(fā)方法:使用已定義好的技術(shù)集及符號(hào)表示習(xí)慣組織軟件生產(chǎn)的過程。結(jié)構(gòu)化方法、面向?qū)ο蠓椒āACKSON方法、維也納開發(fā)方法(VDM)等。9.1結(jié)構(gòu)化方法學(xué)結(jié)構(gòu)化方法學(xué)也稱為生命周期方法學(xué)(瀑布模型方法),是一種面向數(shù)據(jù)流的需求分析方法。它的基本思想是自頂向下逐層分解。為了在需求改變時(shí)對(duì)軟件的影響較小,結(jié)構(gòu)化分析時(shí)應(yīng)該使程序結(jié)構(gòu)與問題結(jié)構(gòu)相對(duì)應(yīng)。 常用工具:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、實(shí)例—關(guān)系圖(E-R圖)及描述加工處理的結(jié)構(gòu)化語言、判定表、判定樹。9.1.1數(shù)據(jù)流圖(DFD圖)DFD的基本成分?jǐn)?shù)據(jù)流圖主要由4種成分組成,如下表所示:數(shù)據(jù)流(dataflow):由一組固定成分的數(shù)據(jù)組成,表示數(shù)據(jù)的流向。它可以從源、文件流向加工,也可以從加工流向文件和宿,還可以從一個(gè)加工流向另一個(gè)加工。通常每個(gè)數(shù)據(jù)流必須有一個(gè)合適的名字,一方面是為了區(qū)別,另一方面也給人一個(gè)直觀的印象,使人容易理解這個(gè)數(shù)據(jù)流的含義。但流向文件或從文件流出的數(shù)據(jù)流不必命名,因?yàn)檫@種數(shù)據(jù)流的組成部分就是相應(yīng)文件的組成部分。加工(process):描述了輸入數(shù)據(jù)流到輸出數(shù)據(jù)流之間的變換,也就是輸入數(shù)據(jù)流做了什么處理后變成了輸出數(shù)據(jù)流。每個(gè)加工有一個(gè)名字和一個(gè)編號(hào)。編號(hào)反映了該加工位于分層DFD的哪個(gè)層次和哪張圖中以及它是哪個(gè)加工分解出來的子加工。文件(file):可以表示數(shù)據(jù)文件,也可以表示一個(gè)數(shù)據(jù)記錄。流向文件的數(shù)據(jù)流表示寫文件,流出文件的數(shù)據(jù)流表示讀文件,雙向箭頭表示對(duì)文件既讀又寫。每個(gè)文件都有一個(gè)文件名。源/宿(source/sink):源是指系統(tǒng)所需數(shù)據(jù)的發(fā)源地,宿(也稱數(shù)據(jù)池)是指系統(tǒng)所產(chǎn)生的數(shù)據(jù)的歸宿地。無論源或宿,均對(duì)應(yīng)于外部實(shí)體,在框內(nèi)應(yīng)加注實(shí)體的名字,在一個(gè)軟件各級(jí)軟件系統(tǒng)中,有些源和宿可以是一個(gè)外部實(shí)體,外部實(shí)體是指存在于軟件系統(tǒng)之外的人員或組織,它指出系統(tǒng)所需數(shù)據(jù)的發(fā)源地和系統(tǒng)所產(chǎn)生數(shù)據(jù)的歸宿地。分層數(shù)據(jù)流圖一套分層的的數(shù)據(jù)流圖由頂層、底層、和中間層組成。畫分層數(shù)據(jù)流圖基本原則與注意事項(xiàng)a.自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。b.保持父圖與子圖的平衡。也就是說,父圖中某加工的輸入數(shù)據(jù)流中的數(shù)據(jù)必須與它的子圖的輸入數(shù)據(jù)流在數(shù)量和意義上相同。c.保持?jǐn)?shù)據(jù)守恒。也就是說,一個(gè)加工所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者是通過該加工能產(chǎn)生的數(shù)據(jù)。c.加工細(xì)節(jié)隱藏。根據(jù)抽象原則,在畫父圖時(shí),只需畫出加工和加工之間的關(guān)系,而不必畫出各個(gè)加工內(nèi)部的細(xì)節(jié)。d.簡化加工間關(guān)系。在數(shù)據(jù)流圖中,加工間的數(shù)據(jù)流越少,各加工就越相對(duì)獨(dú)立,所以應(yīng)盡量減少加工間輸入輸出數(shù)據(jù)流的數(shù)目。e.均勻分解。應(yīng)該使一個(gè)數(shù)據(jù)流中的各個(gè)加工分解層次大致相同。f.適當(dāng)?shù)貫閿?shù)據(jù)流、加工、文件、源/宿命名,名字應(yīng)反映該成分的實(shí)際意義,避免空洞的名字。g.忽略枝節(jié)。應(yīng)集中精力于主要的數(shù)據(jù)流,而暫不考慮一些例外情況、出錯(cuò)處理等枝節(jié)性問題。h.表現(xiàn)的是數(shù)據(jù)流而不是控制流。i.每個(gè)加工必須既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流.在整套數(shù)據(jù)流圖中,每個(gè)文件必須既有讀文件的數(shù)據(jù)流又有寫文件的數(shù)據(jù)流,但在某一張子圖中可能只有讀沒有寫或者只有寫沒有讀。小結(jié):一個(gè)軟件系統(tǒng),其數(shù)據(jù)流圖往往有多層。如果父圖有N個(gè)加工(Process),則父圖允許有0~N張子圖,但是每張子圖只能對(duì)應(yīng)一張父圖。在一張DFD圖中,任意兩個(gè)加工之間可以有0條或多條名字互不相同的數(shù)據(jù)流;在畫數(shù)據(jù)流圖時(shí),應(yīng)該注意父圖和子圖的平衡,即父圖中某加工的輸入輸出數(shù)據(jù)流必須與其輸入輸出流在數(shù)量和名字上相同。DFD信息流大致可分為兩類:交換流和事務(wù)流。2006年上半年:●在繪制數(shù)據(jù)流圖時(shí),要遵循的一個(gè)原則是父圖與子圖的平衡,所謂平衡是指___(31)___。

(31)A.父圖和子圖都不得改變數(shù)據(jù)流的性質(zhì)B.子圖不改變父圖數(shù)據(jù)流的—致性

C.父圖的輸入/輸出數(shù)據(jù)流與子圖的輸入/輸出數(shù)據(jù)流一致

D.子圖的輸出數(shù)據(jù)流完全由父圖的輸入數(shù)據(jù)流確定9.1.2數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。組成部分:a.數(shù)據(jù)項(xiàng)條目b.數(shù)據(jù)流條目c.文件條目d.加工條目加工條目是對(duì)數(shù)據(jù)流圖中每一個(gè)不能再分解的基本加工的精確說明。對(duì)于加工的描述是數(shù)據(jù)字典的組成內(nèi)容之一,常用的加工描述方法有結(jié)構(gòu)化語言、判定樹和判定表。9.1.3結(jié)構(gòu)化語言結(jié)構(gòu)化語言實(shí)際上是一種半形式化語言,它的結(jié)構(gòu)通??煞譃閮?nèi)外兩層。外層接近于形式化語言,而內(nèi)層近似于自然語言的描述。9.1.4實(shí)體-關(guān)系圖(E-R圖)實(shí)體-關(guān)系圖(Entity-RelabionshipDiagram),簡稱E-R圖,包含實(shí)體、關(guān)系和屬性等3種基本成分。通常用矩形框代表實(shí)體,并用直線把實(shí)體(或關(guān)系)與其屬性連接起來。E-R圖通常用于數(shù)據(jù)庫應(yīng)用系統(tǒng)。9.2結(jié)構(gòu)化設(shè)計(jì) 結(jié)構(gòu)化設(shè)計(jì)通常可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),但是主要用于概要設(shè)計(jì)階段。概要設(shè)計(jì)的任務(wù)是確定軟件系統(tǒng)的結(jié)構(gòu),進(jìn)行模塊劃分,確定每個(gè)模塊的功能、接口以及模塊間的調(diào)用關(guān)系。詳細(xì)設(shè)計(jì)的任務(wù)是為每個(gè)模塊設(shè)計(jì)實(shí)現(xiàn)的細(xì)節(jié)。9.2.1概要設(shè)計(jì) 經(jīng)過需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,概要設(shè)計(jì)的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如實(shí)現(xiàn)?”這個(gè)問題。概要設(shè)計(jì)的重要任務(wù):將一個(gè)復(fù)雜的系統(tǒng)按功能化分為模塊、確定每個(gè)模塊的功能、確定模塊之間的調(diào)用關(guān)系、確定模塊之間的接口(模塊之間傳遞的信息)、評(píng)價(jià)模塊的結(jié)構(gòu)質(zhì)量。1.軟件結(jié)構(gòu)圖形工具 結(jié)構(gòu)化設(shè)計(jì)方法(SD)方法采用結(jié)構(gòu)圖(StructureChart)、層次圖和HIPO圖描述軟件結(jié)構(gòu)。 結(jié)構(gòu)圖的主要成分有模塊、調(diào)用和數(shù)據(jù),結(jié)構(gòu)圖中的模塊用矩形表示,在矩形框內(nèi)可標(biāo)上模塊的名字。模塊間如有箭頭或直線相連,表明它們之間有調(diào)用關(guān)系。層次圖用來描繪軟件的層次結(jié)構(gòu).層次圖中一個(gè)矩形框代表一個(gè)模塊,方框間的連線表示模塊間的調(diào)用關(guān)系.HIPO圖實(shí)際上就是層次圖加輸入/處理/輸出圖.HIPO圖是美國IBM公司發(fā)明的“層次圖加輸入/處理/輸出圖”,是在層次圖里出了最頂層的方框之外,每個(gè)方框都加了編號(hào)。編號(hào)規(guī)則和數(shù)據(jù)流圖的編號(hào)規(guī)則一樣。2.概要設(shè)計(jì)中的信息流變換流:信息沿著輸入通道進(jìn)入系統(tǒng),然后通過變換中心(也稱主加工)處理,再沿著輸出通道離開系統(tǒng).具有這一特性的信息流稱為變換流.具有變換流型的數(shù)據(jù)流圖可明顯地分成輸入、變換(主加工)、輸出三大部分。事務(wù)流:信息流沿著輸入通道到達(dá)一個(gè)事務(wù)中心,事務(wù)中心根據(jù)輸入信息(即事務(wù))的類型在若干個(gè)動(dòng)作序列(稱為活動(dòng)流)中選擇一個(gè)來執(zhí)行,這種信息流稱為事務(wù)流。事務(wù)流有明顯的事務(wù)中心,各活動(dòng)以事務(wù)中心為起點(diǎn)呈輻射狀流出。9.2.2詳細(xì)設(shè)計(jì)概要設(shè)計(jì)已經(jīng)確定了每個(gè)模塊的功能和接口,詳細(xì)設(shè)計(jì)的任務(wù)就是為每個(gè)模塊設(shè)計(jì)其實(shí)現(xiàn)的細(xì)節(jié)。詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),得出對(duì)目標(biāo)系統(tǒng)的精確描述。1.詳細(xì)設(shè)計(jì)階段的內(nèi)容為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。為模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對(duì)數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì)。其他詳細(xì)設(shè)計(jì)工具主要包括程序流程圖(系統(tǒng)流程圖)、盒圖(N-S圖)、PAD圖和偽碼(PDL)。2.人機(jī)界面設(shè)計(jì)人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià)。界面的美觀、靈活和風(fēng)格都很重要,但人機(jī)界面設(shè)計(jì)中最重要的也是最基本的目標(biāo)是軟件的易操作性。人機(jī)界面設(shè)計(jì)主要包括系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)計(jì)、出錯(cuò)信息處理和命令交互設(shè)計(jì)等幾個(gè)方面。9.3Jackson方法上面講的結(jié)構(gòu)化設(shè)計(jì)方法是面向數(shù)據(jù)流的,另外還有一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,Jackson方法是最著名的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,而不是面向數(shù)據(jù)流的設(shè)計(jì)方法。Jackson方法的基本步驟是:建立系統(tǒng)的數(shù)據(jù)結(jié)構(gòu);以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),對(duì)應(yīng)地建立程序結(jié)構(gòu);列出程序中要用到的各種基本操作,再將這些操作分配到程序結(jié)構(gòu)適當(dāng)?shù)哪K中。9.4面向?qū)ο蠓治龇椒ǎ?0A)OTM方法的三個(gè)模型,分別從三個(gè)不同側(cè)面描述了所要開發(fā)的系統(tǒng):功能模型指明了系統(tǒng)應(yīng)該“做什么”;動(dòng)態(tài)模型明確了什么時(shí)候做;對(duì)象模型則定義了做事情的實(shí)體。對(duì)象模型描述了系統(tǒng)中對(duì)象的靜態(tài)結(jié)構(gòu)及對(duì)象間的聯(lián)系,用對(duì)象模型圖來表示。動(dòng)態(tài)模型描述了與時(shí)間和操作次序有關(guān)的系統(tǒng)屬性。動(dòng)態(tài)模型由多張狀態(tài)圖組成。各個(gè)類的狀態(tài)圖通過共享事件組成系統(tǒng)的動(dòng)態(tài)模型。功能模型描述系統(tǒng)內(nèi)數(shù)據(jù)值的變化,它由數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部輸入、經(jīng)過操作和內(nèi)部存儲(chǔ)而得到輸出的。十.軟件工具軟件工具是指用于輔助軟件開發(fā)、運(yùn)行、維護(hù)、管理、支持等過程中的活動(dòng)的軟件。通常也稱為CASE(ComputerAidedSoftwareEngineering,計(jì)算機(jī)輔助軟件工程)工具。按軟件過程的活動(dòng)分為軟件開發(fā)工具、軟件維護(hù)工具和軟件管理工具等。十一.軟件開發(fā)環(huán)境集成型開發(fā)環(huán)境通??捎晒ぞ呒铜h(huán)境集成機(jī)制兩部分組成。這種環(huán)境應(yīng)具有開放性和可裁減性。環(huán)境集成機(jī)制主要有數(shù)據(jù)集成機(jī)制、控制集成機(jī)制和界面集成機(jī)制。十二.軟件質(zhì)量管理基礎(chǔ)知識(shí)12.1軟件質(zhì)量ISO/IEC9126軟件質(zhì)量模型可從軟件功能性、可靠性、可用性、效率、可維護(hù)性、可移植性6個(gè)方面來衡量。(1).功能性與功能及其指定的性質(zhì)的一組軟件屬性。(2)可靠性 軟件在規(guī)定的一段時(shí)間內(nèi)和規(guī)定的條件下保持其性能水平有關(guān)的一組軟件屬性。也可以稱為在規(guī)定的條件下和規(guī)定的時(shí)間間隔內(nèi),軟件實(shí)現(xiàn)其規(guī)定功能的概率。(3)可用性 與使用的難易程度及規(guī)定或隱含用戶對(duì)使用方式所做的評(píng)價(jià)有關(guān)的軟件屬性。 (4)效率 與在規(guī)定條件的性能水平與所用資源量之間的關(guān)系有關(guān)的一組軟件屬性。(5)可維護(hù)性 與軟件維護(hù)的難易程序有關(guān)的一組軟件屬性。(6)可移植性 軟件可從某一環(huán)境轉(zhuǎn)移到另一環(huán)境的能力有關(guān)的一組屬性。即軟件從一個(gè)計(jì)算機(jī)系統(tǒng)轉(zhuǎn)換到另一個(gè)計(jì)算機(jī)系統(tǒng)運(yùn)行的難易程度是指軟件的可移植性。為了提高可移植性,應(yīng)注意提高軟件的設(shè)備獨(dú)立性。采用表格驅(qū)動(dòng)程序有助于提高設(shè)備獨(dú)立性。為了提高可移植性,還應(yīng)有完備的文檔資料。使用C語言開發(fā)的系統(tǒng)軟件具有較好的可移植性。2006年下半年:●按照ISO/IEC9126軟件質(zhì)量度量模型定義,一個(gè)軟件可靠性的子特性包括(28):(28)A.容錯(cuò)性和安全性B.容錯(cuò)性和適應(yīng)性C.容錯(cuò)性和易恢復(fù)性D.易恢復(fù)性和安全性●某軟件在運(yùn)行初期運(yùn)行在WindowsNT環(huán)境中,現(xiàn)因某種原因,該軟件需要在UNIX環(huán)境中運(yùn)行,而且必須完成同樣的功能。為適應(yīng)這個(gè)要求,軟件本身需要進(jìn)行修改,而所需的工作量取決于該軟件的(27)(27)A.可擴(kuò)充性B.可靠性C.復(fù)用性D.可移植性2005年5月:●下列敘述中,與提高軟件可移植性相關(guān)的是(18)A.選擇時(shí)間效率高的算B.盡可能減少注釋C.選擇空間效率高的算法D.盡量用高級(jí)語言編寫系統(tǒng)中對(duì)效率要求不高的部分12.2軟件質(zhì)量保證軟件質(zhì)量保證的主要困難表現(xiàn)在以下幾個(gè)方面:1)軟件開發(fā)的管理人員往往關(guān)心項(xiàng)目開發(fā)的成本與進(jìn)度。因?yàn)槌杀竞瓦M(jìn)度是顯而易見的,而軟件質(zhì)量則難以度量。如果軟件開發(fā)的管理人員對(duì)交付的軟件含有多少隱患并不必負(fù)什么責(zé)任,他們必定沒有太高的熱情去控制開發(fā)的質(zhì)量,更不必說保證質(zhì)量并不容易且代價(jià)昂貴。開發(fā)人員的習(xí)慣一旦形成難以改變,他們的形為也難于控制,而高質(zhì)量的軟件產(chǎn)品,又主要取決于參與開發(fā)的人員。復(fù)雜的軟件項(xiàng)目需要許多技術(shù)人員和管理人員參與,對(duì)問題的不同認(rèn)識(shí)和誤解如不能及時(shí)消除必然影響軟件質(zhì)量。軟件開發(fā)人員的頻繁流動(dòng),特別是骨干開發(fā)人員的流失,也會(huì)使軟件質(zhì)量受到一定的影響。軟件質(zhì)量的保證手段:開發(fā)初期制定質(zhì)量保證計(jì)劃,并在開發(fā)中堅(jiān)持實(shí)行。開發(fā)前選定或制定開發(fā)標(biāo)準(zhǔn)或開發(fā)規(guī)范,并遵照實(shí)施。從開始就選擇分析設(shè)計(jì)方法和工具,形成高質(zhì)量的分析模型和設(shè)計(jì)模型。嚴(yán)格執(zhí)行階段評(píng)審,以便及時(shí)發(fā)現(xiàn)問題。各個(gè)開發(fā)階段的測試。對(duì)軟件的每次“變動(dòng)”都要經(jīng)過申請(qǐng)、評(píng)估、批準(zhǔn)、實(shí)施等步驟。軟件質(zhì)量特性的度量化。軟件生存期的各階段都要完整的文檔。12.3代碼評(píng)審技術(shù)常用方法有代碼走查和代碼審查技術(shù)。代碼走查程序員和測試員組成審查小組,通過邏輯運(yùn)行程序。第一步:小組成員提前閱讀設(shè)計(jì)規(guī)格書、程序文本等相關(guān)文檔;第二步:利用測試用例,使程序邏輯運(yùn)行,記錄程序的蹤跡,發(fā)現(xiàn)、討論、解決問題代碼審查程序員和測試員組成審查小組。第一步:小組成員提前閱讀設(shè)計(jì)規(guī)格書、程序文本等相關(guān)文檔;第二步:召開程序?qū)彶闀?huì),開發(fā)人員讀程序,審查小組討論、發(fā)現(xiàn)、解決問題。兩者的區(qū)別代碼審查是一種正式的評(píng)審活動(dòng),而代碼走查的討論過程是非正式的。十三.成本-效益分析可用哪些指標(biāo)進(jìn)行度量?投資回收率:通常把建立系統(tǒng)若干年后所取得的收益折算成現(xiàn)在的價(jià)值和開發(fā)系統(tǒng)所需的費(fèi)用進(jìn)行比較得出投資回收率。投資回收期:就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需的時(shí)間。純收入:整個(gè)軟件生命周期之內(nèi)的累計(jì)經(jīng)濟(jì)效益(折成現(xiàn)在值)與投資之差。十四.第四代語言(4GL)的主要特征?友好的用戶界面兼有過程性和非過程性兩種特性高效的程序代碼完備的數(shù)據(jù)庫應(yīng)用程序生成器十五.軟件測試軟件測試的費(fèi)用已經(jīng)超過軟件開發(fā)費(fèi)用的30%左右。“高產(chǎn)”測試是指用少量的測試用例,發(fā)現(xiàn)被測試程序盡可能多的錯(cuò)誤。15.1軟件測試經(jīng)過的步驟單元測試->集成測試->確認(rèn)測試->系統(tǒng)測試15.2測試與軟件開發(fā)各階段的關(guān)系單元測試對(duì)程序中每一個(gè)程序單元進(jìn)行測試,檢查各個(gè)模塊是否都實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤,該階段涉及編碼和詳細(xì)設(shè)計(jì)文檔。集成測試是為了檢查與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計(jì)是否合理有效。確認(rèn)測試主要是檢查已實(shí)現(xiàn)的軟件是否滿足需求規(guī)格說明書中已確定了的各種需求。系統(tǒng)測試是把已確認(rèn)的軟件與其他系統(tǒng)元素(如硬件,其他支持軟件、數(shù)據(jù)、人工等)結(jié)合在一起進(jìn)行測試,以確定軟件是否可以支付使用。15.3白盒測試白盒測試又稱為結(jié)構(gòu)測試。可以把程序看成裝在一個(gè)透明盒子里,測試者(一般為編程者)完全知道程序的結(jié)構(gòu)和處理算法。按照程序內(nèi)部邏輯設(shè)計(jì)測試用例,檢測程序中的主要執(zhí)行通路是否能按預(yù)定要求正常工作。白盒測試多用于單元測試階段。邏輯覆蓋是主要的白盒測試技術(shù)。白盒測試時(shí),確定測試數(shù)據(jù)應(yīng)根據(jù)程序的內(nèi)部邏輯和指定的覆蓋方式。采用以下幾種邏輯覆蓋標(biāo)準(zhǔn):語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋滿足條件組合覆蓋測試用例,也一定滿足判定條件覆蓋。因此,條件組合覆蓋是上述五種覆蓋標(biāo)準(zhǔn)中最強(qiáng)的一種。2006年下半年:給定C語句程序intfoo(intx,inty,intd){if(x!=0){if(y==0)d=d/x;elsed=d/(x*y);}else{if(y==0)d=0;elsed=d/y;}returnd;}當(dāng)用路徑覆蓋法測試時(shí),至少需要設(shè)計(jì)(31)個(gè)測試用例。(31)A.3B.4C.5D.82007年下半年:●對(duì)于如下的程序流程,當(dāng)采用語句覆蓋法設(shè)計(jì)測試案例時(shí),至少需要設(shè)計(jì)(34)個(gè)測試案例。(34)A.1 B.2 C.3 D.415.4黑盒測試黑盒測試,又稱為功能測試。把軟件看做是一個(gè)不透明的黑盒子,完全不考慮(或不了解)軟件內(nèi)部結(jié)構(gòu)和處理算法,它只檢測軟件功能是否能按照軟件需求說明書的要求正常使用,軟件是否能適當(dāng)?shù)慕邮茌斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,軟件運(yùn)行過程中能否保持外部信息(例如文件和數(shù)據(jù)庫)的完整性等。常用的黑盒測試技術(shù)包括等價(jià)類劃分,邊值分析、錯(cuò)誤推測和因果圖等。其中等價(jià)類劃分和邊界值分析法方法最常用。如果兩者結(jié)合使用,更有可能發(fā)現(xiàn)軟件中的錯(cuò)誤。15.4灰盒測試灰盒測試介于白盒測試和黑盒測試之間,它把軟件看做是一個(gè)半透明的灰盒子,結(jié)合考慮軟件的內(nèi)部結(jié)構(gòu)和外部功能設(shè)計(jì)測試用例15.5回歸測試糾正了程序中的錯(cuò)誤之后,選擇部分或全部原先已測試過的測試用例,對(duì)修改后程序重新測試以驗(yàn)證對(duì)軟件修改后有沒有引出新的錯(cuò)誤,稱為回歸測試。15.6單元測試單元測試(Unittesting)也稱為模塊測試或結(jié)構(gòu)測試,通常可放在編程階段(實(shí)現(xiàn)階段),主要采用邏輯覆蓋技術(shù),由程序員對(duì)自己編寫的模塊自行測試,檢查模塊是否能實(shí)現(xiàn)了詳細(xì)設(shè)計(jì)說明書中規(guī)定的功能和算法。單元測試主要發(fā)現(xiàn)編程和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤。測試一個(gè)模塊時(shí)需要為該模塊編寫一個(gè)驅(qū)動(dòng)模塊和若干個(gè)樁(stub)模塊。頂層模塊測試時(shí)不需要驅(qū)動(dòng)模塊,底層模塊測試時(shí)不需要樁模塊。在進(jìn)行單元測試時(shí),常用的方法是白盒測試(采用邏輯覆蓋的測試技術(shù)),輔之以黑盒測試。15.7集成測試集成測試(integrationtesting)也稱為組裝測試,在單元測試的基礎(chǔ)之上,把所有的模塊組裝成一個(gè)系統(tǒng)進(jìn)行測試。主要測試設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,集成測試計(jì)劃應(yīng)該在概要設(shè)計(jì)階段制定。非漸增式集成測試首先將每個(gè)模塊分別進(jìn)行單元測試,再把所有的模塊組裝成一個(gè)完整的系統(tǒng)進(jìn)行測試。目前在進(jìn)行集成測試時(shí)已普遍采用漸增式集成。漸增式集成測試又可以分為自頂向下集成和自底向上集成。自頂向下集成先測試上層模塊,再測試下層模塊,由于測試下層模塊時(shí)上層模塊已經(jīng)測試過,所以不必要另外編寫驅(qū)動(dòng)模塊。自底向上集成,先測試下層模塊,再測試上層模塊同樣。頂層模塊測試時(shí)不需要驅(qū)動(dòng)模塊,底層模塊測試時(shí)不需要樁模塊。軟件的集成測試最好由不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員承擔(dān),以提高集成測試的效果。三明治測試從系統(tǒng)的三個(gè)角往中間包圍測試的方法。15.8確認(rèn)測試在系統(tǒng)驗(yàn)收測試中,驗(yàn)證測試是在模擬的環(huán)境中進(jìn)行強(qiáng)度測試的基礎(chǔ)上進(jìn)行,主要依據(jù)軟件需求說明書檢測軟件的功能,性能及其他特征是否與用戶的要求一致,而確認(rèn)測試是在一個(gè)實(shí)際環(huán)境中使用真實(shí)數(shù)據(jù)運(yùn)行系統(tǒng)。確認(rèn)測試計(jì)劃應(yīng)該在需求分析階段制定。α測試由用戶在開發(fā)者的場所進(jìn)行,并且在開發(fā)者的指導(dǎo)下進(jìn)行測試。開發(fā)者負(fù)責(zé)紀(jì)錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題,也就是說α測試是在受控的環(huán)境中進(jìn)行的。β測試是在一個(gè)或多個(gè)用戶的現(xiàn)場由該軟件的最終用戶實(shí)施的,開發(fā)者通常不在現(xiàn)場,用戶負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題并把這些問題報(bào)告給開發(fā)者。也就是說,β測試是在受控的環(huán)境中進(jìn)行的。經(jīng)過確認(rèn)測試之后的軟件通常就可以交付使用了。15.9系統(tǒng)測試系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方。包括以下的測試:恢復(fù)測試:監(jiān)測系統(tǒng)的容錯(cuò)能力安全性測試:監(jiān)測系統(tǒng)的安全機(jī)制、保密措施是否完善等防范能力。強(qiáng)度測試:測試軟件的異常情況的處理能力。性能測試:監(jiān)測系統(tǒng)系統(tǒng)是否滿足系統(tǒng)設(shè)計(jì)方案說明書對(duì)性能的要求。可靠性測試:從平均失效間隔是否超過了規(guī)定的時(shí)限,因故障而停機(jī)的時(shí)間在一年中不應(yīng)超過的時(shí)間來進(jìn)行檢測。安裝測試:監(jiān)測軟件在安裝過程中是否有錯(cuò)誤、是否容易操作等。注意:系統(tǒng)測試計(jì)劃在需求分析階段制定。2006年下半年:●軟件的測試通常分為單元測試、組裝測試、確認(rèn)測試、系統(tǒng)測試四個(gè)階段進(jìn)行。(32)屬于確認(rèn)測試階段的活動(dòng)。(32)A.設(shè)計(jì)評(píng)審B.代碼審查C.結(jié)構(gòu)測試D.可靠性測試十六.軟件工程標(biāo)準(zhǔn)和軟件文檔GB/T8566-2001,GB/T12504-1990,GB/T12505-1990是我國現(xiàn)階段最重要的三個(gè)軟件開發(fā)規(guī)范標(biāo)準(zhǔn)。國家標(biāo)準(zhǔn)局1988年1月批準(zhǔn)并發(fā)布的《GB/T8567-1988計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南》規(guī)定在一項(xiàng)軟件開發(fā)過程中應(yīng)該產(chǎn)生14中文件可行性研究報(bào)告項(xiàng)目開發(fā)計(jì)劃軟件需求說明書數(shù)據(jù)要求說明書概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書數(shù)據(jù)庫設(shè)計(jì)說明書用戶手冊(cè)操作手冊(cè)模塊開發(fā)卷宗測試計(jì)劃測試分析報(bào)告開發(fā)進(jìn)度月報(bào)項(xiàng)目開發(fā)總結(jié)報(bào)告軟件運(yùn)行和維護(hù)基礎(chǔ)知識(shí)管理人員主要使用:項(xiàng)目開發(fā)計(jì)劃、可行性研究報(bào)告、模塊開發(fā)卷宗、開發(fā)進(jìn)度月報(bào)、項(xiàng)目開發(fā)總結(jié)報(bào)告。開發(fā)人員:項(xiàng)目開發(fā)計(jì)劃、可行性研究報(bào)告、軟件需求說明書、數(shù)據(jù)要求說明書、數(shù)據(jù)庫設(shè)計(jì)說明書、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、測試計(jì)劃、測試分析報(bào)告。維護(hù)人員:概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、數(shù)據(jù)庫設(shè)計(jì)說明書、模塊開發(fā)卷宗、測試分析報(bào)告、維護(hù)報(bào)告。用戶:用戶手冊(cè)、操作手冊(cè)。2006年下半年:●(29)詳細(xì)描述軟件的功能、性能和用戶界面,以使用戶了解如何使用軟件。(29)A.概要設(shè)計(jì)說明書B.詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.用戶需求說明書十七.軟件維護(hù)用于軟件維護(hù)的花費(fèi)約為整個(gè)軟件生命周期花費(fèi)的75%(或60%~80%之間)而且還在逐年上升。17.1軟件維護(hù)類型根據(jù)引起軟件維護(hù)的原因,軟件維護(hù)可分為以下四種類型(1)改正性維護(hù):使用過程中發(fā)現(xiàn)了隱蔽的錯(cuò)誤后,為了診斷和改正這些隱蔽錯(cuò)誤而修改軟件的活動(dòng)(2)適應(yīng)性維護(hù):為了適應(yīng)環(huán)境的變化而修改軟件的活動(dòng)(3)完善性維護(hù):為了擴(kuò)充或完善原有軟件的功能或性能而修改軟件的活動(dòng)。(4)預(yù)防性維護(hù):預(yù)防性維護(hù)是指為了提高軟件的可維護(hù)性和可靠性,為未來的進(jìn)一步改進(jìn)打下基礎(chǔ)而修改軟件的活動(dòng)。2006年下半年:●各類軟件維護(hù)活動(dòng)中,(30)維護(hù)占整個(gè)維護(hù)工作的比重最大。(30)A.完善性B.改正性C.適應(yīng)性D.預(yù)防性17.2軟件的可維護(hù)性通常影響軟件可維護(hù)性的因素有可理解性,可測試性和可修改性。(1)可理解性可理解性是指維護(hù)人員理解軟件的結(jié)構(gòu),接口,功能和內(nèi)部過程的難易程度。采用良好的編程風(fēng)格有助于提高軟件的易理解性。(2)可測試性:可測試性是指測試和診斷軟件錯(cuò)誤的難易程度。(3)可修改性:可修改性是指修改軟件的難易程度。怎樣提高軟件的可維護(hù)性?在軟件生命周期的各個(gè)階段都必須充分考慮維護(hù)問題。結(jié)構(gòu)化設(shè)計(jì)的幾條主要原則,如模塊化,信息隱藏,高內(nèi)聚,低耦合等,對(duì)于提高軟件的可理解性,可測試性和可修改性也都有重要的作用。書寫詳細(xì)正確的文檔,書寫源文件的內(nèi)部注解,使用良好的編程語言,具有良好的程序設(shè)計(jì)風(fēng)格,也有助于提高軟件的可理解性。使用先進(jìn)的測試工具,保存以前的測試過程和測試用例,則有助于提高軟件的可測試性。十八.軟件的可靠性在給定的時(shí)間內(nèi),在給定的環(huán)境條件下系統(tǒng)完成所指定工作的概率。衡量的標(biāo)準(zhǔn)是:平均失效等待時(shí)間MTTF和平均失效間隔時(shí)間MTBF。軟件工程練習(xí)題1.軟件測試在軟件生命周期中橫跨兩個(gè)階段,單元測試(模塊測試)通常在__A__階段完成。單元測試主要采用__B__技術(shù),一般由__C__完成。測試一個(gè)模塊時(shí)需要為該模塊編寫一個(gè)驅(qū)動(dòng)模塊和若干個(gè)__D__。漸進(jìn)式集成測試是將單元測試和集成測試合并到一起,__E__集成測試中不必編寫驅(qū)動(dòng)模塊。A=1\*GB3①設(shè)計(jì)=2\*GB3②編程=3\*GB3③測試=4\*GB3④維護(hù)B=1\*GB3①邏輯覆蓋=2\*GB3②因果圖=3\*GB3③等價(jià)類劃分=4\*GB3④邊值分析C=1\*GB3①課題負(fù)責(zé)人=2\*GB3②編程者本人=3\*GB3③專業(yè)測試人員=4\*GB3④用戶D=1\*GB3①被測模塊=2\*GB3②上層模塊=3\*GB3③樁模塊=4\*GB3④等價(jià)模塊E=1\*GB3①自頂向下=2\*GB3②自底向上=3\*GB3③雙向的=4\*GB3④反向的2.版本控制包括版本管理、系統(tǒng)發(fā)行、版本標(biāo)志和發(fā)行管理。其中,__A__是指對(duì)系統(tǒng)不同版本進(jìn)行標(biāo)志和跟蹤的過程,__B__是指系統(tǒng)發(fā)行策略的制定和執(zhí)行。A~B=1\*GB3①版本管理=2\*GB3②系統(tǒng)發(fā)行=3\*GB3③版本標(biāo)志=4\*GB3④發(fā)行管理3.軟件質(zhì)量保證的主要困難在以下幾個(gè)方面:軟件開發(fā)管理人員更關(guān)心項(xiàng)目開發(fā)的1,而沒有太高的熱情去控制開發(fā)的2;開發(fā)人員的習(xí)慣一旦形成,難以改變,他們的行為往往3;不同開發(fā)人員對(duì)問題的不同認(rèn)識(shí)4;項(xiàng)目組中骨干開發(fā)人員的5等。1.A.成本和進(jìn)度B.規(guī)范化C.質(zhì)量 D.性能價(jià)格比2.A.費(fèi)用B.時(shí)間C.效率 D.質(zhì)量3.A.易于控制B.難于控制C.無需控制 D.應(yīng)該信任4.A.易于溝通B.難于及時(shí)消除C.應(yīng)該保留 D.可頻繁交流5.A.密切合作B.難于獨(dú)立C.頻繁流失 D.認(rèn)證資格4.用來輔助軟件維護(hù)過程中的活動(dòng)的軟件稱為軟件維護(hù)工具。其中,用來存儲(chǔ)、更新、恢復(fù)和管理軟件版本的工具為A工具,用來對(duì)軟件開發(fā)過程中形成的文檔進(jìn)行分析的工具稱為B工具,用來維護(hù)軟件項(xiàng)目開發(fā)信息的工具稱為C工具,用來輔助軟件人員進(jìn)行逆向工程活動(dòng)的工具稱為D工具,用來支持重構(gòu)一個(gè)功能和性能更為完善的軟件系統(tǒng)的工具稱為E工具。A~E:1.再工程工具2.軟件配置工具3.版本控制工具4.集成工具5.開發(fā)信息庫工具6.項(xiàng)目管理工具7.軟件評(píng)價(jià)工具8.逆向工程工具9.靜態(tài)分析工具10.文檔分析工具5.確定算法是解決問題的關(guān)鍵步驟之一。算法的計(jì)算工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少,分別稱為計(jì)算的_A_和_B_。編寫程序時(shí),_C_和_D_是應(yīng)采納的原則之一。_E_是調(diào)試程序的主要工作之一。

供選擇的答案B:①可實(shí)現(xiàn)性②時(shí)間復(fù)雜度③空間復(fù)雜度④困難度⑤高效性⑥計(jì)算有效性C:①程序的結(jié)構(gòu)化②程序越短越好③盡可能節(jié)省存儲(chǔ)單元④盡可能減少注解行D:①使用有實(shí)際意義的名字②使用長度短而無實(shí)際含義的名字③表達(dá)式中盡量少用括號(hào)④盡量使用化簡了的邏輯表達(dá)式E:①調(diào)度②證明程序正確③人員安排④排錯(cuò)6.軟件測試的目的是__(16)__,通??煞譃榘缀袦y試和黑盒測試。白盒測試是根據(jù)程序的__(17)__來設(shè)計(jì)測試用例,黑盒測試是根據(jù)軟件的規(guī)格說明來設(shè)計(jì)測試用例。常用的黑盒測試方法有邊值分析、等價(jià)類劃分、錯(cuò)誤猜測、因果圖等。其中,__(18)__經(jīng)常與其它方法結(jié)合起來使用。軟件測試的步驟主要有單元測試、集成測試和確認(rèn)測試。如果一個(gè)軟件作為產(chǎn)品被許多客戶使用的話,在確認(rèn)測試時(shí)通常要經(jīng)過α測試和β測試的過程。其中,α測試是__(19)__進(jìn)行的一種測試。在軟件設(shè)計(jì)和編碼時(shí),采取__(20)__等措施都有利于提高軟件的可測試性。(16):A.發(fā)現(xiàn)程序中的所有錯(cuò)誤

B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤

C.證明程序是正確的

D.證明程序做了應(yīng)做的事(17):A.功能

B.性能

C.內(nèi)部邏輯

D.內(nèi)部數(shù)據(jù)(18):A.邊值分析

B.等價(jià)類劃分

C.錯(cuò)誤猜測

D.因果圖(19):A.在開發(fā)者現(xiàn)場由開發(fā)方的非本項(xiàng)目開發(fā)人員

B.在開發(fā)者現(xiàn)場由用戶

C.在用戶現(xiàn)場由開發(fā)方的非本項(xiàng)目開人員D.在用戶現(xiàn)場由用戶使(20):A.不使用標(biāo)準(zhǔn)文本以外的語句,書寫詳細(xì)正確的文檔

B.不使用標(biāo)準(zhǔn)文本以外的語句,采用良好的程序結(jié)構(gòu)C.書寫詳細(xì)正確的文檔,信息隱蔽

D.書寫詳細(xì)正確的文檔,采用良好的程序結(jié)構(gòu)7.軟件是一種(2)的產(chǎn)品。為了軟件產(chǎn)業(yè)的健康發(fā)展,應(yīng)對(duì)軟件產(chǎn)品的(3)進(jìn)行保護(hù)。(2)A、易復(fù)制B、易損壞C、易開發(fā)D、易使用(3)A、技術(shù)B、版權(quán)C、開發(fā)D、使用說明8.白盒測試方法一般適合用于(21)測試。(21)A、單元B、系統(tǒng)C、集成D、確認(rèn)9.瀑布模型(WaterfallModel)突出的缺點(diǎn)是不適應(yīng)(22)的變動(dòng)。(22)A、算法B、平臺(tái)C、程序語言D、用戶需求10.在數(shù)據(jù)流圖中,表示(23),表示(24)。(23)A、加工B、外部實(shí)體C、數(shù)據(jù)流D、存儲(chǔ)(24)A、加工B、外部實(shí)體C、數(shù)據(jù)流D、存儲(chǔ)11.結(jié)構(gòu)化分析方法(SA)的一個(gè)重要指導(dǎo)思想是(25)。(25)A.自頂向下,逐步抽象B.自底向上,逐步抽象C.自頂向下,逐步分解D.自底向上,逐步分解12.軟件從一個(gè)計(jì)算機(jī)系統(tǒng)轉(zhuǎn)換到另一個(gè)計(jì)算機(jī)系統(tǒng)運(yùn)行的難易程度是指軟件(26)。在規(guī)定的條件下和規(guī)定的時(shí)間間隔內(nèi),軟件實(shí)現(xiàn)其規(guī)定功能的概率稱為(27)。(26)A、兼容性B、可移植性C、可轉(zhuǎn)換性D、可接近性(27)A、可使用性B、可接近性C、可靠性D、穩(wěn)定性13.Jackson設(shè)計(jì)方法是由英國的M.Jackson提出的,它是一種面向(28)的軟件設(shè)計(jì)方法。(28)A.對(duì)象B.?dāng)?shù)據(jù)流C.?dāng)?shù)據(jù)結(jié)構(gòu)D.控制結(jié)構(gòu)14.模塊的控制范圍包括它本身及它所有的從屬模塊,模塊的作用范圍是指模塊內(nèi)一個(gè)判定的作用范圍,凡是受到這個(gè)判定影響的所有模塊都屬于這個(gè)判定的作用范圍,理想的情況是__(27)__。(27)A.模塊的作用范圍應(yīng)在控制范圍之內(nèi)B.模塊的控制范圍應(yīng)在作用范圍之內(nèi)C.模塊的作用范圍與控制范圍交叉D.模塊的作用范圍與控制范圍分離15.關(guān)于模塊設(shè)計(jì)的原則,以下敘述中正確的是(28)(28)A.模塊的內(nèi)聚性高,模塊之間的耦合度高B.模塊的內(nèi)聚性高,模塊之間的耦合度低C.模塊的內(nèi)聚性低,模塊之間的耦合度高D.模塊的內(nèi)聚性低,模塊之間的耦合度低

16.軟件的用戶界面作為人機(jī)接口起著越來越重要的作用,用戶界面的___(29)___是用戶界面設(shè)計(jì)中最重要的也是最基本的目標(biāo)。(29)A.靈活性 B.風(fēng)格多樣性C.美觀性 D.易操作性

17.軟件測試的目的是__(30)__。在進(jìn)行單元測試時(shí),常用的方法是__(31)__·(30)A.證明軟件系統(tǒng)中存在錯(cuò)誤B.找出軟件系統(tǒng)中存在的所有錯(cuò)誤C.盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中的錯(cuò)誤和缺陷D.證明軟件的正確性(31)A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測D.只使用黑盒測試

18.原型化方法是一種動(dòng)態(tài)定義需求的方法,__(32)___不具有原型化方法的特征。(32)A.簡化項(xiàng)目管理 B.盡快建立初步需求C.加強(qiáng)用戶參與和決策 D.提供嚴(yán)格定義的文檔19.系統(tǒng)軟件是__(25)__的軟件.

(25)A.向應(yīng)用軟件提供系統(tǒng)調(diào)用等服務(wù)B.與具體硬件邏輯功能無關(guān)C.在應(yīng)用軟件基礎(chǔ)上開發(fā)D.并不具體提供人機(jī)界面20.軟件的復(fù)雜性與許多因素有關(guān)。__(32)__不屬于軟件的復(fù)雜性參數(shù)。(32)A.源程序的代碼行數(shù)B.程序的結(jié)構(gòu)C.算法的難易程度D.程序中注釋的多少21.在結(jié)構(gòu)化分析與設(shè)計(jì)方法中,為了在需求改變時(shí)對(duì)軟件的影響較小,應(yīng)該使__(33)__。

(33)A.程序結(jié)構(gòu)與問題結(jié)構(gòu)相對(duì)應(yīng)B.程序結(jié)構(gòu)與問題結(jié)構(gòu)相獨(dú)立C.程序結(jié)構(gòu)與用戶界面相對(duì)應(yīng)D.程序結(jié)構(gòu)與用戶界面相獨(dú)立22.系統(tǒng)的硬件環(huán)境、軟件環(huán)境和數(shù)據(jù)環(huán)境發(fā)生變化時(shí)需要對(duì)系統(tǒng)進(jìn)行維護(hù),這種維護(hù)屬于__(34)__。(34)A.校正性維護(hù)B.適應(yīng)性維護(hù)C.完善性維護(hù)D.預(yù)防性維護(hù)23.軟件開發(fā)環(huán)境是支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由_(49)_和環(huán)境集成機(jī)制構(gòu)成,環(huán)境集成機(jī)制包括數(shù)據(jù)集成、控制集成和界面集成。(49)A.軟件工具集B.軟件測試工具集C.軟件管理工具集D.軟件設(shè)計(jì)工具集

24.源程序清單是在軟件生存周期的_(50)_階段產(chǎn)生的文檔。(50)A.軟件概要設(shè)計(jì)B.編碼C.軟件詳細(xì)設(shè)計(jì)D.測試

25.黑盒測試也稱為功能測試。黑盒測試不能發(fā)現(xiàn)_(51)_。(51)A.終止性錯(cuò)誤B.輸入是否正確接收C.界面是否有誤D.是否存在冗余代碼

26.通常,在軟件的輸入輸出設(shè)計(jì)中,合理的要求是:_(52)_。(52)A.數(shù)據(jù)盡量由用戶來輸入,以便給用戶提供更大的自主性B.輸入過程應(yīng)盡量容易,以減少錯(cuò)誤的發(fā)生C.不能在輸入過程中檢驗(yàn)數(shù)據(jù)的正確D.在輸入過程中,為了不干擾用戶,應(yīng)盡量避免提示信息27.一般地,可以將軟件開發(fā)的生命周期劃分為軟件項(xiàng)目計(jì)劃、(50)、軟件設(shè)計(jì)、編碼、測試和運(yùn)行/維護(hù)6個(gè)階段。(50)A、可行性分析B、初始調(diào)查C、需求分析與定義D、問題分析28.軟件的(51)是指軟件從一種計(jì)算機(jī)系統(tǒng)轉(zhuǎn)換到另一種計(jì)算機(jī)系統(tǒng)運(yùn)行的難易程度。在規(guī)定的條件下和規(guī)定的時(shí)間間隔內(nèi),軟件實(shí)現(xiàn)其規(guī)定功能的概率稱為(52)。(51)A、兼容性B、可移植性C、可轉(zhuǎn)換性D、可擴(kuò)展性(52)A、可擴(kuò)展性B、可接近性C、可靠性D、穩(wěn)定性29.以下關(guān)于程序測試的敘述,正確的是(55)。(55)A、程序測試的目的是為了證明程序的正確性B、白盒測試也稱為功能測試C、黑盒測試也稱為結(jié)構(gòu)測試D、程序測試要注意檢驗(yàn)程序是否有多余的功能30.數(shù)據(jù)流圖包含的成分有__(51)__。

(51)A.關(guān)系、實(shí)體和屬性B.數(shù)據(jù)流、加工和數(shù)據(jù)存儲(chǔ)C.數(shù)據(jù)流、數(shù)據(jù)源和數(shù)據(jù)實(shí)體D.數(shù)據(jù)流、屬性、數(shù)據(jù)存儲(chǔ)和加工31.如果用戶對(duì)系統(tǒng)的目標(biāo)不是很清楚,需求難以定義,這時(shí)最好使用__(53)__進(jìn)行系統(tǒng)開發(fā)。

(53)A.原型B.瀑布模型C.V-模型D.螺旋模型32.在軟件開發(fā)的各個(gè)階段中,對(duì)軟件開發(fā)成敗影響最大的是__(54)__。

(54)A.需求分析B.概要設(shè)計(jì)C.詳細(xì)設(shè)計(jì)D.編碼33.系統(tǒng)測試計(jì)劃應(yīng)該在軟件開發(fā)的__(55)__階段制定。

(55)A.需求分析B.概要設(shè)計(jì)C.詳細(xì)設(shè)計(jì)D.系統(tǒng)測試34.從下面有關(guān)原型化方法的敘述,選出5條正確的敘述,并按編號(hào)依次填寫在A~E欄內(nèi)。=1\*GB3①快速原型方法是一種企圖克服傳統(tǒng)軟件周期模型缺點(diǎn)的開發(fā)方法。=2\*GB3②在用戶的數(shù)據(jù)資源沒有得到很好地組織和管理的時(shí)候,應(yīng)該使用原型化方法。=3\*GB3③在用戶沒有明確的肯定其需求時(shí),應(yīng)該使用原型化方法。=4\*GB3④在用戶不希望把自己的時(shí)間花在軟件開發(fā)過程的時(shí)候,應(yīng)該使用原型化方法。=5\*GB3⑤使用原型化方法時(shí)應(yīng)使用第三代編程語言。=6\*GB3⑥原型化方法加強(qiáng)了開發(fā)過程中用戶的參與和決策。=7\*GB2⑺原型化方法大致可分為三類:拋棄式、演化式,遞增式。=8\*GB3⑧原型化方法大致可分為演化式和遞增式=9\*GB3⑨采用原型化方法時(shí),軟件的開發(fā)成本較高。=10\*GB3⑩采用原型化方法時(shí),關(guān)鍵的原因是建立原型的速度,而不是原型運(yùn)行的效率。35.模塊內(nèi)聚度用于衡量模塊內(nèi)部各成分之間彼此結(jié)合的緊密程度。1、一組語句在程序的多處出現(xiàn),為了節(jié)省內(nèi)存空間把這些語句放在一個(gè)模塊中,該模塊的內(nèi)聚度是__A__的。2、將幾個(gè)邏輯上相似的成分放在一個(gè)模塊中,該模塊的內(nèi)聚度是__B__的。3、模塊中所有成分引用共同的數(shù)據(jù),該模塊的內(nèi)聚度是__C__的。4、模塊內(nèi)的某成分的輸出是另一些成分的輸入,該模塊的內(nèi)聚度是__D__的。5、模塊中所有成分結(jié)合起來完成一項(xiàng)任務(wù),該模塊的內(nèi)聚度是__E__的。它具有簡明的外部界面,由它構(gòu)成的軟件易于理解、測試和維護(hù)。

供選擇的答案A~E:①功能性②順序性③通信性④過程性⑤偶然性⑥瞬時(shí)性⑦邏輯性1991年試題試題5從供選擇的答案中,選出應(yīng)填入__n__內(nèi)的正確答案,把編號(hào)寫在答卷的對(duì)應(yīng)欄內(nèi)。軟件設(shè)計(jì)中劃分程序模塊通常遵循的原則是要使各模塊間的耦合性盡可能__A__。三種可能的模塊耦合是:__B__。例如,一個(gè)模塊直接引用另一模塊中的數(shù)據(jù)。__C__。例如,一個(gè)模塊把開關(guān)量作為參數(shù)傳送給另一模塊。__D__。例如,一個(gè)模塊把一個(gè)數(shù)值量做為參數(shù)傳送給另一模塊。其中__E__的耦合性最強(qiáng)。

供選擇的答案B~E:①公共耦臺(tái)②數(shù)據(jù)耦合③邏輯耦合④外部耦合⑤內(nèi)容耦合⑥控制耦合1992年試題試題3Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國的M.Jackson提出的,它是一種面向__A__的設(shè)計(jì)方法,主要適用于規(guī)模適

溫馨提示

  • 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)論