1、统一建模语言统一建模语言UML电力营销系统案例电力营销系统案例获取需求获取需求定义边界定义边界l对于全新的项目,分析员首先要做的工作就是对于全新的项目,分析员首先要做的工作就是定义边界。定义边界。l边界可大可小,很多时候依靠建模者的经验和边界可大可小,很多时候依靠建模者的经验和意识。意识。l定义边界的目的是为我们确定一个分析的起点。定义边界的目的是为我们确定一个分析的起点。 定义边界定义边界 如何定义边界?如何定义边界?l通过前景文档中的业务目标来定义边界?通过前景文档中的业务目标来定义边界?l还是通过业务模块划分的方式来定义边界?还是通过业务模块划分的方式来定义边界?通过业务目标定义边界通过
2、业务目标定义边界l电力营销系统业务目标一:电力营销系统业务目标一:“为用电客户提供为用电客户提供业务办理自动化服务,提高办事效率,方便客业务办理自动化服务,提高办事效率,方便客户,为客户提高更好的服务户,为客户提高更好的服务”l分析:分析:l此业务目标为谁服务?此业务目标为谁服务?l用电客户用电客户得到一个用电客户服务边界得到一个用电客户服务边界 用电客户服务边界用电客户服务边界 启示启示l各业务管理部门位于边界以内,是业务工人,各业务管理部门位于边界以内,是业务工人,他们的期望可以暂且不考虑。他们的期望可以暂且不考虑。l疑问:疑问:l前述的各种前述的各种XXX管理功能到哪里去了?管理功能到哪
3、里去了?l释疑:释疑:l每个业务目标都会有一个边界每个业务目标都会有一个边界l每个边界有不同的参与者每个边界有不同的参与者l在不同的边界内将推导出不同的业务用例。在不同的边界内将推导出不同的业务用例。内部管理目标边界内部管理目标边界 进一步讨论之一进一步讨论之一l上述划分边界的结果与以前所谓划分子系统有上述划分边界的结果与以前所谓划分子系统有什么差别?什么差别?l仅从名称上看,二者非常相似。仅从名称上看,二者非常相似。l仔细考虑可以发现诸多不同:仔细考虑可以发现诸多不同:l划分依据:划分依据:子系统划分没有明确的依据,没有明确的判断标准子系统划分没有明确的依据,没有明确的判断标准来决定何种划分
4、方式是合理的。来决定何种划分方式是合理的。业务目标划分方式有着明确的依据。针对每个业务业务目标划分方式有着明确的依据。针对每个业务目标,可以明确决定系统内外,明确决定哪些涉众目标,可以明确决定系统内外,明确决定哪些涉众与此业务目标利益相关,进而得到若干业务用例。与此业务目标利益相关,进而得到若干业务用例。进一步讨论之二进一步讨论之二l大部分边界大部分边界划分的方式划分的方式是从谁使用是从谁使用系统这个角系统这个角度来划分的。度来划分的。这和从业务这和从业务目标角度划目标角度划分有何区别?分有何区别? l按这种方式划分存在若干问题:按这种方式划分存在若干问题:1.无法获得明确的业务用例。无法获得
5、明确的业务用例。l无法知道这些涉众对边界的真实目的是什么,无法知道这些涉众对边界的真实目的是什么,只能盲目的将涉众所有的期望堆积在边界里。只能盲目的将涉众所有的期望堆积在边界里。l面对诸多的用例,如何进行组织?如何分包?面对诸多的用例,如何进行组织?如何分包? l按这种方式划分存在若干问题:按这种方式划分存在若干问题:2.导致业务用例过多,关联关系混乱。导致业务用例过多,关联关系混乱。l无法区分业务主角和业务工人。无法区分业务主角和业务工人。l会出现非常多的用例在边界里,如果都与边界会出现非常多的用例在边界里,如果都与边界外的涉众关联上,业务用例视图将混乱一片。外的涉众关联上,业务用例视图将混
6、乱一片。进一步讨论之三进一步讨论之三l是否任何时候以业务目标为依据来划分边界都是否任何时候以业务目标为依据来划分边界都是有效的呢?是有效的呢?l当待开发的是计算密集型或者控制密集型系统当待开发的是计算密集型或者控制密集型系统时,似乎难以找到明确的业务目标,即使找到,时,似乎难以找到明确的业务目标,即使找到,数量也很少,此时使用业务目标为依据划分边数量也很少,此时使用业务目标为依据划分边界似乎很别扭。界似乎很别扭。l例如:玩家例如:玩家玩游戏玩游戏 l其实,对于非交互密集型系统,即使没有明确其实,对于非交互密集型系统,即使没有明确的业务目标,也有明确的功能目标,即系统特的业务目标,也有明确的功能
7、目标,即系统特性,可以以这些系统特性为边界,得到不同的性,可以以这些系统特性为边界,得到不同的主角与用例:主角与用例:l例如:控制系统、游戏引擎、声效等例如:控制系统、游戏引擎、声效等l控制系统为边界,控制系统为边界,l键盘、鼠标、手柄键盘、鼠标、手柄发出前进动作、发出射击发出前进动作、发出射击动作动作发现主角发现主角l得到涉众分析报告,已经定义了边界,我们可得到涉众分析报告,已经定义了边界,我们可以据此寻找业务以据此寻找业务主角主角。l主角:代表了涉众利益,站在边界外,直接与主角:代表了涉众利益,站在边界外,直接与边界代表的系统交互,对系统有明确的要求,边界代表的系统交互,对系统有明确的要求
8、,并从系统中获得明确的结果。并从系统中获得明确的结果。发现主角发现主角l是否所有的涉众都会成为业务主角?是否所有的涉众都会成为业务主角?l只有那些直接与系统交互的涉众才能成为业务只有那些直接与系统交互的涉众才能成为业务主角。主角。发现主角发现主角用电客户服务边界用电客户服务边界l在此边界外有两个涉众:用电客户、银行。在此边界外有两个涉众:用电客户、银行。1.用电客户涉众主角分析用电客户涉众主角分析l情形一:用电客户不直接使用系统,而是通过情形一:用电客户不直接使用系统,而是通过到营业大厅填写纸面申请,由营业大厅业务员到营业大厅填写纸面申请,由营业大厅业务员代为填写电子申请单并提交。代为填写电子
9、申请单并提交。l用电客户不直接与边界所代表的系统交互,营用电客户不直接与边界所代表的系统交互,营业大厅业务员成为代表涉众利益的业务主角。业大厅业务员成为代表涉众利益的业务主角。发现主角发现主角用电客户服务边界用电客户服务边界l情形二:业务范围包括网上办理业务,用电客情形二:业务范围包括网上办理业务,用电客户可以直接使用系统进行办理业务。户可以直接使用系统进行办理业务。l用电客户本身就是业务主角。用电客户本身就是业务主角。l情形三:一些大用电客户,供电企业设置了专情形三:一些大用电客户,供电企业设置了专职检查和服务联络人员为其专门服务,这些专职检查和服务联络人员为其专门服务,这些专职人员可以直接
10、为大客户办理业务。职人员可以直接为大客户办理业务。l专职检查人员成为代表涉众利益的主角。专职检查人员成为代表涉众利益的主角。发现主角发现主角用电客户服务边界用电客户服务边界2.银行涉众主角分析银行涉众主角分析l前述分析中,已经取消了实时联网收费的期望,前述分析中,已经取消了实时联网收费的期望,仅保留离线收费,每日结算收费方式。即银行仅保留离线收费,每日结算收费方式。即银行的收费行为与系统之间不会有直接的交互。每的收费行为与系统之间不会有直接的交互。每日会有某位营业出纳从银行处获得每日收费记日会有某位营业出纳从银行处获得每日收费记录,并将其导入系统。录,并将其导入系统。l此时,营业出纳将代表银行
11、成为系统的一个业此时,营业出纳将代表银行成为系统的一个业务主角。务主角。 发现主角内部管理业务边界发现主角内部管理业务边界l依据前面的涉众分析报告,内部管理业务边界依据前面的涉众分析报告,内部管理业务边界之外的涉众有:之外的涉众有:l营业财务管理部门、电表抄表部门、电费管理营业财务管理部门、电表抄表部门、电费管理部门、资产管理部门、现场施工部门、业务服部门、资产管理部门、现场施工部门、业务服务部门、用电检查部门。务部门、用电检查部门。发现主角内部管理业务边界发现主角内部管理业务边界l营业财务管理部门营业财务管理部门涉众主角分析涉众主角分析l该部门设置了该部门设置了营业会计营业会计、营业出纳营业
12、出纳、营业收费营业收费员。这三个角色会按照财会准则各自负责自己员。这三个角色会按照财会准则各自负责自己的部份,保障财产安全。的部份,保障财产安全。l财务管理部门设有财务管理部门设有财务主任财务主任,负责财务工作的,负责财务工作的安排、人员工作情况的评估、业务规则的制定。安排、人员工作情况的评估、业务规则的制定。l代表业务目标是规范化和管理职能,行使了内代表业务目标是规范化和管理职能,行使了内部管理职能的业务主角是:部管理职能的业务主角是:财务主任财务主任。发现主角内部管理业务边界发现主角内部管理业务边界l电表抄表部门电表抄表部门涉众主角分析涉众主角分析l该部门大部分工作人员该部门大部分工作人员
13、抄表工抄表工,携带抄表机,携带抄表机或抄表单外出工作,他们不直接使用系统,而或抄表单外出工作,他们不直接使用系统,而是将抄回的结果交给内勤人员,有内勤代他们是将抄回的结果交给内勤人员,有内勤代他们将抄表结果导入或者录入计算机。将抄表结果导入或者录入计算机。l抄表工作由抄表工作由抄表班长抄表班长按片区、按变压器线路等按片区、按变压器线路等将工作分配给抄表工。将工作分配给抄表工。l其中其中抄表班长抄表班长行使了内部管理职能,是内部管行使了内部管理职能,是内部管理业务边界的业务主角。理业务边界的业务主角。发现主角内部管理业务边界发现主角内部管理业务边界l电费管理部门电费管理部门涉众主角分析涉众主角分
14、析l该部门负责计算电费,由该部门负责计算电费,由发行员发行员来完成。来完成。l对于一些特殊客户和特殊情况的电费计算规则对于一些特殊客户和特殊情况的电费计算规则的改变,必须通过的改变,必须通过电费班长电费班长确认签字。确认签字。l行使了内部管理职能,成为内容管理业务边界行使了内部管理职能,成为内容管理业务边界业务主角的是:业务主角的是:电费班长。电费班长。发现主角内部管理业务边界发现主角内部管理业务边界l资产管理部门资产管理部门涉众主角分析涉众主角分析l该部门负责管理供电设备,该部门负责管理供电设备,资产管理员资产管理员负责管负责管理设备的整个生命周期。理设备的整个生命周期。l资产出库入库前需要
15、资产出库入库前需要校修人员校修人员负责校修。负责校修。l资产运行中,需要由资产运行中,需要由资产班长资产班长制定轮换计划,制定轮换计划,资产运行一段时间后按计划轮换资产。资产运行一段时间后按计划轮换资产。l此处业务主角:此处业务主角:资产班长资产班长。发现主角内部管理业务边界发现主角内部管理业务边界l业务服务部门业务服务部门涉众主角分析涉众主角分析l该部门由业务员、业务收费员、业务班长组成。该部门由业务员、业务收费员、业务班长组成。l业务员业务员受理客户用电申请;受理客户用电申请;业务收费员业务收费员负责收负责收取业务费用;取业务费用;业务班长业务班长负责安排工作,评估业负责安排工作,评估业务
16、员服务水平,审批业务。务员服务水平,审批业务。l此处业务主角:此处业务主角:业务班长业务班长发现主角内部管理业务边界发现主角内部管理业务边界l用电检查部门用电检查部门涉众主角分析涉众主角分析l该部门定期按计划对用电安全进行检查。该部门定期按计划对用电安全进行检查。l其中用电普查、专项检查由其中用电普查、专项检查由检查班长检查班长制定计划,制定计划,分派分派检查员检查员进行现场检查,检查结果由进行现场检查,检查结果由检查内检查内勤勤录入计算机。录入计算机。l专职检查员专职检查员维护自己所负责的用电单位的资料,维护自己所负责的用电单位的资料,自行安排检查计划,但必须通过检查班长审批。自行安排检查计
17、划,但必须通过检查班长审批。l此处业务主角:此处业务主角:检查班长检查班长发现主角内部管理业务边界发现主角内部管理业务边界l整个电力营销工作,即以上职能部门工作由整个电力营销工作,即以上职能部门工作由用用电主任电主任统一管理,制定营销规则、进行人事任统一管理,制定营销规则、进行人事任免、确定岗位职责。免、确定岗位职责。l此处业务主角:此处业务主角:用电主任用电主任发现主角内部管理业务边界发现主角内部管理业务边界l各职能部门班长负责各自部门人员的职责、权各职能部门班长负责各自部门人员的职责、权限等,但是希望由信息中心的限等,但是希望由信息中心的系统管理员系统管理员代为代为行使其人员和权限管理职责
18、。行使其人员和权限管理职责。l此处此处系统管理员系统管理员将代表各职能部门负责人和用将代表各职能部门负责人和用电主任行使人事管理职责,成为业务主角。电主任行使人事管理职责,成为业务主角。 用电检查和管理边界业务主角用电检查和管理边界业务主角 营业财务管理边界营业财务管理边界 进一步讨论之一进一步讨论之一l如何理解业务主角与涉众之间的关系?如何理解业务主角与涉众之间的关系?l业务主角与涉众的区别:业务主角与涉众的区别:l业务主角与系统直接交互,涉众未必直接与系统业务主角与系统直接交互,涉众未必直接与系统进行交互。进行交互。l如果涉众不直接与系统交互,就必须找到代替如果涉众不直接与系统交互,就必须
19、找到代替他行使利益的另一个角色,可以与涉众毫无关他行使利益的另一个角色,可以与涉众毫无关系,二者之间是一种系,二者之间是一种代理关系代理关系。进一步讨论之一进一步讨论之一l代理关系代理关系l不同于继承。不同于继承。l继承表示子类拥有父类所有的非私有职责,代理继承表示子类拥有父类所有的非私有职责,代理是拥有被代理者指定的部份职责。是拥有被代理者指定的部份职责。l不同于实现不同于实现l实现表示实现类是超类的一种实例化,超类可以实现表示实现类是超类的一种实例化,超类可以拥有多种实现,但每种实现都可以上溯到超类。拥有多种实现,但每种实现都可以上溯到超类。但代理者虽然可以有多个代理,但多个代理可以但代理
20、者虽然可以有多个代理,但多个代理可以位于完全不同的继承树上,不一定能上溯为被代位于完全不同的继承树上,不一定能上溯为被代理者的类型。理者的类型。进一步讨论之一进一步讨论之一l寻找业务主角过程中,涉众分析报告是重要信寻找业务主角过程中,涉众分析报告是重要信息来源,一般业务主角可以从涉众分析中获得。息来源,一般业务主角可以从涉众分析中获得。l业务主角一旦决定被代理哪个涉众,就会收到业务主角一旦决定被代理哪个涉众,就会收到涉众期望的制约。涉众期望的制约。l业务主角不能逾越或改变涉众期望,但是能决业务主角不能逾越或改变涉众期望,但是能决定实现涉众期望的过程。定实现涉众期望的过程。进一步讨论之二进一步讨
21、论之二l业务主角所代表的涉众期望是否可以一一映射?业务主角所代表的涉众期望是否可以一一映射?l业务主角是否一定要代表涉众利益?业务主角是否一定要代表涉众利益?l有时要找到业务主角所代表的涉众期望是困难有时要找到业务主角所代表的涉众期望是困难的,它不明显。例如系统管理员清楚日志、优的,它不明显。例如系统管理员清楚日志、优化数据等。化数据等。l对系统分析员来说也不是一定要为所有的业务对系统分析员来说也不是一定要为所有的业务主角都找到其所代表的涉众利益。主角都找到其所代表的涉众利益。进一步讨论之二进一步讨论之二l为业务主角找到所代表的涉众利益的理由:为业务主角找到所代表的涉众利益的理由:l业务主角不
22、代理任何涉众理由,业务主角的主业务主角不代理任何涉众理由,业务主角的主张就缺乏支持。张就缺乏支持。l业务主角不代表任何涉众利益,其存在性值得业务主角不代表任何涉众利益,其存在性值得怀疑。怀疑。进一步讨论之三进一步讨论之三l业务工人可能是流程的实际执行者,但他们却业务工人可能是流程的实际执行者,但他们却无权对系统提出要求,如何理解?无权对系统提出要求,如何理解?l业务主角是边界外的,只有边界外的事物才有业务主角是边界外的,只有边界外的事物才有权向边界代表的系统提出要求。权向边界代表的系统提出要求。l由内部员工制定的不遵循客户期望的规则,通由内部员工制定的不遵循客户期望的规则,通常是霸王条款。常是
23、霸王条款。l但是也不能否认内部工作人员的意见,他们最但是也不能否认内部工作人员的意见,他们最终决定工作的流程。终决定工作的流程。进一步讨论之四进一步讨论之四l当有业务主角找不到对应边界,或者业务主角当有业务主角找不到对应边界,或者业务主角的一些要求无处放置时,该怎么办?的一些要求无处放置时,该怎么办?l边界代表了某业务目标,除非业务主角确实参边界代表了某业务目标,除非业务主角确实参与并贡献于该业务目标,否则不应当成为该边与并贡献于该业务目标,否则不应当成为该边界的业务主角界的业务主角l与业务目标无关的要求也不应当在该边界中体与业务目标无关的要求也不应当在该边界中体现出来。现出来。l应重新检查涉
24、众分析、问题领域定义。应重新检查涉众分析、问题领域定义。进一步讨论之五进一步讨论之五l业务主角与系统参与者是一致的吗?业务主角与系统参与者是一致的吗?l业务主角区别于系统参与者。业务主角区别于系统参与者。l系统参与者是系统的实际操作者,通常在系统中系统参与者是系统的实际操作者,通常在系统中都有都有ID,系统会为其建立会话,其有存在范围和,系统会为其建立会话,其有存在范围和生命周期,在系统中是需要编程实现的。生命周期,在系统中是需要编程实现的。l业务主角是用于分析业务的,可能不会转化为一业务主角是用于分析业务的,可能不会转化为一个参与者。业务主角不应当被过分的抽象化和虚个参与者。业务主角不应当被
25、过分的抽象化和虚拟化,应该能够映射到现实中的敢为设置、工作拟化,应该能够映射到现实中的敢为设置、工作职责说明等。职责说明等。获取业务用例获取业务用例l经过上述分析,系统的边界已经确定,主角也经过上述分析,系统的边界已经确定,主角也确定了,在此基础上可以进行业务用例的获取。确定了,在此基础上可以进行业务用例的获取。获取业务用例获取业务用例l有很多方法:有很多方法:l可以从岗位手册、业务流程指南、职务说明等可以从岗位手册、业务流程指南、职务说明等一系列文件中获得;一系列文件中获得;l可以从涉众分析中获得;可以从涉众分析中获得;l也可以从业务主角访谈中获得。也可以从业务主角访谈中获得。获取业务用例获
26、取业务用例l可以通过下列问题引导业务主角代表说出业务可以通过下列问题引导业务主角代表说出业务需求:需求:l您对系统有什么期望?您对系统有什么期望?l您打算在这个系统里做些什么事情?您打算在这个系统里做些什么事情?l您做这件事情的目的是什么?您做这件事情的目的是什么?l您做完这件事希望有什么样的结果?您做完这件事希望有什么样的结果?例一:业务员将代表用电客户提例一:业务员将代表用电客户提出业务需求出业务需求1.听第一段对话,并思考:听第一段对话,并思考:l这里业务员说的是系统的功能需求吗?这里业务员说的是系统的功能需求吗?l业务员代表客户提出什么期望了吗?业务员代表客户提出什么期望了吗?例一:业
27、务员将代表用电客户提例一:业务员将代表用电客户提出业务需求出业务需求l点评:点评:l客户谈系统期望时,通常不是业务需求,更多客户谈系统期望时,通常不是业务需求,更多的会谈及他们希望系统能帮助他们做什么,从的会谈及他们希望系统能帮助他们做什么,从中找出明确的需求并不容易。中找出明确的需求并不容易。l业务员代表客户提出问题,但其是系统直接使业务员代表客户提出问题,但其是系统直接使用者,不可避免会谈到对他们有理的一些期望,用者,不可避免会谈到对他们有理的一些期望,应判别这些期望是否与用户利益有冲突。应判别这些期望是否与用户利益有冲突。例一:业务员将代表用电客户提例一:业务员将代表用电客户提出业务需求
28、出业务需求2.听第二段对话,并思考分析员打断业务员说听第二段对话,并思考分析员打断业务员说话的原因是什么?话的原因是什么?l点评:点评:l初步了解业务时,要防止陷入过深的细节,初步了解业务时,要防止陷入过深的细节,l应当引导客户先从独立的业务模块开始讲起。应当引导客户先从独立的业务模块开始讲起。例一:业务员将代表用电客户提例一:业务员将代表用电客户提出业务需求出业务需求3.请听第三段对话,并思考为什么分析员要业请听第三段对话,并思考为什么分析员要业务员谈谈业务的目的,而不用将业务是如何务员谈谈业务的目的,而不用将业务是如何一步步办理的?一步步办理的?l点评:点评:l让业务员谈某一项业务的目的,
29、可以帮助分析让业务员谈某一项业务的目的,可以帮助分析员判断用例是否合理,是否这些业务能作为一员判断用例是否合理,是否这些业务能作为一个业务用例。个业务用例。l例如:此处低压、高压、批量等业务只能看作例如:此处低压、高压、批量等业务只能看作同一个业务用例。同一个业务用例。l是用例规约文档中前置条件的重要来源。是用例规约文档中前置条件的重要来源。例一:业务员将代表用电客户提例一:业务员将代表用电客户提出业务需求出业务需求4.请听第四段对话,并思考为什么要让客户说请听第四段对话,并思考为什么要让客户说明每项业务的结果?明每项业务的结果?l点评:点评:l可以帮助分析员分析用例,这是用例规约文档可以帮助
30、分析员分析用例,这是用例规约文档中后置条件的重要来源。中后置条件的重要来源。 用电客户服务业务概要视图用电客户服务业务概要视图例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l案例中有一个内部管理业务边界,业务目标是案例中有一个内部管理业务边界,业务目标是规范供电企业的内部管理,提高工作效率和管规范供电企业的内部管理,提高工作效率和管理效能。理效能。例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求1.请听第一段对话,并思考:请听第一段对话,并思考:l你能从用电主任的谈话中归纳出业务目的吗?你能从用电主任的谈话中归纳出业务目的吗?l能从这段对话中归纳出相关的业务规则吗?能从这段对
31、话中归纳出相关的业务规则吗?例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l点评:点评:l业务员访谈的例子没有涉及什么业务目标,这业务员访谈的例子没有涉及什么业务目标,这段对话中存在明显的业务目的,归纳为:监控段对话中存在明显的业务目的,归纳为:监控业务流程,可作为备选业务用例。业务流程,可作为备选业务用例。l为什么不是记录流程信息呢?为什么不是记录流程信息呢?l这涉及到谁来记录,业务主角是谁。这涉及到谁来记录,业务主角是谁。l这里应该是计算机来记录,业务建模阶段一般不这里应该是计算机来记录,业务建模阶段一般不予考虑;即使考虑,它也是在边界以内的,所以予考虑;即使考虑,它也是在边界以
32、内的,所以记录流程信息不是合理的业务用例。记录流程信息不是合理的业务用例。例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l为什么不是查询和统计流程信息呢?为什么不是查询和统计流程信息呢?l这涉及得到业务主角的业务目的。这涉及得到业务主角的业务目的。l获取业务用例时,不应该从谁做了什么为出发点,获取业务用例时,不应该从谁做了什么为出发点,而应当从谁为了什么而做什么来考虑。而应当从谁为了什么而做什么来考虑。l如果没能找到真正的目的,可能将紧密管理的如果没能找到真正的目的,可能将紧密管理的业务分割开来,造成信息链断裂。业务分割开来,造成信息链断裂。l例如:记录流程信息查询和统计流程信息,如
33、例如:记录流程信息查询和统计流程信息,如果各自分开设计实现,可能无法满足用户要求。果各自分开设计实现,可能无法满足用户要求。例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l这个例子中可以得到一些业务规则:记录业务这个例子中可以得到一些业务规则:记录业务流程数据、控制时限、安排工作、警报等流程数据、控制时限、安排工作、警报等l为什么这些是业务规则,而不是业务用例呢?为什么这些是业务规则,而不是业务用例呢?l业务用例即所谓功能需求,是指如果缺少它,业业务用例即所谓功能需求,是指如果缺少它,业务目标就无法达成。务目标就无法达成。l上述要点中,哪怕不做某一些,业务目标也能完上述要点中,哪怕不
34、做某一些,业务目标也能完成,只是质量不高,不顺利。成,只是质量不高,不顺利。l这些要点只是用来辅助和约束业务目标的,因此这些要点只是用来辅助和约束业务目标的,因此应该是业务规则。应该是业务规则。例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求2.请听第二段对话,并思考:请听第二段对话,并思考:l分析员是如何引导客户说出需求的?分析员是如何引导客户说出需求的?l分析员如何帮助客户认识哪些工作由计算机完分析员如何帮助客户认识哪些工作由计算机完成,哪些由人工完成?成,哪些由人工完成?例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l点评:点评:l客户并不能了解用例是什么,也不能过多的
35、期客户并不能了解用例是什么,也不能过多的期望用户能直接说出用例,很多时候需要系统分望用户能直接说出用例,很多时候需要系统分析员来归纳和总结用户的意思,并向用户求得析员来归纳和总结用户的意思,并向用户求得认可。认可。l用户有时无法了解什么是计算机能做的,什么用户有时无法了解什么是计算机能做的,什么是不能做的,分析员可以适时的提出。是不能做的,分析员可以适时的提出。例二:用电主任谈内部管理需求例二:用电主任谈内部管理需求l分析员在获取业务用例前,应当能对客户业务分析员在获取业务用例前,应当能对客户业务有大致的了解,这样才能引导客户将完整的需有大致的了解,这样才能引导客户将完整的需求讲出来,避免用户
36、想当然而掩盖了一些需求。求讲出来,避免用户想当然而掩盖了一些需求。 内部管理业务概要视图内部管理业务概要视图例三:业务主角角度展示业务用例三:业务主角角度展示业务用例例l从前面分析中,得到了从业务目标的整体角度从前面分析中,得到了从业务目标的整体角度展示业务构成。展示业务构成。l这种展示方法难以让跨边界的业务主角全面明这种展示方法难以让跨边界的业务主角全面明白他们所参与的用例。白他们所参与的用例。l为了能把业务说清楚,并让业务主角代表清楚为了能把业务说清楚,并让业务主角代表清楚他在整个系统理究竟做了些什么,通常需一份他在整个系统理究竟做了些什么,通常需一份视图,将参与了多个业务边界的业务主角的
37、所视图,将参与了多个业务边界的业务主角的所有业务用例集中在一个视图中展示出来。有业务用例集中在一个视图中展示出来。 业务主角业务用例视图业务主角业务用例视图进一步讨论之一进一步讨论之一l以上例子是通过客户访谈行使得到业务用例的,以上例子是通过客户访谈行使得到业务用例的,如果有些系统的建设不具备访谈条件,例如没如果有些系统的建设不具备访谈条件,例如没有访谈对象,那如何获取用例?有访谈对象,那如何获取用例?l任何对象一定有消费者,只要有消费者就会有任何对象一定有消费者,只要有消费者就会有需求。需求。l划分了业务边界,就一定有站在边界外的消费划分了业务边界,就一定有站在边界外的消费者。者。l可以使用
38、可以使用CRC(类职责协作)方法来进行(类职责协作)方法来进行分析。分析。进一步讨论之二进一步讨论之二l业务用例找到了,是不是列出了就行了?业务用例找到了,是不是列出了就行了?l列出来是不够的,还要从不同的角度应用不同列出来是不够的,还要从不同的角度应用不同的视图将它们展现出来。的视图将它们展现出来。进一步讨论之三进一步讨论之三l业务用例的获取什么时候结束?业务用例的获取什么时候结束?l只要感觉到把客户的业务弄清楚了就可以考虑只要感觉到把客户的业务弄清楚了就可以考虑结束,不必等到将每件事都定义清楚。结束,不必等到将每件事都定义清楚。l业务用例的意义在于能够帮助分析人员在短时业务用例的意义在于能
39、够帮助分析人员在短时间内从结构上、整体上了解业务构成,只要整间内从结构上、整体上了解业务构成,只要整体信息把握了,就可以考虑停止更深入的获取体信息把握了,就可以考虑停止更深入的获取业务用例。业务用例。业务建模业务建模l要建设一个高质量的系统,要从建立准确、清要建设一个高质量的系统,要从建立准确、清晰、高效和强壮的业务模型开始。晰、高效和强壮的业务模型开始。业务模型业务模型l完整的业务模型包括:完整的业务模型包括:l业务用例视图业务用例视图l业务用例场景业务用例场景l业务用例规约业务用例规约l业务规则业务规则l业务对象模型业务对象模型l业务用例实现视图业务用例实现视图l业务用例实现场景业务用例实
40、现场景l包图包图业务用例场景业务用例场景l用于描述该业务用例在该业务的实际过程中是用于描述该业务用例在该业务的实际过程中是如何做的。如何做的。l通常:通常:l强调参与该业务的各参与者的职责和活动,可强调参与该业务的各参与者的职责和活动,可以选择以选择活动图活动图;l强调该业务的完成时间顺序,可选择强调该业务的完成时间顺序,可选择时序图时序图;l强调参与该业务的各参与者之间的交互过程,强调参与该业务的各参与者之间的交互过程,可选择可选择协作图协作图。用活动图描述业务用例场景用活动图描述业务用例场景l侧重于描述参与业务的各个参与者在该业务中侧重于描述参与业务的各个参与者在该业务中所执行的活动。所执
41、行的活动。l适合分析参与者的职责,且有利于将业务用例适合分析参与者的职责,且有利于将业务用例分解成为更小的单元,为获得概念用例、系统分解成为更小的单元,为获得概念用例、系统用例带来好处。用例带来好处。用活动图描述业务用例场景用活动图描述业务用例场景l通常将参与者和业务工人作为活动图的泳道,通常将参与者和业务工人作为活动图的泳道,l将参与者和业务工人所完成的工作作为活动,将参与者和业务工人所完成的工作作为活动,l依据实际业务流程中的执行顺序将这些活动连依据实际业务流程中的执行顺序将这些活动连接起来,形成业务用例场景。接起来,形成业务用例场景。用活动图描述业务用例场景用活动图描述业务用例场景l有两
42、个基本要求:有两个基本要求:1.必须忠于真实业务。必须忠于真实业务。l描述业务用例场景时,不能试图进行抽象、优描述业务用例场景时,不能试图进行抽象、优化,必须和客户认可的实际执行过程一致。化,必须和客户认可的实际执行过程一致。2.一个场景只能描述业务的一种执行方式。一个场景只能描述业务的一种执行方式。l不要在一个场景里把业务的所有内容都包括进不要在一个场景里把业务的所有内容都包括进来。来。低压用电申请业务用例场景活动图低压用电申请业务用例场景活动图 高压用电申请业务用例场景活动图高压用电申请业务用例场景活动图 问题:问题:l高压和低压电用户仅在设计、设计审查两个活高压和低压电用户仅在设计、设计
43、审查两个活动有所不同,此处为什么要设计成两个场景,动有所不同,此处为什么要设计成两个场景,而不设计为同一个场景中的不同分支呢?而不设计为同一个场景中的不同分支呢?如何区分场景分支和另一个场景?如何区分场景分支和另一个场景?1.如果客户在其业务理解上,将看上去不同的如果客户在其业务理解上,将看上去不同的业务执行过程看作是同一个概念,应考虑将业务执行过程看作是同一个概念,应考虑将这些不同的活动作为同一个场景的多个分支,这些不同的活动作为同一个场景的多个分支,反之则应当单独作为一个场景。反之则应当单独作为一个场景。2.如果看上去不同的业务执行过程实际上所处如果看上去不同的业务执行过程实际上所处理的内
44、容是一样的,应当将不同的活动作为理的内容是一样的,应当将不同的活动作为一个场景的多个分支,反之则应当单独作为一个场景的多个分支,反之则应当单独作为一个场景。一个场景。例如:高、低压用电申请场景例如:高、低压用电申请场景1.低压申请和高压申请是通过不同的人员来接低压申请和高压申请是通过不同的人员来接待办理的,待办理的,2.虽然二者执行的活动差不多,但实际上所填虽然二者执行的活动差不多,但实际上所填写的表单差别很大,高压用户要填写的内容写的表单差别很大,高压用户要填写的内容多得多。多得多。l因此将其分为两个场景因此将其分为两个场景例如:邮局寄包裹场景例如:邮局寄包裹场景l客户可以选择购买邮局纸箱来
45、包装包裹,也可客户可以选择购买邮局纸箱来包装包裹,也可以从自己家里带去。以从自己家里带去。l如果选择购买邮局的纸箱,业务过程就会多出如果选择购买邮局的纸箱,业务过程就会多出到包装柜台包装的活动。到包装柜台包装的活动。l这种情形应该视为同一个场景的两个分支还是这种情形应该视为同一个场景的两个分支还是两个不同的场景呢?两个不同的场景呢?l提示:提示:l邮局不会认为购买和自带是两种不同的邮寄方邮局不会认为购买和自带是两种不同的邮寄方式。式。l两种方式下,邮局不会区别对待包裹、处理内两种方式下,邮局不会区别对待包裹、处理内容、填写的单子也不会不同。容、填写的单子也不会不同。l可以看作同一场景中的不同分
46、支。可以看作同一场景中的不同分支。例如:交纳手机话费场景例如:交纳手机话费场景l用户可以到银行,由银行代理收取;也可以通用户可以到银行,由银行代理收取;也可以通过网络交易平台,用网络支付卡交纳费用。过网络交易平台,用网络支付卡交纳费用。l上述两种缴费方式要看作不同的场景还是同一上述两种缴费方式要看作不同的场景还是同一场景中的不同分支?场景中的不同分支?l提示:提示:l银行缴费和网络缴费不是同一概念。银行缴费和网络缴费不是同一概念。l两种缴费方式处理的内容、步骤、填写的单据两种缴费方式处理的内容、步骤、填写的单据是不同的。是不同的。l应看作不同的业务场景。应看作不同的业务场景。用活动图描述用例场
47、景用活动图描述用例场景l好处:好处:l活动图可以理解为通常意义上的业务流程图,活动图可以理解为通常意义上的业务流程图,可以非常直观的描述客户的业务流程,这对与可以非常直观的描述客户的业务流程,这对与客户交流来说是非常好的工具。客户交流来说是非常好的工具。l从活动图中也可以得到许多关键概念:职责、从活动图中也可以得到许多关键概念:职责、活动。这些概念将有益于日后的概念用例、系活动。这些概念将有益于日后的概念用例、系统用例、业务架构建模。统用例、业务架构建模。用时序图描述业务用例场景用时序图描述业务用例场景l同样是将业务主角和业务工人作为对象来绘制。同样是将业务主角和业务工人作为对象来绘制。l与活
48、动图的区别:与活动图的区别:l活动图强调职责,活动是主要内容,表达了业活动图强调职责,活动是主要内容,表达了业务主角或者业务工人做什么;务主角或者业务工人做什么;l时序图强调顺序,消息是主要内容,表达了业时序图强调顺序,消息是主要内容,表达了业务主角或者业务工人之间传递的是什么。务主角或者业务工人之间传递的是什么。 低压用电申请业务用例场景时序图低压用电申请业务用例场景时序图用时序图描述业务用例场景用时序图描述业务用例场景l其中传递的消息一般带有其中传递的消息一般带有业务数据业务数据。l与传统的与传统的DFD图有异曲同工之妙。图有异曲同工之妙。l此时时序图中的消息粒度比较粗,只能帮助我此时时序
49、图中的消息粒度比较粗,只能帮助我们了解业务,达不到分析数据的详细程度。们了解业务,达不到分析数据的详细程度。用协作图描述业务用例场景用协作图描述业务用例场景l更容易看出业务主角或业务工人与其他人之间更容易看出业务主角或业务工人与其他人之间的交互。的交互。l注意分析图中与多个对象进行交互的角色。注意分析图中与多个对象进行交互的角色。 低压用电申请业务用例场景协作图低压用电申请业务用例场景协作图关于如何选择视图的建议关于如何选择视图的建议l组成执行团队,明确职责,规定每个角色的分组成执行团队,明确职责,规定每个角色的分工和要完成的工作时,选择工和要完成的工作时,选择活动图活动图比较合适。比较合适。
50、l强调行动步骤,在方案中要求每一步都按照预强调行动步骤,在方案中要求每一步都按照预期的顺序来执行,此时选择期的顺序来执行,此时选择时序图时序图比较合适。比较合适。l向每个参与者明确他们各自的合作者,及之间向每个参与者明确他们各自的合作者,及之间要合作的事情,此时选择要合作的事情,此时选择协作图协作图比较合适。比较合适。关于如何选择视图的建议关于如何选择视图的建议l活动图应该作为描述业务用例场景的必选方式。活动图应该作为描述业务用例场景的必选方式。l时序图和协作图作为辅助。时序图和协作图作为辅助。l在分析业务的阶段,最重要的内容是得到业务在分析业务的阶段,最重要的内容是得到业务参与者的职责,参与