面向对象分析与设计实战

 

主题1:面向对象分析

一、基于Use Case需求分析

1.客户需求、用户需求与系统需求

2.需求分析成果的可视化图形表达

3.UML中Use Case Diagram

4.SysML中Requirement Diagram

5.Use Case关系流程模型

6.Use Case全局分析-泛化、扩展与包含

7.扩展Use Case实现非功能性的建模

二、Use Case细节可视化表达

1.Use Case规格化文字描述方式

2.Use Case文档模板编著

3.Use Case元素的场景活动建模-Activity Diagram

4.Use Case元素的场景状态建模-State Diagram

5.Use Case元素的UI原型建模-UI Prototype Diagram

 

主题2:面向对象分析到设计过渡桥梁

一、鲁棒分析(Robustness Analysis)

1.从业务到技术过度模型Robustness Diagram

2.Use Case技术实现对象切割-边界对象、控制对象与实体对象

3.MVC模式与3对象关系

4.Peter Coad提出的四色原型分析法

5.实体与行为关系图- DFD图

6.基于ICONIX Plugin鲁棒分析建模

二、分析类(Analysis Class)

1.Boundary Class的控件属性与交互事件

2.Control Class的属性与接口函数

3.Entity Class的属性与操作函数

4.转化需求场景-Sequence Diagram与Interaction diagram

 

主题3:面向对象设计

一、设计类结构设计

1.设计类中业务属性与技术属性

2.静态类、动态类

3.抽象类、接口类、模板类

4.枚举、结构体

5.类间关系设计-依赖与关联

6.类间解耦设计-第三者解耦与依赖解耦

7.基于设计模式解决“类的变化”

二、对象数据结构设计

1.内存数据结构设计-数据结构与实体

2.数据序列化与反序列化

3.数据外部存储设计-File结构与DB结构

4.范式原则与表结构数据冗余

5.可扩展的数据库结构设计

6.数据库SQL访问设计

7.数据库访问操作设计-ORM模式

8.分布式文件访问设计-MapReduce模式

三、如何应对需求的变化

1.设计基本原则

2.发现和封装变化的原则

3.面向对象的基本原则(OCP/SRP/DIP等基本设计原则)

4.根据共性性分析,进行行为职责或者数据的抽象

5.根据可变性分析,进行职责的结构分析和实现

6.局部化变更-可修改性战术目标是减少由某个变更直接影响的模块数量.

7.防止连锁反应-限制对局部化的模块的修改与减少间接受变更影响的模块.

8.推迟绑定时间-尽量不要静态编译,应该运行期间决定组件之间关系

四、敏捷设计思想

1.传统详细设计的局限性

2.软件详细设计的过程和内容

3.敏捷设计新思想-演化式设计

4.过度详细设计(Over-engineering)问题和注意事项

5.设计不足(Under-engineering)问题和注意事项

6.反思性设计(Reflective Design)

五、软件复用设计

1.设计经验的参数化-软件设计模式

2.共同行为的抽象和共同机制的实现

3.软件通用服务组件的设计

4.软件复用的管理策略

5.探究设计模式的记忆之谜