Bootstrap

【系统架构设计师】一、绪论

1.1 系统架构的概念及其发展历史

1.1.1 概念

软件系统架构是关于软件系统的结构、行为和属性的高级抽象。在描述阶段、其对象是直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。软件系统架构不仅指定了软件系统的组织结构和拓扑结构,而且显示了系统需求和构成组件之间的对应关系,包括设计决策的基本方法和基本原理。

1.1.2 发展历史

1.2 系统架构师的定义与职业素质

1.2.1 系统架构师的定义

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

1.2.2 系统架构师技术素质

  • 具备丰富的一线大中型开发项目的总体规划、方案设计及技术团队管理经验;
  • 具备软件行业工作经验,熟悉业务领域的技术应用和发展;
  • 具有项目管理理论基础,并在应用系统开发平台和项目管理上有实践经验;
  • 对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
  • 具备C/S或B/S体系结构或特定领域软件产品开发及架构和设计经验;
  • 具备面向对象分析(OOA)、设计(OOD)、开发(OOP)能力,精通UML和XML等设计开发工具;
  • 对相关编程技术及整个解决方案有深刻的理解及熟练的应用,精通架构和设计模式,及设计产品框架能力;
  • 具备(大型)数据库的开发(使用)的技术能力;
  • 对计算机系统、网络和安全、应用系统架构等有全面的认识;
  • 良好的团队意识和协作精神,有较强的内外沟通能力。

1.2.3 系统架构师管理素质

  • 远见、诚信、果断的领导素质;
  • 制定清晰的、强制的、有远见的项目/团队目标的领导能力;
  • 提供特定的方法和模型作为理想技术解决方案的技术能力;
  • 具备及时解决技术问题的紧迫感和自信心。

1.2.4 系统架构师与其他团队角色的协调

(1)项目管理师

负责整个项目的实施和控制,协调各种资源(包括组织内部资源和客户资源)。

  • 掌握信息系统项目管理的知识体系,具备管理大型、复杂信息系统项目和多项目的经验和能力;
  • 能根据需求组织指定可行的项目管理计划;
  • 能够组织项目实施,对项目的人员、资金、设备、进度和质量等进行管理,并根据实际情况及时做出调整,系统地监督项目实施过程的绩效,保证项目在一定的约束条件下到达既定的项目目标;
  • 能分析和评估项目管理技术和成果;
  • 能在项目管理进展的早期发现问题,并有预防问题的措施;
  • 能够协调项目所设计的相关人员。
(2)系统分析师

获取并分析用户的需求,形成规范化的文档,指导整个项目的开发,需要与客户不断的交流,熟悉应用领域的业务。

  • 熟悉应用领域的业务,能够分析用户的需求和约束条件,写出信息系统需求规格说明书,制定项目开发技术,协调项目开发与运行所涉及的各类人员;
  • 能够指导指定企业的战略数据规划,组织开发项目;
  • 能评估和选用适宜的开发方法和工具;
  • 能够按照标准规范编写系统分析、设计文档;
  • 能对开发过程进行质量控制与进度控制;
  • 能具体指导项目开发。
(3)系统架构师

强调整体的、宏观的系统设计,重点在架构级别上,对架构进行描述、分析和评估。

  • 能够根据用户需求,结合用户应用领域的实际情况,设计正确、合理的软件架构,维护系统构件及其接口,并确保系统架构具有良好的性能;
  • 能够对项目进行系统架构级的描述、分析、设计和评估;
  • 能够按照相关标准编写相应的设计文档;
  • 具有扎实的理论功底、广博的知识面,能够与系统分析师、项目管理师相互协作、配合工作。
    系统架构师的定位

1.3 系统架构师知识结构

软件系统架构师综合知识能力结构包括9个方面:

  • 战略规划能力
  • 业务流程建模能力
  • 信息数据架构能力
  • 技术架构选择和实现能力
  • 应用系统架构的解决和实现能力
  • 基础IT知识及基础设施、资源调配能力
  • 信息安全技术支持与管理保障能力
  • IT审计、治理与基本需求分析、获取能力
  • 面向软件系统可靠性与系统生命周期的质量保障服务能力

注:系统构件、模式和规划三个方面的技术基础、原理和方法。

1.4 从开发人员和架构师

一名合格的软件架构师的成长应经历8年以上的软件项目开发实际工作经验,一般需要精力程序员、软件设计师等阶段,然后逐步成长为软件架构师。

;