-
系统架构师是一个既须要掌控总体又须要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。所以他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能立刻给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,可以评估本身的团队实现特定的功能需求须要的代价。 系统架构师负责设计系统总体架构,从需求到设计的每一个细节都要考虑到,把握整个项目,使设计的项目尽可能效率高,开发容易,维护方便,升级简单等。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工做。他必须对开发技术很是了解,而且须要有良好的组织管理能力。能够这样说,一个架构师工做的好坏决定了整个软件开发项目的成败。
软件架构师在整个软件开发过程当中都起着重要的做用,并随着开发进程的推动而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,好比软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要常常审查客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求愈来愈明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,而且常常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工做重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增长新的功能模块进行决策。
具体要求编辑
首先必须具备丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。
其次要具备领导能力与团队协做技能,软件架构师必须是一个获得认可的技术领导,能在关键时候对技术的选择做出及时、有效的决定。
第三是具备很强的沟通能力,其实这一点好像什么角色都最好具有,软件架构师须要与各路人马常常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,并且在不少角色之间还要起沟通者的做用。在技术能力方面,软件架构师最重要也是最须要掌握的知识是构件通讯机制方面的知识,好比远程过程调用(RPC,Remote Procedure Call)、JAVA RMI、CORBA、COM/DCOM、各类标准的通讯协议、网络服务、面对对象数据库、关系数据库或者NoSQL数据库等等,另外,架构师应时刻注意新软件设计和开发方面的发展状况,并不断探索更有效的新方法。开发语言、设计模式和开发平台不断很快地升级,软件架构师须要吸取这些新技术新知识,并将它们用于软件系统开发工做中。固然,行业的业务知识对软件架构师也是很重要的,有助于设计出一个知足客户需求的体系结构,优秀的软件架构师经常由于要尽快得到对行业业务的理解而必须快速学习而且进行敏锐的观察。
但做为一个架构师,在整个软件系统的开发过程当中是乐趣无穷的,由于这个角色很具备挑战性,有时须要左右逢源、八面玲珑,有时又须要果断坚决、不留情面。在国内,较少软件企业拥有独立的架构师,一般一个软件高手身兼数职,既是项目经理,又是软件架构师,仍是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的,有时一我的的观点立场是很片面的,并且繁重的工做、沉重的压力会影响一我的的情绪,情绪会影响决策,决策影响结果,因此值得咱们三思然后行。
培养过程编辑
架构师不是经过理论学习能够搞出来的,不过不学习相关知识那确定是不行的。总结架构师自我培养过程大体以下,仅供参考。
一、架构师胚胎(程序员)
学习的知识是语言基础、设计基础、通讯基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通讯(通讯协议)——学习搭建应用系统所必须的原材料。
二、架构师萌芽(高级程序员)
学习分布式系统、组建等内容,能够在大学或第一年工做时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生能够研究网络计算机、高性能并发处理等内容)
三、架构师幼苗(设计师)
应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等。在此期间,最好可以了解软件工程在实际项目中的应用以及小组开发、团队管理。
四、软件架构师的正式成型在于机遇、我的努力和天赋。软件构架师实际上是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何获得这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和概括本身的构架模式、如何深刻行业成为可以胜任分析、构架为一体的精英人才这可不是每一个人都可以赶上的馅饼……
具有能力编辑
通常来说,系统架构师应该拥有如下几方面的能力:
1:具有 8 年以上软件行业工做经验;
2:具有 4 年以上 C/S 或 B/S 体系结构软件产品开发及架构和设计经验;
3:具有 3 年以上的代码编写工做经验;
4:具有丰富的大中型开发项目的整体规划、方案设计及技术队伍管理经验;
5:对相关的技术标准有深入的认识,对软件工程标准规范有良好的把握;
6:具备面向对象分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发;
7:精通大型数据库如 Oracle、Sql Server 等的开发;
8:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;
9:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
10:良好的团队意识和协做精神,有较强的内外沟通能力。
架构师的隐形职责
一、为技术部门提供技术支持
二、在最须要的时刻去攻克最艰巨的技术壁垒
三、幕后项目经理
四、业务部门与技术部门间的粘合剂
五、业务发展的催化剂
主要分类编辑
软件架构师
软件架构师是软件行业中一种新兴职业,工做职责是在一个软件项目开发过程当中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的整体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
信息架构师
信息架构师即Information Architecture,是一个经常被误解的职称。他们是设计者?开发者?管理者?仍是以上所有?咱们在本文将探讨信息架构师是作什么,为何它和可用性相关,以及在信息架构中须要用到的工具/软件。咱们也会顺便分享一些对于信息架构的初学者来讲有用的tweeters(twitter用户)、书籍和资源。即便您已经对这些内容很是熟悉了,您也可能从中发现一些可能错过的内容。
网站架构师
网站架构师是网站系统、功能、模块、流程的设计师,架构师,比如是高楼大厦的设计人员,一般一座大厦在建以前,都先由设计师将蓝图描绘出来,包括其形状、结构、尺寸、材料等等,而后建筑工程师带领工人们按照蓝图将大厦一层一层地建起来。
发展示状编辑
在我国,随着软件业规模的不断扩大,软件人才结构性矛盾将更加突出。国家人事部门预计到2005年我国软件产业的规模将达到2500亿元,全国计算机应用专业人才的需求每一年将增长百万人左右。其中,架构师这样的专业高级人才每一年培养人数全国不过数百名,缺口很是之大,而其中尤为以Java架构师缺口最为明显。
众所周知,Java是当前最热门的软件开发语言,它具备跨平台、面向对象、强大的网络功能等特性。你不只能在电脑上使用Java程序,还能在手机、PDA、家用电器上使用Java程序,甚至举世瞩目的火星车也所有采用Java技术。Java在不到10年时间内已经变成最流行的软件开发平台,最新的企业级Java 2.0版本(简称:J2EE)也成为企业应用系统上最受欢迎的开发标准。
事实上,全世界范围内的J2EE架构师都是紧缺的人才,只是中国更加明显而已。在英国,有经验的J2EE架构师,平均年薪已经飙涨到七万至十万英镑。全球著名的电子商务平台提供商SilverStream软件公司的技术服务总监Mark Ashton对J2EE人才的短缺深有感觉,他表示许多求职者的履历表上都有把J2EE列进去,可是仔细查看或是面试以后就会发现大多数人只是听过J2EE,并无真正用过这些技术。信息产业部电子信息产品管理司副司长丁文武也表示,我国Java人才还远远不够,至少短缺20万。特别是随着大量软件外包业务进入中国,许多外资或中资软件企业也开始面临着高级Java人才奇缺的问题,尤为是熟悉J2EE又能掌握一门相应外语的人才成为了众多大公司争抢的对象。 做为Java的发明者和Java开发标准的主要制定者——美国Sun公司对从事Java开发的技术人员提供了三级认证体系,即初级的程序员认证(SCJP)、中级的开发员认证(SCJD和SCWD)和高级的架构师认证(SCEA)。这也是软件行业中最权威的国际认证之一。
架构师技能树