軟件工程問(wèn)答題_第1頁(yè)
軟件工程問(wèn)答題_第2頁(yè)
軟件工程問(wèn)答題_第3頁(yè)
軟件工程問(wèn)答題_第4頁(yè)
軟件工程問(wèn)答題_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上軟件工程問(wèn)答題第1章 軟件工程與軟件文檔1、什么是軟件?軟件的特點(diǎn)是什么?Answer:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件的特點(diǎn):(1)軟件是一種邏輯實(shí)體,具有抽象性而不具有物理性(2)軟件的生產(chǎn)和硬件不同(3)軟件產(chǎn)品不會(huì)磨損(4)開(kāi)發(fā)和運(yùn)行受計(jì)算機(jī)系統(tǒng)的限制(5)未完全擺脫手工藝的生產(chǎn)方式,計(jì)算機(jī)輔助開(kāi)發(fā)工具幫助有限(6)軟件本身的復(fù)雜性(7)軟件成本相當(dāng)昂貴,主要是腦力勞動(dòng)成本(8)相當(dāng)多的軟件工作涉及到社會(huì)因素,比如體制、管理、法律等2、計(jì)算機(jī)軟件有哪些常用的劃分標(biāo)準(zhǔn)?Answer:(1)按軟件的功能進(jìn)行

2、劃分,可分為:系統(tǒng)軟件、支撐軟件和應(yīng)用軟件(2)按軟件規(guī)模進(jìn)行劃分,可分為:微型、小型、中型、大型、甚大型、極大型(3)按軟件工作方式劃分,可分為:實(shí)時(shí)處理軟件、分時(shí)軟件、交互式軟件和批處理軟件(4)按軟件服務(wù)對(duì)象的范圍劃分可分為:項(xiàng)目軟件和產(chǎn)品軟件(5)按使用的頻度進(jìn)行劃分:有的僅供一次性使用、有的有較高的使用頻度(6)按軟件失效的影響進(jìn)行劃分:有的軟件失效對(duì)系統(tǒng)影響不大、有的可能造成災(zāi)難性后果3、什么是軟件危機(jī)?為什么會(huì)出現(xiàn)軟件危機(jī)?軟件危機(jī)的表現(xiàn)是什么?Answer:軟件危機(jī)就是在軟件開(kāi)發(fā)和維護(hù)過(guò)程中出現(xiàn)的一系列嚴(yán)重問(wèn)題。軟件危機(jī)產(chǎn)生的原因:(1)用戶需求不明確(2)軟件開(kāi)發(fā)人員和用戶對(duì)

3、軟件需求的理解不一致(3)領(lǐng)域交叉知識(shí)的缺乏(4)軟件開(kāi)發(fā)人員不能有效、獨(dú)立自主的處理大型軟件的全部關(guān)系和各個(gè)分支(5)缺乏有力的方法學(xué)和工具方面的支持(6)軟件產(chǎn)品的復(fù)雜性和人類智力的局限性,致使人們無(wú)力處理“復(fù)雜問(wèn)題”軟件危機(jī)的表現(xiàn):(1)軟件開(kāi)發(fā)的進(jìn)度難以控制,經(jīng)常出現(xiàn)經(jīng)費(fèi)超預(yù)算,完成期限一拖再拖的現(xiàn)象(2)軟件需求在開(kāi)發(fā)初期不明確,導(dǎo)致矛盾在后期集中暴露,從而給整個(gè)開(kāi)發(fā)過(guò)程帶來(lái)災(zāi)難性的后果(3)由于缺乏完整規(guī)范的資料,加之軟件測(cè)試不夠充分,從而造成軟件質(zhì)量低下,在運(yùn)行中出現(xiàn)大量問(wèn)題。4、什么是軟件工程?軟件工程構(gòu)成三要素是什么?試說(shuō)明軟件工程是如何克服軟件危機(jī)的?Answer:軟件工程

4、定義:(1)Bauer定義:軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上高效運(yùn)行的可靠軟件而建立和使用的一系列好的工程化原則。(2)IEEE定義:軟件工程是研究和應(yīng)用如何以系統(tǒng)化、規(guī)范的、可度量的方法去開(kāi)發(fā)、運(yùn)行和維護(hù)軟件,即把工程化應(yīng)用到軟件上。軟件工程構(gòu)成三要素為:(1)過(guò)程管理部分(2)方法技術(shù)手段(3)工具自動(dòng)或半自動(dòng)地支持軟件的開(kāi)發(fā)和管理要素之間的相互關(guān)聯(lián)和支持5、軟件工程的目標(biāo)是什么?軟件工程的原則是什么?Answer:軟件工程的目標(biāo)是:在給定成本、進(jìn)度的前提下,開(kāi)發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶需求的軟

5、件產(chǎn)品。軟件工程的原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性和可驗(yàn)證性。6、ACM提出的12個(gè)在不同場(chǎng)合反復(fù)出現(xiàn)的概念是什么?如何理解?Answer:ACM(Association for Computer Machinery)美國(guó)計(jì)算機(jī)協(xié)會(huì)這12個(gè)概念是:(1)綁定。通過(guò)把一個(gè)抽象的概念與附加特性相聯(lián)系從而使抽象的概念具體化的過(guò)程。(2)大問(wèn)題的復(fù)雜性。C(M)+C(N)C(M+N)(3)概念和形式模型。對(duì)一個(gè)想法或問(wèn)題進(jìn)行形式化、特征化、可視化和思維的各種方法。(4)一致性和完備性。 一致性包括公理的一致性、理論與事實(shí)的一致性、設(shè)計(jì)與實(shí)現(xiàn)的一致性等。 完備性包括公理的充分性和功能

6、的充分性。(5)效率。關(guān)于對(duì)空間、時(shí)間、人力、財(cái)力等資源耗費(fèi)的度量。(6)演化。對(duì)更改的適應(yīng)性。(7)抽象層次。通過(guò)具有不同層次的細(xì)節(jié)和指標(biāo)的抽象能夠表示一個(gè)實(shí)體或系統(tǒng)。(8)按空間排序。局部性和近鄰性的概念。(9)按時(shí)間排序。事件排序中的時(shí)間概念。(10)重用。技術(shù)、概念或系統(tǒng)成分可被再次使用的能力。(11)安全性。對(duì)合適的響應(yīng)以及抗拒不合適的非預(yù)期的請(qǐng)求以保護(hù)自己的能力、承受災(zāi)難的能力。(12)折中和結(jié)論。7、軟件文檔在軟件開(kāi)發(fā)中的地位和作用如何?在軟件開(kāi)發(fā)中對(duì)文檔的基本要求是什么?Answer:軟件文檔的地位:(1)編制軟件文檔的過(guò)程,實(shí)際上就是采用軟件工程方法,有組織、有計(jì)劃的科學(xué)管理

7、過(guò)程和研究開(kāi)發(fā)過(guò)程。(2)軟件文檔記錄軟件開(kāi)發(fā)的活動(dòng)和階段性成果,它具有永久性并能提供給人或機(jī)器閱讀。(3)從某種意義上,軟件文檔甚至比可執(zhí)行代碼程序還重要。軟件文檔的作用:(1)文檔反應(yīng)軟件開(kāi)發(fā)人員各階段的工作成果和結(jié)束標(biāo)志。(2)文檔提高軟件開(kāi)發(fā)過(guò)程的透明度,便于軟件管理人員對(duì)整個(gè)開(kāi)發(fā)過(guò)程進(jìn)行控制和管理。(3)文檔增強(qiáng)軟件開(kāi)發(fā)的系統(tǒng)性(4)文檔增強(qiáng)軟件開(kāi)發(fā)人員之間的交流(5)文檔既便于協(xié)調(diào)軟件開(kāi)發(fā)工作,又為軟件維護(hù)和擴(kuò)充提供數(shù)據(jù)。(6)文檔聲明軟件安裝。對(duì)文檔的基本要求:及時(shí)性、完整性、準(zhǔn)確性、規(guī)范性。8、如何理解標(biāo)準(zhǔn)化工作對(duì)軟件文檔編寫(xiě)的積極作用?Answer:9、關(guān)于計(jì)算機(jī)文檔的常用標(biāo)

