培训对象:
项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。
培训内容:
在软件产品的开发组织中,系统架构师是软件项目的总设计师,是软件企业新产品、新技术体系的构建者,是目前软件开发中急需的高层次技术人才,为建立符合中国国情的软件开发架构设计体系,培训中心特举办“高级系统架构师”培训班。
培训要点
什么是设计呢?设计是一种对话,它不仅仅是与利益相关方的对话,也是自己与自己的对话。对于设计人员来说,本身的工作背景只是一个点,如果思考方式仅仅依靠这个点,慢慢的思想就被禁锢住了,这会严重约束我们的发展。我们必须撕破这个束缚,站在更高的角度看软件,这才能寻求更大的发展空间,本课程主要思想如下:
1,软件设计是一个思维活动,需要站在系统的高度,从什么是设计?为什么要设计?怎样进行设计?三个层面深入研究,才可能进一步提升软件设计能力,提升软件项目开发水平。世界上没有神奇的设计,优秀的设计来自于对每个问题的细致分析,来自于对每一个问题和解决方案的仔细权衡,也来自于我们的经验和眼光。设计的质量是由设计人员的质量决定的,深厚的积淀能够帮助我们应对软件开发的主要挑战,并且指导我们按照什么方法去应对这些挑战。
2,在今天的企业环境下,变化意味着胜出。在现代软件开发思想中,人们已经不再把软件看成固态的一成不变的东西,而是把它看成一个可培育可成长的活物,设计的理念变成了“拥抱着变化而设计”。那么我们的设计思维如何为这种理念提供更好的支持?如何把业务的共性和变化性这两个重要特征探寻并挖掘出来,为构建可维护、易扩展、可移植的软件寻求更好的帮助呢?
3,优秀的设计师是怎样成长起来的?任何人的成长都离不开实践,在实践中体会,在实践中解决问题,在实践中增长才干,这就形成了深厚的积淀。但是光有积淀是不够的,还需要把实践中的问题进行梳理,通过深刻的分析,发现其中的规律,上升到理论的高度,并用理论来指导实践。正是在这种一层又一层的循环中,才能使我们上升到前所未有的高度。
4,创新是企业的生命。为了应对新一代软件的挑战,软件研发方法发生了引人注目的变化,包括:软件质量以服务质量形式展现;希望更多的用户深人参与到软件全生命周期;用户体验得到空前重视。架构师应该如何迎接这些挑战?如何通过对软件架构的评价、分析帮助我们发现架构的问题,寻找架构改进的方向和重点,挣脱原有思维的束缚从而创造出伟大的产品?
5,课程将以设计方法论引入思考的框架,然后直接通过案例分析进入设计过程,不断地提出问题并解决问题,使学员逐步的领悟:如何进行系统思考?如何系统化考虑各种关系?如何发现问题并提出解决方案?在这个基础之上,进一步归纳整理寻找规律,上升到理性的高度,完成人们认识事物螺旋上升法则的循环。
从这个意义上说,本课程与其说是告诉人们怎么设计,还不如说是描述了一个向更高层次蜕变的故事,这个故事中蕴含的思想,可能比仅仅告诉人们怎么去做更有意义。在课程中请关注案例解决问题的过程,但不是生搬硬套。
在本课程基础上,我们希望学员不但能掌握软件系统设计方法论,更要根据组织所处领域的不同,通过总结历史形成的经验、教训、方法、模式,通过归纳整理,形成具有本组织领域特色的系统设计方法,并最终形成对本组织有价值的智力资产。
培训目标
1、掌握架构设计的核心思想与方法,并能够在软件架构设计的质量优化中灵活应用。
2、理解影响软件架构设计质量的问题、对策、解决方案与整体应对策略。
3、能够发挥创造性思维去改进已有的过程与设计方案,从而达到高质量与低成本的目的。
课程大纲
第一讲、系统思考:软件架构设计的方法论
1,软件架构设计的定义与问题
软件系统架构与架构师
风险驱动:认知、规律与关注点
什么是设计与怎样设计
2,架构阶段:质量需求与架构风格
为什么质量风险决定了架构风格
案例分析:高性能分布式并行计算架构
3,构建阶段:解决进度与质量的矛盾
模型改进:问题、对策与解决方案
重构:不要让技术债务变得庞大
4,需求变更:拥抱着变化而设计
让变化成为一个重要的设计要素
关注特征:共性和可变性分析
分析矩阵:与客户一起讨论变化
在行为分析中发现共性和变化性
软件复用与框架技术
对变化建模
变化环境中的结构优化原则
第二讲、案例分析:分布式系统架构设计与优化
1,案例背景及领域分析
领域分析与建模
系统质量指标及决策
演化:愿景、目标、路线图
2,基础系统的顶层设计
根据领域分析对系统进行服务划分
分布式问题的设计考虑
分离用户界面的设计考虑
解决性能问题的设计考虑
领域对象的并发访问考虑
日志处理的并发性考虑
顶层架构设计的设计树
3,业务拓扑领域对象设计
支持软件模型的重新组织
提高访问领域对象的性能
提供组织标准列表
支持重新配置行为考虑
4,业务拓扑领域对象的新问题
实现全局拓扑管理功能
业务拓扑的遍历考虑
支持业务流扩展
业务拓扑的配置方案
5,资源应用的考虑与设计
关系型数据库应用考虑
合理的设计缓存
维护内存中的存储单元数据
业务拓扑领域对象接口详细设计
领域对象设计的设计树
第三讲、理论归纳:架构设计的过程与模式
1,如何把经验归纳总结成理论
从过程的角度进行归纳总结
从模式的角度进行归纳总结
把模式嵌入过程:模式语言
模式语言的表现形式
2,顶层架构设计过程域
解决从混沌到结构的问题
解决分布式基础设施中的问题
解决事件分离和分发中的问题
解决接口划分中的问题
3,领域对象设计过程域
解决对象划分中的问题
解决并发方面的问题
解决同步方面的问题
解决对象之间的交互中的问题
解决适配与扩展中的问题
4,资源应用过程域
解决资源管理中的问题
解决数据库访问中的问题
5,结束语:执著的追求卓越
课程主讲
由业界知名软件架构师亲自授课:
谢老师培训中心副校长、教授,大型电子对抗项目首席系统架构师