曙海教育集团
全国报名免费热线:4008699035 微信:shuhaipeixun
或15921673576(微信同号) QQ:1299983702
首页 课程表 在线聊 报名 讲师 品牌 QQ聊 活动 就业
 

软件体系架构设计课程

 
   班级规模及环境--热线:4008699035 手机:15921673576( 微信同号)
       每期人数限3到5人。
   上课时间和地点
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山学院/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
最近开课时间(周末班/连续班/晚班):2020年3月16日
   实验设备
     ☆资深工程师授课
        
        ☆注重质量 ☆边讲边练

        ☆合格学员免费推荐工作
        ★实验设备请点击这儿查看★
   质量保障

        1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
        2、培训结束后,授课老师留给学员联系方式,保障培训效果,免费提供课后技术支持。
        3、培训合格学员可享受免费推荐就业机会。

课程大纲
课程介绍
   软件架构并非架构师闭门造车完成的作品,而是整个开发团队积极与客户沟通协作,在树立了共同的系统愿景与目标之后,由架构师基于架构原则与架构方法,在满足软件系统功能目标的前提下,进行的一次设计历险。之所以称为“历险”,是因为软件架构从来都不能一蹴而就,在这个过程中可能会经历诸多风险和未知的变化,如大海航行可能会遭遇的暗礁与风暴。是否能够到达成功彼岸,除了需要架构师卓越的架构能力,还需要整个开发团队遵循系统的架构原则与约束,并能在面对紧急时刻,调整系统的架构方向。

于是,设计软件架构就面临两大难题:

如何明确客户的需求,并将需求没有偏差,或较小偏差地转化为架构?
如何设计恰如其分的架构,从而在不浪费资源的情况下,具有掌控变化与风险的能力?

   本课程引入的领域驱动设计策略, 正是解决第一个问题的有效方案,它通过一些直观而又具备协作能力的方式,引导架构师与整个团队包括客户积极参与到软件架构过程中来,并通过场景图、上下映射图、六边形架构等诸多方法与模式,让架构变成为一种沟通交流的视觉工具。换言之,这是一种体验式的架构设计。它同样遵循经典的架构原则与设计方法,但却可以让这些原则与方法清晰地可视化,让团队协作成为可能,让架构结果更加直观,从而避免了沟通上的误差与分歧,使得团队能够迅速就架构内容达成一致。
     架构本身是复杂的,但它的呈现却必须足够清晰简单,易于理解,因为架构是作为开发团队交流基础而存在。要有效地解决前提出的第二个问题,就需要搭建一个具备简单、一致和自治特色的整洁架构。基于此,整个培训将围绕风险驱动设计与 Clean Architecture的思想来指导整个架构过程。

课程核心内容:
本次课程包括以下主要内容:
面向对象分析与设计
领域驱动设计
场景驱动设计
分层架构模式
六边形架构模式
面向服务架构
基于消息的分布式架构
数据为中心的软件架构
RESTful架构
CQRS架构
微服务架构
风险驱动模型
Clean Architecture思想

培训计划:
第一单元设计优良的架构
软件架构是针对软件系统、子系统以及模块层次的设计过程,包括如何组织系统组件,管理组件之间关系以及指导设计的基本原则。

架构的定义
业界对架构的各种认识与定义。对组件的理解,对自治组件与服务的分析;组件与环境的关系。架构决策的关键性,架构设计的重要原则:关注点分离原则与高内聚、松耦合。

优良的架构
优良架构的特征:简单、一致、清晰、自治。
设计简单的架构:清晰地表达设计意图,保证系统足够小,促进恰如其分的架构设计。遵循   “关注点分离”的架构原则,将架构的分离策略分为纵横分离与内外分离。
设计一致的架构:设计风格的一致性,概念的一致性,解决方案的一致性以及路线图的设计。
设计清晰的架构:随着软件系统变得越来越复杂,若能保证架构的清晰,将是避免混乱的关键。
设计自治的架构:最小完备特征、自我履行特征、稳定空间特征和独立进化特征。
案例分析:当当⺴的架构优化,普华永道的架构演化


