最新资讯 New
你的位置:首页 > 新闻动态 > 电子硬件

高质量软件架构设计案例分析和最佳实践高级研修班

2022/3/23 10:46:10

课程介绍:

随着网络与信息技术的高速发展,软件研发逐渐朝着大规模、高复杂度的大型软件系统发展。特别是随着近几年互联网的高速发展,带动着全行业的互联网转型,使得未来的软件系统还将向着持续性、深层次架构调整的方向发展。在这样的背景下,如何从全局的角度思考软件系统方方面面的问题,提前识别软件项目的技术风险点,并有针对性地制订技术方案,以及如何构建一个更加灵活、易于调整、快速变化的软件系统,成为大型软件系统至关重要的设计内容。

本课程首先将系统地讲述高质量的软件架构该设计过程,包括如何运用领域驱动设计的思想贯穿整个架构设计,又如何使软件系统在衍变中调整架构,从而适应需求的变化;如何运用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.制定基于用户价值流的架构路线图

讲师简介:

高级系统架构师、从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。尤其熟悉互联网架构与分析的特点,长期关注软件代码质量,多次参与大型遗留系统改造、软件系统重构等重大项目。先后主持或参与了数十个国内外大型软件项目,涉及国家财政、军工、税务、医疗等领域的大数据建设、风险防控与人工智能研究,互联网及大数据转型的实践者与倡导者。分别担任过需求分析师、主任设计师、项目经理、高级系统架构师、技术专家等各项职务。


时间、地点:来电咨询

具体开课信息请来电咨询!