西交《軟件工程概論》離線作業(yè)答案_第1頁
西交《軟件工程概論》離線作業(yè)答案_第2頁
西交《軟件工程概論》離線作業(yè)答案_第3頁
西交《軟件工程概論》離線作業(yè)答案_第4頁
西交《軟件工程概論》離線作業(yè)答案_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機專業(yè)課程系列軟件工程概論作業(yè)集西安交通大學網(wǎng)絡教育學院高濤 編目錄第一章 緒論第二章 軟件項目管理第三章 軟件需求分析第四章 軟件設計第五章 軟件測試第六章 軟件維護第七章 面向對象軟件工程的概念第八章 面向對象分析第九章 面向對象設計第十章 面向對象測試第十一章 軟件工程的前景模擬試題(一)模擬試題(二)參考答案第一章 緒論本章要點:1軟件工程產(chǎn)生的背景2軟件工程的有關概念3軟件生存周期及軟件過程模型4軟件開發(fā)方法5軟件開發(fā)工具本章目標:1了解軟件的特點、發(fā)展及軟件危機2掌握軟件工程的相關概念3了解軟件生存周期及軟件過程模型4了解常用的軟件開發(fā)方法及軟件開發(fā)工具本章重點:1軟件生存周期

2、及軟件危機2軟件過程模型本章難點:1幾種軟件過程模型的對比2軟件開發(fā)方法(分類)一、填空題1CASE這一術語的英文是( computer aided software engineering )。2如果不考慮應用領域、項目規(guī)模和復雜性,與軟件工程相關的工作可分為三個一般的階段:( 定義階段)、( 開發(fā)階段 )、( 支持階段 )。3軟件生存周期包括( 可行性研究 )和( 項目開發(fā)計劃 )、( 需求分析 )、( 軟件設計 )、( 編碼 )、( 測試 )和( 維護 )等活動。4“軟件工程”概念的提出是為了克服( 軟件危機 )。5“軟件工程”是使用系統(tǒng)化的、規(guī)范的、可量化的方法指導(軟件開發(fā) )、(

3、運行 )和(維護 )的一門學科。6螺旋模型將( 瀑布 )模型和( 增量 )模型結合起來,加入了兩種模型均忽略了的風險分析,彌補了這兩種模型的不足。7瀑布模型本質上是一種( 線性 )順序模型。二、選擇題1軟件是一種(B )產(chǎn)品A有形B邏輯C物質D消耗2軟件工程方法學的研究內容包含軟件開發(fā)技術和軟件工程管理兩個方面,其期望達到的最終目標是( A )A軟件開發(fā)工程化B消除軟件危機C實現(xiàn)軟件可重用D程序設計自動化3軟件工程方法得以實施的主要保證是( C )A硬件環(huán)境B開發(fā)人員的素質C軟件開發(fā)工具和軟件開發(fā)的環(huán)境D軟件開發(fā)的環(huán)境4一個CASE工作臺是一組(A ),支持設計、實現(xiàn)或測試等特定的軟件開發(fā)階段

4、。A工具集B軟件包C平臺集D程序包5增量模型是一種( B )模型A整體開發(fā)B非整體開發(fā)C靈活性差D較晚產(chǎn)生工作軟件6瀑布模型的問題是(B )A用戶容易參與開發(fā)B缺乏靈活性C用戶與開發(fā)者易溝通D適用可變需求三、問答題1.軟件危機指的是什么?它的表現(xiàn)是什么?以及產(chǎn)生的原因。答:1、在計算機軟件的開發(fā)和維護過程中,所遇到的一系列嚴重問題,長期找不到解決這些問題的辦法,是問題逐漸積累起來,形成了尖銳的矛盾,從而導致了軟件危機。2、表現(xiàn):開發(fā)的軟件不能滿足用戶的要求;無完整、規(guī)范的文檔,難以維護;項目計劃不周,進度拖延;軟件質量差。3、原因:缺乏正確的理論指導,開發(fā)人員各行其是;軟件規(guī)模越來越大,無開發(fā)

5、管理經(jīng)驗;軟件復雜度越來越高,而開發(fā)技術不相適應;缺少先進的開發(fā)工具,開發(fā)方式落后。2.什么是軟件工程?它的內容是什么?答:軟件工程是用科學知識和技術原理來定義、開發(fā)、維護軟件的一門學科,軟件工程研究的主要內容是軟件開發(fā)技術和軟件開發(fā)管理兩個方面,在軟件開發(fā)技術方面,主要是研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具盒環(huán)境。在軟件管理方面,主要是研究軟件管理學,軟件經(jīng)濟學,軟件心理學等3.什么是軟件生存周期模型?軟件生存周期模型是描述軟件開發(fā)過程中,各種活動如何執(zhí)行的模型,軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的次序限制以及各階段活動的準則,確立開發(fā)過程所遵守的規(guī)定和限制,便于各種活動的

6、協(xié)調,便于各種人員的有效通信,有利于活動重用,有利于活動管理4.什么是軟件生存周期?它有哪些活動?答:軟件生存周期是指一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。把整個生存周期劃分為若干階段,使得每個階段有明確的任務,使規(guī)模大、結構復雜和管理復雜的軟件開發(fā)變得容易控制和管理。軟件生存周期在各階段有不同的劃分。在劃分軟件生存周期階段時,應遵循的一條基本原則是:各階段的任務應盡可能相對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程度,簡化不同階段之間的聯(lián)系,有利于軟件項目開發(fā)的組織管理。通常,軟件生存周期包括可行性分析和項目開發(fā)計劃、需求分析、概要分析、詳細分析、

7、編碼、測試、維護等活動,可以將這些活動以適當?shù)姆绞椒峙涞讲煌A段去完成。5.增量模型的基本思想是什么?答:為了克服瀑布模型的局限性,使開發(fā)過程具有一定的靈活性和可修改性,于是產(chǎn)生了增量模型。它是在瀑布模型的基礎上加以修改而形成的。增量模型和瀑布模型之間的本質區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段和所有階段中的細節(jié),從而較早地產(chǎn)生工作軟件。增量模型是在項目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。增量方式包括增量開發(fā)和增量提交。增量開發(fā)是指在項目開發(fā)周期內,以一定的時間間隔增量方式向用戶提交工作軟

8、件及相應文檔。增量開發(fā)和增量提交可以同時使用,也可以單獨使用。第二章 軟件項目管理本章要點:1軟件項目管理的概念2可行性研究3軟件項目計劃4項目進度安排與跟蹤5軟件質量管理6軟件配置管理本章目標:1掌握軟件項目管理的概念2了解可行性研究的任務和目的3掌握軟件項目計劃的相關內容4了解軟件質量保證的相關內容 本章重點:1可行性研究的任務和目的2軟件項目計劃的相關內容本章難點:1可行性研究的任務和目的2軟件項目計劃的相關內容一、填空題1(軟件可行性研究 )的目的就是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發(fā),是否值得去開發(fā)。2基本的估算方法有( 自頂向下估算 )、( 自底向上估算 )、

