background image

一旦教育课程建立起来,知识体将不仅通过新毕业生的工作成果来得到扩展,同时也会从
适合软件架构的教育研究和出版物中得到扩展

[28]。

  虽然大学要加强软件架构学课程的建设,但是,软件架构师的成长应该有一个实践的
教育过程,并不是简单的学校的理论学习或者通过大型软件公司的认证就能成为合格的软
件架构师。除了信息系统综合知识在学校学习外,软件架构师的大部分知识和经验将来自实
际开发工作。根据软件架构师的任职条件,一名合格的软件架构师的成长应该经历

8 年以上

的软件项目开发实际工作经验。一般需要经历程序员、软件设计师等阶段,然后再发展成为
软件架构师。
  当然,并不是每一位程序员经过

8 年后都可以成长为软件架构师的。一个软件工程师在

充分掌握了软件架构师工作所必需的基本理论和技能后,如何得到和利用机会、如何利用所
掌握的技能进行应用系统的合理架构、如何不断的抽象和总结自己的架构模式、如何深入行
业成为能够胜任分析、架构为一体的精英人才,这就在于机遇、个人的努力和天赋了。
  就目前来看,国内软件架构师的培养途径主要有两种方式,一种是大学

(软件学院)教

育方式,另一种是个人自我培养然后再进行相应的培训和认证。但是,不管哪种方式都有其
不足之处。
  软件学院的培养方式能够系统的学习软件架构师必需的知识体系,但是,软件架构师
不是简单的通过理论学习就能够培养出来的,软件学院的学生可能缺乏必要的设计、开发经
验和相关的领域知识。尽管软件学院也强调给予学生实践的机会,但毕竟这种机会是有限的。
有关

“三分之一的师资来自企业”的规定,在部分软件学院中也没有得到真正落实,导致传

授给学生的还是一些纯理论知识。
  自我培养方式的主要对象是具有一定年限的软件开发和设计人员,如
Microsoft、IBM、Sun 等公司的软件架构师认证对学员的基础并没有具体的要求,只要交纳
规定的费用,然后进行几天的集中培训,通过考试就发给学员证书,甚至不需要考试就直
接发放证书。这些开发人员在自我培养的过程中不一定能够系统的学习软件架构师的理论知
识,他们只具有一定的开发和设计经验,仅仅经过几天的培训,是不太可能培养出合格的
软件架构师的。而且,作为某个厂商的培训和认证,其最终目的是培育自己的市场,培养一
批忠诚的用户,而不是为中国培养软件架构师。因此,也存在很大的问题和缺陷。
  

5.2 软件架构师的认证

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

(1)UC Irvine。在 UC Irvine 的软件架构师认证计划[27]中,为了拿到软件架构师 C 级认

证,学员必须完成

11 个单元的必修课程和至少 4 个单元的选修课程。这些课程包括:

  

·必修课程:软件系统建模和分析概论(2 个单元)、系统分析基础(3 个单元)、用户需求的

分析和文档化

(3 个单元)、软件架构项目(3 个单元)。

  

·选修课程:信息系统项目管理(2 个单元)、系统性能建模(2.5 个单元)、管理业务改进项

(2.5 个单元)。

  

UC Irvine 的软件架构师认证要求学员具有业务系统建模,决定用户需求,评价业务过

程的能力,掌握项目管理技术,能设计完善的、具有最佳可适应性和可扩展性的架构。该认
证程序以一门实践课程结束,在实践课程中,学员从头开始,设计一个大规模软件解决方
案的架构。
  

(2)CMU/SEI。SEI 在软件架构师方面的认证[42]包括三个职位,分别是软件架构师 、

ATAM 评估师和 ATAM 主任评估师。这些认证都需要学习 2 年的课程。其中软件架构师需要
学习的课程有软件架构:原理与实践、软件架构文档化、

)软件架构设计与分析和软件产品线。