四色原型的学习心得分享

在讨论四色原型之前,我想先狗胆讨论下什么是我所认识的“世界”?

我觉得世界由物质及其相互作用组成。“物质”是不以人的意识为转移的客观存在;而“相互作用”则是我们平时所理解的各种活动,比如人与人之间的交谈,打架,等等。还有一点需要特别分析一下,那就是“何为客观”?我觉得客观是一个相对的概念,可以这样简单的理解:如果A没有修改B的权利,也就是说B不以A的意识为转移,则认为B是A的客观存在;反之,则认为B不是A的客观存在。

举个例子,一家软件公司为一家金融机构做一个金融领域的软件。该金融软件需要满足一些和金融领域相关的一些业务规则。那么业务规则相对于这家软件公司来说是否是一个客观存在呢?回答是肯定的。为什么,因为这家软件公司无法修改该业务规则,也就是说,金融行业的业务规则是不以软件公司的意识为转移的;那么金融行业的业务规则在任何情况下就一定是客观存在了吗?不是!因为金融行业的业务规则是由全人类想出来的,只要全人类说我们要修改这个业务规则,那它就可以被修改,也就是说金融行业的业务规则相对于全人类来说是主观的,而不是客观的。因为全人类可以修改该业务规则。 

四色原型是什么?我觉得它是帮助我们分析物质世界中各种活动的一种科学的方法论。关于什么是物质世界我上面已经讨论过了,下面看看我所理解的四色原型是什么样子的:

1. 时刻-时间段原型(Moment-Interval Archetype)

表示在某个时刻或某一段时间内发生的某个活动。使用粉红色表示,简写为MI。

 

2. 参与方-地点-物品原型(Part-Place-Thing Archetype)

表示参与某个活动的人或物,地点则是活动的发生地。使用绿色表示。简写为PPT。

 

3. 描述原型(Description Archetype)

表示对PPT的本质描述。它不是PPT的分类!Description是从PPT抽象出来的不变的共性的属性的集合。使用蓝色表示,简写为DESC。

举个例子,有一个人叫张三,如果某个外星人问你张三是什么?你会怎么说?可能会说,张三是个人,但是外星人不知道“人”是什么。然后你会怎么办?你就会说:张三是个由一个头、两只手、两只脚,以及一个身体组成的客观存在。虽然这时外星人仍然不知道人是什么,但我已经可以借用这个例子向大家说明什么是“Description”了。在这个例子中,张三就是一个PPT,而“由一个头、两只手、两只脚,以及一个身体组成的客观存在”就是对张三的Description,头、手、脚、身体则是人的本质的不变的共性的属性的集合。但我们人类比较聪明,很会抽象总结和命名,已经把这个Description用一个字来代替了,那就是“人”。所以就有所谓的张三是人的说法。

4. 角色原型(Role Archetype)

角色就是我们平时所理解的“身份”。使用黄色表示,简写为Role。为什么会有角色这个概念?因为有些活动,只允许具有特定角色(身份)的PPT(参与者)才能参与该活动。比如一个人只有具有教师的角色才能上课(一种活动);一个人只有是一个合法公民才能参与选举和被选举;但是有些活动也是不需要角色的,比如一个人不需要具备任何角色就可以睡觉(一种活动)。当然,其实说人不需要角色就能睡觉也是错误的,错在哪里?因为我们可以这样理解:一个客观存在只要具有“人”的角色就能睡觉,其实这时候,我们已经把DESC当作角色来看待了。所以,其实角色这个概念是非常广的,不能用我们平时所理解的狭义的“身份”来理解,因为“教师”、“合法公民”、“人”都可以被作为角色来看待。因此,应该这样说:任何一个活动,都需要具有一定角色的参与者才能参与。

用一句话来概括四色原型就是:一个什么什么样的人或组织或物品以某种角色在某个时刻或某段时间内参与某个活动。 其中“什么什么样的”就是DESC,“人或组织或物品”就是PPT,“角色”就是Role,而”某个时刻或某段时间内的某个活动"就是MI。 

我觉得世界由很多的物质及其相互作用组成,而我们平时所说的软件则是一个由我们人类根据主观意识设计出来的对一个客观世界的一个虚拟映射。比如我们在做一个图书管理系统时,会分析需求,需求来自于客观世界。我们会将需求分析的结果用代码来实现。所以,我觉得因为世界由物质及其相互作用(即活动)组成;那么需求就是由虚拟的物质(OO中的对象)和虚拟的物质之间的相互作用(OO中的对象之间的交互)组成。所以可以引导出:当我们要设计一个软件时,主要的任务就是要弄清楚该软件由哪些对象组成,以及由哪些活动组成,并且重点应该是要分析出有哪些活动,一切设计的最原始需求都应该以为了完成某个活动为目标。那么该如何来理解和分析这些活动呢?比如假设一个图书管理系统中有100个活动,只要实现了这100个活动,那这个系统就自然完成了。那么如何用科学的方法来分析这些活动呢?答案之一就是我们可以用上面提到的四色原型的分析方法来分析。即我们总是可以用这样的方法来分析每一个活动:一个什么什么样的人或组织或物品以某种角色在某个时刻或某段时间内参与某个活动。