9、( 差別估算法 )等等。3可行性研究需要從( 技術 )可行性、( 經(jīng)濟 )可行性、( 社會 )可行性三個方面分析研究每種解決方法的可行性。、4針對不同工作目標,軟件項目計劃有:( 項目實施計劃、質量保證計劃、軟件測試計劃、文檔編制計劃、用戶培訓計劃、綜合支持計劃、軟件發(fā)布計劃)。5實施軟件質量保證需運用( 驗證、確認、評審、審核 )4種支持過程作為質量保證的手段。6人員是一種成功軟件項目中最重要的因素。可以分為5類:( 高級管理者、技術管理者、開發(fā)人員、客戶、最終用戶 )。二、選擇題研究軟硬件資源的有效性是進行( A )研究的一方面。技術可行性經(jīng)濟可行性社會可行性操作可行性技術可行性要解決(

10、D )。存在侵權否成本效益問題運行方式可行技術風險問題3Constantine提出的“組織范型”包括( ABCD )A封閉式范型B隨機式范型C開放式范型D同步式范型4社會因素可行性考慮的方面包括(ABCD )A政策B法律C使用D環(huán)境5技術可行性考慮的問題有( ABC)A開發(fā)風險分析B資源分析C相關技術的反展6經(jīng)濟可行性考慮的系統(tǒng)成本包括( ABCD )A軟件開發(fā)費用B購置并安裝軟硬件機有關設備的費用C系統(tǒng)安裝、運行和維護費用D人員培訓費用三、問答題1軟件質量保證包括哪幾方面內容?答:軟件質量保證是一種應用于整個軟件過程的庇護性活動,包括:(1)質量管理方法(2)有效地軟件工程方法和工具(3)過

11、程中采用的正是技術評審(4)多層次的測試策略(5)對軟件文檔及其修改的控制(6)保證與開發(fā)標準符合的規(guī)程(7)軟件度量及報告機制等等方面的內容2簡述可行性研究的任務。答:可行性研究的主要任務是了解用戶的要求及現(xiàn)實環(huán)境,從技術、經(jīng)濟和社會因素等方面研究并論證本軟件項目的可行性,編寫可行性研究報告供項目管理人員評審,以便作出是否開發(fā)軟件項目的決策。3 簡述可行性研究的步驟答:(1)復查確認系統(tǒng)目標、規(guī)模(2)研究現(xiàn)行系統(tǒng)的工作流程(3)導出目標系統(tǒng)高層邏輯模型(4)導出和評價供選擇的方案(5)推薦可行方案(6)編寫可行性研究報告,送審4針對不同工作目標,軟件項目計劃有哪些內容。答:(1)項目實施計

12、劃(軟件開發(fā)計劃):這是軟件開發(fā)的綜合性計劃,通常應包括任務、進度、人力、環(huán)境、資源、組織等多個方面。(2)質量保證計劃:把軟件開發(fā)的質量要求具體規(guī)定為每個開發(fā)階段可以檢查的質量保證活動。(3)軟件測試計劃:規(guī)定測試活動的任務、測試方法、進度、資源、人員職責等(4)文檔編制計劃:規(guī)定所開發(fā)項目應編制的文檔種類、內容、進度、人員職責等。(5)用戶培訓計劃:規(guī)定對用戶進行培訓的目標、要求、進度、人員職責等。(6)綜合支持計劃:規(guī)定軟件開發(fā)過程中所需要的支持,以及如何獲取和利用這些支持。(7)軟件發(fā)布計劃:軟件開發(fā)項目完成后,如何提交給用戶。5簡述項目基準計劃的步驟。答:(1)定義項目目標,確定軟件

13、范圍;(2)把項目按項目范圍分解為多個任務;(3)確定對應每個任務必須執(zhí)行的活動;(4)將每個任務分配給一個小組,并為每個開發(fā)者分配角色和職責;(5)用Gantt圖或PERT圖表示出項目的進度。6風險管理的活動有哪些。答:(1)風險識別:確定風險的類型(管理、技術)。(2)風險分析:評估風險出現(xiàn)的可能性及其后果。(3)風險規(guī)劃:指定避免或降低風險的策略。(4)風險控制:定期進行風險評估,及時修正緩解風險的計劃。7項目總結都包括哪些內容。答:(1)用戶驗收:根據(jù)項目協(xié)議中規(guī)定的驗收標準對系統(tǒng)進行評價,并通過場景演示,測試系統(tǒng)功能性和非功能性需求。(2)安裝:在目標環(huán)境下安裝、運行系統(tǒng)并提交文檔。

14、(3)總結:總結經(jīng)驗教訓,建立團隊工作效率的歷史檔案,以便提高個人和團隊整體的軟件工程能力。第三章 軟件需求分析本章要點:1軟件需求2需求分析過程3傳統(tǒng)方法的分析建模本章目標:1掌握軟件需求的類型、描述、需求規(guī)約2掌握需求分析的相關概念及分析過程3掌握傳統(tǒng)方法(SA)的分析建模本章重點:1需求分析的過程2傳統(tǒng)方法(SA)的分析建模本章難點:1需求分析的過程2傳統(tǒng)方法(SA)的分析建模一、填空題1需求的目的是( 徹底的解決用戶的問題 )。2在需求分析階段,首先進行問題識別,即雙方確定對問題的綜合需求,這些需求包括:( 功能需求、性能需求、環(huán)境需求、用戶界面需求 )。3.數(shù)據(jù)流圖有四個基本成分:(

15、 數(shù)據(jù)流、加工、數(shù)據(jù)存儲、數(shù)據(jù)的源點或終點 )。4.建立數(shù)據(jù)字典一般的兩種形式是( 手工建立 )和( 利用計算機輔助建立并維護 )。5.IDEF0用來描述系統(tǒng)的( 功能活動及聯(lián)系 ),建立系統(tǒng)的( 功能模型 )。6傳統(tǒng)的SA方法主要用于( 數(shù)據(jù)處理方面 )的問題,主要工具DFD體現(xiàn)了系統(tǒng)的( 做什么 )功能,但它僅是一個( 靜態(tài)模型 ),沒有處理的順序,即( 控制模型 )。二、選擇題1.需求分析是(A )A軟件開發(fā)工作的基礎B軟件生存周期的開始C由系統(tǒng)分析員單獨完成的D由用戶自己單獨完成的2.SA方法是一種( A )A自頂向下逐層分解的分析方法B自底向上逐層分解的分析方法C面向對象的分析方法D

