高质量软件架构设计案例分析和最佳实践高级研修班
课程介绍:
随着网络与信息技术的高速发展,软件研发逐渐朝着大规模、高复杂度的大型软件系统发展。特别是随着近几年互联网的高速发展,带动着全行业的互联网转型,使得未来的软件系统还将向着持续性、深层次架构调整的方向发展。在这样的背景下,如何从全局的角度思考软件系统方方面面的问题,提前识别软件项目的技术风险点,并有针对性地制订技术方案,以及如何构建一个更加灵活、易于调整、快速变化的软件系统,成为大型软件系统至关重要的设计内容。
本课程首先将系统地讲述高质量的软件架构该设计过程,包括如何运用领域驱动设计的思想贯穿整个架构设计,又如何使软件系统在衍变中调整架构,从而适应需求的变化;如何运用5视图的方法,全面地思考软件架构各方面的问题:从需求的角度进行可行性分析;从全局的角度进行软件分层、技术选型、模块划分等方面的设计;运用数据持久化的方式设计数据结构;运用“属性->场景->决策”的过程把握非功能设计;从部署、网络、性能的角度进行物理架构的设计,从而有效避免架构设计时遗漏关键风险点,使架构设计过程变得有序。
接着,本课程从敏捷的角度,探讨了当下比较流行的敏捷架构设计,包括意图架构、架构跑道,以及如何实现架构演化,等等。通过这些案例的讲解,可以为学员日后的架构设计开阔思路、加深认识。
特别是,针对许多嵌入式团队,随着系统规模越来越庞大而陷入的设计与维护的困局,本课程创新性地提出了,运用面向对象的思想,运用领域驱动进行嵌入式的架构设计,并在课程中引入了一些嵌入式向5G技术带动的云+端转型,以及人工智能方面的案例,在华为、西门子等团队中取得了不错的效果。
课程特点:
本课程注重实战,采用案例贯穿的方式,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总与研讨,并最终形成培训教程。通过大量的真实案例,详细地介绍了软件架构设计过程需要注意的要点以及难点,这些知识都是讲师近二十年经验的总结。
课程内容:
第一单元:软件架构设计概述
一、什么是软件架构
二、什么是架构设计
三、什么是架构师
1)剖析架构师的4种职责及其能力要求
2)解读架构师的4种类型及其在项目中的作用:
Product architect, System architect,
Platform architect,Enterprise architect
3)成为架构师的思维转变
四、剖析架构师的本质:
1)架构师 ≠ 技术大牛
2)架构师要能够将业务转换为技术
3)架构师能合理运用技术支撑业务
五、如何成为一个顶级架构师:
1)对业务及其痛点有深刻的理解与思考
2)能够将技术落地产生业务价值
六、架构设计的难题:
1)如何快速有效地学习业务领域知识
2)如何深入地理解与挖掘业务痛点
3)如何通过技术的手段落地业务
七、架构师的思维习惯:
1)宏观思维
2)抽象思维
3)战略思维
4)前瞻思维
八、业务架构、功能架构与技术架构
1)剖析它们的概念、关系与差异
2)大前端+技术中台的建设思路
九、架构设计5视图法
第二单元:逻辑架构设计过程
一、逻辑架构的概念与重要作用
二、需求分析与用例模型设计(Requirements Engineering)
案例:演示用例模型设计过程(双方共同确定案例内容)
1)“粗→细→粗”的用例模型设计过程
2)用三种类型的用例描述编写需求规格说明书
3)用需求列表进行需求跟踪
4)基于UML的需求规格说明书
三、界面原型设计
四、领域驱动设计与业务建模
所有软件企业不得不面对的问题
1.我们现在面对的是快速变化的时代
2.软件研发却出现了问题:
变更越频繁,代码质量下降越快
案例:演示电商网站付款功能代码质量下降的过程
3.揭示软件退化的根源
案例:演示软件退化的过程与高质量设计的过程
深度解读高内聚与单一职责原则
领域驱动设计
1.软件变更过程中的设计难题
2.领域驱动的设计思想
案例:重新演练电商网站付款功能的变更过程
第一个版本的领域模型与设计
◆ 构建用例模型
◆ 构建领域模型
◆ 构建领域事件
第一次变更的分析设计过程
◆ 演示领域分析不断深入的过程
◆ 演示领域驱动指导软件变更的过程
第二次变更与两顶帽子的设计方式
第三次变更与限界上下文
◆ 聚合、工厂、仓库的设计
◆ 限界上下文与微服务
五、需求确认与可行性分析
1)阐述用户需求技术不可行的风险
2)用户需求技术不可行的风险规避过程
3)树立架构师威信与客户引导技巧
第三单元:开发架构设计过程
一、开发架构的概念与设计思路
二、系统规划与接口定义
案例:远程智慧医疗平台的系统规划过程
三、系统分层与技术中台设计
剖析常见的架构设计模式及其设计思想
1.整洁架构设计
2.六边形架构设计
3.CQRS架构设计
探讨软件架构如何支持领域驱动
1.架构调整不是件简单的事儿
如何实现业务领域层与技术框架的解耦
如何简化业务实现的过程
2.架构设计如何支持领域驱动
增删改如何支持领域驱动
查询如何支持领域驱动
3.微服务架构如何支持领域驱动
案例:一个简单、易于开发的微服务架构
如何实现前端微服务化的设计
四、开发架构的技术选型
五、软件开发规范的制订
第四单元:数据架构设计过程
一、探讨传统的数据架构设计过程
二、讲解基于领域的数据架构设计过程
1.如何将领域模型转换为数据库设计
传统的4种关系转换为数据库设计
继承关系的3种数据库设计
2.如何将领域模型转换为软件
贫血模型 vs. 充血模型
事件驱动与领域事件的设计
限界上下文与微服务拆分
案例:在线订餐系统的微服务设计过程
第五单元:运行架构设计过程
一、探讨运行架构的设计过程
1.关注关键点与难点而不是全局
2.属性→场景→决策的分析过程
二、组件规划与组件级重构
案例:云+端技术转型与软件重构过程
1.嵌入式温控系统的最初设计过程
2.嵌入式温控系统向集中式转型
3.嵌入式温控系统向云+端的智能转型
第六单元:物理架构设计过程
一、探讨物理架构设计过程
1.案例讲解一些常见物理架构设计
2.案例讲解应用架构设计
3.案例讲解一些技术方案的编写
第七单元:架构整体规划制订过程
一、软件架构规划过程
1.“粗→细→粗”的架构规划过程
2.总体架构设计与应用架构
3.架构规划 vs. 架构演化
4.意图架构与架构跑道
二、战略主题与架构路线图
1.外部环境分析:市场、客户、竞争对手
2.内部状况分析:产品、技术、团队
3.战略主题、解决方案上下文与敏捷发布火车
4.制定基于用户价值流的架构路线图
讲师简介:
高级系统架构师、从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。尤其熟悉互联网架构与分析的特点,长期关注软件代码质量,多次参与大型遗留系统改造、软件系统重构等重大项目。先后主持或参与了数十个国内外大型软件项目,涉及国家财政、军工、税务、医疗等领域的大数据建设、风险防控与人工智能研究,互联网及大数据转型的实践者与倡导者。分别担任过需求分析师、主任设计师、项目经理、高级系统架构师、技术专家等各项职务。
时间、地点:来电咨询
具体开课信息请来电咨询!
- 上一篇:高速电路信号完整性--系统化设计方法及案例分析高级研修班 2022/3/23 10:49:48
- 下一篇:以可靠性为中心的质量设计、分析和控制高级研修班 2022/3/23 10:50:15