软件设计师,高级软件开发工程师
| 课程编号 | 开课日期 | 地点 | 培训天数 | 选择报名 |
软件设计师,高级软件开发工程师
课程收益
本课程关注与具有多个层面问题的企业级软件架构,适合于进行大规模系统级架构设计的关注者的视角:
• 首先通过经典架构案例的回顾,使学员对软件架构有个整体认识
• 然后结合多个实际案例(电信、银行、互联网、自动化、企业管理),讲解各种架构的问题、解决方法,不断关注新系统,更关注基于已有的系统进行重构。
• 进而认识架构不是孤立的,把各种架构结合已有的遗留系统,集成为统一支撑平台,实现持续发展:
• 最后,学习如何在迭代开发过程中,以架构为核心,逐步构建完善的架构
培训对象:软件设计师,高级软件开发工程师
学员基础:至少2年以上系统维护、管理经验。有实际项目经验。
授课方式: 定制课程 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练
培训内容: 3天
架构概览
从一个系统引入软件架构
• 一个系统的开发过程回顾,存在的问题
• 为什么需要架构
• 什么是架构,架构都有什么
• 什么时候设计软件架构
• 架构设计和概要设计和详细设计的区别与联系
从架构文档实例了解架构
实际架构文档展示
1. 架构文档的组织结构
2.构架目标和约束
3.架构范围的选择
4.架构的风险分析
5.架构的多视图描述: ◦ 用例视图,逻辑视图,开发视图
◦ 部署视图,运行视图,数据视图
6.根据需要确定架构文档内容
7.分项描述与整体描述方法
8.有关非功能需求的架构章节
9.基于架构的开发顺序与进度估算
架构文档的关键内容与质量要求
架构文档和需求文档和代码的关系
从多种角色角度阅读架构文档:
• 架构师
• 项目经理
• 客户代表
• 开发工程师
文档的后期管理(使文档保持更新)
架构文档在迭代开发中的维护
软件架构师分类与能要求
企业级架构师、应用架构师、技术架构师、信息架构师、平台架构师的定义:
• 基本素质
•职责范围
•特殊的视角
•决策机制
软件架构在架构体系中的位置
企业架构,关键特点与机制
业务架构,关键特点与机制
应用架构,关键特点与机制
数据架构,关键特点与机制
技术架构,关键特点与机制
平台架构,关键特点与机制
国际典型架构参考模型 Zachman企业架构框架
TOGAF框架
IAF框架
NASICO企业业务框架
基于SOA的架构
SaaS架构模式
统一资源架构和云计算技术
常见的应用架构模式
•C/S架构模式
•B/S/S架构模式
•多任务后台批处理系统
•多任务、分布式、实时处理
•通信、互联接口集成
•工作流集成
•企业应用集成系统(多应用系统集成)
从架构角度评估需求与现状
结合某大型系统讲解
功能需求的架构相关评估方法
非功能性需求的评估方法
• 性能需求
•可靠性需求
•可扩展需求
•可维护需求
•安全性需求
• 可用性需求
• 外部接口需求
• 物理需求
现有系统资产的架构相关因素调查
架构相关问题定位与描述
案例实践:某实际系统需求的评估与系统资产调查
架构评价标准和设计策略
案例讲解:某大型系统案例
• 从失败的案例看架构评价指标的重要性
• 从成功案例看如何建立评价指标,建立设计策略
关键技能
• 业务有效性评价指标、评价方法、设计策略
•系统可用性评价指标、评价方法、设计策略
•可靠性评价指标、评价方法、设计策略
•性能评价指标、评价方法、设计策略
•扩展性评价指标、评价方法、设计策略
•安全性评价指标、评价方法、设计策略
案例实践:某实际系统架构评估与设计策略的建立
层次框架设计
案例讲解: 结合某大型系统
• 常见的层次组织类别:传统的C/S, B/S,SOA,C/S, B/S,SOA,云计算
•层次评估的指标和评估方法
•层次设计的常见问题和解决方案
•表示层—常见问题、设计原则和设计策略
•服务层—常见问题、设计原则和设计策略
•业务层—常见问题、设计原则和设计策略
•资源层—常见问题、设计原则和设计策略
• 基础层—常见问题、设计原则和设计策略
• 数据采集层—常见问题、设计原则和设计策略
• 层次之间的依赖关系设计
•层次之间的接口和通信机制设计
•层次框架的建模方法和编档
•如何对已有的系统进行重构
案例剖析:某大型系统架构分析与设计
业务架构设计
案例讲解: 结合系统实例
• 常见的业务架构关注视角:信息管理,电子交易,自动化监控,专业处理
•业务架构的常见问题、设计原则和设计模式
•业务逻辑:逻辑的划分、组织与依赖关系
•业务流程:流程的引擎、接口和配置
•业务规则:规则的引擎、结构和接口
•领域模型与业务架构
•如何建立能够适应业务变化的业务架构
•如何对已有的系统进行重构
案例剖析:某系统的业务架构分析与设计
逻辑架构设计
案例讲解: 结合行业典型系统实例
• 子系统评估的指标和评估方法
•子系统设计的常见问题和解决方案
•子系统划分的原则与方法
•子系统接口互访设计:协议、安全机制、性能
•子系统接口设计模式:远程调用,Web服务,消息队列,数据共享,事件监听
•子系统内部逻辑的划分
•子系统内部逻辑模块的依赖关系设计
•子系统内部的常见模块问题
•子系统内部模块划分原则
•子系统内部的装配设计。
案例剖析:某系统的逻辑架构分析与设计
物理架构设计
案例讲解: 结合典型系统实例
• 常见的不同行业物理架构组织:银行,电信,互联网,分布式监控系统
•常见数据分布模型:集中数据模型,分散数据模型,联邦制数据模型
•系统分布与部署
•面向地理分布设计系统分布
•系统节点配置与设计:组件配置、软件、硬件配置
•物理存储划分与容量设计
•节点的I/O处理设计与配置
•系统网络通信设计
•各个节点的协调与同步机制
•建立面向运行时负载变化的动态分布机制
•服务集群与负载均衡
案例剖析:某系统的逻辑架构分析与设计
数据架构设计
案例讲解:结合典型系统实例
•常见的不同行业数据组织模式:银行,电信,互联网,独立软件
•常见数据分布模型:集中数据模型,分散数据模型,联邦制数据模型
•数据架构的设计目标
•数据架构的评价指标和评估方法
•大数据量、并发、高性能数据库设计
•数据标准化
•数据分布、共享与同步
•数据质量监控
•数据备份与恢复
•数据安全策略
•数据仓库积累与数据挖掘
•与遗留系统的数据库兼容性考虑
•构建高性能的数据访问层 ◦对象关系映射
◦数据逻辑划分与物理分布
◦ 对象缓存
◦ 事务管理
◦ 并发数据访问锁保护与性能提升
案例剖析:某系统数据架构的分析与设计
性能架构设计
案例讲解:结合系统实例
• 常见的不同关注视角:银行,电信,互联网,自动化系统
• 性能评估的指标和评估方法
• 性能设计的常见问题、设计原则和策略
• 通信接口性能设计
• 计算单元性能设计
• 信息互访性能设计
• 分布式应用的性能平衡设计
• 常见技术框架:人机界面,数据通信,数据处理,复杂计算
• 性能设计建模与编档
案例剖析:某系统的性能问题分析与重构设计
可靠性架构设计
案例讲解:结合某系统实例
• 常见的不同关注视角:银行,电信,互联网,自动化系统
• 可靠性架构的目的和范围
• 常见软件故障:错误、崩溃、异常
• 可靠性评估的指标和评估方法
• 可靠性设计的常见问题、设计原则和解决方案
• 独立的故障监视任务
• 故障诊断与分类
• 故障风险和概率估计
• 故障的恢复手段:热备、冷备、重构
• 常见性能框架:交易,数据处理,通信,自动化监控
• 可靠性设计建模与编档
案例剖析:某系统的性能问题分析与重构设计
可扩展架构设计
案例讲解:结合系统实例
• 产间的扩展应用类型:用户驱动的处理,后台处理,专业计算,通信协同
• 可扩展架构的目的和范围
• 可扩展的指标和评估方法
• 可扩展的常见问题和解决方案
• 可扩展架构相关技术:
• 可扩展设计原则
• 常见的软件扩展模型:接入层,界面,工作流,数据容量,通信接口,规则
• 可扩展设计建模与编档
案例剖析:结合系统案例进行性能问题分析与重构设计
集成各种架构为统一平台:公共支撑平台、公共组件、ESB、公共资源
平台架构设计
案例讲解:结合某平台实例
• 各种常见的平台架构:工作流,电子交易,信息管理,自动化监控平台
• 基础平台与公共组件的设计目标
• 应用集成与复用的指标和评估方法
• 应用集成与复用的常见问题和解决方案
• 如何从具体应用中提炼基础平台
• 如何从具体应用中提取公共组件
• 设计基础平台的范围与深度
• 如何使基础平台能够适应需求的变化
• 如何扩展基础平台和公共组件
• 通过实例项目了解基础平台和公共组件设计
• 基础平台与公共组件建模与编档
案例剖析:某系统的平台架构分析与设计
集成架构设计
案例讲解:结合集成架构实例
• 常见集成模式:工作流集成,数据集成,通信集成,用户门户集成,规则集成
• 集成接口设计:同步方式,协议交互,环境适应,速率匹配,异常处理。
• 集成设计要考虑的因素:异构、异质、时序
• 工作流集成原则、策略与方法
• 数据集成原则、策略与方法
• 规则集成原则、策略与方法
• 用户界面集成原则、策略与方法
• 通信集成原则、策略与方法
• 集成设计的关键点和设计法则
• 集成建模与编档
案例剖析:系统的集成架构问题分析与重构设计
架构驱动的迭代开发:初选,验证,驱动开发,不断积累
案例讲解:结合某实际架构项目过程
• 结合需求建立架构备选方案
• 架构设计、实现与验证
• 基于架构估计开发工作量与进度
• 开发过程中的架构支持
• 架构重构与维护
• 架构提炼与积累
• 面向多产品线的架构体系构建
案例实践:某项目的架构驱动的迭代开发。
某大型系统的架构全生命周期管理
系统第一次架构
随着系统发展的问题积累
架构重构需求:应对变化、复用、性能与可靠性
架构的第二次搭建与优化,
建立可持续的架构体系