8、準(zhǔn)有哪些?Answer:軟件工程和軟件文檔標(biāo)準(zhǔn)可分為5個(gè)級(jí)別:國(guó)際標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)規(guī)范和項(xiàng)目規(guī)范。常用的有:ISO(國(guó)際標(biāo)準(zhǔn)化組織)、GB(國(guó)標(biāo))、ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))、IEEE(美國(guó)電氣與電子工程師協(xié)會(huì))等10、根據(jù)國(guó)家標(biāo)準(zhǔn),軟件文檔的種類有哪些?Answer:根據(jù)GB,軟件文檔種類有:(1)可行性研究報(bào)告(2)項(xiàng)目開(kāi)發(fā)計(jì)劃(3)軟件需求說(shuō)明書(shū)(4)數(shù)據(jù)要求說(shuō)明書(shū)(5)概要設(shè)計(jì)說(shuō)明書(shū)(6)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(7)數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)(8)用戶手冊(cè)(9)操作手冊(cè)(10)測(cè)試計(jì)劃(11)測(cè)試分析報(bào)告(13)開(kāi)發(fā)進(jìn)度月報(bào)(14)項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告第2章 軟件生命周期、過(guò)程模型、CASE

9、1、什么是軟件生命周期?把生命周期劃分成階段的目的是什么?Answer:軟件產(chǎn)品從形成概念開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最后退役的全過(guò)程稱為軟件生命周期。把生命周期劃分成階段的目的:把軟件生命周期劃分成若干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡(jiǎn)單,便于不同人員分工協(xié)作,從而降低了整個(gè)軟件開(kāi)發(fā)工程的困難程度;在軟件生命周期的每個(gè)階段都采用科學(xué)的管理技術(shù)和良好的技術(shù)方法,使得軟件開(kāi)發(fā)的全過(guò)程以一種有條不紊的方式進(jìn)行,這樣,能保證軟件的質(zhì)量,特別是提高軟件的可維護(hù)性。2、軟件生命周期各階段是如何劃分的?試述各階段的基本任務(wù)。Answer:軟件生命周期分為軟件系統(tǒng)的可行性研究、需求分析、概要設(shè)計(jì)

10、、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、組裝測(cè)試、確認(rèn)測(cè)試、使用、維護(hù)、退役十個(gè)階段。各階段的基本任務(wù):可行性研究:分析軟件項(xiàng)目的經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性、進(jìn)行方案的選擇和編寫(xiě)可行性研究報(bào)告。需求分析:確認(rèn)待開(kāi)發(fā)軟件的功能需求、性能需求和運(yùn)行環(huán)境約束,編制軟件需求規(guī)格說(shuō)明、軟件系統(tǒng)的確認(rèn)測(cè)試準(zhǔn)則和用戶手冊(cè)概要。概要設(shè)計(jì):根據(jù)軟件需求規(guī)格說(shuō)明建立軟件系統(tǒng)的總體結(jié)構(gòu)和模塊間的關(guān)系,定義各功能模塊接口,設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu),規(guī)定設(shè)計(jì)約束,制定組裝測(cè)試計(jì)劃。詳細(xì)設(shè)計(jì):建立“模塊開(kāi)發(fā)宗卷”:設(shè)計(jì)程序模塊的內(nèi)部細(xì)節(jié),包括算法、數(shù)據(jù)結(jié)構(gòu)和各程序模塊之間的詳細(xì)接口信息;擬定模塊測(cè)試方案。實(shí)現(xiàn):根據(jù)詳細(xì)設(shè)計(jì)文檔將詳細(xì)設(shè)

11、計(jì)轉(zhuǎn)化為程序,完成程序調(diào)試和程序單元測(cè)試。組裝測(cè)試:將經(jīng)過(guò)單元測(cè)試的模塊逐步進(jìn)行組裝和測(cè)試。確認(rèn)測(cè)試:測(cè)試系統(tǒng)是否達(dá)到了系統(tǒng)需求。3、什么是軟件開(kāi)發(fā)模型?常用的軟件開(kāi)發(fā)模型有哪些?Answer:軟件開(kāi)發(fā)模型(Software Development Model)是指軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。常用的軟件開(kāi)發(fā)模型有:以軟件需求完全確定為前提的模型:瀑布模型漸進(jìn)式開(kāi)放模型:原型模型、螺旋模型形式化開(kāi)發(fā)方法為基礎(chǔ)的變換模型4、瀑布模型的特點(diǎn)是什么?快速原型模型與螺旋模型有何區(qū)別?Answer:瀑布模型的特點(diǎn)是:(1)規(guī)定了階段之間自上而下、相互銜接的固定次序,上一階段的成果作為下一階段的

12、輸入(2)每一個(gè)階段完成之后,必須對(duì)階段性成果進(jìn)行評(píng)審,確認(rèn)之后才可進(jìn)入下一階段??焖僭湍P团c螺旋模型的區(qū)別為:快速原型模型:快速原型模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來(lái)的用戶與系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求。通過(guò)逐步調(diào)整原型使其滿足客戶的要求,開(kāi)發(fā)人員可以確定客戶的真正需求是什么;第二步則在第一步的基礎(chǔ)上開(kāi)發(fā)客戶滿意的軟件產(chǎn)品。螺旋模型:螺旋模型 ,它將瀑布模型和快速原型模型結(jié)合起來(lái),強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。螺旋模型由風(fēng)險(xiǎn)驅(qū)動(dòng),強(qiáng)調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標(biāo)融入產(chǎn)品開(kāi)發(fā)之中

13、。5、什么是CASE?試舉幾例你所使用的CASE工具并說(shuō)明它們的作用和特點(diǎn)。Answer:CASE(Computer Aided Software Engineering)計(jì)算機(jī)輔助軟件工程:在軟件工程活動(dòng)中,軟件工程師和管理員按照軟件工程的方法和原則,借助計(jì)算機(jī)及其軟件工具的幫助,開(kāi)發(fā)、維護(hù)、管理軟件產(chǎn)品的過(guò)程。CASE工具:事物系統(tǒng)規(guī)劃工具、項(xiàng)目管理工具、支撐工具、分析和設(shè)計(jì)工具、程序設(shè)計(jì)工具、測(cè)試工具、原型建造工具、維護(hù)工具、框架工具。6、可行性研究的內(nèi)容有哪些?Answer:可行性研究的內(nèi)容有:引言、要求和目標(biāo)、現(xiàn)有系統(tǒng)、所建議的系統(tǒng)、可選擇的其它系統(tǒng)方案、投資及效益分析、社會(huì)因素方面

14、的可行性、結(jié)論。7、用系統(tǒng)流程圖描述一家網(wǎng)上銀行中網(wǎng)上購(gòu)物系統(tǒng)的物理模型,并編寫(xiě)此系統(tǒng)的可行性研究報(bào)告。Answer:顧客購(gòu)買活動(dòng)圖:顧客購(gòu)買活動(dòng)圖主要是描述系統(tǒng)元素的活動(dòng),用于展示參與行為的類的活動(dòng)或動(dòng)作。下圖便是網(wǎng)上顧客購(gòu)物過(guò)程的活動(dòng)圖,直觀地反映顧客在網(wǎng)上購(gòu)買商品活動(dòng)的整個(gè)過(guò)程,具體見(jiàn)下圖。 從活動(dòng)圖中可以看到,顧客首先訪問(wèn)網(wǎng)上購(gòu)物網(wǎng)站,瀏覽網(wǎng)頁(yè)。接著如果是新用戶就登錄注冊(cè)界面,輸入相關(guān)信息進(jìn)行注冊(cè),立刻成為用戶。老用戶就直接登錄界面。注冊(cè)成為會(huì)員后,就能夠享受到商場(chǎng)提供的各種方便的服務(wù),可以利用商品查詢的功能,快捷地查詢到 自己需要購(gòu)買的商品,為顧客實(shí)現(xiàn)不出門也能方便快捷地了解到自己需

