




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1.簡述軟件設(shè)計(jì)階段的任務(wù)及主要完成的工作。答:設(shè)計(jì)階段的任務(wù)是給出系統(tǒng)的實(shí)現(xiàn)方案。工作包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)的主要任務(wù)是確定系統(tǒng)的架構(gòu)及模塊組成、模塊之間的調(diào)用關(guān)系、每個(gè)模塊完成的功能及接口另外還包括測試計(jì)劃及系統(tǒng)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計(jì)等。詳細(xì)設(shè)計(jì)主要是確定每個(gè)模塊內(nèi)部的細(xì)節(jié)給出主要的算法及控制流程。2.什么是對(duì)象? 請(qǐng)舉例子說明。 解:對(duì)象是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體是構(gòu)成系統(tǒng)的一個(gè)基本單位由一組屬性和一組對(duì)屬性進(jìn)行操作的服務(wù)組成。實(shí)體可以是物理的如一個(gè)桌子可以是概念上的如一個(gè)開發(fā)項(xiàng)目 圖1 對(duì)象和屬性之間有何區(qū)別? 對(duì)象是對(duì)客觀世界實(shí)體的抽象,它是
2、描述實(shí)體靜態(tài)屬性的數(shù)據(jù)和代表實(shí)體運(yùn)動(dòng)狀態(tài)的操作結(jié)合在一起所構(gòu)成的統(tǒng)一體。屬性只不過是對(duì)象的一種特性,它是組成對(duì)象的一種成分。3.如何理解軟件維護(hù)? 解:所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。維護(hù)的類型有三種:改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù)。此外,為提高軟件產(chǎn)品的可維護(hù)性還需要進(jìn)行預(yù)防性維護(hù)。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過程就叫做改正性維護(hù)。 為使軟件適應(yīng)這種變化而去修改軟件的過程就叫做適應(yīng)性維護(hù)。在軟件的使用過程中用戶往往會(huì)對(duì)軟件提出新的功能與性能要求。 為了滿足這些要求需要修改或再
3、開發(fā)軟件以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性,這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)4以G.J.Myers的觀點(diǎn),簡述對(duì)軟件測試的目的(標(biāo)/基本任務(wù))解:( 1)為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;(2)好的測試方案極可能發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤測試方案;(3)成功的測試是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試。8軟件工程的過程模型有幾種?過程模型的特點(diǎn)?軟件工程的過程模型有瀑布模型、快速原型模型、增量模型、螺旋模型。瀑布模型特點(diǎn):(1)階段間具有順序性和依賴性;(2) 推遲實(shí)現(xiàn)的觀點(diǎn),劃分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn);(3質(zhì)量保證的觀點(diǎn),每個(gè)階段必須完成規(guī)定的文檔,對(duì)
4、其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決??焖僭湍P停嚎焖匍_發(fā)工具;得到良好地需求定義,可處理模糊需求;開發(fā)者和用戶可充分通信;使某些類型的風(fēng)險(xiǎn)降至最低。增量模型:第一個(gè)增量往往是核心產(chǎn)品;每一個(gè)增量均發(fā)布一個(gè)可操作產(chǎn)品;早期的增量是最終產(chǎn)品的“可拆卸”版本。螺旋模型:風(fēng)險(xiǎn)驅(qū)動(dòng)的;瀑布模型+快速原型+風(fēng)險(xiǎn)分析;主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。1.什么是軟件工程?它目標(biāo)和內(nèi)容是什么? 軟件工程是:1)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件;2)研究1)中提到的途徑。軟件工程目標(biāo):付出較低開發(fā)成本;達(dá)到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只
5、需較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。軟件工程內(nèi)容:包括開發(fā)技術(shù)和開發(fā)管理兩個(gè)方面。2、耦合性和內(nèi)聚性有幾種類型? 其耦合度、內(nèi)聚強(qiáng)度的順序如何?答:低:非直接耦合® 數(shù)據(jù)耦合®標(biāo)記耦合® 控制耦合®外部耦合® 公共耦合®內(nèi)容耦合 :高;強(qiáng):功能內(nèi)聚® 信息內(nèi)聚® 通信內(nèi)聚® 過程內(nèi)聚® 時(shí)間內(nèi)聚® 邏輯內(nèi)聚® 巧合內(nèi)聚:弱 8、衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?各表示什么含義? 內(nèi)聚和耦合。 內(nèi)聚:內(nèi)聚:內(nèi)聚標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊
6、密程度,它是信息隱藏局部化概念的自然擴(kuò)展;耦合:也稱塊間聯(lián)系,耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。 內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計(jì)目標(biāo)。耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強(qiáng),獨(dú)立性越差,以低耦合為設(shè)計(jì)目標(biāo)。3、簡述需求分析工作可以分成哪四個(gè)方面?軟件需求分析的有哪三個(gè)基本原則?答:需求分析階段分成四個(gè)方面:對(duì)問題的識(shí)別、分析與綜合、制定規(guī)格說明和評(píng)審。三個(gè)基本原則:必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域;必須按自頂向下、逐步分解的方式對(duì)問題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。2、軟件開發(fā)中
7、有哪幾種過程模型?哪些適用于面向?qū)ο蟮能浖_發(fā)? 軟件開發(fā)中常見的軟件過程模型有瀑布模型、原型模型、螺旋模型、噴泉模型、統(tǒng)一軟件過程等。其中噴泉模型、統(tǒng)一軟件過程適用于面向?qū)ο蟮能浖_發(fā)。1、 什么是軟件概要設(shè)計(jì)?該階段的基本任務(wù)是什么?把一個(gè)軟件需求轉(zhuǎn)換為軟件表示時(shí),首先設(shè)計(jì)出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。基本任務(wù):設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu);進(jìn)行數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的設(shè)計(jì);編寫概要設(shè)計(jì)的文檔 ;評(píng)審6、軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?軟件測試要經(jīng)過的步驟是:單元測試集成測試確認(rèn)測試系統(tǒng)測試。 單元測試對(duì)源程序中每一個(gè)程序單元進(jìn)行測試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)規(guī)
8、定的功能,從而發(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)行測試。以確定軟件是否可以支付使用。7、什么是軟件生存周期?它有哪幾個(gè)活動(dòng)? 軟件生存周期:一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。包括:可行性分析和項(xiàng)目開發(fā)計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試,維護(hù)。14、軟件設(shè)計(jì)的基本原理包括哪些內(nèi)容? 模塊化:模
9、塊是軟件的組成部分,是具有獨(dú)立功能且可命名的一段程序,所有模塊組成整體,可以滿足問題的要求。抽象:認(rèn)識(shí)復(fù)雜現(xiàn)象過程所使用權(quán)的工具,只考慮事物本質(zhì)的共同特性,忽略細(xì)節(jié)和其它因素。通過抽象確定組成軟件的過程實(shí)體。信息隱蔽:將模塊實(shí)現(xiàn)自身功能的細(xì)節(jié)與數(shù)據(jù)"隱蔽"起來。模塊間僅交換為完成系統(tǒng)功能所必須的信息。模塊獨(dú)立性:每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能。1.什么是需求分析?需求分析階段的基本任務(wù)是什么? 需求分析:開發(fā)人員準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程?;救蝿?wù):問題識(shí)別;分析與綜
10、合,導(dǎo)出軟件的邏輯模型;編寫文檔12、單元測試有哪些內(nèi)容? 單元測試主要針對(duì)模塊的以下五個(gè)基本特征進(jìn)行測試:(1)模塊接口 ;(2)局部數(shù)據(jù)結(jié)構(gòu) ;(3)重要的執(zhí)行路徑;(4)錯(cuò)誤處理;(5)邊界條件21、說明面向?qū)ο蟮奶卣鳎?面向?qū)ο蟮奶卣魇牵?.抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。2.繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類
11、繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。3.封裝:封裝是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過一個(gè)受保護(hù)的接口訪問其他對(duì)象。4.多態(tài)性:多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。4.請(qǐng)簡述黑盒測試和白盒測試有何區(qū)別,
12、黑盒測試有哪些常用方法? 黑盒測試和白盒測試的區(qū)別:前者基于功能,后者基于結(jié)構(gòu);黑盒測試常用方法有:邊界值、等價(jià)類、因果圖、錯(cuò)誤推測法等。4.什么是黑盒測試?黑盒測試主要采用的技術(shù)有哪些? 測試也稱為功能測試它著眼于程序的外部特征,而不考慮程序的內(nèi)部邏輯結(jié)構(gòu)。測試者把被測程序看成一個(gè)黑盒,不用關(guān)心程序的內(nèi)部結(jié)構(gòu)。黑盒測試是在程序接口處進(jìn)行測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試主要采用的技術(shù)有:等價(jià)分類法、邊沿值分析法、錯(cuò)誤推測法和因果圖等技術(shù)。5.什么是白盒測試?白盒測試主要
13、采用的技術(shù)有哪些? 測試者了解被測程序的內(nèi)部結(jié)構(gòu)和處理過程,對(duì)程序的所有邏輯路徑進(jìn)行測試,在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)與預(yù)期狀態(tài)是否一致。白盒測試主要采用的技術(shù)有:路徑測試技術(shù)和事務(wù)處理流程技術(shù),對(duì)包含有大量邏輯判斷或條件組合的程序采用基于邏輯的測試技術(shù)。26.CMM全稱是什么?分為哪幾個(gè)級(jí)別? CMM全稱是軟件能力成熟度模型;從無序到有序的進(jìn)化分成5個(gè)級(jí)別,分別為:1 初始級(jí);2 可重復(fù)級(jí);3 已定義級(jí);4 已管理級(jí);5 優(yōu)化級(jí)。28、軟件生命周期劃分為哪幾個(gè)階段? 軟件生命周期分為三個(gè)時(shí)期八個(gè)階段:軟件定義:問題定義、可行性研究;軟件開發(fā):需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試;軟
14、件運(yùn)行:軟件維護(hù)1什么是軟件危機(jī)?軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題表現(xiàn)在以下幾個(gè)方面:1)用戶對(duì)開發(fā)出的軟件很難滿意。2)軟件產(chǎn)品的質(zhì)量往往靠不住。3)一般軟件很難維護(hù)。4)軟件生產(chǎn)效率很低。5)軟件開發(fā)成本越來越大。6)軟件成本與開發(fā)進(jìn)度難以估計(jì)7)軟件技術(shù)的發(fā)展遠(yuǎn)遠(yuǎn)滿足不了計(jì)算機(jī)應(yīng)用的普及與深入的需要。2為什么會(huì)產(chǎn)生軟件危機(jī)? (1) 開發(fā)人員方面,對(duì)軟件產(chǎn)品缺乏正確認(rèn)識(shí),沒有真正理解軟件產(chǎn)品是一個(gè)完整的配置組成。造成開發(fā)中制定計(jì)劃盲目、編程草率,不考慮維護(hù)工作的必要性。 (2) 軟件本身方面,對(duì)于計(jì)算機(jī)系統(tǒng)來說,軟件是邏輯部件,軟件開發(fā)過程沒有統(tǒng)
15、一的、公認(rèn)的方法論和規(guī)范指導(dǎo),造成軟件維護(hù)困難。 (3) 尤其是隨著軟件規(guī)模越來越大,復(fù)雜程度越來越高,原有軟件開發(fā)方式效率不高、質(zhì)量不能保證、成本過高、研制周期不易估計(jì)、維護(hù)困難等一系列問題更為突出,技術(shù)的發(fā)展已經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)社會(huì)需求。3怎樣克服軟件危機(jī)? (1) 充分吸收和借鑒人類長期以來從事各種工程項(xiàng)目中積累的行之有效的有效原理、概念、技術(shù)與方法,特別是吸取幾十年來人類從事計(jì)算機(jī)硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn)。在開發(fā)軟件的過程中努力作到良好的組織,嚴(yán)格的管理,相互友好的協(xié)作。 (2) 推廣在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并研究更好、更有效的技術(shù)和方法,盡快克服在計(jì)算機(jī)系統(tǒng)早期發(fā)展
16、階段形成的一些錯(cuò)誤概念和作法。 (3) 根據(jù)不同的應(yīng)用領(lǐng)域,開發(fā)更好的軟件工具并使用這些工具。將軟件開發(fā)各個(gè)階段使用的軟件工具集合成一個(gè)整體,形成一個(gè)很好的軟件開發(fā)支環(huán)環(huán)境??傊疄榱私鉀Q軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。1.軟件生命周期劃分成哪些階段 軟件生命周期(各階段)軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成。1.軟件定義時(shí)期劃分為三個(gè)階段:問題定義、可行性研究和需求分析;2.開發(fā)時(shí)期:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測試、綜合測試;3.維護(hù)時(shí)期:主要任務(wù)是使軟件持久地滿足用戶的需要。2.可行性研究目的? 確定在問題定義中所提出的問題是否值得去解
17、,在限制條件下,問題能否解決。3可行性研究的任務(wù)? (1) 進(jìn)一步分析和澄清問題的定義,在澄清問題的基礎(chǔ)上,導(dǎo)出系統(tǒng)的邏輯模型; (2) 從系統(tǒng)邏輯模型中,選擇問題的若干種主要解法,研究每一種解法的可行性,為以后的行動(dòng)提出建議; (3) 如果問題沒有可行的解,建議停止系統(tǒng)開發(fā);如果問題有可行的解,應(yīng)該推薦一個(gè)較好的解決方案,并為工程制定一個(gè)初步的計(jì)劃。5可行性研究的步驟? (1)復(fù)查系統(tǒng)規(guī)模和目標(biāo);(2)研究目前正在使用的系統(tǒng)(3)導(dǎo)出新系統(tǒng)的高層邏輯模型;(4)進(jìn)一步定義問題(5)導(dǎo)出和評(píng)價(jià)供選擇的解法 (6)推薦行動(dòng)方針;(7)草擬開發(fā)計(jì)劃; (8)書寫文檔提交審查。4可行性研究包括哪幾方
18、面的內(nèi)容? (1)技術(shù)可行性:現(xiàn)有技術(shù)能否實(shí)現(xiàn)本系統(tǒng),現(xiàn)有技術(shù)人員能否勝任,開發(fā)系統(tǒng)的資源能否滿足;(2)經(jīng)濟(jì)可行性:經(jīng)濟(jì)效益是否超出開發(fā)成本;(3)操作可行性:系統(tǒng)操作在用戶內(nèi)部行得通嗎?(4)法律可行性:新系統(tǒng)開發(fā)是否會(huì)侵犯他人、集體或國家利益,是否違反國家法律。4.構(gòu)成軟件項(xiàng)目的最終產(chǎn)品: 應(yīng)用程序、系統(tǒng)程序、面向用戶的文檔資料和面向開發(fā)者的文檔資料。6軟件生存周期為什么劃分成階段? (1) 任何一個(gè)階段的具體任務(wù)不僅獨(dú)立,而且簡單,便于不同人員分工協(xié)作,從而降低整個(gè)軟件開發(fā)工作的困難程度。(2) 可以降低每個(gè)階段任務(wù)的復(fù)雜程度,簡化不同階段的聯(lián)系,有利于工程的組織管理,也便于采用良好的
19、技術(shù)方法(3) 使軟件開發(fā)的全過程以一種有條不紊的方式進(jìn)行,保證軟件的質(zhì)量,特別是提高了軟件的可維護(hù)性。7應(yīng)該怎樣來劃分階段? (1)每一個(gè)階段的任務(wù)盡可能獨(dú)立;(2)同一階段內(nèi)的任務(wù)性質(zhì)盡可能相同; (3)每一個(gè)階段任務(wù)的開始和結(jié)束有嚴(yán)格的標(biāo)準(zhǔn)。10什么是軟件工程環(huán)境: 方法與工具的結(jié)合,加上配套的軟、硬件支持稱為軟件工程環(huán)境。它能支持開發(fā)者按照軟件工程的方法,全面完成生存周期中的各項(xiàng)任務(wù)。1. 問題定義的任務(wù)和主要工作? 問題定義的任務(wù):將用戶提出的要求具體化、定量化;確定研制系統(tǒng)的范圍,明確研制的邊界。問題定義階段的工作: 1) 通過調(diào)查研究,了解系統(tǒng)需求; 2) 確定系統(tǒng)的功能需求、性
20、能需求、可靠性需求、安全及保密性、資源、開發(fā)費(fèi)用及開發(fā)進(jìn)度等的需求; 3) 問題定義階段的產(chǎn)品-系統(tǒng)目標(biāo)與范圍說明書。6. 可行性研究報(bào)告的主要內(nèi)容? 可行性分析的結(jié)果是可行性研究報(bào)告,內(nèi)容包括: (1)系統(tǒng)概述:說明開發(fā)的系統(tǒng)名稱,提出單位和開發(fā)單位。 (2) 可行性研究的前提:系統(tǒng)目標(biāo);要求;約束和限制;可行性研究的基本準(zhǔn)則等。 (3) 對(duì)現(xiàn)有系統(tǒng)的分析:處理流程,圖示說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;現(xiàn)有系統(tǒng)存在的問題。 (4) 系統(tǒng)需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建議系統(tǒng):系統(tǒng)目標(biāo);處理流程;系統(tǒng)結(jié)構(gòu),功能,性能;系統(tǒng)技術(shù)可行性;投資和效益分析
21、;操作可行性;法律可行性。(6) 其它可選方案:與國內(nèi)外同類型方案的比較;提出一兩個(gè)可行性方案供論證和探討。(7) 制定下一階段的預(yù)算。(8) 結(jié)論性意見:由用戶方、設(shè)計(jì)方和投資方共同簽署意見。1.需求分析的描述工具有哪些? 有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定樹、結(jié)構(gòu)化自然語言、層次方框圖、Warnier圖、IPO圖和需求描述語言等。2.需求分析的基本任務(wù)是什么? 準(zhǔn)確定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須做什么。4.什么是結(jié)構(gòu)化分析?它的結(jié)構(gòu)化體現(xiàn)在哪里? 結(jié)構(gòu)化分析:使用數(shù)據(jù)流程圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化說明書的目標(biāo)文檔-需求規(guī)格
22、說明書。結(jié)構(gòu)化體現(xiàn)在將軟件系統(tǒng)抽象為一系列的邏輯加工單元,各單元之間以數(shù)據(jù)流發(fā)生關(guān)聯(lián)。5.軟件需求規(guī)格說明書由哪些部分組成? 組成包括: (1) 引言:編寫目的、背景說明、術(shù)語定義及參考資料等。 (2) 概述主要功能、約束條件或特殊需求。 (3) 數(shù)據(jù)流圖與數(shù)據(jù)字典。 (4) 用戶接口、硬件接口及軟件接口。 (5) 性能需求、屬性等。 (6) 其它需求,如數(shù)據(jù)庫、操作及故障處理等。6.為什么數(shù)據(jù)流圖要分層?畫分層的DFD要遵循哪些原則? 分層的目的:便于逐步細(xì)化、結(jié)構(gòu)清晰。畫分層的DFD要遵循哪些原則: (1)父圖與子圖之間數(shù)據(jù)要平衡。 (2)分解的深度和層次達(dá)到使加工足夠簡單、易于理解的基本
23、加工為止。 (3)區(qū)分局部文件和局部外部項(xiàng)(局限于數(shù)據(jù)流中某一層或某幾層的文件和外部項(xiàng))。 (4)不要把控制流作為數(shù)據(jù)流。 (5)忽略瑣碎的枝節(jié)。 (6)每個(gè)數(shù)據(jù)流要有一個(gè)合適的名字,盡量使用現(xiàn)實(shí)系統(tǒng)中有具體意義的名字。7.系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別? 系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個(gè)部分及其相互之間信息流動(dòng)的情況。數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動(dòng)和數(shù)據(jù)處理的工作狀況。8.數(shù)據(jù)字典包括哪些內(nèi)容?它的作用是什么?數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對(duì)數(shù)據(jù)流圖上每一個(gè)成分:數(shù)
24、據(jù)項(xiàng)、文件(數(shù)據(jù)結(jié)構(gòu))、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、加工和外部項(xiàng)等給以定義和說明;它主要由數(shù)據(jù)流描述、加工描述和文件描述三部分組成。對(duì)用戶來講,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義;對(duì)系統(tǒng)分析員來講,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型。9.描述加工邏輯的工具有哪些? 有決策樹(又稱判定樹)、決策表(又稱判斷表)和結(jié)構(gòu)化語言等。1. 系統(tǒng)設(shè)計(jì)包括哪兩個(gè)階段? 系統(tǒng)設(shè)計(jì)包括總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)兩個(gè)階段。2. 總體設(shè)計(jì)的主要任務(wù)是什么?總體設(shè)計(jì)的主要任務(wù)是完成軟件結(jié)構(gòu)的設(shè)計(jì),確定系統(tǒng)的模塊及其模塊之間的關(guān)系。3. 什么是模塊?模塊具有哪幾個(gè)特征?總體設(shè)計(jì)主要考慮什么特征? 模塊是由邊界元素限定的相鄰
25、程序元素(例如,數(shù)據(jù)說明,可執(zhí)行的語句)的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。模塊具有輸入和輸出(參數(shù)傳遞)、功能、內(nèi)部數(shù)據(jù)結(jié)構(gòu)(局部變量)和程序代碼四個(gè)特性。概要設(shè)計(jì)主要考慮輸入、輸出(參數(shù)傳遞)和功能兩個(gè)特性。4. 什么是模塊化?模塊設(shè)計(jì)的準(zhǔn)則? 模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。模塊設(shè)計(jì)的準(zhǔn)則:(1)改進(jìn)軟件結(jié)構(gòu), 提高模塊獨(dú)立性:在對(duì)初步模塊進(jìn)行合并、分解和移動(dòng)的分析、精化過程中力求提高模塊的內(nèi)聚,降低藕合;(2)模塊大小要適中:大約50行語句的代碼,過大的模塊應(yīng)分解以提高理解性和可
26、維護(hù)性;過小的模塊,合并到上級(jí)模塊中。 (3)軟件結(jié)構(gòu)圖的深度、寬度、扇入和扇出要適當(dāng)。一般模塊的調(diào)用個(gè)數(shù)不要超過5個(gè)。(4)盡量降低模塊接口的復(fù)雜程度;(5)設(shè)計(jì)單入口、單出口的模塊。(6)模塊的作用域應(yīng)在控制域之內(nèi)。5. 變換型數(shù)據(jù)流由哪幾部分組成? 變換型結(jié)構(gòu)由三部分組成:傳入路徑、變換(加工)中心和傳出路徑。6. 變換分析設(shè)計(jì)的步驟? 1) 區(qū)分傳入、傳出和變換中心三部分,劃分DFD圖的分界線; (2) 完成第一級(jí)分解:建立初始SC圖的框架; 3) 完成第二級(jí)分解:分解SC圖的各個(gè)分支; 4) 對(duì)初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。7. 事務(wù)型數(shù)據(jù)流由哪幾部分組成? 事務(wù)型結(jié)構(gòu)由至少
27、一條接受路徑、一個(gè)事務(wù)中心與若干條動(dòng)作路徑組成。8. 事務(wù)分析設(shè)計(jì)的步驟? (1) 在DFD圖中確定事務(wù)中心、接收部分(包含全部接收路徑)和發(fā)送部分(包含全部動(dòng)作路徑); (2) 畫出SC圖框架,把DFD圖的三部分分?quot;映射"為事務(wù)控制模塊,接收模塊和動(dòng)作發(fā)送模塊.一般得到SC圖的頂層和第一層(如果第一層簡單可以并入頂層); (3) 分解和細(xì)化接收分支和動(dòng)作分支,完成初始的SC圖; (4) 對(duì)初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。9. 比較層次方框圖與結(jié)構(gòu)圖是的異同? (1) 層次方框圖描繪數(shù)據(jù)的層次結(jié)構(gòu), 結(jié)構(gòu)圖描繪的是軟件結(jié)構(gòu)。(2) 二者都采用多層次矩形框樹形結(jié)構(gòu)。層次
28、方框圖的頂層矩形框代表完整的數(shù)據(jù)結(jié)構(gòu), 下面各層矩形框依次代表上個(gè)框數(shù)據(jù)的子集;結(jié)構(gòu)圖是在層次圖的每一個(gè)方框內(nèi)注明模塊的名字或主要功能,方框之間的直線表示模塊的調(diào)用關(guān)系,用帶注解的箭頭表示模塊調(diào)用過程中傳遞的信息。1.詳細(xì)設(shè)計(jì)的目的? 為軟件結(jié)構(gòu)圖(SC圖或HC圖)中的每一個(gè)模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述.2.詳細(xì)設(shè)計(jì)的主要任務(wù)? 編寫軟件的“詳細(xì)設(shè)計(jì)說明書”.軟件人員要完成的工作:(1)為每一個(gè)模塊確定采用的算法, 選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,寫出模塊的詳細(xì)過程描述.(2) 確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu).(3) 確定模塊結(jié)構(gòu)的細(xì)節(jié),包括對(duì)系統(tǒng)外部的接
29、口和用戶界面,對(duì)系統(tǒng)內(nèi)部其它模塊的接口,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié).(4) 為每一個(gè)模塊設(shè)計(jì)出一組測試用例,以便在編碼階段對(duì)模塊代碼(即程序)進(jìn)行預(yù)定的測試.3.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則? 在詳細(xì)設(shè)計(jì)中所有模塊都使用單入口、單出口的順序、選擇、循環(huán)三種基本控制結(jié)構(gòu).4.比較面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)兩類設(shè)計(jì)方法的異同? 相同點(diǎn)1)遵守結(jié)構(gòu)程序設(shè)計(jì)“由頂向下”逐步細(xì)化的原則,并以其為共同的基礎(chǔ);2)均服從“程序結(jié)構(gòu)必須適應(yīng)問題結(jié)構(gòu)”的基本原則,各自擁有從問題結(jié)構(gòu)(包括數(shù)據(jù)結(jié)構(gòu))導(dǎo)出程序結(jié)構(gòu)的一組映射規(guī)則。不同點(diǎn)1)面向數(shù)據(jù)流的設(shè)計(jì)以數(shù)據(jù)流圖為基礎(chǔ),在分析階段用DFD表示軟件
30、的邏輯模型,在設(shè)計(jì)階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的程序結(jié)構(gòu)。2)面向數(shù)據(jù)流的設(shè)計(jì)的最終目標(biāo)是軟件的最終SC圖,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)的最終目標(biāo)是程序的過程性描述。5.比較Jackson方法和LCP方法的異同? Jackson與LCP設(shè)計(jì)方法都是以數(shù)據(jù)結(jié)構(gòu)為出發(fā)點(diǎn),以程序的過程描述為最終目標(biāo),設(shè)計(jì)步驟基本相似。它們的主要差別是;1)使用不同的表達(dá)工具,其中LCP方法中的表達(dá)工具Warnier圖比Jackson設(shè)計(jì)方法中的表達(dá)工具Jackson圖有更大的通用性;2)Jackson方法的步驟和指導(dǎo)原則有一定的靈活性,而LCP設(shè)計(jì)
31、方法則更加嚴(yán)密。6.詳細(xì)設(shè)計(jì)的描述工具應(yīng)具備什么功能? 無論哪類描述工具不僅要具有描述設(shè)計(jì)過程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語言書寫的源程序。1.編碼的任務(wù)? 使用選定的程序設(shè)計(jì)語言,把模塊的過程性描述翻譯為用語言書寫的源程序(源代碼)。2.對(duì)源程序基本要求? 源程序要求:正確可靠、簡明清晰、效率高。(1)源程序的正確性是對(duì)程序質(zhì)量的最基本要求;(2)源程序的簡明清晰,便于驗(yàn)證源代碼和模塊規(guī)格說明的一致性,容易進(jìn)行測試和維護(hù);(3)對(duì)于大多數(shù)模塊,編碼時(shí)應(yīng)該把簡明清晰放在第一位;(4)除了編碼階段產(chǎn)生源代碼外,在測試階段也需要
32、編寫一些測試程序,用于對(duì)軟件的測試。3.程序設(shè)計(jì)語言的特點(diǎn)? (1)名字說明:程序中使用對(duì)象的名字,能為編譯程序所檢查和識(shí)別;(2)類型說明:定義對(duì)象的類型,確定該對(duì)象的使用方式;3)初始化:為變量提供適當(dāng)?shù)某跏贾祷蛴上到y(tǒng)給變量賦一特殊的表明未初始化的值;(4)對(duì)象的局部性:程序中真正需要的那部分才能訪問的對(duì)象;5)程序模塊:控制程序?qū)ο蟮拿郑?6)循環(huán)控制結(jié)構(gòu):如FOR語句、WHILE-DO語句、REPEAT-UNTIL語句等;7)分支控制結(jié)構(gòu):如IF語句、CASE語句等;(8)異常處理:為程序運(yùn)行過程中發(fā)生的錯(cuò)誤和意外事件提供檢測和處理上的幫助;(9)獨(dú)立編譯:能分別編譯各個(gè)程序單元。4
33、.選擇程序設(shè)計(jì)語言需要考慮的因素? (1)選擇用戶熟悉、便于用戶維護(hù)的語言。(2)選擇目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序所能選用的語言。(3)選擇可以得到的軟件工具,能支持程序開發(fā)中可以利用的語言。(4)根據(jù)工程規(guī)模的大小、目標(biāo)系統(tǒng)應(yīng)用范圍,如實(shí)時(shí)應(yīng)用選擇Ada語言或匯編語言,系統(tǒng)軟件開發(fā)選擇C語言或匯編語言,軟件開發(fā)中若含有大量數(shù)據(jù)操作則選擇SQL、dBASE等數(shù)據(jù)庫語言等。5)選擇程序員熟悉的語言。6)選擇標(biāo)準(zhǔn)化程度高、程序可移植性好的語言。(7)根據(jù)算法與計(jì)算的復(fù)雜性、數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性選擇。如對(duì)于系統(tǒng)程序和結(jié)構(gòu)復(fù)雜的應(yīng)用程序,選擇支持?jǐn)?shù)組、記錄(或結(jié)構(gòu))與指針動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)的Pascal語
34、言或C語言。(8)根據(jù)實(shí)時(shí)要求系統(tǒng)需要的響應(yīng)速度和效率選擇相應(yīng)的語言。5.編碼風(fēng)格的指導(dǎo)原則。 (1)源程序:包括適當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔狻⒊绦蚯鍐蔚暮侠聿季峙c清晰;(2)數(shù)據(jù)說明:數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類型的說明次序標(biāo)準(zhǔn)化;變量名稱盡量有意義;對(duì)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)在注解中要說明在程序設(shè)計(jì)中實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法。(3)語句的構(gòu)造簡單明了:不要為節(jié)省空間將多個(gè)語句寫在同一行;盡量避免復(fù)雜的條件及“非”條件的測試;避免大量使用循環(huán)嵌套和條件嵌套;括號(hào)的使用是為了使邏輯表達(dá)式和算術(shù)表達(dá)式的運(yùn)算順序清晰直觀。(4)效率:考慮程序運(yùn)行的時(shí)間存儲(chǔ)器效率、輸入/輸出的效率;在處理程序正確性、清晰與效率之間的關(guān)系時(shí)先求
35、程序正確后求快;先求清楚后求快;保持程序簡單以求快;書寫清楚,不為“效率”犧牲清晰。6.第四代語言(4GL)應(yīng)具備哪些的特征?(1)具有很強(qiáng)的數(shù)據(jù)管理能力,能對(duì)數(shù)據(jù)庫進(jìn)行有效的存取、查詢和其它有關(guān)操作;(2)能提供一組高效的、非過程化的命令,組成語言的基本語句,編程時(shí)用戶只需用這些命令說明“做什么”,不必描述實(shí)現(xiàn)的細(xì)節(jié);(3)能滿足多功能、一體化的要求。為此,語言中除必須含有控制程序邏輯與實(shí)現(xiàn)數(shù)據(jù)庫操作的語句外,還應(yīng)包括生成與處理報(bào)表、表格、圖形,以及實(shí)現(xiàn)數(shù)據(jù)運(yùn)算和分析統(tǒng)計(jì)功能的各種語句,共同構(gòu)成一個(gè)一體化的語言,以適應(yīng)多種應(yīng)用開發(fā)的需要。2.測試與調(diào)試的主要區(qū)別? (1) 測試從
36、一個(gè)側(cè)面證明程序員的失??;調(diào)試證明程序員的正確;(2) 測試從已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是否通過測試;調(diào)試從不可知內(nèi)部條件開始,除統(tǒng)計(jì)性調(diào)試外,結(jié)果是不可預(yù)見的;(3) 測試有計(jì)劃并且要進(jìn)行測試設(shè)計(jì);調(diào)試不受時(shí)間約束;(4) 測試是發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤、重新測試的過程;調(diào)試是一個(gè)推理的過程;(5) 測試執(zhí)行是有規(guī)程的;調(diào)試執(zhí)行要求程序員進(jìn)行必要的推理;(6) 測試由獨(dú)立的測試組在不了解軟件設(shè)計(jì)的件下完成;調(diào)試由了解詳細(xì)設(shè)計(jì)的程序員完成;(7) 大多數(shù)測試的執(zhí)行和設(shè)計(jì)可由工具支持;調(diào)試
37、用的工具主要是調(diào)試器。3.人工復(fù)審的方式和作用? 人工復(fù)審的方式:代碼會(huì)審、走查和排練和辦公桌檢查;人工復(fù)審的作用:檢查程序的靜態(tài)錯(cuò)誤。6.路徑測試技術(shù)中幾種主要覆蓋的含義?舉例說明? 語句覆蓋:至少執(zhí)行程序中所有語句一次。判定覆蓋:使被測程序中的每一個(gè)分支至少執(zhí)行一次。故也稱為分支覆蓋。條件覆蓋:執(zhí)行所有可能的穿過程序的控制路流程。條件組合測試:設(shè)計(jì)足夠的測試用例,使每個(gè)判定中的所有可能條件取值組合至少執(zhí)行一次。7.等價(jià)分類法的測試技術(shù)采用的一般方法?舉例說明? (1) 為每個(gè)等價(jià)類編號(hào);(2) 設(shè)計(jì)一個(gè)新的測試方案,以盡可能多的覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步
38、驟,直到所有有效等價(jià)類被覆蓋為止。(3) 設(shè)計(jì)一個(gè)新的測試方案,使它覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類, 重復(fù)這一步驟,直到所有無效等價(jià)類被覆蓋為止。8.軟件測試的一般步驟? 模塊測試、子系統(tǒng)測試、系統(tǒng)測試、驗(yàn)收測試、平行運(yùn)行。9.比較集成試的兩種方式的優(yōu)劣? 非漸增式測試方式:分別測試模塊,再把所有模塊按設(shè)計(jì)要求放在一起組成所要的程序。該方法編寫測試軟件工作量大,模塊間的接口錯(cuò)誤發(fā)現(xiàn)得晚,錯(cuò)誤定位較難診斷,總體測試有的錯(cuò)誤容易漏掉,測試時(shí)間相對(duì)較少,可以并行測試所有模塊,能充分利用人力,加快工程進(jìn)度;漸增式測試方式:把下一個(gè)要測試的模塊,同已經(jīng)測試好的那些模塊結(jié)合起來進(jìn)行測試。該方法
39、利用已測試過的模塊作測試軟件,開銷小,較早發(fā)現(xiàn)模塊間的接口錯(cuò)誤,錯(cuò)誤定位往往和最近入的模塊相關(guān),對(duì)已測試好的模塊可在新加入模塊的條件下受到新的檢驗(yàn),測試更徹底,需要較多的測試時(shí)間,不能并行測試??偟膩碚f,漸增式測試方法比較好。10.軟件測試的策略?(1) 在任何情況下都應(yīng)使用邊界值分析的方法。(2) 必要時(shí)用等價(jià)類劃分法補(bǔ)充測試方案。(3) 必要時(shí)再用錯(cuò)誤推測法補(bǔ)充測試方案。(4) 對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測試方案。(5) 根據(jù)對(duì)程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),再補(bǔ)充一些測試方案。1.為什么說軟件的維護(hù)是不可避免的?因?yàn)檐?/p>
40、件的開發(fā)過程中,一般很難檢測到所有的錯(cuò)誤,其次軟件在應(yīng)用過程中需要隨用戶新的要求或運(yùn)行環(huán)境的變化而進(jìn)行軟件的修改或完成功能的增刪等,為了提高軟件的應(yīng)用水平和使用壽命,軟件的維護(hù)是不可避免的。3.影響軟件維護(hù)的因素有哪些?開發(fā)方法:采用模塊化詳細(xì)設(shè)計(jì)文檔有助于理解軟件的結(jié)構(gòu)、界面功能和內(nèi)部流程;開發(fā)過程中嚴(yán)格而科學(xué)的管理規(guī)劃及清晰可靠的文檔資料對(duì)發(fā)生錯(cuò)誤后的理解與糾錯(cuò)是至關(guān)重要的;開發(fā)過程中模塊的獨(dú)立程度越高,對(duì)軟件修改越容易,對(duì)軟件的改進(jìn)和移植越方便。開發(fā)條件:軟件開發(fā)及維護(hù)人員的水平?jīng)Q定了軟件開發(fā)的質(zhì)量和維護(hù)的效率;開發(fā)過程中使用標(biāo)準(zhǔn)的程序設(shè)計(jì)語言和標(biāo)準(zhǔn)的操作系統(tǒng)接口,可以大大提高軟件的可維
41、護(hù)性;在測試過程中用例的有效性,可極大地減少軟件存在的錯(cuò)誤;其次使用規(guī)范化的文檔資料可為維護(hù)提供更好的依據(jù)。 4.軟件維護(hù)困難主要表現(xiàn)在什么方面?(1) 一般來講,維護(hù)人員對(duì)開發(fā)人員寫的程序及文檔,理解都比較困難,對(duì)維護(hù)工作不會(huì)喜歡;2) 維護(hù)持續(xù)時(shí)間都很長,在開發(fā)人員不在現(xiàn)場的輕快下,維護(hù)軟件通常是很困難的; (3) 絕大多數(shù)軟件在設(shè)計(jì)時(shí)對(duì)將來的軟件修改都沒有考慮或考慮不多,尤其未能在設(shè)計(jì)中強(qiáng)調(diào)并認(rèn)真解決好模塊的獨(dú)立性,使軟件的修改既困難又易發(fā)生差錯(cuò)。5.決定軟件可維護(hù)性的因素?軟件的可理解性、可測試性、可修改性、可移植性、可重用性。6.軟件價(jià)格應(yīng)該計(jì)入維護(hù)成本嗎?為什么?在軟件的生命周期中
42、,軟件維護(hù)的工作量非常大,不同應(yīng)用領(lǐng)域的維護(hù)成本差別也很大。一般大型軟件的維護(hù)成本遠(yuǎn)遠(yuǎn)高于開發(fā)成本若干倍。因此軟件價(jià)格中應(yīng)該計(jì)入維護(hù)成本。1.軟件工程管理的內(nèi)容?(1) 費(fèi)用管理: 對(duì)軟件開發(fā)進(jìn)行成本核算,使軟件生產(chǎn)按照商品生產(chǎn)的規(guī)律辦事。包括:以簡單、科學(xué)方法估算軟件開發(fā)費(fèi)用,作為簽定開發(fā)合同的根據(jù);管理開發(fā)費(fèi)用的有效使用,即用經(jīng)濟(jì)手段來保證產(chǎn)品如期按質(zhì)完成。(2) 質(zhì)量管理: 按項(xiàng)目的質(zhì)量保證計(jì)劃,確保各個(gè)開發(fā)階段的開發(fā)和維護(hù)工作全部按軟件工程的規(guī)范進(jìn)行,保證軟件產(chǎn)品的質(zhì)量。(3) 配置管理:通過對(duì)于程序、文檔和數(shù)據(jù)的各種版本所進(jìn)行的管理,保證資料的完整性與一致性。(4) 項(xiàng)目管理:制定項(xiàng)
43、目實(shí)施計(jì)劃,按照計(jì)劃的內(nèi)容組織和實(shí)施軟件的工程化生產(chǎn)。最終目標(biāo)是以合理的費(fèi)用和進(jìn)度,圓滿完成計(jì)劃所規(guī)定的軟件項(xiàng)目。2.軟件項(xiàng)目有哪些特點(diǎn)?(1) 軟件項(xiàng)目與其他任何產(chǎn)業(yè)項(xiàng)目不同,它是算法、思想、概念、組織、流程、效率、優(yōu)化等的融合體;(2) 開發(fā)軟件項(xiàng)目產(chǎn)品,在多數(shù)情況下,用戶給不出明確的想法和要求。(3) 在開發(fā)過程中,程序及其相關(guān)的文檔資料常常需要修改,在修改過程中又可能帶來新的問題,且這些問題要在很久以后才會(huì)發(fā)現(xiàn)。(4) 在研制開發(fā)過程中,文檔資料是不可缺少的,但工作量又是巨大的,往往也是人們不愿去作的。(5) 參加軟件項(xiàng)目的工作人員,要求具有一定的業(yè)務(wù)水平和實(shí)際工作經(jīng)驗(yàn),而很難完全避免
44、的人員流動(dòng),對(duì)工作的影響是很大的。離開的人員不僅帶走了重要的信息,而且?guī)ё吡斯ぷ鹘?jīng)驗(yàn)。3.軟件成本估算的一般方法?自頂向下估計(jì): 首先估算出項(xiàng)目總的開發(fā)成本,然后在項(xiàng)目內(nèi)部進(jìn)行成本分配。由少數(shù)專家參與,依靠他們過去的經(jīng)驗(yàn),將要開發(fā)的軟件與過去開發(fā)過的軟件進(jìn)行"類比",以估計(jì)新的軟件開發(fā)所需要的工作量和成本。自底向上估計(jì): 將開發(fā)任務(wù)分成若干子任務(wù),子任務(wù)又分成子子任務(wù),直到每一個(gè)單元內(nèi)容足夠明確為止;把各個(gè)任務(wù)單元的成本估計(jì)出來,匯合成項(xiàng)目的總成本。該方法得到的結(jié)果比較接近實(shí)際。4.為什么在軟件開發(fā)中,不能用簡單增加人員的方法來縮短開發(fā)時(shí)間?大量軟件開發(fā)實(shí)踐說明:向一個(gè)已經(jīng)
45、延遲的項(xiàng)目追加開發(fā)人員,可能使它完成得更晚。因?yàn)楫?dāng)開發(fā)人員以算術(shù)級(jí)數(shù)增長時(shí),而人員之間的通信將以幾何級(jí)數(shù)增長,往往"得不償失"。5.影響軟件質(zhì)量的主要因素有哪些?(1) 產(chǎn)品運(yùn)行:正確性、風(fēng)險(xiǎn)性、效率、完整性、健壯性和可用性;(2) 產(chǎn)品修改:可理解性、可維護(hù)性、靈活性、可測試性; (3) 產(chǎn)品轉(zhuǎn)移:可移植性、可重用性和互運(yùn)行性。1.軟件工具是什么?按照軟件生存周期可將其分為幾類?軟件工具是指為支持計(jì)算機(jī)軟件及其文檔的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。按照軟件生存周期可將其分為如下幾類: (1) 需求分析:如數(shù)據(jù)流圖繪制與分析工具、狀態(tài)轉(zhuǎn)換圖繪制與分析工具、面向?qū)ο蟮哪P秃头治龉ぞ?、快速原型?gòu)造工具、數(shù)據(jù)字典與數(shù)據(jù)庫工具等。 (2) 軟件設(shè)計(jì):如HIPO圖、PDL(程序設(shè)計(jì)語言)或PAD(問題分析圖)支持工具等。 (3) 編碼:集成化的程序員工作平臺(tái)。如各種正文編輯器和常規(guī)的編譯程序、匯編程序、連結(jié)程序及符號(hào)調(diào)試器等。 (4) 軟件測試:如靜態(tài)分析器、動(dòng)態(tài)覆蓋率測試器、測試用例生成器、測試報(bào)告生成器及環(huán)境模擬器等。 (5) 軟件維護(hù):如反匯編程序、反編譯程序、程序結(jié)構(gòu)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 以讀寫為翼展思辨之光:汝州市實(shí)驗(yàn)中學(xué)高中英語教學(xué)新探索
- 中國公文包行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報(bào)告(2024-2030)
- 中國有機(jī)蔬菜行業(yè)發(fā)展趨勢預(yù)測及投資規(guī)劃研究報(bào)告
- 以詞塊為翼展讀寫宏圖:高中英語以讀促寫模式新探
- 2024年中國再生橡膠行業(yè)調(diào)查測報(bào)告
- 中國實(shí)時(shí)音視頻行業(yè)市場發(fā)展監(jiān)測及投資前景展望報(bào)告
- 中國氧氣治療系統(tǒng)行業(yè)市場占有率及投資前景預(yù)測分析報(bào)告
- 2025年中國含硼花生專用肥行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2024-2030年中國混合信號(hào)片上系統(tǒng)行業(yè)市場深度研究及投資規(guī)劃建議報(bào)告
- 中國大型連鎖超市市場發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 醫(yī)用耗材管控中的難點(diǎn)及對(duì)策研究
- 2024屆杭州市濱江區(qū)小升初考試數(shù)學(xué)試卷含解析
- 羽毛球教案18課時(shí)完整版
- JT-T-1240-2019城市公共汽電車車輛專用安全設(shè)施技術(shù)要求
- 國外激勵(lì)研究現(xiàn)狀分析報(bào)告
- GB/T 4074.4-2024繞組線試驗(yàn)方法第4部分:化學(xué)性能
- MH-T 6107-2014民用機(jī)場飛行區(qū)集水口頂蓋和地井頂蓋
- CJJT226-2014 城鎮(zhèn)供水管網(wǎng)搶修技術(shù)規(guī)程
- 施工成品保護(hù)方案及措施
- 無人機(jī)飛行控制系統(tǒng)若干關(guān)鍵技術(shù)研究的開題報(bào)告
- 年產(chǎn)5萬噸1,4-丁二醇的工藝流程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論