系统分析与设计(技术专家)讲师

来源:互联网 发布:数据分析报告范文 编辑:程序博客网 时间: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) 某数据分析项目详细设计最佳实践

d) 某超市项目详细设计最佳实践


有时间的老师请与我联系

0 0
原创粉丝点击