Think in UML这一书以UML为载体,将面向对象的分析设计思想巧妙地融合在建模UML当中,通过一些实例将软件系统的开发过程中的一些知识有机地结合起来。全书共分为四篇:准备篇、基础篇、进阶篇和总结篇。

准备篇讲述面向对象分析的一些基本概念及学习建模需要了解的一些基本知识。书籍Think in UML的开头为大象希形,其中提到了和UML师出同门的一门语言RUP,经过上网查找资料得知,RUP英文全称为Rational Unified Process,中文译为统一软件开发过程,是一个面向对象且基于网路的程序开发方法论,是Rational软件公司创造的软件工程方法。借由RUP中文档、模型、软件层次、迭代、构件、架构、测试等等的官方文档的晦涩和枯燥,即使开发者明白RUP可以说是一种软件高级人才的金手指,却也无法把完全掌握这种堪称致命性的缺点来引出Think in UML这本书的便利和简单易懂,所以本书的名称为Think in UML来使从事软件方面工作的人容易理解和掌握,这本书最大的优点也是最诱人的地方就在于把RUP的精髓理解透彻,摸清了软件开发过程的开发框架、软加架构、设计模式、系统分析建模与设计的来龙去脉。

众所周知,这几年来从事软件开发工作的人员都把一个词和软件紧紧联系起来,这个词就是“面向对象”,面向对象中的对象指的是类的集合,根据网络上的资料翻阅,面向对象(Object Oriented,OO)这个概念和应用已经超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等一系列领域,随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题,一切事物皆对象,将现实世界的事物抽象成对象,现实世界的关系抽象成类、继承,帮助人们实现对于现实世界的抽象和数字建模。面向对象能够有效地提高编程的效率,通过类的封装技术,消息机制可以快速开发出一个全新的系统。既然面向对象的技术是如此之重要,那么UML就不得不提了,因为UML是软件开发过程中面向对象分析和设计的重要工具,书中有一句话是UML是面向对象思想和方法的具体化和符号化,学习UML的过程就是掌握面向对象思想和方法的过程,而UML统一建模语言我们在大二就已经学习过。

从此书中我们可以发现不论对于面向过程还是面向对象,作者并没有偏向任何一方,而是认为他们都是人们在采用不同的方法来认识和描述这个世界的时候所采用的工具而已,都只是表象而不是本质,同时举例了UML的创始人之一的Grady Booch 在2004年IBM Developer Works Live大会的访谈中讲过的一段流传甚广的一段话:

从本质上来说面向过程和面向对象是一个古已有之的认识论的问题,面向对象方法的兴起只是因为我们需要这种方法来解决一些问题。

简而言之,面向过程的方法就是认为我们所生存的世界是由一个个相互关联的小的系统组成的,并且面向过程的方法认为每个组成世界的小系统之间都有着明确的开始和结束,开始和结束之间有着严谨的因果关系。作者举了一个例子,就像一个简单的数据的系统,这个系统能够实现增删查改的功能,计算机是通过数据来记录这个过程的变化。数据变化的过程中每一步必然都会产生、修改或者读取一部分数据,当这个过程完成后,数据酒后顺着这个过程链传递到下一个过程,循环往复,数据不断变更,但是随着信息的更新和发展,大数据已经成为一个主流的问题,一份数据经常被多个过程共享,他们之间的问题越来越复杂,经常出现相互矛盾的数据需求,所以面向过程的方法已经不足以满足软件开发人员对于系统的高要求性,我们更需要的是一种On-Demand Business(随需应变的商务)。这种时候面向对象的方法就产生了。

面向对象的方法与面向过程方法不同,它把世界看做一个个相互独立的对象,并且对象之间相互没有因果关系,只有在一些外部力量的驱使下,这些对象之间才会根据某种规律相互传递信息,而这些对象之间的互动促成了这个世界的一个“过程”,显而易见,在没有这种外力的作用下,对象之间则始终保持着“静止”的状态。面向对象的方法只需要研究“一个对象”,不会像面向过程那样遭遇大数据的问题,“这个对象”的复杂度和结构是有限的,彼此是相互独立的。

《大象Think in UML》阅读笔记之一的更多相关文章

  1. 《大象Think in UML》阅读笔记(三)

    Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型 ...

  2. 《大象Think in UML》阅读笔记之二

    Think in UML阅读笔记(二) 上一次读到面向对象和面向过程的区别和各自的优势,结合实例分析了面向过程在面对大数据的时候,已经不足以满足人们的需求,所以引入了面向对象,面向对象的方法把世界看做 ...

  3. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  4. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  5. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  6. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  7. Mina源码阅读笔记(一)-整体解读

    今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者类的方法.我倒是想从mina源码的结构和功能上对这个框架进行剖析.源码的阅 ...

  8. JDK1.8源码阅读笔记(2) AtomicInteger AtomicLong AtomicBoolean原子类

    JDK1.8源码阅读笔记(2) AtomicInteger AtomicLong AtomicBoolean原子类 Unsafe Java中无法直接操作一块内存区域,不能像C++中那样可以自己申请内存 ...

  9. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  10. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

随机推荐

  1. GoldData学习实例-采集官网新闻数据

    概述 在本节中,我们将讲述抓取政府官网地方新闻.并将抓取的新闻数据融入到以下两张数据表news_site和news中. news_site(新闻来源) 字段 类型 说明 id bigint 主键,自动 ...

  2. 快速链接bioconductor,以及安装“XML”

    options(useHTTPS=FALSE, BioC_mirror="http://bioconductor.org") source("http://biocond ...

  3. Nginx-------Nginx的安装和多域名配置

    Nginx安装 centos6.x yum默认没有nginx的软件包 安装方式: 到nginx下载页面http://nginx.org/en/linux_packages.html#stable,复制 ...

  4. Matlab 装自定义模块

    Matlab for Mac 右上角有一个set path选项. 点进去再点击 add with subfolders. 把你下载好的且解压过的工具箱添加进去 然后点save. 重启,就可以直接用了.

  5. mfc 引用

    一.引用的概念 引用(reference)是另一标识符的别名,可以说是C++的一种新的变量类型,是对C的重要扩充.当建立引用时,程序用另一个变量或对象(目标)的名字初始化它(即它代表了标识符的左值), ...

  6. 09 ORM 多表操作,创建表,添加记录

    1.数据库表关系 1.一对多 为什么需要,重复字段太多 一对多关系表 Book id title price publish_id 1 python 100 1 2 php 200 2 3 go 10 ...

  7. 设置 idea 运行前不去检查其他类的错误的方法

    问题描述 MainClass为要运行的正常类,目录下存在一个类ErrorClass有错误,运行MainClass时会无法运行. 现在需要忽略ErrorClass中的错误,执行MainClass中的代码 ...

  8. Security1:登录和用户

    授予权限的思路,可以用一句话来概括,那就是:授予 Principal 操作 Securable 的 Permission,在多数文档中,把 Principal 翻译为安全主体,Securable翻译为 ...

  9. js,indexOf()、lastIndexOf()

    indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 提示和注释 注释:indexOf() 方法对大小写敏感! 注释:如果要检索的字符串值没有出现,则该方法返回 -1. 实例 在 ...

  10. 读书笔记:《HTML5开发手册》--figure、time、details、mark

    这是补充HTML5基础知识的系列内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四. ...