Think in UNL其一
书中提到世界本质上为离散的,由一个一个对象组成。其实这个观点并不难理解,因为在公元前5世纪芝诺就有了类似的思考,著名的阿基里斯悖论早已经被推翻,现代物理学已经证明了时间和空间不是可以无限分割的,所以总有最为微小的一个时间里,阿基里斯和乌龟共同前进了一个空间单位,从此阿基里斯顺利超过乌龟。既然时间和空间都是不可分割的那么就是说所有的东西都是离散的,总会由其基本组成构成。面向对象也是这样,将世间万物抽象化,使之分离为基本概念,使得事物间的联系变得简单且不再模糊不清。这样有助于将复杂的事情简单化。这使得对象只需要对外界的请求作出反应即可,外部不再需要知道对象里面具体做了什么,外界只需要拿到对象传出的消息就可以继续工作。
UML名为统一建模语言,所做之事与两千年前秦始皇统一度量衡差不多,使得软件生产的各个部门都可以看懂这门语言所表达的意思。众所周知图形携带的信息远远超出了文字,试问谁可以准确的描述出蒙娜丽莎究竟是怎样的一幅画呢?所以UML大量使用了图形化的语言,使得建模过程简单清晰,使读者容易理解。
UML与RUP不是一体的。
先了解一个软件项目是怎么做的,再去UML中寻找需要的工具,用UML中适合的工具把软件过程要达到的要求
记录下来。
建模,是指通过对客观事物建立一种抽象的方法用以表征事物并获得对事物本身的理解,同时把这种理解概念化
,将这些逻辑概念组织起来,构成一种对所观察的对象的内部结构和工作原理的便于理解的表达。
对复杂的事物进行适当的抽象,有助于让人们更好的理解事物。但不可过分抽象,过分抽象会丧失过多的信息,使得人们更加难以理解事物。
如盲人摸象,千形万态,每个人从每个视角对于大象的理解是不同的。软件开发也是一样,需要不同的视图去展示软件这些不同的方面——静态的、动态的、结构的、逻辑性的等,才能说建立了一个完整的模型,恰好UML里就定义了用例图、对象图、类图、包图、活动图等不同的视图。
对象分析方法
·一切都是对象
·对象都是独立的
对象与对象之间是天然独立的,只有在某个特定的场景下,他们的某一个特定的实例才相互联系在一起。
对象是离散的,它不是因为该场景才存在的。对象实例与场景结合,然而这只是对象的一部分罢了。我们如果从一个场景就想了解对象的全部面貌,那么真的就是在摸象鼻了。
Think in UNL其一的更多相关文章
- UNL/EVE关联putty和wireshark
这里默认UNL已经安装完毕,然后启动虚拟机启动UNL. 在浏览器输入http://192.168.1.199/ 进入UNL.然后简单的搭建一个拓扑: 这里只讲R1和ASA开启,先来配置Telnet功能 ...
- 如何在ASP.Net创建各种3D图表
我们都知道,图表在ASP.NET技术中是一种特别受欢迎而又很重要的工具.图表是表示数据的图形,一般含有X和Y两个坐标轴.我们可以用折线,柱状,块状来表示数据.通过图表控件,我们即能表示数据又能比较各种 ...
- LOCK TABLES和UNLOCK TABLES与Transactions的交互
LOCK TABLES对事务不安全,并且在试图锁定表之前隐式提交任何活动事务. UNLOCK TABLES只有在LOCK TABLES已经获取到表锁时,会隐式提交任何活动事务.对于下面的一组语句,UN ...
- ASP.Net中实现上传过程中将文本文件转换成PDF的方法
iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...
- CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
- 浅析java内存模型--JMM(Java Memory Model)
在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的. 线程之间通过共享程序公共的状态,通 ...
- java web学习总结(三十一) -------------------EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- css随笔1
1.简单清除浏览器样式 *{ padding: 0px; margin: 0px; } 2.得到屏幕范围的div html,body{ width: 1 ...
- 手把手教你玩转nginx负载均衡(三)----配置虚拟服务器网络
引言 虽然上一篇我们成功的启动了虚拟机,也安装好了操作系统,但是这台虚拟机和主机以及其他虚拟机是没有办法连通的,我们的目标是配置多台服务器并且配置nginx反向代理,来实现负载均衡,所以不能访问内网是 ...
- Box Model,边距折叠,内联和块标签,CSSReset
一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...
随机推荐
- main(调用一个公共组件)
app.vue <template> <div> <Student/> <School></School> </div> < ...
- 浅谈组件二封-vue
目录 组件二封不是换一种写法 组件二封应当具备哪些条件 我认为的二封应当有哪些作用 二封的好处 先来一个列表页demo来看看效果(Vue2) 本文仅仅针对vue系列做探讨, 项目倾向于大量增删改查的后 ...
- SQLSERVER自动备份数据库
1. 通过操作系统的定时任务执行 创建两个文件,auto.bat和auto.sql,使用bat调用sql文件中的代码段 auto.bat内容 sqlcmd -S localhost,2433 -U s ...
- ES深分页
一.背景 1.ES默认分页from+size 2.在大数据量和深度分页的时候,效率非常低 二.效率低原因 1.例如要查第501页的10条数据,from为5000,size为10 2.ES会查询并排序5 ...
- 这些有用的CSS伪类通常被忽略
这些有用的CSS伪类通常被忽略 这篇文章在一定程度上鼓励你在构建UI时使用更简单的CSS和更少的JavaScript. ::first-line 选择文本的第一行 这个选择器用于选取指定选择器的首 ...
- Linux firewall 命令
常用命令 开启端口命令 firewall-cmd --zone=public--add-port=443/tcp --permanent --zone #作用域 --add-port=80/tcp ...
- 多线程学习(第一天)java语言的线程
一.并发与并行 并发:处理器不停的切换有操作的线程. 并行:多个处理器同时执行有操作线程. 二.启动线程 无论是A,B哪种方式实现多线程,都需要通过Thread.start方法启动线程. A.Thre ...
- APP数据指标体系分析
一.APP的数据指标体系主要分为五个维度,包括用户规模与质量.参与度分析.渠道分析.功能分析和用户属性分析. 1.用户规模和质量 用户规模和质量是APP分析最重要的维度,其指标也是相对其他维度最多,数 ...
- 安全漏洞之grafana-cve_2021_43798
漏洞说明 一个可绕过用户登录进行任意文件读取的漏洞 环境搭建 我使用的是vulfocus提供的vulfocus/grafana-cve_2021_43798 ,由vulfocus后台统一管理 利用脚本 ...
- 4. Popup 弹出窗口
1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...