MonkeyEye电影售票系统--系统顺序图
我所在的小组做的是一个叫做MonkeyEye的项目,实现一个简单的电影购票系统,并在项目完成过程中学习系统分析与设计,学习UML建模等技能。本系列文章将会以此项目为案例,总结整个项目的设计、建模与开发过程。
项目地址:
一、基本功能
- 电影资讯
- 购票
- 用户信息
- 评论
二、系统顺序图
接下来将根据之前分析好的,为每个用例建立系统顺序图(SSD)。除了简单地建立系统顺序图之外,本文还会依照BCE准则来对系统内部组件进一步完善,给出比较完整的SSD。(建议对照阅读本文)
Boundary:每个人机界面作为边界类。 Controller:一个用例一般使用一个控制器类。 Entity:识别用例中涉及领域模型,作为实体类。
1、电影资讯
用户可以通过查看资讯来查看电影,也可以通过直接搜索来查看电影。电影资讯包括两种类型:正在热映和即将上映。除了以上两种方式外,在应用首页也会推荐一些热门电影供用户查看。不管是以何种方式查看电影,都可以点击进入详情页面查看某部电影的详细信息。
用户查看电影资讯可以直接获取所有电影列表,再由controller根据上映时间去将电影分类,最后再将数据返回给电影列表界面使用。
3、下单购票
选择想要观看的电影之后,可以进行购票操作。购票时需要选择该电影放映的场次和座位信息。基本信息选择完成之后就可以创建订单了,创建订单的时候,如果用户还有优惠券,那么可以选择使用优惠券。订单创建完成后可以对订单进行支付,支付订单需要输入支付密码。最后,订单完成支付后用户可以看到订单的详细信息,系统还会随机送给用户优惠券。
选座的时候,由于场次里面包含有该场次的座位信息,因此只需要查询订单,根据订单里面的座位信息来排除已经出售的座位即可得到可选座位的信息。优惠券的查询同样也是查询所有,然后再由controller过滤掉无效的优惠券(已使用或过期)。
创建订单的时候需要判断信息是否合法,即电影、场次和优惠券等信息。如果信息非法,则直接返回错误信息。只有信息合法了才能创建订单。由于场次信息中会包含电影ID,因此只需要检查场次信息即可知道电影是否存在。
最后是支付订单流程。需要进行订单存在性和支付密码正确性的校验。成功支付后系统随机抽送优惠券,最后把抽奖结果连同支付结果一起返回。
4、订单查询
根据订单类型不同,用户可以查看的订单列表也有多种。每种订单都可以查看到订单的详细信息。
5、用户信息
用户可以查看自己的用户信息,也可以对自己的部分信息进行修改。修改的信息根据内容的不同,修改方式也有所不同,例如修改头像需要上传文件,修改昵称或签名则只是简单的文本修改,而修改登录密码或支付密码则需要提供原始密码等关键信息。因此,这里可以分出3个修改信息的用例,这3个用例可以泛化为”修改个人信息”用例。
修改用户信息分为3中类型,其中更新关键信息的updatePass方法需要对密码进行校验,只有输入正确的旧密码才能更新密码。
6、评价电影
用户对观看过了的电影可以进行打分和评价,也可以查看其他用户对某部电影的评价。评价电影的时候用户可以对其进行等级评分和给出文字描述。