background image

人/方/培/养/与/载/业

软件架构师必须设法降低可能

的技术风险对系统的冲击。在规划

初期,技术风险对一般人来说通常

都是不可知、不可验证也不可测

的。风险大多与系统层次的需求有

关,有时也会与组织需求有关。不

论任何类型的风险,有经验的架构

设计师都可在项目的先期也就是构

建架构时期,预先列出这些可能的

风险,然后在后续的开发时期配合

开发人员予以适当地处理与解决。

另外,架构设计师也必须领导开发

团队,保持与其他成员的良好互

动,确保开发人员是根据架构蓝图

来构建系统。

总之,软件架构师的主要任务

就是规划与系统架构层次相关的

事务,评估可能的风险与成本,并

有效运用有限的人力、物力资源满

足系统层次的需求。优秀的软件架

构师是保证软件系统强大生命力

的核心人物。专业架构师能够帮助

组织全面研究现有架构和设计模

式、评估系统设计的优缺点和可能

存在的风险,通过一系列的专题指

导和具体案例帮助组织掌握先进

的、成熟的设计模式,简化复杂的

业务逻辑和需求,确定系统最佳方

案。在必要的情况下,还可就特定

领域或课题,为开发人员提供定制

指导。

2.2

软件架构师与系统分析

师的区别

在一个较大规模的软件组织

里,一般都有项目管理师、软件架

构师、系统分析师、软件设计师、测

试工程师、数据库工程师、程序员、

过程改进、质量保证等不同的职

位。在这些职位中,人们容易混淆

的是系统分析师和软件架构师。对

于系统分析师的角色,业界有两种

观点,’一种是把系统分析师当成既

懂技术又懂管理的全能冠军,另一

种是把系统分析师当作需求分析

师,而架构师才是灵魂。那么,系

统分析9币与软件架构师在角色方面

的分配究竟有什么区别呢?

当软件规模比较小时,系统分

析师所完成的工作是把真正的业务

需求(这个需求不是指客户简单所

说的哪一个功能,而是需要去挖掘

的,可能是潜在的但又是系统必需

的,条例清楚、逻辑清晰的业务功

能,而且需求不仅仅只是来自业务

上的,系统所依赖的运行环境也会

产生一些需求)转换成计算机可理

解、可实现、可计算的模型。但由

于现在的系统规模越来越大,复杂

程度越来越高,而且应用领域也越

来越广,所以很难由一个工种的人

来全面完成这项艰巨的任务。

在具体的软件设计过程中,现

在把它分解为由系统分析师与软件

架构师合作共同来完成这一任务。

其中系统分析师侧重的是前一部分

的工作,软件架构师侧重的是后一

部分的工作。系统分析师的主要工

作内容包括业务需求分析、系统需

求分析、可行性分析以及建模等,

其特点是更多地与行业专家、用户

沟通,再及时与项目经理(项目管理

师)、软件架构师以及老板商讨,分

析项目具备的特点、成本、风险等,

考虑实现的模型。系统分析师所面

临的往往是有许多不确定性的事

件,需要对这些不确定的事件进行

分析、总结,使之得出一个相对可

靠的确定性结论或实施方案模型。

软件架构师的主要工作内容就

是在系统需求比较清晰的条件下进

行系统总体的架构设计,当然它也

可能会涵盖~些系统分析师和软件

设计师的工作内容,但其特点是确

定性的东西会多一些,力求为系统

找到或架构一个最优的模型。这里

面虽然可能有很多创新的成分,但

更重要的是如何充分运用现有的各

种模型、结构、方案,并根据项目

的特点,在各种方案中取长补短,

找到一个最好的平衡点和结合点,

使之最适合当前项目的解决方案。

所以,软件架构师实际上是使系统

细致化、完善化,为拥有更好的可

靠性提供保障。

在实际的职责上,软件架构师

比系统分析师所站的角度更高一

些。在大规模的软件系统中,系统

分析师可能就系统的某个子系统进

行分析与设计,而软件架构师应该

对整个系统的结构负责。

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

3.1

软件架构师的培养

软件架构师一般都是具备计算

机科学或软件工程的知识,由程序

员做起,然后再慢慢发展为架构师

的。在国内,很多大学目前还没有

设立软件架构的学位课程,虽然IT

业界对设计和架构的兴趣日渐高

涨,但各学校还无法在课程中增加

相应的内容来体现这一趋势。从这

个方面来说,学校教育已经远远落

后于产业发展。因此,促进和发展

软件架构学课程的任务将落在现在

的软件架构师身上。目前的软件架

构师应该帮助各大院校建立相关课

程体系,一旦教育课程建立起来,

知识体将不仅通过新毕业生的工作

成果来得到扩展,同时也会从适合

软件架构的教育研究和出版物中得

}计算机教育2006。11 l

67

万方数据