版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程第三版答案【篇一:軟件工程課后答案】>1.1什么是計算機(jī)軟件?軟件的特點(diǎn)是什么?答:計算機(jī)軟件指計算機(jī)系統(tǒng)中的程序及其文檔。軟件的特點(diǎn)是:a軟件是一種邏輯實體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進(jìn)度難以準(zhǔn)確得估算;b軟件是被開發(fā)的或被設(shè)計的,沒有明顯的制造過程,一旦開發(fā)成功,只需復(fù)制即可,但其維護(hù)的工作量大;c軟件的使用沒有硬件那樣的機(jī)械磨損和老化問題。1.2簡述軟件的分類,并舉例說明。答:在《計算機(jī)科學(xué)技術(shù)百科全書》中,將軟件分為系統(tǒng)軟件、支撐軟件和應(yīng)用軟件3類。a系統(tǒng)軟件:系統(tǒng)軟件居于計算機(jī)系統(tǒng)中最靠近硬件的一層,其他軟件一般都通過系統(tǒng)軟件發(fā)揮作用。系統(tǒng)軟件與具體的應(yīng)用領(lǐng)域無關(guān)。例如:編譯程序、操作系統(tǒng)等。b支撐軟件:支撐軟件是支撐軟件的開發(fā)和維護(hù)的軟件。例如:數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件、軟件工具、軟件開發(fā)環(huán)境等。c應(yīng)用軟件:應(yīng)用軟件是特定應(yīng)用領(lǐng)域?qū)S玫能浖?。例如:工?科學(xué)計算軟件、嵌入式軟件、產(chǎn)品線軟件、web應(yīng)用軟件、人工智能軟件。1.4什么是軟件工程?答:在《計算機(jī)科學(xué)技術(shù)百科全書》中軟件工程是應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。1.5簡述軟件工程的基本原則。答:軟件工程原則包括圍繞工程設(shè)計、工程支持和工程管理提出的以下4條基本原則:第一條:圍繞適宜的開發(fā)模型;第二條:采用合適的設(shè)計方法;第三條:提供高質(zhì)量的工程支撐;第四條:重視軟件工程的管理。1.6軟件生存周期分哪幾個階段?分別簡述各個階段的任務(wù)。答:軟件生存周期有計算機(jī)系統(tǒng)工程、需求分析、設(shè)計、編碼、測試、運(yùn)行和維護(hù)6個階段。a計算機(jī)系統(tǒng)工程的任務(wù)是確定待開發(fā)軟件的總體要求和范圍,以及該軟件與其他計算機(jī)系統(tǒng)元素之間的關(guān)系,進(jìn)行成本估算,做出進(jìn)度安排,并進(jìn)行可行性分析,即從經(jīng)濟(jì)、技術(shù)、法律等方面分析待開發(fā)的軟件是否有可行的解決方案,并在若干個可行的解決方案中做出選擇。b需求分析主要解決待開發(fā)軟件要“做什么”的問題,確定軟件的功能、性能、數(shù)據(jù)、界面等要求,生成軟件需求規(guī)約。c軟件設(shè)計只要解決待開發(fā)軟件“怎么做”的問題。軟件設(shè)計通常可分為系統(tǒng)設(shè)計和詳細(xì)設(shè)計。系統(tǒng)設(shè)計的任務(wù)是設(shè)計軟件系統(tǒng)的體系結(jié)構(gòu),包括軟件系統(tǒng)的組成成分、各成分的功能和接口、成分間的連接和通信,同時設(shè)計全局?jǐn)?shù)據(jù)結(jié)構(gòu)。詳細(xì)設(shè)計的任務(wù)是設(shè)計各個組成成分的實現(xiàn)細(xì)節(jié),包括局部數(shù)據(jù)結(jié)構(gòu)和算法等。d編碼階段的任務(wù)是用某種程序設(shè)計語言,將設(shè)計的結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。e測試階段的任務(wù)是發(fā)現(xiàn)并糾正軟件中的錯誤和缺陷。測試主要包括單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。f軟件完成各種測試后就可交付使用,在軟件運(yùn)行期間,需對投入運(yùn)行的軟件進(jìn)行維護(hù),即可發(fā)現(xiàn)了軟件中潛藏的錯誤或需要增加新的功能或使軟件適應(yīng)外界環(huán)境的變化等情況出現(xiàn)時,對軟件進(jìn)行修改。1.9簡述各類軟件過程模型的特點(diǎn)。答:典型的軟件過程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、噴泉模型、基于構(gòu)件的開發(fā)模型和形式方法模型等。a瀑布模型中,上一階段的活動完成并經(jīng)過評審后才能開始下一階段的活動,其特征是:接受上一階段活動的結(jié)果作為本階段活動的輸入;依據(jù)上一階段活動的結(jié)果實施本階段應(yīng)完成的活動;對本階段的活動進(jìn)行評審;將本階段活動的結(jié)果作為輸出。b增量模型將軟件的開發(fā)過程分成若干個日程時間交錯的線性序列,每個線性序列產(chǎn)生軟件的一個可發(fā)布的增量版本,后一個版本是對前一個版本的修改和補(bǔ)充,重復(fù)增量發(fā)布的過程,直至產(chǎn)生最終的完善產(chǎn)品。c原型模型從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標(biāo),標(biāo)識需求。然后快速制定原型開發(fā)的計劃,確定原型的目標(biāo)和范圍,采用快速設(shè)計的方式對其建模,并構(gòu)建模型。被開發(fā)的原型應(yīng)交付給客戶使用,并收集客戶的反饋意見,這些反饋意見可在下一輪迭代中對原型進(jìn)行改進(jìn)。在前一個原型需要改進(jìn),或者需要擴(kuò)展其范圍的時候,進(jìn)入下一輪原型的迭代開發(fā)。d螺旋模型將原型模型實現(xiàn)的迭代特征與瀑布模型中控制的和系統(tǒng)化的方面結(jié)合起來,不僅體現(xiàn)了這兩種模型的優(yōu)點(diǎn)而且還增加了風(fēng)險分析。e噴泉模型是一種支持面向?qū)ο箝_發(fā)的過程模型。類及對象是面向?qū)ο蠓椒ㄖ械幕境煞帧T诜治鲭A段,標(biāo)識類及對象,定義類之間的關(guān)系,建立對象-關(guān)系模型和對象-行為模型。在設(shè)計階段,從實現(xiàn)的角度對分析模型進(jìn)行調(diào)整和擴(kuò)充。在編碼階段,用面向?qū)ο笳Z言實現(xiàn)類及對象,通過消息機(jī)制實現(xiàn)對象之間的通信,完成軟件的功能。在面向?qū)ο蠓椒ㄖ?,分析模型和設(shè)計模型采用相同的符號表示體系,開發(fā)的各個活動沒有明顯的邊界,各個活動經(jīng)常重復(fù),迭代地交替進(jìn)行。f基于構(gòu)件的開發(fā)模型,基于構(gòu)件的開發(fā)是指利用預(yù)先包裝的構(gòu)建來構(gòu)造應(yīng)用系統(tǒng)。構(gòu)件可以是組織內(nèi)部開發(fā)的構(gòu)建,也可以是商業(yè)化的、現(xiàn)存的軟件構(gòu)件。g形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計、編程、系統(tǒng)集成、測試、文檔生成,直至維護(hù)等各個階段,凡是采用嚴(yán)格的數(shù)學(xué)語言,具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化方法用嚴(yán)格的數(shù)學(xué)語言和語義描述功能和設(shè)計規(guī)約,通過數(shù)學(xué)的分析和推導(dǎo),易于發(fā)現(xiàn)需求的歧義性、不完整性和不一致性,易于對分析模型、設(shè)計模型和程序進(jìn)行驗證。通過數(shù)學(xué)的演算,使得從形式化功能規(guī)約到形式化設(shè)計規(guī)約,以及從形式化設(shè)計規(guī)約到程序代碼轉(zhuǎn)換成為可能。1.10敏捷軟件開發(fā)的特點(diǎn)是什么?答:敏捷軟件開發(fā)的特點(diǎn)有4個:a個人和交互高于過程和工具;b可運(yùn)行軟件高于詳盡的文檔;c與客戶協(xié)作高于合同談判;d對變更及時做出反應(yīng)高于遵循計劃。1.12簡述敏捷軟件開發(fā)的原則。答:敏捷軟件開發(fā)必須遵循的12條原則如下;a最優(yōu)先的是通過盡早地和不斷地提交有價值的軟件來使客戶滿意;【篇二:軟件工程課后習(xí)題答案】1﹑軟件產(chǎn)品的特性是什么?答:軟件產(chǎn)品特性:⑴是一種邏輯產(chǎn)品,與物質(zhì)產(chǎn)品有很大的區(qū)別。⑵軟件產(chǎn)品的生產(chǎn)主要是研制,生產(chǎn)成本主要在開發(fā)和研制,開發(fā)研制完成后,通過復(fù)制就產(chǎn)生了大量軟件產(chǎn)品。⑶軟件產(chǎn)品不會用壞,不存在磨損,消耗。⑷生產(chǎn)主要是腦力勞動,還末完全擺脫手工開發(fā)方式,大部分產(chǎn)品是定做的⑸開發(fā)軟件的費(fèi)用不斷增加,致使生產(chǎn)成本相當(dāng)昂貴。2﹑軟件生產(chǎn)有幾個階段?各有何特征?答:⑴程序設(shè)計時代:這個階段生產(chǎn)方式是個體勞動,使用的生產(chǎn)工具是機(jī)器語言,匯編語言。⑵程序系統(tǒng)時代:這個階段生產(chǎn)方式是小集團(tuán)合作生產(chǎn),使用的生產(chǎn)工具是高級語言,開發(fā)方法仍依靠個人技巧,但開始提出結(jié)構(gòu)化方法。⑶軟件工程時代:這個階段生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫﹑開發(fā)工具﹑開發(fā)環(huán)境﹑網(wǎng)絡(luò)﹑分布式﹑面向?qū)ο蠹夹g(shù)來開發(fā)軟件。3﹑什么是軟件危機(jī)?產(chǎn)生原因是什么?答:軟件開發(fā)技術(shù)的進(jìn)步未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,問題積累起來,形態(tài)尖銳的矛盾,導(dǎo)致了軟件危機(jī)。產(chǎn)生原因:⑴軟件規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。⑵軟件開發(fā)管理困難而復(fù)雜。⑶軟件包開發(fā)費(fèi)用不斷增加。⑷軟件開發(fā)技術(shù)落后。⑸生產(chǎn)方式落后,仍采用手工方式。⑹開發(fā)工具落后,生產(chǎn)率提高緩慢。4﹑什么是軟件工程?它目標(biāo)和內(nèi)容是什么?答:軟件工程就是用科學(xué)的知識程和技術(shù)原理來定義,開發(fā),維護(hù)軟件的一門學(xué)科。軟件工程目標(biāo):付出較低開發(fā)成本;達(dá)到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護(hù)費(fèi)用;能按時完成開發(fā)任務(wù),及時交付使用;開發(fā)的軟件可靠性高。軟件工程內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管理兩個方面。開發(fā)技術(shù)主要研究:軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。開發(fā)管理主要研究:軟件管理學(xué),軟件經(jīng)濟(jì)學(xué),軟件心理學(xué)。5﹑軟件工程面臨的問題是什么?答:軟件工程需要解決的問題:軟件的費(fèi)用,可靠性,可維護(hù)性,軟件生產(chǎn)率和軟件的重用。6﹑什么是軟件生存周期?它有哪幾個活動?答:軟件生存周期:一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。包括:可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細(xì)設(shè)計,編碼,測試,維護(hù)。7﹑什么是軟件生存周期模型?有哪些主要模型?答:生存周期模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對軟件開發(fā)提供強(qiáng)有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基于知識的模型,變換模型。8﹑什么是軟件開發(fā)方法?有哪些主要方法?答:使用早已定義好的技術(shù)集及符號表示習(xí)慣來組織軟件生產(chǎn)的過程。通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。軟件開發(fā)方法是克服軟件危機(jī)的重要方面之一,對軟件工程及軟件包產(chǎn)業(yè)的發(fā)展起了不可估量的作用。主要有:結(jié)構(gòu)化方法,jackson方法,維也納開發(fā)方法﹙vdm﹚,面向?qū)ο箝_發(fā)方法。第二章習(xí)題參考答案1.可行性研究的任務(wù)是什么?答:可行研究的任務(wù):首先需要進(jìn)行概要的分析研究,初步確定項目的規(guī)模,目標(biāo),約束和限制。分析員再進(jìn)行簡要的需求分析,抽象出項目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計,探索出若干種可供選擇的解決方法,對每種解決方法都要研究它的可行性。主要從三個方面考慮:⑴技術(shù)可行性:一般要考慮的情況包括開發(fā)的風(fēng)險即設(shè)計出的系統(tǒng)能否達(dá)到要求的功能和性能;資源的有效性;相關(guān)技術(shù)的發(fā)展是否支持;⑵經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資。⑶社會可行性:要開發(fā)的項目是否存在任何侵權(quán)問題,運(yùn)行方式在用戶組織內(nèi)是否可行,現(xiàn)有管理制度﹑人員素質(zhì)﹑操作方式是否可行。2.可行性研究有哪些步驟?答:⑴確定項目規(guī)模和目標(biāo);⑵研究正在運(yùn)行的系統(tǒng);收集﹑研究﹑分析現(xiàn)有系統(tǒng)的文檔資料,實地考察系統(tǒng)訪問有關(guān)人員,然后描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖。⑶建立新系統(tǒng)的高層邏輯模型;使用數(shù)據(jù)流圖和數(shù)據(jù)字典描述數(shù)據(jù)在系統(tǒng)中的流動和處理情況。⑷導(dǎo)出和評價各種方案;導(dǎo)出若干較高層次的物理解決方法,根據(jù)技術(shù)可行性﹑經(jīng)濟(jì)可行性﹑社會可行性進(jìn)行評估,得到可行的解決方法。⑸推薦可行方案;進(jìn)行成本~效益分析,決定該項目是否值得開發(fā),若值得開發(fā)那么解決方案是什么,并且說明該方案可行的原因和理由。⑹編寫可行性研究報告;將上述可行性過程的結(jié)果寫成相應(yīng)文檔,即可行性研究報告。3.可行性研究報告有哪些主要內(nèi)容?答:⑴引言:編寫本文檔的目的;項目名稱﹑背景;本文檔用到的專門術(shù)語和參考資料。⑵可行性研究前提:說明開發(fā)項目的功能﹑性能和基本要求;達(dá)到的目標(biāo);各種限制條件;可行性研究方法和決定可行性的主要因素。⑶對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負(fù)荷;各項費(fèi)用支出;所需各類專業(yè)技術(shù)人吧和數(shù)量;所需各種設(shè)備;向有系統(tǒng)存在什么問題。⑷所建議的技術(shù)可行性分析:所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程;與現(xiàn)有系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響;對各種設(shè)備﹑現(xiàn)有軟件﹑開發(fā)環(huán)境﹑運(yùn)行環(huán)境的影響;對經(jīng)費(fèi)支出的影響;對技術(shù)可行性的評價。⑸所建議系統(tǒng)的經(jīng)濟(jì)可行性分析:說明建議系統(tǒng)的確良各種支出,各種效益;收益投資比;投資順收周期。⑹社會因素可行性分析:說明法律因素,對合同責(zé)任﹑侵犯專利權(quán)﹑侵犯版權(quán)等問題的分析;說明用戶使用可行性,是否滿足用戶行政管理﹑工作制度﹑人吧素質(zhì)的要求。⑺其它可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。⑻結(jié)論意見:說明項目是否能開發(fā);還需什么條件才能開發(fā);對項目目標(biāo)有何變動等。4.成本--效益分析可用哪些指標(biāo)進(jìn)行度量?答:⑴投資回收率:通常把建立系統(tǒng)若干年后能取得的收益折算成現(xiàn)在的價值和開發(fā)系統(tǒng)所需的費(fèi)用進(jìn)行比較得出投資回收率。⑵投資回收期:就是使累計的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需的時間。⑶純收入:整個生存周期之內(nèi)的累計經(jīng)濟(jì)效益(折成現(xiàn)在值)與投資之差。5.項目開發(fā)計劃有哪些內(nèi)容?答:⑴項目概述:說明項目的各項主要工作;說明軟件的功能﹑性能;為完成項目應(yīng)具有的條件;用戶及合同承包者承擔(dān)的工作完成的期限及其他條件限制;應(yīng)交付的程序名稱;所使用的語言及程儲形式;應(yīng)交付的文檔。⑵實施計劃:說明任務(wù)的劃分,各任務(wù)責(zé)任人,項目開發(fā)進(jìn)度,項目的預(yù)算,各階段的費(fèi)用支出,各階段應(yīng)完成的任務(wù),用圖表說明每項任務(wù)的開始和完成時間。⑶人員組織及分工:所需人員類型﹑數(shù)量﹑組成結(jié)構(gòu)。⑷交付期限:最后完工日期。第三章習(xí)題參考答案⒈什么是需求分析?需求分析階段的基本任務(wù)是什么?答:需求分析:開發(fā)人員準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程?;救蝿?wù):⑴問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。⑵分析與綜合,導(dǎo)出軟件的邏輯模型⑶編寫文檔:包括編寫需求規(guī)格說明書,初步用戶使用手冊,確認(rèn)測試計劃,修改完善軟件開發(fā)計劃⒉什么是結(jié)構(gòu)分析方法?該方法使用什么描述工具?答:結(jié)構(gòu)化分析:簡稱sa,面向數(shù)據(jù)流進(jìn)行數(shù)據(jù)分析的方法。采用自頂向下逐層分解的分析策略。頂層抽象地描述整個系統(tǒng),底層具體地畫出系統(tǒng)工程的每個細(xì)節(jié)。中間層則是從抽象到具體的過渡。使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結(jié)構(gòu)化語言,判定表,判定樹描述加工邏輯。⒊結(jié)構(gòu)化分析方法通過哪些步驟來實現(xiàn)?答:⑴了解當(dāng)前系統(tǒng)的工作流程,獲得當(dāng)前系統(tǒng)的物理模型。⑵抽象出當(dāng)前系統(tǒng)的邏輯模型。⑶建立目標(biāo)系統(tǒng)的邏輯模型。⑷作進(jìn)一步補(bǔ)充和優(yōu)化。⒌畫數(shù)據(jù)流圖應(yīng)注意什么事項?答:命名:不能使用缺乏具體含義的名字,加工名應(yīng)能反映出處理的功能。1.畫數(shù)據(jù)流而不是控制流。數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。一般不畫物質(zhì)流。2.每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。編號:某個加工分解成加一張數(shù)據(jù)流圖時,上層圖為父圖,下層圖為子圖。子圖應(yīng)編號子圖上的所有加工也應(yīng)編號,子圖的編號應(yīng)與父圖的編號相對應(yīng)。3.父圖與子圖的平衡:子圖的輸入輸出數(shù)據(jù)流同父圖相應(yīng)加工的輸入輸出數(shù)據(jù)流必須一致⑵抽象:認(rèn)識復(fù)雜現(xiàn)象過程所使用權(quán)的工具,只考慮事物本質(zhì)的共同特性,忽略細(xì)節(jié)和其它因素。通過抽象確定組成軟件的過程實體。⑶信息隱蔽:將模塊實現(xiàn)自身功能的細(xì)節(jié)與數(shù)據(jù)局部數(shù)據(jù)存儲:當(dāng)某慨?dāng)?shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。注意數(shù)據(jù)流圖的易理解性。⒍什么是數(shù)據(jù)字典?其作用是什么?共有哪些條目?答:數(shù)據(jù)字典(dd)用來定義數(shù)據(jù)庫流圖中的各個成分的具體含義。有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項,數(shù)據(jù)存儲,基本加工。⒎描述加工邏輯有哪些工具?答:加工邏輯的描述:一般用結(jié)構(gòu)化語言,判定表,判定樹結(jié)構(gòu)化語言是介于自然語言和形式語言之間的一種半形式化語言。它的結(jié)構(gòu)可分里層和內(nèi)層⑴外層:用來描述控制結(jié)構(gòu),采用順序,選擇,重復(fù)三種基本結(jié)構(gòu)。順序結(jié)構(gòu):是一組祈使語句,選擇語句,重復(fù)語句的順序排列②選擇結(jié)構(gòu):一般用if-then-elase-endif,case-of-endcase等關(guān)鍵詞。③重復(fù)結(jié)構(gòu):一般用do-while-enddo,repeat-until等關(guān)鍵詞。⑵內(nèi)層:一般采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞和有限的自定義詞,其動詞含義要具體,盡量不使用形容詞和副詞來修飾。包括:idef0描述系統(tǒng)的功能活動及聯(lián)系,建立系統(tǒng)的功能模型。即反映系統(tǒng)做什么折功能。idef1描述系統(tǒng)的信息及聯(lián)系,建立系統(tǒng)的信息模型。idef2進(jìn)行系統(tǒng)模擬,建立系統(tǒng)的動態(tài)模型。idef0特點(diǎn):⑴采用方框和箭頭等簡單圖形符號描述系統(tǒng)的活動和數(shù)據(jù)流,描述活動所受的約束條件及實現(xiàn)機(jī)制。如下圖描述,其中輸入為完成某活動時所需的數(shù)據(jù),輸出指執(zhí)行活動產(chǎn)生時的數(shù)據(jù),控制活動指所受到的約束條件,機(jī)制是指活動由誰來完成。⑵采用嚴(yán)格的自頂向下﹑逐層分解的方式建立系統(tǒng)功能模型。⒐簡述sa方法的優(yōu)缺點(diǎn)。答:sa方法是軟件需求分析中公認(rèn)的,有成效的,技術(shù)成熟,使用廣泛的一種結(jié)構(gòu)化分析方法。較適用于開發(fā)數(shù)據(jù)處理類型軟件的需求分析。利用圖形等半形式化工具表達(dá)需求,簡明,易讀,也易于使用。但也存在一些弱點(diǎn),表現(xiàn)如下:⑴sa方法僅是一個靜態(tài)模型,沒有反映處理的順序,即控制流程。⑵sa方法使用dfd在分析與描述數(shù)據(jù)要求方面是有局限的,只有與數(shù)據(jù)庫技術(shù)中的實體聯(lián)系圖(er圖)結(jié)合起來,才能較完整地描述用戶對系統(tǒng)的需求。⑶dfd不適合描述人機(jī)界面系統(tǒng)的要求,一些人機(jī)交互較頻繁的軟件系統(tǒng)。⑷sa方法要與形式化方法結(jié)合起來,才能更精確地描述軟件需求。⑸要借助需求分析工具,提高需求分析的質(zhì)量及效率。第四章習(xí)題參考答案1、什么是軟件概要設(shè)計?該階段的基本任務(wù)是什么?答:把一個軟件需求轉(zhuǎn)換為軟件表示時,首先設(shè)計出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計或結(jié)構(gòu)設(shè)計。基本任務(wù):⑴設(shè)計軟件系統(tǒng)結(jié)構(gòu),具體為:1.采用某種設(shè)計方法,將一個復(fù)雜的系統(tǒng)按功能劃分為模塊。2.確定每個模塊的功能。3.確定模塊之間的調(diào)用關(guān)系。4.確定模塊之間的接口(模塊之間傳遞的信息)評價模塊的結(jié)構(gòu)質(zhì)量⑵進(jìn)行數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的設(shè)計⑶編寫概要設(shè)計的文檔主要內(nèi)容有:概要設(shè)計說明書,數(shù)據(jù)庫說明書(dbms的簡介,概念模型,邏輯設(shè)計,結(jié)果)用戶手冊,修訂測試計劃(測試的策略﹑方法﹑步驟)⑷評審:是否完整地實現(xiàn)了規(guī)定的功能﹑性能要求。設(shè)計方案是否可行。關(guān)鍵的處理及內(nèi)部接口定義的正確性,有效性,各部分的一致性。2、軟件設(shè)計的基本原理包括哪些內(nèi)容?答:⑴模塊化:模塊是軟件的組成部分,是具有獨(dú)立功能且可命名的一段程序,所有模塊組成整體,可以滿足問題的要求。模塊化即按照一定的原則,將軟件劃分成若干個模塊,每個模塊完成一個特定的功能,然后把這些模塊按照某種方法組裝成一個軟件系統(tǒng)。(可降低復(fù)雜度、減少工作量)模塊具有以下幾種特性:接口:模塊的輸入輸出。功能:指模塊實現(xiàn)什么功能。邏輯:描述模塊內(nèi)部如何實現(xiàn)要求及所需的數(shù)據(jù)。狀態(tài):該模塊的運(yùn)行環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。隱蔽起來。模塊間僅交換為完成系統(tǒng)功能所必須的信息。⑷模塊獨(dú)立性:每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能。3、衡量模塊獨(dú)立性的兩個標(biāo)準(zhǔn)是什么?各表示什么含義?答:內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計目標(biāo)。耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強(qiáng),獨(dú)立性越差,以低耦合為設(shè)計目標(biāo)。4、模塊的耦合性有哪幾種?各表示什么含義?答:⑴內(nèi)容耦合:一個模塊直接操作或修改另一模塊的數(shù)據(jù),或者不通過正常入口直接轉(zhuǎn)入另一模塊⑵公共耦合:兩個或多個模塊通過共同引用一個全局?jǐn)?shù)據(jù)環(huán)境相互作用⑶控制耦合:模塊之間通過傳遞控制信息相互作用⑷標(biāo)記耦合:兩個模塊之間通過傳遞公共指針或地址相互作用的耦合⑸數(shù)據(jù)耦合:模塊之間通過傳遞數(shù)據(jù)交換信息⑹無耦合:模塊間無任何關(guān)系,獨(dú)立工作5、模塊的內(nèi)聚性有哪幾種?各表示什么含義?答:⑴偶然內(nèi)聚:一個模塊各個成分之間毫無關(guān)系⑵邏輯內(nèi)聚:將幾個邏輯上相關(guān)的功能放在同一個模塊中⑶時間內(nèi)聚:一個模塊完成的功能在同一時間執(zhí)行⑷過程內(nèi)聚:一個模塊內(nèi)部的處理成分是相關(guān)的,而且必須以特定的次序執(zhí)行⑸通信內(nèi)聚:一個模塊的所有成分都集中在同一個數(shù)據(jù)結(jié)構(gòu)上⑹順序內(nèi)聚:一個模塊的各個成分同一個功能密切相關(guān),而且一個成分的輸出,作為另外一個成分的輸入⑺功能內(nèi)聚:模塊內(nèi)的所有成分屬于一個整體,完成單一的功能。(內(nèi)聚最高)6、什么是軟件結(jié)構(gòu)?簡述軟件結(jié)構(gòu)設(shè)計的優(yōu)化準(zhǔn)則。答:⑴改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性首先設(shè)計出軟件初始結(jié)構(gòu),評價該結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。⑵模塊的規(guī)模應(yīng)該適中⑶模塊結(jié)構(gòu)的深度、寬度、扇出和扇入應(yīng)適中。深度:軟件結(jié)構(gòu)中控制的層數(shù)寬度:軟件結(jié)構(gòu)中同一層次上最大模塊總數(shù)扇入:某一模塊有多少直接調(diào)用它的上級模塊數(shù)目(越大越好)扇出:一個模塊直接控制(調(diào)用)下級模塊的數(shù)目。(越少越好,3,4個為宜,不超過9個,頂層扇出較高,中間扇出較少,底層模塊高扇入多⑷一個模塊的作用域(范圍),應(yīng)處在這個模塊的控制域(范圍)之內(nèi)模塊的作用域:受該模塊內(nèi)一個判定影響的所有模塊的集合模塊的控制域:這個模塊本身以及所有直接或間接從屬于它的模塊的集合一個模塊的影響范圍(作用域),應(yīng)處在這個模塊的模塊的控制范圍(控制域)內(nèi)。8、什么樣是事物流?什么是變換流?試將相應(yīng)形式的數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖答:數(shù)據(jù)流圖(dfd)一般可分為變換流,事物流兩種。變換流:由輸入﹑輸出﹑變換(或稱處理)三部分組成,是一順序結(jié)構(gòu)。事物流:它的某個加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并且根據(jù)輸入值選擇其中一個路徑來執(zhí)行。(這人加工稱為事務(wù)處理中心)9.試述變換分析﹑事務(wù)分析設(shè)計步驟。答:變換分析設(shè)計步驟:⑴確定變換中心,邏輯輸入和輸出。⑵設(shè)計軟件結(jié)構(gòu)的頂層和第一層--變換結(jié)構(gòu):頂層的功能是完成所有模塊的控制(名稱應(yīng)是系統(tǒng)名,以體現(xiàn)完成整個系統(tǒng)功能)第一層至少有三種功能模塊:輸入﹑輸出和變換模塊⑶設(shè)計中﹑下層模塊,對第一層的模塊自頂向下分解。輸入模塊由兩部分組成:接收數(shù)據(jù)﹑轉(zhuǎn)換成調(diào)用模塊所需信息。輸出模塊由兩部分組成:將數(shù)據(jù)轉(zhuǎn)換成下屬模塊所需的形式﹑發(fā)送數(shù)據(jù)變換模塊:對每個基本加工建立一功能模塊、⑷設(shè)計的優(yōu)化:輸入部分求精,每個物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外部接口。其它輸入模塊與轉(zhuǎn)換數(shù)據(jù)模塊都很簡單時,可將它們合并。輸出部分求精:每個物理輸出設(shè)置專門模塊,其它也可適當(dāng)合并。變換部分求精:根據(jù)設(shè)計準(zhǔn)則,對模塊適當(dāng)合并。事務(wù)分析的設(shè)計步驟:⑴確定事務(wù)中心和加工路徑⑵設(shè)計頂層(事務(wù)機(jī)構(gòu))和第一層頂層模塊有兩個功能:接收數(shù)據(jù)和根據(jù)事務(wù)類型調(diào)動相應(yīng)處理模塊。⑶中下層模塊的設(shè)計﹑優(yōu)化工作與變換結(jié)構(gòu)相同。事務(wù)型軟件結(jié)構(gòu)包括兩部分:接收分支發(fā)送分支出通常包括一調(diào)度模塊,當(dāng)事務(wù)類型不多時,可與主模塊合并。第五章習(xí)題參考答案1、詳細(xì)設(shè)計的基本任務(wù)是什么,有哪幾種描述方法?答:詳細(xì)設(shè)計的基本任務(wù)包括:(1)為每個模塊進(jìn)行詳細(xì)的算法設(shè)計(2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(3)對數(shù)據(jù)庫進(jìn)行物理設(shè)計(4)其他設(shè)計(5)編寫詳細(xì)設(shè)計說明書(6)評審詳細(xì)設(shè)計的描述方法有圖形、表格和語言,其中圖形常用結(jié)構(gòu)化程序流程圖、盒圖和pad(問題分析圖)為描述工具,語言常用過程設(shè)計語言(pdl)來作為工具。2、結(jié)構(gòu)化程序設(shè)計的基本要點(diǎn)是什么?答:主要有三個:(1)采用自頂向下、逐步求精的程序設(shè)計方法(2)使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)構(gòu)造,這三種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。(3)主程序員組的組織形式。3、簡述jackson方法的設(shè)計步驟。答:jackson方法的設(shè)計步驟如下:1.分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用jackson結(jié)構(gòu)圖表示這些數(shù)據(jù)結(jié)構(gòu)。(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元。3.按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)。4.列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼寫出程序。比較?答:白盒法測試法把測試對象看作一個打開的盒子,測試人員須了解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進(jìn)行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。白盒法有下列幾種覆蓋標(biāo)準(zhǔn):語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋從上到下的覆蓋標(biāo)準(zhǔn)其檢錯能力也從弱到強(qiáng),其中條件組合發(fā)現(xiàn)錯誤的能力較強(qiáng),凡滿足其標(biāo)準(zhǔn)的測試用例,也必然滿足前四種覆蓋標(biāo)準(zhǔn)。在實際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補(bǔ)充部分用例來達(dá)到路徑覆蓋的測試標(biāo)準(zhǔn)。什么是黑盒測試法?采用黑盒技術(shù)測試用例有哪幾種方法?這些第六章習(xí)題參考答案程序語言有哪些共同特征?答:程序語言的共同特征(似為特性更符合題意)是指程序設(shè)計語言的語言特性,包括心理特性、工程特性和技術(shù)特性三個方面。語言的心理特性對人機(jī)通信的質(zhì)量有主要的影響;語言的工程特性對軟件開發(fā)成功一否有重要的影響,此外,語言的技術(shù)特性也會影響軟件設(shè)計的質(zhì)量。在項目開發(fā)時選擇程序設(shè)計語言通??紤]哪些因素?答:通常要考慮的因素有:項目的應(yīng)用領(lǐng)域、軟件開發(fā)的方法、軟件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性以及軟件開發(fā)人員的知識等。第4代語言(4gl)有哪些主要特征?答:4gl的主要特征是:1.友好的用戶界面2.兼有過程性和非過程性雙重特性3.高效的程序代碼4.完備的數(shù)據(jù)庫(5)應(yīng)用程序生成器舉例說明各種程序設(shè)計語言的特點(diǎn)及適用范圍?答:以常見的一些編程語言為例:fortran語言,它不僅面向科學(xué)計算,數(shù)據(jù)處理能力也極強(qiáng)。適用于科學(xué)工程計算;pascal語言,具有很強(qiáng)的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴(yán)謹(jǐn)。它是第一個體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)構(gòu)化算法和科學(xué)計算,操作系統(tǒng)的編寫;c語言:功能強(qiáng)大,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),可大量運(yùn)用指針,具有豐富靈活的操作運(yùn)算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運(yùn)行效率高。可用于許多領(lǐng)域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。coble語言,它具有極強(qiáng)的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。sql:結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)庫進(jìn)行存取管理。匯編語言和ada語言,主要用于實時處理和編寫系統(tǒng)軟件。prolog、lisp語言。lisp是一種函數(shù)型語言,特別適用于組合問題中符號運(yùn)算和表處理,用于定理證明、樹的搜索和其他問題的求解。prolog是一種邏輯型語言,它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。c++、java語言,是面向?qū)ο蟮脑O(shè)計語言,用于面向?qū)ο蟮姆介_發(fā)軟件。什么是程序設(shè)計風(fēng)格?為了具有良好的設(shè)計風(fēng)格,應(yīng)注意哪些方面的問題?答:程序設(shè)計風(fēng)格是指一個人編制程序時所表現(xiàn)出來的特點(diǎn)、習(xí)慣、邏輯思路等。要形成良好的程序設(shè)計風(fēng)格,應(yīng)從源程序文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出和追求效率幾個方面加以注意。第七章習(xí)題參考答案軟件測試的目的是什么?軟件測試中,應(yīng)注意哪些原則?答:軟件測試的目的是為了發(fā)現(xiàn)軟件的錯誤。軟件測試中應(yīng)注意的原則有:測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。這樣便于對照檢查,做到有的放矢。測試且例不僅選用合理輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。這樣能更多地發(fā)現(xiàn)錯誤,提高程序的可靠性。對于不合理的輸入數(shù)據(jù),程序應(yīng)拒絕接受,并給出相應(yīng)的提示。除了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了它不應(yīng)該做的事。應(yīng)制定測試計劃并嚴(yán)格執(zhí)行,排除隨意性。長期保留測試用例。對發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進(jìn)行更深入的測試。(7)程序員應(yīng)避免測試自己的程序。測試是一種挑剔性的行為,心理狀態(tài)是測試自己程序的障礙。什么是白盒測試法?有哪些覆蓋標(biāo)準(zhǔn)?試對他們的檢錯能力進(jìn)行方法各有什么特點(diǎn)?答:黑盒測試法把被測試對象看成是一相黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進(jìn)行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。采用黑盒技術(shù)測試用例的方法有:等價類的劃分、邊界值分析、錯誤推測和因果圖。軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?答:軟件測試要經(jīng)過的步驟是:單元測試→集成測試→確認(rèn)測試→系統(tǒng)測試。單元測試對源程序中每一個程序單元進(jìn)行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細(xì)設(shè)計文檔。集成測試是為了檢查與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計是否合理有效。確認(rèn)測試主要是檢查已實現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定了的各種需求。系統(tǒng)測試是把已確認(rèn)的軟件與其他系統(tǒng)元素(如硬件、其他支持軟件、數(shù)據(jù)、人工等)結(jié)合在一起進(jìn)行測試。以確定軟件是否可以支付使用。單元測試有哪些內(nèi)容?測試中采用什么方法?答:單元測試主要針對模塊的以下五個基本特征進(jìn)行測試:1.模塊接口2.局部數(shù)據(jù)結(jié)構(gòu)3.重要的執(zhí)行路徑4.錯誤處理5.邊界條件6.測試的方法是為被測試模塊編寫驅(qū)動模塊和樁模塊來實現(xiàn)被測試單元的可運(yùn)行。通過驅(qū)動模塊來模擬被測試模塊的上級調(diào)用模塊,以上級模塊調(diào)用被測模塊的格式驅(qū)動被測模塊,接收被測模塊的測試結(jié)構(gòu)并輸出。樁模塊則用來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的信息。什么是集成測試?非漸增式測試與漸增式測試有什么區(qū)別?漸增式測試如何組裝模塊?答:集成測試是指在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成一個完整的系統(tǒng)進(jìn)行的測試。非漸增式測試是指首先對每個模塊分別進(jìn)行單元測試,再把所有模塊組裝成一個完整的系統(tǒng)進(jìn)行的測試。而漸增式測試就是逐個把未經(jīng)測試的模塊組裝到已經(jīng)過測試的模塊上去進(jìn)行集成測試,每加入一個新模塊進(jìn)行一次集成測試,重復(fù)此過程直到程序組裝完畢。漸增式測試有兩種不同的組裝方法:自頂向下和自底向上結(jié)合。兩者區(qū)別是:(1)非漸增式方法把單元測試和集成測試分成兩個不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試往往把單元測試和集成測試合在一起,同時完成。(2)非漸增式需要更多的工作量,因為每個模塊都需要驅(qū)動模塊和樁模塊,而漸增式利用已測試過的模塊作為驅(qū)動模塊或樁模塊,因此工作量少。漸增式可以較早地發(fā)現(xiàn)接口之間的錯誤,非漸增式最后組裝時才發(fā)現(xiàn)。(3)漸增式有利于排錯,發(fā)生錯誤往往和最近新加入的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯誤推遲到最后,很難判斷是哪一部分接口出錯。(4)漸增式比較徹底,已測試的模塊和新的模塊再測試。(5)漸增式點(diǎn)用時間較多,但非漸增式所需更多的驅(qū)動模塊和樁模塊也占用一些時間。(6)非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。什么是確認(rèn)測試?該階段有哪些工作?答:確認(rèn)測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標(biāo)相符合。因而需求說明是確認(rèn)測試的基礎(chǔ)。確認(rèn)測試階段有兩項工作:進(jìn)行確認(rèn)測試與軟件配置審查。調(diào)試的目的是什么?調(diào)試有哪些技術(shù)手段?答:調(diào)試則是在進(jìn)行了成功的測試之后才開始的工作。調(diào)試的目的是確定錯誤的原因和位置,并改正錯誤,因此調(diào)試也稱為糾錯(debug)。調(diào)試的技術(shù)手段有簡單的調(diào)試方法、歸納法、演繹法和回溯法等。第八章習(xí)題參考答案軟件維護(hù)有哪些內(nèi)容?答:(1)校正性維護(hù)。在軟件交付使用后,一些隱含的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤,修改軟件性能上的缺陷,應(yīng)進(jìn)行確定和修改錯誤的過程,這個過程就稱為校正性維護(hù)。(2)適應(yīng)性維護(hù)。為了使應(yīng)用軟件適應(yīng)計算機(jī)硬件、軟件環(huán)境及數(shù)據(jù)環(huán)境的不斷發(fā)生的變化而修改軟件的過程稱為適應(yīng)性維護(hù)。(3)完善性維護(hù)。為增加軟件功能、增強(qiáng)軟件性能、提高軟件運(yùn)行效率而進(jìn)行的維護(hù)活動稱為完善性維護(hù)。(4)預(yù)防性維護(hù)。為了提高軟件的可維護(hù)性和可靠性而對軟件進(jìn)行的修改稱為預(yù)防性維護(hù)。軟件維護(hù)的特點(diǎn)是什么?答:主要體現(xiàn)在三個方面:(1)非結(jié)構(gòu)化維護(hù)和結(jié)構(gòu)化維護(hù)。軟件的開發(fā)過程對軟件的維護(hù)有很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護(hù)工作非常困難,這是一種非結(jié)構(gòu)化的維護(hù)。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應(yīng)的文檔,容易進(jìn)行維護(hù)工作,這是一種結(jié)構(gòu)化的維護(hù)。(2)維護(hù)的困難性。軟件維護(hù)的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴(yán)格而又科學(xué)的管理和規(guī)劃,就會引起軟件運(yùn)行時的維護(hù)困難。(3)軟件維護(hù)的費(fèi)用。軟件維護(hù)的費(fèi)用在總費(fèi)用中的比重是在不斷增加的,這是軟件維護(hù)有形的代價。另外還有無形的代價,即要占有更多的資源。軟件維護(hù)費(fèi)用增加的占有原因是軟件維護(hù)的生產(chǎn)率非常低。軟件維護(hù)的流程是什么?答:軟件維護(hù)的流程如下:知道維護(hù)申請報告、審查申請報告并批準(zhǔn)、運(yùn)行維護(hù)并做詳細(xì)記錄、復(fù)審。軟件維護(hù)的副作用有哪些?答:維護(hù)的副作用有以下三種:(1)編碼副作用。在使用程序設(shè)計語言修改源代碼時可能引入的錯誤。(2)數(shù)據(jù)副作用。在修改數(shù)據(jù)結(jié)構(gòu)時,有可能造成軟件設(shè)計與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導(dǎo)致軟件錯誤。數(shù)據(jù)副作用是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。但它可以通過詳細(xì)的設(shè)計文檔加以控制。(3)文檔副作用。如果對可執(zhí)行軟件的修改沒有反映在文檔中,就會產(chǎn)生文檔副作用。什么是軟件可維護(hù)性?可維護(hù)性度量的特性是什么?答:軟件可維護(hù)性的定義:軟件能夠被理解、校正、適應(yīng)及增強(qiáng)功能的容易程度。軟件的可維護(hù)性可用以下七個質(zhì)量特性來衡量,即可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。提高可維護(hù)性的方法有哪些?答:(1)建立明確的軟件質(zhì)量目標(biāo)。(2)使用先進(jìn)的軟件開發(fā)技術(shù)和工具。(3)建立明確的質(zhì)量保證。(4)選擇可維護(hù)性的程序設(shè)計語言。(5)改進(jìn)程序的文檔。第九章習(xí)題參考答案漸增模型有幾種?各有何特點(diǎn)?答:漸增模型有兩種類型,一是增量構(gòu)造模型,二是演化提交模型。增量構(gòu)造模型是在瀑布模型基礎(chǔ)上,對一些階段進(jìn)行整體開發(fā),對另一些階段進(jìn)行增量開發(fā)。演化提交模型則是在瀑布模型的基礎(chǔ)上,所有階段都進(jìn)行增量開發(fā),不僅是增量開發(fā),也是增量提交。2、快速原型模型有幾種,各有什么特點(diǎn)?答:快速原形模型根據(jù)原型的不同作用,有三類原型模型:探索型原型:把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目標(biāo)模糊,用戶與開發(fā)者對項目都缺乏經(jīng)驗的情況,通過對原型的開發(fā)來明確用戶的需求。實驗型原型:主要用于設(shè)計階段,考核實現(xiàn)方安是否合適,能否實現(xiàn)。對于一個大型系統(tǒng),若對設(shè)計方案心中沒有把握時,可通過這種原型的開發(fā)來證實設(shè)計方案的正確性。(3)演化型原型:它將原型思想擴(kuò)展到軟件開發(fā)的全過程,就是及早向用戶提交一個原型系統(tǒng),在得到用戶認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演化為最終的軟件系統(tǒng)??焖僭偷拈_發(fā)步驟是什么?答:快速原型的開發(fā)步驟是:(1)快速分析:在分析人員與用戶的配合下,迅速確定系統(tǒng)基本需求并開始構(gòu)造原型。(2)構(gòu)造原型:在快速分析的基礎(chǔ)上,根據(jù)基本需求說明盡快實現(xiàn)一個可運(yùn)行的系統(tǒng)。(3)運(yùn)行原型:通過運(yùn)行快速原型,發(fā)現(xiàn)問題,消除誤解,達(dá)到開發(fā)者也用戶的充分協(xié)調(diào)。(4)評價原型:在運(yùn)行的基礎(chǔ)上,評價原型的特性,分析運(yùn)行效果是否滿足用戶的需求,提出全面的修改意見。(5)修改:根據(jù)評價原型的活動結(jié)果進(jìn)行修改,修改過程代替初始的快速分析,從而實現(xiàn)原型開發(fā)的循環(huán)過程。用戶與開發(fā)者在這種循環(huán)過程中不斷接近系統(tǒng)的最終要求。上述步驟在軟件工具的支持下往往是互相交融在一起的,而不再象瀑布模型那樣嚴(yán)格的階段劃分,線性推進(jìn)。評價快速原型模型的優(yōu)缺點(diǎn)。答:快速原型的優(yōu)點(diǎn)是:(1)可及早為用戶提供有用的產(chǎn)品。(2)可及早發(fā)現(xiàn)問題,隨時糾正錯誤。(3)減少技術(shù)、應(yīng)用風(fēng)險,縮短開發(fā)時間,減少費(fèi)用、提高生產(chǎn)率。(4)通過實際運(yùn)行原型,提供直接評價系統(tǒng)的方法,促使用戶主動參與開發(fā)活動,加強(qiáng)了信息反饋,促進(jìn)各類人員的協(xié)調(diào),減少誤解,適應(yīng)需求變化,能有效提高系統(tǒng)質(zhì)量??焖僭偷娜秉c(diǎn)是:1.缺乏豐富而強(qiáng)有力的軟件工具和開發(fā)環(huán)境。2.缺乏有效的管理機(jī)制,還未建立起自己的開發(fā)標(biāo)準(zhǔn)。3.對設(shè)計開發(fā)環(huán)境要求較高。(4)在多次重復(fù)改變原型的過程中,程序員會感到厭倦。(5)系統(tǒng)的易變性對測試有一定影響,難于做到徹底測試,更新文檔較為困難。4、比瀑布模型與增量模型,指出增量模型的新思路。答:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細(xì)節(jié)。瀑布模型很難適應(yīng)需求可變、模糊不定的軟件系統(tǒng)的開發(fā),而且在開發(fā)過程中用戶很難參與進(jìn)去,只有到開發(fā)結(jié)束才能看到整個軟件系統(tǒng)。這種理想的、線性的開發(fā)過程缺乏靈活性,不適應(yīng)實際的開發(fā)過程。增量模型是在瀑布模型的基礎(chǔ)上加以修改而形成的。屬于非整體開發(fā)模型。它的基本思路是為了使開發(fā)過程具有一定的靈活性和可修改性,在開發(fā)過程中推遲某些階段或所有階段中的細(xì)節(jié),從而較早的產(chǎn)生工作軟件。第十章習(xí)題參考答案說明對象、類、類結(jié)構(gòu)、消息的基本概念。答:(1)對象:對象是人們要進(jìn)行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。對象包括有形實體、作用、事件、性能說明等類型。對象具有狀態(tài)和行為。一個對象用數(shù)據(jù)值來描述它的狀態(tài),對象的操作則用于改變狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。對象內(nèi)的數(shù)據(jù)具有自己的操作,從而可靈活地專門描述對象的獨(dú)特行為,具有較強(qiáng)的獨(dú)立性和自治性,其內(nèi)部狀態(tài)不受或很少受外界的影響,具有很好的模塊化特點(diǎn)。為軟件重用奠定了堅實的基礎(chǔ)。(2)類:具有相同或相似性質(zhì)的對象的抽象就是類。因此,對象的抽象就是類,類的具體化就是對象,也可以說類的實例是對象。(3)類結(jié)構(gòu):類與類之間的結(jié)構(gòu)關(guān)系,包括一般-具體結(jié)構(gòu)關(guān)系和整體-部分結(jié)構(gòu)關(guān)系。一般-具體關(guān)系結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以說是或關(guān)系或isa關(guān)系,類的這種層次結(jié)構(gòu)可用來描述現(xiàn)實世界中的一般化的抽象關(guān)系,通常越在上層的類越具有一般性和共性,越在下層的類越具體、越細(xì)化。整體-部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之間的關(guān)系是一種與關(guān)系,或者是hasa關(guān)系。類的這種層次關(guān)系可用來描述現(xiàn)實世界中的類的組成的抽象關(guān)系。上層的類具有整體性,下層的類具有成員性。在類的層次結(jié)構(gòu)中,通常上層的類稱為父類或超類,下層類稱為子類。(4)消息:對象之間進(jìn)行通信的構(gòu)造叫做消息。在對旬的操作中,當(dāng)一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的信息。接收消息的對象經(jīng)過解釋,然后給予響應(yīng)。這種通信機(jī)制稱為消息傳遞。發(fā)送一條消息的格式是對象名.方法名(參數(shù))。說明面向?qū)ο蟮奶卣骱鸵?。答:面向?qū)ο蟮奶卣魇牵海?)對象唯一性。每個對象都有自身唯一的標(biāo)識,在對象生存期中,其標(biāo)識不變,不同的對象不能有不同的標(biāo)識。(2)分類性。是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類(3)繼承性。是子類自動共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。(4)多態(tài)性。是指相同的操作或函數(shù)過程可以作用于多種類型的對象上并獲得不同的結(jié)果。面向?qū)ο蟮囊厥牵?.抽象。2.封裝性(信息隱蔽)(3)共享性。說明動態(tài)模型的特征,說明事件,腳本、狀態(tài)的含義。答:動態(tài)模型是與時間和變化有關(guān)的系統(tǒng)性質(zhì),該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬時的、行為化的系統(tǒng)控制性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它從對象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了相互行為。事件是指特定時刻發(fā)生的某件事情,它是某事情發(fā)生的信號,它沒有持續(xù)時間,它是一種相對性的快速事件。腳本是完成系統(tǒng)某個功能事件序列,側(cè)重于表達(dá)說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個特定場景,用事件跟蹤圖表達(dá)。狀態(tài)是對象屬性值的抽象。狀態(tài)指明了對象對輸入事件的響應(yīng)。說明功能模型的特征,比較功能模型的dfd和結(jié)構(gòu)化方法的dfd異同。答:功能模型描述了系統(tǒng)的所有計算。功能模型指出發(fā)生了什么,動態(tài)模型確定什么時候發(fā)生,而對象模型確定發(fā)生的客體。功能模型表明一個計算如何從輸入值得到輸出值,它不考慮所計算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部輸入、經(jīng)過操作和內(nèi)部存儲輸出到外部的。功能模型也包括對象模型中值的約束條件。說明三種分析模型的關(guān)系。答:三種分析模型之間關(guān)系是這樣的:功能模型指出發(fā)生了什么,動態(tài)模型確定什么時候發(fā)生,而對象模型確定發(fā)生的客體。說明對象建模的過程。答:對象建模的過程如下:首先標(biāo)識類和關(guān)聯(lián),因為它們影響了整體結(jié)構(gòu)和解決問題的方法,其次是增加屬性,進(jìn)一步描述類和關(guān)聯(lián)的基本網(wǎng)絡(luò),使用繼承合并和組織類,最后將操作增加到類中去作為構(gòu)造動態(tài)模型和功能模型的副產(chǎn)品。(1)確定類。構(gòu)造對象模型的第一步是標(biāo)出來自問題域的相關(guān)對象類,包括物理實體和概念。所有類在應(yīng)用中都必須有意義。檢查問題陳述中的所有名詞,產(chǎn)生暫定類。然后去掉不必要的類和不正確的類。(2)準(zhǔn)備數(shù)據(jù)字典。為所有建模實體準(zhǔn)備一個數(shù)據(jù)詞典。準(zhǔn)確描述各個類的精確含義,描述當(dāng)前問題中的類的范圍,包括對類的成員、用法方面的假設(shè)或限制。1.確定關(guān)聯(lián)。兩個或多個類之間的相互依賴就是關(guān)聯(lián)。從問題中抽取所有可能的關(guān)聯(lián)表示,把它們記下來,但不要過早去細(xì)化這些表述。2.確定屬性。屬性是個體對象的性質(zhì),通常用修飾性的名詞詞組來表示。只考慮與具體應(yīng)用直接相關(guān)的屬性,不考慮那些超出問題范圍的屬性,首先找出重要屬性,避免那些只用于實現(xiàn)的屬性,要為各個屬性取有意義的名字。3使用繼承來細(xì)化類。4.完善對象模型。說明功能建模的過程。答:功能建模的過程如下:(1)確定輸入、輸出值(2)建立數(shù)據(jù)流圖10、說明對象設(shè)計的步驟。答:對象設(shè)計要確定實現(xiàn)用到的類、關(guān)聯(lián)的完整定義,接口的形式以及實現(xiàn)操作方法的算法,可以增加實現(xiàn)必須的內(nèi)部對象,對數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行優(yōu)化。1.獲得操作2確定操作的目標(biāo)對象3.算法設(shè)計4.優(yōu)化設(shè)計5.控制的實現(xiàn)6調(diào)整繼承(7)關(guān)聯(lián)的設(shè)計第十一章習(xí)題參考答案軟件質(zhì)量與軟件質(zhì)量保證的含義是什么?答:從實際應(yīng)用來說,軟件質(zhì)量定義包括三個一致性:1.與所確定的功能和性能需求的一致性;(2)與所成文的開發(fā)標(biāo)準(zhǔn)的一致性;3.與所有專業(yè)開發(fā)的軟件所期望的隱含特性的一致性。4.軟件質(zhì)量保證是指確定、達(dá)到和維護(hù)所需要的軟件質(zhì)量而進(jìn)行的所有有計劃、有系統(tǒng)的管理活動。影響軟件質(zhì)量的因素有哪些?答:影響軟件質(zhì)量的因素分為可以直接度量的因素(如單位時間內(nèi)千行代碼中所產(chǎn)生的錯誤)和只能間接度量的因素(如可用性和可維護(hù)性)。什么是軟件質(zhì)量保證策略?軟件質(zhì)量保證的主要任務(wù)是什么?答:軟件質(zhì)量保證策略是指軟件質(zhì)量保證工作的過程和側(cè)重點(diǎn)。質(zhì)量保證的主要任務(wù)包括以下幾點(diǎn):1.正確定義用戶的要求。2.技術(shù)方法的應(yīng)用。3.提高軟件開發(fā)的工程能力。4.軟件的復(fù)用。5.發(fā)揮每個開發(fā)者的能力。6.組織外部力量協(xié)作。7.排除無效勞動。(8)提高計劃和管理質(zhì)量。程序復(fù)雜性的度量方法有哪些?答:軟件復(fù)雜性的度量方法有:1.代碼行度量法:以源代碼行數(shù)作為程序復(fù)雜性的度量。2、mccabe度量法:一種基于程序控制流的復(fù)雜性度量方法。什么是軟件的可靠性?它們能否定量計算?答:軟件可靠性是指在給定的時間內(nèi),在規(guī)定的環(huán)境條件下系統(tǒng)完成所指定功能的概率。衡量軟件可靠性的兩個常用指標(biāo)是平均失效等待時間mttf和平均失效間隔時間mtbf。就是說可以定量計算。7、說明容錯軟件的定義與容錯的一般方法。答:容錯軟件的定義有四種,指規(guī)定功能的軟件,(1)在一定程度上對自身錯誤的作用具有屏蔽能力的軟件。(2)在一定程度上能從錯誤狀態(tài)自動恢復(fù)到正常狀態(tài)的軟件。(3)在因錯誤而發(fā)生錯誤時,仍然能在一定程度上完成預(yù)期的功能的軟件。(4)在一定程度上具有容錯能力的軟件。實現(xiàn)容錯技術(shù)的主要手段是冗余。冗余通常分為四類:1.結(jié)構(gòu)冗余,又分為靜態(tài)、動態(tài)和混合冗余三種。2.信息冗余3.時間冗余(4)冗余附加技術(shù)第十二章習(xí)題參考答案軟件工程管理包括哪些內(nèi)容?答:軟件工程管理的具體內(nèi)容包括對開發(fā)人員、組織機(jī)構(gòu)、用戶、文檔資料等方面的管理。2、軟件項目計劃中包括哪些內(nèi)容?答:軟件項目計劃內(nèi)容包括:1.范圍2.資源3.進(jìn)度安排4成本估算(5)培訓(xùn)計劃3、軟件開發(fā)成本估算方法有哪幾種?答:軟件開發(fā)成本估算的方法主要有:(1)自頂向下估算方法(2)自底向上估算方法(3)差別估算方法以及專家估算法、類推估算法、算式估算法等幾類方法。4、什么是軟件配置管理?什么是基線?答:軟件配置管理,簡稱scm(softwareconfigurationmanagement),是指一組管理整個軟件生存期各階段中變更的活動。軟件配置管理技術(shù)可以使軟件變更所產(chǎn)生的錯誤達(dá)到最小并最有效地提高生產(chǎn)率。基線:是軟件生存期中各開發(fā)階段的一個特定點(diǎn),它的作用是把開發(fā)各階段工作的劃分更加明確化,使本來連續(xù)的工作在這些點(diǎn)上斷開,以便于檢查與肯定階段成果。5、軟件工程標(biāo)準(zhǔn)化的意義是什么?都有哪些軟件工程標(biāo)準(zhǔn)?答:軟件工程標(biāo)準(zhǔn)化可以為軟件工程各個階段的活動提供統(tǒng)一的行動規(guī)范和衡量準(zhǔn)則,使得各種工作都能有章可循。軟件工程標(biāo)準(zhǔn)根據(jù)其制定機(jī)構(gòu)與適用范圍,可分為:1.國際標(biāo)準(zhǔn)2.國家標(biāo)準(zhǔn)3.行業(yè)標(biāo)準(zhǔn)4.企業(yè)規(guī)范5、項目(課題)規(guī)范6、請說明軟件文檔的作用?答:軟件文檔的作用是:1.提高軟件開發(fā)過程的能見度;2.提高開發(fā)效率;3.作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;4.記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù);5.提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料;6.便于用戶了解軟件功能、性能。第十三章習(xí)題參考答案1、什么是軟件開發(fā)環(huán)境?請列出其發(fā)展情況。答:軟件開發(fā)環(huán)境是指在計算機(jī)的基本軟件的基礎(chǔ)上,為支持軟件的開發(fā)而提供的一組工具軟件系統(tǒng)。具體地說,軟件開發(fā)環(huán)境是一組相關(guān)工具的集合。這些相關(guān)工具按一定的開發(fā)方法或一定開發(fā)處理模型組織起來的,這些相關(guān)工具支持整個軟件生存期的各階段或部分階段。軟件開發(fā)環(huán)境的發(fā)展階段:(1)70年代,軟件開發(fā)與設(shè)計方法出現(xiàn)了結(jié)構(gòu)化分析技術(shù)的一整套相互銜接的sa-sd的方法學(xué)。與此相適應(yīng)的計算機(jī)輔助軟件工程技術(shù)則主要由開發(fā)孤立的軟件工具而逐步向程序設(shè)計環(huán)境的開發(fā)和使用方向發(fā)展,出現(xiàn)了第一代的基于正文的case工具。(2)80年代中期與后期,主要是實時系統(tǒng)設(shè)計方法,以及面向?qū)ο蟮姆治龊驮O(shè)計方法的發(fā)展,它克服了結(jié)構(gòu)化技術(shù)的缺點(diǎn)。在這期間開發(fā)了第二代的case工具,其特點(diǎn)是支持使用圖形表示的結(jié)構(gòu)化方法,如數(shù)據(jù)流圖與結(jié)構(gòu)圖。其開發(fā)環(huán)境表現(xiàn)在提高環(huán)境中工具的集成性方面,如集成的項目支持環(huán)境。(3)80年代后期和90年代初期出現(xiàn)了基于信息工程case技術(shù),這種環(huán)境集成了用于項目計劃、分析、設(shè)計、編程、測試和維護(hù)的一個工具箱的集合。(4)90年代出現(xiàn)一系列集成的case軟件產(chǎn)品,用以實現(xiàn)需求管理、應(yīng)用程序分析設(shè)計和建模、編碼、軟件質(zhì)量保證和測試、過程和項目管理及文檔生成管理等軟件開發(fā)工作的規(guī)范化、工程化和自動化。2、請敘述軟件開發(fā)環(huán)境的分類。答:軟件開發(fā)環(huán)境可按解決的問題、軟件開發(fā)環(huán)境的演變趨向和集成化程度進(jìn)行分類:(1)按解決的問題可分為:程序設(shè)計環(huán)境、系統(tǒng)合成環(huán)境、項目管理環(huán)境三類。(2)按軟件開發(fā)環(huán)境的演變趨向可分為:以語言為中心的環(huán)境、工具箱環(huán)境和基于方法的環(huán)境三類。(3)按集成化程度有第一代、第二代、第三代的開發(fā)環(huán)境。3、何謂軟件工具?通常包含哪幾部分?答:軟件工具的定義是:可用來幫助和支持軟件需求分析、軟件開發(fā)、測試、維護(hù)、模擬、移植或管理而編制的計算機(jī)程序或軟件。軟件工具是一個程序系統(tǒng)。軟件工具通常由工具、工具接口和工具用戶接口三【篇三:軟件工程課后題答案】說明軟件工程研究的內(nèi)容。軟件工程研究的內(nèi)容包括軟件開發(fā)方法、軟件開發(fā)模型、軟件支持過程和軟件管理過程。其中軟件開發(fā)方法的內(nèi)容又涵蓋市場調(diào)研、正式立項、需求分析、項目策劃、概要設(shè)計、詳細(xì)設(shè)計、編程、測試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、銷售、實施、系統(tǒng)維護(hù)、版本升級。常用的軟件開發(fā)模型有瀑布模型、迭代模型、增量模型和原型模型。軟件支持過程由所支持的case工具組成,常用的case工具有powerdesigner和rationalrose。軟件管理過程主要有cmmi、iso9000、微軟企業(yè)文化和敏捷文化現(xiàn)象。1-3請讀者詳細(xì)解釋軟件的定義和程序的定義。軟件的定義:軟件=程序+數(shù)據(jù)+文檔。這里的程序是指程序系統(tǒng)。這里的數(shù)據(jù)不僅包括初始化數(shù)據(jù)、測試數(shù)據(jù),而且包括研發(fā)數(shù)據(jù)、運(yùn)行數(shù)據(jù)、維護(hù)數(shù)據(jù),也包括軟件企業(yè)積累的項目工程數(shù)據(jù)和項目管理數(shù)據(jù)中的大量決策原始記錄數(shù)據(jù)。這里的文檔指的是軟件開發(fā)過程中的分析、設(shè)計、實現(xiàn)、測試、維護(hù)文檔、管理文檔?,F(xiàn)在有一種新提法正在引起關(guān)注,這種提法是:軟件=知識+程序+數(shù)據(jù)+文檔。程序是計算機(jī)為完成特定任務(wù)而執(zhí)行的指令的有序集合。從應(yīng)用的角度可理解為:面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對象+信息面向構(gòu)件的程序=構(gòu)件+構(gòu)架。1-5.讀者同意“四種開發(fā)方法”和“五個面向理論”的提法嗎?為什么?“四種開發(fā)方法”是指“面向過程的方法、面向?qū)ο蟮姆椒ā⒚嫦驍?shù)據(jù)的方法、形式化方法”,面向過程的方法來源于面向過程的程序設(shè)計,面向?qū)ο蟮姆椒▉碓从诿嫦驅(qū)ο蟮某绦蛟O(shè)計,面向數(shù)據(jù)的方法就是面向元數(shù)據(jù)的方法,它來源于關(guān)系數(shù)據(jù)庫程序設(shè)計,形式化方法來源于離散數(shù)學(xué)中的集合運(yùn)算和邏輯運(yùn)算。四種方法各適用于不同的場合,各有優(yōu)缺點(diǎn),互相促進(jìn),構(gòu)成一個開發(fā)方法論的多極化世界?!拔鍌€面向理論”是指“面向流程分析、面向數(shù)據(jù)設(shè)計、面向?qū)ο髮崿F(xiàn)、面向功能測試、面向過程管理”,它是在綜合“四種開發(fā)方法”各自的優(yōu)點(diǎn)之后提出的軟件工程實施理論,是對前者的繼承與發(fā)展??傊?,上述提法既精彩又實用。1-6怎樣理解軟件工程的支持過程?軟件工程的支持過程是由支持軟件生存周期各個階段的生產(chǎn)工具所組成。就是說將一個軟件的生存周期劃分為市場調(diào)研、立項、需求分析、策劃、概要設(shè)計、詳細(xì)設(shè)計、編程、單位測試、集成測試、運(yùn)行、維護(hù)這幾個過程中,在這些過程中需要配套的工具來支持,比如需求分析工具、設(shè)計工具、實現(xiàn)工具、測試工具、維護(hù)工具、配置工具,開發(fā)環(huán)境等。第二章:2-1.為什么要選擇軟件開發(fā)模型?軟件開發(fā)模型與軟件生存周期有什么關(guān)系?因為軟件開發(fā)模型是軟件工程研究的四大內(nèi)容之一,它雖然不是軟件工程研究的重點(diǎn),但是在宏觀上特別重要。軟件公司的項目組在開發(fā)一個大項目或產(chǎn)品時,首先在技術(shù)上必須選擇一個開發(fā)模型,使開發(fā)模型非常適合這個項目或產(chǎn)品的生存周期;隨后通過對生存周期的裁減,來給出適合與本項目或產(chǎn)品的軟件生存周期定義。軟件的開發(fā)模型與軟件生存周期有關(guān):不同的開發(fā)模型,可能對應(yīng)著不同的生存周期。生存周期不同,該軟件的開發(fā)階段劃分、評審次數(shù)、基線標(biāo)準(zhǔn)都有所不同,甚至維護(hù)方法都有所區(qū)別。2-2.簡述瀑布模型、增量模型、迭代模型、原型模型的優(yōu)缺點(diǎn)。答案如表8-2所示:表8-2開發(fā)模型優(yōu)缺點(diǎn)3-2立項的具體表現(xiàn)形式是什么?企業(yè)的市場銷售部門在市場調(diào)研的基礎(chǔ)上,分析該產(chǎn)品是否有市場前景,以及企業(yè)是否有能力開發(fā)出該產(chǎn)品,并具體列出系統(tǒng)的功能、性能、接口和運(yùn)行環(huán)境等方面的需求情況,當(dāng)前客戶群和潛在客戶群情況,以及投入產(chǎn)出分析,然后寫出立項建議書,召開立項論證會,決定是否立項。3-3立項書的編制者為什么主要是軟件公司的市場銷售人員,而不是開發(fā)人員?軟件開發(fā)出來終歸要推向市場的,軟件能不能被市場接受是軟件開發(fā)成功的標(biāo)準(zhǔn)。市場銷售人員長期和市場客戶打交道,他們最了解客戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒教育的重要性故事征文
- 跨境電商綜合服務(wù)平臺合作合同
- 小紅軍的長征故事觀后感
- 分布式光伏發(fā)電站建設(shè)合同
- 品牌戰(zhàn)略合作伙伴關(guān)系建立合同
- 跨境數(shù)據(jù)傳輸合同
- 企業(yè)市場營銷策略與市場拓展方案
- 素土道路壓實施工方案
- 酒店賓客娛樂室管理規(guī)定
- 山地植林協(xié)議樣本
- 2023-2024學(xué)年浙江省富陽市小學(xué)數(shù)學(xué)五年級上冊期末通關(guān)試題
- TTAF 092-2022 移動終端融合快速充電測試方法
- GB/T 9410-2008移動通信天線通用技術(shù)規(guī)范
- GB/T 5343.2-2007可轉(zhuǎn)位車刀及刀夾第2部分:可轉(zhuǎn)位車刀型式尺寸和技術(shù)條件
- GB/T 32285-2015熱軋H型鋼樁
- GB/T 13772.2-1992機(jī)織物中紗線抗滑移性測定方法模擬縫合法
- SVG運(yùn)行與維護(hù)課件
- 企業(yè)大學(xué)商學(xué)院建設(shè)方案
- 部編人教版 六年級下冊道德與法治課堂作業(yè)(含答案)
- 幼兒園大班數(shù)學(xué):《長頸鹿的水果店》 課件
- 獨(dú)生子女證明(模板)
評論
0/150
提交評論