当我学习了四色原型后,虽然我不能确定它一定是科学的正确的认识世界的方法论,但至少可以让我在分析软件需求时有一种可选择的方法可以参考。而这已经够了,因为之前我根本没有任何方法可以参考。 接下来我准备学习DCI架构,一旦学的差不多了之后,就会用这两个新的武器来分析和设计一个论坛。分析论坛的业务逻辑用四色原型来做,而设计则用DCI架构来做。相信这会是我近期的一个正确的并且有意义的目标。

以下是关于四色原型的一些学习资料,仅供大家参考:

http://www.jdon.com/mda/archetypes.html 

http://www.jdon.com/mda/archetypes2.html 

http://www.cnblogs.com/ego/articles/1384212.html 

http://knol.google.com/k/object-modelling-in-colour#Class_Archetypes 

http://product.china-pub.com/209160 

时间: 2024-09-19 02:21:20

四色原型的学习心得分享的相关文章

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)

面向对象分析与设计-四色原型模式(彩色建模.领域无关模型) 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好 几年前的事情了,当时是胸有成竹的去面试一个有关系统分析.设计的.NET高级软件工程师岗位.面试官几乎没问我有关.NET方面的任何技术实现,他就简 单的问了问:"你如何把握你所分析出来的系统的正确性?",我当时有点小激动,觉得这个问题应该很简单嘛,都是概念而已,让他直接点问,结果他来一句: "你懂建模吗?,能给我

.NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

羽毛读《seo实战密码》学习心得分享 为什么要做seo

看到A5对ZAC的采访文章<Admin5对话"seo每天一贴"zac:无心插柳柳成荫>,感觉受益匪浅.这是羽毛对zac前辈新书<seo实战密码-60天网站流量提高20倍>的第一篇阅读学习心得.为了方便大家阅读,正文中出现红色字体为原文重要内容,绿色字体为羽毛自己的心得,欢迎大家参与讨论.你的留言,是我写心得的强大动力.谢谢支持! 前人给了我们很多的宝贵经验和规律技巧,让我们在前行的道路上少走弯路,更快到达成功的彼岸;为此,向前辈致敬! 一.什么是SEO SEO是

css3学习心得分享

几乎所有的主流浏览器的最新版本都对css3有着很好的支持(除了ie),虽然IE对css3的支持不良,但好消息就是IE9将会全面支持html5和css3,下面与大家分享下本人对css3的认识,感兴趣的各位可以参考下 css3实现了很多以前需要用图片实现的效果(渐变边框,盒阴影,真正的圆角,字阴影,多图片背景,字体透明度等) 还统一了部分标准样式(text-overflow,word-wrap,opcity),不必在为firefox连续英文字母折行的问题写脚本了 增加了新的盒模型模式 border-

Adobe Flex3.0 学习心得分享

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 目前Adobe Flex的中文版学习资料和书籍都比较少,而且大多都很零散,信息很不全,不适合用来系统地学习.我刚开始进行FLEX3.0入门是看的书籍<FLEX3.0完全手册>.说是完全,呵呵,只是蜻蜓点水而已,如果想做稍微复杂一点的应用,就完全不行.刚开始我也是头非常的大,后来我到处在网上查找FLEX3.0相关的中文资料.如,AS

读《seo实战密码》心得分享 搜索结果显示格式的秘密

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 第一篇<羽毛读<seo实战密码>学习心得分享 为什么要做seo>在A5发表后,不少朋友给我留言说期待下文,你们的留言是我写心得的强大动力.谢谢支持! 也感谢A5平台,今天羽毛分享了解搜索引擎的3个知识点和自己对这几点的一些经验心得:1,搜索引起与目录导航站;2,搜索引起的挑战在哪?3,搜索结果显示格式的秘密. 搜索引擎

我的MYSQL学习心得(十四) 备份和恢复

原文:我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程

javascript 继承学习心得总结_基础知识

看了不少js继承的东西也该总结总结了. 先说一下大概的理解,有不对的还望指正,也好更正一下三观.另外说明下,下面的例子并非原创基本就是改了个变量名啥的,有的甚至直接拿过来用的. js继承是用来干啥的: 首先说js没有真正的跟其他面向对象的语言一样概念的继承,js里边所说的继承是指模拟继承. 具体js继承是干啥呢,刚开始做前端的时候我是用来面试的(最早写些小效果的时候基本用不到,为啥要看呢,因为面试官很爱问这个问题啊),所以就看看大概的,面试时候能说个大概,在这个问题上算是面试党了.后来跟着慢慢的

百度索引和site差别太大经过投诉放出来后的心得分享

对于很多站长而言,网站被K或者是被百度降权后的一段时间里,网站的收录始终不放出来是个很让人头疼的问题,在这个过程中有个考核期,这个考核的时间在一个月左右,在这个期间每天都要扎实的坚持网站的内容和外链建设,尤其要把好这两方面的质量关,内容和外链在于精不在于多,这个过程是比较痛苦的,因为你每天做的事情看不到任何成效 ,尤其体现在收录的增长上,没有收录很难有好的排名,但是这个考核期过了以后该怎么善意的提醒一下百度把自己的网站解救出来呢,先来说说我自己的亲身体验. 我手头有一个朋友的网站,因为采集被K之