宠物商店 UML 设计
一、 系统概述
宠物商店是一个在线宠物购物系统。它提供一个网站和客户进行交互的平台。客户可以
在上面浏览和选择自己喜欢的宠物,提交给系统,系统接收到客户的订单同志供应商给客户
送货。
二、 系统需求分析
1、系统需求
(1)客户可以在上面浏览和选择自己喜欢的宠物。
(2)系统管理员可以确认客户购买订单、管理系统财务数据。
(3)仓库工人可以打包和分发订单。
2、满足上述需求的功能划分
说明
功能
浏览商品
类别浏览、详细商品信息、库存等
客户账户查询
账户的创建、登录、维护
购物功能
订单查询
管理订单
交易收款
送货管理
财务管理
放入购物篮、计算总价、下订单等
历史订单信息查询等
接受或拒绝顾客提交的订单
根据订单以及客户信用卡信息与信用卡中心交易,完成收款
仓库管理员根据订单,包装宠物,并联系送货公司派送此订单
对销售情况进行统计分析,形成数据报表
三、UML 用例图描述需求分析
1. 找出系统的 Actor
顾客
仓库工人
系统管理员
信用卡服务中心
Actor
顾客
系统管理员
仓库工人
信用卡服务中心
说明
指通过宠物商店下订单购买宠物的网站用户
指维护宠物商店的系统管理员
宠物仓库负责根据订单对宠物装箱和运输的工作人员
负责处理信用卡支付的外部系统
2. 初步列举一下一些 Use Case
浏览商品
打包和分发
订单
仓库工人
顾客
管理用户
信息
提交购物
订单
信用卡服务中心
处理信用卡
支付
接受订单处
理状态信息
管理系统财
务数据
系统管理员
Use Case
浏览商品
确认客户购
买订单
说明
就是向顾客展示宠物商店的宠物信息(包括图片、描述、价格等),这些商
品要按类别存放,一遍顾客浏览,而且,还要提供方便的查询,以便顾客可
以根据需要迅速找到相应的商品
管理用户信息
每个顾客需要在宠物商店在线网站购物,一个必要地条件是,他必须是系统
的用户。所以,系统给客户提供创建账户的功能,而且,客户可以通过系统
来管理自己的用户信息。延伸出去,还应该包括登录及退出系统的功能。
提交购物订单
顾客浏览商品,挑选喜欢的商品放入购物篮中,形成订单,提交给系统做处
理
查询订单处理状态 顾客可以查询已提交订单的系统处理状态,查询方式分为主动和被动。主动
是用户登录系统查询,被动是系统把处理结果通过电子邮件发送给用户。
管理系统财务数据 系统管理员对系统每天的交易数据节能型统计分析,形成相关的数据报表
确认购物订单
打包和分发订单
处理信用卡支付
系统管理员对客户提交上来的订单进行确认,接受或者拒绝,并标明原因
仓库管理员根据订单,包装宠物,并联系送货公司派送此订单
根据客户订单金额以及库户信用卡信息与信用卡中心交易,完成收款
3. 按照优先级排序 Use Case
我们从以下几个方面考虑:
(1) 对涉众利益的考虑
(2) 对缓解项目风险的考虑
(3) 对系统构架影响的考虑
充分考虑上面的因素,我们得到 Use Case 的优先顺序:
优先顺序
Use Case
说明
处理信用卡支付
该 Use Case 涉及到外部接口,如果我们和信用卡中心无法联系或
者信用卡中心不支持网上交易的话,我们的网上商店也就没有了存
在的意义,因此应优先考虑。
浏览商品
商品是商店的基础,有了它,才有东西可买。
1
2
商品上架后,就要考虑顾客了,管理用户信息时系统的核心功能,
因为顾客是商店的主要交互角色。
剩下的,我们按照其业务处理流程的先后顺序来安排。
3
4
5
6
7
8
管理用户信息
提交购物订单
确认购物订单
查询订单状态
打包和分发订单
管理系统财务数据
4. 细化 Use Case
搜索商品
按类别浏览
目录
浏览商品
查看某类别
商品信息
查看某类商品
详细信息
顾客
管理用户
信息
用户登录/退
出系统
更新用户注册
信息
接受订单处
理状态信息
提交购物
订单
添加/更新购
物篮
5. 下面以 Use Case “提交购物订单”为例细化描述
要素
用例名称
说明
提交购物订单
简要描述 顾客浏览商品,挑选喜欢的商品放入购物篮,形成订单,提交给系统做处理
事件流
基本
事件
流
(1)在顾客完成商品的挑选,单击购物篮的“结账”按钮的时候启动
(2)罗列当前客户购物篮里所有产品的信息,按项以列表的形式显示出来,以
便顾客审查和确定清单是否有误。顾客可以根据自己需要随时更改购物篮中的
信息
(3)检查此客户是否登录系统,如果未登录则跳转到登录界面,提示客户登录
才能继续交易;如果为已登录状态则直接跳转到支付信息对话框
(4)顾客输入支付信息、顾客地址和送货信息,默认送货地址与顾客地址信息
相同
(5)顾客输入信息以列表形式显示出来,以便顾客再次确定
(6)顾客检查无误,点击提交按钮完成购物订单的提交。
(7)该“提交购物订单”Use Case 结束
备选 无法扣款,如果系统无法从顾客信用卡中收取款项,则按如下步骤处理:
事件
流
(1) 系统自动把此订单表示为“无效”,想管理员发送无效订单通知,向顾
客账户添加“付款不成功,交易失败”的通知
(2) 其次,系统需要向顾客发送一封电子邮件通知其交易失败
特殊需求
系统要保证顾客和系统交易的数据的完整性、交易的可靠性以及交易安全
性,不允许顾客信用卡信息泄露的事故。界面的操作性要合理,要考虑到大
众顾客购物的习惯及操作顺序等问题
前置条件 顾客必须为系统的注册用户,非注册用户只能浏览商品,不能交易
后置条件 当顾客交易成功,相应商品的库存信息要及时更新为最新状态。
四、虚拟实现架构设计——重要的应用场景分析
1.针对上述的“提交购物订单”Use Case,活动建模如下:
罗列当前购物篮所有产品信息
do/统计总金额
修改购物篮
是
顾客目前非系统注册用户
顾客未登录
注册用户
登录系统
是否要更改购物信息
否
检查顾客目前状态
顾客已登录系统
填写支付信息/送货信息
显示顾客输入信息
不正确
检查资料是否正确
正确
确定提交订单
do/信用卡扣款
生成交易报告
do/保存报告
2.结构化 Use Case 模型
“提交购物订单”活动图
<>
提交购物
订单
登录系统
<>
<>
顾客
注册用户
“提交购物订单”结构图
3.时序图
: 顾客
: 显示购
物篮清单
: 新订单
表格
: 确认填
入信息
: 正式提
交订单
: 账号信息
查询
: 订单保存
1:
2:
3: 获取个人账号信息()
5: 缓存数据
4:
6:
7: 保存订单信息()
4. E-R 图
“提交购物订单”时序图
实体名称
注册账号
(Account)
登录信息
E-R 图
说明
用户在商店在线购物时需要开设账号。属性主要如下:用户名、
密码、地址、联系方式、电子邮件等。
顾客登录系统所需要的用户名和密码
(SignOn)
订单
(Orders)
订单状态
(OrderStatus)
订单货物项
(Item)
货物
(Product)
供应商
(Supplier)
目录
(Category)
5.包图
用户每次购物提交一次订单,主要属性有:订单编号、日期、总
价格、信用卡号、送货地址等。
记录订单从提交到客户接收货物整个过程中,订单所经历过的各
个状态,包括行号、时间、状态等。
记录订单中每种货物购买时的相关信息。包括:唯一编号、单价、
总价、状态、描述等。
宠物商品。属性有:唯一编号、名称、描述、单价等。
属性包括:唯一编号、名称、地址、电话、状态等。
商品浏览目录,属性有:目录编号、名称、描述。
<>
Presentation
<>
Business
<>
Persistence
<>
Common
Presentation:专门处理与最终用户交互的表示层包
Business:执行业务逻辑处理的业务层包
Persistence:提供访问后台资源持久层包
Common:公共元素层报,包含了跨越各个层次的通用的设计元素
五、质量属性需求分析
基于以上的场景分析和虚拟实现,确定此系统的架构质量属性主要有以下几各方面的需
求:
1、质量属性
可用性:H
宠物商店系统故障发生的频度、出现故障时会发生什么情况、信息和之前数据是否会消
失或遭到破坏,允许系统非正常运行多久、大量客户端登陆访问是否故障,如何防止故障发
生、发生故障时如何解决上报。
可修改性:M
是否可以对宠物商店系统的功能进行扩展或修改,如何修改,修改的权限又是什么等问
题,内聚及耦合性。
性能:H
定期管理、随机访问和查询及偶然多客户访问等事件到达时宠物商店系统所能提供的服
务、服务时间、以及不能处理事件的丢失率,服务吞吐量,服务级别改变是否会异常等。
安全性:L
衡量宠物商店系统在向合法用户提供服务的同时,是否会有非授权用户非法获取信息或
文件,并从中阻扰合法用户获得正常服务。
可测试性:M
可执行语句的百分比、出现故障的概率;执行测试的时间、最长依赖链的长度、准备测
试的时间。
易用性:M
提供清晰明了的界面,适合购买宠物所需,响应任务的时间、错误的数量、解决问题的
数量、用户满意度等。
2、质量属性优先级
性能
可用性
可修改性
易用性
可测试性
安全性
3、质量属性实现
可修改性:可以方便地添加新的或修改旧的视图、模块功能。被限制在相关模块内部,
该模块通过接口对外只返回结果,因此不会影响其他模块。
易用性:添加新的视图、控制器和数据非常方便,因此可以为用户提供丰富的辅助功能,
从而实现易用性。
为保证质量属性的实现,基于之前虚拟实现的系统架构,进行架构设计。
六、SA 最终设计描述
本系统主要为 C/S 模式、MVC 模式、管道过滤器模式等复合的架构模型。
1.“提交购物订单”中的类之间的关系:
类之间的关系(图中灰蓝色为框架组件类)
2.各类的分析
分析模型类
设计模型类
说明