2009年1月22日星期四

关于OOD的一点点总结

很多成熟的设计过程摆在面前:用例驱动、XP用户故事、特征驱动FDD、模型驱动MDD、敏捷模型驱动、领域驱动、测试驱动等等等等……到底应该怎么设计呢?
简单的讲,过程内容会分为需求分析和设计。
需求驱动是最根本的,所以在需求阶段,所谓的各种驱动方法其实都是对需求的功能分解,以便日后进行分治的设计以及管理跟踪。
由Use Case -> User Story -> Feature其实是由粗到细对需求分解的不同粒度。
有了需求条目之后,针对每一个条目可以继续进行设计工作。
设计过程的目标其实很简单:
  • 类的识别
  • 类的结构(例如:继承、关联、聚合、依赖等等)
  • 类的属性
  • 类的方法
  • 系统运行是类之间的消息传递关系。
前三项是在整个设计过程中不断进行更新的,是个逐步细化的过程。分析的早期就可以识别大部分实体类,而在模拟需求条目的场景的过程中,逐步识别边界类(主要来自于页面流程分析)和控制类。主要的工具就是UML类图。
后两项则是通过模拟每一个需求条目所描述的场景来设计类之间的消息传递关系。在这个过程中,自然的完成对类分配方法。主要使用的工具如顺序图、协作图或者CRC分析。

对于MDD, AMDD以及DDD来讲,感觉上是针对非常熟悉的业务需求或者非常有经验的分析设计人员,因此采用了更新颖的设计路径。

而TDD应该理解为一种辅助设计手段。

没有评论: