软件架构案例分析和最佳实践
Mace Liu 查看讲师
百林哲咨询(北京)有限公司专家团队成员
曾任职BEA(中国)资深软件架构师,十余年的企业软件架构、开发和管理经验, 侧重于企业应用软件架构设计.主要负责客户大型项目的架构设计和研发。
浏览:4270次
详情 DETAILS

简介

软件架构是软件业的一个重要研究领域,正受到越来越多的关注,其地位也日益明显地体现出来.而架构设计师——也就成为软件系统的最高设计者。此课程就是为有志成为卓越架构师的人准备的培训课程。作为架构设计师,需要具备统观全局、分而治之的能力,从子系统的划分到组件的定义,从系统设计能力到沟通、协调,表达能力. 我们系统的组织课程,并由15年经验丰富的讲师传授,为您成长为架构设计师打下坚实的基础。本课程通过介绍软件架构视图和软件文档,软件架构设计过程,软件架构应用与常用的架构模式/策略/原则等诸多架构实际问题,透视软件架构是如何设计和实现的? 并且介绍应该如何应用系统架构设计为后期的详细设计和应用开发提供指导。针对大多数企业目前是维护遗留系统, 该课程介绍了软件架构的监控,架构的坏症状和重构方法,因为架构设计的前期不能考虑到所有的问题,设计包容一切的完美架构. 还针对软件架构常见设计技术专题等问题进行了分析并提出了解决方案,并结合众多大型软件项目架构案例进行更深入的剖析!

受众人群

软件架构师/技术总监/资深技术人员/高级软件设计师

课程时长

3天(18H)

分享提纲

主题课程内容
第一单元:软件架构文档和架构视图-如何有效描述架构蓝图

一、软件架构的视图

(1)软件架构视图的意义, 软件架构师的多维思考

(2)逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图

(3)如何和怎样绘制软件架构视图

(4)UML建模工具在架构视图的应用

(5)典型案例分析:结合多个电信,金融行业项目案例,分析真实项目软件架构视图

二、软件架构的文档编写

(1)软件架构文档的意义

(2)软件架构模板(根据实际项目情况选择合适内容)

(3)软件架构文档的结构(避免出现不必要的重复和缺少关键信息)

(4)软件架构文档必须包含的内容(通过多个项目,分析不同系统包含系统内容不同)

(5)文档的后期管理(使文档保持更新)

(6)软件架构文档的评审

(7)典型案例分析:结合多个电信项目案例,进行分析和评审软件架构文档

第二单元:软件架构设计关注点(哪些因素驱动架构设计,是架构开始设计之前必须知道的?)和架构最佳策略

一、软件架构设计关注点(软件架构师在架构设计之前必须考虑的要素)

(1)架构设计的关注是什么

(2)软件架构的驱动因素(改变传统以功能实现和新技术为驱动的策略)

(3)软件质量需求对架构的影响(质量属性场景定义和对应架构策略)

(4)软件功能需求对架构的影响(分析功能需求变化点和进化点)

(5)软件约束条件与架构的影响(业务,运行环境,开发团队,实现技术等约束)

(6)如何使功能性需求,非功能性需求和平台细节在架构中能保持分离,从而改善可维护性和可扩展性

(7)处理功能需求,非功能性需求,平台细节.制定架构目标

(8)典型案例分析:结合项目,因为分析驱动因素的错误,导致项目不能如期验收的失败案例

   其中多个真实失败案例,值得借鉴

二、软件架构最佳策略

(1)重新认识系统质量属性,如何定义质量属性和相应的架构策略

(2)系统架构的可扩展性设计策略

(3)系统架构的可靠性设计策略

(4)系统架构的高性能设计策略

(5)系统架构的可维护性设计策略

(6)系统架构的易用性设计策略

(7)系统架构质量属性和架构模式的应用

(8)通过分析案例,了解基本架构策略如何应用

(9)思考这些架构策略,如何应用在自己的实际项目中

第三单元:软件架构设计过程

一、软件架构设计过程

(1)软件架构设计过程方法论(步骤和相应的成果)

(2)典型案例分析:结合具体项目案例进行分析:演示架构设计过程

二、商业架构分析

(1)软件系统边界和外部系统接口的定义

(2)大型软件系统的划分子系统原则

(4)子系统功能模块的分解

(5)子系统间的通信接口的设计

(6)如何应对系统内部紧耦合、高内聚

(7)软件系统关键质量属性树和可行性分析

(8)软件系统部署架构(分布式/数据分布/通信/安全)

(9)软件系统部署容量评估(主机/中间件/数据库等资源容量评估)

(10)典型案例分析:结合多个项目实例,分析商业架构成果

三、逻辑架构设计

(1)应用系统的类型和架构风格

(2)架构模式在实际项目的应用

(3)软件架构立方体图(软件架构的分层,分区和基础服务)

(4)软件架构通用机制的分析(如何处理基础设施扩展和具体有什么方法做基础设施扩展, 掌握如何分离这些基础设施用例)

(5)使用质量场景属性进行迭代架构设计

(6)软件架构各层的架构策略(针对企业应用分层,每层的架构策略)

(8)软件系统线程架构策略(结合Apache HTTP Server分析线程和进程的架构)

