其它排期:
授课讲师:专家组
课程价格:5200
培训对象:
请填写您的报名信息
时间地点:
1) 点击这里,查看最近是否开课!
2) 本次课程已过期,请留下联系方式,近期开课时我们通知您!
课程信息:
2012年11月14日---11月17日地点:北京
2012年11月21日---11月24日地点:上海
培训费:5200元/人(含教材、证书、午餐、等)食宿统一安排,费用自理。
培训对象:项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。
学员基础
1、具有任何一种平台或嵌入式的项目设计、开发与组织的工作经验;
2、要求熟悉软件工程相关知识并有一定实践经验;
3、系统地学习过OOA、OOD和OOP知识的人员。
培训要点
本课程是关于软件架构设计的高级课程,所针对的对象是资深软件系统设计人员。作为一门高级课程,我们并不准备详细讨论某些具体的技术手段,而希望学员在已有工作经验的基础上,站在系统的高度,从什么是设计?为什么要设计?怎样进行设计?三个层面深入研究,进一步提升软件系统设计能力,提升软件项目开发水平。课程主要思想如下:
1,任何设计的依据都是目标,良好的架构可以根据目标形成一个有远见的设计。如果没有架构支撑,项目很可能会发展到一个无法预测的方向。而为了正确的设计就需要有一整套理念、思想、方法和原则来支撑,如果思想是匮乏的,设计也就无从谈起了。当我们面对一个抽象需求的时候,设计中应该有哪些关注点?良好架构设计的特征又是什么?在架构设计中我们必须努力避免哪些关键性的缺陷?解决这些问题需要有站在系统的角度思考问题的能力。
2,软件架构设计并不是类似于传统的概要设计,它是为了构建高质量的软件系统,由问题驱动从整体到细部不断精化、优化并确定解决方案的过程。从风险的角度来看,现实中最重要的风险是质量风险。我们如何在架构设计中考虑这些质量和风险要素?如何从顶层架构到组件设计等不同的细节层面上,通过发现问题到解决问题形成良好的设计风格?如何通过细节层次的设计反馈发现上层设计的问题并优化系统方案?这都是在不同层面的设计中需要考虑的问题。
3,架构师并不是一个普通的技术人员,思维空间要由纯技术转向团队和组织,要关注总结和指导。事实上只凭经验进行设计很危险,因为每一次遇到的情况都不一样。没有经过归纳总结的经验不能反映自然规律,其作为指导的价值也是要打折扣的。如何把已有的经验总结出来,形成能够指导他人的模式?如何让这种智力资产不断丰富并真正发挥作用?这成为一个优秀架构师的能力基础。
4,模式既然是一个经验系统,但如果这个系统是琐碎和散乱的,那它的指导意义也是有限的。把模式嵌入到过程中去,成为在每个设计节点上的指导建议,通过过程使模式体系化,这就是模式语言。模式语言帮助我们从整体上考虑问题,它超越了经验,更有利于提炼、交流以及分享架构层次上的知识。那么,如何在系统设计中根据不同模式之间综合、重叠、强化和平衡,使我们重新审视最初的设计直觉?如何在实践中跳出现有有模式实现更完美的设计?如何发挥创新思维建立符合组织特色的模式语言系统?如何通过构建模式语言拉动整个组织的设计思想向更高层次蜕变?这些都成为一个架构师应该考虑的问题。
5,在今天的企业环境下,变化就意味着胜出。在软件设计中,必须解决“高质量”和“需求变化”这两个重要而又互相矛盾的问题。在现代软件生态环境中,变化带来了竞争优势,但需求变更又会影响到软件质量水平,如何做到“拥抱变化而设计”?如何实现平衡矛盾的过程,通过互相配合而得到最佳(或者说最合适)的解决方案?架构师对于变化的哲学以及由此带来的设计思想变化,需要有透彻的理解。
6,面向服务的架构是在业务易变环境下的一种IT解决方案,云计算(Cloud Computing)是面向服务架构的一种更加宽阔的延伸,它集成了多种新技术,发展极为迅速。云计算正向着提高生产率、更好的协同工作、促进信息共享以及降低资源消耗这个目标发展。为此,架构师需要对云计算架构的思想和方法有比较深入的理解,不但会使用和揉合已有的服务,更要以服务提供者的角度去设计和开发,并且利用云计算架构的思想来提升产品的综合水准。
7,课程将以一个完整案例贯穿始终,但案例分析仅仅是营造问题讨论背景的一个手段。它告诉我们:如何进行系统思考?如何系统化考虑各种关系?如何审视系统内部各个环节的问题与解决方法?软件系统设计方法论的关键点在哪里?在课程中请关注案例解决问题的过程,但不是生搬硬套。
在本课程基础上,我们希望学员不但能掌握软件系统设计方法论,更要根据组织所处领域的不同,通过总结历史形成的经验、教训、方法、模式,通过归纳整理,形成具有本组织领域特色的系统设计方法,并最终形成对本组织有价值的智力资产。
培训内容
(一)软件架构设计的方法论
1,系统思考:软件架构设计方法学
软件系统架构与架构师
软件架构方法学基础
2,软件架构设计中的质量分析活动
从系统的观点看质量
前期进行关键质量属性分析
3,软件架构设计中的风险化解活动
解决复杂非线性问题方法论
通过架构设计早期缓解高风险
软件的腐化与重构
抵制庞大完整架构设计的诱惑
什么才是优雅的架构
4,软件产品线工程与架构
软件产品线工程的动机
软件产品线工程框架
面向特征的领域模型
(二)顶层架构设计的过程与模式
1,架构设计过程框架与模式语言
架构设计过程的定义
设计模式起源及内涵
设计模式的表达形式
从设计过程到模式语言
模式语言的表现形式
模式语言的实际应用
2,顶层架构设计问题空间
如何解决从混沌到结构的问题
如何解决分布式基础设施中的问题
如何解决事件分离和分发中的问题
如何解决接口划分中的问题
3,案例分析:产品线系统的基础架构
案例背景及领域分析
建立清晰的初期概念架构
确定顶层问题的设计策略
基础架构设计总结
(三)组件设计的过程与模式
1,面向对象的设计原则
单一职责原则(SRP)
开放—封闭原则(OCP)
依赖倒置原则(DIP)
接口隔离原则(ISP)
2,组件设计问题空间
如何解决组件划分中的问题
如何解决并发方面的问题
如何解决同步方面的问题
如何解决对象之间的交互中的问题
如何解决适配与扩展中的问题
3,资源应用问题空间
如何解决资源管理中的问题
如何解决数据库访问中的问题
4,案例分析:基础架构的细化设计
分布式环境对于组件布局的影响
领域对象的并发访问策略
日志处理的并发性策略
将面向对象与关系型数据库连接起来
基础架构细化设计小结
5,案例分析:业务拓扑组件的设计
业务拓扑组件基础架构设计
业务拓扑组件的问题与对策
业务拓扑组件接口详细设计
业务拓扑组件设计总结
6,软件产品线系统的开发与组织
开发前的准备工作
在开发过程中的验证与调整
建立合作型组织
7,软件架构分析与评价方法
软件架构的质量评估
ATAM的参与人员
ATAM的结果
ATAM的阶段
8,关于模式语言的进一步思考
(四)从面向服务的架构到云计算
1,面向服务架构的基本思想
SOA要解决的根本问题
面向服务架构的搭建
服务的识别与抽象
2,服务的接口规范
企业服务总线(ESB)
接口选型考虑
3,云计算架构模型及其实施
云计算问题的缘起
云计算的三层SPI模型
云计算关键概念:拓展服务领域
4,云计算应用架构所带来的挑战
云计算的部署模型和生态系统
在云计算时代的我们
云计算需要解决的新问题
云计算给企业带来了什么?
5,时代呼唤优秀的软件架构师
(五)软件架构分析与设计实践
1)设计风险及合理性
2)设计不是千篇一律,一蹴而就
3)设计识大体也要重小节
4)开源看上去很美
5)性能和容量是绕不开的话题
6)前台及业务体验贴近用户更重要
7)后台接口服务才是核心
8)数据持久化及数据存取
9)对外接口服务多斟酌
10)测试是质量控制的保证
师资
由业界知名软件架构师亲自授课:
谢新华 教授,大型电子对抗项目首席系统架构师
李 云 高级讲师,商务部首席架构师