四 用例建模-在线购物

一.问题描述
基于Web的“在线购物系统”中,客户可向供应商请求购买一件或多件商品 。客户提供个人信息,例如地址和信用卡信息 。这些信息被存储在客户账户中 。如果信用卡是有效的,那么系统创建一个配送订单并且发给供应商 。供应商检查可用的库存,确认订单 , 并且输入一个计划号的配送日期 。当订单完成配送后,系统通知客户并且向客户的信用卡账户收费 。
二.用例建模
2.1 浏览目录用例
概述:客户浏览万维网目录,从供应商的目录中查看各种各样的商品项,并且从目录中选择商品
参与者:客户
前置条件:客户的浏览器链接到供应商的目录网站
主序列:
1.客户请求浏览目录
2.系统向客户显示目录信息
3.客户从目录中选择商品
4.系统显示商品列表,包括商品描述、价格及总价
可替换序列:
步骤3:客户没有选择商品并且退出
后置条件:系统显示了所选择的商品列表
2.2 下单请求用例
用例名称:下单请求
概述:客户输入一个订单请求来购买目录商品 。客户的信用卡被检查其有效性和是否有足够的额度来支付请求的目录商品
参与者:客户
前置条件:客户选择了一个或多个目录商品
主序列:
1.客户提供订单请求和客户账户ID来支付购买
2.系统检索客户账户信息,包括客户的信用卡详细信息
3.系统根据购买总额检查客户信用卡,如果通过,创建一个信用卡购买授权号码
4.系统创建一个配送订单,包括订单细节、客户ID和信用卡授权号码
5.系统确认批准购买,并向客户显示订单信息
可替换序列:
步骤2:如果客户没有账户,系统提示客户提供信息来创建一个新账户 。客户可输入账户信息或取消订单
步骤3:如果客户的信用卡授权被拒绝(例如,无效的信用卡或客户的信用卡账户资金不足) , 系统提示客户输入一个不同的信用卡号码 。客户可输入一个不同的信用卡号码或取消订单

四  用例建模-在线购物

文章插图
后置条件:系统为客户创建了一个配送订单
2.3 处理配送订单用例
用例名称:处理配送订单
概述:供应商请求一个配送订单;系统确定库存对于满足订单是可用的,并且显示订单
参与者:供应商
前置条件:供应商需要处理一个配送订单并且一个配送订单存在
主序列:
1.供应商请求一个配送订单
2.系统检索并显示配送订单
3.供应商为配送订单请求商品库存检查
4.系统确定库存中的商品对于满足订单是可用的,并且保留这些商品
5.系统给供应商显示库存信息 , 并且确认商品被保留
可替换序列:
步骤4:如果库存不足,系统显示警告
后置条件:系统为配送订单保留了库存商品
2.4 确认配送和给客户开账单用例描述
用例名称:确认配送和给客户开账单
概述:供应商手工地准备配送并且确认配送订单已经准备好 。系统通知客户订单正在配送 。系统通过客户的信用卡收取购买商品的款项并且更新相关库存商品的库存
参与者:供应商
前置条件:库存商品已经为客户的配送订单进行了预留
主序列:
1.供应商手工地准备配送并且确认配送订单已经准备好配送
2.系统检索客户的账户信息,包括发货单和客户的信用卡细节
3.系统更新库存,确认购买
4.系统通过客户信用卡收取购买商品款项并且创建一个信用卡收费确认号码
5.系统用信用卡收费确认号码更新配送订单信息
6.系统给客户发送确认邮件
7.系统向供应商显示确认信息来完成配送订单的配送
后置条件:系统提交了库存,向客户收费,并且发送了确认信息
三.静态建模问题域的静态实体类建模:
四  用例建模-在线购物

文章插图
四.类和对象组织
没有一个统一的方式将一个系统分解为对象,因为做出这些决策都是基于分析员的判断和问题的特性!
上文确定的实体类可通过服务类的形式整合到面向服务的体系结构中
还有一类服务类,不操作实体,但为其他类提供一种服务能力:
五.动态建模
对于每一个用例我们需要开发一个通信图,用于描述该用例的对象以及这些对象之间消息传递的顺序 。
5.1 浏览目录
5.2 下单请求
5.3 处理配送订单
5.4 确认配送和给客户开账单
5.5 查看订单
六.设计建模 6.1 分层软件体系结构
构建被组织到分层的体系结构中,使得每个构件处于依赖所处位置的下层而不是上层的构建层次 。这种分层的体系结构便于在线购物软件体系结构在将来的适应性变化 。用户交互层的用户交互构件只与协调者构建通信,而协调者构件与服务通信 。可以按照如下分层:
服务层:信用卡服务、电子邮件服务属于“外部服务”其余服务为应用内部服务 。
协调层:共3个协调者构件 。
用户层:共有3个用户交互构件
6.2 体系结构通信模式6.3 服务接口设计
每个服务一个供给接口,通过这个接口访问数据的操作 。服务操作是通过考虑在基于用例的交互图中各个服务是如何被访问来设计的 。服务是基于用例图中各个服务十日如何被访问来设计的 。
6.4 面向服务的软件体系结构设计
每个服务有一个带有供给接口的端口,每个协调者构件有一个或多个供给接口、或者请求接口 。在三层体系结构中,每个客户端-用户交互构件有一个请求端口,每个服务有一个供给端口,协调者带有请求和供给接口 , 因为它们作为客户端和服务之间的中介者需要与多个服务通信 。
6.5 构件端口和端口设计
“用户交互构件”和“供应商交互构件”有一个请求接口;客户协调者有5个请求端口和1个供给端口,5个请求端口包括“目录服务”、“客户账户服务”、“配送订单服务”、“电子邮件服务”、“信用卡服务”的请求接口 , 1个供给端口与“客户交互通信” 。
6.6 服务复用
【四用例建模-在线购物】利用面向服务的体系结构开发范例 , 一旦完成了服务的设计以及接口规范 , 服务的接口信息就可以注册到一个服务代理者 。服务可以被组合为新的应用 。例如其他的电子商务系统也可以复用这个“在线购物系统提供的服务 , 如“目录服务”、“配送订单服务”以及“库存服务” 。