系统架构设计师-03-系统架构设计师概述

业务架构师 (Business Architect)、 主题领域架构师 (Domain Architect)、 技术架构师 (Technology Architect)、 项目架构师 (Project Architect)和**系统架构师 (System Architecture)**等5类。如果参考微软公司对架构设计师的分类,这里根据架构师关注的领域不同,可将系统架构设计师分为4种:企业架构师EA(EnterpriseArchitect)、 基础结构架构师IA(Infrastructure Architect)、 特定技术架构师TSA(Technology
Architect) 和解决方案架构师 SA(Solution Architect)。

1.2 系统架构设计师概述

1.2.1 架构设计师的定义、职责和任务

1. 架构设计师的定义

架构设计师是系统开发的主体角色,他们通过执行一系列活动来实施架构设计。架构设计通过生成过程形成最终的产品架构,架构设计师的成果是创建架构。

架构设计师、架构设计和架构的关系:

架构设计师是系统或产品线的设计负责人,是一个负责理解并最终确认和评估非功能性需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等),给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构件和接口进行总体设计并澄清关键技术细节的高级技术人员

2. 架构设计师的职责

是项目的技术领导,拥有进行技术决策的权威。
代表了这个项目的公共角色。
为他人树立榜样并在制定方向方面表现出自信。
保证团队成员能够在后续项目的开发中能够完整地理解架构设计师的设计思路。
必须非常清楚项目的总体目标和实施方法。
是特定的开发平台、语言、工具的大师。
对常见应用场景能及时给出最恰当的解决方案。
对所属的开发团队有足够的了解。
能够评估该开发团队实现特定的功能需求目标的资源代价。
必须非常关注交付的实际结果。
必须赋予项目在技术方面的驱动力。
3 架构设计师的任务与组成
架构设计师在项目中的主要任务:

领导与协调整个项目中的技术活动(分析、设计和实施等)。
推动主要的技术决策并最终表达为系统架构。
确定系统架构,并促进其架构设计的文档化,文档化应包括需求、设计、实施和部署等“视图”。
从技术角度看,架构设计师的职责就是抽象设计、非功能设计和关键技术设计等三大任务。

4 架构设计师应具备的专业素质
掌握业务领域的知识。
掌握技术知识。
掌握设计技能。
具备编程技能。
具备沟通能力。
具备决策能力。
知道组织策略。
应是谈判专家。
5 架构设计师的知识结构
战略规划能力。
业务流程建模能力。
信息数据架构能力。
技术架构设计和实现能力。
应用系统架构的解决和实现能力。
基础IT知识及基础设施、资源调配的能力。
信息安全技术支持与管理保障能力。
IT审计、治理与基本需求的分析和获取能力。
面向软件系统可靠性与系统生命周期的质量保障服务能力。
对新技术与新概念的理解、掌握和分析能力。
6 如何成为一名优秀的系统架构设计师
6.1 角色特质
Pat Kua(原ThoughtWorks咨询师)提出:一个好的架构设计师是技术全面的,并给出了成为一个技术全面的架构设计师必须具备的6个角色特质:

作为领导者;
作为开发者;
作为系统综合者;
具备企业家思维;
具备战略技术专家的权威思维与战术思维;
具备良好的沟通能力。

6.2 从工程师到系统架构设计师的演化
工程师和架构设计师的本质区别主要体现在技术、组织和个人成长上。

在技术上,架构设计师首要工作是抽象建模,而比首要工作更重要的是了解自己所处的业务领域。只有对业务足够了解,才能更好地抽象和建模,也更能沉淀通用的设计方法论。

另一方面,架构设计师需要了解甚至精通业务领域所涉及的技术领域,譬如对于互联网行业的架构设计师,小到语言、算法、数据库,大到网络协议、分布式系统、服务器、中间件、IDC等等都需要涉猎。

架构设计师是技术团队的对外接口人,也应该是外部团队技术问题的终结者。除广度之外还要有深度,对于关键技术模块的设计,架构设计师需要有技术的权威性。

架构设计师要成为业务和技术的桥梁,因此需要精通业务和技术的语言,要锻炼沟通能力,不只是口头沟通能力,也包括用标准化的图表表达设计思路的能力。

很多时候都是在做权衡。可以说,架构的工作主题就是权衡。工程师经常是完美主义的,程序也总是精准而精确的,但是架构设计师要习惯于不完美和一定条件下的不精确。

--------------本文结束 感谢您的阅读--------------