基于12306售票系统的需求分析与概念原型

1. 前言

  本文在中科大软件学院孟宁老师的指导下完成,是一个基于对工程实践选题中的12306火车售票系统分析,从而进行数据库建模、接口设计等分析过程,最终形成概念原型的过程。

 

2. 项目介绍

  该项目来自于学校与企业合作选题,意在模拟实现一个12306售票系统,尽可能覆盖真实线上系统,要求实现但不限于以下功能:

  1. 用户信息注册
  2. 查询余票
  3. 售票
  4. 退票
  5. 改签

  并在此基础上,对一些读写接口的延迟以及并发请求做出了要求。

 

3. 需求分析概述

  1. 用户系统需求分析

    • 用户注册
    • 用户登录
    • 用户信息维护
    • 查询余票信息
    • 查询订单信息

  2. 车次查询系统需求分析

    • 根据用户提供的起始站与终点站、时间数据返回相关的车次信息
    • 根据用户提供的车次、时间数据返回相关的车次信息
    • 根据用户提供的车站、时间数据返回当天停留的车次信息

  3. 订单系统需求分析  

    • 售票:根据用户提交的信息生成订单
    • 改签:根据用户提交的订单信息与改签信息对订单进行修改
    • 退票:根据用户提供的请求取消订单
    • 候补:根据用户提交的信息生成候补订单

 

4. 用例建模设计

  用例是一个业务过程(business process),经过逻辑抽象得到的业务过程。而业务过程则是在软件开发所处的领域内的一系列特定业务。

  用例建模的基本步骤如下:

  1. 从需求表述中找出用例,一般是动名词短语表示的抽象用例。
  2. 描述用例的开始和结束状态。
  3. 对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者的上下文关系。
  4. 逐一分析参与者的详细交互过程,完成用例建模。

  在实现该项目时,考虑到方便分工合作降低耦合度,故而设计成三个大的模块系统,得到以下用例:

  

 

5. 业务领域建模

  业务领域建模即时开发团队用于获取业务领域知识的过程。在不同的项目里,开发者们一般工作的领域并不太相同,业务领域建模可以帮助开发团队形成统一的业务认知。

  业务领域建模的过程大致如下:

  1. 收集业务领域相关信息
  2. 执行团队头脑风暴
  3. 对业务领域相关的知识概念进行分类
  4. 用UML类图将业务领域知识图形化展示

  在该系统中,可以得到大致如下的UML类图:

  

 

6. 数据模型设计

  数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,其为数据库系统的信息表示与操作提宫了一个抽象框架。

  数据模型由三部分组成:数据结构、数据操作、数据约束。

  在本系统中,可以建立如下数据模型:

  1. 用户表  
字段名称 字段类型 字段描述
username varchar

用户名称

userid int 用户id(主键)
password varchar 用户密码
name varchar 用户姓名
sex varchar 用户性别
email varchar 用户邮箱

 

  2. 订单表

字段名称 字段类型 字段描述
orderid int 订单id(主键)
userid int 用户id(外键)
trianid varchar 火车id(外键)
sertid varchar 座位id
status varchar 订单状态
ordertime datetime 订单生成时间

 

  3. 站点表

字段名称 字段类型 字段描述
stationid int 站点id(主键)
city varchar 站点城市
name varchar 站点名字

 

  4. 列车表

字段名称 类型 字段描述
trainid int 列车id(主键)
traintype varchar 列车类型
started_station varchar 起始站(外键)
arrived_station varchar 终点站(外键)

 

  5. 联系人表

字段名称  字段类型 字段描述
id int 联系人信息id(主键)
userid int 用户id(外键)
name varchar 姓名
id_number varchar 证件号码

 

  6. 车票表

字段名称 字段类型 字段描述
id int 车票id(主键)
traid_id int 车次id(外键)
started_station varchar 出发站名称(外键)
arrived_station varchar 到达站名称(外键)
startd_time datetime 出发时间
seat_number varchar 座位号

 

7. 总结

  本篇博客简要地介绍了在实现12306系统过程中的概念模型分析、功能设计、概念原型设计的过程。在此过程中遇到了不少问题,通过解决这些问题对系统本身业务的理解上升了一个层次,也学习到了软件工程的相关思想,在此感谢任课老师的指导。文中所涉及的具体实现细节仍待补充,拟在工程实践的过程中不断对其完善。

posted on 2020-12-15 17:00  五里雾  阅读(2823)  评论(0编辑  收藏  举报