课程介绍: 1、深入阐述软件架构设计的思想、方向及趋势;2、剖析软件架构的全景视图;3、结合实际案例分析架构设计过程及需求对架构的影响;4、如何实用设计模式来实现好的架构;5、实践分享多种类型架构设计的实现;6、SOA架构、企业集成系统架构、企业门户架构的设计实践;7、真实案例分析各行业软件架构实践。
课程目标:1、掌握软件架构设计思想及本质;2、掌握软件架构建模,4+1视图,软件架构文档;3、软件架构的设计过程;4、熟悉软件架构设计模式;5、了解架构设计原则和方法学;6、掌握软件架构设计实现和企业架构应用实践;7、掌握架构设计问题的分析方法;
课程大纲(3天):
|
主题一:
软件架构本质
|
1.软件架构思想
|
(1)软件架构诞生原因和定义
(2)软件架构设计的任务,质量评价,特点
(3)软件架构的主要理论、方向和趋势
(4)Zachman架构框架, Meta Group/
Open Group/Gartner企业架构
(5)基于J2EE,.Net等技术架构概述
|
|
2.软件架构的视图
|
(1)软件架构视图的意义
(2)4+1架构视图
(3)逻辑视图 开发视图 物理视图 运行视图 场景视图
(4)如何和怎样绘制软件架构视图
(5)UML建模工具在架构视图的应用
(6)结合多个案例,进行分析软件架构视图
|
|
3.软件架构文档编写
|
(1)软件架构文档的意义
(2)ISO模板和RUP模板
(3)软件架构文档的结构(避免出现不必要的重复和缺少关键信息)
(4)从读者的角度编写软件架构文档
(5)软件架构文档记录原理和如何避免歧义
(6)文档的后期管理(使文档保持更新)
(7)软件架构文档的评审
(8)结合多个案例,进行分析和评价软件架构文档
|
|
主题二:软件架构设计过程
|
1.软件架构设计过程
|
(1)软件架构设计过程方法论(应该有法可依)
(2)确定关键需求
(3)概念架构设计
(4)细化架构设计
(5)软件架构的验证
(6)结合具体案例进行分析,介绍当初项目架构设计的过程
|
|
2. 需求决定架构
|
(1)软件功能需求对架构的影响
(2)软件质量需求对架构的影响
(3)软件约束条件与架构的影响
(4)结合多个案例,分析关键功能需求,质量属性需求,约束对架构的影响(项目错误的架构,导致不能最终验收)
|
|
3. 概念架构设计
|
(1)软件架构立方体图
(2)软件架构模式和架构师经验的引入
(3)使用目标-场景-决策表进行迭代架构设计
(4)综合初步设计,确定高层分割
(5)结合案例,进行分析该阶段的主要任务和相关成果,注意事项等
|
|
4. 细化架构设计
|
(1)根据功能确定职责模型
(2)根据质量调整职责模型
(3)基于接口确定职责间协作
(4)完成4+1架构视图
(5)完成架构文档
(6)结合案例,进行细化架构的主要方法和成果,以及注意事项等
|
|
5.架构设计的验证和评审
|
(1)软件架构的验证
(2)软件架构的验证方法和指标
(3)软件架构的重构
(4)软件架构的评审
(5)软件架构的风险管理
(6)结合案例,分析如何进行验证架构和架构设计的后期重构技巧
|
|
主题三:软件架构设计原则与架构模式
|
1.软件架构模式
|
(1)软件架构模式概述
(2)分层架构模式
(3)Pipe/Filter Pattern
(4)MVC Pattern
(5)Event-Based Pattern和Microkernel Pattern
(6)其他模式的介绍
(7)软件架构模式如何应用在实际项目
(8)架构师实际项目架构经验总结和应用
|
|
2.软件架构设计的方法论
|
(1)什么是架构任务,如何分离关注点,它和系统是如何关联的
(2)如何获得可维护性、可扩展性、可重用性、互操作性等
(3)在系统中如何组织组件(Component)
(4)如何组织组件(Component)的内部
(5)如何保持平台相关的细节和应用的分离
(6)如何应用封装(encapsulation)、抽象(abstraction)和 委派(delegation)的原则
(7)如何应用设计模式来实现好的结构
(8)如何使测试改进架构
|
|
3.设计模式技术在软件架构设计之中的应用
|
(1)面向对象软件架构设计思想
(2)设计模式的本质论
(3)分析创建型模式
(4)分析结构型模式
(5)分析行为型模式
(6)设计模式的在架构设计的综合应用
(7)结合实际案例,分析设计模式在架构设计时期的应用
|
|
4.软件架构之中应用框架(framework)
|
(1)框架vs.类库
(2)通用点vs.扩展点
(3)设计模式技术在框架的设计之中的应用
(4)如何开发框架
(5)如何选择第三方框架
|
|
主题四:软件架构设计实现
|
1.表现层框架设计
|
(1)使用MVC模式设计表现层
(2)BS和CS的选择
(3)表现层中AJAX设计思想
(4)表现层易用性的考虑
(5)表现层的设计框架(Struts,JSF,WebWork,ASP.net,PHP等)
(6)表现层的如何支持多渠道的接入(如支持Web,WAP等)
(7)结合案例分析,表现层的架构设计
|
|
2.业务逻辑层架构设计
|
(1)业务逻辑层组件设计
(2)业务逻辑层工作流设计
(3)服务facade设计
(4)业务逻辑层实体设计
(5)分布式应用场景
(6)业务逻辑层框架(EJB,Springframework,.Net框架)
(7)结合案例分析,业务逻辑层的架构设计
|
|
3.数据访问层架构设计
|
(1)数据访问层架构模式
(2)数据访问层组件设计
(3)离线和在线方式的数据访问
(4)ORM、Hibernate,JPA与SQLMap(iBatis),LINQ设计思想
(5)缓存技术在存取层的应用
(6)数据访问层的性能考虑
(7)事务管理和数据的同步与锁
(8)连接对象管理设计
(9)结合案例分析,数据访问层的架构设计
|
|
4.领域模型设计,数据架构规划与数据库设计
|
(1)领域模型设计
(2)数据库设计与类的设计融合
(3)数据库设计与XML设计融合
(4)数据库性能规划
|
|
5.通用服务层的架构设计
|
(1)系统通用服务的架构设计
(2)业务通用层的架构设计
|
|
6.各层通信设计
|
(1)应用通信的策略
(2)进程之间和分布式通信
(3)通信内容组织
(4)同步、异步(基于Message的架构)
|
|
主题五:企业应用系统架构设计
|
1.SOA 面向服务的架构设计
|
(1)掌握SOA的基本概念
(2)了解服务的设计原则和方法学
(3)SOA基础架构和企业服务总线ESB
(4)服务识别,分类,实现
(5)业务流程管理和BPEL技术
(6)服务注册,发现,生命周期管理
(7)服务的消息交换模式
(8)服务的版本管理和SOA安全,性能管理
(9)SOA的开发过程
(10)SOA和组织,监管(SOA Organization and Governance)
(11)SOA应用案例
|
|
2. 企业集成系统架构设计
|
(1)解决方案、数据集成、应用(接口)集成及应用服务
(2)EAI参考模型:业务模式、概念模式、逻辑模式、物理模式和实现模式
(3)如何设计企业应用系统集成
(4)企业集成应用的架构模式
(5)企业集成应用的案例分析
|
|
3. 企业门户Portal系统架构设计
|
(1)企业门户Portal概述
(2)企业门户核心技术
(3)企业门户内容管理(CMS)
(4)企业门户的个性化
(5)企业门户的架构案例
|
|
主题六:软件架构设计专题技术问题分析
|
1.软件架构设计专题技术问题分析
|
(1)架构体系选择
(2)架构设计中的数据库存取(ORM,底层存取,SQLMap等选择)
(3)架构设计中的WEB容器、EJB容器及Spring等相关容器
(4)软件架构设计的分布式和通讯的思考
(5)软件架构设计的性能的思考
(6)软件架构设计的可扩展性(集群技术)的思考
(7)软件架构设计的事务管理的思考
(8)软件架构设计的异常管理的思考
(9)软件架构设计利用AOP和IOC这两个有价值的技术
(10)软件架构设计的缓存技术的应用
(11)软件架构设计的安全考虑
(12)以上技术专题结合实际案例进行分析
|
|
主题七:软件架构案例分析
|
1.软件架构案例分析
|
(1)电信行业软件架构案例研究
(2)金融行业 软件架构案例研究
(3)政府行业(社保和税务)软件架构案例研究
(4)电力行业软件架构案例研究
(5)SOA软件架构案例研究
|