1. 軟體工程師應具備哪些知識體系
編程語言,資料庫(SQL),網路(TCP/IP),操作系統(Linux/Unix),編碼技術(讀《代碼大全》),軟體方法(OOP,SOA)
2. 軟體工程要學什麼課程!
不要把時間浪費在所謂的大學課程上,很多都是沒有營養的。其實軟體工程的知識體系也就是那樣,各個大學也是照著這個思路編排課程的。所以,自學的時候直奔主題就可以了。
軟體工程。包含兩個部分:軟體和工程。軟體是程序員做的,而工程是項目負責人管理、程序員實踐的。
軟體又包含兩部分:語法和演算法。語法,即要掌握某種編程語言。一般來講,要想工作中用的上,那麼面向過程的語言和面向對象的語言都得掌握。一般學C、C++、Java、Dephi等等。面向過程的程序比較好學,條目也很清晰。而面向對象的編程需要學兩方面的內容:語法本身和龐大的類庫。演算法,這是編程的靈魂。一般包括:數據結構和經典演算法。學無止境,一般性的工作話,掌握基本的就夠了,如果工作較復雜得多看看演算法方面的期刊。
工程。現代軟體越變越大,大型的編寫工作動不動就涉及萬人。工程的方法只是為了更好的組織、協調編寫過程。《軟體工程》本身就是一本書,很厚的。主要講軟體的生命周期,比較抽象和繁雜,但是規范的工作方式就是從這本書里來的。另外關注一些編程習慣的知識。這也是工程的一部分。
軟體只是計算機科學中的一種。所以,比如計算機基礎、計算機系統等等宏觀的知識也需要理解。特別是對於高級程序員,計算機運行的底層知識就更重要了。操作系統、80x86以及匯編語言是底層知識中的一部分。
軟體行業分工很多:網路編程、資料庫編程、應用程序編程、游戲編程以及操作系統編程等(中國似乎還沒有商業化的操作系統),研究任何一個都挺累人的。學習完上面的基礎知識後,就需要給自己選一個專業方向了。
建議一個學習流程。如果你什麼都沒有學。
1】計算機基礎知識。主要是硬體方面(大一水平)
2】同時,學習C語言,語法就夠了
3】透徹的理解C++需要用C語言去編寫一個圖形化的應用程序,但是,似乎也有一些直接上手的C++教材。學習語法,簡單的類庫。(現在就是大二的水平)
4】數據結構,C++表述的。《數據結構》的書裡面會有一些經典的演算法的。
5】操作系統、80x86與匯編(大三水平,大四幾乎沒有幾本書要念的。)
6】專業學習。一方面是專業上的知識,另一方面是類庫在專業上的使用。(我想,應該可以工作了,大學里關於這方面的知識是很淺薄的,僅僅建立一個概念而已。但是要拿來謀生的話,就需要學多點了,前面所有的積淀都是為了這個目標的)
先學著,自己有體會後,就能確定自己應該學到什麼程度。如果一切順利的話,大概兩年多一點就可以完成這個過程。
3. 軟體工程師需要掌握那些方面的知識結構
目前在IT行業對軟體工程師的要求比較高,企業都親睞那些具有較強復合性的人才,照現在的情況看來,要求軟體工程師具備以下知識結構:計算機基本概念、操作系統及開發平台、計算機網路、編程語言、資料庫技術、軟體工程管理、團隊協作
4. 軟體工程師必備知識
軟體工程師考試(高級)大綱
一、考試說明
1.考試要求:
(1)理解軟體工程管理的概念和任務;
(2)理解軟體生存期過程;
(3)理解軟體工程標准;
(4)掌握需求分析、測試、維護基本技術;
(5)掌握軟體度量、軟體配置管理方法;
(6)理解軟體復用概念;
(7)理解軟體質量保證的手段;
(s)理解軟體項目對人員的需求;
(9)理解軟體知識產權的基本知識。
2.通過本級水平考試的合格人員具有從事軟體系統分析與工程系統分析員、工程管理員的實際工作能力和業務水平。
3.本級水平考試范圍包括三個模塊,即模塊1、模塊2和模塊3。題型為單項選擇題十多項選擇題十綜合題。每個模塊考試時間為90分鍾。
二、考試范圍
模塊1:軟體工程技術
1.1軟體生存期過程
1.1.1軟體工程過程和軟體生存期
1.1.2軟體生存期模型
1.1.3國際標准:ISO/IECI2207信息技術一軟體生存期過程
1.2軟體需求分析
1.2.1需求分析的任務
1.2.2需求分析過程
1.2.3需求的類型。
1.2.4需求分析的原則
1.2.5需求分析人員和用戶的責任
1.2.6需求文檔
1.2.7需求說明技術的選擇
1.3軟體復用技術
1.3.1軟體復用的概念
1.3.2軟體開發過程
1.3.3構件技術
1.3.4分層式體系結構
1.3.5實施軟體復用開發單位的組織結構
1.4軟體測試技術
1.4.1軟體測試的基本概念
1.4.2測試用例設計
●白盒測試
●黑盒測試
1.4.3性能測試
1.4.4軟體測試策略
1.4.5軟體測試工具
1.5軟體維護
1.5.1軟體維護的概念
1.5.2軟體維護活動
1.5.3軟體維護的實施
1.5.4軟體可維護性
1.5.5軟體再工程
1.6軟體工具與軟體開發環境
1.6.1軟體開發工具的分類、作用和功能
1.6.2軟體開發環境的概念
模塊2:軟體質量管理與軟體質量保證
2.1軟體質量
2.1.1什麼是軟體質量
2.1.2軟體可靠性
2.1.3軟體質量問題的根源
2.1.4軟體產品質量與軟體過程質量
2.2軟體質量保證
2.2.1軟體質量保證的概念
2.2.2軟體質量保證體系
2.2.3質量保證的實施
2.2.4軟體質量設計
2.2.5軟體容錯技術
2.3軟體工程標准與軟體文檔
2.3.1什麼是軟體工程標准
2.3.2軟體工程標准化的意義
2.3.3軟體工程標準的制訂與推行
2.3.4軟體工程標準的層次
2,3.5軟體工程國家標准
2.4ISO9000國際標准
2.4.1質量管理、質量認證與質量審核
2.4.2ISO9000標准概要
2.4.3ISO9000族標准構成
2.4.4質量體系
2.4.5ISO9001的主要內容
2.4.6ISO9000_3實施指南概要
2.5軟體過程能力評估CMM
2.5.1軟體過程評估的意義
2.5.2軟體過程能力成熟度分級及其關鍵過程域
2.5.3軟體過程評估的國際標准
2.6軟體度量
2.6.1軟體度量的概念
2.6.2功能點方法計算軟體的大小
2.6.3程序環路復雜度計算
2.6.4Halstead程序工作量計算
2.6.5程序風格度量
2.7軟體配置管理
2.7.1什麼是軟體配置管理
2.7.2配置管理計劃的制訂
2.7.3變更管理
2.7.4版本管理和發行管理
模塊3:軟體工程管理
3.1軟體工程管理和軟體項目管理
3.1.1軟體工程管理的任務與意義
3.1.2軟體工程管理的范圍
3.1.3軟體文檔管理
3.1.4軟體成本估算
3.1.5軟體風險分析
3.1.6軟體項目進度計劃與監控
3.2軟體人員管理
3.2.1軟體開發組織結構
3.2.2軟體人員能力成熟度模型
3.2.3軟體工程師道德和職業活動規范
3.3軟體知識產權保護
3.3.1什麼是知識產權
3.3.2計算機軟體著作權
3.3.3計算機軟體著作權登記管理
3.3.4計算機軟體著作權侵權與法律保護
3.3.5計算機軟體的商業秘密與反不正當競爭
=================================
高級軟體工程師哪些必須精通2007年09月26日 星期三 下午 05:31程序員的七種武器
信息技術的發展時間雖然不長,但其爆炸式的發展速度使信息技術迅速覆蓋社會和人類生活的各個角落。程序員們是這場信息化浪潮的見證者之一,更是其中的主要參與者,這是時代賦予每個程序員的機會和責任。
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,永遠不能固步自封。本人在工作期間曾看見過很多程序員只要有閑暇時間就瀏覽一些沒有太大作用的網頁,在網上聊天,打游戲,浪費了大量的時間,十分不可取。而另外一種情況是,IT技術的日新月異使很多程序員眼花繚亂,什麼都想學,卻又不知從何學起,今天看看這個,明天學學那個,貪多不熟。
雖然IT技術發展迅速,但很多技術都是有規律可循,一些基本的概念、原理和方法還很通用,可以舉一反三。本人根據自己的體會和經驗,向那些剛剛踏入IT行業的新程序員們或正在迷茫的程序員們推薦程序員必須掌握的七種武器,有了這七種武器,雖不敢說笑傲江湖,但將自己立於不敗之地還是可以的。
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的「網路即計算機」的概念相當欣賞,並相信JAVA即其相關的技術集JAVA One會成為未來的主流開發工具之一。其次,如果能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C++ Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
第二種武器:資料庫
為什麼資料庫是如此重要?很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。
第三種武器:操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。
第四種武器:網路協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
第五種武器:DCOM/CORBA/XML/WEB Services
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間件平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。
第六種武器:軟體工程與CMM
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
第七種武器:強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
5. 軟體工程中項目管理的知識體系包括哪些內容
樓主,軟體工程項目管理根據我的理解應該是包括;項目范圍管理 ,需求和迭代管理 \時間管理,方法和模板管理,費用管理,承諾管理,質量管理,執行管理,溝通管理,現狀調查,資源管理,問題和風險管理,采購管理,整體管理。這些功能8thManage的項目管理軟體都具有,如果您想了解更詳細的資料可以上它的官網。
.
6. 簡述軟體工程專業主幹知識體系
軟體工程專業主幹學科:馬克思主義理論、大學外語、高等數學、大學物理、物理實驗、線性代數、概率論與數理統計、程序設計語言、數據結構、離散數學、操作系統、編譯技術、軟體工程概論、統一建模語言、軟體體系結構、軟體需求、軟體項目管理。
軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。
(6)軟體工程知識體系擴展閱讀:
軟體工程的七條基本原理:
(1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。
(3)實行嚴格的產品控制。
(4)採用現代程序設計技術。
(5)軟體工程結果應能清楚地審查。
(6)開發小組的人員應該少而精。
(7)承認不斷改進軟體工程實踐的必要性。
7. 軟體工程知識體系圖的內容 兩條主線
發展的兩條主線:一條是形式化技術,一條是工程化技術。
學習的兩條主線:軟體工程的學習是以技術和管理兩條主線展開,圍繞一個軟體過程即需求、分析、設計、構造、測試,以軟體建模為核心,以規范化程序設計為基礎,最終達到指導軟體開發全過程、實現項目成功的最終目標。
8. 高級軟體工程師(J2EE)所必須具備的知識體系以及素養是什麼
高級這個概念很不好衡量,簡單的說,如果你已經是一個可以獨擋一面的軟體工程師了,那麼你在向架構師進發的過程中,都可以算是高級軟體工程師。
9. 不同崗位的軟體工程師分別應有的知識體系結構是怎樣的
10. 軟體工程師需要學習哪些知識
初級部分:
1.
Java
面向對象程序設計、Java
API使用、數據結構及演算法基礎、Java高級類特性、異常處理;
2.
AWT及Swing圖形程序設計、流、網路程序設計、對象序列化、Applet、多線程程序設計、Java應用國際化基礎;
3.
Java桌面系統項目開發;
4.
Java編程基礎提高課程:反射機制、設計模式(I)、正則表達式,Java
SE5.0新特性等;
5.
基於Oracle的資料庫開發及管理、資料庫設計、標准SQL、PL/SQL編程;
6.
JDBC、JSP2.0、Servlet2.4、JavaBean編程;Tomcat伺服器使用、Jbuilder及Eclipse
等集成開發環境;
7.
Linux操作系統中的Java程序開發、Linux系統管理;
8.
Java
Web編程提高課程:JDBC進階、高效分頁處理、過濾器使用技巧、Struts中動態表單驗證、DispatchForm等;
高級部分
1.
MVC設計模式、Struts架構核心工作機制、國際化、驗證框架、Struts
Taglib、ORM基礎、基於Hibernate的企業級應用;
2.
JavaME手機游戲設計、界面程序設計、資料庫程序設計、手機簡訊、多媒體簡訊(彩信)開發;
3
.JavaEE核心技術、XML、Web
Service、異構系統整合、分布式應用開發、WebLogic和JBoss等應用伺服器;
4
.CMM、UML與系統建模和設計、Rational
Rose、軟體工程和軟體過程模型、版本控制及設計模式;
6.
Java
企業級應用開發提高課程:Hibernate使用技巧、設計模式(II)、Spring編程入門、提高Java
EE應用的性能;
.NET程序設計
.NET架構、.NET桌面和Web程序設計、.NET與JavaEE平台應用的整合;
職業素質
IT職業規劃、溝通技巧、團隊合作、專業技術規范、面試技巧等職業技能培訓。
完成以上培訓課程後,通過考核就可以獲得培訓機構頒發的合格證書。
現在比較吃香的是JAVA,特別是J2EE,未來3G出來後,手機編程將成為熱點,J2EE當然就會很吃香了。
關於證書的權威性,建議你要去知名的培訓機構去,最好是像SUN這類國際大公司有關認證所指定的培訓機構,這樣權威性高些。
一般來講,軟體公司是非常喜歡通過了軟體工程師的人員,學歷對他們來說並不重要,而重要的是能力。如果你的能力夠強,在一個好的公司的話,這個月薪我想應該是可以拿到的。