您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
第4章 业务建模 之 业务序列图(二)
 
火龙果软件    发布于 2014-09-15
   次浏览      
 

【步骤11】在:技术专家和专家Outlook:Outlook之间创建消息,名为查看日程,并映射操作。

图4-40 创建:技术专家和专家Outlook:Outlook之间的消息

【步骤12】选中:技术专家生命线,将右侧小箭头拖出去再放回:技术专家,创建自身消息并映射操作,名称为决定合适的时间和课程。

图4-41 创建自身消息

【步骤13】继续创建消息记录日程、通知助理。

图4-42 继续添加消息

【步骤14】选中:技术专家生命线,创建从:技术专家到:公司助理的消息,选中新创建的消息,点击向右的箭头,使该消息附加到通知助理消息上。双击新创建的消息,在Message Properties属性框中选中Is Return复选框。点击OK。

图4-43 添加返回消息

【步骤15】继续添加其他实例和消息。

图4-44 添加其他实例和消息

【步骤16】点击工具箱里的,再点击查看联系人消息的左上方,在弹出的Combined Fragment属性框中,选择Type为loop,设置Condition为所有联系人。点击OK。调整loop框的大小,把最后4条消息包住。

图4-45 添加交互片断框

【步骤17】创建其他序列图:2-准备上课设施(内容见图4-25)、3-报名(内容见图4-26)、4-准备上课材料(内容见图4-27)、5-上课(内容见图4-28)、4a-换购发票(内容留空)、4b-购买耗材(内容留空)。

【步骤18】在UMLChina的业务用例图上右击参加公开课用例,从快捷菜单选择Add|Add Diagram。在New Diagram对话框中,在左侧的Select From列表选择UML Behavioral,在右侧的Diagram Types选择Interaction Overview。点击OK。

图4-46 创建交互概述图

【步骤19】点击工具箱中的,再点击交互概述图的左上角。在弹出的ActivityInitial:ActivityInitial属性框中,将Name清空。点击确定。

图4-47 添加初始活动

【步骤20】在Project Browser中选择1-发布消息序列图,拖到交互概述图上。在弹出的Select Type对话框选择Interaction Occurrence,点击OK。在弹出的InteractionOccurrence: 1-发布消息属性框上直接点击确定。

图4-48 添加交互发生

【步骤21】选中起点,按住右侧的箭头,拖到1-发布消息交互发生上。在快捷菜单选择Control Flow。

图4-49 添加控制流

【步骤22】继续添加2-准备上课设施、3-报名、4-准备上课材料、5-上课,绘制它们之间的控制流。

图4-50 继续添加交互发生

【步骤23】点击工具箱中的,再点击交互概述图的最下方,在弹出的ActivityFinal:ActivityFinal属性框中,将Name清空。点击确定。

图4-51 添加终点

【步骤24】建立5-上课和终点之间的控制流。

图4-52 添加到终点的控制流

【步骤25】在交互概述图上添加4a-换购发票,绘制从4-准备上课材料到4a-换购发票的控制流。双击新添加的控制流,在ControlFlow Properties的Constraints页签,设置Guard为发票用完。

图4-53 添加带警戒的控制流

【步骤26】继续绘制,完成如图4-29的交互概述图。

4.6 【业务建模步骤1-4】:改进业务序列图

绘制现状的业务序列图后,我们开始来思考:如果通过进一步信息化来改进现状,应该会给现状带来什么样的改进?信息化给人类的工作和生活带来的改进,常见的有以下几种:

注意:“进一步信息化”不一定需要引进一个全新的系统,也可以通过修改现有系统的责任达到。经常有人问“我是在遗留系统的基础上改进,建模技能还适用吗?”其实,所有系统都是在遗留系统基础上改进得到,最早的遗留系统是人肉系统。

4.6.1 改进一:物流变成信息流

我1997年刚参加工作的时候,每个月最期待的就是发工资的日子。财务到各个办公室吆喝“发工资了!”,大家就拥到财务室排队签字领信封,信封里有现金和工资条,每个人都会偷偷数一数,对一对。把发工资的故事画成如下序列图,可以看到钞票扎这个“物”在不同人之间传来传去。

图4-54 发工资——1997的故事

现在,发工资就变成了下面的序列图。原来的物流变成了信息流,在需要物的时候,才将信息变成物。

图4-55 发工资——2012的故事