16、以上都不是3.在數(shù)據(jù)流圖中,有名字及方向的成分是(C )A控制流B信息流C數(shù)據(jù)流D信號流4.分層DFD是一種比較嚴格又易于理解的描述方式,它的頂層圖描述了系統(tǒng)的( B)A細節(jié)B輸入與輸出C軟件的作者D繪制的時間5需求分析最終結果是產(chǎn)生( C )A項目開發(fā)計劃B可行性分析報告C需求規(guī)格說明書D設計說明書6結構化分析方法(SA)最為常見的圖形工具是( C)A程序流程圖B實體聯(lián)系圖C數(shù)據(jù)流圖D結構圖7下面錯誤的說法是( A )A每個數(shù)據(jù)流必須用名詞或名詞短語命名B每個加工必須有名字,通常是動詞短語C每個數(shù)據(jù)存儲必須用名詞或名詞短語D每個數(shù)據(jù)源點或終點必須有名字三、問答題1什么是需求分析?需求分析階段

17、的基本任務是什么?答:需求分析是指開發(fā)人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規(guī)約的過程。需求分析的基本任務是要準確地定義新系統(tǒng)的目標,為了滿足用戶需求,回答系統(tǒng)必須“做什么”的問題。本階段要進行以下幾個方面的工作:(1)問題識別。(2)分析與綜合,導出軟件的邏輯模型。(3)編寫文檔。2需求分析的原則是什么?答:需求分析的原則如下:(1)必須能夠表達和理解問題的數(shù)據(jù)域和功能域。數(shù)據(jù)域包括數(shù)據(jù)流、數(shù)據(jù)內容和數(shù)據(jù)結構,而功能域反映上述三方面的控制信息。(2)可以把一個復雜問題按功能進行分解并可逐層細化。通常軟件要處理

18、的問題如果太大太復雜就很難理解,若劃分成幾部分,并確定各部分間的接口,就可完成整體功能。在需求分析過程中,軟件領域中的數(shù)據(jù)、功能和行為都可以劃分。(3)建模。模型可以幫助分析人員更好地理解軟件系統(tǒng)的信息、功能和行為,這些模型也是軟件設計的基礎。3什么是數(shù)據(jù)字典?其作用是什么?答:數(shù)據(jù)字典是用來定義數(shù)據(jù)流圖中的各個成分的具體含義的,它以一種準確的、無二義性的說明方式為系統(tǒng)的分析、設計及維護提供了有關因素的一致的定義和詳細的描述。數(shù)據(jù)字典和數(shù)據(jù)流圖共同構成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。數(shù)據(jù)字典是為了分析人員查找數(shù)據(jù)流圖中有關名字的詳細定義而服務的,因此也像普通字典一樣,要把所有

19、條目按一定的次序排列起來,以便查閱。數(shù)據(jù)字典有以下四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲、基本加工。4需求說明書的作用及內容。答:需求說明書是需求分析階段最重要的技術文檔之一。它提供了用戶與開發(fā)人員對開發(fā)軟件的共同理解,其作用相當于用戶與開發(fā)單位之間的技術合同,是今后各階段設計工作的基礎,也是本階段評審和測試階段確認與驗收的依據(jù)。需求說明書的主要內容如下:(1)前言:說明項目的目的、范圍,所用的術語的定義;用到的縮略語和縮寫詞;參考資料。(2)項目概述:產(chǎn)品的描述;產(chǎn)品的功能;用戶的特點;一般的約束等。(3)具體需求:說明每個功能的輸入、處理和輸出;外部接口需求,包括用戶接口、軟件接口、硬件接口和

20、通信接口;性能需求;設計約束;其他需求,包括數(shù)據(jù)庫、操作等。5簡述結構化設計方法(SA)的優(yōu)缺點。答:結構化設計方法的優(yōu)點:結構化設計方法是軟件需求分析中公認的、有成效的、技術成熟、使用廣泛的一種方法,它較適合于開發(fā)數(shù)據(jù)處理類型軟件的需求分析。該方法利用圖形等半形式化工具表達需求,簡明、易讀,也易于使用,為后一階段的設計、測試、評價提供了有利條件。結構化設計方法的缺點:(1)傳統(tǒng)的SA方法用于數(shù)據(jù)處理方面的問題,主要工具DFD體現(xiàn)了系統(tǒng)“做什么”的功能,但它僅是一個靜態(tài)模型,沒有反映處理的順序,即控制流程。因此,不適合描述實時控制系統(tǒng)。(2)20世紀60年代末出現(xiàn)的數(shù)據(jù)庫技術,使許多大型數(shù)據(jù)處

21、理系統(tǒng)中的數(shù)據(jù)都組織成數(shù)據(jù)庫的形式,SA方法使用DFD在分析與描述“數(shù)據(jù)要求”方面是有局限的,DFD應與數(shù)據(jù)庫技術中的實體聯(lián)系圖結合起來。ER圖能增加對數(shù)據(jù)存儲的細節(jié)以及數(shù)據(jù)與數(shù)據(jù)之間、數(shù)據(jù)與處理過程之間關系的理解,還解決了在DD中所包含的數(shù)據(jù)內容表示問題,這樣才能較完整地描述用戶對系統(tǒng)的需求。(3)對于一些頻繁的人機交互的軟件系統(tǒng),如飛機訂票、銀行管理、文獻檢查等系統(tǒng),用戶最關心的是如何使用它,輸入命令、操作方式、系統(tǒng)響應方式、輸入格式等等,都是用戶需求的重要方面,DFD不適合描述人機界面系統(tǒng)的需求。SA方法往往對這一部分用自然語言作補充。(4)描述軟件需求的精確性有待提高。6某銀行計算機儲

22、蓄系統(tǒng)的功能是:將儲戶填寫的存款單或取款單輸入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并打印出存款單給儲戶;如果是取款,系統(tǒng)計算清單給儲戶。請用DFD和IDEF0描繪該功能的需求。該題功能比較簡單,首先找出該系統(tǒng)的外部環(huán)境,從而獲得系統(tǒng)的輸入輸出。與該系統(tǒng)打交道的外部實體只有儲戶,輸入有存取款原始單。該系統(tǒng)經(jīng)過處理后,輸出給儲戶正式的存款單或結算清單。這樣,該系統(tǒng)的頂層DFD就確定了。其次,考慮該系統(tǒng)內部功能。系統(tǒng)要檢驗用戶填寫單據(jù)的合法性及區(qū)分存款還是取款,然后分別進行存款處理和取款處理。存款處理要登記儲戶的存款信息,需要建立數(shù)據(jù)存儲文件;而取款處理要讀取

