古詩詞大全網 - 成語用法 - 軟件工程師必備知識?

軟件工程師必備知識?

軟件工程師考試(高級)大綱

壹、考試說明

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 . 2 iso 9000標準概述

2 . 4 . 3 iso 9000族標準的組成

質量體系

2 . 4 . 5 ISO 9001主要內容

2.4.6新ISO 9000協議實施指南摘要

2.5用於軟件過程能力評估的CMM

2.5.1軟件過程評估的重要性

2.5.2軟件過程能力成熟度分類及其關鍵過程領域

2.5.3軟件過程評估國際標準

2.6軟件指標

軟件度量的概念

2.6.2功能點法計算軟件的規模

2.6.3程序循環復雜度計算

2 . 6 . 4 halstead程序的工作量計算

程序風格測量

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.3計算機軟件著作權登記管理

3.3.4計算機軟件版權侵權及法律保護

3.3.5計算機軟件的商業秘密與反不正當競爭

=================================

2007年9月26日星期三05:31高級軟件工程師必須掌握的程序員七大武器?

信息技術的發展時間雖然不長,但其爆炸式的發展速度使得信息技術迅速覆蓋社會和人類生活的各個角落。程序員是這場信息浪潮的見證者之壹,也是主要參與者,這是時代賦予每壹個程序員的機遇和責任。

信息技術的更新速度是驚人的,程序員的職業生涯是壹個需要不斷學習的過程,永遠不能固步自封。在工作期間,我見過很多程序員只要有閑暇時間就上網瀏覽壹些無用的網頁、聊天、打遊戲,浪費了很多時間,這是非常不可取的。另壹方面,隨著IT技術的飛速發展,很多程序員眼花繚亂,什麽都想學,卻不知道從何下手。今天看這個,明天學那個。

雖然IT技術發展很快,但是很多技術是有規律可循的,壹些基本的概念、原理、方法還是很通用的,可以推而廣之。我根據自己的經驗,向那些剛踏入IT行業的新程序員或者迷茫的程序員推薦程序員必須掌握的七種武器。有了這七種武器,雖然我不敢說是笑傲江湖,但我仍然可以所向披靡。

第壹件武器:開發工具

掌握至少兩三種開發工具是程序員的基礎。其中C/C++和JAVA是我推薦的開發工具。C/C++以其高效率和高靈活性成為開發工具中的利器。很多系統級軟件還是用C/C++寫的。JAVA的跨平臺性和與WEB的良好結合是其優勢,而我也相當欣賞孫的“網絡即計算機”的理念,相信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服務,再到未來的網格計算,都離不開基於TCP/IP協議棧的網絡協議支持。因此,深入掌握TCP/IP協議是非常必要的。最起碼妳要知道ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理以及三次握手機制。

第五個武器:DCOM/CORBA/XML/WEB服務。

隨著技術的發展,軟件與網絡的無縫結合是必然趨勢,軟件系統的位置無關性是未來計算模式的重要特征之壹。DCOM/CORBA是分布式計算的兩個主流中間件平臺,DCOM是微軟COM(組件對象模型)的擴展,CORBA是OMG支持的規範。程序員需要做的不僅是利用商業開發平臺開發軟件,還要了解這些技術的初衷,也就是為什麽需要這項技術。如果妳能明白這壹點,妳就可以像專家壹樣,回頭看看這些技術的具體實現。XML/WebServices的重要性不言而喻。XML因其結構化的表示方式和超強的表達能力,在互聯網上被稱為“世界語”,是分布式計算的基石之壹。

第六種武器:軟件工程和CMM

在現代大型軟件系統的開發中,工程開發控制取代了個人英雄主義,成為軟件系統成功的保證。編程高手不壹定是優秀的程序員。壹個優秀的程序員,是把優秀的編程能力和開發技巧與嚴謹的軟件工程思想有機結合在壹起的。編程只是軟件生命周期的壹部分。壹個優秀的程序員應該掌握軟件開發各個階段的基本技能,比如市場分析、可行性分析、需求分析、結構設計、詳細設計等等。壹句話可以概括我的看法:“創意無限,過程有保障”。

第七件武器:強烈的好奇心

壹個程序員的終極武器是什麽?那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了。是程序員永遠攀登高峰的源泉和動力。