基于工程实践的需求分析和概念原型

序言

本次工程实践的题目是设计一个类似12306的售票系统,运用高软课上所学,对改题目进行分析

需求分析

用户需求分析:

  1. 用户可以注册账号并登录12306客户端软件;
  2. 用户可以查看自己的相关信息,包括待出行订单、历史订单等;
  3. 用户还可以查看自己未支付的订单,和正在抢票的订单;
  4. 用户可以通过多种条件进行查询车票情况,比如起始站点、目的站点、时间和购票类型(高铁和学生票)这些信息来查询车次有无余票;
  5. 不仅可以查询余票,用户还可以通过出发地+目的地+时间查询相关的车次但是不显示余票、通过车次+时间查询该车次经过的车站和到达的时间、通过车站+时间查询当天在车站停留的车次
  6. 用户查询余票之后可以选择还有余票的车次,选择车位和乘车人然后支付票价进行购票
  7. 用户通过选择没有余票的车次来进行候补票
  8. 用户可以退票或者改签

用例建模

基于以上的需求分析,可以画出用例图

12306_1

业务建模

简介

业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。

基本步骤

  1. 收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
  2. 头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
  3. 给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系;
  4. 将结果用 UML 类图画出来。

UML图

12306_3

数据模型

由以上分析可得数据库表:

用户表

字段名 字段类型 字段描述
id int 用户id
username varchar 用户名
password varchar 密码
name varchar 姓名
sex varchar 性别
birthday datetime 出生日期
telephone varchar 手机号
email varchar 邮箱
address varchar 地址
identification_type varchar 证件类型
identification_number varchar 证件号

乘车人表

字段名 字段类型 字段描述
id int 乘车人id
name varchar 乘车人姓名
identification_type varchar 证件类型
identification_number varchar 证件号码
passenger_type varchar 乘客类型(成人、学生等)

用户_乘车人表

字段名 字段类型 字段描述
id int 用户_乘车人表id
passengerid int 乘车人id
userid int 用户id

列车表

字段名 字段类型 字段描述
id int 列车id
traintypeid int 列车类型id
trainNumber int 列车编号
start_stationid int 始发站id
dest_stationid int 终点站id
starttime datetime 发车时间
arrivetime datetime 到达时间

列车类型表

字段名 字段类型 字段描述
id int 列车类型表id
trainType string 列车类型(动车、火车等)

车厢表

字段名 字段类型 字段描述
id int 车厢id
carriageType varchar 车厢类型
seatnumber int 座位数量

列车_车厢表

字段名 字段类型 字段描述
id int 列车_车厢表id
trainid int 列车id
carriageid int 车厢id
carriagenumber int 车厢编号,用于表示该车厢是列车的几号车厢

车站表

字段名 字段类型 字段描述
id int 车站id
stationname varchar 车站名称

列车_车站表

字段名 字段类型 字段描述
id int 列车_车站表id
stationid int 车站id
trainid int 列车id
arrivetime datetime 列车到达时间
starttime datetime 列车发车时间

车票表

字段名 字段类型 字段描述
id int 车票id
trainid int 该车票对应的列车id
start_stationid int 车票出发站id
dest_stationid int 车票目的站id
starttime datetime 开车时间
carriageid int 车厢id
seat int 座位号
passengerid int 乘车人id
ticketstatus varchar 车票状态

订单表

字段名 字段类型 字段描述
id int 订单id
userid int 创建该订单的用户id
ticketid int 订单购买的车票id
amountmoney float 订单金额
createtime datetime 创建时间
paytime datetime 支付时间
orderstatus varchar 订单状态(未支付、已支付..)

总结

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

posted @ 2020-12-15 10:32  咸鱼不闲咋整啊  阅读(185)  评论(0编辑  收藏  举报