15、要購(gòu)買的商品的價(jià)格,生產(chǎn)日期,有何優(yōu)惠等。找到自己需要購(gòu)買的商品以后,就可以進(jìn)行購(gòu)物了。在需要購(gòu)買的商品點(diǎn)擊購(gòu)買按扭,進(jìn)入訂貨界面,進(jìn)行訂貨??蛻艨梢圆樵冏约旱挠唵?,看看是否交易成功。成功后就進(jìn)行付款 ,最后可以選擇繼續(xù)購(gòu)買還是注銷退出,實(shí)現(xiàn)網(wǎng)上購(gòu)物整個(gè)活動(dòng)過(guò)程。第3章 軟件文檔寫(xiě)作1、什么是文檔?如何理解軟件文檔在軟件開(kāi)發(fā)中的橋梁作用?Answer:文檔是指某種數(shù)據(jù)媒體和其中所記錄的數(shù)據(jù)。在軟件工程中,文檔常常用來(lái)表示對(duì)活動(dòng)、需求、過(guò)程或結(jié)果進(jìn)行描述、定義、規(guī)定、報(bào)告或認(rèn)證的任何書(shū)面或圖示的信息。軟件文檔在產(chǎn)品的開(kāi)發(fā)生產(chǎn)和使用、維護(hù)過(guò)程中起著重要的橋梁作用。(1)提高軟件開(kāi)發(fā)過(guò)程的能見(jiàn)度(2

16、)提高開(kāi)發(fā)效率(3)作為開(kāi)發(fā)人員在一定階段的工作結(jié)果和結(jié)束標(biāo)志(4)記錄開(kāi)發(fā)過(guò)程中的有關(guān)信息,便于管理人員、開(kāi)發(fā)人員、操作人員、用戶之間的協(xié)作、交流和了解(5)便于潛在用戶了解軟件的功能、性能等各項(xiàng)指標(biāo),為他們選購(gòu)符合自己需求的軟件提供依據(jù)。2、對(duì)軟件文檔的質(zhì)量要求有哪些?Answer:(1)針對(duì)性:文檔編制以前應(yīng)分清讀者對(duì)象(2)精確性:文檔的行文應(yīng)當(dāng)十分確切,不能出現(xiàn)多義性的描述(3)清晰性:文檔編寫(xiě)應(yīng)力求簡(jiǎn)明,如有可能,配以適當(dāng)?shù)膱D表,以增強(qiáng)其清晰性(4)完整性:任何一個(gè)文檔都應(yīng)當(dāng)是完整的,獨(dú)立的,它應(yīng)自成體系(5)靈活性:不同軟件項(xiàng)目的規(guī)模和復(fù)雜程度有著許多實(shí)際差別,不能一樣看待3、軟

17、件文檔的編寫(xiě)一般分為哪幾個(gè)步驟?Answer:任何一個(gè)文件的編寫(xiě)過(guò)程都可以分為四個(gè)步驟:準(zhǔn)備工作、確定寫(xiě)作內(nèi)容、編寫(xiě)定稿、更新完善。4、如何寫(xiě)好計(jì)算機(jī)軟件文檔?Answer:(1)做好準(zhǔn)備:深入理解系統(tǒng)和用戶、明確寫(xiě)作目的、確定文檔的組織方式(2)講究文風(fēng):語(yǔ)言簡(jiǎn)潔、讀者觀點(diǎn)、尊重習(xí)慣(3)注重表達(dá):圖表、符號(hào)、引例(4)加強(qiáng)文檔編寫(xiě)使用的組織管理 軟件文檔編寫(xiě)過(guò)程管理:軟件文檔編寫(xiě)計(jì)劃管理、軟件文檔編寫(xiě)進(jìn)度管理、軟件文檔評(píng)審管理、軟件文檔維護(hù)管理 軟件文檔使用管理:軟件文檔歸檔、軟件文檔控制、軟件文檔發(fā)行管理(5)注意幾個(gè)問(wèn)題:文檔的整體結(jié)構(gòu)、文檔的一致性、文檔的可用性、文檔的可維護(hù)性、文檔

18、的及時(shí)性、文檔的評(píng)審測(cè)試、文檔的使用培訓(xùn)、文檔編寫(xiě)自動(dòng)化5、在文檔的編寫(xiě)中如何使用引例?Answer:在使用引例時(shí),應(yīng)該重視以下幾點(diǎn):(1)引例使用要適當(dāng),要有重點(diǎn),多則無(wú)法突出重點(diǎn),少則不易講明問(wèn)題(2)引例要典型,即所使用的引例必須有代表性,必須為讀者提供量的概念,最好能提供量的范圍(3)引例準(zhǔn)確,文檔編寫(xiě)者應(yīng)該清楚這樣一點(diǎn):讀者對(duì)引例的研究要比對(duì)文字?jǐn)⑹龅难芯空J(rèn)真幾倍(4)引例之間應(yīng)相互補(bǔ)充6、軟件文檔編寫(xiě)過(guò)程中主要包括哪些內(nèi)容?如何理解文檔的一致性?Answer:軟件文檔編寫(xiě)過(guò)程管理主要包括:軟件文檔編寫(xiě)計(jì)劃管理、軟件文檔編寫(xiě)進(jìn)度管理、軟件文檔評(píng)審管理、軟件文檔維護(hù)管理。所編寫(xiě)的文檔是

19、否一致,主要是指:(1)文檔與系統(tǒng)是否一致(2)文檔之間是否一致(3)文檔局部與整體是否一致(4)文檔所用圖表、符號(hào)是否一致(5)文檔所用約定是否一致(6)文檔所用概念的內(nèi)涵和外延是否一致第4章 需求分析基礎(chǔ)1、什么是軟件需求?如何理解軟件需求分析的重要性?Answer:IEEE軟件工程標(biāo)準(zhǔn)詞匯表中的需求定義:(1)用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或能力(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力(3)一種反映上面兩點(diǎn)所描述條件或能力的文檔說(shuō)明軟件需求分析的重要性體現(xiàn)在:在軟件開(kāi)發(fā)過(guò)程中遇到的許多問(wèn)題,都是由于收集、編寫(xiě)、協(xié)商、修改軟件需求過(guò)程中的失誤帶來(lái)的

20、,諸如信息收集不全、功能不明確、交流不充分、文檔不完善、需求發(fā)生變化等。開(kāi)發(fā)軟件系統(tǒng)最為困難的部分就是準(zhǔn)確說(shuō)明開(kāi)發(fā)什么,最為困難的概念性工作便是編寫(xiě)詳細(xì)的技術(shù)需求,包括所有面向用戶、面向機(jī)器和其他軟件系統(tǒng)的接口。軟件需求一旦做錯(cuò),將會(huì)給系統(tǒng)帶來(lái)極大的損害,同時(shí)對(duì)以后的修改也帶來(lái)很大的困難。2、軟件需求分析是軟件工程過(guò)程中交換意見(jiàn)最頻繁的步驟。為什么交換意見(jiàn)的途徑會(huì)經(jīng)常阻塞?Answer:3、需求分析分為哪幾個(gè)方面?Answer:(1)問(wèn)題識(shí)別(2)分析和綜合(3)編制需求分析階段的文檔(4)需求分析評(píng)審4、需求獲取技術(shù)主要作了哪些工作?Answer:(1)建立獲取用戶需求的方法的框架(2)支持

21、和監(jiān)控需求獲取的過(guò)程的機(jī)制5、什么是多視點(diǎn)分析?如何理解抽象在軟件開(kāi)發(fā)中的作用?Answer:多視點(diǎn)分析就是從各個(gè)角度分別對(duì)問(wèn)題進(jìn)行理解和分析,然后綜合成為全面理解。抽象在軟件開(kāi)發(fā)中的作用:抽象方法要求分析人員在分析過(guò)程中善于捕捉用戶描述或問(wèn)題本身所固有的一般-特殊關(guān)系,首先關(guān)注一般問(wèn)題的解決途徑,進(jìn)而指導(dǎo)特殊問(wèn)題的求解。同時(shí),分析人員應(yīng)該注意用戶描述所處的不同抽象級(jí)別,這是從雜亂零散關(guān)系中建立清晰思路的重要方法。6、快速原型法如何支持軟件需求分析?Answer:在軟件開(kāi)發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行版本,它反映最終系統(tǒng)的部分重要特性。如果在獲得一組基本需求說(shuō)明后,通過(guò)快速分析構(gòu)造出一個(gè)小型

22、的軟件系統(tǒng),滿足用戶的基本要求。使得用戶可在試用原型系統(tǒng)的過(guò)程中得到親身感受和啟發(fā),做出反應(yīng)和評(píng)價(jià)。然后開(kāi)發(fā)者根據(jù)用戶的意見(jiàn)對(duì)原型加以改進(jìn)。隨著不斷試驗(yàn)、糾錯(cuò)、使用、評(píng)價(jià)和修改,獲得新的原型版本。如此周而復(fù)始,逐步減少分析和通信中的誤解,彌補(bǔ)不足之處,進(jìn)一步確定各種需求細(xì)節(jié),適應(yīng)需求的變更,從而提高了最終產(chǎn)品的質(zhì)量。7、需求管理的內(nèi)容有哪些?怎樣理解需求文檔的版本控制?Answer:需求管理的內(nèi)容包括:變更控制、版本控制、需求跟蹤、需求狀態(tài)跟蹤。需求文檔的版本控制:版本控制是管理需求的一個(gè)必要方面。需求文檔的每一個(gè)版本必須被統(tǒng)一確定,組內(nèi)每個(gè)成員必須能夠得到需求的當(dāng)前版本,必須清楚地將變更寫(xiě)成

23、文檔,并及時(shí)通知到項(xiàng)目開(kāi)發(fā)所涉及的人員。為了盡量減少困惑、沖突、誤傳,應(yīng)僅允許指定的人來(lái)更新需求。8、簡(jiǎn)述軟件需求規(guī)格說(shuō)明書(shū)的主要方面。Answer:(1)引言:目的+背景+定義+參考資料(2)任務(wù)概述:目標(biāo)+用戶特點(diǎn)+假定和約束(3)需求規(guī)定:信息功能描述+性能描述+輸入輸出+數(shù)據(jù)管理能力+故障處理+其它(4)運(yùn)行環(huán)境規(guī)定:硬件、軟件+接口+協(xié)議9、在軟件需求規(guī)格說(shuō)明書(shū)的“信息和功能描述”方面為什么采用不同的表達(dá)方式?有何區(qū)別?Answer:面向數(shù)據(jù)流的需求分析:數(shù)據(jù)流圖+數(shù)據(jù)詞典+小說(shuō)明面向?qū)ο蟮男枨蠓治觯侯悎D+各個(gè)類的詳細(xì)說(shuō)明+狀態(tài)圖+交互圖+文字說(shuō)明第5章 面向數(shù)據(jù)流的分析1、數(shù)據(jù)流程

