软件架构设计最佳实践

软件架构设计最佳实践

课程介绍: 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软件架构案例研究

 

 

你可能感兴趣的:(Architect)