架构是体砚在组件中的一个系统的基本组织、它们彼此的关系与环境的关系及指导它的设计和发展的原则。
系统是组织起米元成某一特应功能或一组功能的组件集。系统这个术讪包扫了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及感兴趣的其他集合。系统用于完成其环境中的一个或多个任务。
环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的环境和设置。
任务是出一个或者多个利益相关者通过系统达到一些目标的系统的一个用途或操作。
系统架构( System Architecture) 是系统的·种整体的高层次的结构表示,是系统的骨架和根基,也决定了系统的健壮性和生命周期的长炬。
系统架构设计师是承担系统架构设计的核心角色,他不仅是连接用户需求和系统进程设计与实驯的桥梁,也是系统开发阜期阶段质量保证的关键角色。
架构设计的作用主要包括:
· 解决相对复杂的前求分析问题:
· 解决非功能周附在系统占据重要位置的设计问题:
· 解快生命周期长、扩展性需求高的系统整体结构问题;
· 解决系统娃子组件需要的集成问题:
· 解决业务流问再造难的问题。
软件架构的四个发展阶段:
基础研究阶段1968-1994,1968北大西洋公约组织会议上第一次提出软件架构的术语
概念体系和核心技术形成阶段1999-2000
理论体系完善与发展阶段1996-至今
逐渐形成的软件工程领域研究重点:软件架构描述与表示、软件架构分析、设计与测试; 软件架构发现、演化与重用:基于软件架构开发方法:软件架构风格: 动态软件架构等。
架构分析的内容可分为结构分析、功能分析和非功能分析。
普及应用阶段2000-至今
软件开发的各个阶段: 需求阶段,设计阶段,实现阶段,维护阶段。
软件架构的常用分类:
分层架构,最常见的四层架构:表现层、业务层、持久层、数据层
事件驱动架构,四个部分:时间队列,分发器,时间通道,事件处理器
微核架构,又称插件架构: 插件是相互独立的,插件之间的通信应用减少到最低,
避免相互依赖
微服务架构,服务导向架构,三种模式:
RESTful API模式, RESTful应用模式, 集中消息模式
云架构,最容易扩展的架构: 处理单元和虚拟中间件
虚拟中间件四个组件:消息中间件,数据中间件,处理中间件,部署中间件
系统架构常用建模:
结构模型,框架模型,动态模型,过程模型
架构发展的主线可以归纳为模块化编程/面向对象编程、构件技术、面向服务开发技术和云技术。
架构设计师是负贡系统架构的人、团队或组织
架构设计师的任务与组成
(1) 领导与协调整个项目中的技术活动(分析、设计和实施等〉。
(2) 推动主要的技术决策并最终表达为系统架构。
(3)确定系统架构,并促使其架构设计的文档化,这里的文档化应包括筒求、设计、实施和部署等"视图"。
架构设计师应具备的专业素质
1、掌握业务领域的知识;
2、掌握技术知识
3、掌握设计技能
4、具备编程能力
5、具备沟通能力
6、具备决策能力
7、知道组织决策
8、应是谈判专家
架构设计师的知识结构
(1)战略规划能力。
(2) 业务流程建模能力。
(3)信息数据架构能力。
(4) 技术架构设H和实现能力。
(5) 应用系统架构的解决和实现能力。
(6) 基础lT 知识及基础设施、资源调配的能力。
(7)信息安全技术支持与管理保障能力。
( 8) IT 审计、治理与基本需求的分析和获取能力。
(9) 面向软件系统可靠性与系统生命周期的质量保障服务能力。
(10) 对新技术与新概念的理解、掌握和分析能力。
架构设计师必须具备的6个角色特质:
· 作为领导者:
· 作为开发者;
· 作为系统综合者;
· 具备企业家思维;
· 具备战略技术专家的权衡思维与战术思维;
· 具备良好的沟通能力。
从工程师到系统架构设计师成长演化的几个阶段:
1、工程师阶段
2、高级工程师阶段
3、技术专家阶段
4、系统架构设计师(初级)
5、系统架构设计师(中级)
6、系统架构设计师(高级)
专业顶尖人才10000小时定律