分享

高级软件架构设计最佳实践-上海 - MSUP

 ShaneWu 2009-11-12
课程大纲:
课题
内容
第一单元:
软件架构本质

1、软件架构的视图
(1)软件架构视图的意义, 软件架构师的多维思考
(2)逻辑视图、开发视图、物理视图、运行视图、场景视图,数据视图 ,功能视图
(3)如何和怎样绘制软件架构视图
(4)UML建模工具在架构视图的应用
(5)典型案例分析一:结合多个项目实例,进行分析软件架构视图

2、软件架构的文档编写
(1)软件架构文档的意义
(2)ISO模板和RUP模板
(3)软件架构文档的结构(避免出现不必要的重复和缺少关键信息)
(4)从读者的角度编写软件架构文档
(5)软件架构文档记录原理和如何避免歧义
(6)文档的后期管理(使文档保持更新)
(7)软件架构文档的评审
(8)典型案例分析二:结合多个项目实例,进行分析和评价软件架构文档

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

1、软件架构设计过程
(1)软件架构设计过程方法论(应该有法可依)
(2)商业架构分析
(3)逻辑架构设计
(4)物理架构设计
(5)软件架构的评估和验证
(6)软件架构的开发(如何把架构设计以framework方式实现)
(7)软件架构的重构
(8)软件架构的维护和复用
(9)典型案例分析三:结合具体项目案例进行分析:演示架构设计过程

2、商业架构分析
(1)软件功能需求对架构的影响
(2)软件质量需求对架构的影响
(3)软件商业质量属性分析
(4)软件约束条件与架构的影响
(5)确定架构目标
(6)系统功能分解(系统、子系统、模块)和部署模式
(7)典型案例分析四:结合多个项目实例,分析质量需求,约束对架构的影响(项目错误的架构,导致不能最终验收)

3、逻辑架构设计
(1)软件架构立方体图
(2)软件架构模式和架构师经验的引入
(3)使用质量场景属性进行迭代架构设计
(4)综合初步设计,确定高层分割(分层 分服务 分区 通信)
(5)典型案例分析五:结合项目实例,进行分析该阶段的主要任务和相关成果

4、物理架构设计
(1)数据模型视图
(2)用例视图
(3)实现视图(设计和开发规则)
(4)完成必须的架构视图
(5)完成架构文档,对架构文档如何评估
(6)典型案例分析六:结合项目实例,进行细化架构的主要方法和成果,注意事项

5、架构设计的验证
(1)软件架构的验证
(2)软件架构的验证方法和指标
(3)软件架构的验证注意事项
(4)软件架构的评审
(5)基于软件架构的开发
(6)典型案例分析七:结合项目实例,分析如何进行验证架构和架构设计的后期重构技巧

6、架构设计重构
(1)软件架构重构还是重写
(2)软件架构重构技巧
(3)软件架构复用

第三单元:
软件架构原则、策略、模式

1、软件架构模式
(1)软件架构模式概述
(2)分层架构模式
(3)Pipe/Filter Pattern
(4)MVC/PVC Pattern
(5)Event-Based Pattern和Microkernel Pattern
(6)分布式和并发架构设计模式
(7)解释器和黑板模式
(8)其他模式的介绍(元数据等)
(9)典型案例分析八:软件架构模式如何应用在自己的实际项目中
(10)典型案例分析九:架构师实际项目架构的经验总结和实际应用

2、质量属性驱动架构设计策略
(1)什么是系统质量属性,如何进行质量属性进行驱动架构设计
(2)架构和质量属性的关系
(3)如何获得可维护性、可扩展性、可靠性、互操作性,系统性能,安全性等
(4)系统架构的可靠性设计策略
(5)系统架构的可修改性设计策略
(6)系统架构的性能设计策略
(7)系统架构的安全性设计策略
(8)系统架构的易用性设计策略
(9)系统架构质量属性和架构模式的应用
(10)架构策略如何应用在自己的实际项目中

3、架构设计原则
(1)抽象(Abstraction)、封装(Encapsulation)和信息隐藏(Information Hiding)
(2)分而治之(Divide-And-Conquer)和模块化(modularization)
(3)松耦合和高内聚(Coupling and Cohesion)
(4)策略和实现的分离(Separation of Policy and Implementation)
(5)接口和实现的分离(Separation of Interface and Implementation)
(6)单一引用点(Single Point of Reference)
(7)架构原则在实际项目中应用(eBay案例)

第四单元:
软件架构的实现技术-框架
(Framework)

1.应用框架(Application framework)
(1)框架vs.类库
(2)软件架构如何以框架的方式实现
(3)如何使用框架
(4)框架的开发过程
(5)如何选择第三方框架(不要重复制造车轮)
(6)框架的开发技术(通用点vs.扩展点/设计模式/白盒vs黑盒vs灰盒)
(7)框架之中必备的基础服务
(8)动手实现框架
(9)一个著名框架的实现分析
(10)一步一步实现一个真实项目框架
(11)典型案例分析:结合多个项目实例,在实际项目中如何进行应用和开发框架

2.设计模式技术在软件框架设计之中的应用
(1)面向对象软件架构设计思想
(2)设计模式的本质论
(3)分析创建型模式
(4)分析结构型模式
(5)分析行为型模式
(6)设计模式的在框架设计的综合应用
(7)典型案例分析十:结合项目实例,分析设计模式在架构设计时期的实际应用

第五单元:
软件架构各层设计策略

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)5种数据访问模式(在线访问,Data Access Object,Data Transfer Object,离线数据模式,对象/关系映射)
(2)数据访问层组件设计
(3)工厂模式在数据访问层应用
(4)ORM、Hibernate,JPA与SQLMap(iBatis)设计思想
(5)缓存技术在存取层的应用
(6)数据访问层的性能考虑
(7)事务管理和数据的同步与锁
(8)连接对象管理设计
(9)典型案例分析十五:结合项目实例分析,数据访问层的架构设计

4、领域模型设计、数据架构规划与数据库设计
(1)数据库的设计原则  
(2)数据库设计与类的设计融合
(3)数据库设计与XML设计融合 
(4)数据库性能规划
(5)与遗留系统的数据库兼容性考虑 
(6)领域模型设计

5、系统内部各模块或层之间通信设计
(1)系统通信设计原则  
(2)通信机制
(3)协议选择对性能的考虑 
(4)同步还是异步
(5)结合项目实例分析,系统内部的通信设计

6、系统与外部系统的接口设计
(1)系统接口设计策略  
(2)EAI架构设计

第六单元:
软件应用类型和软件架构风格

1.基于SOA架构设计
2.Web应用系统
3.Client、Server系统
4.大规模并发系统
5.Portal系统
6.EAI系统
7.WAP应用系统
8.其他系统

第七单元:
大型软件系统架构实践与剖析
1、综合软件架构实践与剖析(以实际项目案例为背景)
(1)XXXX电信软件架构案例研究
(2)金融行业(XXX银行和XXX银行)软件架构案例研究
(3)政府行业(XXX社保和XXX税务)软件架构案例研究
(4)电力行业软件架构案例研究
(5)SOA软件架构案例研究

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多