背景:系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的。在我国,虽然系统架构师的职业在工作内容、工作职责以及工作边界等方面还存在一定的模糊性和不确定性,但它确实是时代发展的需要,并正在实践中不断完善和成熟。
通常从组织上划分,架构师分为以下几大类:业务架构师(Business Architect)、主题领域架构师(Domain Architect)、技术架构师(Technology Architect)、项目架构师(J2EE架构师、.NET架构师等)以及系统架构师(System Architecture)。
系统架构师是系统或产品线的设计责任人,是一个负责理解和管理并最终确认和评估非功能性系统需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等),给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键架构、接口进行总体设计并澄清关键技术细节的高级技术人员。
系统架构师主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调”。因此,系统架构师是特定的开发平台、语言、工具的大师,对常见应用场景能及时给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的功能需求目标的资源代价。可以说,系统架构师是信息系统开发和演进的全方位技术与管理人才。
系统架构师通常负责公司系统的架构设计与持续改进,承担从业务向技术系统转换的桥梁作用;协助项目经理制定项目计划和控制项目进度;需要成都技术管理工作,如负责组织技术研究和攻关,负责组织和管理技术培训工作,管理技术支撑团队并给项目、产品开发实施团队提供技术保障。
因此一个好的系统架构师的技术素质十分重要,通常系统架构师需要具有系统思维的能力,还必须具备以下技术素质:
l 具备丰富的一线大中型开发项目的整体规划、方案设计及技术队伍管理经验。
l 具备软件行业工作经验,熟悉业务领域的技术应用和发展。
l 具有项目管理理论基础,并在应用系统开发平台和项目管理上有实践经验。
l 对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握。
l 具备C/S或B/S体系结构或特定领域软件产品开发及架构和设计的经验。
l 具有面向对象分析(Object-Oriented Analysis, OOA)、设计(OOD)、开发(OOP)能力,精通UML和XML等,熟练使用Rational Rose、PowerDesigner等CASE工具进行设计开发。
l 对相关编程技术及整个解决方案有深刻的理解及熟练的应用,并且精通架构和设计模式,并在此基础上设计产品框架。
l 精通大型数据库如Oracle、Sql Server、MySQL等的开发。
l 对计算机系统、网络和安全、应用系统架构等有全面的认识。
l 良好的团队意识和写作精神,有较强的内外沟通能力。
整体来说,系统架构师就是能够根据用户需求,结合用户应用领域的实际情况,设计正确、合理的软件构架,维护系统构建及其接口,并确保系统架构具有良好的性能;能够对项目进行系统构架级的描述、分析、设计与评估;能够按照相关标准编写相应的设计文档;具有扎实的理论功底、广博的知识面,能够与系统分析师、项目管理师相互协作、配合工作。
软件系统架构师综合的知识能力结构包括以下几个方面:
n 战略规划能力。
n 业务流程建模能力。
n 信息数据架构能力
n 技术架构选择和实现能力
n 应用系统架构的解决和实现能力
n 基础IT知识及基础设施、资源调配的能力。
n 信息安全技术支持与管理保障能力。
n IT审计、治理与基本需求分析、获取能力。
n 面向软件系统可靠性与系统生命周期的质量保障服务能力。
做为系统架构师,必须成为所在开发团队的技术路线引导者;具有很强的系统思维的能力;需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,哪些是无效的。架构师应当是一个成熟的、丰富的、有经验的、有良好教育的、学习快捷、善沟通和决策能力强的人。丰富是指他必须具有业务领域方面的工作知识,知识来源于经验或者教育。他必须广泛了解各种技术并精通一种特定技术,至少了解计算机通用技术以便确定哪种技术最优,或组织团队开展技术评估。优秀的架构师能考虑并评估所有可能用来解决问题的总体技术方案。需要良好的书面和口头沟通技巧,一般通过可视化模型和小组讨论来沟通指导团队确保开发人员按照架构建造系统。
因此,系统架构师知识维度可以总结为“多层次+多方面”。所谓多层次,意味着系统架构师必须在体系结构、计算机软硬件与网络基础知识、信息化基础知识、信息安全与可靠性基础知识等基本功的层面上受过良好的教育和快捷的学习能力;还须在系统架构设计方法、设计模式、设计流程以及各种模型等方面有丰富的经验,广泛了解各种构件产品和技术并精通一种特定领域的架构设计;进一步,还须在系统架构设计实践层面,有自己的认识和理解,同时具有很强的表述能力;所谓多方面,意味着系统架构师在每个知识层面上必须具有即使、管理、心理和艺术等多方面的知识和能力。这和系统架构师的多角色特点是相关的。