1. 关于系统架构师
1.1 系统架构的概念和发展历史
1.1.1 系统的概念
系统架构三要素:构件、模式和规划。
软件系统架构是关于软件系统的结构、行为和属性的高级抽象。
1.1.2 简要的发展历史
- 20 世纪 80 年代 Zachman 框架
- 20 世纪 90 年代 TOGAF (The Open Group Architecture Framework, Open Group 架构框架)
- …
1.2 系统架构师的定义与职业素质
系统架构师分类
- 业务架构师(Business Architect)
- 主题领域架构师(Domain Architect)
- 技术架构师(Technology Architect)
- 项目架构师(Java Architect、.NET Architect)
- 系统架构师(System Architect)
1.2.1 定义
系统架构师是系统或产品线的设计责任人,是一个负责理解和管理并最终确认和评估非功能性需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等),给出开发规范,搭建系统实现的核心框架,对整个软件架构、关键构件、接口进行总体设计并澄清关键技术细节的高级技术人员。
1.2.2 系统架构师技术素质
- 具备吩咐的一线大中型开发项目的总体规划、方案设计及技术队伍管理经验。
- 具备软件行业工作经验,熟悉业务领域的技术应用和发展。
- 具有项目管理理论基础,并在应用系统开发平台和项目管理上有实践经验。
- 具备 C/S 或 B/S 体系结构或特定领域软件产品开发及架构和设计的经验。
- 具有面向对象分析、设计、开发能力,精通 UML 和 XML 等,熟练使用 Rational Rose、PowerDesigner 等 CASE 工具进行设计开发。
- 对相关编程技术(如 Java/.Net/Python)及整个解决方案有深刻的理解级熟练的应用,并且惊天架构和设计模式(如 WebService/MVC),并在此基础上设计产品框架。
- 精通大型数据库如 Oracle、Sql Server、MySQL 等的开发。
- 对计算机系统、网络和安全、应用系统架构等有全面的认识。
- 良好的团队意识和协作精神,有较强的内外沟通能力。
1.2.3 系统架构师管理素质
远见、诚信、果断
1.2.4 系统架构师与其他团队角色的协调
参考图
1.3 系统架构师知识结构
- 战略规划能力
- 业务流程建模能力
- 信息数据架构能力
- 技术架构选择和实现能力
- 应用系统架构的解决和实现能力
- 基础 IT 只是级基础设施、自由调配能力
- 信息安全技术支持与管理保障能力
- IT 审计、治理与基本需求分析、获取能力
- 面向软件系统可靠性与系统生命周期的治疗保障服务能力
1.4 从开发人员到架构师
程序员 -> 软件设计师 -> 系统架构师
国外软件架构师认证:
- UC Irvine
- CMU/SEI
- iCMG