1、面向对象技术与 UML课程设计网上购物系统 -面向对象的可视化建模( UML)一 需求规格说明 21. 系统说明 22. 网上购物系统人机界面描述 23. 信息资源列表 3二 需求分析过程 41. 网上购物应用中的参与者 42. 系统中的用例及用例文档 43. 系统中的类 8三 用 UML 对系统建模 161. 用例包图及用例图(用例建模) 162. 系统用例的活动图及活动文档(活动建模) 173. 网上购物系统的类图(类建模) 234. 构造顺序图(交互建模) 275. 构造状态图(状态图建模) 316. 构造协作图 327. 构件图 358. 部署图 36说明 371结束语 38一 需求规
2、格说明1系统说明11 需求描述: 一个客户通过因特网购买所需要的商品,客户可以在商品列表的Web 页面上选择订购商品。 要发出定单,客户必须填上运送和付款信息,可接收的付款方式为信用卡、支票或者其他付款方式,一旦定单被输入,系统向客户发送一个确认 e-mail 消息,并附上定单的细节,在等待计算机送到的时候,客户可以在任何时候在线查到定单的状态。 后端定单处理包含下面所需的步骤:验证客户的信任度和付款方式、向仓库请求所订购的商品、打印发票并且请求仓库将商品运送给客户。12 资源本购物网站所提供的一些日常起居生活用品。13 活动列表1. 客户使用商品列表的 Web 页面来查看所需要的商品,商品价
3、格也同时显示出来。2. 客户可以通过留言板向我们提出需要什么样的商品,需要什么样的服务,对我们提出一些意见和建议。3. 客户可以选择在线订购商品,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。4. 要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡、支票或者其他付款方式) 。5. 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的商品的细节。6. 事务的细节,包括定单号和客户账号,要 e-mail 给客户,使得客户可以在线查看定单的状态。7. 仓库从销售人员那里获得发票,并给客户运送商品。2网上购物系统人机界面描述 用户和系
4、统之间的界面对所有的顾客都开放。允许用户搜索当前在线产品信息。允许用户输入定单信息或汇款信息等用户的个人资料。 销售人员与系统之间的界面谨对拥有口令的销售人员开放。允许销售人员查看定单信息验证用户付款金额等行为。3信息资源列表 基本商品信息为需要此类商品的用户提供相关的信息资源。 自定义购买商品信息建立一个留言板为需要此类信息的用户提供相关的信息咨询。 定单信息要购买产品的用户输入相关信息,提交系统。 购物信息为用户选购的产品作出记录并估计价格,为用户提供参考。 付款信息用户输入相关信息,销售人员验证相关信息。二 需求分析过程 1网上购物应用中的参与者1.客户-Customer2.销售人员-S
5、alesperson3.仓库-Warehouse图1 参与者(网上购物)Customer 客户Salesperson 销售人员Warehouse 仓库2系统中的用例及用例文档21 用例StandardConfiguration(from 买买买买)Print Invoice(from 买买)Verify and Acept Payment(from 买买)Order (from 买买)Inform WareHouse about Order(from 买买)Request Salesperson Contact(from 买买)Update Order Status(from 买买)SelfC
6、onfiguration(from 买买买买)22 总用例图Verify and Acept Payment(from 买)SelfConfiguration(from 买买)StandardConfiguration(from 买买) Order (from 买)WarehouseCustomer Request Salesperson Contact(from 买)Print Invoice(from 买)Inform WareHouse about Order(from 买)Update Order Status(from 买)Salesperson网上购物系统用例图23 用例文档:用
7、例: StandardConfiguration简 述: 该用例允许用户查询选择标准配置计算机,包括价格及部件清单。参 与 者: Customer前提条件: Customer 点击一个因特网浏览器进入计算机制造厂商的选购标准配置计算机的 Web 页面,该页面显示标准配置计算机的价格以及部件清单。用例开始。主 流: 用户查询标准计算机配置,将选中的计算机标准配置加入购物车,用户可随时增减购物车内商品,web 页面动态对累积价格进行更新。其 他 流: 无后置条件: 如果用例成功,将购物车内已配置计算机型号及数量存入临时数据库。用 例: SelConfiguration简 述: 该用例允许用户自定义
8、计算机配置,包括部件清单及总计价格。参 与 者: Customer前提条件: Customer 点击一个因特网浏览器进入计算机制造厂商的自定义配置计算机及部件的 Web 页面,该页面显示计算机部件清单及价格。用例开始。主 流: 用户查询选择计算机部件,将选中的计算机标准配置加入购物车,用户可随时增减购物车内商品,web 页面动态对累积价格进行更新。其 他 流: 无后置条件: 如果用例成功,将购物车内已配置计算机部件及数量存入临时数据库。用 例: Verify and Accept Payment简 述: 该用例验证并接受客户付款,并将付款信息通知销售人员。参 与 者: Customer, Sa
9、lesperson前提条件: Customer 收到定单确认信息后,通过信用卡或支票完成转帐。用例开始。主 流: 检查用户帐号及付款金额,若金额无误,将付款成功信息通知销售人员。其 他 流: 若金额不足,向用户发送通知。后置条件: 如果用例成功,将付款成功信息通知销售人员,并将客户订购信息及交付金额存入数据库。用 例: Request Salesperson Contact简 述: 该用例允许 Customer 请求 Salesman 在定单真正发出之前与自己联系,解释定单的细节、协商价格等。参 与 者: Customer, Salesman前提条件: Customer 需要对定单页面显示已配
10、置计算机及其价格的详细情况咨询。Customer 在填写完定单后选择 Contact(或相似命名的)功能来发送消息给 Salesman 要求咨询,此时该用例开始。主 流: Salesman 在专门的服务窗口接收到 Customer 请求联系的列表并选择到该客户的请求。Salesman 得到 Customer 在定单上的联系方式信息。Salesman 按照提供的信息选择方式联系 Customer,对定单细节解释,并协商价格。其 他 流: 无后置条件: 如果用例成功,Salesman 将按协商后的配置及价格信息修改原定单,将新的定单信息存入数据库中。用 例: Order简 述: 该用例允许 Cus
11、tomer 输入一份购物定单,该定单包括提供运送和发票地址,以及关于付款的情况。参 与 者: Customer前提条件: Customer 点击一个因特网浏览器进入计算机制造厂商的定单输入 Web 页面,该页面显示已配置计算机及其价格的详细情况。当 Customer 在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始。主 流: 系统请求 Customer 输入购买细节,包括销售人员的名字(如果知道的话) 、运送信息(客户的名字和地址) 、发票细节(如果与运送地址不同的话) 、付款方法(信用卡或支票)以及任何其他注释。Customer 选
12、择 Purchase(或相似命名的)功能来发送定单给制造厂商。系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库。系统将定单号和客户号与所有定单细节一起 e-mail 给Customer,作为对接收定单的确认。其 他 流: Customer 在提供所有要求录入的信息之前,激活Purchase(或相似命名的)功能,系统显示错误信息,它要求提供所漏掉的信息。Customer 选择 Reset(或相似命名的)功能来恢复一个空白的购物表格,系统允许 Customer 重新输入信息。后置条件: 如果用例成功,购物定单记录进系统的数据库,否则系统的状态不变。用 例: Update
13、 Order Status简 述: 该用例用于描述定单状态(定单交付状态,定单确认状态,付款状态) 。参 与 者: Customer, Salesperson前提条件: Customer 交付定单,查询定单状态,Salesperson 修改定单状态,该用例开始。主 流: Customer 填写定单订购商品成功,进入定单交付状态。Salesman 检查定单,发送 e-mail 给客户,进入定单确认状态。Customer 付款成功,进入已付款状态。其 他 流: 若定单不符合要求,则向用户发送定购失败信息。若销售人员检查定单有误,则向用户发送定购失败信息。若用户付款金额不对,则向用户发送付款失败信息
14、。后置条件: 如果用例成功,则将定单所处状态存入数据库。用 例: Print Invoice简 述: 客户从销售人员处得到发票参 与 者: Customer Salesman前提条件: 验证和接收客户付款成功。Salesman 选择 Invoice(或相似命名的)功能键来生成发票,此时该用例开始。主 流: Salesman 利用系统从数据库中提取订购信息和收到的付款信息生成发票。系统将该发票提供给 Salesman。Salesman 发 Email 给 Customer ,并付上发票。其 他 流: 无后置条件: 如果用例成功,客户将收到发票。 用 例: Inform Warehouse abo
15、ut Order简 述: 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。参 与 者: Salesman Warehouse前提条件: 验证和接收客户付款成功。Salesman 选择系统提供的订购清单中该客户的订购信息,并点击 Refer(或相似命名的)功能键来将订购信息提交给Warehouse 时,该用例开始。主 流: Salesman 利用系统从数据库中提取该 Customer 的订单信息和个人资料,生成一份订购信息列表。系统将该列表提供给 Warehouse。Warehouse 根据提供的信息配置计算机商品。其 他 流: 无后置条件: 如果用例成功,Ware
16、house 发货给客户 ,修改定单状态为已送货。3系统中的类31 实体类从需求中找出候选实体类:需求号需求 候选实体类1 客户使用制造厂商的 Web 页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。Customer,Standard Computer2 客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户要求的情况下可以计算出来。Customer,ComponentMerchandiseList3 客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。Customer,Compute
17、r, Order, Salesperson4 要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票) 。Customer,Order,Invoice,Payment5 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。Customer,Order,Salesperson,Configured Computer,MerchandiseList6 把事务的细节, (包括定单号和客户账号)e-mail 给客户,使得客户可以在线查看定单的状态。Order,Customer,Order Status7 仓库从销售人员那里获得发票,并给客户运送计算机。I
18、nvoice,Ware House表 1 需求到实体类的赋值(网上购物)Component 类:计算机自选部件类属性: item_type 自选部件型号item_descr 自选部件描述 方法: GetComponentInfo() SelfConfigurationWindow 类调用此方法从 Component 类中得到计算机自选部件的详细信息。Customer 类:客户类属性:customer_name 客户名字customer_address 客户地址phone_number 客户电话号码email_address 客户电子邮件方法:EmailCustomer() InputOrder
19、Window调用此方法将定单成功存入数据库信息通知给客户LinkCustomer() Salesma 调用此方法联系客户ContactingCustomer() 调用此方法 Customer 完成与 Salesman 的接触活动。PayMoney() 调用此方法 Customer完成付款活动SendInvoice() 使用 PrintInvoice()生成的发票发送给 Customer。Invoice 类:发票类属性:invoice_number 发票号invoice_date 发票打印日期invoice_total 已付款金额方法:Print() 调用 OrderServerWindow 类
20、的PrintInvoice()产生的发票打印出来。MerchandiseList:商品列表类属性:TotalCost 商品总价格方法:AddMerchandise() 将 AddToCar()方法 中加入购物车的商品增加到商品列表。DeleteMerchandise()删除列表中某商品ComputerTotalCost() 调用此方法计算商品列表中商品的总价ModifyMerchndiseLise() 修改商品列表的方法,有修改商品数量,删除商品等方法Order 类:定单类属性:order_date 定单日期order_number 定单号order_status 定单状态order_tota
21、l 定单总价salesperson_name 售货人员姓名ship_address 发送地址order_payment 付款方式方法:CenerateCustomerAndOrderID() 产生客户帐号和定单流水号GetOrder() 取得当前定单信息NewOrder() 生成新定单对象ModifyOrder() 修改/删除当前定单,该方法由 SelfConfigurationWindow 或者由用户使用 StandardComputerWindow 类调用。SetOrderStatus() 设置定单状态,由OrderServerWindow 类的 ModifyOrderStatus方法调用
22、GetOrderStatus() 取得定单状态,它调用 DateBase 中的 LoadOrder()方法WareHouse 类:仓库类方法:MakeUpComputerOrComponent() DataBase 类调用该方法将客户订购计算机及组件的详细情况递交给仓库。SendToCustomer() 仓库调用该方法获得顾客信息完成发送商品任务。StandardComputer 类:标准配置计算机方法:GetStandardComputerInfo() StandardComputerWindow 类调用此方法从 StandardComputer 类中得到标准配置的计算机的详细信息。32 数
23、据库类DataBase 类:数据库类方法:LoadOrder()从数据库提取定单,被 Order 类中的方法调用StoreOrder()将定单存入数据库中,被 Order 类中的方法调用GetNeedContactOrderList()从数据库提取需沟通的客户定单列表。GetPaidOrderList()从数据库中提取已付款的定单列表,被 Payment 类调用GetCompleteOrderList()从数据库中提取已发送的定单列表,被 Invoice 调用33 边界类MainWindow 类:功能:应用程序中的所有窗口类均由此类派生出来方法:CreateWindow() 创建窗口。Clos
24、eWindow() 关闭窗口。SelfConfigurationWindow 类:功能:产生用户自选部件窗口。方法:AddToCar() 用户将选中商品添到购物车,它调用 StandardComputer 类中的方法取得商品信息,将其存储到MerchandiseList 类的属性中。DisplayTotalCost() 显示当前选购的商品总值,该值由 merchandiselist 类中的ComputeTotalCost()方法计算得到。GotoShoppingList() 显示购物清单窗口。NextPage() 显示下一页商品。StandardComputerWindow 类:功能:产生用户
25、自选部件窗口。方法:AddToCar() 用户将选中商品添到购物车,它调用 StandardComputer 类中的方法取得商品信息,将其存储到MerchandiseList 类的属性中。DisplayTotalCost() 显示当前选购的商品总值,该值由 merchandiselist 类中的ComputeTotalCost()方法计算得到。GotoShoppingList() 显示购物清单窗口。NextPage() 显示下一页商品。ShoppingListWindow 类:功能:创建并显示购物清单窗口并可修改购物清单。方法:DisplayShoppingList() 显示商品购物清单,它将
26、调用 MerchandiseList 类中的属性,获得商品清单。ModifyCar() 修改购物车中的商品,它调用 MerchandiseList 类中的方法ModifyMerchndiseList()更新商品列表。DisplayTotalCost() 显示当前选购的商品总值,该值由 merchandiselist 类中的ComputeTotalCost()方法计算得到。GotoInputOrderWindow() 进入到定单输入窗口。34 控制类QueryStatusWindow 类:功能:创建并显示用户查询窗口。方法:GetCustmerID()取得用户输入帐号GetOrderID()取得
27、定单流水号。QueryStatus()客户点查询按钮触发它调用 Order 类中的 GetOrderStatus()方法取得定单状态。DisplayStatus()显示定单状态。InputOrderWindow 类:功能:输入定单窗口。方法:VertifyInputInformation() 验证用户输入信息GenerateOrder() 调用 Order 类中的NewOrder()方法OrderServerWindow 类:功能:创建并显示有销售人员使用的窗口,实现修改定单状态,通知仓库,打印发票等功能。方法:ModifyOrderStatus() 销售人员点击修正状态按钮时触发,它调用 O
28、rder 类的 SetOrderStatus()方法修改定单状态。SendToWarehouse() 销售人员点击通知仓库按钮时触发,它调用 DateBase 中的GetPaidOrderList( )方法,取得以付款的定单列表。PrintInvoice() 销售人员点击打印发票按钮时触发。它调用 Invoice 类的 Print 的方法,并调用Customer 类中的 SendInvoice 方法。Payment 类:付款类属性: payment_method 付款方式date_received 接收日期amount_received 接收金额方法:linkPayment() 付款初始化Se
29、tPaymentStatus() 设置付款修改 Order 类 OrderPament 属性。GetPaymentStatus()取得付款状态,从 Order 类的 OrderPayment 属性取值VerifyCustomerID()验证客户帐号,被 Customer 类的 Paymoney 方法使用AcceptPayment()接受客户付款,方法将修改 Order 类的 OrderPayment 对象三 用 UML 对系统建模1用例包图及用例图(用例建模)买买 买买买买买StandardConfiguration(from 买买) SelfConfiguration(from 买买)Ord
30、er (from 买)Inform WareHouse about Order(from 买)Request Salesperson Contact(from 买)Update Order Status(from 买) Print Invoice(from 买) Verify and Acept Payment(from 买)图 2 网上购物系统用例包图Verify and Acept Payment(from 买)SelfConfiguration(from 买买)StandardConfiguration(from 买买) Order (from 买)WarehouseCustomer R
31、equest Salesperson Contact(from 买)Print Invoice(from 买)Inform WareHouse about Order(from 买)Update Order Status(from 买)Salesperson图 3 网上购物系统用例图2系统用例的活动图及活动文档(活动建模)Modifiy Shoping CarDisplay Computers componentAd to Shoping CarOrderCompute and Show Total Costing TotalCost0 GoNextReturn图 4 StandardConf
32、iguration 的活动图 StandardConfiguration 的文档1. Display Standard ComputerCustomer 点击一个因特网浏览器进入选购标准配置计算机的 Web 页面。该页面显示标准配置的计算机供 Customer 选购。2. Add to Shopping CarCustomer 查询标准计算机配置,将选中的计算机标准配置加入购物车。3. Modify Shopping CarCustomer 对购物车内商品随时进行增减删改。4. Compute and Show Total Costingweb 页面动态显示并计算出 Customer 加入购物
33、车内商品的总价。5. Order如果 Customer 决定定购购物车内商品,点击页面上“下一步”按钮进入定购场景。Display Computers componentModify Shoping Car Ad to Shoping CarComputer and Show Toal Cost Order TotalCost0 图 5 SelfConfiguration 的活动图 SelfConfiguration 的文档1 Display Computers component Customer 点击一个因特网浏览器进入自定义配置计算机部件的Web 页面,该页面显示计算机部件清单及价格。2
34、 Add to Shopping CarCustomer 查询选择计算机部件,将选中的计算机部件加入购物车。3 Modify Shopping CarCustomer 对购物车内商品随时进行增减删改。4 Compute and Show Total Costingweb 页面动态显示并计算出 Customer 加入购物车内商品的总价。5 Order如果 Customer 决定定购购物车内商品,点击页面上“下一步”按钮进入定购场景。Contacting with customerGeting ned Contact CustomerGenerating final order Save to D
35、atabaseModified original order图 6 Request Salesperson Contact 的活动图 Request Salesperson Contact 的文档1Getting need Contact CustomerCustomer 在填写完定单后选择 Contact(或相似命名的)功能来发送消息给 Salesman 要求咨询。2Contacting with customerSalesman 得到请求咨询的讯息,并通过定单上详细联系方式提供Customer 咨询及协商价格的服务。3Modified original orderSalesman 把与 C
36、ustomer 的咨询并协商价格后的结果在 Server 页面上对原定单进行修改。4Generating final order Save to DatabaseSalesman 将最终修改结果生成新定单后存入数据库中。Input and Verify InformationGenerate New OrderNext Verify=true Store Order To DatabaseMail to Customer图 7 Order 的活动图 Order 的文档1 Input and Verify InformationCustomer 录入定单详细信息,验证该定单信息的真实性。2 Ge
37、nerate New Order如果验证得到 Customer 所填信息真实可靠,生成新定单。3 Store Order To Database定单信息被存入数据库中,同时赋予 Customer 和此定单唯一的一个客户账号和一个定单号码。4 Mail to Customer将定单成功被录入数据库的信息反馈给 Customer,并付上生成的客户账号和定单号码以及详细的定单信息。Pay MoneySending eror InformationModify Payment and Order Status OK Update DatabaseChecking Customer ID And Ord
38、er IDAuditing MoneyPaymentCustomer图 8 Verify and Accept Payment 的活动图 Verify and Accept Payment 的文档1 Pay MoneyCustomer 收到定单确认信息后,通过信用卡或支票完成转帐。2 Checking Customer ID And Order ID验证并核实用户帐号及定单号。3 Auditing Money对 Customer 的实际付款金额与定单价格进行核对。4 Sending error Information如 Customer 的实际付款金额与定单价格不等,发送一个发生错误的提示信息
39、给 Customer。5 Modify Payment and Order Status如 Customer 的实际付款金额与定单价格相等,对数据库中的定单状态信息及付款金额信息进行修改。6 Update Database将修改后信息存入数据库中。Geting payment and Order InformationGenerating invoiceSending invoice to Customer图 9 Print Invoice 的活动图 Print Invoice 的文档1 Getting payment and Order InformationSalesman 在 Serve
40、r 页面选择 Invoice(或相似命名的)功能键来取得验证和接收客户付款后的定单详细信息。2 Generating invoiceSalesman 选择 Generating(或相似命名的)功能键来生成并得到发票。 3 Sending invoice to CustomerSalesman 发送发票给 Customer。Sending Information to WareHouseGeting Information From DatabasePrepare Computer Or ComponentSending to CustomerModify Order And Update Da
41、tabaseWareHouseSalesman图 10 Inform WareHouse about Order 的活动图 Inform WareHouse about Order 的文档1 Getting Information From DatabaseSalesman 在 Server 页面选择 Information(或相似命名的)功能键来取得验证和接收客户付款后的定单详细信息。2 Sending Information to WareHouseSalesman 点击 Refer(或相似命名的)功能键来将订购信息提交给Warehouse。3 Prepare Computer Or Co
42、mponentWareHouse 按照定购信息配置计算机及部件。4 Sending to CustomerWareHouse 将计算机及部件发送给 Customer。5 Modify Order And Update DatabaseWareHouse 在发出商品后,修改此时的定单状态并将此状态存入数据库中更新数据库信息。3网上购物系统的类图(类建模)31 系统类包图买买买买买买买买买32 系统实体类关联图33 系统界面类关联图34 付款行为协作类关联图35 购买行为协作类关联图36 送货行为协作类关联图4构造顺序图(交互建模)41 PrintInvoice 的顺序图: Salesperson
43、 : OrderServerWindow : DatBase : Invoice : Customer1: CreateWindow( )3: PrintInvoice( ) 2: GetCompletOrderList( )4: Print( )5: SendInvoice( )42 StandardConfiguration 的顺序图:Customer :StandardComputerWindow :StandardComputer :ShopingListWindow1: CreateWindow( )2: AdToCar( )3: GetStandardComputerInfo( )
44、:MerchandiseList4: AdMerchandise( ) 5: ComputerTotalCost( )6: DisplayTotalCost( )7: GotShopingList( )8: CreateWindow( ) 9: DisplayShopingList( )10: ModifyCar( )1: ModifyMerchndiseList( )12: ComputerTotalCost( )13: DisplayShopingList( )14: GotInputOrderWindow( )43 Order 的顺序图 :InputOrderWindow:Custome
45、r :Order :Payment :Customer :DatBase1: CreateWindow( ) 2: NewOrder( )3: VertifyInputInfomation( )6: EmailCustomer( )5: StoreOrder( )4: SetPaymentStatus( )44 VerifyAndAcceptPayment 的顺序图: Customer : Payment : Order : DataBase : Customer4: SetPaymentStatus( )7: SetOrderStatus( )6: LoadOrder( )8: StoreOrder( )1: PayMoney( )5: LinkCustomer( )2: VerifyCustomerID3: AceptPayment( )45 RequestSalespersonContact 的顺序图: OrderServerWindow : Salesperson : DatBase : Customer : Order1: CreateWindow( ) 2: GetNedContactOrderList( )3: LinkCustomer( )5: ModifyOrder( ) 6: StoreOrder( ) 4: ContactingCustomer( )