(9)典型案例分析:结合项目实例,进行分析该阶段的主要任务和相关成果

四、物理架构设计

(1)数据架构(数据模型/数据分布/数据存取,以及核心数据流)

(2)用例视图(抽取典型,有分险和客户最关心用例进行分析,结合架构进行设计)

(3)实现视图(架构,设计和开发,实现原则和指南)

(4)完成架构文档,对架构文档进行评估

(5)典型案例分析:结合3G增值服务项目,分析物理架构设计 

第四单元:软件架构应用

一、架构设计的评估和验证

(1)软件架构的验证(软件架构风险验证)

(2)软件架构的验证方法和指标(基于问题检查表和质量属性树)

(3)软件架构的验证注意事项

(4)软件架构的评估方式

(5)软件详细设计和实现时期,架构师的职责和架构的监控

(6)典型案例分析:结合项目实例,分析如何进行验证架构和架构设计的后期重构技巧

二、架构设计重构和复用

(1)软件架构重构概述

(2)软件架构常见的坏症状

(3)软件架构的重构手段

(4)软件架构的复用

(5)结合某著名公司全球架构师团队架构实例,分析架构重构和架构复用技巧

第五单元:软件组件架构

一:组件/包/模块设计

(1)优良的系统设计意味着我们把系统分割成了一个个可单独部署的组件,单独部署意味着如果更改了一个组件,我们也不需要重新部署其他组件。

(2)组件和包 坏味道

(3)模块之间解耦

(4)组件的内聚性实践

(5)组件的依赖性实践

(6)企业应用系统组件设计最佳实践

(7)分析某项目,给我们哪些启示,我们可以学习到什么

第六单元:软件架构模式应用

一、软件架构模式

(1)软件架构模式概述

(2)管道过滤器/事件架构/微内核/反射架构模式(其他10多种常见的架构模式)

(4).net常见架构模式和J2EE架构模式

(3)分布式和并发架构模式

(4)典型案例分析:结合国内社保平台项目分析软件架构模式的应用经验

第七单元:软件架构的实现-框架和设计模式

一、应用框架(Application framework)

(1)框架vs.类库     

(2)软件架构如何以框架的方式实现

(3)框架的开发过程和开发技术(通用点vs.扩展点)

(4)一个著名框架的实现分析

(5)典型案例分析:结合项目实例,开发框架

二、设计模式技术在软件框架设计之中的应用

(1)设计模式思想(封装变化)

(2)设计模式的在架构设计之中的综合应用

(3)典型案例分析:结合项目实例,分析设计模式在架构设计时期的实际应用

第八单元:软件架构核心策略

一、领域模型架构

(1)领域模型架构策略

(2)领域模型建模(关联,属性)

(3)多个系统数据模型不一致和领域模型的同步

(4)公共数据模型(CDM)

(5)领域模型分析模式(模型的选择会影响最终产生系统的灵活性和可重用性)

(6)根据电信计费系统和网络资源管理案例分析领域模型的架构

二、系统内部各组件或层之间通信架构

(1)系统通信设计原则        

(2)通信机制和通信模式

(3)协议选择对性能的考虑 

(4)同步还是异步

(5)适配器策略(基于API/数据库/文件/协议等适配)

(6)通信接口设计策略(统一接口/业务分类)

(7)数据传输形式(DTO/XML等)

(8)Extension/Explicit/Proxy/Dynamic/Batch 接口形式

(9)结合项目实例分析,系统内部的通信设计

三、系统与外部系统的接口架构

(1)系统接口设计策略       

(2)点对点和基于EAI平台架构

(3)系统接口策略(基于文件,共享数据库,同步RPC或者异步消息)

(4)系统接口安全/审计/稽核等架构策略

(5)结合某省电信BSS系统EAI项目实例分析,系统接口架构策略

四、系统基础服务组件架构

(1)系统基础服务组件架构策略       

(2)系统通用服务层与业务逻辑分离

(3)系统必备13种基础服务架构(异常处理/事务管理/缓存/工作流/校验/通信/安全/日志/定时触发/状态/消息通信/系统监控/配置管理)

(4)业务通用服务架构实现策略

(5)结合多个项目实例分析,架构师如何萃取基础服务组件和怎样设计实现

第九单元:大型软件系统架构实践与剖析

(该案例分别在以上各单元,结合主题进行介绍)

综合软件架构实践与剖析(以实际项目案例为背景)

(1)电信行业(电信97/移动BOSS/电信MBOSS/经营分析)软件架构案例研究

(2)金融行业(XXX银行企业信贷和XXX银行)软件架构案例研究 

(3)政府行业(XXX社保和XXX税务)软件架构案例研究

(4)电力行业(SG168和XXX电网门户系统)软件架构案例研究

(5)大型互联网系统架构案例研究

(6)邮政行业(***邮政项目)案例研究

第十单元: 软件架构师成长

一、软件架构师成长

(1)软件架构师职责

(2)软件架构师与项目经理,产品经理,需求分析师不同

(3)软件架构师技能模型

(4)软件架构师如何成长

(5)中国特色的架构师(目前国内很多架构师是身兼多职)

企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1