仿12306订票系统--需求分析与概念原型

1.项目简介

12306是中国铁路部门推出的网上售票平台。作为一个拥有众多人口以及幅员辽阔地域面积的铁路大国,中国的12306购票系统也承担着每日最高千亿次访问量,一年售票超过千万张。在如此高并发的环境下,注定12306系统是一个高度复杂、精密的系统。作为工程实践,我们要参照该系统进行建模设计,尽可能将系统接近覆盖真实上线系统。

2.需求分析

经过分析,本系统大致需要实现以下三个方面的需求:

一、身份认证:

  a.用户可以通过账号注册使用系统。

  b.用户注册账号以后需要认证实名信息,该信息由铁路部门工作人员审核。

  c.学生用户购买学生票需要认证学生信息,该信息也由铁路部门工作人员审核。

  d.用户拥有账号以后需要登录来获取身份信息才可以使用系统。

二、查询车票

  a.用户通过系统界面输入出发地、目的地和日期等信息可以查询经过两地车次等余票信息。

  b.用户也可以通过输入日期和车次来获取该趟列车的停靠站时刻表。

三、购买车票

  a.用户确认查询到某车次的乘车区间余票充足

  b.用户点击下单按钮提交订单

  c.用户完成下单以后需要在30分钟以内支付车票款

  d.用户拥有一次改签机会,可以重新选择一张以相同出发地和目的地但是不同出发时间的车票,需要确定该车次有余票。

3.用例建模

3.1用例建模简介

用例(use case)的核心概念中首先它是一个业务过程(business process),经过逻辑整理抽象出来的一个业务过程,这是用例的实质。

什么是业务过程?在待开发软件所处的业务领域内完成特定业务任务(business task)的一系列过程就是业务过程。

用例有三个要素。用例应该由业务领域内的一个参与者触发;用例必须能为特定的参与者完成一个特定的业务任务;用例必须终止

于某个特定的参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。

3.2用例建模步骤

第一步,从需求表述中找出用例,往往是动名词短语表示的抽象用例;

第二步,描述用例开始和结束的状态,用TUCBW和TUCEW表示的高级用例;

第三步,对用例按照子系统或者不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;

第四步,进一步逐步分析用例与参与者的详细交互过程,完成一个两列的表格,将参与者和开发软件系统之间从用例开始

到用例结束的所有交互步骤都列出来扩展用例。

3.3本案例中的用例建模

3.3.1分析

从需求中其实可以发现本系统的三个不同场景,核验身份、查询余票和购买车票,对应三个用例。而其中的参与者有两个,分别是

用户和铁路部门的工作人员。根据其用例与参与者间的关系,可以得到用例图。

3.3.2用例图

4.业务领域建模

4.1业务领域建模介绍

业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,

他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此

业务领域建模有助于开发团队获取业务领域知识,形成统一的认知。

4.2业务领域建模步骤

第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料。

第二步,头脑风暴。列出重要的应用领域概念,给出这些概念的属性,以及这些概念之间的关系。

第三步,给这些应用业务领域概念分类。分别列出哪些是类,哪些是属性和属性值,以及列出类之间的继承关系、聚合关系和关联关系。

第四步,将结果用UML类图画出来。

4.3本案例中的业务领域建模

本案例涉及的类图如下:

5.数据模型分析

通过分析,本系统需要构建以下数据模型:

表1 用户表

字段名 类型 含义说明
user_id varchar 用户对应的id
name varchar 用户名
password varchar 用户登录密码
phone varchar 绑定手机号
idnum varchar 身份证号码
isvalid int 是否通过核验
type int 身份类型,成人、学生等

 

 

 

 

 

 表2管理员表

字段 类型 含义说明
name varchar 用户名
password varchar 登录密码

 

 

 

 

表3列车表

字段 类型 含义说明
train_no varchar 列车编号
name varchar 列车名
type int 列车类型(高铁、特快、动车等)
seat int 座位数量

 

 

 

 

 

 

 

表4站点表

字段 类型 含义说明
station_no varchar 站点号
name varchar 站点名

 

 

 

 

 

表5时刻表

字段 类型 含义说明
id int 主键id
train_no varchar 对应列车表的车次号
station_no varchar 对应站点表编号
starttime time 出发时间
arrivetime time 到站时间
date date 发车日期

 

 

 

 

 

 

 

表6车票表

字段 类型 含义说明
id int 主键id
train_no varchar 对应列车编号
departure varchar 对应站点表编号,出发地
destination varchar 对应站点表编号,目的地
price double 车票价格

 

 

 

 

 

 

 

表7订单表

字段 类型 含义说明
order_id varchar 订单号
user_id varchar 对应用户表id
departure varchar 出发地
destination varchar 目的地
starttime time 出发时间
arrivetime time 到达时间
date date 发车日期
price double 车票价格
seat varchar 车位号
train_no varchar 列车编号

 

 

 

 

 

 

 

 

 

 

6.总结

本文从用例建模、业务领域建模和数据模型的角度,分析了仿12306购票系统的需求。从这些分析中体会到了软件产品的概念原型。概念原型是一种虚拟的、理想化的软件产品形式。概念原型=用例+数据模型。在本文中得到了12306购票系统的概念原型。

 

 

 

posted @ 2020-12-14 10:12  xiaoze8  阅读(2621)  评论(0)    收藏  举报