代码改变世界

【转】四色原型-第一印象

2011-07-14 08:09  bugfly  阅读(550)  评论(0编辑  收藏  举报

此文转自http://blog.csdn.net/asukamk2/

如果说设计模式、分析模式分别是对OOD和OOA的提炼与精化,那四色原型可以说是对需求分析的提炼与精化。复杂的东西总是可以通过简单的东西组织、表达出来。软件工程中也是如此,任何需求都可以抽象成四色原型中的四种角色之一:

moment-interval archetype(MI):是四色原型中很重要的一个原型,它具有较强的时间属性,表达了某时某刻(或较短的一个时间段内)的一件事情,比如“晚上11点观看西甲联赛”。moment-interval archetype使用粉红色标示。
role archetype(RO):表达角色,概念跟平时说的“角色”比较相似。任何一项活动都需要人或组织的参与,这个时候人或组织就从属于某种角色。角色需要通过具体活动确定,也就是说这个人或组织需要从事这项活动,才属于这个角色。比如一瓶洗发水,它放在货架上的时候角色可以是“待销售的商品”,当有人把它买回家之后,它的角色就转变成“使用中的商品”。个人感觉角色这个概念跟OO中的“状态”比较相似。角色使用黄色标示。
party, place, or thing archetype(PPT):活动必须有人、组织的参与,人、组织是一个主动的概念,它能够管理自己的行为并驱动活动。活动场景下的人、组织或事物具备唯一性,它们通过唯一标示与其他个体区分开来。比如课堂上的小郑、小刘是两个独立的个体,Nission生产线上的GTR-20081115-001和GTR-20081115-002是两个独立的个体。PPT通过绿色标示。
description archetype(DE):描述表达了个体中公用的一些特征,比如每一辆GTR都拥有车牌号、方向盘等属性。DE使用蓝色标示。

下面是一个通过四色原型表述的简单例子,Asuka作为一个PPT,当他在公司工作的时候从属的角色是Architect,它正在DesignESB,而对Asuka有一些通用的Description。



感觉四色原型可以映射到领域驱动设计(DDD)中,比如DE原型描述了公用的属性,在DDD中以值对象(ValueObject)表达,PPT原型描述的是某个场景下唯一的个体,也就是DDD中的实体(Entity),而MI表达的是从事的活动,就是DDD中的服务(Service)。RO原型在DDD中没有直接对应关系,不过我自己觉得它描述的是PPT的状态,可以和PPT一起构成DDD中完备的实体--唯一标示的个体,并且拥有状态。

下面是DNC提出的一个通用的四色原型模板,学习之~


四色原型是比分析模式还抽象的东东,现在也只是一个大概的印象,还需要在日后的OOA/D中好好体会^^。