一、 什麼是軟體工程師
軟體工程師英文是software engineer,是從事軟體職業的人員的一種職業能力的認證,通過它說明具備了工程師的資格。軟體工程師是從事軟體開發相關工作的人員的統稱。
主要工作內容包括:
指導程式設計師的工作;
參與軟體工程系統的設計、開發、測試等過程;
協助工程管理人保證專案的質量;
負責工程中主要功能的**實現;
解決工程中的關鍵問題和技術難題;
協調各個程式設計師的工作,並能與其它軟體工程師協作工作。
還要編寫各種各樣的軟體說明書,如:需求說明書,概要說明書等
考試科目工程師是中級職稱,考試的題目包括了計算機體系結構、軟體工程、資料庫、資料結構、編譯原理等計算機學科的基礎課程
二、 軟體工程師的軟體工程知識技能水平主要體現
對於軟體工程的能力要求也是多樣性的、多方面的,對於不同崗位的具體要求會有所差別,但基本要求能力都是相同的。基本要求及主要體現如下:
程式語言能力
作為一名專業的軟體工程師,一方面,是否掌握了程式設計師的基本功:鍵盤輸入速度,快捷鍵,編譯和除錯工具等,熟練掌握常用的工具集—vscode/vim、正規表示式等;另一方面,應該能夠熟練掌握基礎程式語言,並且能夠深入理解oop、ooa、ood等程式設計思想。精通一門程式語言能為以後的軟體開發打下堅實的基礎。
編碼能力
這裡說的編碼可不是照著書本敲**,而是能夠獨立的運用**,編寫乙個程式出來,而是嚴格規範的**風格,合理使用空格、空行、縮排、注釋,**邏輯清晰,沒有冗餘和重複,遵從架構與設計原則,熟練使用各種程式設計庫和api,編寫出簡潔、規範、可讀性強、健壯安全的**。
學習能力
it技術可謂是更新換代最快的了,從市面上的電腦和手機就可以看出來。所以,只依靠自己之前學到的知識,很快就會被這個時代所淘汰,軟體工程師應具備的技能裡很重要的一點就是學習能力。因為只有具備了學習能力,才能在離開學校之後仍然能夠獨立地學習最新的技術,同時能夠自主的發現現在有什麼新技術,市場上流行的技術元素與市場需求的變化。
業務能力
熟悉解決問題的流程:分析問題、形成方案、探索嘗試解決問題、單元測試、重構程式以滿足不斷變化的需求,並在理解業務的基礎上進行需求分析,編寫的**結構清晰,具有良好的可靠性、魯棒性、可移植性和可重用性,滿足高內聚低耦合的要求,準確地表達出使用者的需求,開發出高質量的軟體。
設計能力
乙個優秀的軟體工程師不僅僅具備紮實的專業知識與技能,而且還要具備一定的設計能力。因為只有這樣,才能使乙個軟體或者應用更加完美,更加容易受到人們的歡迎,從而獲得更廣闊的市場。
團隊協作能力
軟體開發並不是孤軍奮戰,很多時候乙個軟體需要幾個人一起開發,這個時候就需要大家齊心協力,共同努力了。這時候,作為軟體工程師就需要具備一定的團隊協作能力了,來保證每個人都負責相應的方向,不能只為了突出自己而不顧整個團隊。
健康的心理素質
開發軟體本身就是一項艱苦的腦力和體力勞動,軟體工程師開發成功乙個軟體,要經過反覆修改,要花費大量的進間和精力,這些都有要求軟體工程師有較好的心理承受能力。很多學生往往只注重計算機專業知識的培養,而忽視了語言表達能力和溝通能力、工程經濟分析能力,以及心理素質的培養。
三、 針對以上內容提供乙份軟體工程知識技能水平的測評試題
一、 選擇題
(1)物件導向的分析方法主要是建立三類模型,即( )。
a.系統模型、er 模型、應用模型
b.物件模型、動態模型、應用模型
c.e-r模型、物件模型、功能模型
d.物件模型、動態模型、功能模型
(2)uml是軟體開發中的乙個重要工具,它主要應用於哪種軟體開發方法( ) 。
a.基於瀑布模型的結構化方法
b.基於需求動態定義的原型化方法
c.基於物件的物件導向的方法
d.基於資料的資料流開發方法
(3)在軟體生命期中,佔工作量比例最大的是( ) 。
a.可行性研究
b.建立系統的結構
c.編寫程式
d.維護
(4)原型化方法是動態確定軟體需求的方法之一,該方法適應於()的系統
a、需求不確定性高
b、需求確定
c、結構簡單
d、可移植性好
(5)軟體設計中模組劃分應遵循的準則是()
a.低內聚低耦合
b.高耦合高內聚
c.高內聚低耦合
d.以上說法均錯誤
二、 簡答題
(1)靜態模型和動態模型的區別是什麼?並說明每種模型的作用和用途。(來自教學ppt)
乙個靜態過程模型描述乙個過程的基本元素。還描寫輸入從**轉換為輸出。
乙個動態過程模型扮演乙個過程,允許使用者看到產品隨著時間的推移而如何改變。
對於確定過程的基本元素,乙個靜態模型是有用的。
對於過程的變化是如何隨著時間的推移而影響過程的結果,乙個動態模型可能會對這種模仿有用。
(2)瀑布模型與原型模型分別適用於開發哪些軟體?
瀑布模型與原型模型分別適用於開發哪些軟體瀑布模型適合於需求穩定,而且可以預先指定的大型系統工程專案。
原型模型適合於需求模糊或者隨時間變化的中小型專案。
(3)說出3你所熟悉的設計模式,並簡要描述。
單例(singleton)模式:某個類只能生成乙個例項,該類提供了乙個全域性訪問點供外部獲取該例項,其拓展是有限多例模式。
原型(prototype)模式:將乙個物件作為原型,通過對其進行複製而轉殖出多個和原型類似的新例項。
工廠方法(factory method)模式:定義乙個用於建立產品的介面,由子類決定生產什麼產品。
建造者(builder)模式:將乙個複雜物件分解成多個相對簡單的部分,然後根據不同需要分別建立它們,最後構建成該複雜物件。
**(proxy)模式:為某物件提供一種**以控制對該物件的訪問。即客戶端通過**間接地訪問該物件,從而限制、增強或修改該物件的一些特性。
介面卡(adapter)模式:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。
如何評測軟體工程知識技能水平?
如何測評軟體工程知識技能水平 1.程式設計能力 對乙個給定的問題,能快速的用自己掌握的程式語言解決問題,能解決實際問題。當然,擁有良好的程式設計能力也是找到乙個好工作的必備技能。2.具有軟體工程的概念 基礎軟體工程師從事的工作相對於系統分析師和高階程式設計師要單純一些,但是 他們仍然是整個軟體工程中...
如何評測軟體工程知識技能水平?
一 選擇題 1.uml 是軟體開發中的乙個重要工具,它主要應用於哪種軟體開發方法 c a 基於瀑布模型的結構化方法 b 基於需求動態定義的原型化方法 c 基於物件的物件導向的方法 d 基於資料的資料流開發方法 解析 考察uml知識。2.軟體開發中常採用的結構化生命週期方法,由於其特徵而一般稱其為 a...
如何評測軟體工程知識技能水平
通過本學期對高階軟體工程課程的學習,我認為乙個軟體工程師的軟體工程知識技能水平高低主要體現在如下方面 能夠熟練的掌握程式設計師必備的工具 vscode vim git 正規表示式。熟悉程式設計規範。掌握單元測試的方法。熟悉linux環境下程式設計。能夠對業務進行需求分析。掌握策略模式 橋接模式 觀察...