24、圖的作用是什么?它有哪些基本成分?Answer:數(shù)據(jù)流圖在需求分析及整個(gè)軟件開(kāi)發(fā)和維護(hù)中有著重要作用:(1)數(shù)據(jù)流圖是需求分析的主要工具(2)數(shù)據(jù)流圖作為軟件開(kāi)發(fā)和維護(hù)各階段信息交流的工具,為分析、設(shè)計(jì)人員提供在各階段設(shè)計(jì)、實(shí)施和維護(hù)的依據(jù)。(3)當(dāng)使用數(shù)據(jù)流圖輔助物理系統(tǒng)設(shè)計(jì)時(shí),以圖中不同加工邏輯的定時(shí)要求為指導(dǎo)。數(shù)據(jù)流圖的基本圖形元素有4種:加工、數(shù)據(jù)輸入的源點(diǎn)和數(shù)據(jù)輸出的匯點(diǎn)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)文件。2、數(shù)據(jù)詞典的作用是什么?它有哪些基本條目?Answer:數(shù)據(jù)詞典精確、嚴(yán)格地定義了每一個(gè)與系統(tǒng)相關(guān)的數(shù)據(jù)元素,并以字典式順序?qū)⑺鼈兘M織起來(lái),使得用戶和分析員對(duì)所有輸入、輸出、存儲(chǔ)成分和中間計(jì)

25、算有共同的理解。在數(shù)據(jù)詞典的每一個(gè)詞條中應(yīng)包括以下信息:(1) 名稱:數(shù)據(jù)對(duì)象或控制項(xiàng)、數(shù)據(jù)存儲(chǔ)或外部實(shí)體的名字(2) 別名或編號(hào)(3) 分類:數(shù)據(jù)對(duì)象、加工、數(shù)據(jù)流、數(shù)據(jù)文件、外部實(shí)體、控制項(xiàng)(事件/狀態(tài))(4) 描述:描述內(nèi)容和數(shù)據(jù)結(jié)構(gòu)等(5) 何處使用:使用該詞條(數(shù)據(jù)或控制項(xiàng))的加工第6章 面向?qū)ο蟮男枨蠓治龇椒ǎㄉ希?、什么是面向?qū)ο蠓椒▽W(xué)?什么叫面向?qū)ο??面向?qū)ο蠓椒ǖ奶攸c(diǎn)是什么?為什么要用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)軟件?Answer:面向?qū)ο蠓椒ǖ幕舅枷胧菑默F(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā),盡可能地運(yùn)用人類的自然思維方式來(lái)構(gòu)造軟件系統(tǒng)。它更加強(qiáng)調(diào)運(yùn)用人類在日常的邏輯思維中經(jīng)常采用的

26、思想方法與原則,例如抽象、分類、繼承、聚合、封裝等,使開(kāi)發(fā)者以現(xiàn)實(shí)世界中的事物為中心來(lái)思考和認(rèn)識(shí)問(wèn)題,并以人們易于理解的方式表達(dá)出來(lái)。面向?qū)ο蟮幕居^點(diǎn):(1)客觀世界是由對(duì)象組成的,任何客觀的事物或?qū)嶓w都是對(duì)象,復(fù)雜的對(duì)象可以由簡(jiǎn)單的對(duì)象組成(2)具有相同數(shù)據(jù)和相同操作的對(duì)象可以歸并成為一個(gè)類,對(duì)象是對(duì)象類的一個(gè)實(shí)例(3)類可以派生出子類,子類繼承父類的全部特性(數(shù)據(jù)和操作),又可以有自己的新特性(4)對(duì)象之間通過(guò)消息傳遞相互聯(lián)系。面向?qū)ο?對(duì)象+類+繼承+通信(或消息)如果一個(gè)軟件系統(tǒng)采用這些概念來(lái)建立模型并予以實(shí)現(xiàn),那么它就是面向?qū)ο蟮?。使用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)軟件的原因是面向?qū)ο蠓椒ㄅc傳統(tǒng)

27、的軟件開(kāi)發(fā)方法相比,具有許多顯著的優(yōu)點(diǎn):(1)按照人類的自然思維方式,面向客觀世界建立軟件系統(tǒng)模型,有利于對(duì)問(wèn)題域和系統(tǒng)責(zé)任的理解,有利于人員交流;(2)在整個(gè)開(kāi)發(fā)過(guò)程中采用統(tǒng)一的概念和模型表示,填平了語(yǔ)言之間的鴻溝,使得開(kāi)發(fā)活動(dòng)之間平滑過(guò)渡;(3)對(duì)象所具有的封裝性和信息隱蔽等特性,使其容易實(shí)現(xiàn)軟件復(fù)用;(4)在面向?qū)ο蟮姆椒ㄖ?,系統(tǒng)由對(duì)象構(gòu)成,對(duì)象是一個(gè)包含屬性和操作兩方面的獨(dú)立單元,對(duì)象之間通過(guò)消息聯(lián)系。這樣的系統(tǒng)一旦出錯(cuò),很容易定位和修改,系統(tǒng)的可維護(hù)性好。2、什么是“對(duì)象”?識(shí)別對(duì)象時(shí)將潛在對(duì)象分成7類,試給出這7類對(duì)象的名稱,并舉例說(shuō)明。Answer:對(duì)象可以定義為系統(tǒng)中用來(lái)描述客

28、觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單元,由一組屬性和一組對(duì)屬性進(jìn)行操作的服務(wù)組成。對(duì)象的分類:(1)外部實(shí)體:與軟件系統(tǒng)交換信息的外部設(shè)備、相關(guān)子系統(tǒng)、操作員和用戶等(2)信息結(jié)構(gòu):?jiǎn)栴}信息域中的概念實(shí)體,如信號(hào)、報(bào)表、顯示信息等(3)需要記憶的事件:在系統(tǒng)運(yùn)行過(guò)程中可能產(chǎn)生并需要系統(tǒng)記憶的事件,如單擊鼠標(biāo)左鍵(4)角色:與軟件系統(tǒng)交互的人員所扮演的角色(5)組織機(jī)構(gòu):有關(guān)機(jī)構(gòu),如單位,小組等(6)位置:系統(tǒng)環(huán)境或問(wèn)題上下文的場(chǎng)所、位置、如客戶地址,收件人地址等(7)操作規(guī)程:如操作菜單,某種數(shù)據(jù)輸入過(guò)程等3、什么是“類”?“類”與傳統(tǒng)的數(shù)據(jù)類型有什么關(guān)系和區(qū)別?Answer:把具有相同

