面向对象之UML入门基础

最近在读thinking in UML(大象,谭云杰), 详细阐述了分析,设计,建模和软件统一过程的书,以后会陆续写一些心得...

 

 

第一章:

 

  • 对象是怎么被抽象出来的?现实世界和对象世界看上去差别那么大,为什么是这样抽象而不是那样抽象呢?(WHY)
  • 对象世界由于其灵活性,可以任意组合,可是我们怎么知道某个组合就正好满足了现实世界的需求呢?什么样的组合是好的,什么样的组合是差点呢?(HOW)
  • 抛开现实世界,对象世界是如此的难以理解。如果只是给我一个对象组合,我怎么才能理解它表达了怎样的含义呢?(WHAT)

因此我们需要:

  • 一种把现实世界映射到对象世界的方法。
  • 一种从对象世界描述现实世界的方法。
  • 一种验证对象世界行为是否正确反映了现实世界的方法。

什么是UML?

      UML是一种建模用的语言(语言由基本词汇和语法构成)。UML定义了一些建模所需要的,表达某种特定含义的基本元素;这些元素称为元模型,相当于语言中的基本词汇,如用例,类等。另外,UML还定义了这些元模型互相之间关系的规则,以及如何用这些元素和规则绘制图形以简历模型来映射现实世界;这些规则和图形称为表示法或视图(View),相当于语言中的语法。

      如同学习任何一种语言一样,学习UML无非是掌握基本词汇的含义,再掌握语法,通过语法将词汇组合起来形成一篇有意义的文章。UML与其他自然语言和编程语言在原理上并无多大差别,无非是UML这种语言是用来写说明文的,用自然世界和计算机逻辑都能够理解的表达方式来说明现实世界。

      然而,即使是同样的语言,同样的文字,同样的语法,有的人能够写出优美的小说和瑰丽的诗句,有的人却连一封书信都写不通顺。这种差别除了对语言掌握的功力之外,更重要的是写作人自己脑子里的思想和理念。好的文章除了语言功底,更重要的是言之有物,言之精确,言之全面,也就是作者要肚子里有货。如果以写文章来对比的话,学习UML只是学会了一门语言,而要写出一篇精美饿文章,却要依靠写作人对生活的感悟和升华,这两者缺一不可。因此比学会用UML建模本身更重要的是要理解UML语言背后所隐含的最佳实践。

 

一,从现实世界到业务模型:

     建立模型是人们解决现实世界问题的一种常用手段。我们通常接触到的建模是为了解决某个问题而建立的一个数学模型,通过数学计算来分析和预测,找出解决问题的办法。从理论上说,建立模型是指通过对客观事物建立一种抽象的方法,用来表征事物并获得对事物本身的理解,再把这种理解概念化,并将这些逻辑概念组织起来,形成对所观察的对象的内部结构和工作原理的便于理解的表达。模型要能够真实反映客观事物就需要有一个论证过程,使得建立过程是严谨的,并且结果是可追溯和验证的。对于一种软件建模方法来说,为现实世界建立逻辑模型也要是严谨的,可追溯和可验证的,除了描述清楚需求,还要能很容易地将这个模型转化为计算机也能够理解的模型。

     第一,UML采用被称之为参与者(actor)的元模型作为信息来源提供者,参与者代表了现实世界的“人”。参与者是模型信息来源的提供者,也是第一驱动者。

     第二,UML采用被称之为用例(use case)的一种元模型来表示驱动者的业务目标,也就是参与者想要做什么并且获得什么。这个目标就是现实世界中的“事”。

     第三,UML通过被称之为业务对象模型的视图来说明在达成这些业务目标的过程中涉及到的事物,业务对象模型则代表了现实世界中的“物”。

     第四,第二条中的“事”是怎么做的,依据什么规则,则通过被称之为业务场景(business scenario)和用例场景(use case scenario)的UML视图来描绘的,这些场景便是现实世界的“规则”。

     UML通过元模型和视图捕获现实世界的人,事,物和规则,于是现实信息转化成了业务模型。

二,从业务模型到概念模型:

     边界类(boundary)

     实体类(entity)

     控制类(control)

三,从概念模型到设计模型

     软件架构和框架

     编程语言

     规范或中间件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值