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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18、的及時性、文檔的評審測試、文檔的使用培訓、文檔編寫自動化5、在文檔的編寫中如何使用引例?Answer:在使用引例時,應該重視以下幾點:(1)引例使用要適當,要有重點,多則無法突出重點,少則不易講明問題(2)引例要典型,即所使用的引例必須有代表性,必須為讀者提供量的概念,最好能提供量的范圍(3)引例準確,文檔編寫者應該清楚這樣一點:讀者對引例的研究要比對文字敘述的研究認真幾倍(4)引例之間應相互補充6、軟件文檔編寫過程中主要包括哪些內(nèi)容?如何理解文檔的一致性?Answer:軟件文檔編寫過程管理主要包括:軟件文檔編寫計劃管理、軟件文檔編寫進度管理、軟件文檔評審管理、軟件文檔維護管理。所編寫的文檔是

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42、能夠?qū)贸绦蚪#夷軌蚍奖愕貙?shù)據(jù)庫建模;可以創(chuàng)建比較對象模型和數(shù)據(jù)模型,并且進行兩種模型間的相互轉(zhuǎn)化;可以創(chuàng)建數(shù)據(jù)庫各種對象,實現(xiàn)從數(shù)據(jù)庫到數(shù)據(jù)模型的逆向工程;支持WEB應用,可以和RATIONAL的其它套件配合使用,貫穿于軟件開發(fā)的整個過程。ROSE的特點:能夠提供許多并非UML建模需要的輔助軟件開發(fā)的功能;具有逆向轉(zhuǎn)出工程代碼的功能,根據(jù)現(xiàn)有的系統(tǒng)產(chǎn)生模型;利用ROSE自帶的ROSESCRIPT腳本語言,可以對ROSE進行擴展,自動改變模型、創(chuàng)建報表、完成ROSE模型的其他任務等;ROSE提供的控制單元和模型集成功能允許進行多用戶并行開發(fā),并對他們的模型進行比較或合并等操作。12、

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

44、對象等3、將DFD圖映射為軟件結(jié)構(gòu)圖有幾種方法?Answer: 主要有兩種方法:事務映射和變換映射。4、軟件工程把設(shè)計過程分成兩步:概要設(shè)計和詳細設(shè)計。試述這兩個階段的主要任務,簡述為什么大型系統(tǒng)的設(shè)計必須分兩步走。Answer:概要設(shè)計:將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu),并建立接口。詳細設(shè)計:通過對數(shù)據(jù)表示進行細化,得到軟件的詳細的數(shù)據(jù)結(jié)構(gòu)和算法。為什么分兩步走:概要設(shè)計和詳細設(shè)計是軟件設(shè)計的兩步,概要設(shè)計確定模塊的劃分,模塊之間的調(diào)用關(guān)系,接口等;詳細設(shè)計細分模塊、數(shù)據(jù)結(jié)構(gòu)等;大型系統(tǒng)中分兩步走是必要的,概要設(shè)計確定模塊劃分后,詳細設(shè)計可把各模塊交給不同的人做詳細設(shè)計,大型系統(tǒng)中這

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論