29、特征和行為的對(duì)象歸在一起就形成了類。類常常可以看作是一個(gè)抽象數(shù)據(jù)類型(ADT)的實(shí)現(xiàn),但更重要的是把類看作是表示某種概念的一個(gè)模型。4、面向?qū)ο箝_(kāi)發(fā)方法與面向數(shù)據(jù)流的結(jié)構(gòu)化開(kāi)發(fā)方法有什么不同?使用面向?qū)ο箝_(kāi)發(fā)方法的優(yōu)點(diǎn)在什么地方?Answer:面向?qū)ο蠓椒ㄅc傳統(tǒng)的軟件開(kāi)發(fā)方法相比,具有許多顯著的優(yōu)點(diǎn):(1)按照人類的思維方式,面對(duì)客觀世界建立軟件系統(tǒng)模型,有利于對(duì)問(wèn)題域和系統(tǒng)責(zé)任的理解,有利于人員交流;(2)在整個(gè)開(kāi)發(fā)過(guò)程中采用統(tǒng)一的概念和模型表示,填平了語(yǔ)言之間的鴻溝,使得開(kāi)發(fā)活動(dòng)之間平滑過(guò)渡;(3)對(duì)象所具有的封裝性和信息隱蔽等特性,使其容易實(shí)現(xiàn)軟件復(fù)用;(4)在面向?qū)ο蟮姆椒ㄖ?,系統(tǒng)由對(duì)

30、象構(gòu)成,對(duì)象是一個(gè)包含屬性和操作兩方面的獨(dú)立單元,對(duì)象之間通過(guò)消息聯(lián)系。這樣的系統(tǒng)一旦出錯(cuò),很容易定位和修改,系統(tǒng)的可維護(hù)性好。結(jié)構(gòu)化方法分析過(guò)程如下: 1.總結(jié)出系統(tǒng)應(yīng)有的功能,對(duì)一個(gè)功能,從功能完成的過(guò)程考慮,將各個(gè)過(guò)程(或說(shuō)小的功能(難以再分解)列出,標(biāo)識(shí)出過(guò)程轉(zhuǎn)向和傳遞的數(shù)據(jù)。這樣,可以將所有的過(guò)程都畫(huà)出來(lái)。 2.細(xì)化數(shù)據(jù)流。確定應(yīng)該記錄的數(shù)據(jù)。 3.分析各過(guò)程之間的耦合關(guān)系,合理地進(jìn)行模塊劃分以提高它們之間的內(nèi)聚性。實(shí)際上,對(duì)于這個(gè)練習(xí),可以使模塊具有信息內(nèi)聚性。 而面向?qū)ο蠓椒ǚ治鲞^(guò)程如下: 1.總結(jié)出系統(tǒng)應(yīng)有的功能,從功能完成的過(guò)程考慮,描述每個(gè)功能的完成過(guò)程。對(duì)應(yīng)UML的USE

31、CASE和SEQUENCE。 2.開(kāi)始尋找定義對(duì)象,并歸納各對(duì)象應(yīng)記錄的屬性,對(duì)象的狀態(tài)及轉(zhuǎn)換關(guān)系在這里定義。這一步的對(duì)象和第一步畫(huà)SEQUENCE所帶入的對(duì)象有聯(lián)系但更重要的是區(qū)別。 3.從功能完成的過(guò)程考慮,區(qū)分所需要的各個(gè)功能。再根據(jù)定義出的對(duì)象,將功能分配到對(duì)象上。由于第一步的關(guān)系,在這個(gè)練習(xí)中,這一步相對(duì)簡(jiǎn)單。 4.根據(jù)前3步的結(jié)果,如果需要的話,應(yīng)該重新畫(huà)SEQUENCE。特別是希望UML圖對(duì)編程能更有幫助時(shí)。由于我只做了系統(tǒng)分析,沒(méi)有編程,所以這一步?jīng)]有做。 兩種方法的異同: 1.總結(jié)系統(tǒng)應(yīng)具備的功能的時(shí)候,都是根據(jù)題目的描述,一條一條總結(jié)歸納得到的。對(duì)結(jié)構(gòu)化方法,就是畫(huà)數(shù)據(jù)流圖

32、。對(duì)面向?qū)ο蠓椒?,就是USECASE和SEQUENCE。實(shí)際上,在工作中使用時(shí),一般還需要ACTIVITY圖。 2.確定應(yīng)該記錄的數(shù)據(jù)。對(duì)結(jié)構(gòu)化方法,就是細(xì)化數(shù)據(jù)流,并整理出一個(gè)一個(gè)的表。對(duì)面向?qū)ο蠓椒ǎ褪菍ふ液投x對(duì)象,并歸納各對(duì)象應(yīng)記錄的屬性。一般O-R關(guān)系轉(zhuǎn)換都是套用流行的方法,可能有些組織對(duì)此都有規(guī)定。 3.模塊的組織。如果實(shí)在是要避免歧義的話,應(yīng)該說(shuō)成是“將數(shù)據(jù)和功能分配到不同的文件中,用文件來(lái)合理地組織代碼”。對(duì)結(jié)構(gòu)化方法,就是劃分模塊,每個(gè)模塊應(yīng)該包含哪些文件以及每個(gè)文件的內(nèi)容。對(duì)面向?qū)ο蠓椒?,就是在已有?duì)象的基礎(chǔ)上,將功能分配到對(duì)象上。相比較結(jié)構(gòu)化方法,面向?qū)ο笤谶@里強(qiáng)制要求

33、:將數(shù)據(jù)和功能分配到不同的文件中時(shí),是以數(shù)據(jù)為中心。事實(shí)上,使用結(jié)構(gòu)化方法劃分模塊時(shí),如果希望模塊具有信息內(nèi)聚性,那么,也是以數(shù)據(jù)為中心?!坝行畔?nèi)聚性的模塊,本質(zhì)上是抽象數(shù)據(jù)類型的實(shí)現(xiàn)”P89,軟件工程JAVA語(yǔ)言實(shí)現(xiàn)。 4.接下來(lái)就應(yīng)該是編程了。如果都使用JAVA的話,我很難想象出兩種結(jié)果的代碼能有多大的區(qū)別。 以上列出了兩個(gè)例子,其意圖在于說(shuō)明某些情況下,我們進(jìn)行系統(tǒng)分析時(shí),當(dāng)我們希望模塊有信息內(nèi)聚性時(shí),結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ǖ玫降倪^(guò)程和結(jié)果不會(huì)有很大差別。第6章 面向?qū)ο蟮男枨蠓治龇椒ǎㄏ拢?、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言具有數(shù)據(jù)抽象、信息隱蔽、信息繼承等特征。作為運(yùn)算單位的對(duì)象應(yīng)具有下

34、列特性:對(duì)象把數(shù)據(jù)和處理數(shù)據(jù)的操作結(jié)合為一體、對(duì)象在計(jì)算中可向其它對(duì)象發(fā)送消息、對(duì)象的內(nèi)部狀態(tài)只根據(jù)外部送來(lái)的消息才操作。C+, Smalltalk, objectC是面向?qū)ο蟮恼Z(yǔ)言。6、基于復(fù)用的面向?qū)ο蟮男枨蠓治鲞^(guò)程主要分為兩個(gè)階段:論域分析和應(yīng)用分析。試討論它們各自承擔(dān)什么任務(wù)?如何銜接?Answer:論域分析是基于特定應(yīng)用論域,標(biāo)志、分析、定義可復(fù)用于應(yīng)用論域內(nèi)多個(gè)項(xiàng)目的公共需求的技術(shù)。它的目標(biāo)是發(fā)現(xiàn)和創(chuàng)建一組應(yīng)用廣泛的類,這組類常常超出特定應(yīng)用的范圍,可以復(fù)用于其它系統(tǒng)的開(kāi)發(fā)。它主要的過(guò)程活動(dòng):(1)定義要研究的論域:分析員首先隔離感興趣的業(yè)務(wù)論域、系統(tǒng)類型或產(chǎn)品分類,再抽取OO項(xiàng)和

35、非OO項(xiàng)(2)分類從論域抽取的項(xiàng):對(duì)所有的項(xiàng)進(jìn)行歸類并定義各個(gè)種類的一般定義特征(3)收集論域中各個(gè)應(yīng)用的有代表性的樣例:為了完成這個(gè)活動(dòng),必須保證在問(wèn)題中的應(yīng)用具有適合已定義的某些種類的項(xiàng)(4)分析樣例中的每一個(gè)應(yīng)用應(yīng)用分析的依據(jù)是在論域分析時(shí)建立起來(lái)的論域分析模型,并把它用于當(dāng)前正在建立的應(yīng)用當(dāng)中。7、面向?qū)ο蟮男枨蠓治鑫臋n與面向數(shù)據(jù)流的需求分析文檔有何區(qū)別?Answer:面向?qū)ο蟮男枨蠓治鑫臋n內(nèi)容如下:(1)改寫(xiě):編寫(xiě)目的+讀者對(duì)象+軟件項(xiàng)目概述+文檔概述+定義+參考資料(2)一般性描述:軟件產(chǎn)品與其環(huán)境之間的關(guān)系+用戶特征+限制與約束+假設(shè)與前提條件(3)功能需求描述:系統(tǒng)的類圖+類的