23、數(shù)據(jù)存儲文件及查閱儲戶的信息,取款后要修改儲戶信息。另外還要通過銀行自己的利率計算存款利率。根據(jù)以上分析畫出該系統(tǒng)的數(shù)據(jù)流圖(未分層)如下圖:7某考務中心準備開發(fā)一個成人自學考試考務管理系統(tǒng)(簡稱EMS),經(jīng)過調研,該系統(tǒng)有如下功能:(1)對考生填寫的報名單進行審查,對合格的新生,編好準考證發(fā)給考生,匯總后的報名單送給閱卷站;(2)給合格的考生制做考生通知單,將考試科目、時間、地點安排告訴考生;(3)對閱卷站送來的成績進行登記,按當年標準審查單科合格者,并發(fā)成績單,對所考專業(yè)各科成績全部合格者發(fā)給大專畢業(yè)證書。(4)對成績進行分類(按地區(qū)、年齡、職業(yè)、專業(yè)、科目等分類)產(chǎn)生相應統(tǒng)計表;(5)查

24、閱:考生可按準考證號隨時查詢自己的各科成績。請按結構化分析方法進行分析。頂層圖:數(shù)據(jù)流條目:報名單姓名性別年齡學歷身份證號碼地區(qū)職業(yè)待考專業(yè) 成績單姓名專業(yè)科目考試時間成績41 考生通知單姓名專業(yè)科目考試時間考試地點? 準考證編號姓名性別年齡身份證號 總報名單報名單各專業(yè)人數(shù)總人數(shù)數(shù)據(jù)項條目: 成績:別名:平均成績 類型:實型 長度:6位,小數(shù)點后一位準考證編號:別名:無 類型:字符串 長度:10 取值范圍及含義:前四位表示專業(yè),后六位表示本專業(yè)內編號加工條目: 加工名稱:EMS 編號:無 輸入/出:略 加工邏輯:對全市的成人自學考試進行管理,主要功能有:報名、考試、成績管理等。0層圖: 其他

25、條目略。 數(shù)據(jù)存儲條目: 文件名:考生記錄 組成:準考證編號姓名性別年齡地區(qū)職業(yè)科目成績1 15 組織方式:索目文件,以準考證編號為主關鍵字第四章 軟件設計本章要點:1軟件設計概述2軟件體系結構3優(yōu)秀設計的概念4傳統(tǒng)的結構化設計5用戶界面設計6構件級設計本章目標:1了解軟件設計的相關概念2掌握體系結構的風格及意義3了解優(yōu)秀軟件設計的概念4掌握傳統(tǒng)的結構化設計5明確用戶界面設計及構件級設計本章重點:1軟件設計的相關概念2傳統(tǒng)的結構化設計3用戶界面設計 本章難點:1傳統(tǒng)的結構化設計2用戶界面設計一、填空題1.隨著軟件系統(tǒng)越來越大、越來越復雜,軟件設計的核心已經(jīng)轉移到新的計算模式,非傳統(tǒng)的( “程序

26、算法數(shù)據(jù)結構”、 ),新的模式就是( 系統(tǒng)總體結構的設計和規(guī)范 )。2.具有明確功能并可以分離出來的軟件或硬件叫做( 構件 )。3倉庫風格是基于一個( 共享數(shù)據(jù)庫 )的系統(tǒng)模型。4Wasserman(1995)提出了5種創(chuàng)建設計的方法:( 模塊化分解、面向數(shù)據(jù)的分解、面向事件的分解、由外往內的設計、面向對象的設計 )。5UI設計必須考慮軟件使用者的體力和腦力,( 人的能力 )是界面設計原則的基礎。6Shneiderman把不同形式的交互分為5種類型:( 直接操縱、菜單選擇、表格填寫、命令語言、自然語言)。7MVC模型指的是(模型視圖控制器 )模型。二、選擇題1.軟件設計一般分為總體設計和詳細設

27、計,它們之間的關系是(A )A.全局和局部B.抽象和具體C.總體和層次D.功能和結構2.屬于軟件設計的基本原理是( D)A.數(shù)據(jù)流分析設計B.變換流分析設計C.事務流分析設計D.模塊化3.內容耦合指( D )A.兩個模塊之間傳遞的是數(shù)據(jù)結構B.一個模塊調用另一個模塊時,傳遞的是控制變量C.通過一個公共數(shù)據(jù)環(huán)境相互作用的哪些模塊間的耦合D.一個模塊直接使用另一個模塊的內部數(shù)據(jù),或通過非正常入口而轉入另一個模塊內部4.程序內部的各個部分之間存在的聯(lián)系,用結構圖表達時,最關心的是模塊的內聚性和( C )A.獨立性B.有效性C.耦合性D.安全性5.結構化設計是一種面向( A )的設計方法A.數(shù)據(jù)流B.

28、數(shù)據(jù)結構C.數(shù)據(jù)庫D.程序6.指出PDL是下列( B)語言A.高級程序設計語言B.偽碼C.中級程序設計語言D.低級程序設計語言7.詳細設計的任務是確定每個模塊的(B )A.外部特性B.內部特性C.算法和使用的數(shù)據(jù)D.功能和輸入輸出數(shù)據(jù)三、問答題1.什么是軟件概要設計?軟件概要設計的基本任務是什么?答:在軟件需求分析階段,已經(jīng)搞清楚了軟件“做什么”的問題,并通過需求說明書將這些需求描述了出來,這也是目標系統(tǒng)的邏輯模型。進入了設計階段,要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型。即著手實現(xiàn)軟件的需求,并將設計的結果反映在“設計說明書”文檔中,所以軟件設計是一個把軟件需求轉換為軟件表示的

29、過程,最初這種表示只是描述了軟件的總的體系結構,稱為軟件概要設計或結構設計。概要設計的基本任務有:(1)設計軟件系統(tǒng)結構(簡稱軟件結構)(2)數(shù)據(jù)結構及數(shù)據(jù)庫設計(3)編寫概要設計文檔(4)評審2.請描述一下軟件體系結構的幾種模型。答:(1)結構模型:是構件、連接件(定義構件之間交互規(guī)則、消息協(xié)議的構造模塊)有組織的集合。反映系統(tǒng)的重要語義內容,包括系統(tǒng)的配置、約束等。(2)框架模型:與結構模型類似,不側重細節(jié),側重于系統(tǒng)的整體結構(模式)。(3)動態(tài)模型:補充模型,強調系統(tǒng)的行為性質。(4)過程模型:注重系統(tǒng)必須適應業(yè)務和技術的過程。(5)功能模型:一組功能構件按層次組成,下層向上層提供服務

