UML建模网上购物.docx
《UML建模网上购物.docx》由会员分享,可在线阅读,更多相关《UML建模网上购物.docx(35页珍藏版)》请在冰点文库上搜索。
![UML建模网上购物.docx](https://file1.bingdoc.com/fileroot1/2023-5/29/6e4aa32d-7841-4074-92ad-160b2dc75b79/6e4aa32d-7841-4074-92ad-160b2dc75b791.gif)
UML建模网上购物
2010——2011学年第一学期
信息技术学院
《软件系统建模与UM》综合设计实验
网上购物系统的UML建模
班级学号姓名任课教师
日期2010年12月30日
第1章系统需求2
第2章需求分析3
2.1识别参与者3
2.2识别用例3
2.3用例的事件流描述4
第3章静态结构模型10
3.1定义系统对象10
3.2定义用户界面类10
3.3建立类图11
第4章动态行为模型17
4.1创建系统顺序图(协作图)18
4.2创建系统的状态图22
4.3创建系统的活动图23
第5章物理模型27
5.1创建系统组件图27
5.2创建系统部署图28
第1章系统需求
一个客户通过因特网购买所需要的商品,客户可以在商品列表的Web页面上选择订购商品。
要发出定单,客户必须填上运送和付款信息,可接收的付款方式为信用卡、支票或者其他付款方式,一旦定单被输入,系统向客户发送一个确认e-mail消息,并附上定单的细节,在等待计算机送到的时候,客户可以在任何时候在线查到定单的状态。
后端定单处理包含下面所需的步骤:
验证客户的信任度和付款方式、向仓库请求所订购的商品、打印发票并且请求仓库将商品运送给客户
1.客户使用商品列表的Web页面来查看所需要的商品,商品价格也同时显示出来。
2.客户可以通过留言板向我们提出需要什么样的商品,需要什
么样的服务,对我们提出一些意见和建议。
3.客户可以选择在线订购商品,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。
4.要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡、支票或者其他付款方式)。
5.在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的商品的细节。
6.事务的细节,包括定单号和客户账号,要e-mail给客户,使得客户可以在线查看定单的状态。
7.仓库从销售人员那里获得发票,并给客户运送商品。
第2章需求分析
采用用例驱动的分析方法分析需求的主要任务是识别出系统中的参与者和用例,并建立用例模型。
在本系统中,……
2.1识别参与者
户售库客销仓««_M123
-Customer^
Salespersons
Warehouse*
图1参与者(网上购物)
2.2识别用例
系统总用例图
Salesperson
InformWareHouseaboutOrder
(from送货)
SelfConfiguration
(from自选部件);•
fL・
Standardconfiguration
(from标准产品)
Order
(from购买)
<>
VerifyandAcceptPayment
(from付款)
Customer
UpdateOrderStatus
(from送货)
PrintInvoice
(from付款)
RequestSalespersonContact
(from购买)
Warehouse
2.3用例的事件流描述
Standardconfiguration
该用例允许用户查询选择标准配置计算机,包括价格及部件清单。
Customer
Customer点击一个因特网浏览器进入计算机制造厂商的选购标准配置计算机的Web页面,该页面显示标准配置计算机的价格以及部件清单。
用例开始。
主流:
用户查询标准计算机配置,将选中的计算机标准配置加入
购物车,用户可随时增减购物车内商品,web页面动态对累
积价格进行更新
其他流:
后置条件:
无
如果用例成功,将购物车内已配置计算机型号及数量存入临时数据库。
SelConfiguration
该用例允许用户自定义计算机配置,包括部件清单及总计价格。
Customer
Customer点击一个因特网浏览器进入计算机制造厂商的自定义配置计算机及部件的Web页面,该页面显示计算机部件清单及价格。
用例开始。
主流:
用户查询选择计算机部件,将选中的计算机标准配置加入购物车,用户可随时增减购物车内商品,web页面动态对累
积价格进行更新。
其他流:
后置条件:
无
如果用例成功,将购物车内已配置计算机部件及数量存入临时数据库。
VerifyandAcceptPayment
该用例验证并接受客户付款,并将付款信息通知销售人员
Customer,Salesperson
Customer收到定单确认信息后,通过信用卡或支票完成转帐。
用例开始。
检查用户帐号及付款金额,若金额无误,将付款成功信息通知销售人员。
若金额不足,向用户发送通知。
如果用例成功,将付款成功信息通知销售人员,并将客户
主流:
订购信息及交付金额存入数据库
RequestSalespersonContact
该用例允许Customer请求Salesman在定单真正发出之前与自己联系,解释定单的细节、协商价格等。
Customer,Salesman
Customer需要对定单页面显示已配置计算机及其价格的详细情况咨询。
Customer在填写完定单后选择Contact(或相似命名的)功能来发送消息给Salesman要求咨询,此时该用例开始。
Salesman在专门的服务窗口接收到Customer请求联系的列表并选择到该客户的请求。
Salesman^得到Customer在定单上的联系方式信息。
Salesman按照提供的信息选择方式联系Customer,对定单细节解释,并协商价格。
无
如果用例成功,Salesman#按协商后的配置及价格信息修改原定单,将新的定单信息存入数据库中。
Order
该用例允许Customer输入一份购物定单,该定单包括提供运送和发票地址,以及关于付款的情况。
Customer
Customer点击一个因特网浏览器进入计算机制造厂商的定单输入Web页面,该页面显示已配置计算机及其价格的详细情况。
当Customer在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始。
主流:
系统请求Customer输入购头细节,包括销售人员的名子(如果知道的话)、运送信息(客户的名字和地址)、发票细节(如果与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释。
Customer选择Purchase(或相似命名的)功能来发送定单给制造厂商。
系统给购买定单赋予一个唯一的定单号码和一个客户账号,系统将定单信息存入数据库。
系统将疋单号和客户号与所有疋单细节一起e-mail给
Customer,作为对接收定单的确认。
其他流:
Customer在提供所有要求录入的信息之前,激活Purchase
(或相似命名的)功能,系统显示错误信息,它要求提供所漏掉的信息。
Customer选择Reset(或相似命名的)功能来恢复一个空白的购物表格,系统允许Customer重新输入信息。
后置条件:
如果用例成功,购物定单记录进系统的数据库,否则系统的状态不变。
UpdateOrderStatus
该用例用于描述定单状态(定单交付状态,定单确认状态,付款状态)。
Customer,Salesperson
Customer交付定单,查询定单状态,Salesperson修改定单状态,该用例开始。
Customer填写定单订购商品成功,进入定单交付状态。
Salesman检查定单,发送e-mail给客户,进入定单确认状^态。
Customer付款成功,进入已付款状态。
其他流:
后置条件:
用例:
简述:
参与者:
前提条件:
主流:
其他流:
后置条件:
用例:
简述:
参与者:
前提条件:
主流:
若定单不符合要求,则向用户发送定购失败信息。
若销售人员检查定单有误,则向用户发送定购失败信息。
若用户付款金额不对,则向用户发送付款失败信息。
如果用例成功,则将定单所处状态存入数据库。
PrintInvoice
客户从销售人员处得到发票
CustomerSalesman
验证和接收客户付款成功。
Salesman选择Invoice(或相似命名的)功能键来生成发票,此时该用例开始。
Salesman利用系统从数据库中提取订购信息和收到的付款信息生成发票。
系统将该发票提供给Salesman
Salesman发Email给Customer,并付上发票。
无
如果用例成功,客户将收到发票。
InformWarehouseaboutOrder
在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。
SalesmanWarehouse
验证和接收客户付款成功。
Salesman选择系统提供的订购清单中该客户的订购信息,并点击Refer(或相似命名的)功能键来将订购信息提交给Warehouse时,该用例开始。
Salesman利用系统从数据库中提取该Customer的订单信息和个人资料,生成一份订购信息列表。
系统将该列表提供给Warehouse
Warehouse根据提供的信息配置计算机商品。
其他流:
无
后置条件:
如果用例成功,Warehouse发货给客户,修改定单状态为已送货。
第3章静态结构模型
进一步分析系统需求,发现类以及类之间的关系,确定它们的静态结构和动态行为,是面向对象⑺分析的基本任务。
系统的静态结构模型主要用类图和对象图描述。
3.1定义系统对象
系统对象的识别可以通过寻找系统域⑹描述和需求描述中的名词来进行。
3.2定义用户界面类
通过对系统的不断分析和细化,性。
可识别出下述界面类、类的操作和属
StandardConfiguration
(fom标准产品)
SelfConfiguration
(fom自选部件)
RequestSalespersonContact
(from购买)
Order
(Irom购买)
UpdateOrderStatus
(Irom送货)
VerifyandAcceptPayment
(from付款)
PrintInvoice
(Irom付款)
InformWareHouseaboutOrder
(from送货)
3.3建立类图
识别出了系统中的类后,还要识别出类间的关系,然后就可以建立类图了。
从需求中找出候选实体类:
需
求需求候选实体类
号
1客户使用制造厂商的Web页面来查看所选Customer,择的服务器、台式机或笔记本的标准配置,StandardComputer价钱也同时显示出来。
2客户选择查看配置的细节,也许带有买它的Customer,意愿或建立一个更合适的配置。
每种配置的Component价格在客户要求的情况下可以计算出来。
MerchandiseList
3客户可以选择在线订购计算机,或者也可以Customer,
要求销售人员在定单真正发出之前与自己Computer,
联系,解释定单的细节、协商价格等。
Order,
Salesperson
4要发出定单,客户必须填写在线表格关于运Customer,
送和发票地址以及付款细节(信用卡或支Order,
票)。
Invoice,
Payment
5在客户定单输入到系统之后,销售人员发送Customer,
电子请求给仓库,附上所订购的配置的细Order,
节。
Salesperson,
ConfiguredComputer,MerchandiseList
6把事务的细节,(包括定单号和客户账号)Order,e-mail给客户,使得客户可以在线查看定单Customer,
的状态。
OrderStatus
7仓库从销售人员那里获得发票,并给客户运Invoice,
送计算机。
WareHouse
表1需求到实体类的赋值(网上购物)
Coiiponent
(from实体类包)
'^>item_type:
String
'^ileirLdescr:
String
^GetCon^oneiitInfo()
Component类:
计算机自选部件类
属性:
item_type自选部件型号
item_descr自选部件描述
方法:
GetComponentlnfo()
SelfConfigurationWindow类调用此方法从Component类中得到计算机自选
部件的详细信息。
Customer
(from实体类包)
1i^custoiner^nai]Qe:
Stiing■S^customei^addicss:
String■J^phoiienumber:
Siring"S<>ernail_address:
String
^EnnailCustoniei'O
%inkCustoiiieiO^Sendlnvoice()^PayMoneyO^ContactingCustomerO
Customer类:
客户类属性:
customername
客户名字
customeraddress客户地址
phone_number
客户电话号码
email_address方法:
EmailCustomer()息通知给客户
客户电子邮件
InputOrderWindow调用此方法将定单成功存入数据库信
LinkCustomer()
Salesma调用此方法联系客户
ContactingCustomer()调用此方法Customer完成与Salesman的接触活动。
PayMoney()调用此方法Customer完成付款活动
Sendlnvoice()使用PrintInvoice()生成的发票发送给Customer。
Invoice
(from实体类包}
'^invoice:
String
'^invoice_date:
Date
'S(>invoice_total:
Currency
*Print()
Invoice类:
发票类
属性:
invoice_number发票号
invoice_date发票打印日期
invoice_total已付款金额
方法:
Print()调用OrderServerWindow类的Printinvoice()产生的发票打印出来。
MerchandiseList
(iom实体类包)
^TotalCost
•AddMerehandisef)^DeleteMerchandiseQ^ConputerFotalCost()^ModiiyMerehndiseList0
MerchandiseList:
商品列表类
属性:
TotalCost商品总价格
方法:
AddMerchandise()将AddToCar()方法中加入购物车的商品增加到商品列表。
DeleteMerchandise()删除列表中某商品
ComputerTotalCost()调用此方法计算商品列表中商品的总价
ModifyMerchndiseLise()修改商品列表的方法,有修改商品数量,删除商品
等方法
Order
(torn实体类包)
borderdate:
Daterder_number:
String
必order_status:
String^ordertotal:
Currency^>saksperson_name:
Siringaddress:
String■^>order_paynKnt:
Paymciit
•denerateCuslomerAndOrderlDO^GetOrderO
^NewOrdetf)^ModifyOrder()^SetOrdciStatusO^GetOrderStatusO
Order类:
定单类
属性:
order_date定单日期
order_number定单号
order_status定单状态
order_total定单总价
salesperson_name售货人员姓名
ship_address发送地址
order_payment付款方式
方法:
CenerateCustomerAndOrderlD()产生客户帐号和定单流水号
GetOrder()取得当前定单信息
NewOrder()生成新定单对象
ModifyOrder()修改/删除当前定单,该方法由SelfConfigurationWindow或
者由用户使用StandardComputerWindow类调用。
SetOrderStatus()设置定单状态,由
OrderServerWindow类的ModifyOrderStatus方法调用
GetOrderStatus()取得定单状态,它调用DateBase中的LoadOrder()方法
数据库类
DataBase
(km数据库类包)
^LoadOrderf)
^StoreOrder()
^GetNeedContactOideiListO^GetPaidOrderList0^(jetConpleteOrderList()
DataBase类:
数据库类
方法:
LoadOrder()从数据库提取定单,被Order类中的方法调用
StoreOrder()将定单存入数据库中,被Order类中的方法调用
GetNeedContactOrderList()从数据库提取需沟通的客户定单列表。
GetPaidOrderList()从数据库中提取已付款的定单列表,被Payment类调用
GetCompleteOrderList()从数据库中提取已发送的定单列表,被Invoice调
用
边界类
«Abstract»MainWindow(irom边界包)
^CreateWindow()
^CloseWindow()
MainWindow类:
功能:
应用程序中的所有窗口类均由此类派生出来
方法:
CreateWindow()创建窗口。
CloseWindow()关闭窗口
控制类
«CEent»QueiyStatusWindow(irom控制类包)
^GetCustmerID()^GetOrderlDf)^QueiyStatus0^DisplayStatus0
QueryStatusWindow类:
功能:
创建并显示用户查询窗口。
方法:
GetCustmerlD()取得用户输入帐号
GetOrderlD()取得定单流水号。
QueryStatus()客户点查询按钮触发它调用Order类中的GetOrderStatus()方法取得定单状态。
DisplayStatus()显示定单状态。
Payment
(fom控制类包)
'i0paynientmethod:
String'S(>date_received:
DateAmount,received:
Currency
•linkPaymen〔0
^SetPaymentStatusO^(ictPaymentStatus()^VerifyCustomerlDO^AccepiPayment()
Payment类:
付款类
属性:
payment_method付款方式
date_received接收日期amount_received接收金额方法:
linkPayment()付款初始化
SetPaymentStatus()设置付款修改Order类OrderPament属性。
GetPaymentStatus()取得付款状态,从Order类的OrderPayment属性取值VerifyCustomerID()验证客户帐号,被Customer类的Paymoney方法使用AcceptPayment()接受客户付款,方法将修改Order类的OrderPayment对
象
第4章动态行为模型
系统的动态行为模型由交互作用图(时序图和协作图)、状态图、活动
图描述
4.1创建系统顺序图(协作图)
描述系统用例的主要场景的顺序图(协作图)如下所示
4.1.1StandardConfiguration的协作图
:
StandardComputer
—評
:
StandardComputerWindow
十
1:
CreateWindow()2:
AddToCar()7:
GotoShoppingList()
3:
GetStandardComputerlnfo()
:
Customer
6:
DisplayTotalCost()
10:
ModifyCar()
14:
GotoInputOrderWindow()
8:
CreateWindow()
[4AddMerchandise()
9:
DisplayShoppingList()
5:
ComputerTotalCost()
12:
ComputerTotalCost()
―>
:
ShoppingListWindow
:
MerchandiseList
——
11:
ModifyMerchndiseList()
13:
DisplayShoppingList()
<1//
4.1.2PrintInvoice的协作图
1:
CreateWindow()
3:
Printlnvoice()
2:
GetCompleteOrderList()
:
Salesperson
4:
Print()
5:
Sendlnvoice()
:
Invoice
:
Customer
4.1.3InformWareHouseAboutOrder的协作图
1:
CreateWindow()
2:
SendToWarehouse()
4.1.4Order的协作图
—>
4—
:
InputOrderWindow
■-
:
Order
:
Customer
5:
StoreOrder()
6:
EmailCustomer()
4:
SetPaymentStatus()
:
Customer
:
DataBase
4.1.5VerifyAndAcceptPayment的协作图
4:
SetPaymentStatus()
——>
:
Payment
3:
AcceptPayment()
5:
LinkCustomer()
6:
LoadOrder()
:
DataBase
7:
SetOrderStatus()
:
Customer
2:
VerifyCustomerlD
8:
StoreOrder