36、詳細(xì)描述(4)其他需求描述:性能要求+設(shè)計(jì)約束+界面要求+進(jìn)度要求+交付要求+驗(yàn)收要求面向數(shù)據(jù)流的需求分析文檔內(nèi)容如下:(1)引言(2)任務(wù)概述:目標(biāo)+條件與限制+運(yùn)行環(huán)境(3)數(shù)據(jù)描述:靜態(tài)數(shù)據(jù)+動(dòng)態(tài)數(shù)據(jù)+數(shù)據(jù)庫(kù)描述+數(shù)據(jù)詞典+數(shù)據(jù)采集(4)功能需求:功能劃分+功能描述(5)性能需求:數(shù)據(jù)精確度+適應(yīng)性(6)運(yùn)行需求:用戶界面+報(bào)表格式(7)其他需求第7章 統(tǒng)一建模語(yǔ)言UML1、試述UML在靜態(tài)和動(dòng)態(tài)建模方面提供的支持,以及各框架的功能和應(yīng)用場(chǎng)合。Answer:靜態(tài)結(jié)構(gòu)由類圖和對(duì)象圖描述,動(dòng)態(tài)行為由狀態(tài)圖、時(shí)序圖、協(xié)作圖和活動(dòng)圖描述。類圖:類圖描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),表示系統(tǒng)中的類和類與類之間

37、的關(guān)系。對(duì)象圖:描述了一組對(duì)象以及它們之間的關(guān)系,表示類的對(duì)象實(shí)例。狀態(tài)圖:表示一個(gè)狀態(tài)機(jī),強(qiáng)調(diào)對(duì)象行為的事件順序。時(shí)序圖:展示了幾個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系,它主要是用來(lái)顯示對(duì)象之間發(fā)送消息的順序,它還顯示了對(duì)象之間的交互,即系統(tǒng)執(zhí)行的某一特定時(shí)間點(diǎn)所發(fā)生的事。協(xié)作圖:也展示對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系,除了說(shuō)明信息的交互外,還顯示對(duì)象及其間的關(guān)系(周境)。2、試述UML的特點(diǎn)和應(yīng)用領(lǐng)域。Answer:UML的特點(diǎn):(1)是一種語(yǔ)言(2)是一種可視化的建模語(yǔ)言(3)是一種可用于詳細(xì)描述的語(yǔ)言(4)是一種構(gòu)造語(yǔ)言(5)是一種文檔化語(yǔ)言UML的應(yīng)用領(lǐng)域:統(tǒng)一建模語(yǔ)言是一種直觀化、明確化、構(gòu)建和文檔化軟件

38、系統(tǒng)產(chǎn)物的通用可視化建模語(yǔ)言,從企業(yè)信息系統(tǒng)到基于web的分布式應(yīng)用,甚至嚴(yán)格的實(shí)時(shí)嵌入式系統(tǒng)都適合于UML來(lái)建模。3、試述用例圖的組成元素和元素之間的關(guān)系。Answer: 用例圖的組成元素有角色和用例。角色代表外部用戶或其他系統(tǒng),用例代表系統(tǒng)能提供的功能。通過(guò)列舉角色和用例,顯示角色在每個(gè)用例中的參與情況。4、列舉類之間的幾種關(guān)系,并分別舉例說(shuō)明各自的表示方法。Answer:(1)關(guān)聯(lián):類之間的鏈接,即與該關(guān)聯(lián)連接的類的對(duì)象之間的語(yǔ)義連接。(2)聚集:一種特殊的關(guān)聯(lián),它指出類間的“整體-部分”關(guān)系(3)泛化:指出類間的“一般-特殊關(guān)系”(4)依賴:兩個(gè)模型元素之間的語(yǔ)義連接,獨(dú)立元素的變化會(huì)

39、影響依賴元素(5)細(xì)化:對(duì)同一事物的不同抽象級(jí)別的兩種描述之間的一種關(guān)系5、說(shuō)明構(gòu)件圖在軟件開(kāi)發(fā)和維護(hù)過(guò)程中具有的意義。Answer: 構(gòu)件圖:描述組件以及它們之間的關(guān)系,表示系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖。6、試述應(yīng)用順序圖和協(xié)作圖進(jìn)行動(dòng)態(tài)交互行為建模的意義和方法。Answer:7、試述構(gòu)件圖和配置圖對(duì)系統(tǒng)整體建模時(shí)側(cè)重點(diǎn)的不同之處。Answer: 構(gòu)件圖描述構(gòu)件及其之間的相互依賴。配置圖描述了處理器、設(shè)備和軟件構(gòu)件運(yùn)行時(shí)的體系結(jié)構(gòu)。構(gòu)件圖側(cè)重于靜態(tài)結(jié)構(gòu),而配置圖側(cè)重于動(dòng)態(tài)結(jié)構(gòu)。8、試述順序圖和協(xié)作圖在建模中的不同之處。Answer:時(shí)序圖用來(lái)描述對(duì)象間的交互行為,它注重消息的順序,即對(duì)象間消息的發(fā)送和

40、接收的順序。時(shí)序圖還揭示了一個(gè)特定場(chǎng)景的交互,即系統(tǒng)執(zhí)行期間發(fā)生在某時(shí)間點(diǎn)的對(duì)象之間的特定交互,它適合于描述實(shí)時(shí)系統(tǒng)中的時(shí)間特性和時(shí)間約束。協(xié)作圖著重于協(xié)作對(duì)象之間的交互和鏈接,它可用于系統(tǒng)中的操作執(zhí)行、用例執(zhí)行或一個(gè)簡(jiǎn)單的交互場(chǎng)景。協(xié)作圖展示了對(duì)象及其間的鏈接,還展示了鏈接的對(duì)象之間如何發(fā)送消息。協(xié)作圖和時(shí)序圖都可以用來(lái)展示系統(tǒng)的交互,時(shí)序圖強(qiáng)調(diào)時(shí)間和順序,協(xié)作圖強(qiáng)調(diào)對(duì)象之間的關(guān)系。9、活動(dòng)圖和狀態(tài)圖的區(qū)別有哪些?并舉例說(shuō)明。Answer:活動(dòng)圖是狀態(tài)圖的變形,它根據(jù)對(duì)象狀態(tài)的變化捕獲動(dòng)作和它們的結(jié)果,它表示了各個(gè)動(dòng)作及其間的關(guān)系。與狀態(tài)圖的區(qū)別:活動(dòng)圖中的動(dòng)作狀態(tài)之間的遷移不是靠時(shí)間觸發(fā)的

41、,而是當(dāng)動(dòng)作狀態(tài)中的活動(dòng)完成時(shí)遷移就觸發(fā)。在活動(dòng)圖中,事件只能附加到開(kāi)始點(diǎn)到第一個(gè)動(dòng)作之間的遷移。10、RUP是一個(gè)怎樣的軟件開(kāi)發(fā)過(guò)程,它包含哪幾個(gè)階段?Answer:RUP(Rational Unified Process)開(kāi)發(fā)過(guò)程:(1)初始階段:主要確定項(xiàng)目的范圍和目標(biāo),并進(jìn)行可行性分析;(2)細(xì)化階段:對(duì)開(kāi)發(fā)項(xiàng)目的問(wèn)題領(lǐng)域和功能作詳細(xì)分析,畫(huà)出用例圖,建立系統(tǒng)的基礎(chǔ)結(jié)構(gòu),還要進(jìn)行風(fēng)險(xiǎn)分析,制定相應(yīng)的對(duì)策和開(kāi)發(fā)計(jì)劃;(3)構(gòu)造階段:迭代漸增地建造系統(tǒng)的過(guò)程;(4)移交階段。11、試述ROSE的主要功能和特點(diǎn)。Answer:ROSE的主要功能:支持UML建模過(guò)程中使用的多種模型和框圖;不僅

42、能夠?qū)?yīng)用程序建模,而且能夠方便地對(duì)數(shù)據(jù)庫(kù)建模;可以創(chuàng)建比較對(duì)象模型和數(shù)據(jù)模型,并且進(jìn)行兩種模型間的相互轉(zhuǎn)化;可以創(chuàng)建數(shù)據(jù)庫(kù)各種對(duì)象,實(shí)現(xiàn)從數(shù)據(jù)庫(kù)到數(shù)據(jù)模型的逆向工程;支持WEB應(yīng)用,可以和RATIONAL的其它套件配合使用,貫穿于軟件開(kāi)發(fā)的整個(gè)過(guò)程。ROSE的特點(diǎn):能夠提供許多并非UML建模需要的輔助軟件開(kāi)發(fā)的功能;具有逆向轉(zhuǎn)出工程代碼的功能,根據(jù)現(xiàn)有的系統(tǒng)產(chǎn)生模型;利用ROSE自帶的ROSESCRIPT腳本語(yǔ)言,可以對(duì)ROSE進(jìn)行擴(kuò)展,自動(dòng)改變模型、創(chuàng)建報(bào)表、完成ROSE模型的其他任務(wù)等;ROSE提供的控制單元和模型集成功能允許進(jìn)行多用戶并行開(kāi)發(fā),并對(duì)他們的模型進(jìn)行比較或合并等操作。12、

