`
yimlin
  • 浏览: 137279 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

再提面向对象分析与设计

阅读更多
(注:最早发在blog上,不过没有讨论,一个大概是我自己没有描述清楚,一个限于blog的形式吧。转到这里来看看)

先看下Booch对面向对象分析和设计的经典论述:
OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员。
OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型。
OOA:面向对象分析是一种分析方法,它以可在问题域的词汇表中找到的类和对象的观点来审视需求。

经典是经典,不过总是不那么容易实践,我自己在工作中总结了一下面向对象分析和面向对象设计的区别:
1. 面向对象分析的关键点,是其产出物能够映射到业务系统的需求。因此,面向对象分析的产物称为业务模型(Business Model)和业务行为,关注在:领域对象(Domain Model),领域服务(Domain Service),以及相关的边界对象(Boundary Object)和控制对象(Controller Object);以及在此之上业务模型交互视图,包括了测量观察行为,以及账目(或类账目)处理行为。此时的设计不涉及任何具体的框架,工具包以及相关处理具体实现技术的对象。

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

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

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

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

不知道其它的兄弟们怎么工作的。
分享到:
评论

相关推荐

    从实例谈面向对象编程、工厂模式和重构

    仔细分析这段代码,它其实是一种最古老的面向结构的设计。如果你要播放 的不仅仅是mp3 和 wav,你会不断地增加相应地播放方法,然后让 switch 子句越来越长,直至达到你视 线看不到的地步。 好吧,我们先来体验对象...

    软件工程—实践者的研究方法

    在本书的这一部分,我们讨论那些应用于面向对象软件的分析、设计和 测试的技术概念、方法和测度。下面章节中,我们将涉及下列问题: ·什么是应用于面向对象思维的基本概念和原则? ·如何计划和管理面向对象的软件...

    C++《超市商品管理系统》课程设计报告.doc

    关键词:管理系统 基类 继承 模板 课程设计任务书 设计题目:超市商品管理系统设计 "学生姓名 "xxx " "课程名称 "面向对象程序设计 "专业班 "计科11 " " " "级 " " "地 点 "I304/I306"起止时间 "2013年1月7日~1月...

    基于事物特性表的公差模型变型设计研究

    基于事物特性表的公差模型变型设计研究,虞再道,纪杨建,本文在公差和配合理论研究的基础上,结合变型设计的特点,对公差信息做了面向变型设计的分析,并利用事物特性表面向对象技术,提

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,...

    SQLserver-数据库-安全监控系统.doc

    2、纵向结构 从纵向看,与原有系统不同之处在于,新的数据库安全监控系统在采用获取一分析 一响应的体系结构,构建面向对象开发和面向构件开发的技术基础上,新引入了面向服 务框架思想,实现了获取与分析的分离,...

    ggplot2:数据分析与图形艺术

    足以让人窒息,光是一份xyplot()函数的帮助文档,恐怕就够我们消磨一天时间了,更重要的是,lattice仍然面向特定的统计图形,像基础图形系统一样,有直方图、箱线图、条形图等等,它没有一套可以让数据分析者说话的...

    C#微软培训资料

    9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 的 声 明 .112 10.2 类 的 成 员 .113 10.3 构造函数和析构函数 .119 10.4 小 结 .122 第十一章 方 法 ....

    高效智能排课系统.doc

    系统需求分析 2.1编程的环境的选择 系统主要采用的是Java语言技术,Java是现在计算机编程语言中最常见到的,也是现 代各商家主要开发的计算机语言的一种,它具有面向对象、分布式等的特点,并且还具 有可移植性、...

    光纤设计方案.doc

    设计方案 一、光纤技术分析 光纤是宽带网络中多种传输媒介中最理想的一种,它的特点是传输容量大,传输质量好 ,损耗小,中继距离长等。光纤传输使用的是波分复用,即是把小区里的多个用户的数 据利用PON技术汇接...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    很好的电子书教程! 什么是 Android? Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta 版 的 Android SDK 提供了...� 面向对象 � 设计模式 � J2ME、Brew 、Symbian

    ERP复习资料

    计划的对象一般是最终产品,即企业的销售产品,但有时也可能是组件的MPS计划,然后再下达最终装配计划。主生产计划是一个重要的计划层次。 4.粗能力计划是对关键工作中心的能力进行运算而产生的一种能力需求计划,它...

    Struts原理、开发及项目实施

    项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准。当前最高发行版本为Struts1.0.2,可以到http://jakata.apache.org/Struts下载。 Struts这...

    新版Android开发教程.rar

    � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从计算机为主改成从手机使用为导向。新 生应用如:G oogle 地图及其衍生应用、 GMail 、 GTalk 等。 � GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均...

Global site tag (gtag.js) - Google Analytics