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. mac php项目除了首页全飘not found

    1.httpd.conf配置文件中加载了mod_rewrite.so模块2.AllowOverride None 将None改为 All DocumentRoot "/Library/Web ...

  2. v$pwfile_user表

    SQL> select * from v$pwfile_users;select * from v$pwfile_users; USERNAME SYSDB SYSOP SYSAS------- ...

  3. jQuery学习-属性选择器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 2 python介绍

    1.Python介绍:龟叔 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Gui ...

  5. 23-[模块]-subprocess模块

    1.调用系统命令 我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的 ...

  6. P2839 [国家集训队]middle

    P2839 [国家集训队]middle 好妙的题啊,,,, 首先二分一个答案k,把数列里>=k的数置为1,=0就是k>=中位数,<0就是k<中位数 数列的最大和很好求哇 左边的 ...

  7. cnblogs客户端配置说明

    1. 下载地址 http://openlivewriter.org/ 2.安装 安装时设置好blog地址和账户.密码: 到这里基本上就算安装完成了.如果之前的自动配置没有成功,会出现一个界面让你配置b ...

  8. [算法总结] 20 道题搞定 BAT 面试——二叉树

    本文首发于我的个人博客:尾尾部落 0. 几个概念 完全二叉树:若二叉树的高度是h,除第h层之外,其他(1~h-1)层的节点数都达到了最大个数,并且第h层的节点都连续的集中在最左边.想到点什么没?实际上 ...

  9. tomcat启动项目的时候不报错而且启动的很快

    最后发现是tomcat部署项目的时候,并没有将一部分文件复制到tomcat的目录下 方法 将没有添加的目录 Finish

  10. Docker配置

    Docker基本配置 1.安装 在ubuntu下面执行 wget -qO- https://get.docker.com/ | sh 命令安装Docker. 如果命令的方式无法安装,也可以使用apt- ...