软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
软件架构师实际上就是软件的总体设计师。首席设计师就是总设计师,打个通俗的比方:邓xiao平是中国改革开放的总设计师,我们用现在的说法可以讲,邓xiao平是中国改革开放的首席架构师。架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!
架构师也并非是万能的。架构师是客户需求和开发者之间的桥梁。在软件行业中,一般提到的架构师是技术架构师,而忽略了领域架构师或者讲是领域工程师的概念。一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合才有可能真正创造出一个好的系统!
架构师,首先让我想起的是高楼大厦的设计人员,通常一座大厦在建之前,都先由设计师将蓝图描绘出来,包括其形状、结构、尺寸、材料等等,然后建筑工程师带领工人们按照蓝图将大厦一层一层地建起来。
近年来,软件领域也渐渐地流行起架构师的角色,特别是对一些大型软件产品或项目的开发,这一角色显得很关键,因为缺乏好的软件架构师而导致项目失败的例子不胜枚举,一个没有经验和能力的架构师也会使项目失败的速度加快。
软件架构师的重要作用
软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发团队所提出的设计;
在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;
在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;
随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;
在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。
如何成为优秀的软件架构师
显而易见,在软件开发过程中,一个优秀软件架构师的重要性是不应低估的。那么如何成为优秀的软件架构师呢?
首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。
其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。
第三是具有很强的沟通能力,呵呵,其时这一点好象什么鬼角色都最好具备,软件架构师需要与各路人马经常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。
在技术能力方面,软件架构师最重要也是最需求掌握的知识是构件通信机制方面的知识,比如远程过程调用、JAVARMI、CORBA、COM/DCOM、各种标准的通信协议、网络服务、面对对象数据库、关系数据库等等,另外,架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法。开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。当然,行业的业务知识对软件架构师也是很重要的,有助于设计
出一个满足客户需求的体系结构,优秀的软件架构师常常因为要尽快获得对行业业务的理解而必须快速学习并且进行敏锐的观察。
上面的描述是枯燥乏味的,但作为一个软件架构师,在整个软件系统的开发过程中是乐趣无穷的,因为这个角色很具有挑战性,有时需要左右逢源八面玲珑,有时又需要果断坚定不留情面。在国内,较少软件企业拥有独立的架构师,通常一个软件高手身兼数职,既是项目经理,又是软件架构师,还是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的,有时一个人的观点立场是很片面的,而且繁重的工作、沉重的压力会影响一个人的情绪,情绪会影响决策,决策影响结果,所以值得我们三思而后行。
构架师自我培养过程
构架师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。总结构架师自我培养过程大致如下,仅供参考。
1、构架师胚胎(程序员)
学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。
2、构架师萌芽(高级程序员)
学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)
3、构架师幼苗(设计师)
应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。
4、软件构架师的正是成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……
软件构架师职场概况
如果您今天有幸同全球首富比尔·盖茨交换名片,您会注意到他的头衔是微软公司首席软件架构师。同样假如您得到中国首富丁磊的名片,您也会看到他的头衔是网易公司首席架构师。悄然间,架构师已经成为职场上最让人羡慕的职位。
在我国,随着软件业规模的不断扩大,软件人才结构性矛盾将更加突出。国家人事部门预计到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)。这也是软件行业中最权威的国际认证之一。目前国内已经有针对美国 Sun公司认证体系的培训,但绝大多数主要针对初级的程序员认证,只有极少数专业培训机构能够提供三层完整培训。国家信息化教育示范基地——上海文华学院(www.wenhua.org)是上海仅有的一家拥有Java自上而下、由浅入深的完善的培训及认证体系的学院。作为Sun华东区最佳培训中心,上海文华学院的“对外J2EE国际软件工程师就业班”课程除了由浅入深,完整地教授整个J2EE体系外,还详尽地教授开发企业级应用软件所必须掌握的知识体系,如:操作系统、UML、数据库、项目管理、软件测试等。因此,即使你没有任何软件开发知识,也能完成这门课程的学习。课程采用项目教学,并培训计算机英语和第二外语。学员考试通过后,可以获得美国Sun公司的最高级别国际认证:Sun认证企业级Java 2架构师(SCEA),还推荐就业。学员入学前还可参加免费的“软件开发潜质测试”,评估自己是否适合开发软件。
(部分摘自《东方生活报——才富周刊》)
来源:http://www.cnblogs.com/cxd4321/archive/2009/01/09/1372878.html
分享到:
相关推荐
《软件架构师教程》是一本全面且深入的指南,旨在帮助读者掌握软件架构设计的核心概念、原则和实践。作为系统架构师考试的重要参考资料,这本书涵盖了高级软件架构师所需的知识点,同时也是系统分析师提升专业能力的...
软件架构师是IT行业中至关重要的角色,他们负责设计和规划软件系统的整体结构,确保系统能够高效、稳定地运行。这份“软件架构师培训资料”涵盖了软件开发过程中的多个关键环节,旨在帮助学员全面掌握架构师所需的...
《高级软件架构师培训讲义》是一份针对高级软件架构师的专业学习资料,涵盖了软件架构设计的多个核心领域。这份讲义旨在提升架构师的设计能力,帮助他们更好地理解和实施复杂的软件项目。 首先,讲义从“架构师与...
软件架构师,这一职业在IT行业中扮演着至关重要的角色,它是连接技术和业务的桥梁,是软件开发过程中的领航者。软件架构师不仅需要具备深厚的技术功底,还需要有卓越的沟通能力和战略思维,以便设计出高效、可扩展且...
在IT行业中,软件架构师是至关重要的角色,他们负责规划和设计软件系统的整体结构,确保其可扩展性、可维护性和高效性。本教程“软件架构师教程1”旨在为那些希望成为优秀软件设计师的人提供深入指导。面向对象应用...
《软件架构师教程》是一份全面涵盖软件架构师所需知识的综合教程,旨在帮助学习者理解和掌握软件架构设计的关键概念和技术。在这个文档中,我们将会深入探讨以下几个核心领域: 1. **软件架构基础**:软件架构是...
- **定义**:软件架构师通常被视为一个组织中的技术领袖,他们负责制定软件产品的技术路线和技术框架,确保产品的可扩展性和高效性。 - **角色**:作为公司的“金领”,软件架构师不仅拥有较高的收入,还需要具备...
为了更好地发挥软件架构师的作用,企业和组织需要重视其培养和任用,同时也要建立一套完善的评估体系,确保软件架构师能够在项目中发挥最大的价值。随着软件行业的不断发展,软件架构师的地位和作用将会越来越重要。
根据提供的文件标题、描述、标签及部分内容链接,我们可以推断出该资料主要涉及软件架构师相关的学习内容。接下来,我们将对各个章节所涵盖的关键知识点进行详细的解析。 ### 一、考试简介 本章节主要介绍了软件...
软件架构师是IT行业中至关重要的角色,他们负责设计和规划软件系统的整体结构,确保系统能够高效、可扩展、易于维护。这份"关于软件架构师的资料集锦"显然是为那些有意成为软件架构师或者希望提升架构技能的人准备的...
软件金领架构师是软件工程领域中的核心职位,它不仅要求架构师拥有深厚的技术功底,还...软件架构师是软件项目成功的关键角色,他们不仅需要具备深厚的技术功底,更需要不断学习和适应新环境,以适应快速变化的IT行业。
在IT行业中,软件架构师是一个至关重要的角色,他们负责规划、设计和指导软件系统的构建,确保系统的可扩展性、稳定性、可维护性和性能。本文将深入探讨“做一回软件架构师”这一主题,旨在帮助读者理解软件架构设计...
软件架构师的12项修炼 软件架构师是软件开发领域中非常重要的职业之一,他们负责设计和规划技术方案,确保软件系统的可用性、可维护性和可扩展性。为了成为优秀的软件架构师,需要具备深厚的软件工程知识、技术经验...
他们不仅需要具备深厚的技术背景,如Java架构设计和J2EE架构设计,还必须理解软件架构的定义及其在信息技术战略规划(ITSP)中的作用。架构师通过定义软件的组件、接口、数据流和控制流,确保系统能够高效、稳定地运行...
【软件架构师入门教程,成功架构你的软件】 作为软件开发领域的关键角色,软件架构师承担着设计和指导软件系统整体结构的重要职责。本教程旨在帮助初级软件工程师掌握软件架构的基础知识,逐步提升到架构师的水平。...
《软件架构师考试资料》是一份综合性的学习资源,涵盖了软件架构师所需的重要知识点和实践经验。这份资料集合了多种文档,旨在帮助考生深入理解和掌握软件架构设计的核心技能,以通过相关的资格认证考试,如中国的...