軟件工程實(shí)用教程2版第2、3、4、5章習(xí)題與參考答案人民郵電大學(xué)出版社郭寧主編.doc
《軟件工程實(shí)用教程2版第2、3、4、5章習(xí)題與參考答案人民郵電大學(xué)出版社郭寧主編.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件工程實(shí)用教程2版第2、3、4、5章習(xí)題與參考答案人民郵電大學(xué)出版社郭寧主編.doc(19頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
《軟件工程實(shí)用教程》第2、3、4、5章習(xí)題與參考答案 第2章 軟件生存周期及開發(fā)模型 1. 簡(jiǎn)述什么是軟件生存周期?根據(jù)國家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件開發(fā)規(guī)范》,軟件生存周期主要包括哪幾個(gè)階段? 答案要點(diǎn): 軟件生存周期是指軟件產(chǎn)品從功能確定、設(shè)計(jì)、開發(fā)成功、投入使用,并在使用中不斷修改、完善,直至被新的軟件所替代,而停止該軟件使用的全過程。 國家標(biāo)準(zhǔn)GB8566-1988《計(jì)算機(jī)軟件開發(fā)規(guī)范》將軟件生命周期劃分為幾個(gè)階段:可行性研究、項(xiàng)目計(jì)劃、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)(包括單元測(cè)試)、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)運(yùn)行和維護(hù)。這幾個(gè)階段又可以歸納為3個(gè)大的階段,即軟件定義階段,軟件開發(fā)階段和軟件運(yùn)行維護(hù)階段。 2. 瀑布模型有哪些特點(diǎn)?對(duì)于里程碑,你有哪些認(rèn)識(shí)? 答案要點(diǎn): 瀑布模型是一種基于里程碑的階段過程模型,它所提供的里程碑式的工作流程,為軟件項(xiàng)目按規(guī)程管理提供了便利。例如,按階段制定項(xiàng)目計(jì)劃,分階段進(jìn)行成本核算,進(jìn)行階段性的評(píng)審等。這為提高軟件產(chǎn)品質(zhì)量提供了有效保證。 瀑布模型的特點(diǎn): 階段性:前一階段工作完成以后,后一階段工作才能開始,前一階段的輸出文檔是后一階段的輸入文檔。 階段評(píng)審:在每一階段工作完成后都要進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問題,避免后期的返工,如果評(píng)審不合格,則不開始下一階段的工作。 文檔管理:在每階段都規(guī)定了要完成的文檔,沒有完成文檔,就認(rèn)為沒有完成該階段的任務(wù)。 3. 試說明原型模型的兩種實(shí)現(xiàn)方案各有什么特點(diǎn)?各適用于什么情況? 答案要點(diǎn): 原型模型在軟件分析、設(shè)計(jì)階段的應(yīng)用,用來解決用戶對(duì)軟件系統(tǒng)在需求分析上的模糊認(rèn)識(shí)。將模擬的手段引入需求分析的初期階段,通過建立原型縮短用戶與分析人員之間的距離。 快速原型方法具有以下一些特點(diǎn)。 快速原型是用來獲取用戶需求的,或是用來試探某種設(shè)計(jì)是否有效。一旦需求或設(shè)計(jì)確定下來,原型就將被拋棄。因此快速原型要求快速構(gòu)建、容易修改,以節(jié)約原型創(chuàng)建成本,加速開發(fā)速度??焖僭屯捎密浖晒ぞ邅韯?chuàng)建,例如,4GL語言。 快速原型是暫時(shí)使用的,因此并不要求完整。它往往針對(duì)某個(gè)局部問題建立專門原型,如界面原型、工作流原型、查詢?cè)偷取? 快速原型不能貫穿軟件的整個(gè)生命周期,它需要和其他的過程模型相結(jié)合才能產(chǎn)生作用。例如,前面我們提到的在瀑布模型中應(yīng)用快速原型,可以解決瀑布模型在需求分析時(shí)期存在的不足。 對(duì)于一個(gè)大型復(fù)雜的系統(tǒng),如果不經(jīng)過分析來進(jìn)行整體性劃分,想直接用屏幕來一個(gè)一個(gè)地模擬是很困難的;對(duì)于大量運(yùn)算、邏輯性較強(qiáng)的程序模塊,快速原型方法很難構(gòu)造出模型來供人評(píng)價(jià)。因此,原型方法只適用于小型、簡(jiǎn)單、處理過程比較明確、沒有大量運(yùn)算和邏輯處理過程的系統(tǒng)。 原型進(jìn)化模型對(duì)開發(fā)過程的考慮是,針對(duì)有待開發(fā)的軟件系統(tǒng),先開發(fā)一個(gè)原型系統(tǒng)讓用戶使用,然后根據(jù)用戶使用情況的意見反饋,對(duì)原型系統(tǒng)不斷修改,使它逐步接近并最終達(dá)到開發(fā)目標(biāo)。跟快速原型不同的是,快速原型在完成需求定義后將被拋棄,而原型進(jìn)化所要?jiǎng)?chuàng)建的原型則是一個(gè)今后要投入應(yīng)用的系統(tǒng),只是所創(chuàng)建的原型系統(tǒng)在功能、性能等方面還有許多不足,還沒有達(dá)到最終的開發(fā)目標(biāo),需要不斷改進(jìn)。 原型進(jìn)化模型將軟件的需求細(xì)節(jié)定義、產(chǎn)品開發(fā)和有效性驗(yàn)證放在同一個(gè)工作進(jìn)程中交替或并行運(yùn)作。因此,在獲得了軟件需求框架以后,例如,軟件的基本功能被確定以后,就可以直接進(jìn)入到對(duì)軟件的開發(fā)中。 原型進(jìn)化模型是通過不斷發(fā)布新的軟件版本而使軟件逐步完善的,因此,這種開發(fā)模式特別適合于那些用戶急需的軟件產(chǎn)品開發(fā)。它能夠快速地向用戶交付可以投入實(shí)際運(yùn)行的軟件成果,并能夠很好地適應(yīng)軟件用戶對(duì)需求規(guī)格的變更。 4. 一般認(rèn)為,只有大型項(xiàng)目才采用螺旋模型,其原因是什么? 答案要點(diǎn): 螺旋模型增加了軟件項(xiàng)目的風(fēng)險(xiǎn)分析,因?yàn)轫?xiàng)目規(guī)模越大、問題越復(fù)雜,資源、成本、進(jìn)度等因素的不確定性就越大,承擔(dān)項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。人們進(jìn)行風(fēng)險(xiǎn)分析與管理的目的就是在造成危害之前及時(shí)對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別、分析、采取對(duì)策,從而消除或減少風(fēng)險(xiǎn)所造成的損失。該模型適合于指導(dǎo)大型軟件項(xiàng)目的開發(fā),它將軟件項(xiàng)目開發(fā)劃分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)以及客戶評(píng)估4類活動(dòng)。在對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別和分析時(shí),如果開發(fā)風(fēng)險(xiǎn)過大,開發(fā)者和用戶無法承受,項(xiàng)目有可能因此而終止。螺旋模型的優(yōu)越性在于它吸收了“進(jìn)化”的概念,使得開發(fā)人員和用戶對(duì)每一個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn)均有所了解,并對(duì)此做出反應(yīng)。但使用該模型需要豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),如果項(xiàng)目風(fēng)險(xiǎn)較大又未及時(shí)發(fā)現(xiàn),勢(shì)必造成重大損失。實(shí)際上,對(duì)軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)分析也需要費(fèi)用,假如項(xiàng)目風(fēng)險(xiǎn)分析費(fèi)用過高,甚至超過了項(xiàng)目的開發(fā)費(fèi)用,顯然就不合適了。一般大型項(xiàng)目才有較高的風(fēng)險(xiǎn),才有進(jìn)行詳細(xì)風(fēng)險(xiǎn)分析的必要。因此這種模型比較適合大型的軟件項(xiàng)目。 5. 為什么說構(gòu)件復(fù)用模型是一種有利于軟件按工業(yè)流程生產(chǎn)的過程模型? 答案要點(diǎn): 構(gòu)件復(fù)用模型最明顯的優(yōu)勢(shì)是減少了需要開發(fā)的軟件數(shù)量,縮短了軟件交付周期,提高了軟件的質(zhì)量,降低了開發(fā)風(fēng)險(xiǎn)。由于構(gòu)件具有一定的通用性,可以在不同的軟件系統(tǒng)中被復(fù)用。在基于構(gòu)件復(fù)用的軟件開發(fā)中,軟件由構(gòu)件裝配而成,這就如同用標(biāo)準(zhǔn)零件裝配汽車一樣。構(gòu)件復(fù)用技術(shù),它能帶來更好的復(fù)用效果,并且具有工程特性,更能適應(yīng)軟件按工業(yè)流程生產(chǎn)的需要。 6. 敏捷方法的價(jià)值觀和原則與傳統(tǒng)的方法有哪些聯(lián)系和區(qū)別? 答案要點(diǎn): 敏捷軟件開發(fā)過程是一類過程的統(tǒng)稱,敏捷方法的價(jià)值觀和原則: .個(gè)體和交互勝過過程和工具; .可以工作的軟件勝過面面俱到的文檔; .客戶合作勝過合同談判; .響應(yīng)變化勝過遵循計(jì)劃。 傳統(tǒng)軟件開發(fā)開發(fā)過程是順序和進(jìn)化的軟件過程模型,如:順序軟件過程模型有:瀑布模型,快速原型模型。進(jìn)化的軟件過程模型有:增量模型、螺旋模型。傳統(tǒng)軟件開發(fā)模型主要采用了系列化、結(jié)構(gòu)化開發(fā)技術(shù),所以軟件過程具有“線性”特征,開發(fā)活動(dòng)比較有序、清楚、規(guī)范,但開發(fā)出的軟件產(chǎn)品的穩(wěn)定性、可復(fù)用性、可維護(hù)性都比較差。 敏捷軟件開發(fā)過程可用于任何軟件過程,將軟件過程設(shè)計(jì)為:允許項(xiàng)目團(tuán)隊(duì)調(diào)整并合理安排任務(wù),理解敏捷開發(fā)方法的易變性并制定計(jì)劃,精簡(jiǎn)并維持最基本的工作,強(qiáng)調(diào)增量交付策略,快速向客戶提供適應(yīng)產(chǎn)品類型和運(yùn)行環(huán)境的軟件。 7. 8. 具有原型化的瀑布模型具有什么特點(diǎn)?它與瀑布模型最大的不同是什么? 答案要點(diǎn): 特點(diǎn): 原型進(jìn)化模型將軟件的需求細(xì)節(jié)定義、產(chǎn)品開發(fā)和有效性驗(yàn)證放在同一個(gè)工作進(jìn)程中交替或并行運(yùn)作。因此.在獲得了軟件需求框架以后,如軟件的基本功能被確定以后,就可以直接進(jìn)入到對(duì)軟件的開發(fā)中。 原型進(jìn)化模型是通過不斷發(fā)布新的軟件版本而使軟件逐步完善的,因此.這種開發(fā)模式特別適合于那些用戶急需的軟件產(chǎn)品開發(fā)。它能夠快速地向用戶交付可以投入實(shí)際運(yùn)行的軟件成果,并能夠很好地適應(yīng)軟件用戶對(duì)需求規(guī)格的變更。 不同是: 傳統(tǒng)的瀑布模型很難適應(yīng)需求變化、模糊不定的軟件系統(tǒng)的開發(fā),而且在開發(fā)過程中,用戶很難參與進(jìn)去,只有到開發(fā)結(jié)束才能看到整個(gè)軟件系統(tǒng)。這種線性的開發(fā)過程,缺乏靈活性。 原型模型的提出,可以較好的解決瀑布模型的局限性。 通過建立原型,可以更好的和客戶進(jìn)行溝通,解決對(duì)一些模糊需求的澄清,并且對(duì)需求的變化有較強(qiáng)的適應(yīng)能力。原型模型可以減少技術(shù)、應(yīng)用的風(fēng)險(xiǎn),縮短開發(fā)時(shí)間,減少費(fèi)用,提高生產(chǎn)率,通過實(shí)際運(yùn)行原型,提供了用戶直接評(píng)價(jià)系統(tǒng)的方法,促使用戶主動(dòng)參與開發(fā)活動(dòng),加強(qiáng)了信息的反饋,促進(jìn)了各類人員的協(xié)調(diào)交流,減少誤解,能夠適應(yīng)需求的變化,最終有效提高軟件系統(tǒng)的質(zhì)量。 9. 某企業(yè)計(jì)劃開發(fā)一個(gè)“綜合信息管理系統(tǒng)”,該系統(tǒng)涉及銷售、供應(yīng)、財(cái)務(wù)、生產(chǎn)、人力資源等多個(gè)部門的信息管理。該企業(yè)的設(shè)想是按部門的優(yōu)先級(jí)別逐個(gè)實(shí)現(xiàn),邊開發(fā)邊應(yīng)用。對(duì)此需要采用一種比較合適的過程模型,請(qǐng)對(duì)這個(gè)過程模型做出符合應(yīng)用需求的選擇,并說明選擇理由。 答案要點(diǎn): 可以采用增量模型。它是瀑布模型與原型進(jìn)化模型的綜合,它對(duì)軟件過程的考慮是:在整體上按照瀑布模型的流程實(shí)施項(xiàng)目開發(fā),以方便對(duì)項(xiàng)目的管理;但在軟件的實(shí)際創(chuàng)建中,則把軟件系統(tǒng)按功能分解為許多增量構(gòu)件,并以構(gòu)件為單位逐個(gè)地創(chuàng)建與交付,直到全部增量構(gòu)架創(chuàng)建完畢,并都被集成到系統(tǒng)之中交付用戶使用。 第3章 結(jié)構(gòu)化需求分析 1. 如何理解需求分析的任務(wù)是確定軟件系統(tǒng)“做什么”,而不是“怎么做”? 答案要點(diǎn): 需求分析的任務(wù)是借助當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。在理解當(dāng)前系統(tǒng)“怎么做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì),從而從當(dāng)前系統(tǒng)的物理模型抽象出當(dāng)前系統(tǒng)的邏輯模型。在去掉非本質(zhì)的因素后,根據(jù)用戶提出的對(duì)目標(biāo)系統(tǒng)的需求,分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,明確目標(biāo)系統(tǒng)的范圍、功能、處理步驟和數(shù)據(jù)結(jié)構(gòu),建立目標(biāo)系統(tǒng)的邏輯模型。需求分析階段研究的對(duì)象是軟件項(xiàng)目的用戶要求,正確地理解需求和準(zhǔn)確地表達(dá)需求是需求分析的關(guān)鍵,只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計(jì)的基礎(chǔ)。 2. 什么是用戶需求?什么是系統(tǒng)需求? 答案要點(diǎn): 用戶需求是關(guān)于軟件的一系列想法的集中體現(xiàn),涉及軟件的功能、操作方式、界面風(fēng)格、用戶機(jī)構(gòu)的業(yè)務(wù)范圍、工作流程和用戶對(duì)軟件應(yīng)用的展望等。因此,用戶需求也就是關(guān)于軟件的外界特征的規(guī)格表述。 系統(tǒng)需求是比用戶需求更具有技術(shù)特性的需求陳述。它是提供給開發(fā)者或用戶方技術(shù)人員閱讀的,并將作為軟件開發(fā)人員設(shè)計(jì)系統(tǒng)的起點(diǎn)與基本依據(jù)。系統(tǒng)需求需要對(duì)系統(tǒng)的功能、性能、數(shù)據(jù)等方面進(jìn)行規(guī)格定義。 3. 4. 用戶需求調(diào)查主要有哪些方法? 答案要點(diǎn): 用戶需求調(diào)查主要有研究資料法、問卷調(diào)查法、用戶訪談和實(shí)地觀察法等。 5. 為什么一個(gè)系統(tǒng)的數(shù)據(jù)流程圖一般是一套分層的數(shù)據(jù)流圖? 答案要點(diǎn): 分層的數(shù)據(jù)流圖體現(xiàn)了分解和抽象的原則,它使人們不至于一下子陷入細(xì)節(jié),而是有控制地逐步地了解更多的細(xì)節(jié),這有助于理解問題。圖中頂層抽象地描述了整個(gè)系統(tǒng),底層具體地畫出了軟件的每一個(gè)細(xì)部,中間層則是從抽象到具體的逐步過渡。按照這樣的方法,無論問題多么復(fù)雜,分析工作都可以有計(jì)劃、有步驟、有條不紊地進(jìn)行。 6. 數(shù)據(jù)字典的作用是什么?它有哪些基本條目? 答案要點(diǎn): 數(shù)據(jù)字典是結(jié)構(gòu)化分析的另一個(gè)有力的工具。它是為數(shù)據(jù)流程圖中的每個(gè)數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、加工以及組成數(shù)據(jù)流或文件的數(shù)據(jù)項(xiàng)做出說明,沒有數(shù)據(jù)字典,數(shù)據(jù)流程圖就不嚴(yán)格。數(shù)據(jù)字典的重要用途是作為分析階段的工具。在數(shù)據(jù)字典中建立嚴(yán)密一致的定義有助于改進(jìn)分析人員和用戶之間的通信,避免許多誤解的發(fā)生。數(shù)據(jù)字典也有助于改進(jìn)不同的開發(fā)人員或不同的開發(fā)小組之間的通信。同樣,將數(shù)據(jù)流程圖中的每個(gè)元素的精確定義放在一起,就構(gòu)成了系統(tǒng)的、完整的需求規(guī)格說明的主體。數(shù)據(jù)字典還作為連接軟件設(shè)計(jì)、實(shí)現(xiàn)和進(jìn)化階段的開發(fā)機(jī)構(gòu)的信息存儲(chǔ)。在軟件設(shè)計(jì)階段,數(shù)據(jù)字典是存儲(chǔ)文件或數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ)。在實(shí)施階段,還可參照數(shù)據(jù)字典描述數(shù)據(jù)。隨著系統(tǒng)的改進(jìn),字典中的信息也會(huì)發(fā)生變化,新的信息會(huì)隨時(shí)加入進(jìn)來。 7. 需求規(guī)格說明書的主要內(nèi)容是什么?它的作用是什么? 答案要點(diǎn): 需求規(guī)格說明書是需求分析階段的最終“產(chǎn)品”。它相當(dāng)于用戶和開發(fā)商之間的一項(xiàng)合同。它精確地描述軟件產(chǎn)品做什么,以及產(chǎn)品的約束條件等。它還給軟件設(shè)計(jì)提供了一個(gè)藍(lán)圖,給系統(tǒng)驗(yàn)收提供了一個(gè)驗(yàn)收標(biāo)準(zhǔn)集。主要內(nèi)容: 1)引言:編寫目的、背景、定義、參考資料 2)任務(wù)概述:目標(biāo)、用戶特點(diǎn)、假設(shè)與約束 3)需求規(guī)定:對(duì)功能的規(guī)定、對(duì)性能的規(guī)定、輸入輸出要求、數(shù)據(jù)管理能力要求、故障處理要求 4)運(yùn)行環(huán)境規(guī)定:設(shè)備、支持軟件、接口、控制 5)需求分析等 8. 什么是結(jié)構(gòu)化分析方法?結(jié)構(gòu)化分析方法的結(jié)果是什么? 答案要點(diǎn): 結(jié)構(gòu)化分析方法要求軟件系統(tǒng)的開發(fā)工作按照規(guī)定步驟,使用一定的圖表工具,在結(jié)構(gòu)化和模塊化的基礎(chǔ)上進(jìn)行。結(jié)構(gòu)化是把軟件系統(tǒng)功能當(dāng)作一個(gè)大模塊,根據(jù)分析與設(shè)計(jì)的不同要求,進(jìn)行模塊分解或者組合。 結(jié)構(gòu)化系統(tǒng)分析的結(jié)果是建立系統(tǒng)的邏輯模型。 9. 題(P54) 頂圖: 中圖: 底圖: E-R圖: 10. 題(P54) 第4章 結(jié)構(gòu)化軟件設(shè)計(jì) 1.概要設(shè)計(jì)的任務(wù)和步驟是什么? 答案要點(diǎn): 概要設(shè)計(jì)的任務(wù)就是根據(jù)需求分析階段所產(chǎn)生的軟件需求規(guī)格說明書,建立目標(biāo)系統(tǒng)的總體結(jié)構(gòu)。1)建立目標(biāo)系統(tǒng)的總體架構(gòu)2)給出每個(gè)功能模塊的功能描述、數(shù)據(jù)接口描述和調(diào)用關(guān)系,規(guī)定設(shè)計(jì)限制、外部文件及全局?jǐn)?shù)據(jù)定義。3)設(shè)計(jì)數(shù)據(jù)庫及數(shù)據(jù)結(jié)構(gòu)。4)編寫文檔。 概要設(shè)計(jì)過程主要包括:1)制定規(guī)范 2)系統(tǒng)架構(gòu)設(shè)計(jì)3)軟件結(jié)構(gòu)設(shè)計(jì)4)公共數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5)安全性設(shè)計(jì)6)故障處理設(shè)計(jì)7)編寫文檔 8)概要設(shè)計(jì)評(píng)審 2.如何理解模塊的獨(dú)立性?用什么指標(biāo)來衡量模塊的獨(dú)立性? 答案要點(diǎn): 模塊的獨(dú)立性是指不同模塊之間的相互聯(lián)系應(yīng)盡可能的少,應(yīng)盡可能減少公共的變量和數(shù)據(jù)結(jié)構(gòu);一個(gè)模塊應(yīng)盡可能在邏輯上獨(dú)立,有完整單一的功能。具有良好獨(dú)立性的模塊,可使模塊功能完整、數(shù)據(jù)接口簡(jiǎn)單、程序易于理解和維護(hù)。獨(dú)立性限制了錯(cuò)誤的作用范圍,使錯(cuò)誤易于排除,因而可使軟件開發(fā)速度快,質(zhì)量高。 通過模塊的耦合度、模塊的內(nèi)聚性來衡量模塊的獨(dú)立性 3.從數(shù)據(jù)流程圖導(dǎo)出的初試模塊結(jié)構(gòu)圖是不完美的,應(yīng)從哪些方面考慮改進(jìn)? 答案要點(diǎn): 1) 做到模塊的高內(nèi)聚性,并且能夠辨別出低內(nèi)聚性的模塊,加以修改使之提高內(nèi)聚性; 2)降低模塊間的耦合度:控制使用全局?jǐn)?shù)據(jù)、模塊間盡量傳遞數(shù)據(jù)型信息; 3)作用(影響)范圍在控制范圍之內(nèi); 4) 模塊的扇入、扇出要適當(dāng)?shù)取? 4.什么是軟件體系結(jié)構(gòu)?什么是軟件體系結(jié)構(gòu)風(fēng)格? 答案要點(diǎn): 軟件體系結(jié)構(gòu)表示了一個(gè)軟件系統(tǒng)的邏輯結(jié)構(gòu),描述包含系統(tǒng)基礎(chǔ)構(gòu)成單元、它們之間的作用關(guān)系、在構(gòu)成系統(tǒng)時(shí)它們的集成方法以及對(duì)集成約束的描述等方面。在設(shè)計(jì)軟件體系結(jié)構(gòu)時(shí),必須考慮系統(tǒng)的動(dòng)態(tài)行為,考慮與現(xiàn)有系統(tǒng)的兼容性、安全性、可靠性、擴(kuò)展性和伸縮性。 模式是針對(duì)特定問題的成功解決方案,是指形成了一種趨于固定的結(jié)構(gòu)形式。人們可以無數(shù)次地使用這種完善的、成功的解決方案,無須再做重復(fù)的探索和開發(fā)工作。在軟件系統(tǒng)中常見的模式有結(jié)構(gòu)模式、設(shè)計(jì)模式。 風(fēng)格是帶有一種傾向性的模式。同一個(gè)問題可以有不同的解決方案和模式,但人們根據(jù)經(jīng)驗(yàn)通常會(huì)強(qiáng)烈傾向于采用特定的模式,這就是風(fēng)格。軟件風(fēng)格是在模式中帶有明顯指向性的、對(duì)軟件構(gòu)成具有整體性、普遍性、一般性的結(jié)構(gòu)和結(jié)構(gòu)關(guān)系的方法,因此,軟件風(fēng)格是一種特定的基本結(jié)構(gòu),表達(dá)了部件之問的特定關(guān)系和應(yīng)用約束。 5.為每一種模塊內(nèi)聚舉一個(gè)具體例子;為每一種模塊耦合舉一個(gè)具體例子。 1.答案要點(diǎn): 偶然內(nèi)聚:計(jì)算學(xué)生總成績(jī)與統(tǒng)計(jì)學(xué)生出勤人數(shù)放在一個(gè)模塊中; 邏輯內(nèi)聚:打印會(huì)計(jì)報(bào)表與打印學(xué)生成績(jī)表在一個(gè)模塊中; 時(shí)間內(nèi)聚:系統(tǒng)初始化模塊; 過程內(nèi)聚:根據(jù)考試成績(jī)分別進(jìn)行獎(jiǎng)學(xué)金處理、留級(jí)、退學(xué)處理等 通信內(nèi)聚:輸入入庫單、據(jù)此登記庫存帳并開具發(fā)票等 順序內(nèi)聚:計(jì)算學(xué)生平均成績(jī)、求出最高分、最低分與達(dá)到優(yōu)秀的學(xué)生等。 功能內(nèi)聚:計(jì)算工資 2. 答案要點(diǎn): 答案要點(diǎn): 內(nèi)容耦合:A模塊中功能要完成需要調(diào)用B模塊中的代碼來實(shí)現(xiàn); 公共耦合:多個(gè)模塊共享一個(gè)數(shù)據(jù)變量; 控制耦合:根據(jù)醫(yī)護(hù)人員的信息,調(diào)用醫(yī)生的評(píng)價(jià)模塊、或護(hù)士的考核模塊; 數(shù)據(jù)耦合:輸入考勤信息,并據(jù)此計(jì)算當(dāng)月實(shí)發(fā)工資。 6.簡(jiǎn)述變換分析、事務(wù)分析的基本步驟。 答案要點(diǎn): 變換流分析設(shè)計(jì)步驟: 1)確定變換流、輸入流和輸出流部分 2)設(shè)計(jì)模塊結(jié)構(gòu)的頂層和第一層 3)設(shè)計(jì)中下各層 事務(wù)分析的步驟: 根據(jù)事務(wù)功能設(shè)計(jì)一個(gè)頂層總控模塊; 將事務(wù)中心的輸入數(shù)據(jù)流對(duì)應(yīng)為一個(gè)第一層的接收模塊及該模塊的下層模塊; 將事務(wù)中心對(duì)應(yīng)為一個(gè)第一層的調(diào)度模塊; 對(duì)每一種類型的事務(wù)處理,在調(diào)度模塊下設(shè)計(jì)一個(gè)事務(wù)處理模塊,然后為每個(gè)事務(wù)處理模塊設(shè)計(jì)下面的操作模塊及操作模塊的細(xì)節(jié)模塊。 7.試用面向數(shù)據(jù)流的方法設(shè)計(jì)銀行儲(chǔ)蓄系統(tǒng)的軟件結(jié)構(gòu),并用E-R圖描述本系統(tǒng)中的數(shù)據(jù)對(duì)象。 答案要點(diǎn): 1.軟件結(jié)構(gòu)圖 2. E-R圖 8.畫出火車票訂票系統(tǒng)的HIPO圖。 答案要點(diǎn): 9.詳細(xì)設(shè)計(jì)有哪些主要工具? 答案要點(diǎn): 程序流程圖、PAD圖和盒圖是詳細(xì)設(shè)計(jì)時(shí)所使用的主要工具。 10.從1000以內(nèi)將能夠被7整除的數(shù)查出來,并計(jì)算出這些數(shù)的和。試分別使用程序流程圖、N-S盒圖、PAD圖設(shè)計(jì)該問題的算法。 答案要點(diǎn): public class A{ public static void main(String args[]){ int n=1; int sum=0; while(n<=1000){ n=n+1; if( (n%7==0)){ sum=sum+n; } } System.out.println("在1000以內(nèi)能被7整除的所有數(shù)的和是:"+sum); } } 12.試述界面設(shè)計(jì)中需要考慮哪些因素。 答案要點(diǎn): 1) 用戶工作環(huán)境與工作習(xí)慣 2) 界面的風(fēng)格的“一致性”與“個(gè)性化” 3) 界面信息反饋 4) 界面的合適性 5) 容錯(cuò)性 6) 審美性和可用性 《軟件工程實(shí)用教程》習(xí)題與參考答案 第5章 面向?qū)ο蟮男枨蠓治? 1.簡(jiǎn)述對(duì)象與類之間的聯(lián)系與區(qū)別。 答案要點(diǎn): 對(duì)象是指問題域中某些事物的一個(gè)抽象,它反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用,它是由數(shù)據(jù)(屬性)及其上的操作(也稱為服務(wù)、方法或行為)組成的封裝體。 類是指具有相同屬性和操作的對(duì)象的集合,它代表一種抽象,作為具有類似特性與共同行為的對(duì)象的模板,可用來產(chǎn)生對(duì)象。 類是具有相同屬性和行為的一組相似對(duì)象的抽象,類在現(xiàn)實(shí)世界中并不能真正存在。類是建立對(duì)象時(shí)使用的“樣板”,按照這個(gè)樣板所建立起來的一個(gè)個(gè)具體的對(duì)象,就是類的實(shí)例。對(duì)象是類的屬性數(shù)據(jù)具體化的結(jié)果,因而可稱為是類的實(shí)例。 3.與傳統(tǒng)結(jié)構(gòu)化方法比較,面向?qū)ο蠓椒ň哂心男┓矫娴膬?yōu)越性? 答案要點(diǎn): 面向?qū)ο蠓椒ǖ膬?yōu)越性:1)與人們習(xí)慣的思維方法一致2)可使軟件系統(tǒng)結(jié)構(gòu)更加穩(wěn)定 3)軟件具有更好的可復(fù)用性 4)軟件更加便于維護(hù)與擴(kuò)充 4.試描述面向?qū)ο蟮姆治鼋_^程。 答案要點(diǎn): 面向?qū)ο蟮姆治鼋_^:用例模型、對(duì)象(概念)模型、設(shè)計(jì)模型、配置模型 、實(shí)現(xiàn)模型和測(cè)試模型等。使用用例驅(qū)動(dòng)的開發(fā)方法是通過首先建立使用用例模型,再以用例模型為核心構(gòu)造一系列的模型。 6.題,答案要點(diǎn): 1. 根據(jù)用戶的職能建立的用例圖。 2.通過對(duì)系統(tǒng)需求中的形容詞和動(dòng)詞進(jìn)行分析,確定了每個(gè)對(duì)象的屬性和服務(wù),把每個(gè)對(duì)象的屬性和服務(wù)填到相應(yīng)的類符號(hào)中,構(gòu)成了類圖的特征層。見圖3所示。 3. 動(dòng)態(tài)模型 (1)添加借閱者 “添加借閱者”的過程是,圖書管理員選擇菜單項(xiàng)“添加借閱者”,對(duì)話框彈出,圖書管理員輸入借閱者信息,然后提交,系統(tǒng)根據(jù)借閱者的ID號(hào)查詢數(shù)據(jù)庫,看數(shù)據(jù)庫中是否存在該借閱者,若不存在,創(chuàng)建借閱者賬戶,并存儲(chǔ)借閱者信息。 “添加借閱者”的順序圖如上所示。圖書管理員選擇菜單項(xiàng)“添加借閱者”,邊界類Mainwindow的方法addborrower()被調(diào)用,然后通過調(diào)用邊界類BorrowerDialog的方法createDialog()創(chuàng)建對(duì)話框。圖書管理員輸入借閱者信息后,提交信息,類BorrowerDialog的方法addBorrower()被調(diào)用,通過調(diào)用實(shí)體類Borrower的方法findBorrower(id:string)來確定該借閱者的賬戶是否已經(jīng)存在,若不存在,則調(diào)用類Borrower的方法newBorrowe()為借閱者創(chuàng)建賬戶,并調(diào)用Borrower的方法store()存儲(chǔ)該借閱者的信息。 (2)添加書種 圖書管理員選擇菜單項(xiàng)“添加書種”,對(duì)話框彈出,圖書管理員輸入書刊名、ISBN/ISSN、作者等信息,提交,系統(tǒng)根據(jù)ISBN/ISSN號(hào)查詢書種信息是否已存在,若不存在,創(chuàng)建書種,并存儲(chǔ)書種信息。 “添加書種”的時(shí)序圖如上所示。圖書管理員選擇菜單項(xiàng)“添加書種”,類MainWindow的方法addTitle()被調(diào)用,然后通過調(diào)用類TitleDialog的方法creatDialog()創(chuàng)建對(duì)話框,圖書管理員輸入書刊信息后,提交,類TitleDialog的方法addTitle()被調(diào)用。通過調(diào)用類Title的方法findTitle()來確定該書刊種類是否存在,若不存在,則調(diào)用類Title的方法newTitle()創(chuàng)建Title對(duì)象,并調(diào)用類Book的方法newBook()創(chuàng)建物理書刊對(duì)象,以及調(diào)用方法store()將Book對(duì)象存儲(chǔ)到數(shù)據(jù)庫中,然后調(diào)用類Title的方法addBook()將物理書刊添加到Title中,最后將Title對(duì)象存儲(chǔ)到數(shù)據(jù)庫中;反之,若書刊種類存在,則顯示提示信息,終止操作。 小草急急忙忙的返青依舊;細(xì)雨迷迷濛濛的飄灑依舊。 盈盈月下來,照亮你的山歌依舊;燦燦星升起,白楊樹綠影婆娑依舊。 好風(fēng)似水,不驚你安眠依舊;鳥兒呢噥,愛的春天依舊。 可我,望盡了我的花季,望盡了長(zhǎng)長(zhǎng)的一路落英繽紛呵!岑凱倫的綿綿春雨依舊,戴望舒的深深雨巷依舊! 漂泊的船,尋找一個(gè)溫馨港口;孤寂的心,渴望一聲溫暖問候。 是你在我最落寞的時(shí)候,把親切放在我左右;是你在我最失意的時(shí)候,把慰藉放在我心頭。 紅酥手,黃藤酒;春如舊,人空瘦。蝴蝶雙飛影孤單,淚痕紅浥鮫綃透! 那一葉小舟,那一雙眼眸,望穿了幾層山水幾層樓?那一縷相思,那一縷離愁,孤獨(dú)了多少暮風(fēng)晨雨后? 春風(fēng)依舊,桃花依舊;春水依舊,明月依舊;渡口依舊,時(shí)光依舊。前世的情緣,今生的守候,多少次夢(mèng)里相逢,追憶難收,點(diǎn)點(diǎn)相思堆成無言的愁。 紅塵多少愛,化作春水流。時(shí)光悠悠,歲月悠悠;韶華易逝 真情難留。 忘情川上誰因離恨淚流?三生石前誰為癡情消廋? 縱然我望斷天涯孤獨(dú)依舊,在桃花飄落的渡口,我依然會(huì)為你采擷相思的紅豆;在海鷗飛翔的碼頭,我依然會(huì)為你升起祝福的星斗。 你若微笑,我青山嫵媚;你若安好,我綠水無憂! 你若想我,我春風(fēng)盈袖;你若念我,我春住心頭!- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
5 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 軟件工程 實(shí)用教程 習(xí)題 參考答案 人民郵電 大學(xué)出版社 主編
鏈接地址:http://kudomayuko.com/p-13118795.html