软件架构设计最佳实践

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

软件架构设计最佳实践相关推荐

  1. 软件架构设计最佳实践(课程大纲)

    软件架构设计最佳实践 课程介绍: 1.深入阐述软件架构设计的思想.方向及趋势: 2.剖析软件架构的全景视图: 3.结合实际案例分析架构设计过程及需求对架构的影响: 4.如何实用设计模式来实现好的架构: ...

  2. 【架构实践】软件架构设计最佳实践

    软件架构设计最佳实践 课程介绍: 1.深入阐述软件架构设计的思想.方向及趋势: 2.剖析软件架构的全景视图: 3.结合实际案例分析架构设计过程及需求对架构的影响:4.如何实用设计模式来实现好的架构:5 ...

  3. RESTful API 设计最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 背景 目前互联网上充斥着大量的关于RESTful API(为方便,下文中"RESTful API "简写为 ...

  4. 58同城数据库软件架构设计与实践

    转载自 http://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=400465735&idx=1&sn=8d7067de4cc8 ...

  5. mongodb数据合并设计_「时间序列数据」和MongoDB(二)-模式设计最佳实践

    在上一篇博客文章时间序列数据与MongoDB:第一部分-简介中,我们介绍了时间序列数据的概念,然后介绍了一些可以用于帮助收集时间序列应用程序需求的发现问题.对这些问题的回答有助于指导支持大容量生产应用 ...

  6. python组件的react实现_React-Router动态路由设计最佳实践

    写在前面 随着单页应用(SPA)概念的日趋火热,React框架在设计和实践中同样也围绕着SPA的概念来打造自己的技术栈体系,其中路由模块便是非常重要的一个组成部分.它承载着应用功能分区,复杂模块组织, ...

  7. 来自Google资深工程师的API设计最佳实践

    来自Google资深工程师Joshua Bloch的分享:API设计最佳实践 为什么API设计如此重要?API是一个公司最重要的资产. 为什么API的设计对程序员如此重要? API一旦发布,出于兼容性 ...

  8. [译] RESTful API 设计最佳实践

    https://juejin.im/entry/6844903503953920007 [译] RESTful API 设计最佳实践 阅读 8779 收藏 0 2017-10-16 原文链接: seg ...

  9. 设计模式 工厂方法_使用工厂方法模式设计最佳实践

    设计模式 工厂方法 在前面的"设计模式"示例中,我们解释了当今常用的"工厂"模式. 在本节中,我们将了解具有更多抽象的更高级的解决方案. 该模式称为工厂方法设计 ...

最新文章

  1. Matlab数据的可视化 -- 视角与色彩控制
  2. [lcm] Qualcomm平台的显示屏lcd驱动移植步骤
  3. html中看到php代码_如何在HTML中嵌入PHP代码
  4. runtime运行时编程一些相关知识
  5. Xcode文件名后的字母含义
  6. Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式
  7. C++实用技巧(三)
  8. 学会这几个Redis技巧,让你的程序快如闪电
  9. 2.3.4 信号量机制
  10. linux超级密码,找回Linux超级用户root密码
  11. 前端学习(763):变量属性函数方法的区别
  12. PKU3259-Wormholes(SPFA判断负环,含题意)
  13. java线程冲突问题——不安全的线程例子
  14. 增加window服务器,Windows Server2012入门-添加服务器角色和功能
  15. python破解压缩包密码(密码字典)
  16. dhtmlxGantt standard vs dhtmlxGantt pro
  17. Vue项目搭建常用的配置文件,request.js和vue.config.js
  18. c语言银行卡六位密码编译,6位随机密码生成器
  19. 吹气球-LintCode
  20. SAP MM 固定资产采购订单

热门文章

  1. App设计灵感之十二组精美的音乐播放器App设计案例
  2. Git内部原理之深入解析维护与数据恢复
  3. Swift之深入解析闭包Closures的使用和捕获变量的原理
  4. iOS之深入解析分类Category的底层原理
  5. HarmonyOS之公共事件的发布、订阅与退订
  6. 2 0 2 0 年 第 十 一 届 蓝 桥 杯 - 省赛 - Python大学组 - A. 门牌制作
  7. LDC1000学习资料
  8. 大数据文字游戏_基于大数据的成功应用有哪些 ?
  9. Docker Centos 7.X部署Mysql并修改编码
  10. php设置东京时区,php设置时区方法介绍