热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UML组件图网上书店

实验目的(1)理解组件图的基本概念;(2)理解部署图的基本概念;(3)理解包图的基本概念;(4)掌握在RationalRose中绘制组件图

实验目的


(1) 理解组件图的基本概念;
(2) 理解部署图的基本概念;
(3) 理解包图的基本概念;
(4) 掌握在Rational Rose中绘制组件图、部署图和包图的操作方法。



实验内容


一、理解并绘制组件图。(文件名命名为订单模块组件图.mdl)

  1. 理解并绘制如下类图(类Product、Custmer和Account的访问权限设置为无修饰符Implementation,为什么?),并Forward Engineer生成Java代码(应该有7个文件,为什么?),观察类和文件的对应关系。注意:执行了Forward Engineer后会自动生成7个组件?,删掉。
  • 订单模块类图:
    订单模块类图


  1. 在以上类图基础上,绘制组件图(组件Order包含类Oeder,组件IProduct包含接口IProduct和类Product,组件ICustomer包含接口ICustomer和类Customer,组件IAccount包含接口IAccount和类Account);Forward Engineer生成Java代码(可以在类图也可以在组件图中生成,为什么?),观察类和文件的对应关系,并与上一步的比较。思考:为什么组件名称必须和类或接口名称一致?
  • 订单模块组件图:
    订单模块组件图


二、UML建模综合练习–网上书店

1. 需求分析**

访谈调研

  • **书店经理:**我们原本是一个传统的实体书店,顾客要买书都是亲自到书店来的,这样挺不方便。而且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。其实,还有一点就是,有不少人进入书店后并不买书,只是查找些资料,有的甚至会在这呆上很长的时间直到把书免费看完。这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。
  • **系统分析员:**能谈谈您对网上书店的要求吗?
  • **书店经理:**网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,能提交订单。对内,书店工作人员能够通过网上书店及时的看到这些订单,并进行处理。为了把书送到顾客手里,我们已经联系了快递公司初步达成协议,由他们往返顾客和书店之间把图书送到顾客手里。书店管理员受理订单后,就会通知快递公司送货。当然,书店的图书上架和下架也应该由网上书店完成了。
  • **工作人员甲:**实体店中,图书是按照不同种类放置的,方便顾客挑选。网上书店的图书也应该能够按照这种模式分类显示。这样,图书的信息和种类要由网上书店设置和管理。已有种类的新书或新种类的图书上架,网上书店能够保存这些信息。如果信息输入错误,能够进行修改。
  • **工作人员乙:**另外书店会搞一些促销,推出一些特价图书。以前这些特价书的信息,都是我们根据促销活动整理出来,贴在书店的醒目位置。促销活动过后,特价图书会回复原来的价格。希望网上书店也能够管理这些特价图书。
  • **系统分析员:**能谈谈平时买书的经过吗?
    顾客甲:一般都是先在书店里看看图书的简要介绍,或者先找找看有没有自己需要的书,有时是没有目标的寻找,有时直奔一类图书而去。找到我想买的书或者觉得看的书不错,就会去柜台结账。
  • **工作人员丙:**不过有时在结账的时候,顾客会突然改变主意,不买一些书或者又回去挑选图书了。
    顾客甲:有时好像是这样的。要是网上书店在结账前能方便管理我所选购的图书就好了,这样通过计算机直接操作,就不用跑来跑去了。
    系统分析员:可以使用虚拟的购物车。
  • **工作人员丙:**对,这样在用户确认购买前可自行管理选购的图书,决定要不要购买,还有购买数量。
    系统分析员:顾客先使用虚拟的购物车选购管理图书,然后提交订单给书店处理,是这样吧。
  • **书店经理:**没错,就这样办。另外最好顾客能够留下向己的信息,方便以后购买。
  • **顾客:**你们可以实行会员制啊。就像我们在网上逛论坛一样,会员才能发言普通游客只能看。这样我们平时就只在网上书店查查资料什么的,只在购买图书的时候才使用会员身份。
  • **书店经理:**恩,这样不仅可以保留你们的信息,也可以保留购买记录。
    系统分析员:会员提交购买订单后,书店打算如何收取或者说用户怎么付款
    书店经理:我们可以接受货到付款,顾客也可以使用网上银行、汇款等方式付款。
  • **顾客:**这样我们就方便多了。对了,那是不是付款前,我还多了一次“反悔”的机会啊。
  • **书店经理:**在我们书店没有受理订单之前,你们可以取消交易。不过受理后就不行了。
    通过几次这样的访谈(限于篇幅,在此并未列出所有访谈内容),可以获得网上书店的需求信息,确定系统范围。网上书店是实现对实体书店内部图书商品和顾客购买图书的综合管理系统。


(1) 识别参与者
网上书店的主要参与者有会员,以及管理人员。此外,访客(非会员)也可是使用该系统进行一些图书资料的查询等。
另外,为了业务发展和内部管理分工明确,书店希望按照工作范围分配管理员的职责权限,管理员分为商品管理员、订单管理员和系统管理员。
(2) 识别用例并绘制用例图
在用例建模阶段,为降低用例图的复杂性,将网上书店划分为两个子系统即顾客购书子系统和书店内部管理子系统。会员和访客属于顾客购书子系统管理员则属于书店内部管理子系统。



  • 访客用例图:
    访客用例图
  • 会员用例图:
    会员用例图
  • 书店管理员用例图:
    书店管理员用例图
  • 用例描述:
    用例描述
  • 需求分析阶段类图
    需求分析阶段类图

2. 动态建模

(1)系统动态建模–活动建模



  • 会员选购图书活动图:
    会员选购图书活动图
  • 订单管理员处理订单活动图:
    订单管理员处理订单活动图
  • 商品管理员图书信息活动图:
    商品管理员图书信息活动图
  • 系统管理员活动图:
    系统管理员活动图

(2)系统动态建模–用例的行为顺序(图)
直接绘制某个用例背后的顺序图并不容易–用BEC模式来解决这个问题;
BEC模式:将对象分为三类–边界对象-控制对象-实体对象;

  • 参与者只能与边界对象互动
  • 每个用例可以对应生成一个控制类
  • 实体对象一般不能发送消息给边界对象和控制对象(返回消息除外)。


  • 管理员登录顺序图:
    管理员登录顺序图
  • 会员添加图书到购物车顺序图:
    会员添加图书到购物车顺序图

(3) 系统动态建模–对象的状态图
本系统具有明显转换状态的类是订单(对象);具有:确认订单-等待到款-等待受理-已受理-已发货-交易成功-取消 7种状态



  • 订单简单状态图:
    订单简单状态图

推荐阅读
author-avatar
深圳中诚环球发展有限公司
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有