30、,是一種特殊的框架模型。3.用戶界面設計的原則有哪些?答:以下設計原則適用于所有的用戶設計:(1)用戶熟悉:界面所使用的術語和概念是來自于用戶的經(jīng)驗,這些用戶是將要使用系統(tǒng)最多的人。(2)一致性:界面應該是一致的,命令、菜單格式相同,參數(shù)以相同方式傳遞,減少用戶學習時間。(3)意外最小化:永遠不要讓用戶對系統(tǒng)的行為感到吃驚,類似的操作應該有類似的效果。(4)可恢復性:界面應該有一種機制來允許用戶從錯誤中恢復。(5)用戶指南:在錯誤發(fā)生時界面應該提供有意義的反饋,并具有用戶幫助功能。(6)用戶差異性:界面應該為不同類型用戶提供合適的交互功能。4.MVC模型的思想是什么?使用它有什么好處?答:把用

31、戶界面中的表示、交互和實體相分離是該模型的基礎。MVC是一種用來使用戶界面層和系統(tǒng)的其他部分分離的體系結構模式。MVC不僅有助于增強用戶界面層的層內聚,而且有助于降低用戶界面與系統(tǒng)其余部分以及UI本身各部分之間的耦合。MVC模式使系統(tǒng)的功能層(模型)同用戶界面的兩個方面分離:試圖(view)和控制器(controller)。用戶能夠用適當?shù)慕换シ绞脚c每種表示形式進行交互。要顯示的數(shù)據(jù)被封裝到一個模型對象中。每個視圖都是模型的一種顯示表示方式。每個模型對象可能有許多獨立的視圖對象與之關聯(lián),例如表示數(shù)字數(shù)據(jù)的模型可能有一個直方圖的或一個表格的視圖。每個視圖都有一個的處理用戶輸入和設備交互的控制器對

32、象。使用MVC模式的好處:(1)三個構件可獨立設計(2)提高內聚,降低耦合:構件之間通信信道最小且易查找。(3)增加重用:視圖和控制器通常會使用大量的可重用構件作為各種UI控件。(4)靈活設計:很易通過改變視圖或控制器來改變UI。(5)可測試性設計:可脫離UI層測試應用程序。5.詳細設計的基本任務有哪些。6什么是耦合性和內聚性?都包括哪些內容?答:(1)耦合性是軟件結構中各構件間相互聯(lián)系緊密程度的一種度量。包括:無直接耦合、數(shù)據(jù)耦合、標記耦合、控制耦合、公共耦合、內容耦合。(2)內聚性是一個構件內部各種元素彼此結合的緊密程度的度量。包括:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內

33、聚、功能內聚。7有效模塊化設計的啟發(fā)式原則有哪些?答:(1)評估軟件結構的初始模型以降低耦合并提高內聚。(2)高層高扇出使最小化;當深度增加時(特別是底層)爭取提高扇入。(3)將模塊的作用范圍限制在模塊的控制范圍內。作用范圍:受模塊內一個判定影響的所有模塊的集合??刂品秶耗K本身及其所有下屬模塊的集合。(4)評估模塊接口以降低復雜度和冗余并提高一致性。(5)定義功能可以預測的模塊,(如對于相同的輸入,輸出是恒定的),但要避免過分限制模塊(如數(shù)據(jù)結構的大小、控制流的選擇、外部接口的模式等限制)。第五章 軟件測試本章要點:1軟件測試的概念2軟件測試技術3軟件測試策略4測試管理5軟件調試6軟件的可

34、靠性和可用性本章目標:1掌握軟件測試的相關概念2掌握基本的軟件測試技術3了解軟件測試的策略4了解軟件的可靠性與可用性本章重點:1軟件測試技術(黑盒技術,白盒技術)2軟件測試的策略本章難點:1軟件測試技術(黑盒技術,白盒技術)2軟件測試的策略3理解軟件的可靠性與可用性一、填空題1軟件調試方法一般分為( 動態(tài)測試方法 )與( 靜態(tài)測試方法 )。動態(tài)測試方法中又根據(jù)測試用例的設計方法不同,分為( 黑盒測試 )與( BAI盒測試 )兩類。2調試的目的是( 確定錯誤的原因和位置 ),并(改正錯誤 ),因此調試也稱為( 糾錯 )。3樁模塊用來代替被測模塊( 所調用的模塊 )。它的作用是( 返回被測模塊所需

35、的信息 )。4用等價類劃分的方法設計測試用例的步驟為:( 劃分等價類、確定測試用例 )。5二分法檢索將檢索空間劃分成了三個部分,每個部分構成了一個( 等價類 ),選擇這些等價類集合的( 邊界值 )作為測試用例。二、選擇題1.黑盒測試是從(C )觀點出發(fā)的測試,白盒測試是從( )觀點出發(fā)的測試。A.開發(fā)人員、管理人員B.用戶、管理人員C.用戶、開發(fā)人員D.開發(fā)人員、用戶2.軟件測試的目的是(D )A.證明軟件的正確性B.找出軟件系統(tǒng)中存在的所有錯誤C.證明軟件系統(tǒng)中存在錯誤D.盡可能多的發(fā)現(xiàn)軟件系統(tǒng)中的錯誤3.程序的3中基本結構是( B )A.過程、子程序、分程序B.順序、條件、循環(huán)C.遞歸、堆

36、棧、隊列D.調用、返回、轉移4.軟件測試是軟件開發(fā)過程中重要和不可缺少的階段,其包括的內容和步驟甚多,而測試過程的多種環(huán)節(jié)中基礎的是( B )A.集成測試B.單元測試C.系統(tǒng)測試D.驗收測試5.軟件測試方法中,黑盒測試方法和白盒測試方法是常用的方法,其中黑盒測試方法主要用于測試(B )A.結構合理性B.軟件外部功能C.程序正確性D.程序內部邏輯6.白盒測試方法重視(A )的度量A.測試覆蓋率B.測試數(shù)據(jù)多少C.測試費用D.測試周期7.評審是對軟件進行精彩測試的一種方法,下述結論中,( B )是與軟件評審無關的內容。A.盡量發(fā)現(xiàn)錯誤B.檢查軟件文檔C.根據(jù)評審標準D.依靠測試信息三、問答題1.軟

37、件測試的原則有哪些?答:(1)測試用例不但應有輸入數(shù)據(jù),還應有預期的輸出數(shù)據(jù)。這樣便于對照檢查,做到“有的放矢”。(2)測試用例不僅選用合理的輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。這樣能更多的發(fā)現(xiàn)錯誤,提高程序的可靠性。對于不合理的輸入數(shù)據(jù),要將反饋信息提供給用戶。(3)除了檢查程序是否做了它應該做的事,還可檢查程序是否做了它不應該做的事。例如程序正確地打印出用戶所需信息的同時還是否打印出用戶并不需要的多余信息。(4)應指定測試計劃并嚴格執(zhí)行,排除隨意性。(5)長期保留測試用例,為以后進行的回歸測試和維護提供方便。(6)對發(fā)現(xiàn)錯誤較多的程序段,應進行更深入的測試。因為在修改錯誤過程中容易引入新的

