如何測評軟件工程知識技能水平?
一個軟件工程師的軟件工程知識技能水平高低主要體現在哪些方面?
(1)掌握常用的編程語言、熟悉語言的特性和使用:
軟件人員的一個重要職責是把用戶的需求功能用某種計算機語言予以實現。編碼能力直接決定了項目開發的效率。這就要求軟件工程師至少精通一門編程語言,比如當前國內企業常用的C/C++、VB和國際上最流行的Java語言,熟悉它的基本語法、技術特點和API(應用程序接口)。
(2)擁有扎實的計算機基礎知識:
在解決實際問題時,常需要用到操作系統、計算機網絡、計算機組成原理等方面的計算機基礎知識,這些知識不僅是思維和理論層面的,更需要靈活運用於實際遇到的計算機問題。
(3)自覺的規范意識和團隊精神:
隨着軟件項目規模越來越大,僅僅依靠個人力量已經無法完成工作,因此,現代軟件企業越來越重視團隊精神。企業追求的不僅僅是軟件工程師的專業技能,也對軟件工程師的團隊合作能力有着高的要求。
(4)良好的語言表達能力和溝通能力:
在軟件開發過程中,不僅是程序員之間要進行交流合作,程序員也可能要與產品人員,測試人員,運維人員,銷售人員等其他各個部門的人溝通交流。所以需要有好的語言組織和表達的能力。
試題
一、名詞解釋
1.原型(Prototype)
參考答案:一種部分開發的產品,用來讓用戶和開發者共同研究,提出意見,為最終產品定型
2.面向對象(Object Orientation)
參考答案:是一種軟件開發方法,它將問題和方法組織成一系列獨立的不連續的對象,數據結構
和動作都被包括在內。
3.軟件可維護性(maintainability)
參考答案:是指在給定的使用條件(預定的時間間隔、維護程序、維護資源之下進行維護)下,維護活動能被執行的概率。
4.耦合(Coupling)
參考答案:軟件模塊之間的相互依賴性。
5.用例(Use case)
參考答案:通過建立用戶、外部項、其他實體的對話模型,而對系統將要完成的功能進行
描述或刻畫。
6.抽象(Abstraction)
參考答案:基於某種歸納水平的問題描述,他是我們將注意力集中在問題的的關鍵方面而非細節。
7.功能性需求(Functional Requirement)
參考答案:描述系統內部功能或系統與外部環境的交互作用。涉及系統輸入應對,實體狀態變化,輸出結果,設計約束與過程約束等。
二、判斷題
1. ( ) 軟件測試只能證明程序有錯誤,不能證明程序沒有錯誤。
2. ( ) 開發初始原型的目的是為了確定用戶的基本需求。
3. ( ) 盡可能推遲程序的邏輯實現是按照瀑布模型開發軟件的一條重要的指導思想。
4. ( ) 在軟件開發的各個階段進行過程中,增加人員肯定會對整個項目提前完成有好處。
5. ( ) 如果測試數據滿足條件覆蓋,則必然滿足判定覆蓋。
6. ( ) 一般來說,模塊的內聚程度越高,他們之間的耦合程度也就越高。
7. ( )在程序調試時,改正該錯誤比找出錯誤的位置和性質更難。
8. ( ) 因為詳細設計已經把模塊的內部邏輯描述的相當清晰,所以編程時不必再采用統一的標准和約定。
9. ( ) 信息隱蔽原則禁止在模塊外使用在模塊接口說明的關於該模塊的信息。
10.( ) 開發人員和客戶對軟件質量因素的認可是完全一致的。
參考答案:
1. √ 2. x 3. x 4. x 5. x 6. x 7. x 8. x 9. x 10. x
三、選擇題
1. 下列選項不屬於瀑布模型的優點的是 _________。
A.可迫使開發人員采用規范的方法
B.嚴格的規定了每個階段必須提交的文檔
C.要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證
D.支持后期的變動
2. 在下列說法中, 是造成軟件危機的主要原因。
① 用戶使用不當 ② 軟件本身特點 ③ 硬件不可靠
④ 對軟件的錯誤認識 ⑤ 缺乏好的開發方法和手段 ⑥ 開發效率低
A:①③⑥ B:①②④ C:③⑤⑥ D:②⑤⑥
3.需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設計的限制和軟件同其他系統元素的接口細節,定義軟件的其他有效性需求,細化軟件要處理的數據域。需求可以分為功能需求、非功能需求、設計約束三大類,其中________屬於設計約束。
A:系統必須完成自動統計功能。 B:系統要采用國有自主知識產權的中間件系統。
C:每筆查詢都必須在10秒內響應。 D:系統必須能夠自動記錄用戶的操作過程。
4.某軟件在應用初期運行在Windows XP環境中,現因某種原因,該軟件需要在UNIX環境中運行,而且必須完成相同的功能。為適應這個要求,軟件本身需要進行修改,而所需修改的工作量取決於該軟件的___________。
供選擇的答案:
A:可擴充性。 B:可靠性。 C:復用性。 D:可移植性。
5.軟件生命周期一般都被划分為若干個獨立的階段,其中占用精力和費用最多的階段往往是__________。
A.運行和維護階段 B. 設計階段 C.代碼實現階段 D. 測試階段
6.系統測試是將軟件系統與硬件、外設和網絡等其他因素結合,對整個軟件系統進行測試。__________不是系統測試的內容。
A:路徑測試。 B:可靠性測試。 C:安裝測試。 D:安全測試。
7.內聚是一種指標,表示一個模塊__________。
供選擇的答案:
A:代碼優化的程度。 B:代碼功能的集中程度。
C:完成任務的及時程度。 D:為了與其他模塊連接所要完成的工作量。
8.下列敘述中,與提高軟件可移植性相關的是___________。
供選擇的答案:
A:選擇時間效率高的算法。
B:盡可能減少注釋。
C:選擇空間效率高的算法。
D:盡量用高級語言編寫系統中對效率要求不高的部分。
9.在UML提供的圖中,可以采用___ (1)_____對邏輯數據庫模式建模;____(2)_____用於接口、類和協作的行為建模,並強調對象行為的時間順序;____(3)_____用於系統的功能建模,並強調對象的控制流。
供選擇的答案:
① A.用例圖 B.構件圖 C.活動圖 D.類圖
② A.協作圖 B.狀態圖 C.序列圖 D.對象圖
③ A.狀態圖 B.用例圖 C.活動圖 D.類圖
填入答案( (1): (2): (3): )
參考答案:1~5:DDBDA 6~8:ABD 9:DBC
四、簡答題
1、軟件開發與程序設計有何不同?
參考答案:軟件開發將軟件的開發過程分為若干階段,包括需求分析、系統設計、程序設計、編碼、測試等等,而程序設計僅是軟件開發的一個組成部分,並且軟件開發所指的軟件不同於一般程序,而是指大型程序及文檔。
2、列出類圖中各個類之間的各種基本關系
參考答案:UML類圖中之間關系的類型通常有5種:歸納、關聯、依賴、聚集和組合、泛化。
3、請列舉出用以衡量軟件質量的三方面因素及其基本含義。
參考答案:軟件產品的質量,軟件過程的質量,軟件的商業價值
4、簡述獲取需求時的三種類型。
參考答案:必須滿足的用戶需求,用戶熱切希望但不是必須的需求,技術上有可能實現但必須去掉的需求
5、列舉幾種常用的軟件設計模式。
參考答案:策略模式、橋接模式、觀察者模式、抽象工廠模式...
五、綜合題
寵物商店PetStore是一個集客戶購物、訂單處理、銷售統計等功能於一體的電子商務網站。以下是簡要的功能需求:
客戶分為匿名客戶和注冊客戶,對於注冊客戶以會員方式管理,登記並管理其個人信息,根據其消費積分分為金牌會員、銀牌會員、普通會員,以享受不同程度的優惠。
通過瀏覽器,匿名客戶可以查詢寵物;創建賬戶並登陸后才能夠使用購物車、創建訂單、提交訂單、通過信用卡支付等購物活動。每個客戶可以同時擁有多個訂單,但只能有一個購物車,訂單基於購物車內的商品創建。
寵物商店的工作人員能夠接受或拒絕客戶提交的訂單、處理訂單、發訂單給供應商、接受供應商返回的配送結果;還能夠統計銷售情況。
注冊客戶可以隨時查詢其訂單狀態,當訂單尚未處理時,可以取消訂單;訂單一旦開始處理,不允許客戶取消。
(1) 使用UML用例圖表達以上需求。
(2) 使用UML類圖描述此系統的對象模型。
參考答案:
(1)
(2)
以上部分引用自2005~2009年山東大學軟件工程期末試題