




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程
緒論
1.什么是軟件危機(jī)?為什么會(huì)產(chǎn)生軟件危機(jī)?
答:軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題。(1).軟件
維護(hù)費(fèi)用急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的夸大。(2).軟件生產(chǎn)技術(shù)進(jìn)步緩慢
2.什么是軟件生產(chǎn)工程化?工程化生產(chǎn)方法與早期的程序設(shè)計(jì)方法主要差別在哪里?
答:結(jié)構(gòu)化程序設(shè)計(jì)地出現(xiàn),使許多產(chǎn)業(yè)界認(rèn)識(shí)認(rèn)識(shí)到必須把軟件生產(chǎn)從個(gè)人化方式
改變?yōu)楣こ袒2捎霉こ痰母拍?、原理、技術(shù)和方法開發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而
證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開發(fā)出高質(zhì)量
的軟件并有效地維護(hù)它,這就是軟件工程,同時(shí)這也是工程化生產(chǎn)方法。
3.分別說(shuō)明(1)軟件開發(fā)方法與開發(fā)工具;(2)軟件技術(shù)與軟件管理的相互關(guān)系。
答:(1)工具和方法,是軟件開發(fā)技術(shù)的兩大支柱,它們密切相關(guān)。當(dāng)一種方法提出
來(lái)并證明有效后,往往隨之研制出相應(yīng)的工具,來(lái)幫的實(shí)現(xiàn)和推行這種方法。新方法在推
行初期,總有人不愿接受和采用。若將新方法融合于工具之中,使人們通過(guò)使用工具來(lái)了
解新方法,就能更快促進(jìn)新方法的推廣。(2)在工業(yè)生產(chǎn)中,即使有先進(jìn)的技術(shù)和設(shè)
備,管理不善的企業(yè)也不能獲得良好的效益。軟件在生產(chǎn)中不能按質(zhì)按時(shí)完成計(jì)劃,管理
混亂往往是其中的重要原因。所以對(duì)于一個(gè)理想的軟件工程環(huán)境,應(yīng)該同時(shí)具備技術(shù)和管
理兩個(gè)方面。
4.試從你的親身實(shí)踐,談?wù)勡浖ぞ咴谲浖_發(fā)中的作用。
答:用C++開發(fā)一個(gè)軟件,是校園一卡通的模塊。首先,要在編輯程序支持下在計(jì)算
機(jī)中輸入源程序。然后編譯程序,把源程序翻譯成目標(biāo)程序。如果發(fā)現(xiàn)錯(cuò)誤,就重新調(diào)入
編輯程序?qū)υ闯绦蜻M(jìn)行修改。編譯通過(guò)后,再調(diào)用連接程序吧所有通過(guò)了編譯目標(biāo)程序連
同與之有關(guān)的程序連接起來(lái),構(gòu)成一個(gè)能在計(jì)算機(jī)上運(yùn)行的可執(zhí)行軟件。編譯程序,編輯
程序,連接程序以及支持他們的計(jì)算機(jī)操作系統(tǒng),都屬于軟件工具。離開這些工具,軟件
開發(fā)就是去了支持,變得十分困難和低效,甚至不能運(yùn)行。
5.什么是軟件工程環(huán)境?談?wù)勀銓?duì)環(huán)境重要性的認(rèn)識(shí)。答:方法與工具相結(jié)合,再加
上配套的軟、硬件支持就形成環(huán)境。例如在批處理時(shí)代,用戶開發(fā)的程序是分批送入計(jì)算
機(jī)中心的計(jì)算機(jī)的,有了錯(cuò)誤,就得下機(jī)修改。程序員對(duì)自己寫的程序只能繼續(xù)地跟蹤,
思路經(jīng)常被迫中斷,效率難于提高。分時(shí)系統(tǒng)的使用,使開發(fā)人員從此能在自己的終端上
跟蹤程序的開發(fā),僅此一點(diǎn),就明顯提高了開發(fā)的效率。
6.何謂面向?qū)ο筌浖こ蹋亢?jiǎn)述它與傳統(tǒng)軟件工程在各型軟件開發(fā)中的作用。
答:以面向?qū)ο蟪绦蛟O(shè)計(jì)為基礎(chǔ)。
7.軟件按規(guī)模大小可分成哪幾類?簡(jiǎn)述軟件工程中各型軟件開發(fā)中的作用。
答:按規(guī)模分為極小、小、中、大、甚大、極大。(1)中小型軟件:軟件工程對(duì)改進(jìn)
軟件質(zhì)量,提高程序員生產(chǎn)率和滿足用戶的需求,有很大的作用。(2)大型軟件:這類軟
件必須從頭至尾堅(jiān)持軟件工程的方法,嚴(yán)格遵守標(biāo)準(zhǔn)文檔格式和正規(guī)的復(fù)審制度,才能避
免或減少混亂,真正開發(fā)出大型的軟件.
8.什么是形式化軟件開發(fā)方法?實(shí)現(xiàn)這類開發(fā)的困難和出路在哪里?
答:它是一種基于數(shù)學(xué)的開發(fā)技術(shù),主要采用數(shù)學(xué)的方法來(lái)描述系統(tǒng)的性質(zhì)(例如程
序變換和程序驗(yàn)證等1形式化的方法加上自動(dòng)化的開發(fā)環(huán)境,可能是解決這一難題的出路。
軟件開發(fā)模型
1.什么是軟件生存周期?把生存周期劃分為階段的目的是什么?
答:軟件生存周期劃分為計(jì)劃、開發(fā)和運(yùn)行3個(gè)時(shí)期;把整個(gè)生存周期劃分為較小的
階段,給每個(gè)階段賦予確定而有限的任務(wù),就能夠化簡(jiǎn)每一步的工作內(nèi)容,使因?yàn)檐浖?guī)
模而增長(zhǎng)而大大增加了軟件復(fù)雜性變得交易控制和管理。
2.傳統(tǒng)的瀑布模型把生存周期分為哪些階段?瀑布模型軟件開發(fā)有哪些特點(diǎn)?
答:瀑布模型在編碼以前安排了分析階段和設(shè)計(jì)階段;階段間具有順序性和依賴性。
3.說(shuō)明文檔和復(fù)審對(duì)于軟件質(zhì)量的控制的作用。
答:每一階段都要完成規(guī)定的文檔,沒(méi)有完成文檔,就認(rèn)為沒(méi)有完成該階段的任務(wù)。
軟件開發(fā)是許多人共同參加的計(jì)劃,完整與合格的文檔,不僅是開發(fā)時(shí)期軟件人員之間互
相通信的媒介,也是運(yùn)行時(shí)期對(duì)軟件進(jìn)行維護(hù)的中要依據(jù)。每一階段者陵對(duì)已完成的文檔
進(jìn)行復(fù)審,以便盡早發(fā)現(xiàn)問(wèn)題,消除隱患。愈是早期潛伏下來(lái)的故障,暴露出來(lái)的時(shí)間愈
晚,排除故障需付出的代價(jià)也就愈高。及時(shí)復(fù)審是保證軟件質(zhì)量,降低開發(fā)成本的重要措
施。
4.什么是快速原型法?其快速表現(xiàn)在哪里?
答:首先建立一個(gè)能夠反映用戶主要需求的原型,讓用戶實(shí)際看一看未來(lái)系統(tǒng)的概貌,
以便判斷哪些功能是符合需要的,哪些方面還需要改進(jìn)。然后將原型改進(jìn),最終建立完全
符合用戶要求的新系統(tǒng)。它的快速表現(xiàn)在能夠縮短開發(fā)周期的語(yǔ)言和工具,能在短時(shí)間內(nèi)
提供出成品,但不包括成品中的細(xì)節(jié),然后讓客戶進(jìn)行對(duì)比。
5.實(shí)現(xiàn)快速原型法的最終系統(tǒng)可以有幾種方法?請(qǐng)說(shuō)明并加以比較。答:原型系統(tǒng)僅
包括未來(lái)系統(tǒng)的主要功能,以及系統(tǒng)的重要接口。為了盡快向用戶提供原型,開發(fā)原型系
統(tǒng)時(shí)應(yīng)盡量使用能縮短開發(fā)周期的語(yǔ)言和工具。最終系統(tǒng)的形成可以采用原型廢棄不用,
另一方法是補(bǔ)充修改模型獲得最終系統(tǒng)。方法一不包括系統(tǒng)的細(xì)節(jié)。后一種方法在實(shí)際工
作中,由于原型系統(tǒng)使用的語(yǔ)言往往存在效率不高等原因,除了少數(shù)簡(jiǎn)單的事務(wù)系統(tǒng)外,
大多數(shù)原型都廢棄不用,僅把建立原型的過(guò)程當(dāng)作幫助定義軟件需求的一種手段。
6.匕徽增量模型和螺旋模型的特點(diǎn),有什么不同和相似的地方?
答:增量模型是瀑布模型的順序特征與快速原型法的迭代特征相結(jié)合的產(chǎn)物。螺旋模
型是一種迭代模型,每迭代一次,螺旋線就前進(jìn)一周。增量模型每個(gè)增量具有高內(nèi)聚低耦
合,高度的獨(dú)立性。而螺旋模型它在結(jié)合瀑布模型與快速原型的基礎(chǔ)上還增加了風(fēng)險(xiǎn)分析。
7.為什么利用轉(zhuǎn)換模型開發(fā)軟件有一定難度?什么是凈室軟件工程?
答:從理論上說(shuō),一個(gè)正確的,滿足客戶需要的形式化規(guī)格說(shuō)明,經(jīng)過(guò)一系列正確的
程序變化后,可以確保得到這樣一個(gè)形式化規(guī)格說(shuō)明,目前還有較高的難度,同時(shí),軟件
開發(fā)者很少具有實(shí)用形式化方法所需的背景知識(shí),況且,轉(zhuǎn)換模型開發(fā)軟件現(xiàn)在還很臂時(shí)
和昂貴!凈室基本思想是力求在分析和設(shè)計(jì)階段就消除錯(cuò)誤,確保正確,然后在無(wú)缺陷或
"潔凈”的狀態(tài)下實(shí)現(xiàn)軟件的制作。
8.哪些開發(fā)模型適用于面向?qū)ο蟮能浖_發(fā)?
答:構(gòu)件集成模型
9交螺旋模型和構(gòu)件集成模型的異同。
答:構(gòu)件集成模型利用預(yù)先對(duì)封裝好的軟件構(gòu)件來(lái)構(gòu)造應(yīng)用軟件系統(tǒng),它融合了螺旋
模型的很多特征,支持軟件開發(fā)的迭代方法。
軟件需求分析
1.需求分析的任務(wù)是什么?怎樣理解分析階段的任務(wù)是決定“做什么",而不是
“怎么做"?
答:需求分析主要有兩個(gè)任務(wù):第一是通過(guò)對(duì)問(wèn)題及其環(huán)境的理解、分析和綜合建立
分析模型;第二是在完全弄清用戶對(duì)軟件系統(tǒng)的確切要求的基礎(chǔ)上,用"軟件需求規(guī)格說(shuō)
明書”把用戶的需求表達(dá)出來(lái)。需求分析的任務(wù)就是為了明確要開發(fā)的是一個(gè)什么樣的系
統(tǒng),而不是去怎么去實(shí)現(xiàn)這個(gè)系統(tǒng)。
2.需求分析要經(jīng)過(guò)哪些步驟?
答:需求獲取、需求提煉、需求描述、需求驗(yàn)證。
3.有哪兩種主要的分析模型,它們有什么聯(lián)系?
答:面向?qū)ο蠓治瞿P?、結(jié)構(gòu)化分析模型。前者是采用面向?qū)ο蟮乃枷脒M(jìn)行軟件需求
分析的建模過(guò)程,而后者模型的核心是DD,它是設(shè)計(jì)各種數(shù)據(jù)對(duì)象的總和。他們的模型分
別起到了描述數(shù)據(jù)模型,功能模型與行為模型的作用。
4.什么是結(jié)構(gòu)化分析?它的“結(jié)構(gòu)化"體現(xiàn)在那里?
答:是使用DFD、DD、結(jié)構(gòu)化語(yǔ)言、判定表和判定樹等工具,來(lái)建立一種新的、稱
為結(jié)構(gòu)化說(shuō)明書的目標(biāo)文檔。
5.什么是面向?qū)ο蠓治??其主要思想是什么?/p>
答:00A面向?qū)ο蟮姆治鍪遣捎妹嫦驅(qū)ο蟮乃枷脒M(jìn)行軟件需求分析建模的過(guò)程.主要
思想是采用面向?qū)ο蟮乃枷搿?/p>
5.需求說(shuō)明(或需求規(guī)格說(shuō)明書)由哪些部分組成?各部分的主要內(nèi)容是什么?
答:引言、信息描述、功能描述、行為描述、質(zhì)量描述、接口描述、其他描述.引言:
主要敘述在文體定義階段確定的關(guān)于軟件的目標(biāo)與范圍,簡(jiǎn)要介紹系統(tǒng)背景、蓋帽、軟件
項(xiàng)目約束和按考資料等。信息描述:給出對(duì)軟件所含信息的詳細(xì)描述,包括信息的內(nèi)容、
關(guān)系、數(shù)據(jù)流向、控制流向和結(jié)構(gòu)等。功能描述:對(duì)軟件功能要求的說(shuō)明,包括系統(tǒng)功能
劃分、每個(gè)功能的處理說(shuō)明、限制和控制描述等。行為描述:包括對(duì)系統(tǒng)狀態(tài)變化及事件
和動(dòng)作的描述,據(jù)此可以檢查外部事件和軟件內(nèi)部的控制特征。質(zhì)量描述:闡明在軟件交
付使用前需要進(jìn)行的共更能測(cè)試和性能測(cè)試,并且規(guī)定源程序和文檔應(yīng)該遵守的各種標(biāo)準(zhǔn)。
接口描述:包括系統(tǒng)的用戶界面、硬件接口、軟件接口和通信接口等的說(shuō)明。其他描述:
闡述系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)上的限制,系統(tǒng)的假設(shè)和依賴等其他需要說(shuō)明的內(nèi)容。
6.為什么DFD要分層?畫分層DFD要遵循哪些原則?
答:大型復(fù)雜的軟件系統(tǒng),其DFD可能含有數(shù)百乃至數(shù)千個(gè)加工,不能設(shè)想一次就將
它們?nèi)慨孆R。正確的做法是:從系統(tǒng)的基本模型(把整個(gè)系統(tǒng)看成一個(gè)加工)開始,逐
層地對(duì)系統(tǒng)進(jìn)行分解。原則:由頂向下,逐步細(xì)化。
7.DFD和CFD有什么區(qū)別?
8.什么是系統(tǒng)的行為模型,如何建立?
答:類對(duì)象模型所表示的是面向?qū)ο蠓治瞿P椭械撵o態(tài)部分,而對(duì)象行為模型則用于
描述系統(tǒng)的動(dòng)態(tài)行為,即系統(tǒng)如何對(duì)應(yīng)外部事件-一系統(tǒng)的行為模型。建立一個(gè)對(duì)象行為模
型一般要經(jīng)歷一些過(guò)程:評(píng)估所以的用例來(lái)理解系統(tǒng)中的交互序列;找出驅(qū)動(dòng)交互序列的
事件;為每個(gè)用例創(chuàng)建事件軌跡;為對(duì)象創(chuàng)建狀態(tài)轉(zhuǎn)換圖。
9.選一個(gè)系統(tǒng)(例如工資處理系統(tǒng)、飛機(jī)訂票系統(tǒng)、圖書館管理系統(tǒng)等),分別用SA
方法和00A方法對(duì)它進(jìn)行分析,并給出分析模型。
答:軟件設(shè)計(jì)概述1.傳統(tǒng)軟件工程把設(shè)計(jì)過(guò)程分成2步:概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)。
10.試述這2個(gè)階段個(gè)字主要完成的任務(wù)。
答:概要設(shè)計(jì),包括結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì),并編寫設(shè)計(jì)文檔。詳細(xì)設(shè)計(jì),其任務(wù)是確
定各個(gè)軟件組件的數(shù)據(jù)結(jié)構(gòu)和操作,產(chǎn)生描述個(gè)軟件組件的詳細(xì)設(shè)計(jì)文檔。
為什么大型軟件設(shè)計(jì)必須分成兩步走?
答:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)是軟件設(shè)計(jì)的兩步,概要設(shè)計(jì)確定模塊的劃分,模塊之間的
調(diào)用關(guān)系,接口等;詳細(xì)設(shè)計(jì)細(xì)分模塊、數(shù)據(jù)結(jié)構(gòu)等;大型系統(tǒng)中分兩步走是必要的,概
要設(shè)計(jì)確定模塊劃分后,詳細(xì)設(shè)計(jì)可把各模塊交給不同的人做詳細(xì)設(shè)計(jì),大型系統(tǒng)中這樣
的分工是比較合理的,能提高效率,做到合理分工。
2.解釋下列名詞:(1)模塊;(2)模塊化;(3)模塊化設(shè)計(jì)。
答:模塊是一個(gè)擁有明確定義的、輸出和特性的程序?qū)嶓w。模塊化是指解決一個(gè)復(fù)雜
問(wèn)題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過(guò)程。每個(gè)模塊完成一個(gè)特定的子功能,
所有的模塊按某種方法組裝起來(lái),成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。模塊化設(shè)
計(jì)是把大型軟件按照規(guī)定的原則劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相互關(guān)聯(lián)的模塊。但
又相互關(guān)聯(lián)的模塊。
3.什么是模塊獨(dú)立性?用什么度量?
答:模塊獨(dú)立性指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最
少且接口簡(jiǎn)單。模塊獨(dú)立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。獨(dú)
立性可以從兩個(gè)方面來(lái)度量模塊本身的內(nèi)聚性(Cohesion)和模塊之間的耦合(Coupling)。
4.具體說(shuō)明"一個(gè)模塊,一個(gè)功能”的含義,并試討論這類模塊的優(yōu)點(diǎn)。
5.什么是自頂向下設(shè)計(jì)?為什么說(shuō)它尤其適用于大型軟件的開發(fā)?答:設(shè)計(jì)時(shí)首先對(duì)
所設(shè)計(jì)的系統(tǒng)有一個(gè)全面的理解。然后從頂層開始,隹續(xù)的逐層向下分解,直至系統(tǒng)的所
有模塊都笑道便于掌握為止。自底向上設(shè)計(jì)反映了軟件規(guī)模較小的設(shè)計(jì)思想,隨著軟件規(guī)
模的增長(zhǎng),這種方法的缺點(diǎn)逐漸暴露出來(lái)。而自頂向下的設(shè)計(jì)需要進(jìn)行詳細(xì)的可行性論證,
易于修改和擴(kuò)展,整體測(cè)試較易通過(guò)。
6.自頂向下逐步細(xì)化的方法也適用于編寫教材。使用這種方法說(shuō)明編寫一本教材的過(guò)
程。
7.輸入三角形的3條邊長(zhǎng)(假定這些邊確實(shí)能組成一個(gè)三角形),用它們來(lái)鑒別三角形
的性質(zhì)(等腰、等邊、任意或者直角),并輸出結(jié)果。試用逐步細(xì)化的方法設(shè)計(jì)這一程序,
并用結(jié)構(gòu)化語(yǔ)言(漢語(yǔ)或英語(yǔ))寫出細(xì)化過(guò)程中每一步的過(guò)程描述。
8上匕較概要設(shè)計(jì)復(fù)審和過(guò)程設(shè)計(jì)復(fù)審的評(píng)審內(nèi)容,并說(shuō)明他們采取的復(fù)審方式有何異
同。
答:概要設(shè)計(jì)復(fù)審的重點(diǎn)放在系統(tǒng)的總體結(jié)構(gòu)、模塊劃分、內(nèi)外結(jié)構(gòu)等方面。例如軟
件結(jié)構(gòu)是否滿足需求?結(jié)構(gòu)形態(tài)是否合理?層次是否清晰?模塊的劃分是不是符合優(yōu)化原
則?系統(tǒng)的人機(jī)界面、內(nèi)外部接口、以及出錯(cuò)處理是不是合理等。過(guò)程設(shè)計(jì)復(fù)審的重點(diǎn)放
在模塊的具體設(shè)計(jì)上。例如模塊設(shè)計(jì)能否滿足其功能與性能要求?選擇算法與數(shù)據(jù)結(jié)構(gòu)是
否合理,是否符合編程語(yǔ)言的特點(diǎn)?設(shè)計(jì)描述簡(jiǎn)單、清晰等。概要設(shè)計(jì)復(fù)審常用的復(fù)審方
式是正式復(fù)審。
傳統(tǒng)的設(shè)計(jì)方法
L簡(jiǎn)釋事務(wù)、事務(wù)型結(jié)構(gòu)和變換型結(jié)構(gòu).
答:一次動(dòng)作、時(shí)間或狀態(tài)變化也可以成為一次事務(wù)。事務(wù)型結(jié)構(gòu)由至少一條接受路
徑、一個(gè)事務(wù)中心與若干條動(dòng)作路徑組成。變換型結(jié)構(gòu)由至少一條傳入路徑、變換中心和
傳出路徑組成。
2.簡(jiǎn)述從DFD圖到SC圖的映射規(guī)則。
答:(1)復(fù)審DFD圖,必要時(shí)可再次進(jìn)行修改或細(xì)化;(2)鑒別DFD圖所表示的軟
件系統(tǒng)的結(jié)構(gòu)特征,確定它所代表的軟件結(jié)構(gòu)是屬于變換型還是事務(wù)型。(3)按照SD方
法規(guī)定一組規(guī)則,把DFD圖轉(zhuǎn)換為初始的SC圖;(4)按照優(yōu)化設(shè)計(jì)的指導(dǎo)原則改進(jìn)初始
的SC圖,獲得最終SC圖,
5.某事務(wù)系統(tǒng)具有下列功能:(1)讀入用戶命令,并檢查其有效性;(2)按照命令的
編號(hào)(1-4號(hào))進(jìn)行分類處理(3)1號(hào)命令計(jì)算產(chǎn)品共識(shí),能根據(jù)用戶給出的各種產(chǎn)品數(shù)
量,計(jì)算出各工種的需要工時(shí)和缺額工時(shí);(4)2號(hào)命令計(jì)算材料消耗,根據(jù)產(chǎn)品的材料
定額和用戶給出的生產(chǎn)數(shù)量,計(jì)算各種材料的需求量(5)3號(hào)命令編制材料訂貨計(jì)劃(6)
4號(hào)命令計(jì)算產(chǎn)品成品試用結(jié)構(gòu)化分析和設(shè)計(jì)方法畫出該系統(tǒng)的DFD圖并據(jù)此到處系統(tǒng)的
SC圖。對(duì)動(dòng)作分支中的1號(hào)和2號(hào)命令要詳細(xì)描述和設(shè)計(jì),3號(hào)命令和4號(hào)命令允許從略,
可僅用示意圖表示。
7.簡(jiǎn)述過(guò)程(詳細(xì))設(shè)計(jì)說(shuō)明書的主要內(nèi)容,怎樣對(duì)它進(jìn)行復(fù)審?答:Q)為每個(gè)模塊
確定采用的算法。選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過(guò)程,寫出模塊的詳細(xì)過(guò)程描述;(2)確
定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);(3)確定模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)外部的接口和用戶界面,
對(duì)系統(tǒng)內(nèi)部其它模塊的接口,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。
8.簡(jiǎn)化匕喳交本章講解的幾種過(guò)程設(shè)計(jì)表達(dá)工具的優(yōu)缺點(diǎn)。
答:流程圖和N-S圖偽代碼和PDL語(yǔ)言。流程圖具有能隨意表達(dá)任何程序邏輯的有
點(diǎn),隨著結(jié)構(gòu)化程序設(shè)計(jì)方法的普及,流程圖在描述程序邏輯時(shí)的隨意性與靈活性恰恰變
成了它的缺點(diǎn)。N-S圖所有的程序結(jié)構(gòu)均用方框來(lái)表示,無(wú)論并列或者嵌套,程序的結(jié)構(gòu)
清晰可見。容易養(yǎng)成良好的程序設(shè)計(jì)風(fēng)格。缺點(diǎn)是當(dāng)程序內(nèi)嵌的層數(shù)增多時(shí),內(nèi)層的方塊
越畫越小,不僅增加畫圖的困難,也使圖形的清晰性受到影響。偽代碼工作量比畫圖小,
又容易轉(zhuǎn)換為真正的代碼,PDL具有很強(qiáng)的描述功能,是一種十分靈活和有用的過(guò)程表達(dá)
工具。
9.任選一種排序(從小到大)算法,分別用流程圖、N-S圖和PDL語(yǔ)言描述其詳細(xì)過(guò)
程。
11.試將下列用PDL偽代碼表示的某種模塊的過(guò)程性描述改用N-S圖表示。
......ExecuteprocessaREPEATUNTILconditionX8ExecuteprocessbIFcondition
XITHENBEGINExecuteprocessfIFcondition
X6THENREPEATUNTILconditionX7Executeprocess
iENDREPELSEBEGINExecuteprocessgExecuteprocess
hENDENDIFELSECASEOFXiWHENcontditionX2SELECTDOWHILE
contitionX5executeprocessCENDDOWHENconditionX3SELECTprocessdWHEN
conditionX4SELECTprocesseENDCASEENDIFENDREPExecuteprocess
jENDexecuteprocessaexecuteprocessbTXIFexecuteprocess
fTX3FTX4FTX6Fexecuteprocess
dexecuteprocesseexecuteprocessiexecuteprocessgREPEAT
UNTILX7executeprocesshexecuteprocessjREPEATUNTILconditionX8
12.圖5-63顯示了某倉(cāng)庫(kù)零件收發(fā)管理程序的數(shù)據(jù)結(jié)構(gòu),用Jackson圖表示。圖中
Part表示零件,Issue和Recept分別表示零件的出庫(kù)量和入庫(kù)量?,F(xiàn)要求:(1)找出輸
入結(jié)構(gòu)與輸出結(jié)構(gòu)之間的對(duì)應(yīng)單元(2)畫出用Jackson圖表示的程序結(jié)構(gòu)(3)列出程序
所需要的操作,并加到第(2)步畫出的程序結(jié)構(gòu)圖上(4)用偽代碼寫出收發(fā)管理程序的
過(guò)程性表示
Inputfilepartgroup*receptMovementrecord*issueNetmovement
line*bodyheadingOutputreport
13.某工資管理程序的輸入/輸出數(shù)據(jù)中包括:輸入數(shù)據(jù):職工姓名,日工資率,工作
天數(shù),加班天數(shù),病事假天數(shù),補(bǔ)貼變更,扣款變更等;輸出數(shù)據(jù):職工姓名,基本工資,
各項(xiàng)補(bǔ)貼,各項(xiàng)扣款,事發(fā)工資等;試用Jackson方法設(shè)計(jì)這一程序。軟件測(cè)試1.軟件
測(cè)試的基本任務(wù)是什么?測(cè)試與糾錯(cuò)有什么不同?測(cè)試的目的是發(fā)現(xiàn)程序錯(cuò)誤;測(cè)試的任
務(wù)是通過(guò)在計(jì)算機(jī)上執(zhí)行程序,暴露程序中潛在的錯(cuò)誤。糾錯(cuò)的目的是定位和糾正錯(cuò)誤;
糾錯(cuò)的任務(wù)是軟件故障,保證程序的可靠運(yùn)行。通常把一次程序執(zhí)行需要的測(cè)試數(shù)據(jù)成為
一個(gè)測(cè)試用例,每個(gè)測(cè)試用例產(chǎn)生一個(gè)相應(yīng)的測(cè)試結(jié)果,如果它與期望結(jié)果不符,便說(shuō)明
程序中存在錯(cuò)誤,需要用糾錯(cuò)來(lái)改正。2.怎樣理解下面的話所蘊(yùn)含的意義:"程序測(cè)試只
能證明錯(cuò)誤的存在,但不能證明錯(cuò)誤不存在"、"測(cè)試是為了證明程序有錯(cuò),而不是證明
程序無(wú)錯(cuò)”揭示了測(cè)試固有的一個(gè)重要性質(zhì)一不徹底性。徹底測(cè)試就是讓被測(cè)程序在一
切可能的輸入情況下全部執(zhí)行一遍,又稱窮舉測(cè)試。在實(shí)際情況中是根本無(wú)法實(shí)現(xiàn)的。這
就注定了一切實(shí)際測(cè)試都是不徹底的,當(dāng)然也就不能保證測(cè)試后的程序不存在遺留的錯(cuò)誤。
?測(cè)試的分類?測(cè)試方法測(cè)試用例和測(cè)試結(jié)果測(cè)試用例={測(cè)試數(shù)據(jù)+期望結(jié)果}測(cè)試結(jié)果
={測(cè)試數(shù)據(jù)+期望結(jié)果+實(shí)際結(jié)果}黑盒測(cè)試①等價(jià)測(cè)試把輸入數(shù)據(jù)的可能值劃分為若
干個(gè)等價(jià)類,使每類中的任何一個(gè)測(cè)試用例,都能代表同一等價(jià)類中的其它測(cè)試用例。采
用等價(jià)測(cè)試注意以下兩點(diǎn):劃分等價(jià)類不僅要考慮代表"有效"輸入值的有效等價(jià)類,還
要考慮代表"無(wú)效"輸入值得無(wú)效等價(jià)類;每一無(wú)效等價(jià)類至少要用一個(gè)測(cè)試用例,不然
可能漏掉某一類錯(cuò)誤,但允許若干個(gè)有效等價(jià)類合用一個(gè)測(cè)試用例,以便進(jìn)一步減少測(cè)試
的次數(shù)?!纠磕彻S公開招工,規(guī)定報(bào)名者年齡在16周歲至35周歲(在1967年2月
到1986年3月)。如果出生年月不在上述范圍內(nèi),將拒絕接受,并顯示“年齡不合格"等
出錯(cuò)信息。試用等價(jià)分類法設(shè)計(jì)這一程序功能的測(cè)試用例。第一步:劃分等價(jià)類輸入數(shù)據(jù)
有效等價(jià)類無(wú)效等價(jià)類出生年月(1)6位數(shù)字字符(2)有非數(shù)字字符(3)少于6個(gè)數(shù)字字符(4)
多于6個(gè)數(shù)字字符對(duì)應(yīng)數(shù)值(5)在196702-198603之間(6)<196702(7)>198603月份對(duì)應(yīng)
數(shù)值(8)在1-12之間(9)等于"0〃(10)>12第二步:設(shè)計(jì)有效等價(jià)類需要的測(cè)試用例測(cè)試
數(shù)據(jù)期望結(jié)果測(cè)試范圍197011輸入有效(1)、(5)、⑻第三步:為每一無(wú)效等價(jià)類設(shè)計(jì)一
個(gè)測(cè)試用例測(cè)試數(shù)據(jù)期望結(jié)果測(cè)試范圍MAY,70輸入無(wú)效(2)19705輸入無(wú)效(3)1968011
輸入無(wú)效(4)195512年齡不合格(6)196006年齡不合格⑺196200輸入無(wú)效(9)197222輸
入無(wú)效(10)②邊界測(cè)試程序員在處理邊界情況時(shí),很容易因忽略或考慮不周發(fā)生編碼
錯(cuò)誤。例如,數(shù)組容量、循環(huán)次數(shù)以及輸入數(shù)據(jù)與輸出數(shù)據(jù)在邊界值附近程序出錯(cuò)概率往
往較大。采用邊界值分析法就是要這樣來(lái)選擇測(cè)試用例,使得被測(cè)試程序能在邊界值及其
附近運(yùn)行,從而更有效地暴露程序中潛在的錯(cuò)誤。例如程序可能設(shè)有語(yǔ)句
If(196702<=value(birthdate)<=198603)thenread(birthdate)elsewrite"invalid
age"將上式〈二寫成<,以上所有測(cè)試都不能發(fā)現(xiàn)該錯(cuò)誤?!纠可项}年月日的測(cè)試用例(邊
界分析法)輸入割介類測(cè)試用例說(shuō)明測(cè)試數(shù)據(jù)期望結(jié)果選取理由出生年月1個(gè)數(shù)字字符5個(gè)
數(shù)字字符7個(gè)數(shù)字字符有1個(gè)非數(shù)字字符全是非數(shù)字字符
5197505198601119705AAUGUST輸入無(wú)效僅有一個(gè)合法字符比有效長(zhǎng)度恰少一個(gè)字符
比有效字符恰多一個(gè)字符非法字符最少非法字符最多6個(gè)數(shù)字字符196702輸入有效類型
與長(zhǎng)度均有效對(duì)應(yīng)數(shù)值35周歲16周歲196702198603合格年齡最大符合年齡最小符合
年齡>35周歲<16周歲196701198604不合格年齡恰大于合格年齡恰小于合格年齡月份
對(duì)應(yīng)數(shù)值月份為1月份為12196801198512輸入百效最小月份最大月份月份<1月
份>12196800197413輸入無(wú)效恰小于最小月份恰大于最大月份③錯(cuò)誤猜測(cè)法猜錯(cuò)
就是猜測(cè)被測(cè)程序放在哪些地方容易出錯(cuò),然后針對(duì)可能的薄弱環(huán)節(jié)來(lái)設(shè)計(jì)測(cè)試用例。一
般先用等價(jià)分類法和邊界值分析法設(shè)計(jì)測(cè)試用例,然后用猜錯(cuò)法補(bǔ)充一些例子作為輔助的
手段。白盒測(cè)試①邏輯覆蓋測(cè)試:用流程圖來(lái)設(shè)計(jì)測(cè)計(jì)用例。主要考察的重點(diǎn)是圖中的
判定框(選擇或循環(huán))。按照被測(cè)試程序所作測(cè)試的有效程度,邏輯測(cè)試可由弱到強(qiáng)區(qū)分5
種覆蓋標(biāo)準(zhǔn):語(yǔ)句覆蓋:每條語(yǔ)句至少執(zhí)行一次。判定覆蓋:每一判定的每個(gè)分支至少執(zhí)
行一次。條件覆蓋:每一判定中的每個(gè)條件,分別按〃真"、〃假"至少各執(zhí)行一次。判
定/條件覆蓋:同時(shí)滿足判定覆蓋和條件覆蓋的要求。條件組合覆蓋:求出判定中所有條件
的各種可能組合值,每一可能的條件子和至少執(zhí)行一次。覆蓋標(biāo)準(zhǔn)程序結(jié)構(gòu)舉例測(cè)試用例
應(yīng)滿足的條件語(yǔ)句覆蓋AÙB=.T.判定覆蓋AÙB=.T.,AÙB=.F.條
件覆蓋A=.T.,A=.F.B=.T.,B=.F.判定/條件覆蓋A&Ug「ave;B=.T.,AÙB=.F.A二.T.,
A=.F.B=.T.,B=.F.條件組合覆蓋A=.T.ÙB=.T.A=.T.ÙB=.F.A=.F.
ÙB=.T.A=.F.ÙB=.F.②路徑測(cè)試法程序圖:是一種簡(jiǎn)化的流程圖。對(duì)程
序圖中每一條可能的程序執(zhí)行路徑至少測(cè)試一次。如果程序中含有循環(huán)(在程序中表現(xiàn)為
環(huán)),則每個(gè)循環(huán)至少執(zhí)行一次。路徑測(cè)試具有如下特征:滿足結(jié)構(gòu)測(cè)試的最低要求。語(yǔ)句
覆蓋加判定覆蓋是對(duì)白盒測(cè)試的最低要求,同時(shí)滿足這兩種標(biāo)準(zhǔn)的覆蓋為"完全覆蓋"。
從對(duì)路徑測(cè)試的要求可見,它本身就包含了語(yǔ)句覆蓋和判定覆蓋(在程序圖上分別為點(diǎn)覆蓋
與邊覆蓋)。
軟件復(fù)用
1.什么是軟件復(fù)用?
答:在構(gòu)造新的軟件系統(tǒng)的過(guò)程中,對(duì)已存在的軟件人工制品的使用技術(shù)。
2.什么是領(lǐng)域工程?簡(jiǎn)述其活動(dòng)內(nèi)容。
答:領(lǐng)域工程是指通過(guò)領(lǐng)域分析找出最優(yōu)復(fù)用,把它們?cè)O(shè)計(jì)和構(gòu)造為可復(fù)用構(gòu)件,進(jìn)
而建立大規(guī)模的軟件構(gòu)件倉(cāng)庫(kù)的過(guò)程。答:按復(fù)用活動(dòng)所應(yīng)用的領(lǐng)域范圍,復(fù)用可劃分為
橫向復(fù)用和縱向復(fù)用。橫向復(fù)用是指復(fù)用不同應(yīng)用領(lǐng)域中的軟件元素如數(shù)據(jù)結(jié)構(gòu)、分類算
法等。縱向復(fù)用是指在一類具有較多公共性的應(yīng)用領(lǐng)域之間進(jìn)行軟部分復(fù)用。縱向復(fù)用包
括以下幾個(gè)方面的活動(dòng):Q)實(shí)施領(lǐng)域分析:根據(jù)應(yīng)用領(lǐng)域的特征及相似性,可預(yù)測(cè)軟構(gòu)件
的可復(fù)用性,發(fā)現(xiàn)并描述可復(fù)用實(shí)體,進(jìn)而建立相關(guān)的模型和需求規(guī)約。(2)開發(fā)可復(fù)用構(gòu)
件:一旦確認(rèn)了構(gòu)件的復(fù)用價(jià)值,即可進(jìn)行構(gòu)件的開發(fā),并對(duì)具有復(fù)用價(jià)值的軟構(gòu)件進(jìn)行
抽象、一般化和參數(shù)化,以便它們能夠適應(yīng)新的類似的應(yīng)用領(lǐng)域。(3)建立可復(fù)用構(gòu)件庫(kù):
將軟件構(gòu)件及其文檔進(jìn)行分類歸并,形成相關(guān)的分類檢索機(jī)制,成為可供后繼項(xiàng)目使用的
可復(fù)用資源。
3.什么是CBSD?實(shí)施軟件構(gòu)件技術(shù)要解決哪些問(wèn)題?
答:基于構(gòu)件的軟件開發(fā)(Component-BasedS。代wareDevelopment,簡(jiǎn)稱CBSD)
是在一定構(gòu)件模型的支持下,復(fù)用構(gòu)件庫(kù)中的一個(gè)或多個(gè)軟件構(gòu)件,通過(guò)組合構(gòu)件來(lái)構(gòu)造應(yīng)
用軟件系統(tǒng)的開發(fā)過(guò)程。要解決的問(wèn)題:構(gòu)件應(yīng)具有的特征:通用性、可變性、易組裝性。
在建造構(gòu)件時(shí),必須考略應(yīng)用領(lǐng)域的特征。領(lǐng)域構(gòu)件設(shè)計(jì)框架:標(biāo)準(zhǔn)數(shù)據(jù)、標(biāo)準(zhǔn)接口協(xié)議、
程序模板。
軟件維護(hù)
1.為什么說(shuō)軟件維護(hù)是不可避免的?
答:滿足用戶對(duì)已開發(fā)產(chǎn)品的性能與運(yùn)行環(huán)境不斷提高的需要,進(jìn)而達(dá)到延長(zhǎng)軟件的
壽命。
2.糾錯(cuò)和糾錯(cuò)性維護(hù)有哪些異同?
答:糾錯(cuò)的目的是定位和糾正錯(cuò)誤;糾錯(cuò)的任務(wù)是軟件故障,保證程序的可靠運(yùn)行。
糾錯(cuò)性維護(hù)是由于軟件測(cè)試的不徹底性,任何大型軟件交付使用后,都會(huì)繼續(xù)發(fā)現(xiàn)潛在的
錯(cuò)誤,對(duì)它們進(jìn)行診斷和改正。目的在于糾正在開發(fā)期間未能發(fā)現(xiàn)的遺留錯(cuò)誤。
4.什么是軟件配置?說(shuō)明搞好維護(hù)時(shí)期配置的意義與方法。
答:軟件配置是一個(gè)軟件在生存周期內(nèi),它的各種形式、各種版本的文檔與程序的總
稱。對(duì)軟件配置進(jìn)行科學(xué)的管理,是保證軟件質(zhì)量的重要手段。配置管理貫穿于整個(gè)生存
周期,在運(yùn)行和維護(hù)時(shí)期,其任務(wù)尤為繁重。為了方便對(duì)多種產(chǎn)品和多種版本進(jìn)行跟蹤和
控制,常常借助于自動(dòng)的配置管理工具:配置管理數(shù)據(jù)庫(kù)工具和版本控制庫(kù)工具。
8.什么是軟件再工程?軟件再工程的主要活動(dòng)有哪些?
答:軟件再工程是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年信號(hào)功分器行業(yè)深度研究分析報(bào)告
- 征地合同協(xié)議書范本下載
- 固廢商業(yè)計(jì)劃書
- 鋼構(gòu)合同協(xié)議書質(zhì)保金
- 中國(guó)PVB膜項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 公共技術(shù)服務(wù)平臺(tái)項(xiàng)目可行性研究報(bào)告
- 2025年文化創(chuàng)意咖啡廳商業(yè)計(jì)劃書
- 商用機(jī)器人商業(yè)計(jì)劃書
- 2025年石墨烯觸摸屏市場(chǎng)環(huán)境分析
- 外發(fā)組裝合同協(xié)議書
- 繪畫油畫入門行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 醫(yī)學(xué)資料 頸部脊髓損傷后遺癥護(hù)理查房 學(xué)習(xí)課件
- DB50-T 1279-2022 民用醇基液體燃料應(yīng)用技術(shù)規(guī)程
- 中學(xué)生防詐騙安全課件
- 江口縣芭蕉芋農(nóng)產(chǎn)品初加工淀粉生產(chǎn)項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 2025年中遠(yuǎn)海運(yùn)考試題及答案
- 轉(zhuǎn)正答辯流程
- 2025年瑞幸考試試題及答案
- 腫瘤防治中醫(yī)科普知識(shí)
- 品牌策劃與管理(第5版) 課件全套 程宇寧 第1-10章 品牌基本概念- 品牌國(guó)際化戰(zhàn)略與管理
- 數(shù)字人直播代運(yùn)營(yíng)協(xié)議
評(píng)論
0/150
提交評(píng)論