`
yzgfbj
  • 浏览: 78504 次
  • 来自: ...
社区版块
存档分类
最新评论

对象化分析系统

阅读更多
今天在J道网看到一个讨论数据库分析的帖子很受启发。写一些自己的体会。

版主牛人的回复(针对主题一个数据库表关系图):

首先我们必须明确,为什么使用Hibernate?我看很多人没有明白,包括一些专业的论坛,Hibernate是为了让我们更方便地以对象化思维来分析系统。

这句话怎么理解?这个意思里面有个纠正错误的隐含意思,纠正什么错误,为什么要强调以对象化思维来分析系统,难道我们以前不是用或者说不方便用对象化思维来分析系统吗?

是的,以前我们以数据库关系数据来分析系统,所以本例子就是一个明显实例。

那么以对象化和以数据库两种思维方式有什么区别呢?有本质的不同,这里暂时不谈很多理论知识,就以本例为说明。

首先,数据库逻辑图是平面的,而对象化(面向模型)分析设计是立体的,那么平面和立体有什么区别?因为是平面的,也就是所有的、无论大小的关系都会展现出来,最后关系复杂,阻碍我们抓住重点,妨碍进一步详细分析。

本图中evaluate_process几乎和所有表有关系,而evaluate_process又有自己的实体Data,所以,evaluate_process是个关系+实体的东西,使用数据库逻辑图表示出来,我们看出这个系统混乱,无从下手。

要使用好Hibernate,首先需要拿出类图 class diagram, 用类图四种关系(依赖 关联 继承 实现)来表示他们之间关系。在用UML类图表示后,evaluate_process会分分解,甚至不出现在类图中,而隐含在类关系中了,重而整个类图简洁,易于执行,再使用Hiberante进行对象到数据表的转换就水到渠成。

所以使用Hiberante的次序是:用对象化思路画好UML类图--->设计数据库--->配置Hibernate映射。

而本例只给出技术终端实现,没有很好地抓住源头和本质,必然会带来系统的失败,或者是体现在中间层DTO/VO的混乱上。



看了上面的一段文字,我也对自己以前使用hibernate时的一些问题有所体会。由于先于完成数据库建模。在使用时不得不照顾到数据库或碍于数据库设计,非常麻烦。写这些并不是否定数据库e-r设计,而是在以后考虑问题时多一条思路

另一个回复也非常好,针对弱化关键表功能。增加了多表查询的复杂程度。一并贴出,慢慢体会中.....

按我的理解,从业务流程角度分析
一般数据库中大体可以分为两类表,实体表和流程表,实体表是具体业务对象的持久存储,具体实体之间的关系可以是传统的一对一,一对多,多对多等关系.流程表是描述实体之间业务流程,一般是用主键ID关联实体,然后加上具体的流程描述信息.可以称之为流程实体,所以一般而言,像这样的流程信息一般都是单拿出张表来描述.
但是按照面向对象的思维,对象之间的关系不外乎继承,依赖,关联,实现四种关系,也就是说在建模时要将这些关系分散到各个对象实体中,我觉的这样做是否有弱化关系之嫌.真正在项目实施时,比如OA,对流程信息的统一性是要求很高的,一般都要求将流程信息具体化到UI界面上,为了一个流程,要联合查n张表,效率上得不偿失.所以banq您所说的将process表弱化到各个实体关系的做法我觉得还是值得商榷的.



【原贴地址:】http://www.jdon.com/jive/article.jsp?forum=62&thread=23720
分享到:
评论

相关推荐

    面向对象系统分析与设计.pdf

    面向对象系统分析与设计是软件工程领域的一个重要部分,它涉及如何使用面向对象的方法来分析和设计软件系统。面向对象方法强调的是用现实世界中的概念来模拟软件系统中的实体和它们之间的交互。以下是一些在面向对象...

    面向对象系统分析与设计题库

    面向对象系统分析与设计是软件开发过程中的关键环节,它涉及到如何将现实世界的问题转化为可执行的计算机程序。本题库主要关注的是用例模型的建立与分析,这是面向对象设计的重要组成部分,用于描绘系统与外部实体...

    面向对象系统分析与设计.ppt

    面向对象系统分析与设计是一种现代的软件开发方法,它的出现是为了应对传统结构化程序设计方法带来的挑战,如数据和操作的分离导致的不一致性、软件的复杂性和维护困难,也就是所谓的“软件危机”。面向对象方法强调...

    面向对象的系统分析与设计 课件+课后答案

    面向对象的系统分析与设计是计算机科学领域中的一个重要主题,它涵盖了软件开发过程中的一些关键概念和技术。本资源包括了相关的课件和课后答案,帮助学习者深入理解这一主题。以下将详细介绍其中涉及的主要知识点:...

    面向对象系统分析与设计

    面向对象系统分析与设计是软件开发领域中一种重要的方法论,它主要关注如何有效地理解和构建复杂的软件系统。在本文中,我们将深入探讨该主题的主要方面。 首先,我们要明确系统、信息系统以及自动化信息系统的定义...

    软件工程学生成绩管理系统的面向对象分析.docx

    通过面向对象的分析方法,我们可以清晰地识别出各个对象(如用户、课程、成绩)及其相互关系,有助于系统设计的模块化和代码的可重用性。此外,面向对象分析还强调了对象的行为,即对象如何响应外部事件和与其他对象...

    面向对象系统分析参考文献

    6. **创建模型**:使用统一建模语言(UML)或其他建模工具,绘制类图、用例图、对象图等,以可视化的方式表达分析结果。 在学习OOA时,可以参考各种参考文献,这些文献可能会涵盖从基础理论到实践案例的广泛内容。...

    期末大作业基于JavaScript的疫情数据可视化分析系统项目源码.zip

    期末大作业JavaScript疫情数据可视化分析系统项目源码,代码注释,新手也看的懂。 期末大作业疫情数据可视化分析系统项目源码,代码注释,新手也看的懂。期末大作业疫情数据可视化分析系统项目源码,代码注释,新手...

    学生成绩管理系统面向对象分析

    学生成绩管理系统面向对象分析,是一项综合性的软件工程任务,旨在设计一个高效、灵活且易于维护的成绩管理系统。此系统的设计采用面向对象方法论,利用UML(统一建模语言)来构建模型,确保系统功能清晰、逻辑严谨...

    基于面向对象的物流信息系统的分析与设计

    物流信息系统在当今信息化社会中扮演着至关重要的角色,特别是在我国物流业快速发展的背景下。物流信息系统的分析与设计已经成为解决物流企业效率提升、降低成本的关键。本文针对这一主题,深入探讨了物流信息系统的...

    面向对象分析与设计课程设计(餐厅点菜系统).pdf

    UML(统一建模语言)是实现面向对象分析与设计的一种标准语言,它提供了一套图形化表示法,用以描述软件系统的设计。 在设计餐厅点菜系统的过程中,需要遵循面向对象的分析和设计的几个关键步骤。首先是需求分析,...

    面向对象分析设计大作业(城市蔬菜配送系统分析)

    本文将详细介绍该系统的面向对象分析与设计,供相关学习者参考。 1. 需求分析 在需求分析阶段,我们首先要明确系统的目标和背景。城市蔬菜配送系统是为了满足城市居民对新鲜、安全蔬菜的需求,解决传统配送方式...

    第六章结构化分析和第七章面向对象分析.pdf

    本章节内容围绕高级软件工程的第六章结构化分析和第七章面向对象分析展开,重点阐述了软件开发中的两种主要分析方法论:结构化分析(过程论)和面向对象分析(对象论)。 在讨论哲学观点时,首先提出程序世界本质上...

    面向对象系统分析与设计(实验指导书

    面向对象系统分析与设计是软件开发过程中的关键环节,它涉及到对问题域的理解、建模以及最终实现。在这个过程中,我们通常使用一系列方法和技术来确保系统的设计满足需求并具有良好的可扩展性和可维护性。本实验指导...

    面向对象系统分析与设计课件及复习资料

    面向对象系统分析与设计课件及复习资料 为老师上课用课件和复习指导 内容包括: 1.3 uml概述 1.3.1 uml简史 1.3.2 uml概貌 1.3.3 uml的特点和用途 第2章 面向对象的软件开发过程 2.1 rational统一...

    学生成绩管理系统之面向对象分析与设计

    总的来说,学生成绩管理系统通过面向对象分析与设计,将复杂的业务逻辑转化为易于理解和管理的对象,实现了系统的模块化、可扩展性和可复用性。这不仅提高了开发效率,也为系统的后续维护和升级提供了便利。在实际...

Global site tag (gtag.js) - Google Analytics