软件开发必备工程师手册.docx
《软件开发必备工程师手册.docx》由会员分享,可在线阅读,更多相关《软件开发必备工程师手册.docx(34页珍藏版)》请在三一文库上搜索。
1、软件开发团队必备工程师手册一、软件工程师软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.。职位概述一般情况下.都是分4级软件技术员助理软件工程师软件工程师高级软件工程师目前国内软件测试工程师的来源主要有三方面:一是以前专业做软件开发的人员后来转行做软件测试,二是从大学招聘的本科或者研究生,三就是通过培训机构招聘的专业学员。据了解,在国外测试人才的供给方式多以第三种为主,而国内目前除少数培训机构外尚未形成足够的人才供给规模。以北京中关村为例,现有软件企业5000多家,仅对日本软件外包领域的人才缺口就高达5000人,而对美软件外包人才缺口更
2、大,可供量缺乏10%。中关村一位负责人介绍,未来5年北京将有至少200亿美元的外包订单,由此可推算出中关村将出现100万的软件人才缺口。巨大的产业前景和匮乏的人才现状,使越来越多的IT企业关注软件测试人才的储藏工作。职业定义软件工程师主要进行软件前期的工程需求的分析,然后对工程进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。工作内容1、指导程序员的工作;2、参与软件工程系统的设计、开发、测试等过程;3、协助工程管理人保证工程的质量;4、负责工程中主要功能的代码实现;5、解决工程中的关键问题和技术难题;6、协调各个程序员的工作,并能与其它软件工程师协作工作。
3、职业分析】软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求ToPIO的第一位(第二位是高级软件工程师)。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C+/JAVA等)、数据库技术(SQL/0RAeLE/DB2等)、.NET平台技术、C#、C/SB/S程序开发,还有诸多如JAVASCRIPT、AJAX、HIBERNATESPRING、J2EE、WEBSER
4、VICE、STRUTS等前沿技术。除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。软件工程师可谓是软件工程开发的掌舵者。一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的开展有敏锐的嗅觉。虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业开展的具体情况来划分。考试科目软件工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程开展前景当今社会不管什么职业的都需要一个不断学习的环节,软件工程师也一样。虽然软件
5、工程师的工作不同于程序员但是一个软件工程师其前身必定是一个优秀的程序员,软件的开发工具、开发技术在不断地开展。在校学生所能学到的东西很难跟得上开展的需要但是也不能说那些东西完全没有用,只有在完全理解了相应的根本技能之后你才能很轻松地掌握新的技能,软件技术都是一个循序渐进的过程。所以学好学校所能提供的专业课程是相当重要的。企业用人主要有以下几个特征:1外包开发行业快速开展,对“人才在代码和文档方面的标准性、技能和工具的熟练程度要求越来越高;2Java和.NET技术在市场上平分秋色,都有大量的岗位需求,同时值得庆幸的是二者在应用层面上的技术差异越来越少;3软件开发企业对开发人员的根本技术素养强调得
6、越来越多,例如:面向对象的程序设计思想和代码组织方法、HTML/CSS/JavaScript客户端技术;4为了保证质量和工期,企业中大量使用各种框架技术,要求开发人员至少熟悉一种框架技术;5MIS、OAERPCRM系统集成、物流、进销存、电子政务、网站建设这一类B/S系统,成为软件工程师需求最大的业务领域。就业职位软件工程师的就业职位归结下来主要有WEB开发工程师、数据库开发工程师、网站开发工程师、电子商务开发工程师VB程序员;网页开发人员;非IT专业信息部门的管理信息系统设计、开发、维护网位,JAVA程序员;C+程序员;VB高级程序员;网站开发工程师;测试工程师;文档编写工程师,JAVA工程
7、师;.NET工程师;初级分析、设计人员等。专业培训机构中国的IT软件工程师教育培训行业已经进入到一个前所未有的顶峰期,目前全国比较知名的专业软件工程师培训机构有迅腾国际、华育国际、焦作凯盛、八维教育IT培训集团、威迅教育、北大青鸟连锁。他们为社会培养了广阔的人才!从业要求.具有扎实的计算机基础理论知识;.精通C/C+、Java、C#等语言,具有丰富的UniX/Linux/WindOWS系统下开发经验;,精通Per1、Python、PHP、Shen等脚本语言;.有一定的算法基础,具有较强的独立解决问题能力;.有大容量、高性能、分布式系统的设计开发经验;.具有很强的学习能力和对新技术的追求精神;.
8、具有良好的中英文沟通能力,具有工程管理经验者优先;.认同客户第一、团队合作、拥抱变化、诚信、激情、敬业的企业价值观。高级软件工程师职业概述:“软件工程师受宠,就业前景一片看好,这是我们经常可以看到的报道,只要你有足够的能力和才华,这将是一个薪水没有上限的金领职业,这种收入会随着学历和资历的增长而增加。中国的IT行业的就业形势一直呈上升趋势,中国软件市场保持稳定增长,预计2009年将到达62.3亿美元,市场增长潜力巨大。在技术领域,高级软件工程师也一直是各个公司极为需要的。工作内容:独立承当工程软件开发;参与工程的整体规划与实施;负责与工程经理共同进行客户调研、业务流程分析设计;负责系统的总体技
9、术方案与系统设计,系统的质量控制;负责跟客户沟通解决问题。职业要求:教育培训:计算机、电子、通信、信息工程、自动化等相关专业,大专以上学历。工作经验:三年以上的软件开发经验;具备扎实的计算机软件基础,熟悉汇编语言和数据结构,并对软件工程有较好的理解;熟悉NETJavaC+VBDelphi等常用开发语言中任意一种;有Oracle、SQL-SERVER或DB2等数据库上的开发经验,熟悉SQL语言;具备良好的沟通能力,较强的分析、解决问题、领悟、归纳和逻辑推理能力和撰写开发文档;具有良好的方案性,团队精神,能承受工作压力并充满热情。薪资行情:按2008年统计,中国一般月薪范围在3000-8000元。
10、有些月薪甚至超过了工程经理。职业开展路径:高级软件工程师是IT行业中的重要岗位。根据开发进度和任务分配,完成相应模块软件的设计、开发、编程任务;进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量;进行编制工程文档和质量记录的工作;维护软件使之保持可用性和稳定性。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发工程软件工作。但与开展潜力不对称的是,现今中国软件和信息产业人才相当缺乏。据调查研究显示,当前中国软件和信息效劳外包产业人才流动率较高,而且缺口很大。企业成立时间比较短,规模大
11、多比较小,企业人才平均流动率达18.28%,人才供不应求,尤其是本地化人才和中高级管理人才。市场需求的巨大和专业人才的缺乏令人吃惊,这正是商机和盈利的重要突破口。可以预见,中国软件和信息效劳外包产业将在不久的将来成为引领中国第三产业转型和开展的龙头产业,相关职业包含高级软件工程师的人才需求将会非常巨大二、软件架构师软件架构师是软件行业中一种新兴职业,工作职责是在一个软件工程开发过程中,将客户的需求转换为标准的开发方案及文本,并制定这个工程的总体架构,指导整个开发团队完成这个方案。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员能力要求在技术全面、成熟练达、洞察力强、经验丰富,具备在
12、缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,并做出合理的关键决定的能力1、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考;主要包括如下:1、对工程开发涉及的所有问题领域都有经验,包括彻底地理解工程需求,开展分析设计之类软件工程活动等2、具备领导素质,以在各小组之间推进技术工作,并在工程压力下做出牢靠的关键决策3、拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得工程成员的信任;4、以目标导向和主动的方式来不带任何感情色彩地关注工程结果,构架师应当是工程背后的技术推动力,而非设想者或梦想家(追求完美)5、精通构架设计的理论、实
13、践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等);6、具备系统设计员的所有技能,但涉及面更广、抽象级别更高;活动确定用例或需求的优先级、进行构架分析、创立构架的概念验证原型、评估构架的概念验证原型的可行性、组织系统实施模型、描述系统分布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素、构架文档、参考构架、分析模型、设计模型、实施模型、部署模型、构架概念验证原型、接口、事件、信号与协议等。主要工作任务架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一
14、个架构师工作的好坏决定了整个软件开发工程的成败。1、领导与协调整个工程中的技术活动(分析、设计和实施等)2、推动主要的技术决策,并最终表达为软件构架3、确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图4、确定设计元素的分组以及这些主要分组之间的接口5、为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻6、理解、评价并接收系统需求7、评价和确认软件架构的实现专业技能软件架构师的培养软件架构师的培养软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢开展为架构师的。在国内,很多大学目前还没有设立软
15、件架构的学位课程,虽然IT业界对设计和架构的兴趣日渐高涨,但各学校还无法在课程中增加相应的内容来表达这一趋势。从这个方面来说,学校教育已经远远落后于产业开展。因此,促进和开展软件架构学课程的任务将落在现在的软件架构师身上。目前的软件架构师应该帮助各大院校建立相关课程体系,一旦教育课程建立起来,知识体将不仅通过新毕业生的工作成果来得到扩展,同时也会从适合软件架构的教育研究和出版物中得到扩展:28o虽然大学要加强软件架构学课程的建设,但是,软件架构师的成长应该有一个实践的教育过程,并不是简单的学校的理论学习或者通过大型软件公司的认证就能成为合格的软件架构师。除了信息系统综合知识在学校学习外,软件架
16、构师的大局部知识和经验将来自实际开发工作。根据软件架构师的任职条件,一名合格的软件架构师的成长应该经历8年以上的软件工程开发实际工作经验。一般需要经历程序员、软件设计师等阶段,然后再开展成为软件架构师。当然,并不是每一位程序员经过8年后都可以成长为软件架构师的。一个软件工程师在充分掌握了软件架构师工作所必需的根本理论和技能后,如何得到和利用时机、如何利用所掌握的技能进行应用系统的合理架构、如何不断的抽象和总结自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才,这就在于机遇、个人的努力和天赋了。就目前来看,国内软件架构师的培养途径主要有两种方式,一种是大学(软件学院)教育方式,另
17、一种是个人自我培养然后再进行相应的培训和认证。但是,不管哪种方式都有其缺乏之处。软件学院的培养方式能够系统的学习软件架构师必需的知识体系,但是,软件架构师不是简单的通过理论学习就能够培养出来的,软件学院的学生可能缺乏必要的设计、开发经验和相关的领域知识。尽管软件学院也强调给予学生实践的时机,但毕竟这种时机是有限的。有关“三分之一的师资来自企业的规定,在局部软件学院中也没有得到真正落实,导致传授给学生的还是一些纯理论知识。自我培养方式的主要对象是具有一定年限的软件开发和设计人员,如MiCroSoft、IBM、SUn等公司的软件架构师认证对学员的基础并没有具体的要求,只要交纳规定的费用,然后进行几
18、天的集中培训,通过考试就发给学员证书,甚至不需要考试就直接发放证书。这些开发人员在自我培养的过程中不一定能够系统的学习软件架构师的理论知识,他们只具有一定的开发和设计经验,仅仅经过几天的培训,是不太可能培养出合格的软件架构师的。而且,作为某个厂商的培训和认证,其最终目的是培育自己的市场,培养一批忠诚的用户,而不是为中国培养软件架构师。因此,也存在很大的问题和缺陷。软件架构师的认证在国外,软件架构师的培养与认证具有严格的过程,明确规定了教育目标、认证的要求和学习课程等方面的内容。下面,介绍三个组织的软件架构师认证情况。UCIrvineO在UCIrVine的软件架构师认证方案27中,为了拿到软件架
19、构师C级认证,学员必须完成11个单元的必修课程和至少4个单元的选修课程。这些课程包括:必修课程:软件系统建模和分析概论(2个单元)、系统分析基础(3个单元)、用户需求的分析和文档化(3个单元)、软件架构工程(3个单元)。选修课程:信息系统工程管理(2个单元)、系统性能建模(2.5个单元)、管理业务改良工程(2.5个单元)。UCIrVine的软件架构师认证要求学员具有业务系统建模,决定用户需求,评价业务过程的能力,掌握工程管理技术,能设计完善的、具有最正确可适应性和可扩展性的架构。该认证程序以一门实践课程结束,在实践课程中,学员从头开始,设计一个大规模软件解决方案的架构。CMU/SEISEl在软
20、件架构师方面的认证42包括三个职位,分别是软件架构师、ATAM评估师和ATAM主任评估师。这些认证都需要学习2年的课程。其中软件架构师需要学习的课程有软件架构:原理与实践、软件架构文档化、)软件架构设计与分析和软件产品线。iCMGiCMG对软件架构师的认证强调7个层次的课程学习,如图2所示30o在该认证体系中,上面的3个层次由其合作伙伴完成,iCMG只负责下面4个层次的知识体系。目前,软件架构师的认证在国内根本上是空白,既没有专业的培训机构,也没有专门的认证指南和权威的教育认证机构。而软件架构师作为软件的总设计师,其水平和能力直接决定了软件系统的总体性能。根据教育部2004年9月8日关于紧缺人
21、才的报告,2005年国内软件架构和系统分析人才缺口在6万人以上,是目前软件开发中急需的高层次技术人才。人事部和信息产业部200339号文件决定在全国计算机技术与软件专业技术资格(水平)考试中设立系统架构设计师级别的认证考试,试图解决软件架构师认证问题。但是,由于各种原因,该考试未能如期举行,一拖再拖。其实,这些措施也只是暂时起到一个过渡的作用,只有建立完善的软件架构师教育培训方案和权威的教育认证机构,才是当前急需解决的问题。寻求适宜的培养方法针对软件架构师在软件组织中的作用和其在国内的培养现状,有分析家认为有必要将软件架构师的教育、培训和认证作为开展民族软件产业的一个根本决策,制定详细的软件架
22、构师培养方案。因此,提出以下一些关于软件架构师培养的根本方法和途径。(1)确定软件架构师在软件组织中的职责和充当的角色,确定其相应的必须具备的知识体系,确定软件架构师的职业及其相关制度,制定软件架构师的培养目标和培养方案。(2)坚持以大学教育为主(特别是各软件学院在这方面可以大施身手),以工程实践为辅的教育方针。大学可以聘请现有的软件架构师担任核心课程的讲师,通过学校教育,系统学习软件架构师所必需的知识体系;通过工程实践使其具有初步的软件开发和设计经验,逐步成长为一名合格的软件架构师。(3)对国外一些大公司的软件架构师的培训和认证予以支持,但是在认证的过程中必须坚持符合我国实际情况的原则。例如
23、在认证考试之前对考生的知识体系进行系统的测试和评估,在通过认证后的适当时间内进行重新认证和继续教育。(4)建立完善的软件架构师教育和认证制度,使得通过认证的人员能够在实际的软件开发中成为称职的和优秀的软件架构师。并通过此制度能够为国家培养出更多、更优秀的软件架构师,解决当前软件架构师急缺问题三、嵌入式软件工程师嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、本钱、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个局部组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件工程师就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 必备 工程师 手册
