内容前言:
        本书以UML为载 体,将面向对象的分析设计思想巧妙地融入建模过程中,通过贯 穿全书的实例将软件系统开发过程中方方面面的知识有机地结合在一起,用生动的语言和精彩的事例将复杂枯燥的软件过程讲解得津津有味。全书分为四个部分。第一部分讲述面向对象分析的一些基本概念,及学习建模需要了解的一些基本知识。第二部分对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。第三部分以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。第四部分针对在现实中经常遇到并且较难掌握的问题进行深入的探讨。

一、UML的定义

UML是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。所以,UML是一种是面向对象软件的标准化建模语言,要弄清UML,首先得搞清楚面向对象和面向过程。

二、面向对象和面向过程

1.面向过程的基本概念:面向过程是一种以过程为中心的编程思想,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,是一种思考问题的基础方法。简单理解:面向过程就是任何事情都亲力亲为,很机械,像个步兵。

2.面向对象的基本概念:面向对象是软件开发方法中的一种;是一种对现实世界理解和抽象的方法;是思考问题相对高级的方法,面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。简单理解:面向对象就像战场上的指挥官,指挥战斗而不必知道具体执行的过程。

我们用一个例子来区分面向对象和面向过程:

面向过程:
        为了把大象装进冰箱,需要3个过程。
        1. 把冰箱门打开(得到打开门的冰箱)
        2.把大象装进去(打开门后,得到里面装着大象的冰箱)
        3.把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)

每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱:
        冰箱开门(冰箱)
        冰箱装进(冰箱, 大象)
        冰箱关门(冰箱)

面向对象:
        为了把大象装进冰箱,需要做三个动作(或者叫行为)。
        每个动作有一个执行者,它就是对象。
        1) 冰箱,你给我把门打开
        2) 冰箱,你给我把大象装进去
        3) 冰箱,你给我把门关上

依次做这些动作,就能把大象装进冰箱:
        冰箱开门
        冰箱装进大象
        冰箱关门

三、面向对象的困难

一切皆对象,只要开发时把所有东西都写到对象里,所有的功能都用对象来实现就可以了。其实不然,只是简单把所有的东西写入到对象里,其实知识在面向兑现的掩盖下做着面向过程的事情。简单来说,面向对象是把世界看作是由许多对象组成的,然而现实世界和对象世界之间存在着一道沟壑,这道沟壑的名字叫抽象,抽象是面向对象的精髓所在,同时也是面向对象的困难所在。当面向对象中抽象的问题,如何进行抽象,并且是恰到好处的抽象呢?要跨越这道沟壑,我们需要:

一种把现实世界映射到对象世界的方法;
一种从对象世描述现实世界的方法;
一种验证对象世界行为是否正确反映了现实世界的方法。

而UML就是跨越这道沟壑的方法。

四、UML的特点

  1、面向对象。UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。

     2、可视化,表示能力强。通过UML的模型图能清晰地表示系统的逻辑模型和实现模型,可用于各种复杂系统的建模。

  3、独立于过程。UML是系统建模语言,独立于开发过程。

  4、独立于程序设计语言,易于掌握使用。UML图形结构清晰,建模简洁明了,容易掌握使用。

  这样我们使用UML进行系统分析和设计,可以加速开发进程,提高代码质量,并且UML适用于各种规模的系统开发,能促进软件复用,方便地集成已有的系统,并能有效处理开发中的各种风险。

《大象 ---Thinking in UML》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. opencv 阈值分割_CVPR2019实例分割Mask Scoring RCNN
  2. xshell使用xftp传输文件和使用pure-ftpd搭建ftp服务
  3. mysql数据库密码安全参数_MySQL 密码参数配置与修改 validate_password
  4. mysql的常用查询辅助函数汇总
  5. 大佬 Python 对阵新秀 Julia ,谁能问鼎机器学习和数据科学?
  6. [渝粤教育] 天水师范学院 GNSS测量原理及其应用 参考 资料
  7. 图解Linux下如何搭建C#开发环境
  8. 用pe修复服务器系统,如何用PE修复系统
  9. C语言经典面试题100道(附完整答案)
  10. 测量MATLAB安装哪些产品,matlab需要安装哪些工具箱
  11. 电脑只有.exe文件不显示后缀名
  12. 一文带你了解Zookeeper基本概念、集群搭建、使用方法
  13. 登录学习通报错:浏览器没有开启cookie功能
  14. win7删除后清空回收站文件如何恢复
  15. Cookie获取问题:ajax方法后端只获取到一个Cookie,Request无法获取到自定义的Cookie
  16. (导数)微分与积分的概念
  17. Tryton 相关软件简介及名字背后的神话
  18. 治数如治水,数据治理和数据创新难在哪?
  19. 脑机接口 | “中国脑计划”:向最后的前沿进发
  20. 学校计算机网络教室管理员职责,福建广播电视大学计算机网络教室管理人员工作职责...

热门文章

  1. docker commit 命令的应用
  2. 完美window 开发 ios应用
  3. Lower Power with CPF(二)
  4. 魅蓝metal刷android 6,魅族魅蓝Metal刷机包 Flyme 6.0.2.0Y公开稳定版 Flyme 6稳定版系统发布 全新体验...
  5. Java生成随机姓名、性别和年龄
  6. Ordered Neurons: Integrating Tree Structures into Recurrent Neural Networks
  7. matlab编程实现二进制树搜索,binary-tree-collision-code 射频识别技术里的二进制树碰撞代码,防 能力 matlab 238万源代码下载- www.pudn.com...
  8. Cortex-M3与ARM7优势比较
  9. 五一创作活动获奖名单已公布
  10. python表达式是什么_Python中的表达式是什么?