43、針對(duì)你所熟悉的某個(gè)系統(tǒng),應(yīng)用UML進(jìn)行分析并使用ROSE畫(huà)出它的系統(tǒng)用例圖,類圖,交互圖(順序圖或協(xié)作圖),并為其中復(fù)雜的業(yè)務(wù)流程建立活動(dòng)圖,針對(duì)某個(gè)類進(jìn)行狀態(tài)圖的建模。Answer:13、針對(duì)一個(gè)高校學(xué)生選課系統(tǒng)利用ROSE和UML,按照軟件需求說(shuō)明書(shū)書(shū)寫(xiě)的國(guó)家標(biāo)準(zhǔn)寫(xiě)一份軟件需求規(guī)格說(shuō)明書(shū)。第8章 面向數(shù)據(jù)流的軟件設(shè)計(jì)1、結(jié)構(gòu)化設(shè)計(jì)的基本思想是什么?Answer: 自上而下,逐步分解,設(shè)計(jì)方法是把數(shù)據(jù)流圖自上而下逐步映射成軟件結(jié)構(gòu)。2、什么是軟件結(jié)構(gòu)?常見(jiàn)的軟件結(jié)構(gòu)描述方式有哪些?Answer:軟件結(jié)構(gòu):系統(tǒng)的構(gòu)件以及這些構(gòu)件打包的方式和相互交互的方式。常見(jiàn)軟件結(jié)構(gòu)描述方式:面向數(shù)據(jù)流、面向

44、對(duì)象等3、將DFD圖映射為軟件結(jié)構(gòu)圖有幾種方法?Answer: 主要有兩種方法:事務(wù)映射和變換映射。4、軟件工程把設(shè)計(jì)過(guò)程分成兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。試述這兩個(gè)階段的主要任務(wù),簡(jiǎn)述為什么大型系統(tǒng)的設(shè)計(jì)必須分兩步走。Answer:概要設(shè)計(jì):將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu),并建立接口。詳細(xì)設(shè)計(jì):通過(guò)對(duì)數(shù)據(jù)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。為什么分兩步走:概要設(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)中這

45、樣的分工是比較合理的,能提高效率,做到合理分工。5、影響模塊獨(dú)立性的因素是什么?Answer:所謂模塊的獨(dú)立性,是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能,而和軟件系統(tǒng)中其它模塊的接口是簡(jiǎn)單的。影響模塊獨(dú)立性的因素有:模塊間的耦合和模塊的內(nèi)聚。6、什么叫耦合?耦合有幾種類型?哪種類型的耦合最好,哪種類型的耦合最不好?試為每種類型的內(nèi)聚各舉一個(gè)例子。Answer:耦合是模塊之間的相對(duì)獨(dú)立性(互相連接的緊密程度)的度量。它取決于各個(gè)模塊之間接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過(guò)接口。 耦合有七種類型:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標(biāo)記耦合、數(shù)據(jù)耦合、非直接耦合。最好的是非直

46、接耦合,最不好的是內(nèi)容耦合。6、什么叫內(nèi)聚??jī)?nèi)聚有幾種類型?哪種類型的內(nèi)聚最好,哪種類型的內(nèi)聚最不好?試為每種類型的內(nèi)聚各舉一個(gè)例子。Answer:內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)各元素彼此結(jié)合的緊密程度)的度量。內(nèi)聚有七種類型:功能內(nèi)聚、信息內(nèi)聚、通信內(nèi)聚、過(guò)程內(nèi)聚、時(shí)間內(nèi)聚、邏輯內(nèi)聚、巧合內(nèi)聚。最好的是功能內(nèi)聚,最不好的是巧合內(nèi)聚。8、什么叫模塊的作用域和控制域?它們之間的關(guān)系對(duì)軟件結(jié)構(gòu)有什么影響?Answer: 模塊的作用域是指模塊內(nèi)一個(gè)判定的作用范圍,凡是受到這個(gè)判定影響的所有模塊都屬于這個(gè)判定的作用范圍。模塊的控制域包括它本身及其所有的從屬模塊; 作用域和控制域的關(guān)系對(duì)軟件結(jié)構(gòu)的影響:

47、模塊的作用域應(yīng)在控制域范圍內(nèi),如果一個(gè)判定的作用域包含在這個(gè)判定所在模塊的控制域之內(nèi),則這個(gè)結(jié)構(gòu)是簡(jiǎn)單的,否則,它的結(jié)構(gòu)是不簡(jiǎn)單的,軟件結(jié)構(gòu)應(yīng)盡力追求簡(jiǎn)單。9、最好的扇出數(shù)是多少?扇出一般不超過(guò)幾個(gè)?為什么要控制最大扇出數(shù)?Answer:最好的扇出數(shù)fan-out(3=fan-out=9),扇出一般不超過(guò)九個(gè)。 控制最大扇出數(shù)的原因:如果一個(gè)模塊的扇出數(shù)過(guò)大,就意味著該模塊過(guò)分復(fù)雜,需要協(xié)調(diào)和控制過(guò)多的下屬模塊,模塊的設(shè)計(jì)應(yīng)該盡可能做到簡(jiǎn)單。 10、應(yīng)用面向數(shù)據(jù)流的設(shè)計(jì)方法完成銀行儲(chǔ)蓄系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)。Answer:11、應(yīng)用面向數(shù)據(jù)流的設(shè)計(jì)方法完成你所在學(xué)校的教學(xué)管理相關(guān)系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)

48、。Answer:12、簡(jiǎn)述詳細(xì)設(shè)計(jì)的主要任務(wù)。Answer:詳細(xì)設(shè)計(jì)的主要任務(wù):在使用程序設(shè)計(jì)語(yǔ)言編程以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá),使之成為編碼的依據(jù)。13、常用的詳細(xì)描述工具有哪些?各有什么優(yōu)缺點(diǎn)?Answer: 詳細(xì)設(shè)計(jì)描述工具有: (1)程序流程圖優(yōu)點(diǎn):比較直觀、清晰、易于學(xué)習(xí)掌握缺點(diǎn):流程圖使用的符號(hào)不夠規(guī)范,常常使用一些習(xí)慣性用法,特別是表示程序控制流程的箭頭可以不受任何約束,隨意轉(zhuǎn)移控制 (2)N-S圖(盒圖) 優(yōu)點(diǎn):符合結(jié)構(gòu)化設(shè)計(jì)原則 缺點(diǎn):當(dāng)問(wèn)題很復(fù)雜時(shí),N-S圖可能很大 (3)PAD(問(wèn)題分析圖) 優(yōu)點(diǎn):用二維樹(shù)形結(jié)構(gòu)的

