目标收益
本课程属于架构设计的高端课程,需要学员具备软件设计的实际工作经验,处于项目和系统控制或主导的角色,课程希望能够给学员提供更宽的视野,提升站在更高的角度思考问题的能力。
本课程并不准备用工匠式的方式说明问题,而是更深入的研讨现代软件系统优化设计的各种方法和思路,旨在提高企业技术人员的整体水平,并且对于任何一种编程语言背景的系统架构的开发和思维方法都是适用的。
在实战演练过程中,将针对性地向学员详解架构设计方法和原则,为项目团队更好的对软件项目的系统架构提供解决问题的思路和方法,能有效地提升学员理解和掌握高级系统架构的知识、并应用于项目开发过程的能力。
培训对象
架构设计师、项目经理、技术经理、项目组长、技术骨干、技术支持人员或其他对系统架构设计有兴趣的相关人员
课程大纲
 
| 主题 | 内容 | 
| 	系统架构概览 |   | 
| 	架构设计的背景与目标 | 	架构师和系统架构的定义	何为高级系统架构师?
 	架构设计师的知识结构
 	架构的职责是什么?
 	案例分析:烟囱系统
 	架构的思考:组成派VS.决策派
 	架构设计要关注什么?
 	架构设计的常见方法?
 	分层的细化
 	分区的引入
 	机制的提取
 	架构设计与迭代开发
 	什么是优雅的架构?
 	系统功能的模块化原则
 	基于构件的架构设计
 | 
| 	软件系统架构的模型和方法 | 	架构的架构	逻辑架构
 	开发架构
 	运行架构
 	物理架构
 	数据架构
 	案例分析:NGBOSS, CRM, 移动电子商务, 宽带P-BOSS系统, 智能网络视频监控系统, DTV-OSS
 	4+1视图法则
 	UML在架构设计中的应用方法
 	系统建模与架构设计过程
 | 
| 	系统架构与软件开发过程的结合 | 	软件架构与面向对象分析设计过程的结合	软件开发——工程VS.创作
 	规范过程下的敏捷——大象与猴子的故事
 	纯粹敏捷的缺陷
 	架构设计与敏捷开发
 	架构驱动的增量开发模型
 	分析瘫痪的后果
 	架构驱动开发的节奏
 	合作型组织与反馈控制
 	软件架构的设计过程
 	业务架构概念
 	产品架构概念
 	架构基线
 	子系统架构
 	构件架构
 	架构设计与TDD测试驱动开发
 | 
| 	基于质量属性的架构设计决策和改进 | 	软件质量与架构	软件质量的定义
 	质量属性对架构的影响
 	基于质量属性的架构策略
 	软件架构的质量评估
 	ATAM(架构权衡分析方法)
 	软件架构的重构与优化
 	软件重构与设计模式
 	重构的时机和方法
 	架构设计之软件设计原则
 	SRP
 	LSP
 	DIP
 	ISP
 	OCP
 	软件架构中设计模式的应用案例分析
 	利用外观(Façade)模式封装子系统的变化
 	利用适配器封装接口变化
 	用模板方法封装业务单元的变化
 	利用装饰器模式封装核心业务单元
 	用工厂模式封装对象创建过程的变化
 	利用观察者模式处理业务单元的变化
 	在团队并行开发中使用代理模式
 	过度设计的架构
 | 
| 	常见架构体系的介绍和案例分析 | 	架构设计的层面	Infra-structural
 	Platform
 	Application
 	多层架构的介绍和对比分析
 	1 tier
 	2 tier
 	N tier
 	J2EE架构和.NET架构分析
 	几种典型的高层架构介绍及其案例说明
 	客户机-服务器体系结构(C/S Architecture)
 	多级体系结构(N-tier Architecture)
 	流程处理体系结构(Procedural processing architecture)
 	代理体系结构(Agent architecture)
 	聚合体系结构(Aggregate architecture)
 	联邦体系结构(Federation architecture)
 	架构与框架的区别,Architecture VS. Framework
 	Framework技术
 	性能优化的常见架构方法
 	负载均衡架构设计
 	为什么需要集群技术?
 	负载均衡的算法和架构
 	会话管理和Session的故障恢复
 	软件可靠性质量解决方案
 	系统安全性及其防护措施
 | 
| 	面向服务的基础架构(SOA) |   | 
| 	大规模高并发系统架构设计及其案例分析 |   | 
| 	架构设计案例——分组互动实践 |   | 
| 	架构文档写作 |   | 
| 	架构与管理 |   | 
| 	架构设计实战要领 |  |