您認為一個軟件工程師的軟件工程知識技能水平高低主要體現在哪些方面
一個軟件工程師,首先要具備良好的編程能力,這是一名程序員必要的工具;其次,要有一個良好的溝通能力,在軟件設計過程中往往是以團隊形式工作的,因此需要有一個良好的團隊配合,這是基於溝通能力的;再者,要有一定的學習能力,軟件設計往往是跨領域的,如需要你設計一個醫療用的軟件,這需要學習能力作為基礎,才能夠更好的了解該領域的知識,獲取需求;最后,需要一個持之以恆的努力,軟件設計不是一朝一夕能夠完成的,要能夠耐得住寂寞,守得住電腦。
一、選擇題(2’×10)
1.某企業財務系統的需求中,屬於功能需求的是()。
A.每個月特定的時間發放員工工資
B.系統的響應時間不超過3秒
C.系統的計算精度符合財務規則的要求
D.系統可以允許100個用戶同事查詢自己的工資
答案A
解析:功能需求:系統要做什么,在何時做,在何時以及如何修改升級。
選自中級軟件設計師考試2017年試題
2.系統交付用戶使用后,為了改進系統的圖形輸出而對系統進行修改的維護行為屬於()維護。
A.改正性 B.適應性 C.改善性 D.預防性
答案C
解析:正確性維護:改正沒有發現的錯誤
適應性維護:技術,需求發生了變化而引起的維護
完善性維護:擴展功能和完善性能
預防性維護:提高可靠性和可維護性
選自中級軟件設計師考試2017年試題
3.在面向對象方法中,將邏輯上相關的數據以及行為綁定在一起,使信息對使用者隱蔽稱為()。
A.抽象 B.繼承 C.封裝 D.多態
答案C
解析:封裝是指利用抽象數據類型將數據和基於數據的操作封裝在一起,使其構成一個不可分割的獨立實體, 數據被保護在抽象數據類型的內部, 盡可能地隱藏內部的細節, 只保留一些對外接口使之與外部發生聯系。
選自中級軟件設計師考試2017年試題
4.當類中的屬性或方法被設計為private時,()可以對其進行訪問。
A.應用程序中所有方法 B.只有此類中定義的方法
C.只有此類中定義的public方法 D.同一個包中的類中定義的方法
答案B
解析:只有此類中定義的方法可以對私有成員進行訪問。
選自中級軟件設計師考試2017年試題
5.采用繼承機制創建子類時,子類中()。
A.只能有父類中的屬性 B.只能有父類中的行為
C.只能新增行為 D.可以有新的屬性和行為
答案D
解析:子類相對於父類,要更加特殊。所以會有新的成員來描述其特殊。
選自中級軟件設計師考試2017年試題
6.面向對象分析過程中,從給定需求描述中選擇()來識別對象。
A.動詞短語 B.名詞短語 C.形容詞 D.副詞
答案B
解析:名詞短語暗示類及其屬性動詞和動詞短語暗示對職責或操作。
選自中級軟件設計師考試2017年試題
7.測試網絡連通性通常采用的命令是( ) 。
A. Nestar B. Ping C. Mscinfug D. Cmd
答案B
解析:ping命令還有trace命令是用來測試網絡連通性的。
選自計算機網絡課本
8.在一台安裝好 TCP/IP 協議的計算機上, 當網絡連接不可用時, 為了測試編寫好的網絡程序, 通常使用的目的主機 IP 地址為( ) 。
A. 0.0.0.0 B. 127.0.0.1 C. 10.0.0.1 D. 210.225.21.255/24
答案B
解析:127.0.0.1是主機用來做環回測試的
選自計算機網絡課本
9.類( )之間存在着一般和特殊的關系。
A. 汽車與輪船 B. 交通工具與飛機 C. 輪船與飛機 D. 汽車與飛機
答案B
解析:本題考查類的相關知識。飛機屬於交通工具的一種。
選自網絡
10.UML是軟件開發中的一個重要工具,它主要應用於哪種軟件開發方法( )
A、基於瀑布模型的結構化方法 B、基於需求動態定義的原型化方法
C、基於對象的面向對象的方法 D、基於數據的數據流開發方法
答案C
解析:UML使用面向對象設計的的建模工具
選自軟件工程導論課本
二、判斷題(2'×5)
1. 划分模塊可以降低軟件復雜度和工作量,所以應該將模塊划分得越小越好。(F )
2. 用CASE環境或程序自動生成工具來自動生成一部分程序。( T)
3. 目前我國還沒有頒布軟件開發標准。(F)
4. 耦合度是對軟件結構中模塊間關聯程度的一種度量。在設計軟件時應追求盡可能緊密的耦合的系統。(F)
5. 在面向對象設計階段則着重完成“如何做”的問題,也就是着重考慮對象的實現細節。(T)
三、簡答題 (5’×8)
1、軟件的組成有哪些? 什么是軟件工程?
軟件=數據+程序+文檔
軟件工程就是用科學的知識和技術原理來定義,開發,維護軟件的一門學科。
2.什么是軟件生存周期?它有哪幾個活動?
軟件生存周期:一個軟件從提出開發要求開始直到該軟件報廢為止的整個時期。
包括:可行性分析和項目開發計划,需求分析,概要設計,詳細設計,編碼,測試,維護。
3.有哪些常見的軟件生存周期模型?
主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基於知識的模型,變換模型。
4.什么是基線。
基線:是軟件生存期中各開發階段的一個特定點,它的作用是把開發各階段工作的划分更加明確化,使本來連續的工作在這些點上斷開,以便於檢查與肯定階段成果。
5.顧客在自動櫃員機中插入銀行卡,執行提款的服務項目;銀行職員要求自動櫃員機打印所有的提款數據。畫出自動櫃員機的Use Case圖。?
6.衡量模塊獨立性的兩個定性標准是什么?好的軟件設計模塊間的標准是怎樣的?
內聚和耦合
高內聚低耦合
四、設計題(10'×3)
1.復印機。一開始在閑置狀態,收到復印命令開始復印,復印完回到閑置狀態。缺紙則到缺紙狀態並發出警報,放入紙后回到閑置狀態。卡紙則到卡紙狀態並發出警報,一旦修好回到閑置狀態(畫出狀態轉換圖)。
2.某廠對部分職工重新分配工作的政策是:年齡在20歲以下者,初中文化程度脫產學習,高中文化程度當電工;年齡在20歲至35歲之間者,中學文化程度男性當鉗工,女性當車工,大學文化程度都當技術員;年齡在35歲以上者,中學文化程度當材料員,大學文化程度當技術員。請根據以上材料分別采用偽碼和判定樹兩種方式描述之。
偽碼表示:
IF 年齡<20 THEN IF 文化程度=初中 THEN 脫產學習 ELSE 工作為電工 ENDIF ELSE IF 年齡≤35 THEN IF 文化程度=大學 THEN 工作為技術員 ELSE IF 性別=男性 THEN 工作為鉗工 ELSE 工作為車工 ENDIF ENDIF ENDIF ELSE IF 文化程度=大學 THEN 工作為技術員 ELSE 工作為材料員 ENDIF ENDIF
判定樹表示:
3.比較下列兩段語句,從編碼風格的角度分析其優、劣。
程序段一:
/ position_x is the position x of object; position_y is the position y of object; / if a>b then a=b else if position_x>position_y then b=position_y else a=position_x end if end if
程序段二:
if a>b then if x>y then b=y else a=x end if else a=b end if
答案:程序段一比程序段二好(1)開頭給出了序言性注視(2)使用了縮進使程序結構更清晰(3)變量名定義更清楚