在软件产品的开发组织中,系统架构师是软件项目的总设计师,是软件企业新产品、新技术体系的构建者,是目前软件开发中急需的高层次技术人才,为建立符合中国国情的软件开发架构设计体系,培训中心特举办“高级系统架构师”培训班,具体事宜通知如下:
一、培训对象
项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。
二、学员基础
1、具有任何一种平台或嵌入式的项目设计、开发与组织的工作经验。
2、要求熟悉软件工程相关知识并有一定实践经验。
三、师资
由业界知名软件架构师亲自授课:
谢老师 培训中心副校长、教授,大型电子对抗项目首席系统架构师
刘老师 国内某著名网站技术总监
四、培训要点
什么是设计呢?设计是一种对话,它不仅仅是与利益相关方的对话,也是自己与自己的对话。对于设计人员来讲,本身的工作背景只是一个点,如果思考方式仅仅依靠这个点,慢慢的思想就被禁锢住了,这会严重约束我们的发展。我们必须撕破这个束缚,站在更高的角度看软件,才能寻求更大的发展空间。
软件设计是一个思维活动,需要从什么是设计?为什么要设计?怎样进行设计?三个层面系统思考与研究,才可能进一步提升软件设计能力。世界上没有神奇的设计,优秀的设计来自于对每个问题的细致分析,来自于对每一个问题和解决方案的仔细权衡,也来自于我们的经验和眼光。设计的质量是由设计人员的质量决定的,深厚的积淀能够帮助我们应对软件开发的挑战,并且指导我们应对这些挑战。
那么优秀的设计师是怎样成长起来的?任何人的成长都离不开实践,在实践中体会,在实践中解决问题,在实践中增长才干,这就形成了深厚的积淀。但是光有积淀是不够的,还需要把实践中的问题进行梳理,通过分析发现其中的规律,把它上升到理论的高度,并用理论来指导实践。正是在这种层层的循环中,才能使我们上升到前所未有的高度。
课程将从设计方法论开始引入思考框架,然后直接通过案例分析进入设计过程,不断地提出问题并解决问题,使学员逐步的领悟:如何进行系统思考?如何系统化考虑各种关系?如何发现问题并解决问题?在这个经验的基础上,进一步寻找规律,从过程和模式两个方面进行归纳总结,使经验上升到理性的高度,形成能够指导未来设计的设计模式与模式语言。在此基础上,课程将引导学员再一次回到实践,以一个“日超过亿万调用的互联网中间层改造工程”案例为背景,重点讨论在这个背景下遇到的问题以及面对的挑战,紧扣“并发”、“同步”、“缓存”、“表”这四个关键问题展开讨论,完成认识事物螺旋上升法则的一个完整循环。
从这个意义上说,本课程与其说是告诉人们怎么设计,还不如说是描述了一个向更高层次蜕变的故事,这个故事中蕴含的思想,可能比仅仅告诉人们怎么去做更有意义。在本课程基础上,我们希望学员不但能掌握软件系统设计方法论,更要根据组织所处领域的不同,通过总结历史形成的经验、教训、方法、模式,通过归纳整理,形成具有本组织领域特色的系统设计方法,并最终形成对本组织有价值的智力资产。
五、培训内容
第一讲 软件架构设计的方法论
1,系统思考:软件架构设计方法学
2,用风险消除策略驱动架构设计
质量风险对架构设计的影响
可靠性问题的架构解决方案
可集成性问题的架构解决方案
性能问题的架构解决方案
进度风险对架构设计的影响
3,拥抱着变化而设计
关注特征:共性和可变性分析
在行为分析中发现共性和变化性
对变化建模:发现变化的规律
4,面向对象的设计原则
第二讲 从实践到理论:顶层设计的案例
1,实践:从案例分析入手研究问题
案例背景及领域分析
确定产品设计的目标与策略
2,建立清晰的初期概念架构
从混沌到结构:职责的层次分解
分布式问题的设计考虑
分离用户界面的设计考虑
3,基础系统的细化设计
分布式环境对于组件布局的影响
领域对象的并发访问考虑
日志处理的并发性考虑
第三讲 从实践到理论:领域对象设计的案例
1,关注细节:业务拓扑组件设计
支持软件模型的重新组织
提高访问领域对象的性能
支持重新配置行为考虑
2,组件设计的问题与对策
实现全局拓扑管理功能
支持业务流的后期扩展
维护内存中的存储单元数据
业务拓扑组件接口详细设计
第四讲 从理论到实践:设计模式与模式语言
1,如何把经验归纳总结成理论
从过程的角度进行归纳总结
从模式的角度进行归纳总结
把模式嵌入过程:模式语言
2,顶层架构设计过程域
如何解决从混沌到结构的问题
如何解决分布式基础设施中的问题
如何解决事件分离和分发中的问题
如何解决接口划分中的问题
3,组件设计过程域
如何解决组件划分中的问题
如何解决并发方面的问题
如何解决同步方面的问题
如何解决对象之间的交互中的问题
如何解决适配与扩展中的问题
4,资源应用过程域
如何解决资源管理中的问题
如何解决数据库访问中的问题
5,问题与扩展:面向服务的架构设计与实施
第五讲 理论到实践:日超过亿次调用的互联网中间层改造工程
1,案例背景:遇到的问题以及面对的挑战
2,项目的初期决策以及关注点
对IT架构和架构师的职责定义
IT技术的四个领域及构建知识体系
IT架构都必定拥有的三个架构组成部分
3,并发设计
多核处理器并发所面临的挑战
NUMA、SMP与CMP架构的特点
多核情况下CPU缓存所带来的问题:一致性和性能问题
并发设计解决方案
4,阻塞同步与自旋
自旋锁的概念,使用条件
偏向锁、可重入锁和读写锁
粗粒度和细粒度同步,乐观同步、非阻塞同步
复合逻辑的并发问题
上下文切换的影响,以及如何降低上下文切换
同步问题解决方案
5,缓存设计
缓存的常见算法:拉链法和开放地址散列,内外缓存
缓存部署分类:单机混合部署、多机部署
通过命中率、缓存穿透后代价等因素来评价缓存
脏数据和时间不同步所带来的问题。
CPU缓存设计的启示,使用多级缓存,冷热数据分离
缓存服务的解决方案
6,合理的表结构设计
互联网中的反范式
混搭数据库类型的问题和好处
空间与时间互相交换,散列
7,课程总结
六、培训目标
1、掌握架构设计的核心思想与方法,并能够在软件架构设计的质量优化中灵活应用。
2、理解影响软件架构设计质量的问题、对策、解决方案与整体应对策略。
详情请咨询:010-82661199-854