12处理实例——在线购物:客户定单一个计算机制造厂商提供了通过因特网购买计算机的可能性,客户可以在制造商的Web页面上选择一台计算机,计算机分为服务器、台式机和笔记本。客户可以选择标准配置,或者可以在线建立自己希望的配置。可配置的构件(如内存)显示在一个可供选择的列表中。对每个新的配置,系统可以计算价格。要发出定单,客户必须填上运送和付款信息,可接收的付款方式为信用卡和支票,一旦定单被输入,系统向客户发送一个确认e-mail消息,并附上定单的细节,在等待计算机送到的时候,客户可以在任何时候在线查到定单的状态。后端定单处理包含下面所需的步骤:验证客户的信任度和付款方式、向仓库请求所订购的配置、打印发票并且请求仓库将计算机运送给客户。3用例建模参与者:与用例交互的任何人或任何事情.要得到有用的结果用例:功能的具体化为用例(功能需求可以直接映射到用例)表示一个完整的给用户传值的功能性单元.用例图:将用例赋给参与者.是系统行为模型的主要可视化技术.图形元素:用例、参与者.为用例编写文档:用事件流来描述.4第1步(在线购物)用例建模:寻找系统中参与者考虑如下扩展的需求来发现在线购物应用中的参与者。1.客户使用制造厂商的Web页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。2.客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户要求的情况下可以计算出来。3.客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。54.要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。5.在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。6.事务的细节,包括定单号和客户账号,要e-mail给客户,使得客户可以在线查看定单的状态。7.仓库从销售人员那里获得发票,并给客户运送计算机。6第1步(在线购物)用例建模:寻找参与者基于以上分析创建以下参与者:1.客户-----------------Customer2.销售人员-----------Salesperson3.仓库-----------------Warehouse图1-1参与者(在线购物)CustomerSalespersonWarehouse7需求号需求参与者用例1客户使用制造厂商的Web页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。CustomerDisplayStandardComputerConfiguration2客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户要求的情况下可以计算出来。CustomerBuildComputerConfiguration3客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。CustomerSalespersonOrderConfiguredComputer,RequestSalespersonContact4要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。CustomerOrderConfiguredComputer,VerifyandAcceptCustomerPayment5在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。SalespersonWarehouseInformWarehouseAboutOrder6事务的细节,包括定单号和客户账号,要e-mail给客户,使得客户可以在线查看定单的状态。SalespersonCustomerOrderConfiguredComputer,UpdateOrderStatus7仓库从销售人员那里获得发票,并给客户运送计算机。SalespersonWarehousePrintInvoice表1-1寻找用例(在线购物)第2步(在线购物)用例建模:寻找用例8第2步(在线购物)用例建模:寻找用例图1-2用例(在线购物)显示标准计算机配置DisplayStandardComputerConfiguration建立计算机配置BuildComputerConfigurationVerifyandAcceptCustomerPayment验证并接受客户付款订购预先配置的计算机OrderConfiguredComputer将定单通知仓库InformWarehouseaboutOrder更新定单状态UpdateOrderStatus请求销售人员联系RequestSalespersonContact打印发票PrintInvoice9第3步(在线购物)用例建模:画用例图《extend》Customer显示标准计算机配置DisplayStandardComputerConfigurationVerifyandAcceptCustomerPayment验证并接受客户付款更新定单状态UpdateOrderStatus制定计算机配置BuildComputerConfiguration订购预先配置的计算机OrderConfiguredComputer请求销售人员联系RequestSalespersonContact打印发票PrintInvoice将定单通知仓库InformWarehouseaboutOrderWarehouse仓库Salesperson销售人员图1-3用例图(在线购物)10第4步(在线购物)用例建模:编写用例文档用例订购配置的计算机简述该用例允许Customer输入一份购物定单,该定单包括提供运送和发票地址,以及关于付款的情况参与者Customer前提条件Customer点击一个因特网浏览器进入计算机制造厂商的定单输入Web页面,该页面显示已配置计算机及其价格的详细情况;当Customer在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始主流系统请求Customer输入购买细节,包括销售人员的名字、运送信息(客户的名字和地址)、发票细节(如果与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释Customer选择Purchase(或相似命名的)功能来发送定单给制造厂商系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库系统将定单号和客户号与所有定单细节一起e-mail给Customer,作为对接收定单的确认其他流Customer在提供所有要求录入的信息之前,激活Purchase(或相似命名的)功能,系统显示错误信息,它要求提供所漏掉的信息Customer选择Reset(或相似命名的)功能来恢复一个空白的购物表格,系统允许Customer重新输入信息后置条件如果用例成功,购物定单记录进系统的数据库,否则系统的状态不变表1-2用例“订购配置的计算机”(在线购物)的陈述性规格说明11活动建模用图来表示用例的事件流(为用例建模,活动状态可根据用例文档来建立).活动图填补了系统行为在用例模型中的高级表示和行为在交互模型(序列图和协作图)中的低级表示之间的空白.活动图显示了计算的步骤.执行步骤称为活动状态.(活动状态要花费时间来完成,行为被看作快到.活动只能在对象状态中定义,活动应从系统的角度,而不是从参与者的观点命名;行为可出现在对象状态的转换中).从一个活动状态到另一个活动状态的控制流称为转换.活动图也可用于在一个高的抽象层次上理解业务进程;在一个低的抽象层次上设计复杂的序列算法;在多线程应用中设计并发算法.12第5步(在线购物)活动建模:找出活动为用例OrderConfiguredComputer(定购配置计算机)找出活动编号用例陈述活动状态1当Customer在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始DisplayCurrentConfigura-tion;GetOrderRequest2系统请求Customer输入购买细节,包括销售人员的名字(如果知道的话)、运送信息(客户的名字和地址)、发票细节(如果与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释DisplayPurchaseForm3Customer选择Purchase(或相似命名的)功能来给制造厂商发送定单,得到细节GetPurchaseDetails4系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库StoreOrder5系统将定单号和客户号与所有定单细节一起e-mail给Customer,作为对接收定单的确认EmailOrderDetails6Customer在提供所有要求录入的信息之前,激活Purchase功能,系统显示错误信息,它要求提供所漏掉的信息GetPurchaseDetails;DisplayPurchaseForm7Customer选择Reset(或相似命名的)功能来恢复一个空白的购物表格,系统允许Customer重新输入信息DisplayPurchaseForm表1-3在主要的和附加的流中找出活动13第6步(在线购物)活动建模:活动图DisplayPurchaseForm显示购物表格[incomplete]GetOrderRequest获取订购请求DisplayCurrentConfiguration显示当前配置图1-4用例OrderConfiguredComputer的活动图[timeout]GetPurchaseDetails获取购买细节StoreOrder存储定单[OK]EmailOrderDetailsEmail定单细节14类建模类建模元素包含:类自身、类的属性、操作、关联、聚合、组合、泛化,类图提供这些建模元素的组合可视化表示.类建模和用例建模可并行进行.用例辅助类的发现,类模型可以发现被忽略的用例.实体类:定义业务对象;边界类:定义GUI对象;控制类:控制程序逻辑的类.类的结构由它的属性定义;对象协作的路径由关联表示,即关联用于指向所关联类的属性类型.15第7步(在线购物)类建模:找出实体类需求号需求实体类1客户使用制造厂商的Web页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。Customer,Computer(StandardConfiguration,Product)2客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户要求的情况下可以计算出来。Customer,ConfiguredComputer(ConfiguredProduct),ConfigurationItem3客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。Customer,ConfiguredComputer,Order,Salesperson4要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。Customer,Order,Shipment,Invoice,Payment5在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置项的细节。Customer,Order,Salesperson,ConfiguredComputer,ConfigurationItem6把事务的细节,(包括定单号和客户账号)e-mail给客户,使得客户可以在线查看定单的状态。Order,Customer,OrderStatus7仓库从销售人员那里获得发票,并给客户运送计算机。Invoice,Shipment表1-4需求到实体类的赋值(在线购物)16第7步(在线购物)实体类ConfiguredComputerConfigurationItemComputerOrderInvoice图1-5类(在线购物)Customer(fromUseCaseV