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. socket编程小问题:地址已经被使用——Address already in use

    很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端so ...

  2. vue实现两重列表集合,点击显示,点击隐藏的折叠效果,(默认显示集合最新一条数据,点击展开,显示集合所有数据)

    效果图: 默认显示最新一条数据: 点击显示所有数据: 代码: 说明:这里主要是 这块用来控制显示或者隐藏 根据当前点击的  这个方法里传递的index 对应  isShow 数组里的index  ,对 ...

  3. [控件] Firemonkey 跨平台 Toast

    控件说明:一个简单的讯息提示功能,使用 FMX 基本控件,因此支持 Win, macOS, iOS, Android 平台. 已知问题:如果使用了 WebBrowser, MapView... 等原生 ...

  4. 20155238 2016-2017-2 《Java程序设计》第四周学习总结

    教材学习内容总结 继承 extends public class SwordsMan extends Role 检查语法逻辑,从=右边向左边读.编译程序就是语法检查器. 重新定义行为 public v ...

  5. 《Java 程序设计》实验报告汇总

    <Java 程序设计>实验报告汇总 20145207<Java程序设计>实验一 (Java开发环境的熟悉)实验报告 20145207<Java程序设计>实验二 (J ...

  6. 3-1 实现简单的shell sed替换功能

    1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py  $1  $2 $1替换成$2 (把a替换成% ) 2.个人思路 open ...

  7. FFM算法解析及Python实现

    1. 什么是FFM? 通过引入field的概念,FFM把相同性质的特征归于同一个field,相当于把FM中已经细分的feature再次进行拆分从而进行特征组合的二分类模型. 2. 为什么需要FFM? ...

  8. 5308: [Zjoi2018]胖

    5308: [Zjoi2018]胖 链接 分析: 题目转化为一个点可以更新多少个点,一个点可以更新的点一定是一个区间,考虑二分左右端点确定这个区间. 设当前点是x,向右二分一个点y,如果x可以更新到y ...

  9. keras 修仙笔记二(ResNet算法例子)

    对于牛逼的程序员,人家都喜欢叫他大神:因为大神很牛逼,人家需要一个小时完成的技术问题,他就20分钟就搞定.Keras框架是一个高度集成的框架,学好它,就犹如掌握一个法宝,可以呼风唤雨.所以学keras ...

  10. Altium 中PCB的Gerber生产资料的输出详细步骤

    生产文件的输出,俗称Gerber out,Gerber文件是所有电路设计软件都可以产生的文件,在电子组装行业又称为模版文件(Stencil Data),在PCB制造业又称为光绘文件.可以说Gerber ...