




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程第三版答案【篇一:軟件工程課后答案】>1.1什么是計算機軟件?軟件的特點是什么?答:計算機軟件指計算機系統(tǒng)中的程序及其文檔。軟件的特點是:a軟件是一種邏輯實體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進度難以準確得估算;b軟件是被開發(fā)的或被設(shè)計的,沒有明顯的制造過程,一旦開發(fā)成功,只需復制即可,但其維護的工作量大;c軟件的使用沒有硬件那樣的機械磨損和老化問題。1.2 簡述軟件的分類,并舉例說明。答:在計算機科學技術(shù)百科全書中,將軟件分為系統(tǒng)軟件、支撐軟件和應用軟件3類。a系統(tǒng)軟件:系統(tǒng)軟件居于計算機系統(tǒng)中最靠近硬件的一層,其他軟件一般都通過系統(tǒng)軟件發(fā)揮作用。系統(tǒng)軟件與具體的應用領(lǐng)域無關(guān)
2、。例如:編譯程序、操作系統(tǒng)等。b支撐軟件:支撐軟件是支撐軟件的開發(fā)和維護的軟件。例如:數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡軟件、軟件工具、軟件開發(fā)環(huán)境等。c應用軟件:應用軟件是特定應用領(lǐng)域?qū)S玫能浖?。例如:工?科學計算軟件、嵌入式軟件、產(chǎn)品線軟件、web應用軟件、人工智能軟件。1.4 什么是軟件工程?答:在計算機科學技術(shù)百科全書中軟件工程是應用計算機科學、數(shù)學及管理科學等原理,開發(fā)軟件的工程。1.5 簡述軟件工程的基本原則。答:軟件工程原則包括圍繞工程設(shè)計、工程支持和工程管理提出的以下4條基本原則:第一條:圍繞適宜的開發(fā)模型;第二條:采用合適的設(shè)計方法;第三條:提供高質(zhì)量的工程支撐;第四條:重視軟件工程的管
3、理。1.6 軟件生存周期分哪幾個階段?分別簡述各個階段的任務。答:軟件生存周期有計算機系統(tǒng)工程、需求分析、設(shè)計、編碼、測試、運行和維護6個階段。a計算機系統(tǒng)工程的任務是確定待開發(fā)軟件的總體要求和范圍,以及該軟件與其他計算機系統(tǒng)元素之間的關(guān)系,進行成本估算,做出進度安排,并進行可行性分析,即從經(jīng)濟、技術(shù)、法律等方面分析待開發(fā)的軟件是否有可行的解決方案,并在若干個可行的解決方案中做出選擇。b需求分析主要解決待開發(fā)軟件要“做什么”的問題,確定軟件的功能、性能、數(shù)據(jù)、界面等要求,生成軟件需求規(guī)約。c軟件設(shè)計只要解決待開發(fā)軟件“怎么做”的問題。軟件設(shè)計通??煞譃橄到y(tǒng)設(shè)計和詳細設(shè)計。系統(tǒng)設(shè)計的任務是設(shè)計軟
4、件系統(tǒng)的體系結(jié)構(gòu),包括軟件系統(tǒng)的組成成分、各成分的功能和接口、成分間的連接和通信,同時設(shè)計全局數(shù)據(jù)結(jié)構(gòu)。詳細設(shè)計的任務是設(shè)計各個組成成分的實現(xiàn)細節(jié),包括局部數(shù)據(jù)結(jié)構(gòu)和算法等。d編碼階段的任務是用某種程序設(shè)計語言,將設(shè)計的結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。e測試階段的任務是發(fā)現(xiàn)并糾正軟件中的錯誤和缺陷。測試主要包括單元測試、集成測試、確認測試和系統(tǒng)測試。f軟件完成各種測試后就可交付使用,在軟件運行期間,需對投入運行的軟件進行維護,即可發(fā)現(xiàn)了軟件中潛藏的錯誤或需要增加新的功能或使軟件適應外界環(huán)境的變化等情況出現(xiàn)時,對軟件進行修改。1.9 簡述各類軟件過程模型的特點。答:典型的軟件過程模型有:瀑布模型、演
5、化模型(增量模型、原型模型、螺旋模型)、噴泉模型、基于構(gòu)件的開發(fā)模型和形式方法模型等。a瀑布模型中,上一階段的活動完成并經(jīng)過評審后才能開始下一階段的活動,其特征是:接受上一階段活動的結(jié)果作為本階段活動的輸入;依據(jù)上一階段活動的結(jié)果實施本階段應完成的活動;對本階段的活動進行評審;將本階段活動的結(jié)果作為輸出。b增量模型將軟件的開發(fā)過程分成若干個日程時間交錯的線性序列,每個線性序列產(chǎn)生軟件的一個可發(fā)布的增量版本,后一個版本是對前一個版本的修改和補充,重復增量發(fā)布的過程,直至產(chǎn)生最終的完善產(chǎn)品。c原型模型從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標,標識需求。然后快速制定原型開發(fā)的計劃,確
6、定原型的目標和范圍,采用快速設(shè)計的方式對其建模,并構(gòu)建模型。被開發(fā)的原型應交付給客戶使用,并收集客戶的反饋意見,這些反饋意見可在下一輪迭代中對原型進行改進。在前一個原型需要改進,或者需要擴展其范圍的時候,進入下一輪原型的迭代開發(fā)。d螺旋模型將原型模型實現(xiàn)的迭代特征與瀑布模型中控制的和系統(tǒng)化的方面結(jié)合起來,不僅體現(xiàn)了這兩種模型的優(yōu)點而且還增加了風險分析。e噴泉模型是一種支持面向?qū)ο箝_發(fā)的過程模型。類及對象是面向?qū)ο蠓椒ㄖ械幕境煞帧T诜治鲭A段,標識類及對象,定義類之間的關(guān)系,建立對象-關(guān)系模型和對象-行為模型。在設(shè)計階段,從實現(xiàn)的角度對分析模型進行調(diào)整和擴充。在編碼階段,用面向?qū)ο笳Z言實現(xiàn)類及對
7、象,通過消息機制實現(xiàn)對象之間的通信,完成軟件的功能。在面向?qū)ο蠓椒ㄖ?,分析模型和設(shè)計模型采用相同的符號表示體系,開發(fā)的各個活動沒有明顯的邊界,各個活動經(jīng)常重復,迭代地交替進行。f基于構(gòu)件的開發(fā)模型,基于構(gòu)件的開發(fā)是指利用預先包裝的構(gòu)建來構(gòu)造應用系統(tǒng)。構(gòu)件可以是組織內(nèi)部開發(fā)的構(gòu)建,也可以是商業(yè)化的、現(xiàn)存的軟件構(gòu)件。g形式化方法是建立在嚴格數(shù)學基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計、編程、系統(tǒng)集成、測試、文檔生成,直至維護等各個階段,凡是采用嚴格的數(shù)學語言,具有精確的數(shù)學語義的方法,都稱為形式化方法。形式化方法用嚴格的數(shù)學語言和語義描述功能和設(shè)計規(guī)約,通過數(shù)學的分析和
8、推導,易于發(fā)現(xiàn)需求的歧義性、不完整性和不一致性,易于對分析模型、設(shè)計模型和程序進行驗證。通過數(shù)學的演算,使得從形式化功能規(guī)約到形式化設(shè)計規(guī)約,以及從形式化設(shè)計規(guī)約到程序代碼轉(zhuǎn)換成為可能。1.10 敏捷軟件開發(fā)的特點是什么?答:敏捷軟件開發(fā)的特點有4個:a個人和交互高于過程和工具;b可運行軟件高于詳盡的文檔;c與客戶協(xié)作高于合同談判;d對變更及時做出反應高于遵循計劃。1.12 簡述敏捷軟件開發(fā)的原則。答:敏捷軟件開發(fā)必須遵循的12條原則如下;a最優(yōu)先的是通過盡早地和不斷地提交有價值的軟件來使客戶滿意;【篇二:軟件工程課后習題答案】1、軟件產(chǎn)品的特性是什么?答:軟件產(chǎn)品特性:是一種邏輯產(chǎn)品,與物質(zhì)
9、產(chǎn)品有很大的區(qū)別。軟件產(chǎn)品的生產(chǎn)主要是研制,生產(chǎn)成本主要在開發(fā)和研制,開發(fā)研制完成后,通過復制就產(chǎn)生了大量軟件產(chǎn)品。軟件產(chǎn)品不會用壞,不存在磨損,消耗。生產(chǎn)主要是腦力勞動,還末完全擺脫手工開發(fā)方式,大部分產(chǎn)品是定做的開發(fā)軟件的費用不斷增加,致使生產(chǎn)成本相當昂貴。2、軟件生產(chǎn)有幾個階段?各有何特征?答:程序設(shè)計時代:這個階段生產(chǎn)方式是個體勞動,使用的生產(chǎn)工具是機器語言,匯編語言。程序系統(tǒng)時代:這個階段生產(chǎn)方式是小集團合作生產(chǎn),使用的生產(chǎn)工具是高級語言,開發(fā)方法仍依靠個人技巧,但開始提出結(jié)構(gòu)化方法。軟件工程時代:這個階段生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡、分布式、面向?qū)ο?/p>
10、技術(shù)來開發(fā)軟件。3、什么是軟件危機?產(chǎn)生原因是什么?答:軟件開發(fā)技術(shù)的進步未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,問題積累起來,形態(tài)尖銳的矛盾,導致了軟件危機。產(chǎn)生原因:軟件規(guī)模越來越大,結(jié)構(gòu)越來越復雜。軟件開發(fā)管理困難而復雜。軟件包開發(fā)費用不斷增加。軟件開發(fā)技術(shù)落后。生產(chǎn)方式落后,仍采用手工方式。開發(fā)工具落后,生產(chǎn)率提高緩慢。4、什么是軟件工程?它目標和內(nèi)容是什么?答:軟件工程就是用科學的知識程和技術(shù)原軟來定義,開發(fā),維護軟件的一門學科。軟件工程目標:付出較低開發(fā)成本;達到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護費用;能按時完成開發(fā)任務,及時交付使用
11、;開發(fā)的軟件可靠性高。軟件工程內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管軟兩個方面。開發(fā)技術(shù)主要研究:軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。開發(fā)管軟主要研究:軟件管軟學,軟件經(jīng)濟學,軟件心軟學。5、軟件工程面臨的問題是什么?答:軟件工程需要解決的問題:軟件的費用,可靠性,可維護性,軟件生產(chǎn)率和軟件的重用。6、什么是軟件生存周期?它有哪幾個活動?答:軟件生存周期:一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。包括:可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,維護。7、什么是軟件生存周期模型?有哪些主要模型?答:生存周期模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對
12、軟件開發(fā)提供強有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導,是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基于知識的模型,變換模型。8、什么是軟件開發(fā)方法?有哪些主要方法?答:使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程。通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。軟件開發(fā)方法是克服軟件危機的重要方面之一,對軟件工程及軟件包產(chǎn)業(yè)的發(fā)展起了不可估量的作用。主要有:結(jié)構(gòu)化方法,jackson方法,維也納開發(fā)方法(vdm),面向?qū)ο箝_發(fā)方法。第二章習題
13、參考答案1.可行性研究的任務是什么?答:可行研究的任務:首先需要進行概要的分析研究,初步確定項目的規(guī)模,目標,約束和限制。分析員再進行簡要的需求分析,抽象出項目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計,探索出若干種可供選擇的解決方法,對每種解決方法都要研究它的可行性。主要從三個方面考慮:技術(shù)可行性:一般要考慮的情況包括開發(fā)的風險即設(shè)計出的系統(tǒng)能否達到要求的功能和性能;資源的有效性;相關(guān)技術(shù)的發(fā)展是否支持;經(jīng)濟可行性:進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資。社會可行性:要開發(fā)的項目是否存在任何侵權(quán)問題,運行方式在用戶組織內(nèi)是否可行,現(xiàn)有管理制度、人
14、員素質(zhì)、操作方式是否可行。2.可行性研究有哪些步驟?答:確定項目規(guī)模和目標;研究正在運行的系統(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)中的流動和處理情況。導出和評價各種方案;導出若干較高層次的物理解決方法,根據(jù)技術(shù)可行性、經(jīng)濟可行性、社會可行性進行評估,得到可行的解決方法。推薦可行方案;進行成本效益分析,決定該項目是否值得開發(fā),若值得開發(fā)那么解決方案是什么,并且說明該方案可行的原因和理由。編寫可行性研究報告;將上述可行性過程的結(jié)果寫成相應文檔,即可行性研究報告。3. 可行性研
15、究報告有哪些主要內(nèi)容?答:引言:編寫本文檔的目的;項目名稱、背景;本文檔用到的專門術(shù)語和參考資料??尚行匝芯壳疤幔赫f明開發(fā)項目的功能、性能和基本要求;達到的目標;各種限制條件;可行性研究方法和決定可行性的主要因素。對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負荷;各項費用支出;所需各類專業(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)境、運行環(huán)境的影響;對經(jīng)費支出的影響;對技術(shù)可行性的評價。所建議系統(tǒng)的經(jīng)濟可行性分析:說明建議系統(tǒng)的
16、確良各種支出,各種效益;收益投資比;投資順收周期。社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權(quán)、侵犯版權(quán)等問題的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、人吧素質(zhì)的要求。其它可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。結(jié)論意見:說明項目是否能開發(fā);還需什么條件才能開發(fā);對項目目標有何變動等。4. 成本-效益分析可用哪些指標進行度量?答:投資回收率:通常把建立系統(tǒng)若干年后能取得的收益折算成現(xiàn)在的價值和開發(fā)系統(tǒng)所需的費用進行比較得出投資回收率。投資回收期:就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。純收入:整個生存周期之內(nèi)的累計經(jīng)濟效益(折成現(xiàn)
17、在值)與投資之差。5.項目開發(fā)計劃有哪些內(nèi)容?答:項目概述:說明項目的各項主要工作;說明軟件的功能、性能;為完成項目應具有的條件;用戶及合同承包者承擔的工作完成的期限及其他條件限制;應交付的程序名稱;所使用的語言及程儲形式;應交付的文檔。實施計劃:說明任務的劃分,各任務責任人,項目開發(fā)進度,項目的預算,各階段的費用支出,各階段應完成的任務,用圖表說明每項任務的開始和完成時間。人員組織及分工:所需人員類型、數(shù)量、組成結(jié)構(gòu)。交付期限:最后完工日期。第三章習題參考答案1 .什么是需求分析?需求分析階段的基本任務是什么?答:需求分析:開發(fā)人員準確地理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求
18、陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應的需求規(guī)格說明的過程?;救蝿眨簡栴}識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。分析與綜合,導出軟件的邏輯模型編寫文檔:包括編寫需求規(guī)格說明書,初步用戶使用手冊,確認測試計劃,修改完善軟件開發(fā)計劃2 .什么是結(jié)構(gòu)分析方法?該方法使用什么描述工具?答:結(jié)構(gòu)化分析:簡稱sa,面向數(shù)據(jù)流進行數(shù)據(jù)分析的方法。采用自頂向下逐層分解的分析策略。頂層抽象地描述整個系統(tǒng),底層具體地畫出系統(tǒng)工程的每個細節(jié)。中間層則是從抽象到具體的過渡。使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結(jié)構(gòu)化語言,判定表,判定樹描述加工邏輯。3.
19、結(jié)構(gòu)化分析方法通過哪些步驟來實現(xiàn)?答:了解當前系統(tǒng)的工作流程,獲得當前系統(tǒng)的物理模型。抽象出當前系統(tǒng)的邏輯模型。建立目標系統(tǒng)的邏輯模型。作進一步補充和優(yōu)化。5 .畫數(shù)據(jù)流圖應注意什么事項?答:命名:不能使用缺乏具體含義的名字,加工名應能反映出處理的功能。1.畫數(shù)據(jù)流而不是控制流。數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。一般不畫物質(zhì)流。2.每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。編號:某個加工分解成加一張數(shù)據(jù)流圖時,上層圖為父圖,下層圖為子圖。子圖應編號子圖上的所有加工也應編號,子圖的編號應與父圖的編號相對應。3.父圖與子圖的平衡:
20、子圖的輸入輸出數(shù)據(jù)流同父圖相應加工的輸入輸出數(shù)據(jù)流必須一致抽象:認識復雜現(xiàn)象過程所使用權(quán)的工具,只考慮事物本質(zhì)的共同特性,忽略細節(jié)和其它因素。通過抽象確定組成軟件的過程實體。信息隱蔽:將模塊實現(xiàn)自身功能的細節(jié)與數(shù)據(jù)局部數(shù)據(jù)存儲:當某慨數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。注意數(shù)據(jù)流圖的易理解性。6 .什么是數(shù)據(jù)字典?其作用是什么?共有哪些條目?答:數(shù)據(jù)字典(dd)用來定義數(shù)據(jù)庫流圖中的各個成分的具體含義。有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項,數(shù)據(jù)存儲,基本加工。7 .描述加工邏輯有哪些工具?答:加工邏輯的描述:一般用結(jié)構(gòu)
21、化語言,判定表,判定樹結(jié)構(gòu)化語言是介于自然語言和形式語言之間的一種半形式化語言。它的結(jié)構(gòu)可分里層和內(nèi)層外層:用來描述控制結(jié)構(gòu),采用順序,選擇,重復三種基本結(jié)構(gòu)。順序結(jié)構(gòu):是一組祈使語句,選擇語句,重復語句的順序排列選擇結(jié)構(gòu):一般用if-then-elase-endif,case-of-endcase等關(guān)鍵詞。重復結(jié)構(gòu):一般用do-while-enddo,repeat-until等關(guān)鍵詞。內(nèi)層:一般采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞和有限的自定義詞,其動詞含義要具體,盡量不使用形容詞和副詞來修飾。包括:idef0描述系統(tǒng)的功能活動及聯(lián)系,建立系統(tǒng)的功能模型。即反映系統(tǒng)做什么折功能。
22、idef1描述系統(tǒng)的信息及聯(lián)系,建立系統(tǒng)的信息模型。idef2進行系統(tǒng)模擬,建立系統(tǒng)的動態(tài)模型。idef0特點:八、采用方框和箭頭等簡單圖形符號描述系統(tǒng)的活動和數(shù)據(jù)流,描述活動所受的約束條件及實現(xiàn)機制。如下圖描述,其中輸入為完成某活動時所需的數(shù)據(jù),輸出指執(zhí)行活動產(chǎn)生時的數(shù)據(jù),控制活動指所受到的約束條件,機制是指活動由誰來完成。采用嚴格的自頂向下、逐層分解的方式建立系統(tǒng)功能模型。9.簡述sa方法的優(yōu)缺點。答:sa方法是軟件需求分析中公認的,有成效的,技術(shù)成熟,使用廣泛的一種結(jié)構(gòu)化分析方法。較適用于開發(fā)數(shù)據(jù)處理類型軟件的需求分析。利用圖形等半形式化工具表達需求,簡明,易讀,也易于使用。但也存在一些
23、弱點,表現(xiàn)如下:sa方法僅是一個靜態(tài)模型,沒有反映處理的順序,即控制流程。sa方法使用dfd在分析與描述數(shù)據(jù)要求方面是有局限的,只有與數(shù)據(jù)庫技術(shù)中的實體聯(lián)系圖(er圖)結(jié)合起來,才能較完整地描述用戶對系統(tǒng)的需求。dfd不適合描述人機界面系統(tǒng)的要求,一些人機交互較頻繁的軟件系統(tǒng)。sa方法要與形式化方法結(jié)合起來,才能更精確地描述軟件需求。要借助需求分析工具,提高需求分析的質(zhì)量及效率。第四章習題參考答案1、什么是軟件概要設(shè)計?該階段的基本任務是什么?答:把一個軟件需求轉(zhuǎn)換為軟件表示時,首先設(shè)計出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計或結(jié)構(gòu)設(shè)計?;救蝿眨涸O(shè)計軟件系統(tǒng)結(jié)構(gòu),具體為:1.采用某種設(shè)計方法,將一個
24、復雜的系統(tǒng)按功能劃分為模塊。2.確定每個模塊的功能。3.確定模塊之間的調(diào)用關(guān)系。4.確定模塊之間的接口(模塊之間傳遞的信息)評價模塊的結(jié)構(gòu)質(zhì)量進行數(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)容?答:模塊化:模塊是軟件的組成部分,是具有獨立功能且可命名的一段程序,所有模塊組成整體,可以滿足問題的要求。模塊化即按照一定的原
25、則,將軟件劃分成若干個模塊,每個模塊完成一個特定的功能,然后把這些模塊按照某種方法組裝成一個軟件系統(tǒng)。(可降低復雜度、減少工作量)模塊具有以下幾種特性:接口:模塊的輸入輸出。功能:指模塊實現(xiàn)什么功能。邏輯:描述模塊內(nèi)部如何實現(xiàn)要求及所需的數(shù)據(jù)。狀態(tài):該模塊的運行環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。隱蔽起來。模塊間僅交換為完成系統(tǒng)功能所必須的信息。模塊獨立性:每個模塊只完成系統(tǒng)要求的獨立的子功能。3、衡量模塊獨立性的兩個標準是什么?各表示什么含義?答:內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計目標。耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強,獨
26、立性越差,以低耦合為設(shè)計目標。4、模塊的耦合性有哪幾種?各表示什么含義?答:內(nèi)容耦合:一個模塊直接操作或修改另一模塊的數(shù)據(jù),或者不通過正常入口直接轉(zhuǎn)入另一模塊公共耦合:兩個或多個模塊通過共同引用一個全局數(shù)據(jù)環(huán)境相互作用控制耦合:模塊之間通過傳遞控制信息相互作用標記耦合:兩個模塊之間通過傳遞公共指針或地址相互作用的耦合數(shù)據(jù)耦合:模塊之間通過傳遞數(shù)據(jù)交換信息無耦合:模塊間無任何關(guān)系,獨立工作5、模塊的內(nèi)聚性有哪幾種?各表示什么含義?答:偶然內(nèi)聚:一個模塊各個成分之間毫無關(guān)系邏輯內(nèi)聚:將幾個邏輯上相關(guān)的功能放在同一個模塊中時間內(nèi)聚:一個模塊完成的功能在同一時間執(zhí)行過程內(nèi)聚:一個模塊內(nèi)部的處理成分是相
27、關(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)化準則。答:改進軟件結(jié)構(gòu),提高模塊獨立性首先設(shè)計出軟件初始結(jié)構(gòu),評價該結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。模塊的規(guī)模應該適中模塊結(jié)構(gòu)的深度、寬度、扇出和扇入應適中。深度:軟件結(jié)構(gòu)中控制的層數(shù)寬度:軟件結(jié)構(gòu)中同一層次上最大模塊總數(shù)扇入:某一模塊有多少直接調(diào)用它的上級模塊數(shù)目(越大越好)扇出:一個模塊直接控制(
28、調(diào)用)下級模塊的數(shù)目。(越少越好,3,4個為宜,不超過9個,頂層扇出較高,中間扇出較少,底層模塊高扇入多一個模塊的作用域(范圍),應處在這個模塊的控制域(范圍)之內(nèi)模塊的作用域:受該模塊內(nèi)一個判定影響的所有模塊的集合模塊的控制域:這個模塊本身以及所有直接或間接從屬于它的模塊的集合一個模塊的影響范圍(作用域),應處在這個模塊的模塊的控制范圍(控制域)內(nèi)。8 、什么樣是事物流?什么是變換流?試將相應形式的數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖答:數(shù)據(jù)流圖(dfd)一般可分為變換流,事物流兩種。變換流:由輸入、輸出、變換(或稱處理)三部分組成,是一順序結(jié)構(gòu)。事物流:它的某個加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加
29、工路徑,并且根據(jù)輸入值選擇其中一個路徑來執(zhí)行。(這人加工稱為事務處理中心)9 .試述變換分析、事務分析設(shè)計步驟。答:變換分析設(shè)計步驟:確定變換中心,邏輯輸入和輸出。設(shè)計軟件結(jié)構(gòu)的頂層和第一層-變換結(jié)構(gòu):頂層的功能是完成所有模塊的控制(名稱應是系統(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)的外部接口。其
30、它輸入模塊與轉(zhuǎn)換數(shù)據(jù)模塊都很簡單時,可將它們合并。輸出部分求精:每個物理輸出設(shè)置專門模塊,其它也可適當合并。變換部分求精:根據(jù)設(shè)計準則,對模塊適當合并。事務分析的設(shè)計步驟:確定事務中心和加工路徑設(shè)計頂層(事務機構(gòu))和第一層頂層模塊有兩個功能:接收數(shù)據(jù)和根據(jù)事務類型調(diào)動相應處理模塊。中下層模塊的設(shè)計、優(yōu)化工作與變換結(jié)構(gòu)相同。事務型軟件結(jié)構(gòu)包括兩部分:接收分支發(fā)送分支出通常包括一調(diào)度模塊,當事務類型不多時,可與主模塊合并。第五章習題參考答案1、詳細設(shè)計的基本任務是什么,有哪幾種描述方法?答:詳細設(shè)計的基本任務包括:(1)為每個模塊進行詳細的算法設(shè)計(2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計(3)對數(shù)據(jù)庫進行
31、物理設(shè)計(4)其他設(shè)計(5)編寫詳細設(shè)計說明書(6)評審詳細設(shè)計的描述方法有圖形、表格和語言,其中圖形常用結(jié)構(gòu)化程序流程圖、盒圖和pad(問題分析圖)為描述工具,語言常用過程設(shè)計語言(pdl)來作為工具。2、結(jié)構(gòu)化程序設(shè)計的基本要點是什么?答:主要有三個:(1)采用自頂向下、逐步求精的程序設(shè)計方法(2)使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(循環(huán))三種基本控制結(jié)構(gòu)構(gòu)造,這三種基本結(jié)構(gòu)的共同點是單入口、單出口。(3)主程序員組的組織形式。3、簡述jackson方法的設(shè)計步驟。答:jackson方法的設(shè)計步驟如下:1.分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用jackso
32、n結(jié)構(gòu)圖表示這些數(shù)據(jù)結(jié)構(gòu)。(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應關(guān)系的數(shù)據(jù)單元。3.按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導出程序結(jié)構(gòu)。4.列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當位置。(5)用偽碼寫出程序。比較?答:白盒法測試法把測試對象看作一個打開的盒子,測試人員須了解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行狀態(tài)與預期的狀態(tài)是否一致。白盒法有下列幾種覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋從上到下的覆蓋標準其檢錯能力也從弱到強,其中條件組合發(fā)現(xiàn)錯誤
33、的能力較強,凡滿足其標準的測試用例,也必然滿足前四種覆蓋標準。在實際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補充部分用例來達到路徑覆蓋的測試標準。什么是黑盒測試法?采用黑盒技術(shù)測試用例有哪幾種方法?這些第六章習題參考答案程序語言有哪些共同特征?答:程序語言的共同特征(似為特性更符合題意)是指程序設(shè)計語言的語言特性,包括心理特性、工程特性和技術(shù)特性三個方面。語言的心理特性對人機通信的質(zhì)量有主要的影響;語言的工程特性對軟件開發(fā)成功一否有重要的影響,此外,語言的技術(shù)特性也會影響軟件設(shè)計的質(zhì)量。在項目開發(fā)時選擇程序設(shè)計語言通常考慮哪些因素?答:通常要考慮的因素有:項目的應用領(lǐng)域、軟件開
34、發(fā)的方法、軟件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復雜性以及軟件開發(fā)人員的知識等。第4代語言(4gl)有哪些主要特征?答:4gl的主要特征是:1.友好的用戶界面2.兼有過程性和非過程性雙重特性3.高效的程序代碼4.完備的數(shù)據(jù)庫(5)應用程序生成器舉例說明各種程序設(shè)計語言的特點及適用范圍?答:以常見的一些編程語言為例:fortran語言,它不僅面向科學計算,數(shù)據(jù)處理能力也極強。適用于科學工程計算;pascal語言,具有很強的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴謹。它是第一個體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)構(gòu)化算法和科學計算,操作系統(tǒng)的編寫;c語言:功能強大,支持復雜的數(shù)據(jù)結(jié)構(gòu),
35、可大量運用指針,具有豐富靈活的操作運算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運行效率高??捎糜谠S多領(lǐng)域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。coble語言,它具有極強的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴謹層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。sql:結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)庫進行存取管理。匯編語言和ada語言,主要用于實時處理和編寫系統(tǒng)軟件。prologlisp語言。lisp是一種函數(shù)型語言,特別適用于組合問題中符號運算和表處理,用于定理證明、樹的搜索和其他問題的求解。prolog是一種邏輯型語言,它提供了支持知識表示的特性,每一個程序由一組表示
36、事實、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。c+、java語言,是面向?qū)ο蟮脑O(shè)計語言,用于面向?qū)ο蟮姆介_發(fā)軟件。什么是程序設(shè)計風格?為了具有良好的設(shè)計風格,應注意哪些方面的問題?答:程序設(shè)計風格是指一個人編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路等。要形成良好的程序設(shè)計風格,應從源程序文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出和追求效率幾個方面加以注意。第七章習題參考答案軟件測試的目的是什么?軟件測試中,應注意哪些原則?答:軟件測試的目的是為了發(fā)現(xiàn)軟件的錯誤。軟件測試中應注意的原則有:測試用例應由輸入數(shù)據(jù)和預期的輸出數(shù)據(jù)兩部分組成。這樣便于對照檢查,做到有的放
37、矢。測試且例不僅選用合理輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。這樣能更多地發(fā)現(xiàn)錯誤,提高程序的可靠性。對于不合理的輸入數(shù)據(jù),程序應拒絕接受,并給出相應的提示。除了檢查程序是否做了它應該做的事,還應該檢查程序是否做了它不應該做的事。應制定測試計劃并嚴格執(zhí)行,排除隨意性。長期保留測試用例。對發(fā)現(xiàn)錯誤較多的程序段,應進行更深入的測試。(7)程序員應避免測試自己的程序。測試是一種挑剔性的行為,心理狀態(tài)是測試自己程序的障礙。什么是白盒測試法?有哪些覆蓋標準?試對他們的檢錯能力進行方法各有什么特點?答:黑盒測試法把被測試對象看成是一相黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進行測試
38、,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。采用黑盒技術(shù)測試用例的方法有:等價類的劃分、邊界值分析、錯誤推測和因果圖。軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?答:軟件測試要經(jīng)過的步驟是:單元測試一集成測試-確認測試一系統(tǒng)測試。單元測試對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細設(shè)計文檔。集成測試是為了檢查與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計是否合理有效。確認測試主要是檢查已實現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定了的各種需求。系統(tǒng)測試是把已確認的軟件與其他系統(tǒng)元素(如硬
39、件、其他支持軟件、數(shù)據(jù)、人工等)結(jié)合在一起進行測試。以確定軟件是否可以支付使用。單元測試有哪些內(nèi)容?測試中采用什么方法?答:單元測試主要針對模塊的以下五個基本特征進行測試:1.模塊接口2.局部數(shù)據(jù)結(jié)構(gòu)3.重要的執(zhí)行路徑4.錯誤處理5.邊界條件6.測試的方法是為被測試模塊編寫驅(qū)動模塊和樁模塊來實現(xiàn)被測試單元的可運行。通過驅(qū)動模塊來模擬被測試模塊的上級調(diào)用模塊,以上級模塊調(diào)用被測模塊的格式驅(qū)動被測模塊,接收被測模塊的測試結(jié)構(gòu)并輸出。樁模塊則用來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的信息。什么是集成測試?非漸增式測試與漸增式測試有什么區(qū)別?漸增式測試如何組裝模塊?答:集成測試是指在
40、單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成一個完整的系統(tǒng)進行的測試。非漸增式測試是指首先對每個模塊分別進行單元測試,再把所有模塊組裝成一個完整的系統(tǒng)進行的測試。而漸增式測試就是逐個把未經(jīng)測試的模塊組裝到已經(jīng)過測試的模塊上去進行集成測試,每加入一個新模塊進行一次集成測試,重復此過程直到程序組裝完畢。漸增式測試有兩種不同的組裝方法:自頂向下和自底向上結(jié)合。兩者區(qū)別是:(1)非漸增式方法把單元測試和集成測試分成兩個不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試往往把單元測試和集成測試合在一起,同時完成。(2)非漸增式需要更多的工作量,因為每個模塊都需要驅(qū)動模塊和樁模塊
41、,而漸增式利用已測試過的模塊作為驅(qū)動模塊或樁模塊,因此工作量少。漸增式可以較早地發(fā)現(xiàn)接口之間的錯誤,非漸增式最后組裝時才發(fā)現(xiàn)。(3)漸增式有利于排錯,發(fā)生錯誤往往和最近新加入的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯誤推遲到最后,很難判斷是哪一部分接口出錯。(4)漸增式比較徹底,已測試的模塊和新的模塊再測試。(5)漸增式點用時間較多,但非漸增式所需更多的驅(qū)動模塊和樁模塊也占用一些時間。(6)非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。什么是確認測試?該階段有哪些工作?答:確認測試又稱有效性測試。它的任務是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合。因而需求說明
42、是確認測試的基礎(chǔ)。確認測試階段有兩項工作:進行確認測試與軟件配置審查。調(diào)試的目的是什么?調(diào)試有哪些技術(shù)手段?答:調(diào)試則是在進行了成功的測試之后才開始的工作。調(diào)試的目的是確定錯誤的原因和位置,并改正錯誤,因此調(diào)試也稱為糾錯(debug)。調(diào)試的技術(shù)手段有簡單的調(diào)試方法、歸納法、演繹法和回溯法等。第八章習題參考答案軟件維護有哪些內(nèi)容?答:(1)校正性維護。在軟件交付使用后,一些隱含的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤,修改軟件性能上的缺陷,應進行確定和修改錯誤的過程,這個過程就稱為校正性維護。(2)適應性維護。為了使應用軟件適應計算機硬件、軟件環(huán)境及數(shù)據(jù)環(huán)境的不斷發(fā)生的變化而
43、修改軟件的過程稱為適應性維護。(3)完善性維護。為增加軟件功能、增強軟件性能、提高軟件運行效率而進行的維護活動稱為完善性維護。(4)預防性維護。為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護。軟件維護的特點是什么?答:主要體現(xiàn)在三個方面:(1)非結(jié)構(gòu)化維護和結(jié)構(gòu)化維護。軟件的開發(fā)過程對軟件的維護有很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護工作非常困難,這是一種非結(jié)構(gòu)化的維護。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應的文檔,容易進行維護工作,這是一種結(jié)構(gòu)化的維護。(2)維護的困難性。軟件維護的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周
44、期中的開發(fā)階段沒有嚴格而又科學的管理和規(guī)劃,就會引起軟件運行時的維護困難。(3)軟件維護的費用。軟件維護的費用在總費用中的比重是在不斷增加的,這是軟件維護有形的代價。另外還有無形的代價,即要占有更多的資源。軟件維護費用增加的占有原因是軟件維護的生產(chǎn)率非常低。軟件維護的流程是什么?答:軟件維護的流程如下:知道維護申請報告、審查申請報告并批準、運行維護并做詳細記錄、復審。軟件維護的副作用有哪些?答:維護的副作用有以下三種:(1)編碼副作用。在使用程序設(shè)計語言修改源代碼時可能引入的錯誤。(2)數(shù)據(jù)副作用。在修改數(shù)據(jù)結(jié)構(gòu)時,有可能造成軟件設(shè)計與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導致軟件錯誤。數(shù)據(jù)副作用是修改軟件信息
45、結(jié)構(gòu)導致的結(jié)果。但它可以通過詳細的設(shè)計文檔加以控制。(3)文檔副作用。如果對可執(zhí)行軟件的修改沒有反映在文檔中,就會產(chǎn)生文檔副作用。什么是軟件可維護性?可維護性度量的特性是什么?答:軟件可維護性的定義:軟件能夠被理解、校正、適應及增強功能的容易程度。軟件的可維護性可用以下七個質(zhì)量特性來衡量,即可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。提高可維護性的方法有哪些?答:(1)建立明確的軟件質(zhì)量目標。(2)使用先進的軟件開發(fā)技術(shù)和工具。(3)建立明確的質(zhì)量保證。(4)選擇可維護性的程序設(shè)計語言。(5)改進程序的文檔。第九章習題參考答案漸增模型有幾種?各有何特點?答:漸增模型有兩種類
46、型,一是增量構(gòu)造模型,二是演化提交模型。增量構(gòu)造模型是在瀑布模型基礎(chǔ)上,對一些階段進行整體開發(fā),對另一些階段進行增量開發(fā)。演化提交模型則是在瀑布模型的基礎(chǔ)上,所有階段都進行增量開發(fā),不僅是增量開發(fā),也是增量提交。2、快速原型模型有幾種,各有什么特點?答:快速原形模型根據(jù)原型的不同作用,有三類原型模型:探索型原型:把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目標模糊,用戶與開發(fā)者對項目都缺乏經(jīng)驗的情況,通過對原型的開發(fā)來明確用戶的需求。實驗型原型:主要用于設(shè)計階段,考核實現(xiàn)方安是否合適,能否實現(xiàn)。對于一個大型系統(tǒng),若對設(shè)計方案心中
47、沒有把握時,可通過這種原型的開發(fā)來證實設(shè)計方案的正確性。(3)演化型原型:它將原型思想擴展到軟件開發(fā)的全過程,就是及早向用戶提交一個原型系統(tǒng),在得到用戶認可后,將原型系統(tǒng)不斷擴充演化為最終的軟件系統(tǒng)??焖僭偷拈_發(fā)步驟是什么?答:快速原型的開發(fā)步驟是:(1)快速分析:在分析人員與用戶的配合下,迅速確定系統(tǒng)基本需求并開始構(gòu)造原型。(2)構(gòu)造原型:在快速分析的基礎(chǔ)上,根據(jù)基本需求說明盡快實現(xiàn)一個可運行的系統(tǒng)。(3)運行原型:通過運行快速原型,發(fā)現(xiàn)問題,消除誤解,達到開發(fā)者也用戶的充分協(xié)調(diào)。(4)評價原型:在運行的基礎(chǔ)上,評價原型的特性,分析運行效果是否滿足用戶的需求,提出全面的修改意見。(5)修改
48、:根據(jù)評價原型的活動結(jié)果進行修改,修改過程代替初始的快速分析,從而實現(xiàn)原型開發(fā)的循環(huán)過程。用戶與開發(fā)者在這種循環(huán)過程中不斷接近系統(tǒng)的最終要求。上述步驟在軟件工具的支持下往往是互相交融在一起的,而不再象瀑布模型那樣嚴格的階段劃分,線性推進。評價快速原型模型的優(yōu)缺點。答:快速原型的優(yōu)點是:(1)可及早為用戶提供有用的產(chǎn)品。(2)可及早發(fā)現(xiàn)問題,隨時糾正錯誤。(3)減少技術(shù)、應用風險,縮短開發(fā)時間,減少費用、提高生產(chǎn)率。(4)通過實際運行原型,提供直接評價系統(tǒng)的方法,促使用戶主動參與開發(fā)活動,加強了信息反饋,促進各類人員的協(xié)調(diào),減少誤解,適應需求變化,能有效提高系統(tǒng)質(zhì)量??焖僭偷娜秉c是:1.缺乏豐
49、富而強有力的軟件工具和開發(fā)環(huán)境。2.缺乏有效的管理機制,還未建立起自己的開發(fā)標準。3.對設(shè)計開發(fā)環(huán)境要求較高。(4)在多次重復改變原型的過程中,程序員會感到厭倦。(5)系統(tǒng)的易變性對測試有一定影響,難于做到徹底測試,更新文檔較為困難。4、比瀑布模型與增量模型,指出增量模型的新思路。答:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。瀑布模型很難適應需求可變、模糊不定的軟件系統(tǒng)的開發(fā),而且在開發(fā)過程中用戶很難參與進去,只有到開發(fā)結(jié)束才能看到整個軟件系統(tǒng)。這種理想的、線性的開發(fā)過程缺乏靈活性,不適應實際的開發(fā)過程。增量模型是在瀑布模型的基礎(chǔ)上加以修改而形成的
50、。屬于非整體開發(fā)模型。它的基本思路是為了使開發(fā)過程具有一定的靈活性和可修改性,在開發(fā)過程中推遲某些階段或所有階段中的細節(jié),從而較早的產(chǎn)生工作軟件。第十章習題參考答案說明對象、類、類結(jié)構(gòu)、消息的基本概念。答:(1)對象:對象是人們要進行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。對象包括有形實體、作用、事件、性能說明等類型。對象具有狀態(tài)和行為。一個對象用數(shù)據(jù)值來描述它的狀態(tài),對象的操作則用于改變狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。對象內(nèi)的數(shù)據(jù)具有自己的操作,從而可靈活地專門描述對象的獨特行為,具有較強的獨立性
51、和自治性,其內(nèi)部狀態(tài)不受或很少受外界的影響,具有很好的模塊化特點。為軟件重用奠定了堅實的基礎(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)系,通常越在上層的類越具有一般性和共性,越在下層的類越具體、越細化。整體-部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之間的關(guān)系是一種與關(guān)系,或者是hasa關(guān)系。類的這種層次關(guān)系可用來描述現(xiàn)實世界中的類的組成的抽象
52、關(guān)系。上層的類具有整體性,下層的類具有成員性。在類的層次結(jié)構(gòu)中,通常上層的類稱為父類或超類,下層類稱為子類。(4)消息:對象之間進行通信的構(gòu)造叫做消息。在對旬的操作中,當一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的信息。接收消息的對象經(jīng)過解釋,然后給予響應。這種通信機制稱為消息傳遞。發(fā)送一條消息的格式是對象名.方法名(參數(shù))。說明面向?qū)ο蟮奶卣骱鸵?。答:面向?qū)ο蟮奶卣魇牵海?)對象唯一性。每個對象都有自身唯一的標識,在對象生存期中,其標識不變,不同的對象不能有不同的標識。(2)分類性。是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類(3)繼承性。是子類自動共享父類數(shù)
53、據(jù)結(jié)構(gòu)和方法的機制,這是類之間的一種關(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è)重于表達說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個特
54、定場景,用事件跟蹤圖表達。狀態(tài)是對象屬性值的抽象。狀態(tài)指明了對象對輸入事件的響應。說明功能模型的特征,比較功能模型的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ā)生的客體。說明對象
55、建模的過程。答:對象建模的過程如下:首先標識類和關(guān)聯(lián),因為它們影響了整體結(jié)構(gòu)和解決問題的方法,其次是增加屬性,進一步描述類和關(guān)聯(lián)的基本網(wǎng)絡,使用繼承合并和組織類,最后將操作增加到類中去作為構(gòu)造動態(tài)模型和功能模型的副產(chǎn)品。(1)確定類。構(gòu)造對象模型的第一步是標出來自問題域的相關(guān)對象類,包括物理實體和概念。所有類在應用中都必須有意義。檢查問題陳述中的所有名詞,產(chǎn)生暫定類。然后去掉不必要的類和不正確的類。(2)準備數(shù)據(jù)字典。為所有建模實體準備一個數(shù)據(jù)詞典。準確描述各個類的精確含義,描述當前問題中的類的范圍,包括對類的成員、用法方面的假設(shè)或限制。1. 確定關(guān)聯(lián)。兩個或多個類之間的相互依賴就是關(guān)聯(lián)。從問題中抽取所有可能的關(guān)聯(lián)表示,把它們記下來,但不要過早去細化這些表述。2. 確定屬性。屬性是個體對象的性質(zhì),通常用修飾性的名詞詞組來表示。只考慮與具體應用直接相關(guān)的屬性,不考慮那些超出問題范圍的屬性,首先找出重要屬性,避免那些只用于實現(xiàn)的屬性,要為各個屬性取有意義的名字。3使用繼承來細化類。4.完善對象模型。說明功能建模的過
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 同城轉(zhuǎn)租 店鋪合同范例
- 雙工作合同范本
- 雙方合資協(xié)議合同范本
- 加工承攬合同范本新
- 勞務短期合同范本
- 廚柜代銷合同范本
- 租賃合同變更服務合同范本
- 印刷產(chǎn)品定做合同范本
- 大件搬運服務合同范本
- 合作傭金合同范本
- 酸堿滴定分析與討論實驗報告
- 2024年邵陽職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫完美版
- 2024年湖南理工職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫必考題
- 中國風川劇戲曲京劇文化傳統(tǒng)文化國粹世界戲劇日活動策劃完整課件兩篇
- (正式版)JTT 1495-2024 公路水運危險性較大工程安全專項施工方案審查規(guī)程
- 醫(yī)院dip付費績效考核制度
- 20G520-1-2鋼吊車梁(6m-9m)2020年合訂本
- 電梯維護保養(yǎng)規(guī)則(TSG T5002-2017)
- 義務教育數(shù)學課程標準(2022年版)解讀與案例分析
- 植物營養(yǎng)學課件
- 體育概論課外體育活動
評論
0/150
提交評論