软件架构师的主要工作职责及能力要求

软件架构师的主要工作职责及能力要求

 

工作职责

 

工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
 

能力要求

在技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,并做出合理的关键决定的能力 l、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。主要包括如下:

⒈对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等
⒉具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策;
⒊拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;
⒋以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美);
⒌精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等);
⒍具备系统设计员的所有技能,但涉及面更广、抽象级别更高; 活动确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型、评估构架的概念验证原型的可行性、组织系统实施模型、描述系统分布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素、构架文档、参考构架、分析模型、设计模型、实施模型、部署模型、构架概念验证原型、接口、事件、信号与协议等。
 

资格认证

在国外,软件架构师的培养与认证具有严格的过程,明确规定了教育目标、认证的要求和学习课程等方面的内容。下面,介绍三个组织的软件架构师认证情况。

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号文件决定在全国计算机技术与软件专业技术资格(水平)考试中设立系统架构设计师级别的认证考试,试图解决软件架构师认证问题。但是,由于各种原因,该考试未能如期举行,一拖再拖。其实,这些措施也只是暂时起到一个过渡的作用,只有建立完善的软件架构师教育培训方案和权威的教育认证机构,才是当前急需解决的问题。
 

微软“软件架构师"

微软“软件架构师”是级别最高的微软认证,它针对拥有十年以上IT管理经验的CIO级别的专业人士。目前全球范围内拥有该项认证的人数仅有大约40人。
架构师的职责主要有如下4条:
  1、确认需求
  在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
  2、系统分解
  依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
  软件架构师的功力基本体现于此,这是一项相对复杂的工作。
  3、技术选型
  架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。
  Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是MySQL?需要不需要采用MVC或者spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。
  架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。
  4、制定技术规格说明
  架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
  架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。 --------------------- 本文来自 Jack2013tong 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/huwei2003/article/details/51392131?utm_source=copy

展开阅读全文

没有更多推荐了,返回首页