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