再提面向对象分析与设计

本文探讨了面向对象分析(OOA)与面向对象设计(OOD)的区别与联系,重点介绍了两者的关注点及实践过程。面向对象分析侧重于业务模型与行为,而面向对象设计则更注重技术实现。
 作者:Anders小明
同步自: http://www.blogjava.net/AndersLin/archive/2006/11/21/82627.html

先看下Booch对面向对象分析和设计的经典论述:
OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员。
OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型。
OOA:面向对象分析是一种分析方法,它以可在问题域的词汇表中找到的类和对象的观点来审视需求。
 
经典是经典,不过总是不那么容易实践,我自己在工作中总结了一下面向对象分析和面向对象设计的区别:
1. 面向对象分析的关键点,是其产出物能够映射到业务系统的需求。因此,面向对象分析的产物称为业务模型(Business Model)和业务行为,关注在:领域对象(Domain Model),领域服务(Domain Service),以及相关的边界对象(Boundary Object)和控制对象(Controller Object);以及在此之上业务模型交互视图,包括了测量观察行为,以及账目(或类账目)处理行为。此时的设计不涉及任何具体的框架,工具包以及相关处理具体实现技术的对象。

2. 面向对象设计的关键是,其产出物能映射到计算机系统的要求。因为,面向对象设计建立在面向对象分析之上,细化业务模型和业务行为,给出面向对象技术的技术实现。表现为结合了大量具体框架,工具包以及相关技术实现对象(以Factory为代表,Factory对象是处理实例化的,而这是计算机系统的概念)。

虽然面向对象分析和设计存在重大区别,然后它们有时并不能被明显区分。面向对象设计是对面向对象分析有限制作用。从实用角度讲,如果分析的成果在转化为设计的成果存在巨大困难时,分析成果的价值是有限的。

以下简单列出自己的面向对象分析设计的实践过程:
1. 分析阶段
 分析对象模型,不细化对象模型的抽象和封装
 分析业务行为,不细化行为的层次分解
 连接对象模型和业务行为,分析相关的各种Specification
 初步细化行为的层次分解
 初步细化对象模型的抽象层次
 分析行为和请求的响应模式

2. 设计阶段
 设计各种Specification的实现策略
 进一步细化行为的层次分解
 设计行为和控制器的关联逻辑分解
 进一步细化对象模型的抽象体系
 结合框架设计行为和请求的响应模式
 结合框架设计行为和控制器的关联逻辑分解

不知道其它的兄弟们怎么工作的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值