一、面向对象的本质

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

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

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. Objective-C中的类目(Category),延展(Extension)

    类目和延展的作用都是为了扩展一个类. Objective-C中的类目(Category) 一.类目的定义和作用 类目也叫分类,英文Category,在没有原类.m文件的基础上,给该类添加方法. 比如, ...

  2. 在MDK中怎样生成*.bin格式的文件?

    在Realview MDK的集成开发环境中.默认情况下能够生成*.axf格式的调试文件和*.hex格式的可运行文件. 尽管这两个格式的文件很有利于ULINK2仿真器的下载和调试,可是ADS的用户更习惯 ...

  3. 【linux】 linux gpio操作

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  4. chapter3习题

    // 2013年11月4日21:47:21 # include <stdio.h> # include <math.h> int main() { int n; double ...

  5. CentOS服务器下对mysql的优化

    原文链接: CentOS服务器下对mysql的优化 一.mysql的优化思路 mysql的优化分为两方面: 1. 服务器使用前的优化 2. 服务使用中的优化 二.mysql的基础优化步骤 1. 硬件级 ...

  6. QuartusII中调用Modelsim的方法

    Modelsim的使用 1,  建立工程编译通过之后——证明实例工程无语法等简单错误.编写testbench 2,  将testbench 添加到工程中,进行编译通过.会在工程的file中看到test ...

  7. perl 安装 ZooKeeper模块

    1072 ./configure --libdir=/usr/lib 1073 make 1074 make install 1075 cpan ZooKeeper [root@wx03 c]# pe ...

  8. 基于visual Studio2013解决C语言竞赛题之0416完数

       题目 解决代码及点评 完数的解决方案依旧是遍历,然后写出判断完数的函数进行处理 /************************************************** ...

  9. [置顶] 自定义java Annotation快速入门与提高

    我们先来看看一个简单的注解类定义 import java.lang.annotation.Documented; import java.lang.annotation.Retention; impo ...

  10. A_全然背包

    /* copyright: Grant Yuan algorithm: 全然背包 time : 2014.7.18 __________________________________________ ...