38、錯誤。(7)為了達到最有效的測試效果,程序員避免測試自己的程序。2什么是黑盒測試法?什么是白盒測試法?答:黑盒測試是把被測試對象看成一個黑盒子,測試人員完全不考慮程序的內部結構和處理過程。只在軟件的接口處進行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能需求。因此,黑盒測試又稱為功能測試或數(shù)據(jù)驅動測試。通過黑盒測試主要發(fā)現(xiàn)以下錯誤:(1)是否有不正確或遺漏了的功能。(2)在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確的輸出信息。(3)訪問外部信息是否有錯。(4)性能上是否滿足要求等等。白盒測試是把測試對象看作一個打開的盒子,測試人員須了解程序的內部結構和處理過程,以檢查處理過程的細節(jié)為基礎,對

39、程序中盡可能多的邏輯路徑進行測試,檢驗內部控制結構和數(shù)據(jù)結構是否有錯,實際的運行狀態(tài)與預期的狀態(tài)是否一致。3簡述軟件測試的步驟。答:軟件測試一般分為四個步驟: (1)單元測試(也稱模塊測試):針對軟件設計的基本單元程序模塊,進行正確 性檢驗的測試工作。目的在于發(fā)現(xiàn)各個模塊內部可能存在的各種差錯。單元測試需要從程序內部結構出發(fā)設計測試用例,多個模塊可以平行、獨立地進行測試; (2)集成測試(也稱組裝測試,聯(lián)合測試):在單元測試的基礎上,將所有模塊按設計要求集成在一起進行測試,以檢驗總體設計中各模塊間的接口設計問題、模塊之間的相互影響、上層模塊存在的各種差錯及全局數(shù)據(jù)結構對系統(tǒng)的影響等方面。 (3

40、)確認測試(也稱驗收測試,有效性測試):主要檢驗軟件的功能和性能是否與需求說明書中的規(guī)定一致。 (4)系統(tǒng)測試:將軟件系統(tǒng)作為一個元素,放入整個實際的計算機系統(tǒng)中,與計算機硬件、其他軟件、使用人員等系統(tǒng)元素結合在一起,在實際使用環(huán)境下進行綜合全面的測試。4集成測試有哪些具體的方法?它們的區(qū)別是什么?答:集成測試的方法主要有非漸增式測試和漸增式測試。(1)非漸增式測試:該測試是首先對每個模塊分別進行單元測試,然后再把所有的模塊按設計要求組裝在一起進行的測試。(2)漸增式測試:該測試是逐個把未經(jīng)過測試的模塊組裝到已經(jīng)測試過的模塊上去,進行集成測試。每加入一個新模塊進行一次集成的測試,重復此過程直至

41、程序組裝完畢。非漸增式測試和漸增式測試的區(qū)別有如下幾點:(1)非漸增式方法把單元測試和集成測試分成兩個不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試把單元測試與集成測試合在一起,同時完成。(2)非漸增式需要更多的工作量,因為每個模塊都需要驅動模塊和樁模塊,而漸增式利用已測試過的模塊作為驅動模塊或樁模塊,因此工作量較少。(3)漸增式可以較早地發(fā)現(xiàn)接口之間的錯誤,非漸增式最后組裝時才發(fā)現(xiàn)。(4)漸增式有利于排錯,發(fā)生錯誤往往和最近加進來的模塊有關,而非漸增式發(fā)現(xiàn)接口錯誤推遲到最后,很難判斷是哪一部分接口出錯。(5)漸增式比較徹底,已測試的模塊和新的模塊組裝在一起再測試。

42、(6)漸增式占用的時間較多,但非漸增式需更多的驅動模塊、樁模塊,也占用一些時間。(7)非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。5什么是軟件的可靠性和可用性,二者有什么區(qū)別和聯(lián)系。答:可靠性:系統(tǒng)在給定的時間間隔內,根據(jù)需求說明成功地運行的概率。也可以說可靠性是系統(tǒng)依照需求指定的功能不失敗運作的可能性??捎眯裕合到y(tǒng)在給定的時間點上根據(jù)需求說明成功地運行的概率。也可以說可用性是當有請求時(即在一定時刻)系統(tǒng)能執(zhí)行有用服務的可能性??煽啃耘c長期的行為有關,而可用性描述時間中某一給定點上的事情。對于硬件,有的東西可能是高可靠的,但在時間的某一特定點上可能是不可用的。同樣

43、的概念也適用于軟件系統(tǒng)??煽啃?、可用性是相互依賴的系統(tǒng)特性。都反映了用戶對系統(tǒng)的信任程度。如果系統(tǒng)是不可靠的,就很難保證系統(tǒng)的安全性、保密性等許多特性。如果系統(tǒng)不可用,用戶將無法接受。第六章 軟件維護本章要點:1軟件維護的概念2軟件維護的活動3軟件的可維護性4軟件再工程本章目標:1了解軟件維護的相關概念2掌握維護活動的基本過程3明確軟件的可維護性4了解軟件再工程本章重點:1軟件維護的相關概念2維護活動的基本內容3軟件的可維護性本章難點:1維護活動的基本內容2軟件的可維護性一、填空題1軟件維護分為( 改正性維護、適應性維護、增強性維護 )。2帶來高維護費用的關鍵因素有:( 人員的不穩(wěn)定、合同責任

44、、維護人員技術水平、系統(tǒng)結構衰退 )。3( 軟件再工程 )是視圖增加當前系統(tǒng)的總體質量、提高可維護性的工程。4軟件維護費用增加的主要原因是維護的( 生產(chǎn)率)非常低。5軟件的( 可維護性、可使用性、可靠性 )是衡量軟件質量的幾個主要特性。二、選擇題1.在軟件生存周期中,工作量所占比例最大的階段是( D )階段A.需求分析B.設計C.測試D.維護2.軟件工程對維護工作的主要目標是提高(A ),降低維護的代價。A.軟件的生產(chǎn)率B.軟件的可靠性C.軟件的可維護性D.維護的效率3.產(chǎn)生軟件維護的副作用,是指(C )A.開發(fā)時的錯誤B.隱含的錯誤C.因修改軟件而造成的錯誤D.運行的誤操作4.軟件維護工作的

