系统分析与设计(技术专家)讲师
来源:互联网 发布:数据分析报告范文 编辑:程序博客网 时间:2024/05/22 15:26
一、什么是好的设计 –拥抱变化
1) 什么是好的软件详细设计和衡量的手段
2) 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标
3) 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标
4) 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进
5) 结合案例,通过那些手段如何实现该目标
二、软件灵活性和可扩展性设计的基本原则
1) 灵活性设计基本原则
2) 面向对象的基本原则(GRASP/OCP/SRP/ DIP等基本设计原则)
3) 根据共性性分析,进行行为职责或者数据的抽象
4) 根据可变性分析,进行职责的结构分析和实现
5) 局部化变更-可修改性战术目标是减少由某个变更直接影响的模块数量.
6) 防止连锁反应-目标是限制对局部化的模块的修改.减少间接受变更影响的模块.
7) 推迟绑定时间-尽量不要静态编译,应该运行期间决定组件之间关系
三、技术债务
1) 技术债务概述
2) 软件债务对软件系统的危害
3) 软件债务对软件开发人员的危害
4) 技术债务与破窗效应
5) 技术债务的解决之道
6) 通过信息管理系统案例演示,分析如何解决技术债务
7) 通过案例分析,对比不同的设计思维带来的维护问题
8) 通过案例分析,演示系统软件腐化的过程
四、软件详细设计程度-过度设计与设计不足
1) 分析真实项目,提出设计与实现的新思想
五、源代码就是设计
1) 分析真实项目代码, 认识代码的重要性.垃圾代码的危害
六、软件不可预测性
1) 软件需求的不可预测性
2) 预先设计的局限性
3) 传统瀑布型设计的问题
4) 案例分析, 根据课程介绍的坏症状,进行重构合理的设计
七、敏捷设计思想---演化式设计
1) 敏捷设计思想--强调通过提高团队的能力、设计的弹性和流程的灵活性来适应变化。
2) 演化设计--重构带来了一种新的构设计方法,称为反思性设计(Reflective Design)。除了创建一种设计并用代码实现它之外,你现在还可以分析已有代码的设计并改善它。寻求改进的一种最好的方法是通过代码嗅觉(code smells).
3) 在详细设计之中,如何对发现问题的设计进行重构
4) 案例分析, 根据课程介绍的坏症状,进行重构合理的设计
八、防止变异技术
1) 防止变异技术
2) 多态(polymorphism)和针对接口的编程
3) 数据驱动(Data-Driven Design)
4) 元数据驱动设计
5) 反射驱动(Meta-data or Reflective )
6) 解释器驱动
7) 脚本引擎技术
8) 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
九、结合案例讲解防止变异技术的应用分析
1、软件复用设计
a) 在详细设计之中,分析发现共同的行为的抽象和共同的机制来实现
b) 软件通用服务组件的设计
c) 复用已有的东西,比自己编写更容易。如果不容易,大家就不会去复用。
d) 软件复用的管理策略
2、软件通用机制的设计与实现 (以一个案例分析)
3、通用文件处理系统机制设计与实现
4、框架(Application framework)设计
a) 应用框架概述
b) 框架vs.类库的不同
c) 在软件详细设计时如何应用框架和设计新的框架
d) 典型案例分析:结合多个项目实例,在实际项目中如何进行应用和开发框架
5、通用文件处理系统案例-如何达成可扩展的框架
a) 系统需求演变
b) 设计一个通用的处理流程
c) 分析如何应用设计模式在该案例
d) 分析通过应用设计模式,带来了哪些好处(表现在软件的灵活性)
e) 分析如何转换为Framework
6、敏捷建模
a) UML在详细设计阶段的应用方式(4种方式)
b) UML类图和顺序图,在详细设计中,如何协作进行职责分配
c) UML图的是否保留和废弃
d) 结合多个案例项目进行分析,如何正确应用UML建模,以避免过度建模以及怎样保留UML建模成果和代码的同步问题
7、详细设计的文档和相关工具(根据学员和时间,现场适当调整)
a) 设计文档撰写
b) 设计文档的评审与基线
c) 详细设计转化为代码
d) 界面设计工具
e) 建模工具简介
f) 结合案例进行分析详细设计文档的编写
8、大型软件项目详细设计案例分析
a) 软件详细设计最佳实践
b) 某政府项目详细设计最佳实践
c) 某数据分析项目详细设计最佳实践
1) 什么是好的软件详细设计和衡量的手段
2) 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标
3) 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标
4) 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进
5) 结合案例,通过那些手段如何实现该目标
二、软件灵活性和可扩展性设计的基本原则
1) 灵活性设计基本原则
2) 面向对象的基本原则(GRASP/OCP/SRP/ DIP等基本设计原则)
3) 根据共性性分析,进行行为职责或者数据的抽象
4) 根据可变性分析,进行职责的结构分析和实现
5) 局部化变更-可修改性战术目标是减少由某个变更直接影响的模块数量.
6) 防止连锁反应-目标是限制对局部化的模块的修改.减少间接受变更影响的模块.
7) 推迟绑定时间-尽量不要静态编译,应该运行期间决定组件之间关系
三、技术债务
1) 技术债务概述
2) 软件债务对软件系统的危害
3) 软件债务对软件开发人员的危害
4) 技术债务与破窗效应
5) 技术债务的解决之道
6) 通过信息管理系统案例演示,分析如何解决技术债务
7) 通过案例分析,对比不同的设计思维带来的维护问题
8) 通过案例分析,演示系统软件腐化的过程
四、软件详细设计程度-过度设计与设计不足
1) 分析真实项目,提出设计与实现的新思想
五、源代码就是设计
1) 分析真实项目代码, 认识代码的重要性.垃圾代码的危害
六、软件不可预测性
1) 软件需求的不可预测性
2) 预先设计的局限性
3) 传统瀑布型设计的问题
4) 案例分析, 根据课程介绍的坏症状,进行重构合理的设计
七、敏捷设计思想---演化式设计
1) 敏捷设计思想--强调通过提高团队的能力、设计的弹性和流程的灵活性来适应变化。
2) 演化设计--重构带来了一种新的构设计方法,称为反思性设计(Reflective Design)。除了创建一种设计并用代码实现它之外,你现在还可以分析已有代码的设计并改善它。寻求改进的一种最好的方法是通过代码嗅觉(code smells).
3) 在详细设计之中,如何对发现问题的设计进行重构
4) 案例分析, 根据课程介绍的坏症状,进行重构合理的设计
八、防止变异技术
1) 防止变异技术
2) 多态(polymorphism)和针对接口的编程
3) 数据驱动(Data-Driven Design)
4) 元数据驱动设计
5) 反射驱动(Meta-data or Reflective )
6) 解释器驱动
7) 脚本引擎技术
8) 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
九、结合案例讲解防止变异技术的应用分析
1、软件复用设计
a) 在详细设计之中,分析发现共同的行为的抽象和共同的机制来实现
b) 软件通用服务组件的设计
c) 复用已有的东西,比自己编写更容易。如果不容易,大家就不会去复用。
d) 软件复用的管理策略
2、软件通用机制的设计与实现 (以一个案例分析)
3、通用文件处理系统机制设计与实现
4、框架(Application framework)设计
a) 应用框架概述
b) 框架vs.类库的不同
c) 在软件详细设计时如何应用框架和设计新的框架
d) 典型案例分析:结合多个项目实例,在实际项目中如何进行应用和开发框架
5、通用文件处理系统案例-如何达成可扩展的框架
a) 系统需求演变
b) 设计一个通用的处理流程
c) 分析如何应用设计模式在该案例
d) 分析通过应用设计模式,带来了哪些好处(表现在软件的灵活性)
e) 分析如何转换为Framework
6、敏捷建模
a) UML在详细设计阶段的应用方式(4种方式)
b) UML类图和顺序图,在详细设计中,如何协作进行职责分配
c) UML图的是否保留和废弃
d) 结合多个案例项目进行分析,如何正确应用UML建模,以避免过度建模以及怎样保留UML建模成果和代码的同步问题
7、详细设计的文档和相关工具(根据学员和时间,现场适当调整)
a) 设计文档撰写
b) 设计文档的评审与基线
c) 详细设计转化为代码
d) 界面设计工具
e) 建模工具简介
f) 结合案例进行分析详细设计文档的编写
8、大型软件项目详细设计案例分析
a) 软件详细设计最佳实践
b) 某政府项目详细设计最佳实践
c) 某数据分析项目详细设计最佳实践
d) 某超市项目详细设计最佳实践
有时间的老师请与我联系
0 0
- 系统分析与设计(技术专家)讲师
- 云计算与海量数据处理(技术专家)讲师
- 寻找高端 IT技术专家与授课讲师
- Embedded C/C++(讲师)技术专家
- 信息系统分析与设计(一、概述)
- 系统分析与设计笔记
- 软件系统分析与设计
- 系统分析与设计读书笔记
- 雷达系统分析与设计
- 系统分析与设计考点
- 信息系统分析与设计----系统分析概述
- 《系统分析与设计》第一章 复习题
- 《系统分析与设计》读书笔记(二)
- 系统分析与设计关键笔记
- 13--软件系统分析与设计
- 系统分析与设计之用例图
- 系统分析与设计期末笔记
- 系统分析与设计 选课系统
- 细说 iOS 消息推送
- 第九周 结果预测(二)
- Oracle数据库,resultSet.getObject获取时间类型问题的解析
- 新生选拔赛一
- 多人即时战斗游戏服务端系列[3]--日志类及Config类以及Excel生成类
- 系统分析与设计(技术专家)讲师
- hdu 1026 Ignatius and the Princess I
- [LeetCode] 3Sum Closest
- [LeetCode] 3Sum Solution
- C++ 虚函数与纯虚函数
- 第12周项目1.5
- 禁止Html5在手机上屏幕页面缩放
- 求一个字符串的最长连续回文串(模板)
- 手把手教你做iOS推送