如何評測軟體工程知識技能水平?

2022-03-22 03:02:28 字數 4597 閱讀 9888

如何測評軟體工程知識技能水平

1.程式設計能力

對乙個給定的問題,能快速的用自己掌握的程式語言解決問題,能解決實際問題。當然,擁有良好的程式設計能力也是找到乙個好工作的必備技能。

2.具有軟體工程的概念

基礎軟體工程師從事的工作相對於系統分析師和高階程式設計師要單純一些,但是 他們仍然是整個軟體工程中重要的一環,他們同樣需要具有軟體工程的概念:從專案需求分析開始到安裝除錯完畢,軟體工程師都必須能清楚地理解和把握這些過程,並能勝任各種環節的具體工作。

3.學習能力

學習能力顯然是必須的,當出現乙個可以落地的新技術,且新技術能解決公司或個人面臨的問題,且在能力範圍內,具有良好的學習能力顯然是必須。而且如今是學習型社會,提倡活到老學到老,只有具備良好的學習能力,才能不被社會淘汰,才能成為乙個對社會有益的人。

4.團隊協作

當今社會是合作型社會,良好的團隊協作能力顯然是必須的,好的團隊協作能發揮出1+1>2的能力,而低效的團隊協作就會像故事裡說的那樣,乙個和尚挑水吃,兩個和尚抬水吃,三個和尚沒水吃。良好的團隊協作能力是保證乙個團隊高效執行的基礎,為個人,為企業,創造更多的價值。

5.跨領域解決問題

現今各個行業結合越來越緊密,這就需要我們具備跨專業的融合能力,能將自己的知識結合其他領域的知識,很好的運用起來,這樣才能開發出讓使用者滿意讓公司放心的好產品,因為隨著經濟的發展,使用者的需求層次也在不斷提高,這就要求我們也要提公升自己的素質,服務於使用者。

高階軟體工程期末試題

一、選擇題

1)物件導向的主要特徵除標識唯一性,分類性,封裝性,模組獨立性,還有( a )。

a. 多型性  b. 完整性

c. 可移植性  d. 相容性

解析:物件導向主要有四大特性,分別為:抽象、封裝、繼承、多型。

2)在物件導向的設計中,我們應遵循的設計準則除了模組化、抽象、低耦合、高內聚以外,還有( b )。

a. 隱藏複雜性  b. 資訊隱藏

c. 相容性  d. 類的開發 

解析:還有可重用

3)下列哪個階段不屬於軟體生存週期的三大階段(c )。

a、計畫階段  b、開發階段

c、編碼階段   d、維護階段

解析:軟體週期三大簡化階段為計畫階段、開發階段、維護階段,其中維護最為耗時。

4)下面哪個不屬於物件導向的思想(d )。

a.封裝  b.繼承

c.多型  d.耦合

解析:無

5)資料耦合、公共耦合、標記耦合、控制耦合的耦合性從低到高的順序是(  b   )。

a.資料、公共、標記、控制         b.資料、標記、控制、公共

c.控制、資料、標記、公共         d.控制、資料、公共、標記

6)物件導向的分析方法主要是建立三類模型,即( d  )。

a.系統模型、er 模型、應用模型

b.物件模型、動態模型、應用模型

c.e-r模型、物件模型、功能模型

d.物件模型、動態模型、功能模型

解析:物件導向的分析方法主要是建立物件模型、動態模型、功能模型。

7)某企業財務系統的需求中,屬於功能需求的是(a)。

a.每個月特定的時間發放員工工資

b.系統的響應時間不超過3秒

c.系統的計算精度符合財務規則的要求

d.系統可以允許100個使用者同事查詢自己的工資

解析:只有a的描述中屬於功能方面

8)瀑布模型的存在問題是( b  )。

a.使用者容易參與開發          b.缺乏靈活性

c.使用者與開發者易溝通        d.適用可變需求

解析:瀑布模型的問題是靈活性差,不容易適應使用者需求的變化,d剛好說法錯誤。

9)測試的關鍵問題是(   d  )。

a. 如何組織對軟體的評審     

b. 如何驗證程式的正確性       

c. 如何採用綜合策略         

d. 如何選擇測試用例

解析:測試的關鍵問題是如何選擇測試用例

10)軟體測試中根據測試用例設計的方法的不同可分為黑盒測試和白盒測試兩種, 下列說法正確的是( d)

a. 前者屬於靜態測試, 後者屬於動態測試 b. 都屬於靜態測試

c. 前者屬於動態測試, 後者屬於靜態測試 d. 都屬於動態測試

解析:黑盒測試和白盒測試都屬於動態測試。

11)以下說法錯誤的是(a)

a.物件導向分析與物件導向設計的定義沒有明顯區別

b.從物件導向分析到物件導向設計,是乙個逐漸擴充模型的過程

c.在實際的軟體開發過程中,物件導向分析與物件導向設計的界限是模糊的

d.物件導向分析和物件導向設計活動是乙個多次反覆迭代的過程

