大象——Thinking in UML】的更多相关文章

目录 大象--Thinking in UML 面向对象 普通民众的面向对象 大师眼中的面向对象 大象--Thinking in UML 大音希声,大象希形, 近来闲暇,随手翻起一些曾经看过的书籍,才发现又有新的收获. 面向对象 面向对象 在如今的软件行业是一个很著名的术语,以至于 人们以为面向对象是现代科学发展到一定程度才出现的研究成果 . 普通民众的面向对象 在很多人看来,面向过程 和 面向对象 都是一种软件技术 ,例如 把面向过程归纳为结构化程序设计.DFD图.ER模型.UC矩阵等,而面向对…
大音希声,大象希行. 什么是面向过程?什么是面向对象? 面向过程归纳为结构化程序设计.DFD图.ER模型.UC矩阵等,而面向对象则被归纳为继承.封装.多态.复用等具体的技术.事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,他们都只是表征而不是本质. 面向过程方法认为我们的世界是一个个相互关联的小系统依据严密的逻辑组成的,环环相扣,井然有序.对于每一个小系统都有着明确的开始和明确的结束,开始和结束之间有着严禁的因果关系.只要我们将这个小系统中的每一个步骤和影响这…
Think in UML这一书以UML为载体,将面向对象的分析设计思想巧妙地融合在建模UML当中,通过一些实例将软件系统的开发过程中的一些知识有机地结合起来.全书共分为四篇:准备篇.基础篇.进阶篇和总结篇. 准备篇讲述面向对象分析的一些基本概念及学习建模需要了解的一些基本知识.书籍Think in UML的开头为大象希形,其中提到了和UML师出同门的一门语言RUP,经过上网查找资料得知,RUP英文全称为Rational Unified Process,中文译为统一软件开发过程,是一个面向对象且基…
建模,是指通过对客观事物建立一种抽象的方法用以表征事物并过得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察的对象的内部结构和工作原理的便于理解的表达. 建模包含两个问题,一个是怎么建?另一个是模是什么? 第一个问题“怎么建”,依赖于方法论,再上升一点到哲学高度就是认识论. 同样的事物在不同世界观的人眼里会产生不同的结果.软件针对现实世界的建模过程.也会因为”世界观”不同而不同,简而言之,就是面向对象和面向过程两种不同的软件方法将导致不同的建模结果,显然UML是面…
什么是UML? UML本身并没有包含软件方法,而仅仅是一种语言,一种建模用的语言,而所有的语言都是基本词汇和语法两部分构成的,UML也不例外.UML中定义了一些建立模型所需要的.表达某种特定含义的基本元素:这些元素称为元模型,相当于语言中的基本词汇,例如用例.类等.另外,UML还定义了这些元模型互相之间关系的规则,以及如何用这些元素和规则绘制图形以建立模型来映射实现世界:这些规则和图形称为表示法或视图,相当于语言中的语法.UML语言与其他自然语言和编程语言在原理上并无多大差别,无非是UML这种语…
Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型,它介于原始需求和计算机实现之间,是一种过渡模型.绘制分析模型最主要的元模型有:边界类(boundary).实体类(entity).控制类(control).UML采用控制类来表达原始需求中的动态信息,即业务或用例场景中的步骤和活动.除了控制类外,其他类之间都不能直接相互访问,他们需要通过控制类来代…
Think in UML阅读笔记(二) 上一次读到面向对象和面向过程的区别和各自的优势,结合实例分析了面向过程在面对大数据的时候,已经不足以满足人们的需求,所以引入了面向对象,面向对象的方法把世界看做一个个独立的对象,并且对象之间相互没有因果关系,只有在一些外部力量的驱使下,这些对象之间才会根据某种规律相互传递信息,而这些对象之间的互动促成了这个世界的一个“过程”,面向对象的方法只需要研究“一个对象”,不会像面向过程那样遭遇大数据的问题,“这个对象”的复杂度和结构是有限的,彼此是相互独立的. 在…
参考:Process-oriented vs. Object-oriented 前言 软件行业在采用OO的思想后,从一开始只对编码使用OO,到现在“分析-设计-编码”全部环节使用OO,形成了OOA.OOD.OOP.作为Programmer,只知道根据设计编码,但是设计如何指导编码,设计又是怎么开来的却不十分清楚.本文试着粗略概括现实世界如何层层抽象到对象世界. 理解现实世界 这里说的现实世界,是以“人”为出发点理解的现实世界.软件的目的是服务于“人”,自己简单写的Hello World程序基本上…
前言 面向过程 还是 面向对象?这不仅仅是个软件工程术语,其问题甚至可以追溯到亚里士多德:您把这个世界视为过程还是对象? 回归到现今的软件行业,这不仅仅是个某个具体编程技术问题,更是认识论问题. 认识论 vs. 工具 UML创始人之一的Grady Booch在2004年IBM Developer Works Live大会的访谈中讲过的一段流传甚广的话. 我对面向对象编程的目标从来就不是复用.相反,对我来说,对象提供了一种处理复杂性问题的方式.这个问题可以追溯到亚里士多德:您把这个世界视为过程还是…
以前一提到UML,就想到了复杂的流程图.很敬佩哪些想想就能画出整个系统的UML图的人,因为他们头脑中有整个软件架构的蓝图,这样在编写实现的时候,就会知道哪个地方改怎么做,哪个地方如何扩展. 而想成为架构师,UML也是必备的技能.这里就根据<大象——Thinking in UML>总结一些学习笔记. 平时总是在说什么是面向对象,什么是面向过程. 面向过程,就是典型的C语言这种,一个main函数,从头走到脚,中间可能涉及到一些方法的调用,但是整个代码完全是流水线一样.这样就会导致一个问题,虽然代码…