• 四色原型总结


    四色原型总结

    Jay

    注意,这篇文章是初学四色原型时的读书笔记,其中不乏错误。时隔一年,在实践中领悟到了四色原型的真正意义,特此修订。可以与后来写的《四色原型札记系列》参照对比。2010年3月27日零时。

    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的增加会不断地膨胀每增加一种MIPPT就要修改一次。

    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)才能组成一个有业务含义的模块。

     

     

  • 相关阅读:
    图解隐马尔科夫模型【会其意】
    基于mysql对mybatis中的foreach进行深入研究
    JS-安全检测JavaScript基本数据类型和内置对象的方法
    Java-生成指定长度验证码的一种简单思路
    jQuery-表单流程导航
    JS-获取URL请求参数
    AngularJS-Uncaught Error: [$injector:modulerr]
    AngularJS-系统代码的配置和翻译
    JS-改变页面的颜色之变化核心-获取六位的随机数
    JS-为金额添加千分位逗号分割符
  • 原文地址:https://www.cnblogs.com/ego/p/1384212.html
Copyright © 2020-2023  润新知