物的流转成本会随着距离的增加而明显增加,信息流则不会。尽可能把物流变成信息流,在需要物的时候,才将信息变成物。这样,流转成本会大大降低。物流变成信息流的改进对人类社会生活的影响已经很明显。我们不再到邮局寄信,而是写电子邮件或发短信;我们口中的文件默认的不再是纸面文件,而是电子文件;我们看的书也逐渐变成了电子书。

物流变成信息流的改进模式如下:

图4-56 物流变成信息流

您能从您现在的项目中想出符合这个改进模式的例子吗?

4.6.2 改进二:改善信息流转

信息系统越来越多以后,一个人为了达到目的可能需要和多个信息系统打交道,各个信息系统中的信息靠人来协调,例如以下场景:

图4-57 改善信息流转——改进前

业务工人“调度科”在多个业务实体之间疲于奔命(虽然只是鼠标在奔),可以引进新的信息系统改进如下:

图4-58 改善信息流转——改进后

改善信息流转的改进模式如下:

图4-59 改善信息流转

您能从您现在的项目中想出符合这个改进模式的例子吗?

4.6.3 改进三:封装领域逻辑

以上是信息系统对人类工作和生活的初步改进。更高难度的改进是信息系统封装领域里的逻辑。这些领域逻辑原来可能封装在人脑中,通过提炼后封装到信息系统中,从而使人脑得到解放。

图4-60 封装领域逻辑——改进前

图4-60所示的情况,组织要雇用许多有一定经验的销售员,成本相当高。如果能够把销售员大脑中的经验提炼出来,封装到信息系统中,组织的成本就降下来了。

图4-61 封装领域逻辑——改进后

封装领域逻辑的改进模式如下:

图4-62 封装领域逻辑

您能从您现在的项目中想出符合这个改进模式的例子吗?

由上可见,绘制业务流程时一定要注意画出人脑中的思考逻辑,这是十分重要的改进点。我看过许多人画的业务流程,大多数象白开水一样,科长审批,处长审批,局长审批,没有内心活动,好像局长只是个审批机器。

目前面向大众的互联网(及移动互联网)系统如QQ、Facebook、Twitter,完成的大多是改进一和改进二,系统内部封装的逻辑不复杂。这样的场面很常见:稍有新意的互联网系统刚面世,很快就出现几十、几百个功能几乎一模一样的模仿者,这些模仿者中有的甚至是几个大学生凑一凑就开发出来的。谁成谁败,决胜点根本不是系统本身的功能,而是谁能早点多点拿到投资来购买内容和大做宣传,风险投资人也声称“投资是投人不是投产品本身”。许多互联网系统一开始就是比着烧钱,看最终谁能活下来等到赚钱这一天,然后赢家通吃。

专注于一个领域的行业软件,凝结了该行业的丰富领域知识,达到了改进三。这样的系统就能够靠软件本身的功能挣钱。不过,开发这种系统的公司往往是“隐形冠军”,在它所处的领域大名鼎鼎,在大众媒体却无声无息,例如做地震勘探行业软件的ION公司。

一些软件开发类媒体的总编更喜欢让自己的杂志和网站谈论互联网、开源……总归就是鼓动广大程序员向做不赚钱软件的开发人员学习,开发人员做不赚钱的软件时最开心,因为没有“赚钱”这个丑陋的压力嘛!要不就是用Facebook上市的故事激励程序员——“要么不赚,要赚就赚笔特大的!”。希望媒体多介绍一些在各行各业遍地开花、乐意思考“怎样的设计能让KTV灵活调整价格策略”的软件企业,多教教程序员“怎样通过做软件每年赚一百万”,比起教大家如何拉风投、如何上市圈多少个亿更实际。

这些年我参加一些软件开发的大会时,常会看到这样的场面:来自某网站的年轻工程师在台上大谈敏捷、架构,在一个行业钻研了十几二十年的研发总监在台下听。台上介绍的“经验”就是二三十年前的作坊式开发,台下做电力、税务行业软件的开发人员却误以为值得借鉴,因为他也梦想自己的软件有一天也有这么多的人使用。

这个场景有点讽刺,好像买彩票中了两个亿的彩民向每年赚几百万的小企业家介绍致富经验。台上的人介绍“我平时就是吃喝玩乐,结果中了亿元大奖”,台下的小老板很惭愧,纷纷表示以后也吃喝玩乐,以为这样就能中奖。

可能有人要解释“某某网站要应付这么多用户,背后技术门槛也不低”,这和中两亿大奖要纳四千万所得税类似。纳税是中奖带来的“快乐的痛苦”,不是中奖的原因,不是你愿意纳税就能中奖。有几个网站因为解决不了太多并发用户倒闭了?倒是不少网站准备好了应付上亿用户的架构,偏偏大家就是不用你。一些“纳税式”开发人员误以为自己带来了网站的成功,其实是网站的成功带来了他。

