一名良好的軟件工程師應具備以下能力:
(1)具有扎實的計算機專業知識
(2) 良好的語言表達能力和溝通能力
(3) 健康的心理素質
(4) 快速學習能力
(5) 團隊協作能力
題目:
一、選擇題
1、軟件生存周期模型有多種,下列選項中(C)不是軟件生存周期模型。
A.螺旋模型 B.增量模型 C.功能模型 D.瀑布模型
2、 瀑布模型的關鍵不足在於( D )。
A.過於簡單 B.各個階段需要進行評審
C.過於靈活 D.不能適應需求的動態變更
3、下列模塊獨立性最強的是( A)
A.非直接耦合 B.數據耦合 C.公共耦合 D.內容耦合
4、需求分析階段的任務是確定( D)。
A.軟件開發方法 B.軟件開發工具
C.軟件開發費 D.軟件系統的功能
5、下列選項中,不屬於模塊間耦合的是(B)。
A.內容耦合 B.異構耦合
C.控制耦合 D.數據耦合
6、在類圖中,“#”表示的可見性是(B)
A.Public B.Protected C.Private D.Package
7、軟件特性中,一個軟件能再次用於其他相關應用的程度稱為( B )。
A.可移植性 B.可重用性
C.容錯性 D.可適應性
8、UML 是軟件開發中的一個重要工具,它主要應用於哪種軟件開發方法 ( C )
A .基於瀑布模型的結構化方法 B .基於需求動態定義的原型化方法
C .基於對象的面向對象的方法 D .基於數據的數據流開發方法
9、面向對象的分析方法主要是建立三類模型,即( D )。
A.系統模型、ER 模型、應用模型
B.對象模型、動態模型、應用模型
C.E-R模型、對象模型、功能模型
D.對象模型、動態模型、功能模型
10、數據耦合、公共耦合、標記耦合、控制耦合的耦合性從低到高的順序是( B )
A.數據、公共、標記、控制 B.數據、標記、控制、公共
C.控制、數據、標記、公共 D.控制、數據、公共、標記
二、判斷題
( × )(1)開發軟件就是編寫程序。
( √ )(2)快速原型模型可以有效地適應用戶需求的動態變化。
( × )(3)軟件需求分析的任務是建立軟件模塊結構圖。
( × )(4)進行總體設計時加強模塊間的聯系。
( √ )(5)盡可能使用高級語言編寫程序。
( × )(6)編程序時應盡可能利用硬件特點以提高程序效率。
( × )(7)數據字典是對數據流圖中的數據流,加工、數據存儲、數據的源和終點進行詳細定義。
( √ )(8)模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助於得到高內聚,低耦合度的軟件產品。
( × )(9)系統測試的主要方法是白盒法,主要進行功能測試、性能測試、安全性測試及可靠性等測試。
( × )(10)軟件測試是要發現軟件中的所有錯誤。
三、問答題
1、試舉例說明聚集關系中共享聚集和組合聚集有何不同?
如果在聚集關系中部分對象可同時參與多個整體對象的構成,則該聚集稱為共享聚集。例如,一個課題組包含許多成員,每個成員又可以是另一個課題組的成員,則課題組和成員之間是一種共享聚集的關系。
如果部分對象完全隸屬於整體對象,並與整體對象共存,則該聚集稱為組合聚集。例如,在屏幕上一個窗口由文本框、列表框、按鈕和菜單等構成,且一旦關閉了窗口,則各組成部分也消失,則窗口和它的組成部分之間的關系為組合聚集關系。
2、什么是白盒測試?什么是黑盒測試?
答:白盒測試又稱為結構測試,它的前提條件是可以看成將程序放在一個透明的白盒子中,也就是完全了解了軟件系統的結構和整個處理過程。黑盒測試又叫功能測試、數據驅動測試或基於需求規格說明書的功能測試。該類測試注重於測試軟件的功能性需求。
3、簡述你對模塊獨立性的理解。
模塊獨立性指每個模塊只完成系統要求的獨立的子功能,並且與其他模塊的聯系最少且接口簡單,模塊內部各部分及模塊間的關系的--種衡量標准,由內聚和耦合來度量。
模塊獨立性的重要性:具有獨立的模塊的軟件比較容易開發出來。這是由於能夠分割功能而且接口可以簡化;獨立的模塊比較容易測試和維護。這是因為相對說來,修改設計和程序需要的工作量比較小,錯誤傳播范圍小,需要擴充功能時能夠"插入"模塊。總之,模塊獨立是優秀設計的關鍵,而設計又是決定軟件質量的關鍵環節。