📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~
文章目录
- 前言
- 系统架构师的定义和分类
- 架构设计师的职责
- 架构师的知识结构和专业素质
- 系统架构师与其他岗位的区别
- 与项目经理区别
- 与产品经理的区别
- 与系统分析师
- 如何成为系统架构设计师
- 总结
前言
从本篇开始,梳理关于软考的系统架构设计师的文章,如果不对,还望指出。
系统架构师的定义和分类
系统架构设计师 (System Architecture Designer) 是项目开发活动中的众多角色之一,它可以是一个人或一个小组,也可以是一个团队。
架构设计师是系统开发的主体角色,构设计师的成果是创建架构,系统开发中架构设计师是整个系统的核心。架构设计师是负责系统架构的人、团队或组织 (IEEE1471-2000)。架构设计师是系统或产品线的设计责任人,是一个负责理解和管理并最终确认和评估非功能性系统需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等),给出开发规范,搭建系统实现的核心构架,对整个软件架构、关键构件和接口进行总体设计并澄清关键技术细节的高级技术人员。
从组织上划分,架构师通常可分为:业务架构师 (Business Architect)
、主题领域架构师 (Domain Architect)
、技术架构师 (Technology Architect)
、项目架构师 (Project Architect)
和系统架构师 (System Architecture)
等5类。
根据架构师关注的领域不同,可将系统架构设计师分为4种:企业架构师EA(Enterprise Architect)
、基础结构架构师IA(Infrastructure Architect)
、特定技术架构师TSA(Technology Architect)
和解决方案架构师 SA(Solution Architect)
。
架构设计师的职责
架构设计师的职责应该是技术领导,架构设计师必须非常关注交付的实际结果,必须能够进行决策并确保这些决策被传达、理解并始终被执行。架构设计师在项目中的主要任务可以概括如下(但不限于这些概括内容):
- 领导与协调整个项目中的技术活动(分析、设计和实施等) 。
- 推动主要的技术决策并最终表达为系统架构。
- 确定系统架构,并促使其架构设计的文档化,这里的文档化应包括需求、设计、实施和部署等“视图”。
从技术角度看,架构设计师的职责就是抽象设计、非功能设计和关键技术设计等三大任务。
架构师的知识结构和专业素质
在软考中,主要是设置了如下职业资格:
在第二版上,明确说出架构师需要有以下10种知识结构的能力:
(1)战略规划能力。管理者和组织者在全面衡量内外部环境条件的基础上,为组织设计相应发展的目标、前进方向、发展步骤的能力。
(2)业务流程建模能力。作为一名架构师或者一个团队能够清晰地描述、分析和优化其业务流程的能力。这通常涉及对业务流程的识别、定义、文档化以及持续改进。业务流程建模有助于项目/产品理解其运营过程中的各个环节、识别瓶颈和浪费、优化流程以提高效率和效果。
(3)信息数据架构能力。利用数据资源方面所具备的一种核心能力,涵盖了从数据的收集、整理、存储、处理到分析、应用的全过程,旨在确保数据的有效性和可用性,以支持企业的决策制定、业务运营和战略规划。
(4)技术架构设计和实现能力。在软件开发和信息系统建设中至关重要的能力,包括需求分析、架构设计、技术选型、实现与部署等。
(5)应用系统架构的解决和实现能力。在软件开发和信息系统建设中实现某种架构来支撑业务需求,确保系统能够满足业务需求、具备良好的扩展性、稳定性和安全性。
(6)基础IT知识及基础设施、资源调配的能力。这个应该是自己的专业知识或者说是专业能力,主要有计算机基础知识、网络技术、数据库技术、编程语言与框架、系统分析与设计、基础设施规划、资源调配与优化、故障排查与恢复、安全与合规,在出现问题或者故障可以不断优化和升级系统架构,以适应不断变化的市场需求和技术环境。
(7)信息安全技术支持与管理保障能力。确保信息的保密性、完整性和可用性,所具备的技术支持能力和管理保障能力。这种能力对于维护信息系统的安全稳定、防范网络攻击和数据泄露等风险具有重要意义。主要有漏洞扫描与渗透测试、安全评估报告、制定安全管理制度、安全培训与教育、权限管理与访问控制、数据备份与恢复、合规性管理、遵守法律法规、合规性审计。
(8)IT审计、治理与基本需求的分析和获取能力。最主要的是遵纪守法,检查信息系统和相关流程是否符合适用的法律法规、行业准则和治理标准。
(9)面向软件系统可靠性与系统生命周期的质量保障服务能力。确保软件系统在整个生命周期内稳定运行、满足用户需求并达到高质量标准。
(10)对新技术与新概念的理解、掌握和分析能力。个人不断的学习能力,对新技术、新知识、新概念,需要不断的理解、学习、分析和应用。
系统架构师与其他岗位的区别
与项目经理区别
首先想到的应该是项目经理,项目经理是对项目的控制和管理,关注项目本身的进度、质量、资源分配和调度、协调资源的一个负责人,项目最终的有项目经理负责。而系统架构设计师可以是一个人,也可以是一个团队,主要是是提供系统的总体架构和开发指导。
与产品经理的区别
其次想到的应该是产品经理,这也是我们耳熟能详的名字,产品经理通常是专职于产品设计的人员,但最终还是一个商业化角色出现在产品中,如果项目上配备了一个产品经理,个人认为还不如叫一个产品专员更为贴切。技术上来说,系统架构设计师可谓一个技术专家,而产品经理则只需要一个技术背景。看待问题立场上,产品经理多服务于用户体验和需求,市场和竞品以及产品未来,而系统架构设计师则主要为技术性实现、性能、安全、扩展和维护。
与系统分析师
系统分析师应该是负责业务分析、系统的分析、设计和优化工作,系统分析师在工作中有很多不确定的因素围绕,此时系统架构设计师应该是协助分担系统分析师做一些前期设计工作。
如何成为系统架构设计师
从上述的10种能力来看,从管理、技术、运维、运营等不同角度来描述如何成为系统架构设计师或者其中的一员。一般情况下,建议先考取软件设计师或软件测评师,而后再考取系统架构设计师或系统架构分析师。
如果从一名程序员出发,首先应该具备领域专业知识、计算机科学技术和软件工程知识,其次应该具备一定项目开发实际工作经验。
总结
本章节在实际考试中分数占用率较少,多数会出现一个选择题,但是针对我们开发人员来讲了解基础和背景,立志成为一个系统架构设计师,却是一个垫脚石。
[引用]
- 软考-《系统架构设计师》(第二版)
- 软考资格设置:https://www.ruankao.org.cn/introduction
欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。