第二单元架构风格与参考架构
REST架构风格
REST描述了Web作为一个分布式超媒体的应用,相互链接的资源通过交换代表资源状态的表述来进行通信。它是WEB系统架构运用最为文泛的架构风格。
案例分析:订单管理系统的REST架构。通过案例讲述如何在架构设计中运用REST架构。
基于消息的分布式架构
分布式架构是企业软件系统主要采用的一种架构风格,通过使用基于消息的中间件完成消息的发送与接收,从而实现系统之间的集成,以及业务处理的异步模型。
案例分析:医疗卫生知识库系统。通过引入消息队列改善系统架构的质量。
数据为中的软件架构
一般的数据管理系统都分为三个步骤: Data Ingestion、Data  Storage与Data Processing。在大数据处理中,这种模型体现得更为明显。所有的软件系统都离不开数据处理。此外,本节内容还会讲解   Spark所支持的MapReduce、Streaming等架构风格,剖析Spark的架构原理和最佳实践。
案例分析:电信业数据分析平台,分析基站、区以及客户的通信行为、通信质量和投诉管理。
向服务的软件架构与微服务架构
从SOA的服务设计原则到微服务( Micro Service)架构,讲解如何进行面向服务的架构设计。
案例分析:企业后台支撑系统

第三单元架构模式与应用实践
分层架构模式与实践
讲解经典的软件分层架构以及当下架构设计对分层的认识与分解,并介绍了领域驱动设计中推崇的分层模
式。
六边形架构模式与实践
Cockburn提出的六边形架构不仅是一种有效架构模式,同时还是一种非常重要的架构分析方法,重点关注模
块(子系统)之间的通信与集成方式。
微内核架构模式与实践
微内核模式是架构模式中极为重要的一种模式,尤其是它划分功能子集为核心功能子集的设计思想非常重要,但它的重要性却常常被人忽略。


管道-过滤器架构模式与实践
若要实现数据处理的良好可扩展性,有效降低数据处理的算法复杂度,就需要运用管道-过滤器模式。
MVC架构模式及其延伸
MVC架构模式是最常用的架构模式,体现了关注点分离的架构原则。在介绍  MVC模式的同时,还将讲解MVC模式的若干变化与延伸。
趋势分析:前端架构的演化与发展
CQRS架构模式与实践
CQRS模式即命令查询职责分离模式,是 DDD中基于事件的读写分离架构模式。将业务逻辑建模为状态机模型,并利用松散耦合的命令与事件机制,采用异步模型改善系统整体性能。
案例分析:会议注册与管理系统的 CQRS架构
第四单元领域驱动设计
优秀的软件系统与好的软件设计息息相关,但最关键的还是在于对需求的理解。如果不能正确的理解软件需求,那么再好的设计也不能设计出好的软件。正确的做事情固然重要,更重要的是要做正确的事。领域驱动设计就是要解决技术人员对业务建模的问题,是分析获得业务架构和应用架构的设计方法。
限界上下文(Bounded  Context)
若要进行领域建模,并将业务需求逐步演化为架构设计,则需要引入 DDD(领域驱动设计)的战略设计作为指导。场景图与限界上下文可以很好地结合,帮助架构师很好地识别各个子领域的概念边界与设计边界。如此则可以运用“分而治之”的思想识别出整个系统的业务逻辑边界与物理边界。
场景驱动
场景驱动设计的核心在于识别场景,它需要设计者结合具体的业务场景,分析业务流程,以此驱动出用例;再以用例驱动对业务逻辑的建模。场景驱动设计的核心模型为  6W模型,即Who,Why,When,What,Where与hoW。它将对应职责模型的业务价值、业务功能与业务实现,并从角色的角度思考对象之间的协作以及设计边界。
用例方法 (Use Case)
通过利用传统的用例方法来帮助我们驱动出领域的限界上下文。
演练:识别电子商务系统的限界上下文
上下文映射图 (Context  Map)
本部分内容会讲解限界上下文之间主要存在的组织模式与集成模式,这其中包括防腐层,开放服务调用等。利用上下文映射图,有助于识别上下文之间的关系,思考处于上下文内领域模型之间的通信方式,从而帮助架构师驱动出最终的应用逻辑架构。
可视化演练:电子商务系统的应用逻辑架构
第五单元风险驱动设计与Clean Architecture
风险驱动设计
风险驱动模型主要关注软件系统的质量属性,通过识别风险来逐步驱动软件架构设计,它强调进行恰如其分的架构设计。
风险驱动设计的过程风险驱动设计的过程分为三个步骤,即识别风险,并对风险排定优先级;选择和运用适当的软件技术来降低风险;评估风险是否得到降低。
案例分析:RackSpace架构的演进
风险评估模型
评估风险并非只是架构师的职责,而应该是整个团队包括客户共同参与的结果。本部分将引入可视化的Future Backwards方法,引导团队搭建软件系统的风险评估模型。
约束对架构的驱动
除了风险之外,我们也可以通过识别一些架构约束(约束的识别是通过与客户的充分沟通,从质量属性的角度来分析),并将其作为一种驱动力来逐步改进或者调整架构。技术债务也可以看做是另一种设计约束,我们需要随时更新整个项目的技术债务,并制定相应的计划去解决这些技术债务,从而进一步优化软件系统的整体架构。
案例分析:约束对REST架构风格的设计驱动
Clean Architecture思想
Clean Architecture提出的模型是一个可测试的模型,无需依赖于任何基础设施就可以对它进行测试,只需通过边界对象发送和接收对应的数据结构即可。它们都遵循稳定依赖原则 ,不对变化或易于变化的事物形成依
赖。
演练:支付宝红包发送系统的设计

