且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

<三>面向对象分析之UML核心元素之参与者

更新时间:2021-10-05 06:07:43

一:版型
        --->在UML里有一个概念叫版型.有些书里也称类型,构造型。
        --->这个概念是对一个UML元素基础定义的扩展。在同一个元素基础定义的基础上赋予特别的含义,使得这个元素适用于特定的场合。
        --->例如(1)用例:的版型有:“业务用例”,“业务用例实现”
                      (2)类:的版型有:“接口”,“边界类”,“实体类”,“控制类”
        --->除了UML已经定义的版型外,为了在某种场合下让元素表达某种特定的含义,版型也是可以自己定义的。也就是说在项目里,可以有自己项目的版型定义。例如:包元素有“子系统”,“组织结构”,“模块”等默认的版型。
        --->版型只是UML的一种扩展手段,本身并不涉及太多的思想和方法,而是在建模的不同阶段,为了区分视图之间的不同观点,会采用不同的图示来表示。


二:参与者

        【1】以人为本是当代流行的词汇。UML建模也是以人为本的。建模是从寻找抽象角度开始的。那么定义人,准确地说是定义参与者,就是我们寻找抽象角度的开始。
       【2】基本概念
                ---->参与者在建模过程中是处于核心地位的。
                ---->UML官方文档对参与者的定义为:actor是在系统之外与系统交互的某人或某事务。
<三>面向对象分析之UML核心元素之参与者
        
                ---->图3.1中的系统被一个边界包裹着。系统之外的定义说明参与者和系统之间有一个明确的边界,参与者只可能存在于边界之外,边界之内的所有人和事物都不是参与者。边界在UML图中有时会显示地绘制出来,有时则不绘制出来。但是无论是显示的还是隐式的,一谈到参与者,读者必须想到系统边界的存在,否则参与者就是可疑的。
                ---->如何找出参与者,第一步是弄明白系统边界。
                ---->如何搞明白系统边界,弄明白两个问题(1)谁对系统有着明确的目标和要求并且主动发出动作?(2)系统为谁服务的?
                ---->参与者也叫主角,只有主动启动了某个业务的,才是参与者。

例子:小王到银行开户,想大厅经理询问了办理手续,填写表单,交给柜台职员,拿到了银行存折。这个场景中,谁是参与者?
        (1)小王是参与者
        (2)大厅经理,柜台职员。虽然参与了该开户行为,但不属于主动发起者,称之为“业务工人”,而不是参与者。

        【3】参与者可以非人
                        --->建模着也常常会面临另一个问题,有些需求并没有人参与,参与者如何确定?例如这样一个需求:每天自动统计网页访问量,生成统计报表,并发送至管理员邮箱。这个需求参与者是谁?
                                (1)物理学有一个熟知的概念,在没有外力的情况下,物体保持静止或匀速直线运动状态。这个概念也适用计算机系统。在没有“外力”的情况下,计算机保持等待或循环任务状态。因此必须有“东西”发出指令或动作,计算机才会做出相应的反应。
                        --->参与者一定是直接并且主动地向系统发出动作并获得反馈的。否则就不是参与者。
                        ---->参与者和系统边界是共存的,相对的。随着系统边界的扩大或缩小,与之对应的参与者也在变动。
                        --->(1)业务主角:一个功能性需求的主动发起者。
                        --->(2)业务工人(不属于参与者):有些人员参与了业务,但属于被动参与业务。
                        --->(3)如何区分参与者和业务工人?可以通过三个问题来澄清他们的身份1他是主动向系统发出动作的吗?2他有完整的业务目标吗?3系统是为它服务的吗?

        【4】参与者与与之相关方面的关系
                        ---->参与者与涉众的关系.
                                        (1)涉众(stakeholder),也称之为干系人。涉众是与要建设的这个系统有利益相关的一切人和事。
                        ---->参与者与用户的关系。
                                        (1)用户(user),是指系统的使用者,通俗点说是系统操作员。
                        ---->参与者与角色的关系
                                        (1)角色(role),是参与者的职责。是一类参与者的抽象。