查文庫>試題> 軟體工程試題及答案

軟體工程試題及答案

軟體工程試題及答案

  小編給大家提供軟體工程試題及答,歡迎參考!

  一、填空(10*1分=10);(1)產品設想是產品用途和形式的概括描述,可以通;(2)專案範圍是專案中要完成的工作;(3)產品設計過程的特點可以概括為自頂向下和以用;(4)備選需求的思想可以來自設計團隊的內部或外部;(5)工程設計的第一步是工程設計分析;(6)體系結構設計必須既考慮功能需求,又考慮非功;(7)設計模式出現在幾個不同的抽象級別上,包括體;(8)

  一、填空(10 *1分=10)

  (1)產品設想是產品用途和形式的概括描述,可以透過主要產品功能列表的形式詳細闡明。

  (2)專案範圍是專案中要完成的工作。風險承擔者是受產品影響或參與。影響產品開發的任何人。

  (3)產品設計過程的特點可以概括為自頂向下和以使用者為中心。前者意味著設計人員首先要在高抽象級別上引出需要並生成、改進、評估和選擇需求,然後再依次在更低的級別上引出需要並生成、改進、評估和選擇需求。後者意味著設計過程是以風險承擔者為焦點,使用實驗評估,而且高度重複。

  (4)備選需求的思想可以來自設計團隊的內部或外部。前一種來源包括使用者和其他風險承擔者、專家、現實物品和比喻、競爭產品和相似產品。後一種來源包括團隊集體討論、個人獨立思考和建模。

  (5)工程設計的第一步是工程設計分析。這項活動的輸入包括可能以各種模型和原型作為其補充的SRS,它們都是在產品設計過程中產生的。從軟體的生命週期的觀點來說,工程設計發生在設計階段。在這項活動中分析問題的好方法是建模,這將產生該活動的主要輸出。

  (6)體系結構設計必須既考慮功能需求,又考慮非功能需求。使程式能夠滿足其功能需求的體系結構可能有任意多個,但其中只有質量特效能夠同時使程式滿足其非功能需求。軟體體系結構設計者必須考慮多種程式以找出那些所能指定的程式既能滿足功能需求,又能滿足非功能需求的結構。

  (7)設計模式出現在幾個不同的抽象級別上,包括體系結構風格,它是處於體系結構級別的模式;中級設計模型它是設計類及其互動作用的模式;資料結構和演算法它是實現抽象資料型別和有效操作的模式;程式設計慣用法,它是能夠有效使用特定程式語言的模式。

  (8)在應用樹中,樹根以utility加以標記,根的子樹是概貌的名稱,樹葉表示場景。這些樹幫助生成用來評估體系結構方案的場景的集合。

  (9)正確使用表示方法的SAD是結構良好的SAD,全部可以由一個程滿足的一組設計說明是一致的。所指定的程式能夠滿足其所有需求的軟體體系結構是完整的。如果SAD易於理解,則是清晰的。

  (10)詳細設計解析非常類似於體系結構設計解析。可用於生成和改進設計方案的技術包括基於程式功能的分解、基於質量特性的分解、從概念模型中複製設計、根據類似程式的設計模型建立設計以及使設計基於設計模式之上。

  二、名詞解釋(5*3分=15)

  1. 模型

  模型是用來表示另一個實體(目標)的實體,建立模型要確定目標的部件或元素與模型的部件或元素之間的對應關係,還要確定目標的部件或元素間相互關係與模型的部件或元素間相互關係之間的對應關係。

  2. 靜態設計模型

  靜態設計模型表示不會在程式執行過程中發生變化的程式方面。

  3. 動態設計模型

  動態設計模型表示在程式執行過程中所發生的事情。

  4. 用例

  用例是產品與環境之間完整互動作用的型別。

  5. 場景

  場景是產品與特定個人之間的互動作用。

  6. 類模型

  問題或軟體解決方案中類的表示。

  7. 抽象類

  它是一個不能被例項化的類,任何至少有一個抽象操作的類都必定是抽象類,因為如果例項化這樣的類,那麼客戶並不能呼叫其包含的抽象操作,不是抽象類的類是具體類。

  8. UML介面

  是公有的屬性和抽象操作的有名集合。

  9. 虛擬裝置

  真實硬體裝置或系統的軟體模擬或介面。

  10. 同步訊息

  從一個物件到另一個物件的通訊,而這個傳送個體在傳送資訊之後暫停執行。

  11. 非同步訊息

  從一個物件到另一個物件的通訊,而這個傳送個體在傳送資訊之後繼續執行。

  12. 嚴格分層體系結構

  允許每層只使用緊鄰其下的那一層的分層體系結構

  13. 鬆弛分層體系結構

  允許每層都可以使用其下的所有層的分層體系結構

  14. 黑板體系結構風格

  當共享資料庫改變時,共享資料庫將啟用存取器。這種變體稱為黑板體系結構風格,共享資料庫稱為黑板

  15. 倉庫體系結構風格

  共享資料庫是被動的,由存取器對其進行查詢,這些存取器可以繼續執行,或者由其他某個元件控制,這種變體稱為倉庫體系結構風格,共享資料庫稱為倉庫

  16. 異構體系結構

  採用兩種或多種體系結構風格的體系結構

  三、簡答題(30分)

  1. 說出設計當作問題解決方案來考慮的3個優點。

  第一:這意味著資訊在問題和解決方案之間可能是隔離的

  第二:由此產生的看待設計的觀點

  第三:意味著要在設計中使用歷史悠久的一般的問題解決技術

  2. 為什麼說抽象化是重要的問題解決技術?說出3點理由。

  a) 使問題簡化——真實的問題總是有許多與其解決方案無關的細節

  b) 使問題的解決結構化——許多設計問題都太大太複雜,以致不能完全解決

  c) 有助於以自頂向下的方式構成問題解決過程

  3. 例舉建模的好處和危險。

  好處:可以簡化要表示的目標,從而使我們更容易理解,記錄和研究目標。研究模型還可能比直接研究目標更省成本,更安全。

  危險:模型永遠不能精確再現所表示的目標,因此研究模型得出的結論有可能不正確。

  4. 例舉軟體的產品設計人員和工程設計人員所關注的具體方面。

  部分具體的軟體產品設計:屏幕布局——包括使用者介面元件的佈置以及這些元件的大小,字型顏色和外觀;使用者與程式之間的互動順序;訊息的編寫;影象的使用和外觀;

  程式將執行的功能;程式所需的輸入和產生的輸出;程式的質量和可靠性;使用者使用該程式達到其目標的易用性;程式是如何適應和改變使用者工作方式

  部分具體的軟體工程設計:構成程式的主要部件或子系統,包括它們的介面,功能,互動作用,速度等;程式中的模組以及這些模組的介面;程式中模組之間的互動作用;模組的內部細節,包括它們的資料和行為;程式中使用的資料結構和演算法;程式中異常和錯誤處理機制;程式中的程序和執行緒。

  5. 為了核實某個用例圖是否包括所有應該包括的用例,設計人員應該怎樣做?

  透過檢查產品需要清單來確保所有需要都已得到滿足,或者確保所有未被滿足的需要都是故意為之的,設計人員可以檢查用例圖的完整性

  6. 給出3個因太小而不應成為用例的活動示例。

  某些因太小而不宜作為用例的活動示例是:給裝置或另一個系統傳送訊號或訊息,接收來自裝置或另一個系統的訊號或訊息,向用戶顯示訊息。

  7. 哪些表示法可用於用例描述?

  任何能夠說明互動作用中活動流程的表示法都可以用於用例描述,其中包括uml活動圖,uml互動作用圖,流程圖,程式語言和自然語言。

  8. 為什麼至少必須有一個風險承擔者的需要與用例有關?

  如果某種產品的任何風險承擔者都沒有與某個用例相關的需要,則該產品就沒有理由支援這個用例。產品應該滿足風險承擔者的需要和要求,產品的所有特點和功能都應該服務於這個目標。

  9. 如果在開始工作時沒有完整、正確和一致的產品設計,那麼工程設計人員必須做什麼?

  如果工程設計人員沒有得到由產品設計人員提供的完整,正確和一致的產品設計,則除了親自完成產品設計以外別無選擇,如果完全不知道產品是什麼,就不可能想出如何來實現產品。

  10.對工程設計分析最有用的靜態和動態模型是什麼?

  對面向物件的工程分析最有用的靜態模型是分析類模型,最有用的動態模型是用例模型

  11.給出一些不應該出現在概念模型中但應該出現在設計類模型中的例項。

  不應該出現在概念模型中但應當出現在設計類模型中的示例是那些與軟體系統有關而問題無關的實體,具體例子包括只與實現有關的類屬性,比如:計數器,引用以及僅僅為了方便的變數;還有隻與實現有關的屬性的特徵,比如屬性是公有還是私有,屬性的資料結構是什麼;以及只與實現有關的操作,比如建構函式,解構函式,結束函式,獲取惡化設定屬性的方法;或者是隻與實現有關的操作的特徵,比如操作是公有還是私有,它們支援哪種併發性。

  12.給出一些不應該出現在設計類模型中但應該出現在實現類模型中的例項。

  不應該出現在設計類模型中但應當出現在實現類模型中的示例是那些與特定環境和語言中的程式實現有關的實體。具體的例子有來自類庫的具體類,比如Java.lang.integer;還有哪些為語言所特有的資料型別,比如unsinged long;以及操作和初始化表示式

  13.在軟體體系結構文件中應該包括什麼資訊?

  軟體體系結構文件應該包括產品概述,給出體系結構模型,提供模型之間的`對映,解釋設計的理論依據,幷包括詞彙表

  14.什麼圖可以用來模擬程式部件之間的協作?說出五種。

  Uml順序圖,通訊圖,活動圖,用例模型,資料流程圖

  15.描述用於生成中級設計模型的兩種建立技術和兩種轉換技術。

  兩種建立技術是功能分解和基於主題的分解。在功能分解技術中,為得到低級別的元件而分解高級別元件的功能。在基於主題的分解技術中,設計主題從設計故事中被吸取出來,然後用來生成解決各個主題的模式。

  兩種轉換技術是把概念模型轉換為設計模型以及轉換類似程式的設計,轉換概念模型從概念模型著手,將其元素從問題實體轉換為設計元件,修改這些元件並新增必要的新元件,。轉換類似的設計需要修改原來的設計,以滿足新產品的需求。

  16.職責是如何幫助做出模組中應該放入哪些操作和資料的決策?

  某個模組為履行其職能所需的全部資料和操作都應該被放入該模組中,也只有這樣的資料和操作才應該被放入該模組之中。這將增強模組的內聚性,並降低模組的耦合性。

  17.解釋操作何時活動、暫停或執行。物件可以暫停嗎?為什麼?

  操作當某個程序在執行其程式碼時處於執行狀態,當等待同步訊息返回時處於暫停狀態,當執行或暫停時屬於活動狀態,物件可以是活動的,因為物件可以有一個或多個活動的操作,但物件不能被暫停,。有人可能會說,如果某個物件的一個或多個操作被暫停,則該物件就處於暫停狀態,但是,一個或多個操作被暫停的物件卻可能有一個或多個操作正在執行,因為可能有多個程序在執行該物件的程式碼,因此說一個或多個操作被暫停的物件處於暫停狀態是沒有意義的。

  18.可選、選擇、中斷和迴圈片斷分別可以有多少個運算元?

  可選,中斷和迴圈片段只能有一個運算元,選擇片段可以有一個或多個運算元。

  19.解釋分層風格如何支援重用的?

  在分層體系結構中,每一層都應當包含內聚元素,並只和它下面的那個模組耦合,這樣可以比較容易的提取有一個層並在另一個程式中使用它,此外,類似的程式可能需要類似的層,所以層的重用也將更加容易。

  20.解釋分層風格的程式難以除錯的原因。

  在具有分層體系結構的程式中實現許多程式特性將跨越幾個層,也許是大部分層,如果出現bug,則難以確定發生故障的層,從而使程式難以除錯。

  10. 下面的UML序列圖是對一個自動氣象站中物件的互動行為建模。在圖中直接圈出所有

  錯誤,並重新繪製順序圖。(10分)

  (1) 根據上圖中,什麼訊息被髮送Weathervane物件?

  cheeckDirection() checkSpeed()

  (2)建立了多少個Observation 物件?

  1個

  (3)record( )操作在其引數設定前是否能被呼叫?

  否

  (4)self物件的型別是什麼?

  整型

  (5)Weathervane物件的名稱是什麼?

  W

  11. 下面兩張圖中,哪一張圖是框線圖,並簡述框線圖的用途。(5分)

  第一張圖是

  框線圖的用途:因為關於框線圖的規定非常鬆散,所以它們不僅可用於靜態建模,也可用於動態建模,還能表示體系結構設計者想要表示的任何程式方面。在實踐中,框線圖的最常見用途是表示把系統分解為主要構件或子系統,並表明其互動作用關係的靜態模型。

  12. 下面兩張圖中,哪一張圖是部署圖,並簡述部署圖的用途。(5分)

  ?device?ServerPC;?artifact?GameServer;TCP/IPRMI?device?GameDat;?device?ClientPC?deploy?;第二張圖是;部署圖的用途:部署圖顯示了系統中使用的實際和虛擬;

  13.下面兩張圖中,哪一張圖描述的管道過濾器風格;(10分);第一張圖是;管道過濾器風格的特徵:a:以資料流向的過程為核心

  ?device?ServerPC

  ?artifact?GameServer

  1

  TCP/IPRMI?device?GameDataServer?DB?GameDataRulesBoardImageTokenImage

  ?device?ClientPC?deploy??artifact?GameClient

  第二張圖是

  部署圖的用途:部署圖顯示了系統中使用的實際和虛擬的機器,這些機器的通訊路徑、實現該系統的程式和資料檔案以及程式執行和資料主流所在的位置。因此,部署圖為模擬物理體系結構提供了功能豐富的表示方法。部署圖在體系結構(特別是分散式系統)的設計過程中是有用的,在詳細設計過程中亦可用於模擬物理的部署。

  13. 下面兩張圖中,哪一張圖描述的管道過濾器風格。簡述管道過濾器風格的特徵和優缺點。

  (10分)

  第一張圖是

  管道過濾器風格的特徵:a:以資料流向的過程為核心,因此也被稱為:資料流風格。

  b:過濾器自身功能獨立而完整,不需要知道其他過濾器的存在與否,相互之間無狀態互動。 c:過濾器對輸入的資料流有限制,並必須保證輸出流的正確性。

  d:系統 優點

  (1)過濾器易於修改或替換,這樣在解決問題或修改程式的行為時,程式的修改將非常簡單。

  (2)過濾器的重新排列幾乎毫不費力,這便於開發幾個完成類似任務的程式。

  (3)過濾器具有高可重用性。

  (4)假設可以使用同步管道,那麼這種風格支援並執行,而且相對容易實現。

  缺點

  (1)過濾器只能透過管道進行通行,所以它們的活動難以協調。

  (2)過濾器通產使用和生成非常簡單的資料流,如字元流,這意味著,在把輸入轉換成有用的格式,然後再把結果轉換成輸出時使用的簡單格式時,過濾器可能必須完成大量的操作。

  (3)錯誤處理非常困難,錯誤資訊只能透過管道輸出或傳送。當可靠性和安全性很重要時,由於錯誤檢測和恢復難以完成,所以不適合使用這種風格。

  (4)並行執行的好處可能並不牢靠。管線也許不能有效地同步過濾器,一些過濾器在進行輸出之前可能需要等待所有的輸入。

  14. 下面兩張圖中,哪一張圖描述的事件驅動風格。簡述事件驅動風格的特徵和優缺點。(10分)

  第二張圖是

  事件驅動風格的特徵:事件驅動系統的基本觀點是一個系統對外部的表現可以從它對事件的處理表現出來。

  優點:(1)易於新增、刪除和修改元件,所以利用這種風格編寫的程式具有可變性和可維護性(2)程式元件的獨立性支援可重用性、健壯性和容錯性。

  缺點:(1)儘管時間可以攜帶資料,但是在由事件分配器進行中介時,元件的互動作用將難以到達。為了解決這個問題,事件驅動的系統通常還支援顯示的呼叫操作,儘管這將耦合元件。(2)宣佈事件的元件不能保證有元件對他們進行相應,也不能對元件相應他們的順序寄予任何期望。有時,這會造成難以編寫出正確的程式。(3)事件通訊量往往有很大的變化:事件分配器經常處於空閒狀態,而在其他時間,它則會收到大量事件,這樣將難以達到效能目標。

  四、綜合設計題(每小題14分,共35分)

  1. 繪製活動圖,說明一般設計的步驟,並說明活動圖的用途。(7分)

  一般設計的步驟:一般設計過程遵循一般的問題解決策略。首先是理解設計問題。尋找設計問題解決方案的過程是重複生成新候選解決方案或細化現有候選解決方案,然後依據設計問題對它們進行評估。最終應該有一個或多個令人滿意的解決方案出現,然後即可把最好的一個以文件形式記錄下來並交付。

  活動圖的用途:一般設計過程分析和解析之間的重複。表示任何在問題解析過程中發現的對問題的誤解都將導致返回到分析活動。

  2. 繪製活動圖,模擬洗衣過程。該模型中應包括並發動作,並說明活動圖的用途。(7分) 活動圖的用途:簡化描述了洗衣過程:包括對系統的工作流建模或者對具體的操作建模。

  3. 繪製自助洗車系統的用例圖,並說明用例圖的用途。(7分)

  4. 繪製自動取款機的用例圖,並說明用例圖的用途。(7分)

  5. 使用狀態機圖繪製交通路口紅綠燈的併發行為模型,並說明狀態機圖的用途。(7分)