49、圖來(lái)表示程序的控制流,將其翻譯成程序代碼比較容易(4)判定表 優(yōu)點(diǎn):當(dāng)算法中包含多重嵌套的條件選擇時(shí),能清晰地表達(dá)復(fù)雜的條件組合與應(yīng)做動(dòng)作之間的對(duì)應(yīng)關(guān)系,能夠簡(jiǎn)潔、無(wú)二義性地描述所有的處理規(guī)則(5)PDL(設(shè)計(jì)程序用語(yǔ)言) 優(yōu)點(diǎn):可以做到逐步求精:從比較概括和抽象的PDL程序起,逐步寫(xiě)出更詳細(xì)、更精確的描述(6)HIPO圖優(yōu)點(diǎn):此圖形表達(dá)方法容易看懂,適用范圍很廣,不僅限于詳細(xì)設(shè)計(jì)14、完成一個(gè)簡(jiǎn)單的學(xué)生選課系統(tǒng)的詳細(xì)設(shè)計(jì),分別用盒圖和PAD圖表達(dá)主要算法。Answer:15、概要設(shè)計(jì)說(shuō)明書(shū)和詳細(xì)設(shè)計(jì)說(shuō)明書(shū)主要內(nèi)容有哪些?什么情況下兩者可以合二為一?Answer: 概要設(shè)計(jì)說(shuō)明書(shū)主要內(nèi)容: (

50、1)概要設(shè)計(jì):需求規(guī)定+運(yùn)行環(huán)境+基本設(shè)計(jì)概念和處理流程+結(jié)構(gòu)+功能需求和程序的關(guān)系+人工處理過(guò)程+尚未解決問(wèn)題 (2)接口設(shè)計(jì):用戶接口+外部接口+內(nèi)部接口 (3)運(yùn)行設(shè)計(jì):運(yùn)行模塊組合+運(yùn)行控制+運(yùn)行時(shí)間 (4)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)+物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)+數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系 (5)系統(tǒng)出錯(cuò)處理設(shè)計(jì):出錯(cuò)信息+補(bǔ)救措施 (6)系統(tǒng)維護(hù)設(shè)計(jì) 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)主要內(nèi)容: (1)引言:編寫(xiě)目的+背景+定義+參考資料 (2)程序系統(tǒng)的結(jié)構(gòu) (3)程序1(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:程序描述+功能+性能+輸入項(xiàng)+輸出項(xiàng)+算法+流程邏輯+接口+存儲(chǔ)分配+注釋設(shè)計(jì)+限制條件+測(cè)試計(jì)劃+尚未解決問(wèn)題 (4)

51、程序2設(shè)計(jì)說(shuō)明如果一個(gè)軟件系統(tǒng)比較簡(jiǎn)單,層次很少,兩個(gè)文檔就可以合二為一,文檔合稱為軟件設(shè)計(jì)說(shuō)明書(shū)。16、應(yīng)用面向數(shù)據(jù)流的設(shè)計(jì)方法,完成一個(gè)簡(jiǎn)單的學(xué)生選課系統(tǒng)的軟件設(shè)計(jì)說(shuō)明書(shū)。Answer:第9章 面向?qū)ο蟮能浖O(shè)計(jì)1、使用面向?qū)ο笤O(shè)計(jì)方法進(jìn)行高層設(shè)計(jì),以建立系統(tǒng)的體系結(jié)構(gòu)。這樣的結(jié)構(gòu)有哪幾種主要的組成部分?每一部分所承擔(dān)的職責(zé)是什么?Answer:Smalltalk中使用的軟件體系結(jié)構(gòu)是模型/視圖/控制器(MVC)。在這個(gè)結(jié)構(gòu)中,有三種主要的組成成分:模型、視圖、控制器。模型:軟件中的應(yīng)用論域的各種對(duì)象,它們的操作獨(dú)立于用戶界面;視圖:管理用戶界面的輸出;控制器:處理軟件的輸入。系統(tǒng)的組成部

52、分有四個(gè):(1)問(wèn)題論域:考慮對(duì)時(shí)間與空間的折中、內(nèi)存管理、開(kāi)發(fā)人員的變更、類的調(diào)整;(2)用戶界面:提供有效的人機(jī)交互所必須的實(shí)際顯式和輸入;(3)任務(wù)管理:當(dāng)系統(tǒng)中有許多并發(fā)行為時(shí),需要按照各個(gè)行為的協(xié)調(diào)和通信關(guān)系劃分各種任務(wù),以簡(jiǎn)化并發(fā)行為的設(shè)計(jì)和編碼;(4)數(shù)據(jù)管理:提供了在數(shù)據(jù)管理系統(tǒng)中存儲(chǔ)和檢索對(duì)象的基本結(jié)構(gòu),包括對(duì)永久性數(shù)據(jù)的訪問(wèn)和管理。2、在類的設(shè)計(jì)中需要遵循的方針是什么?三個(gè)主要的設(shè)計(jì)準(zhǔn)則,即抽象、信息隱藏和模塊化如何才能做到?Answer:在類的設(shè)計(jì)中需要遵循的方針有:(1)信息隱蔽(2)消息限制(3)狹窄界面(4)強(qiáng)內(nèi)聚(5)弱耦合(6)顯式信息傳遞(7)派生類當(dāng)作派生類

53、型(8)抽象類3、在類的通過(guò)復(fù)用的設(shè)計(jì)中,主要的繼承關(guān)系有哪幾種?試舉例說(shuō)明。Answer:特殊化處理三種可能的方式:(1)由既存類建立子類(2)建立繼承層次由既存類建立新類(3)建立既存類的父類4、什么是對(duì)象模型?建立對(duì)象模型時(shí)主要使用哪些圖形符號(hào)?Answer:對(duì)象模型:它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對(duì)象、它們的屬性和操作以及它們之間的聯(lián)系主要用到的圖形符號(hào)有:關(guān)聯(lián)、連接5、什么是動(dòng)態(tài)模型?建立動(dòng)態(tài)模型時(shí)主要使用哪些圖形符號(hào)?Answer:動(dòng)態(tài)模型:考察在任何時(shí)刻對(duì)象及其聯(lián)系的改變,描述系統(tǒng)的這些涉及時(shí)序和改變的狀況用到的圖形符號(hào)有:狀態(tài)圖、事件追蹤圖6、什么是功能模型?

54、建立功能模型時(shí)主要使用哪些圖形符號(hào)?Answer:功能模型:著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理,由多個(gè)數(shù)據(jù)流圖構(gòu)成,還包括了對(duì)象模型內(nèi)部數(shù)據(jù)間的聯(lián)系主要用到的圖形符號(hào):數(shù)據(jù)流圖7、試用面向?qū)ο笥^點(diǎn)分析高校學(xué)生選課系統(tǒng)中有哪些類和對(duì)象?試建立學(xué)生選課系統(tǒng)的對(duì)象模型。Answer:8、用面向?qū)ο蠓椒ǚ治鲆粋€(gè)簡(jiǎn)單的儲(chǔ)蓄系統(tǒng),試建立它的對(duì)象模型、動(dòng)態(tài)模型和功能模型。Answer:9、試用面向?qū)ο蟮姆椒ǎ槍?duì)高校學(xué)生選課系統(tǒng),基于UML編寫(xiě)其軟件需求規(guī)格說(shuō)明書(shū)和設(shè)計(jì)說(shuō)明書(shū)。Answer:第10章 程序編碼1、選擇編程語(yǔ)言主要考慮哪些因素?Answer:選擇編程語(yǔ)言的幾條經(jīng)驗(yàn)準(zhǔn)則:(1)選擇適合應(yīng)用領(lǐng)域的語(yǔ)言

55、(2)系統(tǒng)用戶的要求(3)可以使用的編譯程序(4)可以得到的軟件工具(5)軟件可移植性要求(6)人的因素(7)工程規(guī)模2、軟件的質(zhì)量完全由設(shè)計(jì)的質(zhì)量來(lái)決定,編碼只是按照設(shè)計(jì)的偽碼來(lái)翻譯,所以編碼與軟件的質(zhì)量沒(méi)有關(guān)系。這種說(shuō)法對(duì)嗎?為什么?Answer:軟件的質(zhì)量首先取決于設(shè)計(jì)的質(zhì)量。但并不是說(shuō),編碼階段就不能有所作為。恰好相反,程序員應(yīng)該像優(yōu)秀的翻譯員一樣在編碼“翻譯”中堅(jiān)持簡(jiǎn)明清晰、高質(zhì)量的原則,竭力避免過(guò)于繁雜晦澀。為此程序員不僅要養(yǎng)成良好的編碼風(fēng)格,而且要十分熟悉所使用的語(yǔ)言,以便能得心應(yīng)手、恰到好處地運(yùn)用語(yǔ)言的特點(diǎn),為提高程序的清晰性和效率服務(wù)。3、試分析程序設(shè)計(jì)語(yǔ)言的特點(diǎn)與軟件的可靠性、可理解性、可修改性、可測(cè)試性及成本的關(guān)系。Answer: 4、列出重要的編碼風(fēng)格指導(dǎo)原則,并按照你心目中的重要性來(lái)排列。Answer:軟件編碼要遵循以下原則:(1)遵循開(kāi)發(fā)流程,在設(shè)計(jì)指導(dǎo)下進(jìn)行代碼編寫(xiě);(2)以實(shí)現(xiàn)設(shè)計(jì)的功能和性能為目標(biāo),正確完成設(shè)計(jì)要求的功能,達(dá)到設(shè)計(jì)的性能;(3)程序具有良好的結(jié)構(gòu),提高程序的封裝性,降低模塊間的耦合程度;(4)程序可讀性強(qiáng),易于理解,方便調(diào)試和測(cè)試,可測(cè)試性好;(5)易于使用和維護(hù);有良好的修改性、擴(kuò)充性;可重用性強(qiá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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論