一、面向对象的本质

面向对象的本质是抽象,当系统达到了超越其处理能力的程度,我们能够抽象出我们能够处理的范围来提成抽象级别,这样就能够构建更大、更复杂的系统。

现实世界和对象世界之间存在着一道沟壑,这道沟壑的名字叫抽象,抽象是面向对象的精髓所在。同一时候也是面向对象的困难所在。要跨越这道沟壑,我们须要解决下面问题:

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 学习笔记(一)——建立对象模型的更多相关文章

  1. SQL反模式学习笔记4 建立主键规范【需要ID】

    目标:建立主键规范 反模式:每个数据库中的表都需要一个伪主键Id 在表中,需要引入一个对于表的域模型无意义的新列来存储一个伪值,这一列被用作这张表的主键, 从而通过它来确定表中的一条记录,即便其他的列 ...

  2. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  3. UML学习笔记:活动图

    UML学习笔记:活动图 活动图 活动图是UML中描述系统动态行为的图之一,用于展现参与行为的类的活动或动作.在UML里,活动图很类似于流程图,但是有一些区别: 活动图着重表现系统行为,描述对象活动的顺 ...

  4. python学习笔记:建立一个自己的搜索引擎

    写学习笔记是我学习python以来养成的一个习惯,每学习一个知识点,便整理成文字记录下来.搜索引擎大家经常都有在使用,国内外也很很多搜索引擎平台. Google搜索引擎建立至今已经快20年了,之后全球 ...

  5. Django 学习笔记之六 建立一个简单的博客应用程序

    最近在学习django时建立了一个简单的博客应用程序,现在把简单的步骤说一下.本人的用的版本是python 2.7.3和django 1.10.3,Windows10系统 1.首先通过命令建立项目和a ...

  6. Lucene4.9学习笔记——Lucene建立索引

    基本上创建索引需要三个步骤: 1.创建索引库IndexWriter对象 2.根据文件创建文档Document 3.向索引库中写入文档内容 这其中主要涉及到了IndexWriter(索引的核心组件,用于 ...

  7. Thinking in UML 学习笔记(四)——UML活动图来看核心

    在UML活动图的性质是一个流程图,它需要描述为完成活动的特定目标的描述来完成,这些交互运行顺序. UML有两个级别的活动图,的用例场景的叙述性描述,还有的对象用来描述交互的描述. 工具.它不是我们的分 ...

  8. 浅谈UML学习笔记之用例图

    最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用例图的一点知识,与大家分享一下. 一.概念 用例图是由参与者.用例以 ...

  9. Thinking in UML 学习笔记(四)——UML核心视图之活动图

    在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目 ...

随机推荐

  1. uvalive 3971 - Assemble(二分搜索 + 贪心)

    题目连接:3971 - Assemble 题目大意:有若干个零件, 每个零件给出的信息有种类, 名称, 价格, 质量,  现在给出一个金额, 要求在这个金额范围内, 将每个种类零件都买一个, 并且尽量 ...

  2. MFC自绘控件学习总结第二贴---转

    首先感谢大家对第一帖的支持,应一些网友烈要求下面我在关于上一贴的一些补充和说明(老鸟可以无视)这一贴是实战+理论不知道第一帖的先看第一帖:http://topic.csdn.net/u/2011071 ...

  3. ACM高精度加减乘除模板

    [转]#include <iostream> #include <string> using namespace std; inline int compare(string ...

  4. [上海] 携程 门票事业部 招聘.NET 架构师 2 名 - V2EX

    [上海] 携程 门票事业部 招聘.NET 架构师 2 名 - V2EX [上海] 携程 门票事业部 招聘.NET 架构师 2 名

  5. QT中QWidget类简介

    一.详细描述 QWidget类是所有用户界面对象的基类.通俗的来讲,Qt基本上所有的UI类都是由QWidget继承出来的,而QWidget继承于QObject,  大家可以查阅Qt source 即可 ...

  6. BZOJ 1263: [SCOI2006]整数划分( 高精度 )

    yy一下发现好像越小越好...分解成3*3*3*3……这种形式是最好的...然后就是高精度了 ----------------------------------------------------- ...

  7. 枚举最短路径+SPFA

    Harry Potter and the Final Battle Submit Status Description The final battle is coming. Now Harry Po ...

  8. 我也来说说C#中的异步:async/await

    序 最近看了一些园友们写的有关于异步的文章,受益匪浅,写这篇文章的目的是想把自己之前看到的文章做一个总结,同时也希望通过更加通俗易懂的语言让大家了解"异步"编程. 1:什么是异步 ...

  9. 界面控件 - 滚动条ScrollBar(对滚动条消息和鼠标消息结合讲的不错)

    界面是人机交互的门户,对产品至关重要.在界面开发中只有想不到没有做不到的,有好的想法,当然要尝试着做出来.对滚动条的扩展,现在有很多类是的例子. VS2015的代码编辑是非常强大的,其中有一个功能可以 ...

  10. 人人都用 Retina 屏幕的 MacBook Pro 笔记本电脑

    自从今年年初 Apple 官网产品降价我立即买了 13 寸的 Retina 屏 MacBook Pro(rMBP)之后, 这款苹果的笔记本电脑就成了我在公司和家里的唯一电脑(就是这一款). 使用苹果的 ...