订单管理系统的UML架构模型.docx
《订单管理系统的UML架构模型.docx》由会员分享,可在线阅读,更多相关《订单管理系统的UML架构模型.docx(32页珍藏版)》请在冰点文库上搜索。
订单管理系统的UML架构模型
需求规格说明
1.系统说明
1.1需求描述:
系统需求在工业生产领域如汽车装配等行业,因为装配过程繁琐,订单的审批流程复杂,造成生产效率低,管理难的局面。
订单管理系统实现了工业生产领域的订单审批流程自动化。
该系统实现了订单录入,订单审批,订单更改功能,以及为了实现这些功能而必须的审批流程设置,组织结构管理(包括在RTX上实现即时提醒)的功能。
在系统中,系统管理员设置好角色与权限,并设置好审批流程后,由不同的角色登陆系统对订单进行管理。
如订单录入人录入订单后,选择某个审批流程。
审批流程中的审批人会收到提醒后进行订单的审批,如果通过,则发给下一审批人;如不通过,则退回订单录入人进行更改。
订单的录入人也可以先停止订单审批流程,自发的进行订单的更改。
1.2资源
主要资源:
其他资源:
1.3活动列表
对现实系统的业务描述
2.某系统人机界面描述用户(系统外部)和系统之间的界面
普通用户操作系统功能界面
业务人员(系统内部)与系统之间的界面
谨对拥有口令的业务人员开放。
允许业务人员查看相关信息。
3.信息资源列表
标准配置计算机信息
为需要此类信息的用户提供相关的信息资源。
自定义配置计算机信息
为需要此类信息的用户提供相关的信息资源。
定单信息
要购买产品的用户输入相关信息,提交系统。
购物信息
为用户选购的产品作出记录并估计价格,为用户提供参考。
付款信息
用户输入相关信息,销售人员验证相关信息。
需求分析过程
1.某系统应用中的参与者
女口:
1.客户Customer
2.销售人员Salesperson
3.仓库Warehouse
Customer
客户
Salesperson
销售人员
Warehouse
仓库
图1参与者(某系统)
2.系统中的用例及用例文档
2.1用例,如:
StandardConfiguration
(from标准产品)
SelfConfiguration
(from自选部件)
RequestSalespersonContact
(from购买)
Order
(from购买)
UpdateOrderStatus
(from送货)
VerifyandAcceptPayment
(fom付款)
PrintInvoice
(from付款)
InformWareHouseaboutOrder
(from送货)
2.2总用例图,如:
(fromUC1_审批流程设定
(fromActors)
订单录入人
(fromActors)
订单录入
(fromU2_订单录入)
<>
订单更改
(fromUC5_订单更改)
订单中止
(fromUC4_订单中止)
审批人
(fromActors)
订单审批
(fromUC3_订单审批)
厂、
技术部审批人
(fromActors)
某系统用例图
2.3用例文档:
如
用例:
简述:
参与者:
前提条件:
VerifyandAcceptPayment
该用例验证并接受客户付款,并将付款信息通知销售人员。
Customer,Salesperson
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实体类
从需求中找出候选实体类:
・rdMi■■■■■■■■■・■■・・av・tm・■:
■・・・n■■■壬■■■・_■av・・w■
需i
求1号!
ti
11
需求
11
11
11
11
i候选实体类i
111
ii
ri
s;a1
M:
:
v!
ii
Li-i
2i
ai
■■
11
■ii
■■
!
i
ii
-■
31
11
11
11
;
hi
:
:
VI
■1
11
41
要发出定单,客户必须填写在线表格关于运
Customer,
■■
■1
送和发票地址以及付款细节(信用卡或支
Order,
票)
票丿。
Invoice.
Payment
5b
在客户定单输入到系统之后,销售人员发送
Customer,
电子请求给仓库,附上所订购的配置的细
Order,
节。
1
Salesperson,
■i
--
iI
ConfiguredComputer,
F™*™
H1
:
:
MerchandiseList
6
t
J
I
■i
把事务的细节,(包括定单号和客户账号)e-mail给客户,使得客户可以在线查看定单的状态。
Order,I
I
Customer,
OrderStatus
厂
I
1!
F
仓库从销售人员那里获得发票,并给客户运送计算机。
Invoice.WareHouse
表1需求到实体类的赋值(某系统)
Customer类:
客户类
Customer
(ironi实体类包)
v^cuslonrrname:
Siring'Jtfcustoiwraddress:
StringS^phonenumber:
SiringIJ^emailaddivss:
String
•EmailCLLSloiitrO
♦LinkCustomerf)*Send.Invoice()^PayMoneyO^CbntactingCustomerQ
属性:
customer,namecustomer_addressphone_number
email_address
客户名字
客户地址客户电话号码
客户电子邮件
方法:
EmailCustomer()InputOrderWindow
调用此方法将定单成功存入数据库信息通知给客户
LinkCustomer()Salesma调用此方法
联系客户
ContactingCustomer()调用此方法
Customer完成与Salesman的接触活动。
PayMoney()调用此方法Customer完成付款活动
Sendlnvoice()使用Printinvoice()生成的发票发送给Customer。
Invoice
(from宾体类包)^invoicenunber:
String^invoicedate:
Date直invoiw.total:
CunEncy
♦PiintO
invoice类:
发票类属性:
invoice_number发票号
invoice_date发票打印日期
invoice_total已付款金额
方法:
Print()调用OrderServerWindow类的Printinvoice()产生的发票打印出来。
Order
(fwn实悴类包}
borderd^Le:
Dale'reordernumber:
String^S^ordcrstatus:
Strtng■gtxjrdcrtotal:
CunTency^iakspcfsonname:
Siting3$hrpaddress:
String
Order类:
定单类
属性:
order_date
定单日期
WareHouse(tom实体类包)
•hIakcUpConputerOrColuponcnt()*SendToCustomer()
3.2数据库类
order_numberorder_statusorder_totalsalesperson_nameship_addressorder_payment
定单号
定单状态
定单总价售货人员姓名发送地址
付款方式
方法:
CenerateCustomerAndOrderlD()产生
客户帐号和定单流水号
GetOrder()取得当前定单信息
NewOrder()生成新定单对象ModifyOrder()修改/删除当前定单,该
方法由SelfConfigurationWindow或者由用户使用StandardComputerWindow类调用。
SetOrderStatus()设置定单状态,由OrderServerWindow类的ModifyOrderStatus方法调用
GetOrderStatus()取得定单状态,它调用DateBase中的LoadOrder()方法
WareHouse类:
仓库类
方法:
MakeUpComputerOrComponent()
DataBase类调用该方法将客户订购计算机及组件的详细情况递交给仓库。
SendToCustomer()仓库调用该方法获得顾客信息完成发送商品任务。
DataBase
数皓库类包)
*LoadOrdcr()♦Store()nler()^GutNeedContactOrderListO•GetPnid<>rderListO^(jetCoinpleleOrderlast()
DataBase类:
数据库类
方法:
LoadOrder()从数据库提取定单,
被Order类中的方法调用
StoreOrder()将定单存入数据库中,
被Order类中的方法调用
GetNeedContactOrderList()从数据库提取需沟通的客户定单列表。
GetPaidOrderList()从数据库中提取已付款的定单列表,被Payment类调用
GetCompleteOrderList()从数据库中提取已发送的定单列表,被Invoice调用
3.3边界类
«Abstract»
MainWindow
(from边畀包)
•CtrHttAYindo\v()
^CHoscWindowQ
MainWindow类:
功能:
应用程序中的所有窗口类均由此类派生出来
方法:
CreateWindow()创建窗口。
CloseWindow()关闭窗口。
«Client»
ShoppingLis(Window
(tom边界包)
•DisplayShoppingLfe10♦ModifyCarO
mitoInput()rderVrindow()^DisplayTotalCostQ
ShoppingListWindow类:
功能:
创建并显示购物清单窗口并可修改购物清单。
方法:
DisplayShoppingList()显示商品购物清单,它将调用MerchandiseList类中的属性,获得商品清单。
ModifyCar()修改购物车中的商品,
它调用MerchandiseList类中的方法ModifyMerchndiseList()更新商品列表。
DisplayTotalCost()显示当前选购的商品总值,该值由merchandiselist类中的ComputeTotalCost()方法计算得到。
GotoInputOrderWindow()进入到
定单输入窗口。
3.4控制类
«Client»
QueryStatusWindow
(fem控制类包)
^GetCustirierID()^GctOrderlDO•QuerySlfUug♦DisplaySlatus()
QueryStatusWindow类:
功能:
创建并显示用户查询窗口。
方法:
GetCustmerlD()取得用户输入帐号GetOrderlD()取得定单流水号。
QueryStatus()客户点查询按钮触发它调用Order类中的GetOrderStatus()方法取得定单状态。
DisplayStatus()显示定单状态。
«Client»
InputOnlerWindow
(ivm控制类包)
•Vbrtifyhiputlnfomation()^GencratcOrder()
InputOrderWindow类:
功能:
输入定单窗口。
方法:
VertifyInputlnformation()验证用户输入信息
GenerateOrder()调用Order类中的NewOrder()方法
«Servcr»
OrderServerWliiduw
(Ihw控制类包)
^ModifyOrdcrSlatus()endIoWarehouse()♦PriiillnvoiceO
OrderServerWindow类:
功能:
创建并显示有销售人员使用的窗口,实现修
改定单状态,通知仓库,打印发票等功能。
方法:
ModifyOrderStatus()销售人员点击修正状态按钮时触发,它调用Order类的SetOrderStatus()方法修改定单状态。
SendToWarehouse()销售人员点击通知仓库按钮时触发,它调用DateBase中的GetPaidOrderList()方法,取得以付款的定单列表。
PrintInvoice()销售人员点击打印发票按钮时触发。
它调用Invoice类的Print的方法,并调用Customer类中的SendInvoice方法。
Payment
(珀m控制类包)
^payiuent_meth0d:
String■J^daterecewed:
Date^atnountreceived:
Currency
♦linkPaymcntO
^SetPaynieTitStatusO
^GetPaynienlStalusO^VcrifyCustomerlDO
Payment类:
付款类
属性:
payment_method付款方式
date_received接收日期
amount_received接收金额
方法:
linkPayment()付款初始化
SetPaymentStatus()设置付款修改Order类OrderPament属性。
GetPaymentStatus()取得付款状态,从Order类的OrderPayment属性取值
VerifyCustomerlD()验证客户帐号,被Customer类的Paymoney方法使用
AcceptPayment()接受客户付款,方法将修改Order类的OrderPayment对象
—三
用UM%系统建模
1.用例包图及用例图(用例建模)
ZL
1,
标准产品
f—
自选部件
StandardConfiguration
SelfConfiguration
(from自选部件)
(from标准产品)
购买
Order
RequestSalespersonContact
(from购买)
(from购买)
1
送货
1_■
付款
(J
InformWareHouseaboutOrder
UpdateOrderStatus
PrintInvoice
VerifyandAcceptPayment
(from送货)
(from送货)
(from付款)
(from付款)
图2某系统用例包图
SelfConfiguration
(from自选部件)
Order
(from购买)
PrintInvoice
b(『om付款)
VerifyandAcceptPayment
(f-om付款)
StandardConfiguration
(from标准产品)
Customer
<>
RequestSalespersonContact
(from购买)
Warehouse
InformWareHouseaboutOrder
(『om送货)
UpdateOrderStatus
(fom送货)
Salesperson
图3某系统用例图
2.系统用例的活动图及活动文档(活动建模)
填写订单信
息
点击添加订[必填域为空或有格式错误的输入]
单”按钮丿
订单信息保存至系统
[经验证输入信息无错误]
I
图6RequestSalespersonContac的活动图
RequestSalespersonContac的文档
1.GettingneedContactCustomer
Customer在填写完定单后选择Contact(或相似命名的)功能来发送消息给Salesman要求咨询。
2.Contactingwithcustomer
Salesman得到请求咨询的讯息,并通过定单上详细联系方式提供Customer咨询及协商价格的服务。
3.Modifiedoriginalorder
Salesman把与Customer的咨询并协商价格后的结果在Server页面上对原定单进行修改。
4.GeneratingfinalorderSavetoDatabase
Salesman^将最终修改结果生成新定单后存入数据库中
Order的文档
1.InputandVerifyInformation
Customer录入定单详细信息,验证该定单信息的真实性。
2.GenerateNewOrder
如果验证得到Customer所填信息真实可靠,生成新定单。
3.StoreOrderToDatabase
定单信息被存入数据库中,同时赋予Customer和此定单唯一的一个
客户账号和一个定单号码。
4.MailtoCustomer
将定单成功被录入数据库的信息反馈给Customer,并付上生成的客
户账号和定单号码以及详细的定单信息。
PayMoney
<
CheckingCustomerIDAndOrderID
图8VerifyandAcceptPayment的活动图
Customer
Payment
SendingerrorInformation
ModifyPaymentandOrderStatus
VUpdateDatabase
V
Auditing
Money
[OK]
VerifyandAcceptPayment的文档
1.PayMoney
Customer收到定单确认信息后,通过信用卡或支票完成转帐。
2.CheckingCustomerIDAndOrderID
验证并核实用户帐号及定单号。
3.AuditingMoney
对Customer的实际付款金额与定单价格进行核对。
4.SendingerrorInformation
如Customer的实际付款金额与定单价格不等,发送一个发生错误的提示信息给Customer。
5.ModifyPaymentandOrderStatus
如Customer的实际付款金额与定单价格相等,对数据库中的定单状态信息及付款金额信息进行修改。
6.UpdateDatabase
将修改后信息存入数据库中
Generating
invoice
GettingpaymentandOrderInformation
Sendinginvoiceto
Customer
图9PrintInvoice的活动图
PrintInvoice的文档
1.GettingpaymentandOrderInformation
Salesman在Server页面选择Invoice(或相似命名的)功能键来取得验证和接收客户付款后的定单详细信息。
2.Generatinginvoice
Salesman选择Generating(或相似命名的)功能键来生成并得到发票。
3.SendinginvoicetoCustomer
Salesman发