1、UML建模-网上购物 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 2010 -— 2011 学 年
2、第 一 学 期 信息技术学院 《软件系统建模与UML》综合设计实验 网上购物系统的UML建模 班 级 学 号 姓 名 任课教师 日 期 2010年12月30日 目 录 第1章 系统需求 2 第2章 需求分析 4 2.1 识别参与者 4 2.2 识别用例 4 2。3 用例的事件流描述 4 第3章 静态结构模型 5 3.1 定义系统对象 5 3。2 定义用户界面类 5 3.3 建立类图 5 第4章 动态行为模型 6 4.1 创建系统顺序图(协作图) 6 4.2 创建系统的状态图
3、 6 4。3 创建系统的活动图 6 第5章 物理模型 8 5。1 创建系统组件图 8 5。2 创建系统部署图 8 第1章 系统需求 一个客户通过因特网购买所需要的商品,客户可以在商品列表的Web页面上选择订购商品。 要发出定单,客户必须填上运送和付款信息,可接收的付款方式为信用卡、支票或者其他付款方式,一旦定单被输入,系统向客户发送一个确认e—mail消息,并附上定单的细节,在等待计算机送到的时候,客户可以在任何时候在线查到定单的状态。 后端定单处理包含下面所需的步骤:验证客户的信任度和付款方式、向仓库请求所订购的商品、打印发票并且请求仓库将商品运送给
4、客户 1. 客户使用商品列表的Web页面来查看所需要的商品,商品价格也同时显示出来. 2。 客户可以通过留言板向我们提出需要什么样的商品,需要什么样的服务,对我们提出一些意见和建议。 3。 客户可以选择在线订购商品,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。 4。 要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡、支票或者其他付款方式)。 5. 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的商品的细节. 6. 事务的细节,包括定单号和客户账号,要e-mail给客户,使得客户可以在线查看定单的
5、状态. 7. 仓库从销售人员那里获得发票,并给客户运送商品. 第2章 需求分析 采用用例驱动的分析方法分析需求的主要任务是识别出系统中的参与者和用例,并建立用例模型. 在本系统中,…… 2.1 识别参与者 2。2 识别用例 系统总用例图 2.3 用例的事件流描述 用 例: StandardConfiguration 简 述: 该用例允许用户查询选择标准配置计算机,包括价格及部件清单。 参 与 者: Customer 前提条件: Customer点击一个因特网浏览器进入计算机制造厂商的选购标准配置计算机的Web页面,该页面显示标准
6、配置计算机的价格以及部件清单。用例开始。 主 流: 用户查询标准计算机配置,将选中的计算机标准配置加入购物车,用户可随时增减购物车内商品,web页面动态对累积价格进行更新。 其 他 流: 无 后置条件: 如果用例成功,将购物车内已配置计算机型号及数量存入临时数据库。 用 例: SelConfiguration 简 述: 该用例允许用户自定义计算机配置,包括部件清单及总计价格. 参 与 者: Customer 前提条件: Customer点击一个因特网浏览器进入计算机制造厂商的自定义配置计算机及部件的Web页面,该页面显示
7、计算机部件清单及价格。用例开始。 主 流: 用户查询选择计算机部件,将选中的计算机标准配置加入购物车,用户可随时增减购物车内商品,web页面动态对累积价格进行更新. 其 他 流: 无 后置条件: 如果用例成功,将购物车内已配置计算机部件及数量存入临时数据库。 用 例: Verify and Accept Payment 简 述: 该用例验证并接受客户付款,并将付款信息通知销售人员。 参 与 者: Customer, Salesperson 前提条件: Customer收到定单确认信息后,通过信用卡或支票完成转帐.用
8、例开始。 主 流: 检查用户帐号及付款金额,若金额无误,将付款成功信息通知销售人员。 其 他 流: 若金额不足,向用户发送通知。 后置条件: 如果用例成功,将付款成功信息通知销售人员,并将客户订购信息及交付金额存入数据库。 用 例: Request Salesperson Contact 简 述: 该用例允许Customer 请求Salesman在定单真正发出之前与自己联系,解释定单的细节、协商价格等。 参 与 者: Customer, Salesman 前提条件: Customer需要对定单页面显示已配置计算机及
9、其价格的详细情况咨询. Customer 在填写完定单后选择Contact(或相似命名的)功能来发送消息给Salesman要求咨询,此时该用例开始。 主 流: Salesman在专门的服务窗口接收到Customer请求联系的列表并选择到该客户的请求. Salesman得到Customer在定单上的联系方式信息。 Salesman按照提供的信息选择方式联系Customer,对定单细节解释,并协商价格. 其 他 流: 无 后置条件: 如果用例成功,Salesman将按协商后的配置及价格信息修改原定单,将新的定单信息存入数据库中. 用
10、 例: Order 简 述: 该用例允许Customer输入一份购物定单,该定单包括提供运送和发票地址,以及关于付款的情况。 参 与 者: Customer 前提条件: Customer点击一个因特网浏览器进入计算机制造厂商的定单输入Web页面,该页面显示已配置计算机及其价格的详细情况。 当Customer 在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始。 主 流: 系统请求Customer输入购买细节,包括销售人员的名字(如果知道的话)、运送信息(客户的名字和地址)、发票细
11、节(如果与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释. Customer选择Purchase(或相似命名的)功能来发送定单给制造厂商。 系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库. 系统将定单号和客户号与所有定单细节一起 e—mail给Customer,作为对接收定单的确认。 其 他 流: Customer在提供所有要求录入的信息之前,激活Purchase(或相似命名的)功能,系统显示错误信息,它要求提供所漏掉的信息。 Customer选择Reset(或相似命名的)功能来恢复一个空白的购物表
12、格,系统允许Customer 重新输入信息. 后置条件: 如果用例成功,购物定单记录进系统的数据库,否则系统的状态不变。 用 例: Update Order Status 简 述: 该用例用于描述定单状态(定单交付状态,定单确认状态,付款状态). 参 与 者: Customer, Salesperson 前提条件: Customer交付定单,查询定单状态,Salesperson修改定单状态,该用例开始。 主 流: Customer填写定单订购商品成功,进入定单交付状态。 Salesman检查定单,发送e-mail给客户
13、进入定单确认状态。 Customer付款成功,进入已付款状态. 其 他 流: 若定单不符合要求,则向用户发送定购失败信息。 若销售人员检查定单有误,则向用户发送定购失败信息. 若用户付款金额不对,则向用户发送付款失败信息. 后置条件: 如果用例成功,则将定单所处状态存入数据库。 用 例: Print Invoice 简 述: 客户从销售人员处得到发票 参 与 者: Customer Salesman 前提条件: 验证和接收客户付款成功。 Salesman选择 Invoice(或相似命名的)功能键来生成发
14、票,此时该用例开始. 主 流: Salesman利用系统从数据库中提取订购信息和收到的付款信息生成发票。 系统将该发票提供给Salesman。 Salesman发Email给Customer ,并付上发票。 其 他 流: 无 后置条件: 如果用例成功,客户将收到发票. 用 例: Inform Warehouse about Order 简 述: 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。 参 与 者: Salesman Warehouse 前提条件: 验证和接
15、收客户付款成功。 Salesman选择系统提供的订购清单中该客户的订购信息,并点击Refer(或相似命名的)功能键来将订购信息提交给Warehouse时,该用例开始。 主 流: Salesman利用系统从数据库中提取该Customer的订单信息和个人资料,生成一份订购信息列表。 系统将该列表提供给Warehouse。 Warehouse根据提供的信息配置计算机商品。 其 他 流: 无 后置条件: 如果用例成功,Warehouse发货给客户 ,修改定单状态为已送货。 第3章 静态结构模型 进一步分析系统需求,发现类以及类之间的关系,
16、确定它们的静态结构和动态行为,是面向对象[7]分析的基本任务。系统的静态结构模型主要用类图和对象图描述. 3。1 定义系统对象 系统对象的识别可以通过寻找系统域[8]描述和需求描述中的名词来进行. 3。2 定义用户界面类 通过对系统的不断分析和细化,可识别出下述界面类、类的操作和属性。 3.3 建立类图 识别出了系统中的类后,还要识别出类间的关系,然后就可以建立类图了. 从需求中找出候选实体类: 需求号 需求 候选实体类 1 客户使用制造厂商的Web页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。 Customer, Standard
17、 Computer 2 客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户要求的情况下可以计算出来。 Customer, Component MerchandiseList 3 客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。 Customer, Computer, Order, Salesperson 4 要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。 Customer, Order, Invoice, Payment 5
18、 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。 Customer, Order, Salesperson, Configured Computer, MerchandiseList 6 把事务的细节,(包括定单号和客户账号)e-mail给客户,使得客户可以在线查看定单的状态。 Order, Customer, Order Status 7 仓库从销售人员那里获得发票,并给客户运送计算机。 Invoice, Ware House 表1 需求到实体类的赋值(网上购物) Component类:计算机自选部件类 属性: it
19、em_type 自选部件型号 item_descr 自选部件描述 方法: GetComponentInfo() SelfConfigurationWindow类调用此方法从Component类中得到计算机自选部件的详细信息。 Customer类:客户类 属性:customer_name 客户名字 customer_address 客户地址 phone_number 客户电话号码 email_address 客户电子邮件 方法:EmailCustomer() InputOrderWindow调用此方法将定单成功存入数据库信息通知给客户
20、 LinkCustomer() Salesma调用此方法联系客户 ContactingCustomer()调用此方法Customer完成与Salesman的接触活动。 PayMoney() 调用此方法Customer完成付款活动 SendInvoice() 使用PrintInvoice()生成的发票发送给Customer。 Invoice类:发票类 属性:invoice_number 发票号 invoice_date 发票打印日期 invoice_total
21、 已付款金额 方法:Print() 调用OrderServerWindow类的PrintInvoice()产生的发票打印出来. MerchandiseList:商品列表类 属性:TotalCost 商品总价格 方法:AddMerchandise() 将AddToCar()方法中加入购物车的商品增加到商品列表. DeleteMerchandise()删除列表中某商品 ComputerTotalCost() 调用此方法计算商品列表中商品的总价 ModifyMerchndiseLise() 修改商品列表的方法,有修改商品数量,删除商品等方法 Order类:定单类
22、 属性:order_date 定单日期 order_number 定单号 order_status 定单状态 order_total 定单总价 salesperson_name 售货人员姓名 s hip_address 发送地址 order_payment 付款方式 方法:CenerateCustomerAndOrderID() 产生客户帐号和定单流水号 GetOrder() 取得当前定单信息 NewOrder() 生成新定单对象 ModifyOrder() 修改/删除当前定单,该方法由S
23、elfConfigurationWindow或者由用户使用StandardComputerWindow类调用. SetOrderStatus() 设置定单状态,由 OrderServerWindow类的ModifyOrderStatus方法调用 GetOrderStatus() 取得定单状态,它调用DateBase中的LoadOrder()方法 数据库类 DataBase类:数据库类 方法:LoadOrder()从数据库提取定单,被Order类中的方法调用 StoreOrder()将定单存入数据库中,被Order类中的方法调用 GetNeedContactOrderList
24、)从数据库提取需沟通的客户定单列表。GetPaidOrderList()从数据库中提取已付款的定单列表,被Payment类调用GetCompleteOrderList()从数据库中提取已发送的定单列表,被Invoice调用 边界类 MainWindow类: 功能:应用程序中的所有窗口类均由此类派生出来 方法: CreateWindow() 创建窗口。 CloseWindow() 关闭窗口 控制类 QueryStatusWindow类: 功能:创建并显示用户查询窗口。 方法:GetCustmerID()取得用户输入帐号 GetOrderID()取得定单流水号。
25、 QueryStatus()客户点查询按钮触发它调用Order类中的GetOrderStatus()方法取得定单状态. DisplayStatus()显示定单状态。 Payment类:付款类 属性: payment_method 付款方式 date_received 接收日期 amount_received 接收金额 方法: linkPayment() 付款初始化 SetPaymentStatus() 设置付款修改Order类OrderPament属性。 GetPaymentStatus()取得付款状态,从Order类的OrderPayment属性取值 Ver
26、ifyCustomerID()验证客户帐号,被Customer类的Paymoney方法使用 AcceptPayment()接受客户付款,方法将修改Order类的OrderPayment对象 第4章 动态行为模型 系统的动态行为模型由交互作用图(时序图和协作图)、状态图、活动图描述。 4.1 创建系统顺序图(协作图) 描述系统用例的主要场景的顺序图(协作图)如下所示。 4.1.1 StandardConfiguration的协作图 4。1。2 PrintInvoice的协作图 4。1.3 InformWareHouseAboutOrder的协作图 4。1。4
27、 Order的协作图 4.1。5 VerifyAndAcceptPayment的协作图 4.1。6 RequestSalesperson的协作图 4.1。7 UpdateOrderStatus的协作图 4.1.8 SelfConfiguration的协作图 4。2 创建系统的状态图 4。2。1 Payment的状态图 4。2。2 Ordert的状态图 4。3 创建系统的活动图 StandardConfiguration的活动图 SelfConfiguration的活动图 Request Salesperson Contact的活动图 Order的活动图 Verify and Accept Payment的活动图 第5章 物理模型 5.1 创建系统组件图 图5.1 网上购物系统组件图 5.2 创建系统部署图 图5.2 网上购物系统部署图 28






