软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员
--百度百科 。
从百科上的解释来看,软件架构在整个软件工程中起着至关重要的作用,就好比建一所大楼的设计图纸一般。所有的工程都必须按照图纸才能完整毫无偏差的进行。 软件架构师是可以站在高出俯瞰整个工程的人,他们的着眼点不在于代码的编写或者功能的实践而是从观全局,在更高抽象级别上进行思考,将整个工程下的每一位员工调度起来和谐高效的运转。
要成为一名合格的软件架构师需要具备以下几点素质:
⒈对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等
⒉具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策;
⒊拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;
⒋以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美);
⒌精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等);
⒍具备系统设计员的所有技能,但涉及面更广、抽象级别更高; 活动确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型、评估构架的概念验证原型的可行性、组织系统实施模型、描述系统分布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素、构架文档、参考构架、分析模型、设计模型、实施模型、部署模型、构架概念验证原型、接口、事件、信号与协议等。
由上面所列六大项素质可见,要成为一名合格的软件架构师绝非一朝一夕之事,这需要在具备一定的工作经验的基础上,对讲自己严格要求,通过系统的学习加上来自于平时工作项目的经验积累以及自己对整个软件体系认知的有意识的培养,一般在8年以后就可以具备软件架构师的基本素质,当然并非每个人在工作8年以都可以胜任软件架构师的工作,这期间需要自己不懈的努力以及个人的天赋。
成为一名合格的软件架构师要从程序员做起踏踏实实的积累经验跟着前辈一点一滴的学习,不能妄想一口吃个胖子;这样的心态才是最为重要的。
软件架构师在业内有一些资格证书可以考取已证明自己的能力:
UC
在UC Irvine的软件架构师认证计划[27]中,为了拿到软件架构师C级认证,学员必须完成11个单元的必修课程和至少4个单元的选修课程。这些课程包括:
·必修课程:软件系统建模和分析概论(2个单元)、系统分析基础(3个单元)、用户需求的分析和文档化(3个单元)、软件架构项目(3个单元)。
·选修课程:信息系统项目管理(2个单元)、系统性能建模(2.5个单元)、管理业务改进项目(2.5个单元)。
UC Irvine的软件架构师认证要求学员具有业务系统建模,决定用户需求,评价业务过程的能力,掌握项目管理技术,能设计完善的、具有最佳可适应性和可扩展性的架构。该认证程序以一门实践课程结束,在实践课程中,学员从头开始,设计一个大规模软件解决方案的架构。
CMU
SEI在软件架构师方面的认证[42]包括三个职位,分别是软件架构师、ATAM评估师和ATAM主任评估师。这些认证都需要学习2年的课程。其中软件架构师需要学习的课程有软件架构:原理与实践、软件架构文档化、软件架构设计与分析和软件产品线。
iCMG
iCMG对软件架构师的认证强调7个层次的课程学习,如图2所示[30]。在该认证体系中,上面的3个层次由其合作伙伴完成,iCMG只负责下面4个层次的知识体系。
目前,软件架构师的认证在国内基本上是空白,既没有专业的培训机构,也没有专门的认证指南和权威的教育认证机构。而软件架构师作为软件的总设计师,其水平和能力直接决定了软件系统的总体性能。根据教育部2004年9月8日关于紧缺人才的报告,2005年国内软件架构和系统分析人才缺口在6万人以上,是目前软件开发中急需的高层次技术人才。人事部和信息产业部[2003]39号文件决定在全国计算机技术与软件专业技术资格(水平)考试中设立系统架构设计师级别的认证考试,试图解决软件架构师认证问题。但是,由于各种原因,该考试未能如期举行,一拖再拖。其实,这些措施也只是暂时起到一个过渡的作用,只有建立完善的软件架构师教育培训方案和权威的教育认证机构,才是当前急需解决的问题。