其实应该反过来才对。网站要能够赚钱,终归要向改进三迈进,而这方面就要多向行业软件学习了,不说太偏的,做好一个“餐饮管理系统”的领域模型,就需要学习很多东西了。

4.6.4 阿布思考法

张三断了一只手,一开始很痛苦,只剩下一只手以后的日子怎么过啊!过了些天,痛苦就慢慢淡了。他心里会比较,比起因地震大腿截肢的,因下雨溺毙车中的,自己已经很幸运了。

大学生李四失恋了,想人生还有什么意义,从教学楼楼顶跳下去吧。过了一星期,已经忘了当初为什么喜欢她。

老外刚进中国,觉得这个看不惯那个看不惯,怎么买东西不排队,怎么过马路闯红灯。过了一个月,混得比我们还要油。

人很容易适应现实,这是好事。如果没有这种自我调节的能力,就会一直沉溺在痛苦之中。不过,这种能力确实是捕获和探索需求的一个大障碍。例如,张三刚使用某个软件时痛苦不堪,谁做的软件,简直就是狗屎!用了一个月,他不但适应了这摊狗屎,还安慰自己,现在这个不景气的时节,有份工作做就不错了,人家想要来受这份累还没机会呢!这个时候如果去找他调研改进,他已经把痛苦忘得一干二净,麻木了,习惯了。

如果面对痛苦的是一位有钱或有权的人,结果会不一样。让我们把这位有钱有权的人叫做“阿布”。阿布借用了中国人对俄罗斯大富豪罗曼·阿布拉莫维奇(Roman Abramovich)的称呼。2003年,罗曼·阿布拉莫维奇收购英格兰球会切尔西,从此阿布广为人知。他大手笔买入球员,招来穆里尼奥,改变了英超的格局,使英超重新成为世界第一联赛。

阿布如果断了一只手,他不会像普通人一样善罢甘休。阿布会想:能不能移植一只手?如果肢体移植技术成熟,阿布拍出100万美元,会有“志愿者”乐意把自己的手奉上。如果肢体移植的技术还不成熟,阿布会投资成立一家肢体移植研究中心,招揽优秀医学专家来研究肢体再生和移植技术。再不济,阿布还可以找精密仪器专家帮他定制一只电子手。

阿布心仪的美女把阿布甩了,阿布会等待或“创造”出机会让美女爱上他。韩剧可能会这样演绎:美女的父亲得了尿毒症没钱换肾,阿布匿名帮美女支付了,一个偶然的机会,美女得知了这个秘密……。

阿布思考法寻找改进的思路是:

(1)假设有充足的资源去解决问题,得到一个完美的方案;

(2)用手上现有的资源去山寨这个完美方案。

如果有一个方案,花费完美方案1%的资源,能达到完美方案40%效果。这个方案已经是目前最好的方案了,因为它是在突破思维限制以后一步步往后退得来的。

许多伟大的创新,其实就是用廉价的替代方案来山寨过去富豪和高官的生活。小时候有一个让我印象很深的辩论:慈禧太后幸福还是现代的工人幸福?认为工人幸福的那一方的辩解理由之一是“工人回到家有电视看,慈禧太后有电视看吗?”事实上,慈禧太后虽然没有我们今天的“电视”看,但她有权有势,想看什么戏,只要通过太监传召,各种戏班名角马上入宫开演,而且是3D的、超大屏幕的现场直播。可惜的是,这种生活全国只有她老人家一个人享受,普通人怎么办呢,看山寨版——小电视呗!

我们来看看阿布思考法应用在软件开发上,能给需求捕获带来什么好处。

如何做一家优秀的网上商店?互相盯着其他网店竞争对手都添加了什么新功能,彼此搞模仿秀就可以了吗?不妨思考一下,阿布们最喜欢去哪里购物?洛杉矶?迪拜?然后去调研这些富豪爱逛的商店,它们的服务有哪些特色,想办法在软件系统中山寨。

打算做一个创新的会议管理软件?不要光盯着现有的会议管理软件,不妨思考一下,服务最周到、组织最得力的会议是什么会?在中国,应该是五年一次的党的全国代表大会?之所以服务周到组织得力,未必是靠电脑系统,而是靠经验丰富的人。如果能在会议管理软件中山寨一二,会不会成为亮点?

