软件架构设计:实用方法及实践
上QQ阅读APP看书,第一时间看更新

1.3 架构师的角色

一个软件架构师比“仅仅是”一个设计师意味着更多的东西。这个可以由单人或多人承担的角色有一个冗长的职责、技能和知识的列表。一个成功的软件架构师必须满足这些条件。这些先决条件包括以下几点:

❑ 领导力:工作指导、团队建设、建立愿景、组织培训。

❑ 沟通:技术和非技术的沟通、鼓励合作。

❑ 谈判:处理内部和外部的利益相关者和他们之间相互冲突的需求和期望。

❑ 技术技能:生命周期技能、专业技术知识、持续学习、编码能力。

❑ 项目技能:预算、人员、进度管理、风险管理。

❑ 分析能力:软件架构分析、项目管理和测量的常规分析思维(参看下面的引文“分析的含义”)

成功的设计不是一个“贴在墙上”的静态文档。也就是说,软件架构师不仅要做好设计,而且必须密切参与项目的每一个方面,从概念和业务论证到设计与建立,直到运营、维护,最终到项目结束为止。

分析的含义

在《韦氏词典》中,分析这个词的定义如下:

❑ 仔细研究一些事物来了解它的构成部分、各部分的作用,以及它们是如何相互关联的。

❑ 对事物的性质和意义的解释。

在本书中,分析这个词被用做不同的用途,这两个定义都适用。例如,作为软件架构评估活动的一部分,分析一个现有的架构以评估它是否是适当的,能够满足与其相关的驱动因子。在设计过程中,对输入进行分析以做出设计决策。创建原型也是一种分析形式。事实上,分析在设计过程中非常重要,所以我们将第8章专门讨论这个话题。在这里,我们还会更详细地讨论分析和评价之间的关系。在本书中,我们主要关注设计活动,与设计活动相关的技术技能,设计活动与开发生命周期的整合。对于一个架构师生涯的其他方面更加详尽的论述,我们建议你阅读一本更通用的关于软件架构的书,如《Software Architecture in Practice》或《Just Enough Software Architecture》。