45、最主要部分是( C)A.校正性維護B.適應性維護C.完善性維護D.預防性維護5.盡管有不合法的輸入,軟件仍能繼續(xù)正常工作的能力是指(C )A.兼容性B.可靠性C.容錯性D.穩(wěn)定性6.下面有關軟件維護的敘述( A )是正確的A.設計軟件時就應考慮到將來的可修改性B.維護軟件是一件很吸引人的創(chuàng)造性工作C.維護軟件就是改正軟件中的錯誤D.誰編寫軟件就應由誰來維護這個軟件7.以下不屬于軟件維護的困難表現(xiàn)的是(C )A.讀懂別人的程序是困難的B.文檔的不一致性C.源程序及相關文檔的錯誤或丟失D.軟件開發(fā)和軟件維護在人員和時間上的差異E.軟件維護不是一項吸引人的工作三、問答題1.軟件維護的內容有哪些?答:

46、軟件維護內容有四種:校正性維護,適應性維護,完善性維護和預防性維護。 (1)校正性維護 在軟件交付使用后,由于在軟件開發(fā)過程中產(chǎn)生的錯誤并沒有完全徹底的在測試 中發(fā)現(xiàn),因此必然有一部分隱含的錯誤被帶到維護階段來。這些隱含的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤,修改軟件性能上的缺陷,應進行確定和修改錯誤的過程,這個過程就稱為校正性維護。校正性維護占整個維護工作的20%左右。(2)適應性維護 隨著計算機的飛速發(fā)展,計算機硬件和軟件環(huán)境也在不斷發(fā)生變化,數(shù)據(jù)環(huán)境也 在不斷發(fā)生變化。為了使應用軟件適應這種而修改軟件的過程稱為適應性維護。這種維護活動占整個維護活動的25%。(3)完善

47、性維護 在軟件漫長的運行時期中,用戶往往會對軟件提出新的功能要求與性能要求。這 是因為用戶的業(yè)務會發(fā)生變化,組織機構也會發(fā)生變化。為了適應這些變化,應用軟件原來的功能和性能需要擴充和增強,為達到這個目的而進行的維護活動稱為完善性維護,占整個維護活動的50%。(4)預防性維護 為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護。這是為 以后進一步的運行和維護打好基礎,占整個維護工作的4%。2.軟件的可維護性指什么?與可維護性相關的質量屬性是什么?如何提高軟件的可維護性?答:軟件可維護性的定義:軟件能夠被理解、校正、適應及增強功能的容易程度。軟件的可維護性、可使用性、可靠性是衡量軟件質

48、量的幾個主要特性,也是用戶十分關心的幾個問題。軟件的可維護性是軟件開發(fā)階段的關鍵目標。影響軟件可維護性的因素較多,設計、編碼及測試中的疏忽和低劣的軟件配置,缺少文檔等都對軟件的可維護性產(chǎn)生不良影響。軟件可維護性可用下面七個質量特性來衡量,即可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。對于不同類型的維護,這七種特性的側重點也是不相同。 從下面五個方面來闡述如何提高軟件的可維護性: (1)建立明確的軟件質量目標 如果要程序滿足可維護性七個特性的全部要求,那么要付出很大的代價,甚至 是不現(xiàn)實的,但有些可維護性是相互促進的,因此要明確軟件所追求的質量目標。(2)使用先進的軟件開發(fā)技

49、術和工具 利用先進的軟件開發(fā)技術能大大提高軟件質量和減少軟件費用。面向對象的軟件 開發(fā)方法就是一個非常實用而強有力的軟件開發(fā)方法,用面向對象方法開發(fā)出來的軟件系統(tǒng),穩(wěn)定性好,比較容易修改,比較容易理解,易于測試和調試,因此,可維護性好。(3)建立明確的質量保證 質量保證是指為提高軟件質量所做的各種檢查工作。質量保證檢查是非常有效的 方法,不僅在軟件開發(fā)的各階段中得到了廣泛應用,而且在軟件維護中也是一個非常主要的工具。為了保證可維護性,以下四類檢查是非常有用的: 1.在檢查點進行檢查。 2.驗收檢查。 3.周期性的維護檢查。 4.對軟件包的檢查。(4)選擇可維護的語言 程序設計語言的選擇對維護影

50、響很大。低級語言很難掌握,很難理解,因而很難 維護。一般來說,高級語言比低級語言更容易理解,第四代語言更容易理解,容易編程,程序容易修改,改進了可維護性。(5)改進程序的文檔 程序文檔是對程序功能、程序各組成部分之間的關系、程序設計策略、程序實現(xiàn)過程的歷史數(shù)據(jù)等的說明和補充。程序文檔對提高程序的可閱讀性有重要作用。為了維護程序,人們必須閱讀和理解程序文檔。3.簡述軟件維護的流程。答:軟件維護的流程如下: (1)制定維護申請報告。 (2)審查申請報告并批準。 (3)進行維護并做詳細記錄。 (4)復審。 1.制定維護申請報告 所有軟件維護申請報告應按照規(guī)定的方式提出。該報告也稱為軟件問題報告。它

51、是維護階段的一種文檔,由申請維護的用戶填寫。維護申請報告是一種由用戶產(chǎn)生的文檔,在軟件維護組織內部還要制定一份軟件修改報告,該報告是維護階段的另一種文檔。提出維護申請報告之后,由維護機構來評審維護請求。評審工作很重要,通過評審回答要不要維護,從而可以避免盲目的維護。2.維護過程 一個維護申請?zhí)岢鲋?,?jīng)評審需要維護則按下列過程實施維護: (1)首先確定要進行維護的類型。 (2)對校正性維護從評價錯誤的嚴重性開始。 (3)對適應性維護和完善性維護。 (4)實施維護任務。不管維護類型如何,大體上要開展相同的技術工作。這些工作 包括修改軟件設計、必要的代碼修改、單元測試、集成測試、確認測試以及復審。

52、每種維護類型的側重點不一樣。 (5)“救火”維護。在發(fā)生重大問題時,需要立即解決的問題。3.維護的復審 在維護任務完成后,要對維護任務進行復審。4.維護的困難性表現(xiàn)在哪里?答:軟件維護的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴格而又科學的管理和規(guī)劃,就會引起軟件運行時的維護困難。表現(xiàn)在以下幾個方面:1.讀懂別人的程序是困難的。2.文檔的不一致性。由于開發(fā)過程中文檔管理不嚴所造成的,在開發(fā)過程中經(jīng)常會出現(xiàn)修改程序 卻遺忘了修改與其相關的文檔,使得文檔前后不一致。3.軟件開發(fā)和軟件維護在人員和時間上的差異由于維護階段持續(xù)時間很長,正在運行的軟件可能是十幾、二十年前開