调研未必要亲临现场(去一趟迪拜或人民大会堂有一定代价),通过各种途径查资料也是调研。注意,不要把闭门造车的所谓“头脑风暴”当作调研,创新的需求从观察和思考的汗水中来,不是拍脑袋就能得到的。不去观察和调研,有时很难想象另一个层次的人是如何生活的,就像过去老农民的“头脑风暴”——“毛主席这么大的官,屋里肯定挂满了烧鸡和油条!”。

山寨未必要模仿得多象,99%是山寨,1%也是山寨。最简单的山寨就是意淫了,过去皇上后宫佳丽三千,今天单身程序员硬盘里也有东瀛佳丽三千。

我们再看一个例子:买火车票。自从12306系统运行以来,网上订火车票的越来越多。现在订票的故事是这样的:

图 4-63 屌丝刘先生买票

上图中,旅客要判断有无合适的票,可以通过“封装领域逻辑”移到12306系统中,这确实是一个改进点,但这就够了吗?没有票了,屌丝旅客就悻悻地下线了。如果换作阿布想要体验坐火车旅游的感觉,阿布的助理接受买票任务后,必然像电影《普拉达女王》(The Devil Wears Prada)里的助理小姐,使命必达。

图4-64 阿布买票

能否把“弄高价票”移到信息系统中?也就是说,留出一些票给愿意出更高价格的人。

图4-65 阿布买票的山寨版

当然,图4-64的高价竞票在中国不现实。在中国,买火车票不是经济问题,是政治问题。

阿布思考法来自Barry Nalebuff和Ian Ayres所著书籍“Why Not?: How to Use Everyday Ingenuity to Solve Problems Big and Small”中的第一个技巧:“What Would Croesus Do?”我把它改成了国人更容易理解的阿布。

2000年初,我从《财富》的网站上知道了Thirdvoice,马上觉得“哇,这个东西真酷!”。Thirdvoice是一个浏览器插件,可以在任意网页上贴便条(评论),同样装了Thirdvoice的网友浏览到该网页时,会看到之前贴的便条,其实这些便条都集中放在服务器上,相当于一个基于URL的BBS。当时互联网创业的泡沫正盛,我花了几个月的业余时间,模仿Thirdvoice开发了一个中文山寨版“即时贴”,还特地租了服务器,把客户端放到各大下载网站让人下载,希望能吸引到风险投资,理由是能做到“人以群分”。过了一个多月,国内又出现了“傲客”等类似软件,不过仅过了半年多,随着互联网进入寒冬,大家都不了了之,鼻祖ThirdVoice也于2001年4月停止了服务。这次失败的创业尝试,我除了学到开发浏览器(仅限IE)插件的一些技巧,还初步体会“有趣”和“有用”的区别,以及“聪明人太多,做事必须竭尽全力”。

现在想起来,当年震撼我的ThirdVoice也可以看作阿布思考法一个应用。在别人家墙上贴标语或宣传画,甚至写字,历史上多的是。

4-66 UMLChina标语

4.7 案例

回到UMLChina的案例。观察业务序列图,挑出最重要的改进点。序列图4-24到4-28的这么多步骤中,值得改进的地方很多,但根据愿景,我们认为以下这个片断最值得改进:

图4-67 最值得改进的片断

挑中这个发通知的片断,原因是涉及的人数最多,而且会一直增加。处理一名学员的报名确实要花更多时间,但毕竟每次公开课报名人数有限(如果人真的多到忙不过来,那是快乐的烦恼了!)。

可以注意到,图4-67中有一个封装在人脑中的逻辑“挑选待通知联系人”,这是一个非常复杂的逻辑。总的原则是:能不通知就不通知。

如果不知道对方姓甚名谁,乱发邮件给他就不好了。我们从最开始的一些参加过活动的联系人开始,慢慢扩大联系人的范围。如果对方有一定头衔,应该用对方头衔称呼他,例如“陈总”,而不是直呼其名。

我们主要在北京、上海和广州开课。如果一个人在广州工作,给他发北京的通知是不合适的,但给石家庄和太原的人发就合适了。其他类型的活动,如网络上的国外专家语音讲座,则不受地域限制,可以全部发通知。如果某个研发总监或培训经理已经询问过本次公开课的事宜,就不必再通知该组织里的开发人员……

我们往业务序列图里空降一个新的业务实体“UMLChina系统”,将这个片断改进如下:

图4-68 第一个改进

从这个图就可以映射出UMLChina系统最值得做的第一批用例(见第5章)。

