博文谷

位置:首頁 > 教師之家 > 試題

軟件工程試題及答案

試題1.56W

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

軟件工程試題及答案

一、填空(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.給出一些不應該出現在設計類模型中但應該出現在實現類模型中的實例。

不應該出現在設計類模型中但應當出現在實現類模型中的示例是那些與特定環境和語言中的程序實現有關的實體。具體的例子有來自類庫的具體類,比如ger;還有哪些爲語言所特有的數據類型,比如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分)

標籤:試題 軟件工程