课程简介
内容涵盖:软件架构视图及体系,软件架构设计的基本原则,软件架构设计过程方法,软件架构设计的关键因素,软件架构设计原则与模式,基于SOA (面向服务架构)架构设计,软件架构设计,综合软件架构实践与剖析(架构设计实战)等内容。
目标收益
培训对象
课程大纲
第一单元: 软件架构视图及体系 |
软件架构的视图 (1)软件架构视图的意义 (2)软件架构师的多维思考 (3)逻辑视图、开发视图、物理视图、运行视图、场景视图、数据视图、功能视图 (4)典型案例分析:结合多个项目实例,分析软件架构视图在软件架构设计中的作用 架构师及软件架构体系 (1)软件架构师应掌握的知识体系 (2)软件架构设计的特点、层次、分类 (3)软件架构的主要理论、方向和趋势 |
第二单元: 软件架构设计的基本原则 |
架构设计中的模块划分及职责分配 (1)什么是GRASP设计原则 (2)信息专家模式和应用场景,以及案例分析 (3)创建者模式和应用场景,以及案例分析 (4)高内聚/低耦合模式和应用场景,以及案例分析 (5)控制者模式和应用场景,以及案例分析 (6)多态纯虚构模式和应用场景,以及案例分析 (7)间接和应用场景,以及案例分析 (8)保护变量模式的重要意义,以及案例分析 (9)典型案例分析:税务系统中GRASP模式的实践及剖析 |
第三单元: 软件架构设计过程方法 |
领域模型介绍 (1)领域模型在架构中的作用 (2)领域模型介绍:失血、贫血、充血、涨血模型 (3)EJB与轻量级框架的优缺点及选择要点 (4)面向对象与面向过程设计的优缺点及选择要点 商业/ 逻辑 / 物理架构设计 (1)软件架构的开发(如何把架构设计以framework方式实现) (2)服务facade设计 (3)业务逻辑层实体设计 (4)业务逻辑层组件设计 (5)业务逻辑层框架(EJB,Springframework,.Net框架) (6)分布式应用场景 (7)软件架构的维护和复用 (8)案例分析:结合项目实例分析,业务逻辑层的架构设计 (9)典型案例分析:结合具体项目案例进行分析:演示架构设计过程 使用UML进行架构建模 (1)架构模型的选择技巧 (2)动态模型与静态模型的搭配 (3)建模中的7大常见误区 (4)借鉴RUP建模过程及要素 (5)经典案例分析:结合某商业产品案例分析,演示不佳建模如何重构为合理建模 |
第四单元: 软件架构设计的关键因素 |
软件架构质量属性分析 (1)软件功能需求对架构的影响 (2)软件架质量属性和架构师经验的引入 (3)软件商业质量属性分析 (4)软件约束条件与架构的影响 (5)使用目标-场景-决策表进行迭代架构设计 (6)典型案例分析:PMS质量属性对的系统架构设计影响 软件架构的关键因素的实现 (1)什么是架构, 它和系统是如何关联的。 (2)如何获得可维护性、可扩展性、可重用性、互操作性等。 (3)在系统中如何组织组件(Component) 。 (4)如何保持平台相关的细节和应用的分离。 (5)如何应用封装(encapsulation)、抽象(abstraction)和委派(delegation)的原则。 (6)策略和实现的分离(Separation of Policy and Implementation) (7)接口和实现的分离(Separation of Interface and Implementation) (8)单一引用点(Single Point of Reference) (9)典型案例分析:某商业数据采集系统中,架构关键因素的体系及设计技巧 |
第五单元: 软件架构设计原则与模式 |
使用模式作为架构的核心骨架,避免走弯路 (1)析创建型模式:单例模式(Singleton)、抽象工厂模式(Abstractfactory) (2)分析结构型模式:桥梁模式(Bridge)、装饰模式(Decorator)、适配器模式(Adapter)、代理模式(Proxy)、合成模式(Composite) (3)分析行为型模式::命令模式(Command )、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Template Method) (4)设计模式的在架构设计的综合应用 (5)架构实战:用经典模式作为超市收款系统的核心,达成高可扩展性 设计模式的本质分析 (1)设计模式如何适应变化和封装 (2)设计模式的本质:隔离变化点;间接;透明;局部双向依赖;逻辑与功能;用接口抹平差异、延迟调用。 (3)模式的推演:掌握模式的本质,而非形式。 (4)设计模式的高级运用:神似而非形似;以工程实际为标准;可以牺牲掉的特征;简化的模式;防止滥用;自创模式。 (5)架构实战:VTF编辑器中的反模式及其分析 软件架构模式 (1)软件架构模式概述 (2)分层架构模式 (3)Pipe/Filter Pattern (4)MVC Pattern (5)Event-Based Pattern和Microkernel Pattern (6)其他模式的介绍 (7)典型案例分析:资源管理系统中的软件架构模式运用 (8)典型案例分析:某商业数据分析系统中的软件架构模式运用 软件架构之中应用框架(framework) (1)IOC/DI /DIP模式的深度解析 (2)扩展点与通用点的分析及确认 (4)组合法与继承法在框架设计中的运用 (5)子系统如何堆叠为完整的系统 (6)架构实战:超级文件处理器中的框架平台设计,逐步深入,讲解实现思路 软件架构涉及的服务模式 (1)ClassFactory Service、Caching Service、Configuration Service、 EventNotification Service、WindowService Service 、MessageQueue Service、Authorization Service、Authentication Service、Cryptography Service、Transaction Service、DocumentLayer Service 、Workflow Service (2)典型案例分析:资源管理系统中的服务模式 |
第六单元: 基于SOA (面向服务架构)架构设计 |
基于SOA (服务导向架构)架构设计 (1)SOA的概念 (2)SOA的设计目标 (3)服务识别,分类,实现 (4)异构性Heterogeneity;可伸缩性Scalability;适用性Availability;分布式Distribution; .机动性Flexibility;可见性。 (5)服务注册,发现,生命周期管理 (6)服务的消息交换模式 (7)BPM与SOA (8)SOA的开发过程,SOA和组织,监管(SOA Organization and Governance) (9)典型案例分析:实创集团办公项目案例分析 系统间通讯及接口设计 (1)常见的系统通讯方式:WebService、访问Url、轮训、本地Sdk、MQ、Ajax等 (2)常见的数据交换方式:FTP、WebService、数据库共享、磁盘文件共享等 (3)接口设计的要点,接口隔离原则及其他 (4)典型案例分析:实创集团办公项目案例分析 |
第七单元: 软件架构设计 |
数据库及数据表设计 (1)数据库设计中的常见问题 (2)分布式数据库设计的6种模式 (3)伪分布式数据库设计的优劣及运用 (4)数据表设计的6种模式 (5)数据表设计中的反规范化 (6)海量数据技术:如何提高效率 (7)连接对象管理设计 (8)事务管理和数据的同步与锁 (9)典型案例分析:中国高校科研管理系统案例等分析;结合多个实际项目进行分析,总结数据库设计模式 架构设计实践 (1)静态设计:按层+高内聚低耦合的原则进行模块划分;划分层次;为模块进行职责分配;隔离关注面:低耦合原则;适当采用设计模式;模块结构的常见形式;核心模块的接口设计。 (2)模块间的通信及耦合设计:组件式编程;通讯机制;解耦;设计数据层 (3)动态设计:抽象与统一不同的因素;常用的流程抽象手段;逻辑控制;消息通知机制; (4) 模块调整: 调整模块等级; 用设计模式优化设计;编码时构建适当的动态临时类;效率的优化 (9)架构设计实践:商业数据分析系统中的架构设计步骤及剖析。 |
第八单元: 综合软件架构实践与剖析(架构设计实战) |
(1)POS收款系统构案例研究与分析 (2)政府项目,资产管理系统软件架构案例研究与分析 (3)企业项目,软件架构案例研究与分析 |
第一单元: 软件架构视图及体系 软件架构的视图 (1)软件架构视图的意义 (2)软件架构师的多维思考 (3)逻辑视图、开发视图、物理视图、运行视图、场景视图、数据视图、功能视图 (4)典型案例分析:结合多个项目实例,分析软件架构视图在软件架构设计中的作用 架构师及软件架构体系 (1)软件架构师应掌握的知识体系 (2)软件架构设计的特点、层次、分类 (3)软件架构的主要理论、方向和趋势 |
第二单元: 软件架构设计的基本原则 架构设计中的模块划分及职责分配 (1)什么是GRASP设计原则 (2)信息专家模式和应用场景,以及案例分析 (3)创建者模式和应用场景,以及案例分析 (4)高内聚/低耦合模式和应用场景,以及案例分析 (5)控制者模式和应用场景,以及案例分析 (6)多态纯虚构模式和应用场景,以及案例分析 (7)间接和应用场景,以及案例分析 (8)保护变量模式的重要意义,以及案例分析 (9)典型案例分析:税务系统中GRASP模式的实践及剖析 |
第三单元: 软件架构设计过程方法 领域模型介绍 (1)领域模型在架构中的作用 (2)领域模型介绍:失血、贫血、充血、涨血模型 (3)EJB与轻量级框架的优缺点及选择要点 (4)面向对象与面向过程设计的优缺点及选择要点 商业/ 逻辑 / 物理架构设计 (1)软件架构的开发(如何把架构设计以framework方式实现) (2)服务facade设计 (3)业务逻辑层实体设计 (4)业务逻辑层组件设计 (5)业务逻辑层框架(EJB,Springframework,.Net框架) (6)分布式应用场景 (7)软件架构的维护和复用 (8)案例分析:结合项目实例分析,业务逻辑层的架构设计 (9)典型案例分析:结合具体项目案例进行分析:演示架构设计过程 使用UML进行架构建模 (1)架构模型的选择技巧 (2)动态模型与静态模型的搭配 (3)建模中的7大常见误区 (4)借鉴RUP建模过程及要素 (5)经典案例分析:结合某商业产品案例分析,演示不佳建模如何重构为合理建模 |
第四单元: 软件架构设计的关键因素 软件架构质量属性分析 (1)软件功能需求对架构的影响 (2)软件架质量属性和架构师经验的引入 (3)软件商业质量属性分析 (4)软件约束条件与架构的影响 (5)使用目标-场景-决策表进行迭代架构设计 (6)典型案例分析:PMS质量属性对的系统架构设计影响 软件架构的关键因素的实现 (1)什么是架构, 它和系统是如何关联的。 (2)如何获得可维护性、可扩展性、可重用性、互操作性等。 (3)在系统中如何组织组件(Component) 。 (4)如何保持平台相关的细节和应用的分离。 (5)如何应用封装(encapsulation)、抽象(abstraction)和委派(delegation)的原则。 (6)策略和实现的分离(Separation of Policy and Implementation) (7)接口和实现的分离(Separation of Interface and Implementation) (8)单一引用点(Single Point of Reference) (9)典型案例分析:某商业数据采集系统中,架构关键因素的体系及设计技巧 |
第五单元: 软件架构设计原则与模式 使用模式作为架构的核心骨架,避免走弯路 (1)析创建型模式:单例模式(Singleton)、抽象工厂模式(Abstractfactory) (2)分析结构型模式:桥梁模式(Bridge)、装饰模式(Decorator)、适配器模式(Adapter)、代理模式(Proxy)、合成模式(Composite) (3)分析行为型模式::命令模式(Command )、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Template Method) (4)设计模式的在架构设计的综合应用 (5)架构实战:用经典模式作为超市收款系统的核心,达成高可扩展性 设计模式的本质分析 (1)设计模式如何适应变化和封装 (2)设计模式的本质:隔离变化点;间接;透明;局部双向依赖;逻辑与功能;用接口抹平差异、延迟调用。 (3)模式的推演:掌握模式的本质,而非形式。 (4)设计模式的高级运用:神似而非形似;以工程实际为标准;可以牺牲掉的特征;简化的模式;防止滥用;自创模式。 (5)架构实战:VTF编辑器中的反模式及其分析 软件架构模式 (1)软件架构模式概述 (2)分层架构模式 (3)Pipe/Filter Pattern (4)MVC Pattern (5)Event-Based Pattern和Microkernel Pattern (6)其他模式的介绍 (7)典型案例分析:资源管理系统中的软件架构模式运用 (8)典型案例分析:某商业数据分析系统中的软件架构模式运用 软件架构之中应用框架(framework) (1)IOC/DI /DIP模式的深度解析 (2)扩展点与通用点的分析及确认 (4)组合法与继承法在框架设计中的运用 (5)子系统如何堆叠为完整的系统 (6)架构实战:超级文件处理器中的框架平台设计,逐步深入,讲解实现思路 软件架构涉及的服务模式 (1)ClassFactory Service、Caching Service、Configuration Service、 EventNotification Service、WindowService Service 、MessageQueue Service、Authorization Service、Authentication Service、Cryptography Service、Transaction Service、DocumentLayer Service 、Workflow Service (2)典型案例分析:资源管理系统中的服务模式 |
第六单元: 基于SOA (面向服务架构)架构设计 基于SOA (服务导向架构)架构设计 (1)SOA的概念 (2)SOA的设计目标 (3)服务识别,分类,实现 (4)异构性Heterogeneity;可伸缩性Scalability;适用性Availability;分布式Distribution; .机动性Flexibility;可见性。 (5)服务注册,发现,生命周期管理 (6)服务的消息交换模式 (7)BPM与SOA (8)SOA的开发过程,SOA和组织,监管(SOA Organization and Governance) (9)典型案例分析:实创集团办公项目案例分析 系统间通讯及接口设计 (1)常见的系统通讯方式:WebService、访问Url、轮训、本地Sdk、MQ、Ajax等 (2)常见的数据交换方式:FTP、WebService、数据库共享、磁盘文件共享等 (3)接口设计的要点,接口隔离原则及其他 (4)典型案例分析:实创集团办公项目案例分析 |
第七单元: 软件架构设计 数据库及数据表设计 (1)数据库设计中的常见问题 (2)分布式数据库设计的6种模式 (3)伪分布式数据库设计的优劣及运用 (4)数据表设计的6种模式 (5)数据表设计中的反规范化 (6)海量数据技术:如何提高效率 (7)连接对象管理设计 (8)事务管理和数据的同步与锁 (9)典型案例分析:中国高校科研管理系统案例等分析;结合多个实际项目进行分析,总结数据库设计模式 架构设计实践 (1)静态设计:按层+高内聚低耦合的原则进行模块划分;划分层次;为模块进行职责分配;隔离关注面:低耦合原则;适当采用设计模式;模块结构的常见形式;核心模块的接口设计。 (2)模块间的通信及耦合设计:组件式编程;通讯机制;解耦;设计数据层 (3)动态设计:抽象与统一不同的因素;常用的流程抽象手段;逻辑控制;消息通知机制; (4) 模块调整: 调整模块等级; 用设计模式优化设计;编码时构建适当的动态临时类;效率的优化 (9)架构设计实践:商业数据分析系统中的架构设计步骤及剖析。 |
第八单元: 综合软件架构实践与剖析(架构设计实战) (1)POS收款系统构案例研究与分析 (2)政府项目,资产管理系统软件架构案例研究与分析 (3)企业项目,软件架构案例研究与分析 |