通常情況下,軟件工程師需要具備以下幾個方面的知識結構:
第一:操作系統知識。操作系統知識是軟件工程師必須具備的重要內容,Web開發領域可能會使用到Windows系列操作系統,大數據和物聯網方向要使用到Linux系列操作系統,掌握操作系統的體系結構是進行軟件研發的重要基礎。主要內容包括資源管理、任務調度、並發管理、權限管理、網絡管理等內容。
第二:編程語言和算法。編程語言是軟件工程師必備的技能,不同方向的開發需要使用到不同的編程語言,比如Web開發可能會使用PHP、Python、Java等語言,而大數據可能會使用Java、R、Scala等語言,而物聯網開發可能會使用到C、C++等編程語言。通常來說,軟件工程師往往需要掌握多門編程語言,以應對不同的開發環境。算法是軟件工程師的重點知識結構,因為軟件研發說到底就是個數學問題,所以算法的掌握情況往往能夠決定軟件工程師的成長高度。當然,對於應用級軟件工程師來說,也有可能不會接觸到更多的算法。
第三:領域知識。不同開發領域需要掌握不同的知識結構,比如大數據軟件工程師往往需要掌握Hadoop、Spark平台的使用,而Web開發工程師往往還需要掌握前后端開發技術,包括一系列Web開發框架的使用等等。
一、選擇題
1. 需求分析最終結果是產生(B)
(https://blog.csdn.net/weixin_38004638/article/details/80891465)
A.項目開發計划
B.需求規格說明書
C.設計說明書
D.可行性分析報告
2.軟件開發過程中,需求活動的主要任務是(B)。
(https://blog.csdn.net/qq_41814324/article/details/95237670)
A.給出軟件解決方案
B.定義需求並建立系統模型
C.定義模塊算法
D.給出系統模塊結構
3. 內聚是從功能角度來度量模塊內的聯系,按照特定次序執行元素的模塊屬於(C)
(https://blog.csdn.net/qq_41814324/article/details/95237670)
A.邏輯內聚
B.時間內聚
C.過程內聚
D.順序內聚
4. 耦合是軟件各個模塊間連接的一種度量。一組模塊都訪問同一數據結構應屬於(B)方式。
(https://blog.csdn.net/qq_41814324/article/details/95237670)
A.內容耦合
B.公共耦合
C.外部耦合
D.控制耦合
5. 為了提髙模塊的獨立性,模塊之間最好是(D)
(https://blog.csdn.net/qq_41814324/article/details/95237670)
A.公共耦合
B.控制耦合
C.內容耦合
D.數據耦合
6. 面向對象的主要特征除唯一性、繼承性、多態性外,還具有(A)
(https://blog.csdn.net/weixin_38004638/article/details/80891465)
A.封裝性
B.移植性
C.完整性
D.兼容性
7.下列四個軟件可靠性定義中正確的是(D)。
A、軟件可靠性是指軟件在給定的時間隔內,按用戶工求成功運行的概率
B、軟件可靠性是指軟件在給定的時間間隔內,按設計要求成功運行的概率
C、軟件可靠性是指軟件在正式投入運行內,按規定說明書的規定成功運行的概率
D、軟件可靠性是指軟件在給定時間間隔內,按規格說明書的規定成功運行的概率
8.在軟件生命期中,占工作量比例最大的是(D)。
A、可行性研究 B、建立系統的結構 C、編寫程序 D、維護
9.用於概要設計所采用的描述手段是(B)。
A、DFD B、SC圖(系統結構圖) C、框圖 D、數據結構圖
10.數據庫設計全過程中的關鍵是(B)。
A、分析用戶要求 B、建立概念性數據模型
C、邏輯設計 D、物理設計
11.面向對象設計時,對象信息的隱藏主要是通過(A)實現的。
A、對象的封裝性 B、子類的繼承性
C、系統模塊化 D、模塊的可重用
12.下面不屬於軟件工程的基本原則的是(D)。
A、模塊化 B、抽象 C、局部化 D、自頂向上
13.在用面向對象觀點建立起的3種模型中,(B)是最基本、最重要、最核心的。
A、動態模型 B、對象模型 C、功能模型 D、狀態模型
14.結構化分析SA是軟件開發需求分析階段所使用的方法,(B)不是SA所使用的工具。
A.DFD圖 B.PAD圖 C.結構化英語 D.判定表
15.在面向對象的設計中,我們應遵循的設計准則除了模塊化、抽象、低耦合、高內聚以外,還有(B)
A、 隱藏復雜性 B、 信息隱藏 C、 即存類的重用 D、 類的開發
16.耦合度也可以分為七級:其中最松散的耦合是(A)。
A. 非直接耦合 B. 數據耦合 C. 特征耦合 D. 控制耦合
二、名詞解釋(https://wenku.baidu.com/view/7694f5eb9b6648d7c1c746d1.html)
1.設計模式
解答:設計模式是普通面向對象設計問題的解決方案,這類問題以一組交互類的形式出現,用戶根據需要定制這些交互類以形成專門的設計。所有的設計模式均可以從四個方面加以描述:模式名稱、問題描述、解決方案和效果。
2.結構化方法
結構化是一種傳統的軟件開發方法,其總的指導思想是自頂向下、初步求精、單入口、單出口、其基本原則是抽象和功能分解。
三、簡答題
1.模塊設計規則:
(https://blog.csdn.net/weixin_38004638/article/details/80891465)
解答:
(1)改進軟件結構提高模塊獨立性。
(2)模塊規模應該適中。
(3)深度、寬度、扇出和扇入都應適當。
(4)模塊的作用域應該在控制域之內。
(5)力爭降低模塊接口的復雜程度。
(6)設計單入口單出口的模塊。
(7)模塊功能應該可以預測。
2. 軟件危機的原因:
(https://blog.csdn.net/qq_41814324/article/details/95237670)
解答:
(1)軟件的規模越來越大,結構越來越復雜。
(2)軟件開發管理困難而復雜。
(3)軟件開發費用不斷增加。
(4)軟件開發技術落后。
(5)生產方式落后。
(6)開發工具落后,生產率提高緩慢。
3.某一新聞管理系統主要用來發布新聞,管理員只需要一個,登錄后可以在后台發布性溫。任何人可以瀏覽新聞,瀏覽者可以注冊成為系統會員,組冊后可對新聞進行評論。管理員在后台可以對新聞、評論、注冊會員進行管理,如修改、刪除等。
請畫出該新聞管理系統的用例圖。
(https://max.book118.com/html/2018/1010/8050014031001126.shtm)
4. 根據模塊的作用范圍與控制范圍的原則,判定a、b兩圖的正確性,並簡單闡述原因。
(https://blog.csdn.net/weixin_38004638/article/details/80891465)
解答:圖a不滿足作用范圍應與控制范圍的原則,模塊F的作用范圍不在控制范圍之內。 圖b的模塊設計合理。
控制范圍:是模塊本身和他下屬模塊的集合。
作用范圍:模塊中的一個判定影響的所有模塊的集合。