MonkeyEye电影售票系统--系统顺序图

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法。

我所在的小组做的是一个叫做MonkeyEye的项目,实现一个简单的电影购票系统,并在项目完成过程中学习系统分析与设计,学习UML建模等技能。本系列文章将会以此项目为案例,总结整个项目的设计、建模与开发过程。

项目地址:https://github.com/SYSUMonkeyEye

一、基本功能

  1. 电影资讯
  2. 购票
  3. 用户信息
  4. 收藏
  5. 评论

用户使用该可以实现查看和搜索正在热映和即将上映的电影资讯,对感兴趣的电影可以进行收藏。想要观看某部电影,可以进行下单购票操作。对于已经放映的电影订单,用户可以对该订单对应的电影进行评分评价的操作。另外,用户还可以更新自己的个人信息。下面是整个应用的界面逻辑概要图,方便对应用有个直观的理解。

MonkeyEye电影售票系统--系统顺序图

二、系统顺序图

接下来将根据之前分析好的用例模型,为每个用例建立系统顺序图(SSD)。除了简单地建立系统顺序图之外,本文还会依照BCE准则来对系统内部组件进一步完善,给出比较完整的SSD。(建议对照用例模型阅读本文)

Boundary:每个人机界面作为边界类。
Controller:一个用例一般使用一个控制器类。
Entity:识别用例中涉及领域模型,作为实体类。

1、电影资讯

用户可以通过查看资讯来查看电影,也可以通过直接搜索来查看电影。电影资讯包括两种类型:正在热映和即将上映。除了以上两种方式外,在应用首页也会推荐一些热门电影供用户查看。不管是以何种方式查看电影,都可以点击进入详情页面查看某部电影的详细信息。

用户查看电影资讯可以直接获取所有电影列表,再由controller根据上映时间去将电影分类,最后再将数据返回给电影列表界面使用。

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图

2、电影收藏

用户可以收藏感兴趣的电影,也可以取消收藏。在个人信息界面还可以查看自己收藏的所有电影列表。通过点击列表项目也可以查看到电影的详情。

收藏电影的时候需要先查看电影是否存在,因此还需要涉及到Movie实体。

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图

3、下单购票

选择想要观看的电影之后,可以进行购票操作。购票时需要选择该电影放映的场次和座位信息。基本信息选择完成之后就可以创建订单了,创建订单的时候,如果用户还有优惠券,那么可以选择使用优惠券。订单创建完成后可以对订单进行支付,支付订单需要输入支付密码。最后,订单完成支付后用户可以看到订单的详细信息,系统还会随机送给用户优惠券。

选座的时候,由于场次里面包含有该场次的座位信息,因此只需要查询订单,根据订单里面的座位信息来排除已经出售的座位即可得到可选座位的信息。优惠券的查询同样也是查询所有,然后再由controller过滤掉无效的优惠券(已使用或过期)。

MonkeyEye电影售票系统--系统顺序图

创建订单的时候需要判断信息是否合法,即电影、场次和优惠券等信息。如果信息非法,则直接返回错误信息。只有信息合法了才能创建订单。由于场次信息中会包含电影ID,因此只需要检查场次信息即可知道电影是否存在。

MonkeyEye电影售票系统--系统顺序图

最后是支付订单流程。需要进行订单存在性和支付密码正确性的校验。成功支付后系统随机抽送优惠券,最后把抽奖结果连同支付结果一起返回。

MonkeyEye电影售票系统--系统顺序图

4、订单查询

根据订单类型不同,用户可以查看的订单列表也有多种。每种订单都可以查看到订单的详细信息。

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图

5、用户信息

用户可以查看自己的用户信息,也可以对自己的部分信息进行修改。修改的信息根据内容的不同,修改方式也有所不同,例如修改头像需要上传文件,修改昵称或签名则只是简单的文本修改,而修改登录密码或支付密码则需要提供原始密码等关键信息。因此,这里可以分出3个修改信息的用例,这3个用例可以泛化为”修改个人信息”用例。

MonkeyEye电影售票系统--系统顺序图

修改用户信息分为3中类型,其中更新关键信息的updatePass方法需要对密码进行校验,只有输入正确的旧密码才能更新密码。

MonkeyEye电影售票系统--系统顺序图

6、评价电影

用户对观看过了的电影可以进行打分和评价,也可以查看其他用户对某部电影的评价。评价电影的时候用户可以对其进行等级评分和给出文字描述。

MonkeyEye电影售票系统--系统顺序图

MonkeyEye电影售票系统--系统顺序图