【编程】面向对象(二)--建模

  面对对象的概念建模走了一条“ER-对象联系图-类图”的历程。它将图形表示,E-R方法,关系演算,时态逻辑溶为一体,支持对象结构,行为和对象演变的一体化和封装。

建模过程:

这里写图片描述

  不知道大家坐电梯的时候想没想过电梯是怎么实现的?反正小编是想过的,下面就是电梯实现的过程~~而且是通过面向对象的思想实现的哦~

这里写图片描述

E-R图

也叫实体联系图(Entity Relationship Diagram):

提供了表示实体类型,属性和联系的方法,用来描述现实世界的概念模型。

ER模型最早由Peter Chen 提出,基本要素是实体型(Entity)、属性(Attribute)、联系(Relationship)。

  属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。比如:学生的姓名,学号,性别都是属性。

  联系(Relationship):联系也成关系,信息世界中反映实体内部或实体之间的联系,实体内部的联系通常指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。比如:老师给学生授课存在授课的关系,学生选课存在选课关系。

a:一对一联系(1:1)
比如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。
b:一对多联系(1:N)
比如:某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。
c:多对多联系(M:N)
比如:学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性,由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“学”的属性。

这里写图片描述

本图注释:

  班级,教师,学生和课程作为实体集,一个学生可以有多个属性,而学生的属性仅代表一个学生,所以属性和学生之间是一对多的联系;一个学生可以选修多门课程,而一门课程有多个学生选修,所以学生和课程之间是多对多的联系。

原则:

  从数据需求分析中分析出系统的实体属性图,需要遵循三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图。

说明:

  菱形表示实体之间的关系,用矩形表示实体,用无向直线把菱形与有关实体连接,在直线上标明联系的类型,用椭圆表示实体的属性,并用无向直线把实体与属性联系起来。

对象联系图(Object relation graph):

  在传统的数据库技术中,ER模型里的多值属性都要设法装换成单属性或一个弱实体,关系模型中的属性值都是原子值,不允许是元组值或关系值,这就限制了关系模型的适用范围,也就是传统数据库的数据结构比较简单,不能支持复合数据类型和嵌套,递归等数据结构,当提出对象联系图的概念后,在数据结构之间允许嵌套和递归。
这里写图片描述

本图注释:

椭圆代表对象类型(也就是实体类型):University等。
小圆圈表示属性是基本数据类型(整型,实型,字符串型等):uno,uname,city等。
椭圆之间的边表示对象之间的“引用”:University到Coursetext之间的连线。
单箭头表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型,即元组类型):University的属性值分别是uno,uname,city。
双箭头表示属性值是多值(属性可以是基本属性类型,也可以是另一个对象类型,即关系类型):edit到Coursetext。
双线箭头表示对象类型之间的超类与子类练习(从子类指向超类):Faculty到Person。
双向箭头表示两个属性之间值得联系为逆联系:editor到edit。

原则:

  对象图(Object Diagram) 是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。

说明:

  使用类型构造图的思想,我们可以把实体联系图扩充成对象联系图,对象联系图完整地揭示了数据之间的联系。

UML类图:

统一建模语言(Unified Modeling Language)简称UML。
UML适用于各类系统的建模,为了实现这种大范围应用能力,UML被定义成比较粗放和具有普遍性,以满足不同系统的建模。

这里写图片描述

UML是在20世纪90年代中期,UML“三友”最先提出的。

UML的”三友”(three amigos)
–G.Booch 布奇 Booch方法
–J.Rumbaugh兰博 OMT方法
–L.Jacobson雅各布森 OOSE

就是这样聚集了三个的精华~是不是很形象呢~

这里写图片描述

UML类图描述了系统的静态结构,包括类和类间的联系。

这里写图片描述

本图注释:

类:客户,银行都是类。
关联(association):每个用例都由活动者启动(每个用例必须和一个活动者关联,有一个活动者来参与):客户和转账之间的就是一种关联。
包含(include):是一种依赖关系,使用“包括”关系可以表明一个用例用于描述另一个用例的一些细节:银行职员单独用例(取款之前要先登录)。
扩展(extend):一个用例扩展另一个用例的功能,构成新用例。
泛化(generalization):“泛化”关系用于表明专用用例是实现由另一个通用用例表示的目标的一种特定方式:本行转账和跨行转账都可以通过转账来实现。

说明:

(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。
(2)UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
(3)UML是一种建模语言,而不是一个开发过程。

总结:

下面请跟着小编来看一看对象联系图和类图的区别吧~

这里写图片描述

  类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。

  对象图(Object Diagram) 是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值