解析:軟體開發的分析過程就是分析系統需求的過程,分析工作主要包括理解、表達和驗證。物件導向分析的關鍵是識別問題域內的物件及其關係。分析的任務基本完成後,下一步則是將分析的成果用於設計中。就是根據成本與要求,規劃出系統應如何實現的問題。所以a中「分析與設計的定義沒有明顯區別」的說法是不正確的。

12)軟體的結構化設計(sd)方法中,一般分為概要設計和詳細設計兩階段,其中詳細設計主要是要建立( c )。

a、軟體結構  b、軟體過程

c、軟體模型  d、軟體模組

解析:結構化設計又可以分為總體(概要)設計和詳細設計。在總體設計中,需要明確整個系統的結構並進行模組的劃分,同時需要確定每個模組的功能、介面及各模組間的呼叫關係。詳細設計主要是建立軟體模型

二、填空題

1)列舉詳細設計中常用的圖形描述工具( 程式流程圖、盒圖、問題分析圖 )

2)軟體過程的基本活動是分析、設計(實現)(測試)、演化

3)軟體工程的3個要素是(過程、方法、工具)

4)耦合度中最鬆散的是(非直接耦合)

三、名詞解釋

請用自己的語言解釋下列名詞

1)內聚

解析:標誌著乙個模組內各個元素彼此結合的緊密程度

2)設計模式

解析:設計模式是對軟體工程中普遍存在(反覆出現)的各種問題,所提出的解決方案。設計模式並不直接用來完成**的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。

3)模組化

解析:把程式劃分成獨立命名且可獨立訪問的模組,每乙個模組完成乙個功能,把這些模組整合起來構成乙個整體,可以完成指定的功能滿足使用者的需求

4)重構

解析:重構就是通過調整程式**改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。

四、簡答題

1)說出3你所熟悉的設計模式,並簡要描述。

解析:介面卡(adapter)模式:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。

單例(singleton)模式:某個類只能生成乙個例項,該類提供了乙個全域性訪問點供外部獲取該例項,其拓展是有限多例模式。

原型(prototype)模式:將乙個物件作為原型,通過對其進行複製而轉殖出多個和原型類似的新例項。

工廠方法(factory method)模式:定義乙個用於建立產品的介面,由子類決定生產什麼產品。

建造者(builder)模式:將乙個複雜物件分解成多個相對簡單的部分,然後根據不同需要分別建立它們,最後構建成該複雜物件。

**(proxy)模式:為某物件提供一種**以控制對該物件的訪問。即客戶端通過**間接地訪問該物件,從而限制、增強或修改該物件的一些特性。

2)軟體測試要經過哪些步驟 ?這些測試與軟體開發各階段之間有什麼關係 ?

解析:軟體測試要經過的步驟是:單元測試→整合測試→確認測試→系統測試。

單元測試對源程式中每乙個程式單元進行測試, 檢查各個模組是否正確實現規定的功能, 從而發現模組在編碼中或演算法中的錯誤。該階段涉及編碼和詳細設計文件。

整合測試是為了檢查與設計相關的軟體體系結構的有關問題, 也就是檢查概要設計是否合理有效。

確認測試主要是檢查已實現的軟體是否滿足需求規格說明書中確定了的各種需求。

系統測試是把已確認的軟體與其他系統元素 (如硬體、其他支援軟體、資料、人工等 )結合在一起進行測試。以確定軟體是否可以支付使用。

3)試著畫出網上選課系統的用例圖。

用例有:登陸;找回密碼;檢視課程資訊;按課程編號程式查詢;按課程名查詢;選擇課程;刪除已經選擇的課程;維護課程資訊。參與者有系統管理員和學生使用者。

解析:

五、應用題

根據下面的偽碼畫出為n-s圖和pad圖

void root ( float root1, float

root2 )

i = i +1

; }

輸出重根的方程的個數j;

}

解析:n-s圖:

pad圖

如何評測軟體工程知識技能水平?

一 選擇題 1.uml 是軟體開發中的乙個重要工具,它主要應用於哪種軟體開發方法 c a 基於瀑布模型的結構化方法 b 基於需求動態定義的原型化方法 c 基於物件的物件導向的方法 d 基於資料的資料流開發方法 解析 考察uml知識。2.軟體開發中常採用的結構化生命週期方法,由於其特徵而一般稱其為 a...

如何評測軟體工程知識技能水平

通過本學期對高階軟體工程課程的學習,我認為乙個軟體工程師的軟體工程知識技能水平高低主要體現在如下方面 能夠熟練的掌握程式設計師必備的工具 vscode vim git 正規表示式。熟悉程式設計規範。掌握單元測試的方法。熟悉linux環境下程式設計。能夠對業務進行需求分析。掌握策略模式 橋接模式 觀察...

如何評測軟體工程知識技能水平?

一 乙個軟體工程師的軟體工程知識技能水平高低主要體現在哪些方面 1 程式語言和演算法能力 程式語言是軟體工程師的必備節能,不同方向的開發需要使用到不同的程式語言,因此軟體工程師應該對各種程式語言都有一定的了解,同時要有至少兩門能夠熟練掌握的語言,並且 能深入理解各種程式設計思想,從而為以後的軟體開發...