可以看到,UML建模并不是像一些不了解情况的开发人员想象的那样,“做完了所有的业务建模再做需求,做完了所有需求再做分析设计”,而是迅速定位最值得改进的改进点,得到系统最有价值的用例,先开发。和光会喊口号的“敏捷”不同的是,这里的“快”是有道理、有方法可讲的。

4.8 工具操作

【步骤1】在业务建模|业务对象包下的业务对象类图上,放置一个新的业务实体UMLChina系统。

图4-69 添加待开发系统为新的业务实体

【步骤2】打开业务建模|业务用例包下参加公开课用例下的序列图1-发布消息,把业务实体UMLChina系统从项目浏览器拖到序列图中,放置在:技术专家和专家Outlook:Outlook之间,在弹出的Paste Element对话框选择as Instance of Element (object) 单选钮。点击OK。

如果想保留改进前的业务序列图,可以右击序列图“1-发布消息”,从快捷菜单选择copy diagram,再右击用例“参加公开课”,从快捷菜单选择paste diagram,把得到的新序列图命名为“1-发布消息改进”,再在这张图上添加新业务实体。

图4-70 将新业务实体添加到需要改进的序列图中

【步骤3】把业务实体时间从项目浏览器拖到序列图1-发布消息中,放置在:UMLChina系统和专家Outlook:Outlook之间,在弹出的Paste Element对话框选择as Instance of Element (object) 单选钮。点击OK。

图4-71 把业务实体时间添加到需要改进的序列图中

【步骤4】在:公司助理和:UMLChina系统之间创建消息,名为为公开课创建通知任务,并映射操作。选择:公司助理和助理Outlook:Outlook之间的消息查看联系人,按Ctrl+Delete键,在弹出对话框点击是。选择:公司助理和助理Outlook:Outlook之间的消息发邮件,按Ctrl+Delete键,在弹出对话框点击是。选择助理Outlook:Outlook生命线,按Ctrl+Delete键,在弹出对话框点击是。

图4-72 删除本场景不需要的消息和生命线

【步骤5】在:时间和:UMLChina系统之间创建消息,名为执行通知任务,并映射操作,消息的位置放在为公开课创建通知任务之下。

图4-73 添加时间和UMLChina系统之间的消息

【步骤6】右击:公司助理,在快捷菜单中选择Find|Locate Classifier in Project Browser,定位到项目浏览器中的公司助理。点开+号,选中挑选待通知联系人和通知联系人操作,拖到UMLChina系统下面。

图4-74 将责任从公司助理转移到UMLChina系统

【步骤7】在序列图1-发布消息中,右击消息挑选待通知联系人,从快捷菜单选择Advanced|Set Source and Target...,在弹出对话框中,将From Element和To Element都改为UMLChina系统,点击OK。针对消息通知联系人做同样的操作。如果发现消息挑选待通知联系人、通知联系人没有和执行通知任务连在一起,可以分别右击这几条消息,将快捷菜单中Activations|Start New Message Group前面的勾去掉。

图4-75 转移消息的起点终点

【步骤8】把loop框缩小到只圈住挑选待通知联系人和通知联系人,双击loop框,在弹出属性框中把Condition框中的所有联系人改为所有符合通知条件的联系人,点击Save,点击OK。

图4-76 修改loop框

图4-77 改进后的业务序列图

   
次浏览       
 
相关文章

UML概览
UML图解:用例图(Use case diagram )
UML图解:活动图(activity diagram )
UML图解:类图(class diagram )
UML图解:对象图(object diagram)
UML图解:顺序图( sequence diagram )
 
相关文档

模型跟踪:跟踪图、矩阵、关系(建模工具EA)
自定义表格(Custom Table)在EA中的使用
元素的详情浏览控制
UAF 1.2规范解读(DMM 和 UAFML )
EA中支持的各种图表
EA中的界面原型建模
 
相关课程

UML与面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于SysML和EA进行系统设计与建模
基于模型的需求管理
业务建模 & 领域驱动设计
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

如何向妻子解释OOD
OOAD与UML笔记
UML类图与类的关系详解
UML统一建模语言初学
总结一下领域模型的验证
基于 UML 的业务建模


面向对象的分析设计
基于UML的面向对象分析设计
UML + 嵌入式系统分析设计
关系数据库面向OOAD设计
业务建模与业务架构
使用用例进行需求管理


某航空IT部门 业务分析与业务建模
联想 业务需求分析与建模
北京航管科技 EA工具与架构设计
使用EA和UML进行嵌入式系统分析
全球最大的茶业集团 UML系统分析
华为 基于EA的嵌入式系统建模
水资源服务商 基于EA进行UML建模
更多...