第六单元架构关注点专题讨论
专题一:高性能系统的设计
高性能是软件系统设计无法绕过的话题,无论是企业架构还是互联网架构,设计时都需要考虑如何满足高性能的要求,尤其是在数据量越来越大,并发访问越来越多的前提下,⾼性能会成为架构师必须要解决的问题。
本专题讨论会给出高性能设计的常见问题、解决方案与最佳实践。


案例: Twitter的高性能分布式日志,满足了系统的可靠性、高吞吐量、低延迟、可扩展性等质量属性。
专题⼆:分布式事务
当今的大型软件系统都是分布式系统,随着硬件成本的逐渐降低,网络带宽的逐步增加,我们已经告别单机时代。分布式系统可以更大限度地利用硬件的水平扩展,也能够保证异构、异步系统的集成,但是带来的问题也很显著,除了运维方面的挑战外,如何保证业务服务的事务,成了棘手的问题。
本专题会介绍分布式事务 ACID约束的问题,并讲解 BASE原则以及CAD原理。
案例:通过对支付宝扣款到余额宝的案例分析分布式事务的解决方案。
专题三:大数据处理
大数据处理成为这几年最热门的话题,也是大多数软件企业需要解决的问题:即如何在海量数据中寻找到业务价值。本专题会从技术角度剖析大数据技术生态圈,并主要介绍  Hadoop、Spark等大数据主流技术与平台框架。
案例:Airbnb数据基础设施的主要架构
专题四:函数式编程、事件与不变性
随着多核硬件的普及,并行计算成为软件开发的主流,这也为本来更偏向学院派的函数式编程思想变得越来越重要。函数式编程思想对软件架构的影响则包括:数据结构的不变性、状态迁移与事件处理机制。
案例分析:分析Redux框架以及Akka框架的设计思想,并讲解  Redux框架在前端开发的运用, Akka框架在后端开发的应用。
第七单元大型软件系统体系架构在线零售商集成解决方案
整个系统牵涉到电子商务、库存管理、呼叫中心、邮件服务等多个系统的集成。该解决⽅案通过运用分布式系统的最佳实践,运用基于消息的中间件,对系统进行整体设计,使得系统能够高质量地支撑在线零售商的核心业务。
银行保险客户核心支撑系统真实案例,是某大型金融集团的客户核心支撑系统,需要支持的业务系统多达数十个,且具有不同的业务,部署在不同的平台。如何通过合理地设计,运用 ESB和REST对整个系统进行集成。





 

android开发板
linux_android开发板
fpga图像处理
端海培训实验设备
fpga培训班
 
本课程部分实验室实景
端海实验室
实验室
端海培训优势
 
  备案号:备案号:沪ICP备08026168号-1 .(2024年07月24日)....................
友情链接:Cadence培训 ICEPAK培训 EMC培训 电磁兼容培训 sas容培训 罗克韦尔PLC培训 欧姆龙PLC培训 PLC培训 三菱PLC培训 西门子PLC培训 dcs培训 横河dcs培训 艾默生培训 robot CAD培训 eplan培训 dcs培训 电路板设计培训 浙大dcs培训 PCB设计培训 adams培训 fluent培训系列课程 培训机构课程短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班培训 南京 NS3培训 OpenGL培训 FPGA培训 PCIE培训 MTK培训 Cortex训 Arduino培训 单片机培训 EMC培训 信号完整性培训 电源设计培训 电机控制培训 LabVIEW培训 OPENCV培训 集成电路培训 UVM验证培训 VxWorks培训 CST培训 PLC培训 Python培训 ANSYS培训 VB语言培训 HFSS培训 SAS培训 Ansys培训 短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班 端海 教育 企业 学院 培训课程 系列班 长期课程列表实践课程高级课程学校培训机构周末班 短期培训系列课程培训机构 端海教育企业学院培训课程 系列班