|
主题 |
内容 |
|
优秀软件设计(可维护性) |
内容一:什么是好的设计
- 什么是好的软件详细设计和衡量的手段 - 世界大师的观点(Robert C Martin , Peter Code,` James Shor) - 我们现实项目的情况,随时需求的变化,我们自以为豪的设计,都逐渐变烂,变成纠缠不清的代码浆糊 - 可扩展性(Extensibility)容易添加新的功能。结合案例,通过那些手段如何实现该目标 - 灵活性(Flexibility)代码修改平稳地发生。结合案例,通过那些手段如何实现该目标 - 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来。结合案例,通过那些手段如何实现该目标 - 分析真实项目,如何设计,给我们哪些启示,我们可以学习到什么 - 分析我们在项目之中是那些原因导致了没有实现这些目标
内容二:优秀软件设计如何实现
- 优秀设计的精髓-开闭原则和变化封装 - 可扩展性(Extensibility)/灵活性(Flexibility)/可插入性(Pluggability)的实现基本原则 - 发现和封装变化的原则 - 共性和可变性分析原理 - 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
内容三:案例- 某省电信项目案例
- 某省电信项目,必须考虑支持多种设备 - 初始设计的问题分析 - 如何实现灵活性/可扩展性 - 设计过程和误区的分析
内容四:案例- 某省电力项目案例
- 某省电力项目,需求的演变过程对设计的影响 - 初始设计的问题分析 - 如何实现发现变化,封装变化,隔离变化 |
|
拙劣设计和重构技术 |
内容一:软件不可预测性
- 软件需求的不可预测性 - 预先设计的局限性 - 传统瀑布型设计的问题
案例分析,根据课程介绍的坏症状,进行重构合理的设计
内容二:敏捷设计思想---演化式设计
- 敏捷设计思想--强调通过提高团队的能力、设计的弹性和流程的灵活性来适应变化。 - 演化设计--重构带来了一种新的构设计方法,称为反思性设计(Reflective Design)。除了创建一种设计并用代码实现它之外,你现在还可以分析已有代码的设计并改善它。寻求改进的一种最好的方法是通过代码嗅觉(code smells)。 - 在详细设计之中,如何对发现问题的设计进行重构 案例分析, 根据课程介绍的坏症状,进行重构合理的设计
内容三:案例---某互联网项目系统
- 申请单管理系统 - 流程审核的改变 - 申请单类型的增加 传统设计的问题与如何通过代码进行演化
内容四:拙劣设计的坏症状和代码坏味道
- 拙劣设计概述 - 拙劣设计常见症状以及如何发现和治疗 - 在详细设计之中,如何对发现问题的设计进行重构 - 代码坏味道概述 案例分析, 根据课程介绍的坏症状,进行实际项目重构的设计
内容五 :重构到模式
- 重构概述 - 常见的重构方式 - 重构实现手段 - 重构到设计模式 - 在详细设计之中,如何对发现代码问题 案例分析-对实际项目的案例进行代码分析和重构
内容六:案例---某金融项目系统
- 缓存系统设计 - 缓存系统的原始设计问题以及原因 - 如何发现重构点 - 如何重构 - 如何保证大规模重构的正确性 |
|
软件复用设计 |
内容一:软件可复用性
- 软件可复用性设计概述 - 在设计之中,分析发现共同的行为的抽象和共同的机制来实现 - 系统通用服务组件的设计 - 系统的配置管理机制的设计与实现 - 系统的Cache缓存机制的设计与实现 - 系统的异常处理机制的设计与实现 - 其他常见的通用机制的设计和分析
案例分析-对某电信项目的案例进行如何复用
内容二:应用框架(Application framework)设计
- 应用框架和软件设计复用 - 框架vs.类库的不同 - 在软件详细设计时应用框架 - 如何构建自己项目的应用框架
典型案例分析:某电信项目框架的设计和实现分析
内容三:案例---某税务项目系统
- 异常系统系统设计 - 异常系统的原始设计问题以及原因 - 如何发现通用点 - 如何设计框架—分析通用点和扩展点 - 如何设计接口,方便扩展(使用模板方法) - 框架的调整策略 |
|
设计新视角-什么才是真正的敏捷设计 |
内容一:代码新思维----源代码就是设计
- 传统代码认识的误区 - 设计与施工分离的误区 - 源代码就是设计 - 破窗效应和技术债务 分析真实项目代码, 认识代码的重要性.垃圾代码的危害
内容二:敏捷建模—如何真正使用UML
- UML在详细设计阶段的应用方式(4种方式) - UML类图和顺序图,在详细设计中,如何协作进行职责分配 - UML图的是否保留和废弃 结合多个案例项目进行分析,如何正确应用UML建模,以避免过度建模以及怎样保留UML建模成果和代码的同步问题 |
|
软件设计原则和模式 |
内容一:软件设计模式思想和案例分析
- 设计模式概述 - 设计模式的本质论 - 设计模式如何适应变化和封装 - 为什么学习设计模式后却不能应用到真实项目? - 滥用模式和过度设计,我们如何真正应用? - 解决开发人员只停留在对设计模式的理论认识上,无法将设计模式思想有效地应用在软件设计过程中
结合项目实例,分析设计模式在软件详细设计时期的实际应用 结合案例进行分析, 应用设计模式之前和应用之后的对比, 从中发现这些设计模式是否真正为设计带来好处
内容二:软件设计原则和案例分析
- 设计原则概述 - 面向对象的设计基本原则 - 通用职责原则(GRASP)
结合项目实例,分析哪些设计违反了这些原则,以及如何重构
内容三:某项目案例的设计分析
项目背景 - 项目的详细设计 - 分析哪些是过度设计,滥用了设计模式 - 分析哪些设计违反了这些基本设计原则,以及如何重构 - 如何重构到模式 |
|
我读经典-向大师学习,学习什么是真正美的的设计 |
内容一:我读经典-设计之美
- 世界级软件大师经典的作品鉴赏 - 从大师学习到什么? - 通过案例分析,我们和他们的差距
内容二:著名开源项目设计分析 –向大师学习
- JUNIT设计原则/模式 - Fit设计之美 - Log4J设计的思考
内容三:我读经典-代码之美 - 整洁代码之道,通过阅读代码我们学习到什么?
内容四:著名开源项目设计分析 –什么是整洁代码 - FitNess设计之美 |
|
软件设计质量属性 |
内容一:软件的质量属性对设计的影响
- 什么是系统质量属性,如何进行定义质量属性 - 详细设计需要考虑的质量属性 - 可维护性、可扩展性、可靠性、互操作性,系统性能,安全性定义和如何测试,以及实现策略 - 系统质量属性和设计原则和模式的关系 - 结合多个案例进行分析,通过那些手段来实现这些质量属性
内容二:案例某系统系统质量属性实现分析
- 结合某实际案例进行分析,通过那些手段来实现这些质量属性 - 系统设计的一些技巧 |
|
大型项目设计案例分析 |
内容一:大型项目案例分析----思考如何做设计的
案例分析—某邮政项目的基于规则引擎的应用 面向方面的编程范式和AOP技术
案例分析—某金融项目的事务管理的设计 的简单介绍和案例场景,设计的决策
案例分析—某政府项目的设计 的简单介绍和案例场景,如何做设计 | |