zoukankan      html  css  js  c++  java
  • 四色原型总结(转)

    1. 四色原型

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

    表示事物在某个时刻或某一段时间内发生的。

    使用红色表示。简写为MI。

    1.2. 描述原型(Description Archetype)

    表示资料类型的资源,它可以被其它原型反复使用,并为其它原型提供行为(用作方法的参数)。

    使用蓝色表示。简写为DESC。

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

    表示参与扮演不同角色的人或事物。

    使用绿色表示。简写为PPT。

    1.4. 角色原型(Role Archetype)

    角色是一种参与方式,它由人或组织机构、地点或物品来承担。

    使用黄色表示。简写为Role。

    2. 原型提炼

    2.1. MI

    MI就是一段时间内发生的业务,包括与业务相关的数据以及行为(方法)。

    MI类似DDD中的Service,但与DDD的Service不同之处在于,MI是充血模型,Service是失血模型。

     

    比如“一次销售”就是一个MI,“一次销售”是一段时间(从开单到审批)内的业务活动。

    2.2. PPT

    PPT是指一个具体的,可以作为单个个体(每个单个个体之间有唯一标识符)被识别、区分出来的对象。

    2.3. Desc

    Desc是PPT的抽象概念,它是PPT的特性的总结,每一个PPT都属于一个(种)Desc。

     

    比如“一台电脑”就是一个PPT(每台电脑都有唯一编号),而“一个硬盘”也是一个PPT(每个硬盘也有唯一编号)。

    但是“硬盘”就是Desc(硬盘是每个硬盘的泛指,也是每个硬盘的类型)。并且硬盘是可以再分类的,IDE硬盘和SCIS硬盘等,也就是说,Desc可以是一个树形结构。

    注意,以上的理解是错误的,正确的理解请参照《四色原型札记(一)》,下图是纠正后的表示:

    2.4. Role

    Role是PPT在参与业务行为时的身份,PPT不直接与MI打交道,PPT必须拥有指定的角色(Role),才能使用MI操作业务。

     

    Role存在的作用是为了隔绝MI直接使用PPT。

    2.5. 举例

    比如,“人”就是一个Desc,而“亚洲人”、“黄种人”也是一个Desc,亚洲人和黄种人都属于“人”这个Desc的子Desc,即Desc可以是一个树结构。

     

    具体到每一个人的时候,“张三”、“李四”就是一个PPT了。因为张三和李四是独一无二的,他们都有唯一标识符可以被识别、区分(比如身份証号、指纹等,视不同的系统需求采用不同的唯一标识)。

    2.6. 总结

    如果以PPT为中心,那么以上概念可以总结为:什么东西(人或事物)通过什么方式(身份)进行什么操作(业务)。

    即当 PPT是Role时,可以调用MI。例如当张三是学生时,可以去上课。

     

    如果以Desc为中心,那么以上概念可以总结为:什么什么类型的东西进行什么操作(业务)。

    即MI调用Desc。例如人都可以睡觉。

     

    规则1:PPT不能直接与MI打交道,它必须通过Role或者Desc才能操纵MI。

    为什么要隔绝MI直接访问PPT?

    如果MI直接访问PPT会带来以下问题:

    1. PPT如果直接参与MI,那么PPT就会拥有MI环境中的属性,比如电脑在维修时必须记录维修结果,在销售时必须记录售价,那么PPT随着MI的增加会不断地膨胀,每增加一种MI,PPT就要修改一次。

    2. 两个MI之间业务是完全不同的,PPT中有些属性对某一个MI来说,根本是无用的。例如电脑的价格,对维修来说是无用的。

    3. MI直接使用PPT,还会带来MI之间的资料隔绝性问题。有些PPT的属性对某一MI是不允许访问的,如果MI直接使用PPT,那么就无法保密资料。
    例如,电脑的折扣可能是保密的,不应该让维修知道。

     

    增加Role之后,上述问题迎刃而解:

    每增加一种PPT,就相应地增加一个Role,凡是与此MI相关的属性,都放在Role中。这样既避免了PPT的频繁修改,也避免了资料访问的问题。

     

    可以这么描述Role:只有当事物(PPT)具有某个身份(Role)时,它才拥有与业务(MI)相关的属性(字段和方法)。

    4. 特征驱动开发

    4.1. 特征

    特征是一个具有客户价值的功能。

     

    特征描述的模板:

    <action> the <result> <by | for | of | to> a(n) <object>

     

    object表示一个人、地点或物品,即包括角色、时刻时段、分类目录条目的描述。

     

    例如:

    Calculate the total of a sale(计算一次销售的总额)。

    Calculate the total purchase by a customer(计算一个客户总采购额)。

     

    4.2. 特征集

    特征集是一组业务上相关的特征。

     

    特征集描述的模板:

    <action><-ing> a(n) <object>

    <object> management

     

    例如:

    making a product sale(进行一次产品销售)。

    5. 为什么需要四色原型分析

    一个模块,必须有活动(MI)、参加活动的对象(Role),以及活动资源(PPT),才能组成一个有业务含义的模块。

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

  • 相关阅读:
    第五周学习总结
    第四周学习总结
    第三周学习总结
    第二周学习总结
    读《程序是怎样跑起来的》第十二章有感
    读《程序是怎样跑起来的》第十一章有感
    读《程序是怎样跑起来的》第十章有感
    读《程序是怎样跑起来的》第九章有感
    《程序是怎样跑起来的》第九章
    《程序是怎样跑起来的》第八章
  • 原文地址:https://www.cnblogs.com/sheseido/p/4704903.html
Copyright © 2011-2022 走看看