1、面向对象技术与UML课程设计网上购物系统 面向对象的可视化建模(UML&Rational Rose)指导教师:王宇颖设 计 者: 赵 睿谢 伟 民董 翼 枫哈尔滨工业大学软件学院完毕日期:2023-2-19目 录一 需求规格说明 21. 系统说明 22. 网上购物系统人机界面描述 23. 信息资源列表 3二 需求分析过程 41. 网上购物应用中的参与者 42. 系统中的用例及用例文档 43. 系统中的类 8三 用UML对系统建模 161. 用例包图及用例图(用例建模) 162. 系统用例的活动图及活动文档(活动建模) 173. 网上购物系统的类图(类建模) 234. 构造顺序图(交互建模) 2
2、75. 构造状态图(状态图建模) 316. 构造协作图 327. 构件图 358. 部署图 36说明 37结束语 38一 需求规格说明1系统说明11需求描述:n 一个客户通过因特网购买所需要的商品,客户可以在商品列表的Web页面上选择订购商品。 n 要发出定单,客户必须填上运送和付款信息,可接受的付款方式为信用卡、支票或者其他付款方式,一旦定单被输入,系统向客户发送一个确认e-mail消息,并附上定单的细节,在等待计算机送到的时候,客户可以在任何时候在线查到定单的状态。n 后端定单解决包含下面所需的环节:验证客户的信任度和付款方式、向仓库请求所订购的商品、打印发票并且请求仓库将商品运送给客户。
3、12资源 本购物网站所提供的一些平常起居生活用品。13活动列表1. 客户使用商品列表的Web页面来查看所需要的商品,商品价格也同时显示出来。2. 客户可以通过留言板向我们提出需要什么样的商品,需要什么样的服务,对我们提出一些意见和建议。3. 客户可以选择在线订购商品,或者也可以规定销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。4. 要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡、支票或者其他付款方式)。5. 在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的商品的细节。6. 事务的细节,涉及定单号和客户账号,要e-mail给客户,使得
4、客户可以在线查看定单的状态。7. 仓库从销售人员那里获得发票,并给客户运送商品。2网上购物系统人机界面描述l 用户和系统之间的界面对所有的顾客都开放。允许用户搜索当前在线产品信息。允许用户输入定单信息或汇款信息等用户的个人资料。l 销售人员与系统之间的界面谨对拥有口令的销售人员开放。允许销售人员查看定单信息验证用户付款金额等行为。3信息资源列表n 基本商品信息为需要此类商品的用户提供相关的信息资源。n 自定义购买商品信息建立一个留言板为需要此类信息的用户提供相关的信息征询。n 定单信息要购买产品的用户输入相关信息,提交系统。n 购物信息为用户选购的产品作出记录并估计价格,为用户提供参考。n 付
5、款信息用户输入相关信息,销售人员验证相关信息。二 需求分析过程 1网上购物应用中的参与者 1.客户-Customer2.销售人员-Salesperson3.仓库-Warehouse图1 参与者(网上购物)Customer 客户Salesperson 销售人员Warehouse 仓库2系统中的用例及用例文档21用例22总用例图网上购物系统用例图23用例文档:用 例: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需要对定单页面显示已配置计算机及其价格的具体情况征询。 Customer 在填写完定单后选择Contact(或相似命名的)功能来发送消息给Salesman规定征询,此时该用例开始。主 流: Salesman在专门的服务窗口接受到Customer请求联系的列表并选择到该客户的请求。Salesman得到Custome
9、r在定单上的联系方式信息。 Salesman按照提供的信息选择方式联系Customer,对定单细节解释,并协商价格。其 他 流: 无后置条件:假如用例成功,Salesman将按协商后的配置及价格信息修改原定单,将新的定单信息存入数据库中。用 例:Order简 述:该用例允许Customer输入一份购物定单,该定单涉及提供运送和发票地址,以及关于付款的情况。参 与 者:Customer前提条件: Customer点击一个因特网浏览器进入计算机制造厂商的定单输入Web页面,该页面显示已配置计算机及其价格的具体情况。 当Customer 在定单信息已经显示在屏幕上时选择Continue(或相似命名的
10、)功能键来拟定订购所配置的计算机时,该用例开始。主 流: 系统请求Customer输入购买细节,涉及销售人员的名字(假如知道的话)、运送信息(客户的名字和地址)、发票细节(假如与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释。 Customer选择Purchase(或相似命名的)功能来发送定单给制造厂商。 系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库。 系统将定单号和客户号与所有定单细节一起 e-mail给Customer,作为对接受定单的确认。其 他 流: Customer在提供所有规定录入的信息之前,激活Purchase(或相似命名的)功能,系
11、统显示错误信息,它规定提供所漏掉的信息。 Customer选择Reset(或相似命名的)功能来恢复一个空白的购物表格,系统允许Customer 重新输入信息。后置条件:假如用例成功,购物定单记录进系统的数据库,否则系统的状态不变。用 例:Update Order Status简 述:该用例用于描述定单状态(定单交付状态,定单确认状态,付款状态)。参 与 者:Customer, Salesperson前提条件: Customer交付定单,查询定单状态,Salesperson修改定单状态,该用例开始。主 流: Customer填写定单订购商品成功,进入定单交付状态。 Salesman检查定单,发送
12、e-mail给客户,进入定单确认状态。 Customer付款成功,进入已付款状态。其 他 流: 若定单不符合规定,则向用户发送定购失败信息。 若销售人员检查定单有误,则向用户发送定购失败信息。 若用户付款金额不对,则向用户发送付款失败信息。后置条件:假如用例成功,则将定单所处状态存入数据库。用 例:Print Invoice简 述:客户从销售人员处得到发票参 与 者:Customer Salesman前提条件: 验证和接受客户付款成功。Salesman选择 Invoice(或相似命名的)功能键来生成发票,此时该用例开始。主 流: Salesman运用系统从数据库中提取订购信息和收到的付款信息生
13、成发票。 系统将该发票提供应Salesman。 Salesman发Email给Customer ,并付上发票。其 他 流: 无后置条件:假如用例成功,客户将收到发票。 用 例:Inform Warehouse about Order简 述:在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。参 与 者:Salesman Warehouse前提条件: 验证和接受客户付款成功。Salesman选择系统提供的订购清单中该客户的订购信息,并点击Refer(或相似命名的)功能键来将订购信息提交给Warehouse时,该用例开始。主 流: Salesman运用系统从数据库中提取该
14、Customer的订单信息和个人资料,生成一份订购信息列表。 系统将该列表提供应Warehouse。 Warehouse根据提供的信息配置计算机商品。其 他 流: 无后置条件:假如用例成功,Warehouse发货给客户 ,修改定单状态为已送货。3系统中的类31实体类 从需求中找出候选实体类:需求号需求候选实体类1客户使用制造厂商的Web页面来查看所选择的服务器、台式机或笔记本的标准配置,价钱也同时显示出来。Customer,Standard Computer2客户选择查看配置的细节,也许带有买它的意愿或建立一个更合适的配置。每种配置的价格在客户规定的情况下可以计算出来。Customer,Com
15、ponentMerchandiseList3客户可以选择在线订购计算机,或者也可以规定销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。Customer,Computer, Order, Salesperson4要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。Customer,Order,Invoice,Payment5在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。Customer,Order,Salesperson,Configured Computer,MerchandiseList6把事务的细节,(涉及定单号
16、和客户账号)e-mail给客户,使得客户可以在线查看定单的状态。Order,Customer,Order Status7仓库从销售人员那里获得发票,并给客户运送计算机。Invoice,Ware House表1 需求到实体类的赋值(网上购物) Component类:计算机自选部件类 属性: item_type 自选部件型号 item_descr 自选部件描述 方法: GetComponentInfo() SelfConfigurationWindow类调用此方 法从Component类中得到计算机自选部件的 具体信息。 Customer类:客户类 属性:customer_name 客户名字 cu
17、stomer_address 客户地址 phone_number 客户电话号码 email_address 客户电子邮件 方法:EmailCustomer() InputOrderWindow 调用此方法将定单成功存入数据库信息告知 给客户 LinkCustomer() Salesma调用此方法 联系客户 ContactingCustomer() 调用此方法 Customer完毕与Salesman的接触活动。 PayMoney() 调用此方法Customer 完毕付款活动 SendInvoice() 使用PrintInvoice()生成 的发票发送给Customer。 Invoice类:发票类
18、 属性:invoice_number 发票号 invoice_date 发票打印日期 invoice_total 已付款金额 方法:Print() 调用OrderServerWindow类的 PrintInvoice()产生的发票打印出来。 MerchandiseList:商品列表类 属性:TotalCost 商品总价格 方法:AddMerchandise() 将AddToCar()方法 中加入购物车的商品增长到商品列表。 DeleteMerchandise()删除列表中某商品 ComputerTotalCost() 调用此方法计算商品列表中商品的总价 ModifyMerchndiseLise
19、() 修改商品列表的方法,有修改商品数量,删除商品等方法 Order类:定单类 属性:order_date 定单日期 order_number 定单号 order_status 定单状态 order_total 定单总价 salesperson_name 售货人员姓名 ship_address 发送地址 order_payment 付款方式 方法:CenerateCustomerAndOrderID() 产生客户帐号和定单流水号GetOrder()取得当前定单信息NewOrder()生成新定单对象ModifyOrder() 修改/删除当前定单,该方法由SelfConfigurationWind
20、ow或者由用户使用StandardComputerWindow类调用。SetOrderStatus() 设立定单状态,由OrderServerWindow类的ModifyOrderStatus方法调用GetOrderStatus() 取得定单状态,它调用DateBase中的LoadOrder()方法 WareHouse类:仓库类 方法:MakeUpComputerOrComponent() DataBase类调用该方法将客户订购 计算机及组件的具体情况递交给仓库。 SendToCustomer() 仓库调用该方法获得顾客信息完毕发送商品任务。 StandardComputer类:标准配置计算机
21、 方法:GetStandardComputerInfo() StandardComputerWindow类调用此方 法从StandardComputer类中得到标准配置的计算机的具体信息。32数据库类DataBase类:数据库类方法:LoadOrder()从数据库提取定单,被Order类中的方法调用StoreOrder()将定单存入数据库中,被Order类中的方法调用GetNeedContactOrderList()从数据库提取需沟通的客户定单列表。GetPaidOrderList()从数据库中提取已付款的定单列表,被Payment类调用GetCompleteOrderList()从数据库中提
22、取已发送的定单列表,被Invoice调用33边界类MainWindow类:功能:应用程序中的所有窗口类均由此类派生出来方法:CreateWindow() 创建窗口。CloseWindow() 关闭窗口。SelfConfigurationWindow类:功能:产生用户自选部件窗口。方法:AddToCar() 用户将选中商品添到购物车,它调用StandardComputer类中的方法取得商品信息,将其存储到MerchandiseList类的属性中。DisplayTotalCost() 显示当前选购的商品总值,该值由merchandiselist类中的ComputeTotalCost()方法计算得到
23、。GotoShoppingList() 显示购物清单窗口。NextPage() 显示下一页商品。StandardComputerWindow类:功能:产生用户自选部件窗口。方法:AddToCar() 用户将选中商品添到购物车,它调用StandardComputer类中的方法取得商品信息,将其存储到MerchandiseList类的属性中。DisplayTotalCost() 显示当前选购的商品总值,该值由merchandiselist类中的ComputeTotalCost()方法计算得到。GotoShoppingList() 显示购物清单窗口。NextPage() 显示下一页商品。Shoppi
24、ngListWindow类:功能:创建并显示购物清单窗口并可修改购物清单。方法:DisplayShoppingList() 显示商品购物清单,它将调用MerchandiseList类中的属性,获得商品清单。ModifyCar() 修改购物车中的商品,它调用MerchandiseList类中的方法ModifyMerchndiseList()更新商品列表。DisplayTotalCost() 显示当前选购的商品总值,该值由merchandiselist类中的ComputeTotalCost()方法计算得到。GotoInputOrderWindow() 进入到定单输入窗口。34控制类QuerySta
25、tusWindow类:功能:创建并显示用户查询窗口。方法:GetCustmerID()取得用户输入帐号GetOrderID()取得定单流水号。QueryStatus()客户点查询按钮触发它调用Order类中的GetOrderStatus()方法取得定单状态。DisplayStatus()显示定单状态。InputOrderWindow类:功能:输入定单窗口。方法:VertifyInputInformation() 验证用户输入信息GenerateOrder() 调用Order类中的NewOrder()方法OrderServerWindow类:功能:创建并显示有销售人员使用的窗口,实现修改定单状态
26、,告知仓库,打印发票等功能。方法:ModifyOrderStatus() 销售人员点击修正状态按钮时触发,它调用Order类的SetOrderStatus()方法修改定单状态。SendToWarehouse() 销售人员点击告知仓库按钮时触发,它调用DateBase中的GetPaidOrderList( )方法,取得以付款的定单列表。PrintInvoice() 销售人员点击打印发票按钮时触发。它调用Invoice类的Print的方法,并调用Customer类中的SendInvoice方法。Payment类:付款类属性:payment_method 付款方式date_received 接受日期
27、 amount_received 接受金额方法:linkPayment() 付款初始化 SetPaymentStatus() 设立付款修改Order类OrderPament属性。 GetPaymentStatus()取得付款状态,从Order类的OrderPayment属性取值VerifyCustomerID()验证客户帐号,被Customer类的Paymoney方法使用AcceptPayment()接受客户付款,方法将修改Order类的OrderPayment对象三 用UML对系统建模1用例包图及用例图(用例建模) 图2 网上购物系统用例包图图3 网上购物系统用例图2系统用例的活动图及活动文
28、档(活动建模)图4 StandardConfiguration的活动图n StandardConfiguration的文档1. Display Standard Computer Customer点击一个因特网浏览器进入选购标准配置计算机的Web页面。该页面显示标准配置的计算机供Customer选购。2. Add to Shopping Car Customer查询标准计算机配置,将选中的计算机标准配置加入购物车。3. Modify Shopping CarCustomer对购物车内商品随时进行增减删改。4. Compute and Show Total Costingweb页面动态显示并计算
29、出Customer加入购物车内商品的总价。5. Order假如Customer决定定购购物车内商品,点击页面上“下一步”按钮进入定购场景。图5 SelfConfiguration的活动图n SelfConfiguration的文档1 Display Computers component Customer点击一个因特网浏览器进入自定义配置计算机部件的Web页面,该页面显示计算机部件清单及价格。2 Add to Shopping CarCustomer查询选择计算机部件,将选中的计算机部件加入购物车。3 Modify Shopping CarCustomer对购物车内商品随时进行增减删改。4 C
30、ompute and Show Total Costingweb页面动态显示并计算出Customer加入购物车内商品的总价。5 Order假如Customer决定定购购物车内商品,点击页面上“下一步”按钮进入定购场景。图6 Request Salesperson Contact的活动图n Request Salesperson Contact的文档1 Getting need Contact CustomerCustomer 在填写完定单后选择Contact(或相似命名的)功能来发送消息给Salesman规定征询。2 Contacting with customerSalesman 得到请求征询的讯息,并通过定单上具体联系方式提供Customer征询及协商价格的服务。3 Modified original orderSalesman把与Customer的征询并协商价格后的结果在Server页面上对原定单进行修改。4 Generating final order Save to DatabaseSalesman将最终修改结果生成新定单后存入数据库中。图7 Order的活动图n Order的文档1 Input and Verify InformationCustomer录入定单具体信息,验证该定单信息的真实