《大象Tinking in UML》读书笔记 —— 第一章 为什么需要UML
2018-03-06 13:32
501 查看
1.1 面向过程还是面向对象
1.1.1 面向过程方法
在早期软件规模不大,功能较简单的时候,出现了面向过程的编程思想,一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程的前提是假设过程稳定,世界是一成不变的。而随着互联网的快速发展,软件的规模越来越大,功能也越来越复杂,构成一个系统的因素太多,需求变化也越来越快,传统的面向过程开发模式显露出无法随需应变能力的弊端。
1.1.2 面向过程的困难
面向困难的本质是因为面向过程方法是将世界看作过程化的。然而随着需求的增多,构成一个系统的因素太多,把所有因素考虑到,把所有因果关系都分析清湖,再把这个过程模拟出来实在太难了。将一个复杂的系统转化为一个个我们可以控制的小单元,将复杂工程转化成标准零部件的做法就是一种面向对象的方法。
1.1.3 面向对象方法
面向对象(Object Oriented,简称OO):是一种以事物为中心的编程思想。接受这个世界是分裂开来的事实,并相信只有在特定的场景下,孤立的对象之间进行了某些信息交互才表现出我们所看到的那样一个过程。面向对象将复杂的系统转化成一个个我们可以控制的小单元,预先设计好接口把他们封装起来,需求变更的时候,可以通过更换接口实现类适应变化。每个对象都只与有限的其他对象有关系,每个对象不再需要从整个系统的角度来分析。抽象层次可以一直延伸下去,无论在哪一个层次上,我们都只需面对有限的复杂度和有限的对象。
面向过程与面向对象的根本不同:
根本不同:不再将世界看作一个紧密关联的整体系统,而是看成一些相互独立的小零件,这些零件一句某种规则组织起来,完成一个特定的功能。
1.1.4 面向对象的困难
由于现实世界和对象世界之间的差距:对象怎么被抽取出来的?
对象世界由于其灵活性,可以任意组合,怎样组合才是最好的?
如果给我一个对象组合,我怎么才能理解它表达了怎样的含义呢?
1.2 UML带来了什么
1.2.1 什么是UML
UML 是一种建模用的语言,所有的语言都是由基本词汇和语法两个部分构成的,UML也不例外。UML中定义了一些建立模型所需要的、表达某种特定含义的 基本元素 ;这些元素称为原模型,相当于语言中的 基本词汇 ,例如用例、类等。另外,UML还定义了这些元模型互相之间关系的规则,以及如何用这些元素和规则绘制图形以建立模型来映射现实世界;这些规则和图形称为表示法或 视图 ,相当于语言中的 语法 。1.2.2 统一语言
UML 统一建模语言的意义也正在于此,它试图用统一的语言来覆盖整个软件过程,让不同的团队操着同一个口音流畅地沟通。1.2.3 可视化
相对于文字和图形,人们对图形的接受能力显然更强。UML采用 可视化 的图形方式来定义语言。把隐晦的潜台词用简单直观的图形表达暴露出来。1.2.4 从现实世界到业务模型 —— 现实世界映射到对象世界的方法
建立模型是人们解决见识世界问题的一种常用手段。现实世界无论多么复杂,无论什么行业,无论做顺么业务,其本质无非是由 人、事、物和规则 组成的。人驱动系统,事体现过程,物记录结果,规则是控制。建立模型的关键就是弄明白有什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人、事、物之间的关系定义出来,一个模型也就基本成型了。
人: 参与者 (actor),第一驱动者。参与者是整个建模过程的中心。由驱动着来检验和决定将来计算机系统要如何运作。
事: 用例 (use case) ,驱动者的业务目标,也就是参与者想要做什么并且获得什么。
物: 业务对象模型视图 则代表了现实世界中的“物”。这个视图用来说明在达成这些业务目标的过程中涉及到的事物,用逻辑概念来表示他们,并定义他们之间的关系。
规则: 业务场景 和 用例场景 的UML视图来绘制的,这些场景便是现实世界中的“”规则“”。
1.2.5 从业务模型到概念模型 —— 对象世界描述现实世界的方法
UML通过被称为概念化的过程来建立适合计算机理解和实现的模型,这个模型称为 分析模型 。分析模型结余原始需求和计算机实现之间。
分析模型最主要的原模型有:边界类、实体类、控制类。
操作通过边界类来进行,所以边界类实际上带变了原始需求中的“事”。实体类则由业务模型中的领域模型转化而来,他代表了现实世界中的“物”,控制类则体现了现实世界中的“规则”,也就是定于;再加上由参与者妆花而来的系统的“用户”。
1.2.6 从概念模型到设计模型 —— 验证对象行为是否反映了现实世界
概念模型使我们获得了软件的蓝图,获得了建设软件所需要的所有组成内容以及建设软件所需要的所有必要细节。 设计模型 就是组装的过程。在设计模型中,概念模型中的边界类可以被转化为操作界面或者系统接口;控制类可以被转化为计算机程序或控制程序,例如工作流、算法体等;实体类可以转化为数据库表、XML文档或者其他带有持久化特征的类。
1.2.7 面向对象的困难解决了吗
通过三种模型解决面向对象的三个困难。1.3 统一过程简介
1.3.1 RUP是什么
RUP (统一过程):归纳和继承了软件开发活动中的最佳实践,他定义了软件开发过程中最重要的阶段和工作(四个阶段和九个核心工作流),定义了参与软件开发过程的各种角色和他们的职责,还定义了软件生产过程中产生的工件,并提供了模板。最后,采用演进式软件生命周期(迭代)将工作、角色和成果物串在一起,形成了统一过程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/15/d8660f71f57583348901817b37194af4)
1.3.2 RUP与UML
RUP与UML的关系正类似音乐理论和五线谱的关系。UML是一种语言,用来描述软件生产中要产生的文档,统一过程则是指导如何产生这些文档以及这些文档要讲述什么的方法。两者可以分开使用。
他们只是软件方法和建模语言的一个完美结合,软件过程是比UML更重要更本质的东西。只有掌握了软件过程,才知道什么时间用什么东西。
1.3.3 RUP与软件工程
统一过程是一种追求稳定的软件方法,它追求开发稳定架构,控制变更,立足于长期战略,适用于大中型软件产品的开发。1.3.4 RUP与最佳实践
1.3.5 RUP与本书
本章讲述的解决面向对象困难的方法来自统一规程,本书第二部分的整个组织结构也是按照统一过程的核心工作流和最主要的工作组织来讲述的。总结
第一节,作者首先讲了面向过程开发,就面向过程的困难,引出了面向对象开发,然后引出面向对象开发有什么困难。第二节,就面向对象的三个困难引出了UML,并分析了UML如何解决面向对象的困难,然后引出了软件工程方法RUP。
第三节,讲解了RUP是什么,起源、与UML关系等关于RUP的问题。
相关文章推荐
- 第一章 为什么需要UML
- 【读书笔记】为什么我们需要UML?
- 【读书笔记】为什么我们需要UML?
- 《Thinking in UML》 笔记——1、为什么需要UML
- Java开发为什么需要UML的理由
- Thinking in UML-1-为什么需要UML
- 《Thinking in UML》读书笔记 1:为什么要用UML
- 《怪诞行为学2》读书笔记,第一章 金钱的诱惑:为什么巨额奖金带不来高业绩?
- java开发为什么需要UML
- 读书笔记,《Java8实战》第一章,为什么要关心 Java8
- 软件测试开发技术Java开发为什么需要UML
- 软件测试开发技术Java开发为什么需要UML
- Java开发为什么需要UML
- 《大象 Thinking in UML》学习笔记(一)——为什么需要UML?
- 第一章 什么是git,为什么需要它?
- 《北极熊为什么是白色的——人人都需要知道的进化论》读书笔记
- 《走出软件作坊》读书笔记2:为什么需要售前经理?售前经理应该具备哪些能力?
- 为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
- 为什么选择具有UML的模型?
- 为什么 weakSelf 需要配合 strong self 使用