background image

的加密、通信的安全和系统的安全设计等。
  

(10)复杂架构设计:包括操作系统的架构、编译器的架构和大型基础库的架构等。

  

3.2 软件架构师的任职条件

  根据软件架构师的职责和角色定位,以及知识体系,从实践的角度考虑,合格的软件
架构师应该具有以下能力和经验:
  

(1)具有 8 年以上的软件项目开发实际工作经验,其中至少有 3 年以上的代码编写工作

经验,

4 年以上的基于面向对象和构件开发方法的软件产品设计经验。

  

(2)具有 5 个以上大中型开发项目的总体规划、方案设计经验,有大中型应用系统开发

和实施的成功案例。
  

(3)对相关的技术标准有深刻的认识,对软件工程标准和规范有良好的把握。

  

(4)对.Net 或 Java 技术及整个解决方案有深刻的理解及熟练的应用,精通 Web Service

J2EE 等流行的架构。

  

(5)对设计模式有深刻的理解,并能在此基础上设计出适合产品特性和质量属性的框架。

  

(6)具有面向对象的分析、设计和开发能力,精通 UML 和 XML,能熟练使用 Rational 

Rose、PowerDesigner 等工具进行设计。
  

(7)具有良好的团队意识和协作精神,有较强的沟通能力和书面表达能力。

  

(8)具有旺盛的精力和学习能力,能快速掌握新技术和新方法。 

 

4 软件架构师工作的评估

  通过上面的介绍,读者对软件构架师有了的较深刻的认识,明白了软件构架师的地位
和作用、工作职责及任职条件,同时还区别出与其他角色的不同。既然在软件组织中要设置
软件架构师的职位,那么,就存在一个绩效考核的问题。对于软件架构师的绩效考核,可以
根据对工作职责和任职条件的考察,通过以下方面来评估软件架构师的工作成绩:
  

(1)是否是某一技术领域的专家。

  

(2)能否指导软件设计师的工作,发现并指出设计存在的问题并提出解决方法,评审他

们的工作。
  

(3)能否及时有效地解决设计、开发人员所提出的问题,解决技术上的难题。

  

(4)能否经常组织并带领内部人员研究、学习与项目相关的新技术和新方法。

  

(5)能否组织和管理好内部的技术研究和攻关工作。

  

(6)能否给项目、产品开发实施团队提供技术保障。

  

(7)所设计的软件架构是否合理,技术是否先进,能否满足客户的需求,满足产品的功

能和性能要求。
  

(8)所设计的软件架构是否具有可扩展性和安全性,能否经受压力测试等。

  

(9)是否具有分析、识别并尽可能地回避风险,降低风险所引发问题成本的能力。

  

(10)能否为组织降低开发成本,提高开发效率。

  

(11)能否与系统分析师和项目管理师协调工作,工作是否和谐。

  

(12)是否具有良好的团队意识和协作精神,是否有较强的沟通能力和书面表达能力。 

5 软件架构师的培养与认证
  

5.1 软件架构师的培养

  软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢
发展为架构师的。在国内,很多大学目前还没有设立软件架构的学位课程,虽然

IT 业界对

设计和架构的兴趣日渐高涨,但各学校还无法在课程中增加相应的内容来体现这一趋势。从
这个方面来说,学校教育已经远远落后于产业发展。因此,促进和发展软件架构学课程的任
务将落在现在的软件架构师身上。目前的软件架构师应该帮助各大院校建立相关课程体系,