Thinking in UML 学习笔记(一)——建立对象模型
一、面向对象的本质
面向对象的本质是抽象,当系统达到了超越其处理能力的程度,我们能够抽象出我们能够处理的范围来提成抽象级别,这样就能够构建更大、更复杂的系统。
现实世界和对象世界之间存在着一道沟壑,这道沟壑的名字叫抽象,抽象是面向对象的精髓所在。同一时候也是面向对象的困难所在。要跨越这道沟壑,我们须要解决下面问题:
1、一种把现实世界映射到对象世界的方法。
2、一种从对象世界描写叙述现实世界的方法。
3、一种验证对象世界行为是否正确反映了现实世界的方法。
UML正是解决这一问题的分析设计方法。
二、面向对象遇到的问题
1、对象的分析与设计问题。
2、对象结构的含义模糊不清。
当面向对象遇到这些问题的时候。UML统一建模语言出现了。学习UML仅仅是学会了一门语言。而要写出一篇精彩的文章,却须要依靠写作人对生活的感悟和升华,这两者缺一不可。因此比学会UML建模本身更重要的是要理解UML背后所影藏的最佳实践。
三、UML统一建模语言要解决的问题
1、UML既然是一门语言,作为语言要解决的首要问题就是沟通问题。
2、统一,则是要解决混乱的方言问题。如普通话一样被大家广泛认可。
3、可视化,easy被人理解和记忆(超越文字的表达方式)。
四、从现实到模型的抽象过程
建模实际上是一种对现实事物的理解。现实世界中假设我们站在非常高的角度去抽象,就会发现不管这个时间多么复杂,其本质无非是由人、事、物和规则组成。
1、UML採用称之为參与者(actor)的元模型作为信息来源提供者。代表现实中的“人”。
2、UML採用称之为用例(use case)的一种元模型来表示驱动者的业务目标。也就是參与者想要做什么而且获得什么。代表现实中的“事”。
3、一件事怎么做。根据什么规则。则通过称之为业务场景(business scenario)和用例场景(use case scenario)的UML视图来描绘的。代表现实中的规则。
4、业务中的对象模型则就相应现实中的“物”。
五、从业务模型到概念模型
分析模型:UML通过称之为概念化的分析过程来建立适合计算机理解和实现的模型。
分析模型介于原始需求和计算机实现之间,是一种过渡模型。
分析模型的元模型:
1、边界类(boundary):
_____事
2、控制类(control):
———规则
3、实体类(entity):
![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF3YW5nYW5iYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />————物
下图是业务模型到概念模型的转换过程示意图:
六、从概念模型到设计模型
设计模型则是对概念模型的详细实现,这样的实现方式不止一种。在设计模型中。概念模型中的边界类能够被转换为操作界面或者系统接口。控制类能够被转化为计算机程序或控制程序,比如工作流、算法等;实体类能够转化为数据表、XML文档或者其它持久化类。实际上对于不同的软件架构和框架以及不同的编程语言。所实现的概念模型有所不同。
![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF3YW5nYW5iYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
面向对象分析设计完整步骤例如以下:
七、RUP介绍
RUP(Rational Unified Process)统一过程。
统一过程归纳和整理了非常多在实践中总结出来的软件project的最佳实践。是一个採用了面向对象思想,使用UML作为软件分析语言,并结合了项目管理、质量保证等很多软件project知识综合而成的一个非常完整和庞大的软件方法。
统一过程定义了软件开发过程中最重要的四个阶段和九个核心工作流,每一个阶段对不同工作流的側重点不同。
软件项目真正的灵魂是软件过程。软件过程的须要才是这些工具和语言诞生的原因。
Thinking in UML 学习笔记(一)——建立对象模型的更多相关文章
- SQL反模式学习笔记4 建立主键规范【需要ID】
目标:建立主键规范 反模式:每个数据库中的表都需要一个伪主键Id 在表中,需要引入一个对于表的域模型无意义的新列来存储一个伪值,这一列被用作这张表的主键, 从而通过它来确定表中的一条记录,即便其他的列 ...
- UML学习笔记:类图
UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...
- UML学习笔记:活动图
UML学习笔记:活动图 活动图 活动图是UML中描述系统动态行为的图之一,用于展现参与行为的类的活动或动作.在UML里,活动图很类似于流程图,但是有一些区别: 活动图着重表现系统行为,描述对象活动的顺 ...
- python学习笔记:建立一个自己的搜索引擎
写学习笔记是我学习python以来养成的一个习惯,每学习一个知识点,便整理成文字记录下来.搜索引擎大家经常都有在使用,国内外也很很多搜索引擎平台. Google搜索引擎建立至今已经快20年了,之后全球 ...
- Django 学习笔记之六 建立一个简单的博客应用程序
最近在学习django时建立了一个简单的博客应用程序,现在把简单的步骤说一下.本人的用的版本是python 2.7.3和django 1.10.3,Windows10系统 1.首先通过命令建立项目和a ...
- Lucene4.9学习笔记——Lucene建立索引
基本上创建索引需要三个步骤: 1.创建索引库IndexWriter对象 2.根据文件创建文档Document 3.向索引库中写入文档内容 这其中主要涉及到了IndexWriter(索引的核心组件,用于 ...
- Thinking in UML 学习笔记(四)——UML活动图来看核心
在UML活动图的性质是一个流程图,它需要描述为完成活动的特定目标的描述来完成,这些交互运行顺序. UML有两个级别的活动图,的用例场景的叙述性描述,还有的对象用来描述交互的描述. 工具.它不是我们的分 ...
- 浅谈UML学习笔记之用例图
最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用例图的一点知识,与大家分享一下. 一.概念 用例图是由参与者.用例以 ...
- Thinking in UML 学习笔记(四)——UML核心视图之活动图
在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目 ...
随机推荐
- 基于visual Studio2013解决C语言竞赛题之0202坐标转换
题目
- 配置php网页显示错误
发现问题比解决问题重要,使用php集成开发环境Appserv网页会提示各种语法错误,但自己配置开发环境无法提示错误,特别当不是语法错误,比如com组件的调用,当不知道问题出现在何处,是不能忍受的,这时 ...
- FZU 1686 神龙的难题 DLX反复覆盖
DLX反复覆盖: 须要一个A*函数剪支 Problem 1686 神龙的难题 Accept: 462 Submit: 1401 Time Limit: 1000 mSec Memory L ...
- ListView上拉刷新和分页加载完整的Dome
很多人工作的过程中都会碰到ListView下拉刷新和分页加载,然后大多数公司都已经把框架写好了,大家直接用就可以了,有些人一直对这个事情处于迷茫状态,为了让大家对上拉刷新和分页加载有一个比较全面的认识 ...
- [Swust OJ 137]--波浪数(hash+波浪数构造)
题目链接:http://acm.swust.edu.cn/problem/137/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...
- 【集训笔记】【大数模板】特殊的数 【Catalan数】【HDOJ1133【HDOJ1134【HDOJ1130
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3324 http://blog.csdn.net/xymscau/artic ...
- pay包注释(二)
@login_required()def to_register(request): return render_to_response("pay/register_yeepay.ht ...
- mysql HA方案: MHA
mysql-master-ha mysql 做热备和高可用的方法有很多种, 比如: mmm: http://mysql-mmm.org/ mha: https://code.google.com/p/ ...
- CString——Left、Right、Find、ReverseFind
CString--Left.Right.Find.ReverseFind http://hi.baidu.com/shawmar/item/08b30afb0f32d46f3c1485ec CStri ...
- c++,extern “c”
C++中extern "C"的设立动机是实现C++与C及其它语言的混合编程. C++支持函数重载,而过程式语言C则不支持.函数被C++编译后在符号库中的名字与C语言的不同. 例如, ...