53、發(fā)的, 開發(fā)工具、方法、技術與當前的工具、方法、技術差異很大,這又是維護困難的另一因素。,由于維護工作的困難性,維護工作經(jīng)常遭受挫折,而且很難出成果,不像軟件開發(fā)工作那樣吸引人5.簡述維護的副作用。答:維護的目的是為了延長軟件的壽命并讓創(chuàng)造更多的價值,經(jīng)過一段時間的維護,軟件中的錯誤減少了,功能增強了。但修改軟件會造成軟件的錯誤,這種因修改軟件而造成的錯誤或其他不希望出現(xiàn)的情況稱為維護的副作用。 維護的副作用有編碼副作用、數(shù)據(jù)副作用、文檔副作用三種。 1.編碼副作用 在使用程序設計語言修改源代碼時可能引入錯誤。 2.數(shù)據(jù)副作用 在修改數(shù)據(jù)結構時,有可能造成軟件設計與數(shù)據(jù)結構不匹配,因而導致軟件

54、錯誤。 3.文檔副作用 對數(shù)據(jù)流、軟件結構、模塊邏輯或任何其他有關特性進行修改時,必須對相關技術文檔進行相應修改,否則會導致文檔與程序功能不匹配、缺省條件改變、新錯誤信息不正確等錯誤,使文檔不能反映軟件當前的狀態(tài)。6.如何降低軟件維護的費用?答:(1)從開發(fā)階段的一開始就按質量標準構件系統(tǒng),給予“可維護性”屬性以足夠的重視,這樣可以使系統(tǒng)的整個生命周期成本減少。 (2)采用演化式的系統(tǒng)開發(fā)模型(如增量、螺旋),建立能結合新需求而演化和變更的系統(tǒng)。 (3)實施軟件再工程,改善系統(tǒng)結構,提高可維護性。第七章 面向對象軟件工程的概念本章要點:1傳統(tǒng)軟件開發(fā)方法的局限性2OO軟件的過程模型3OO的有關

55、概念及方法4UML語言本章目標:1了解傳統(tǒng)軟件開發(fā)方法的局限性2掌握面向對象軟件的過程模型3明確面向對象的相關概念4了解幾種面向對象方法5掌握統(tǒng)一建模語言UML本章重點:1面向對象軟件的過程模型2統(tǒng)一建模語言UML本章難點:1面向對象軟件的過程模型2統(tǒng)一建模語言UML一、填空題1對象具有狀態(tài),一個對象用(數(shù)據(jù)值)來描述它的狀態(tài)。2具有相同或相似性質對象的抽象就是(類)。3Booch方法的開發(fā)模型分( 靜態(tài)模型)和( 動態(tài)模型)類型。4面向對象設計可分為( 系統(tǒng))設計和( 對象 )設計。5類通常有兩種結構關系,即(一般具體結構)關系及(整體成員結構)關系。二、選擇題1.面向對象程序設計語言與其他

56、程序設計語言的最主要差別是它具有( C )2.在面向對象的設計中,我們應遵循的設計準則除了模塊化、抽象、低耦合、高內聚以外,還有( B )3.以下說法錯誤的是( D )A.面向對象方法不僅支持過程抽象,而且支持數(shù)據(jù)抽象D.在面向對象方法中,類是最基本的模塊4.以下說法錯誤的是( D )D.類封裝比對象封裝更具體、更細致5.描述類中對象的行為,反映了狀態(tài)與事件關系的是( B )6.對象模型的描述工具是( C )三、簡答題1.傳統(tǒng)軟件開發(fā)方法有什么缺陷?答:傳統(tǒng)軟件主要有以下幾個方面的缺陷:(1)面向過程為主。系統(tǒng)圍繞著由計算機來實現(xiàn)功能的復雜過程而建立,在分析和解決問題時與人們對現(xiàn)實世界的認識有

57、一定差距。(2)軟件結構穩(wěn)定性差。需求分析階段重點是功能模型,難以徹底明確全部需求。設計階段的軟件體系結構是基于系統(tǒng)功能建立的。每個模塊完成一個基本功能,多個模塊的組合完成一個整體功能。一個模塊的變動可能會影響到多個模塊。用戶的需求大多針對功能,功能的變化會引起體系結構的變化,不利于系統(tǒng)的維護。(3)軟件開發(fā)的抽象力度小。解決問題的類型一般用于“輸入處理輸出”為核心的數(shù)據(jù)處理系統(tǒng),不適應于復雜的實時、交互、事件驅動、分布式等新型應用的系統(tǒng)開發(fā)。(4)軟件重用未能得到很好的解決。傳統(tǒng)的方法一般從“零”開始開發(fā)軟件,數(shù)據(jù)與操作作為相互分離的實體來考慮,使軟件的可復用性差。重用的實施僅僅是公用模塊的

58、調用。面向對象的封裝性、繼承性、多態(tài)性等特性支持軟件重用且重用的力度大。軟件的重用導致更快地、高質量地開發(fā)軟件,為軟件工業(yè)化生產(chǎn)奠定基礎。2.面向對象的特征有哪些?答:(1)對象唯一性。 每個對象都有自身唯一的標識,通過這種標識,可找到相應的對象。在對象的整 個生命期中,它的標識都不改變,不同的對象不能有相同的標識。 (2)分類性。 分類性是指將具有一致的數(shù)據(jù)結構(屬性)和行為(操作)的對象抽象成類。一個類就 是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。(3)繼承性。 繼承性是子類自動共享父類數(shù)據(jù)結構和方法的機制,這是類

59、之間的一種關系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎之上來進行,把這個已經(jīng)存在的類所定義的內容作為自己的內容,并加入若干新的內容。繼承性是面向對象程序設計語言不同于其它語言的最重要的特點,是其他語言所沒有的。在類層次中,子類只繼承一個父類的數(shù)據(jù)結構和方法,則稱為單重繼承。在類層次中,子類繼承了多個父類的數(shù)據(jù)結構和方法,則稱為多重繼承。在軟件開發(fā)中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創(chuàng)建工作量,增加了代碼的可重性。采用繼承性,提供了類的規(guī)范的等級結構。通過類的繼承關系,使公共的特性能夠共享,提高了軟件的重用性。(

60、4)多態(tài)性(多形性) 多態(tài)性使指相同的操作或函數(shù)、過程可作用于多種類型的對象上并獲得不同的結 果。不同的對象,收到同一消息可以產(chǎn)生不同的結果,這種現(xiàn)象稱為多態(tài)性。 多態(tài)性允許每個對象以適合自身的方式去響應共同的消息。 多態(tài)性增強了軟件的靈活性和重用性。3.比較幾種面向對象的軟件開發(fā)方法。答:目前,面向對象開發(fā)方法的研究已日趨成熟,國際上已有不少面向對象產(chǎn)品出現(xiàn)。面向對象開發(fā)方法有Coad方法、Booch方法和OMT方法等。 1.Booch方法 Booch最先描述了面向對象的軟件開發(fā)方法的基礎問題,指出面向對象開發(fā)是一種根本不同于傳統(tǒng)的功能分解的設計方法。面向對象的軟件分解更接近人對客觀事務的理

溫馨提示

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

評論

0/150

提交評論