河北经贸大学 河北省石家庄市 050000
学校对于社会车辆的出入有严格管理,但现阶段主要还是通过手写登记等较为传统的方式来记录出入车辆,因此,需要完整的车辆出入管理系统来提高管理效率和准确性。
(1)法律可行性
不违法国家法律,符合国家方针政策,属鼓励行为。法律可行。
(2)经济可行性
系统的开发成本为N人月,费用约为M万元。运行成本为一台服务器及相关软件。与每年专业分流耗费的人力成本相比,具有经济节约,因此经济可行。
(3)技术可行性
系统中的驾驶员信息、车辆出入信息可由Mysql导入,容易获得。现有技术可以实行此系统,无技术障碍。技术可行。
车辆出入系统管理员可以对车辆信息进行管理,包括输入车辆的基本信息,例如车牌号、车辆出入时间等进行管理,信息可以通过Mysql导入。可以对车辆信息进行管理,可以添加或删除车辆信息,包括车辆进入学校时间、车辆离开学校时间、车牌号码等;能对车辆驾驶员或车辆所有者信息进行管理,可以添加或删除驾驶员或者车辆所有者的信息。
系统中的外部实体包括管理员、车辆、车主三类用户。管理员输入的数据流包括:车主信息和车辆信息。系统输出给车辆和车主数据流包括:车辆记录信息和车主登陆信息。
对系统中的数据流进行分类,可以认为车主信息,车辆出入时间,车辆信息,车主信息为系统的基础数据,车位信息为系统的专业分流信息。因此,可以把系统划分为基础数据管理和车位分配管理系统两个子加工。系统的一层数据流图 如图1-2所示。
基础数据管理又可以分为车主信息管理系统,车辆信息管理系统,二层数据流图。车位分配管理系统包括车位分配信息。
根据一层数据流图,可以把用例模型分为基础数据管理,车位分配管理三个包,每个包对应一个子系统。基础数据管理包负责收集存储管理员,车主,车辆,车位信息,依赖于车位分配管理系统。车位分配管理包负责对车辆信息进行存储并分配车位,将车位信息告知管理员以及车主。
基础信息管理包括车辆信息,车位信息,车主信息三个核心用例。其中车位信息和车辆信息可以给管理员和车辆共同拥有,车主信息可以给管理员。车位分配管理包括车位分配一个用例,可以给管理员和车主共同使用。
系统中包括的数据流有:车辆信息、车主信息、车位信息、进入时间信息和出去时间信息。
(1)车辆信息
数据流名:车辆信息。
简述:描述与车辆相关的具体信息。
组成:车牌号+车内人数+所属省份+注册时间+进出校园时间。
来源:由管理员负责输入。
去向:流向车辆。
流通量:导入时数据量较大。
峰值:大。
(2)车主信息
数据流名:车主信息。
简述:描述与车主相关的具体信息。
组成:姓名+性别+年龄+职工号+驾驶证号+手机号。
来源:由管理员负责输入。
去向:流向车主。
流通量:较大。
峰值:大。
(3) 车位信息
数据流名:车位信息。
简述:描述与车位相关的具体信息。
组成:空闲车位号+车牌号。
来源:由管理系统负责输入。
去向:车主信息管理,管理系统。
流通量:大。
峰值:小。
(4) 进入时间信息
数据流名:进入时间信息。
简述:描述与车辆进入时间相关的具体信息。
组成:车辆进入时间
来源:由管理系统负责输入。
去向: 流向管理系统。
流通量:大。
峰值:小。
(5) 出去时间信息
数据流名:出去时间信息。
简述:描述与车辆出去时间的具体信息。
组成:车辆出去时间
来源:由管理系统负责输入。
去向:流向管理系统。
流通量:大。
峰值:小。
用例图仅靠用例名称对用例进行了简单定义,对于复杂用例需要添加完整的描述,对于简单用例(只有添加、修改、删除和查询)可以不作描述。完整描述包括用例名称、执行者、前置条件、后置条件、一个主事件流及零到多个备选事件流。用例基础数据管理的描述如表1-1所示,用例车位分配管理的描述如表1-2所示。
表1-1 用例基础数据管理的规格说明
用例名称 | 基础数据管理 |
1执行者 | 管理员 |
2前置条件 | 管理员信息,车位信息已存于数据库中,初始条件已设定 |
3后置条件 | 如果执行成功,显示空余车位信息,以及车主信息,进出时间信息;如果不成功,提示原因 |
4主事件流 | (1)读取车主信息,车辆信息 (2)读取对应单位的初始条件,获得车牌号信息,车主基本信息,进出时间信息 (3)读取车位的信息 (4)显示最近一次该车辆的进出信息 |
5 备选事件流 | E-1:若车主信息为空,提示先进行记录,返回到执行用例前界面 E-2:若车辆信息为空,提示先进行登记注册,返回到执行用例前界面 E-3:若无对应单位的初始条件记录,转到添加初始条件界面,添加完后回到(3) |
表1-2 用例车位分配管理的规格说明
用例名称 | 车位分配管理 |
1执行者 | 管理员 |
2前置条件 | 车位信息已存于数据库中,初始条件已设定 |
3后置条件 | 如果执行成功,显示空余车位信息,以及车辆信息;如果不成功,提示原因 |
4主事件流 | (1)读取车辆信息,车位信息 (2)读取对应单位的初始条件,获得车牌号信息,进出时间信息 (3)显示空余车位信息 |
5 备选事件流 | E-1:若车辆信息为空,提示先进行登记注册,返回到执行用例前界面 E-2:若车位信息为空,提示无车位可停,返回到执行用例前界面 E-3:若无对应单位的初始条件记录,转到添加初始条件界面,添加完后回到(3) |
把系统划分成三个包,分别建立边界类、控制类和实体类。边界类需要调用控制类,控制类需要调用实体类,包之间的依赖关系。
建立类图时,先从实体类着手。从系统的需求描述及一层数据流图中的数据流中寻找需要持久化的对象,每个对象一般对应一个实体类。本系统中需要持久化的对象有管理员信息,车主信息,车位信息,车辆信息,车牌号信息,车辆出入时间信息等。进步一考虑类之间的关联关系。
建立初步实体类图后,应进一步完善,重点考虑实体类之间的关系,最终建立的类图。
交互模型包括顺序图、状态图和活动图,根据系统需要选择使用。对于复杂的用例,一般用顺序图或协作图描述,对于复杂对象可以用状态图描述。
车辆管理系统的顺序图。
车辆信息,车主信息,管理员信息,车位信息
表2-1车辆信息表carInfo
字段名 | 中文名 | 数据类型 | 长度 | 备注 |
carID | 车牌号 | Char | 8 | 主键 |
cTime | 注册时间 | Date | 8 | |
centryTime | 进校园时间 | Date | 8 | |
coutTime | 出校园时间 | Date | 8 | |
cpeople | 车内人数 | Int | 4 | |
cprovince | 所属省份 | Varchar | 8 | |
表2-2车主信息driverInfo
字段名 | 中文名 | 数据类型 | 长度 | 备注 |
driveId | 职工号 | Char | 8 | 主键 |
carId | 驾驶证号 | Char | 8 | 外键 |
dname | 姓名 | Varchar | 10 | |
dsex | 性别 | Varchar | 2 | |
dage | 年龄 | Int | 4 | |
dnum | 手机号 | Char | 13 | |
表2-3管理员信息表administratorInfo
字段名 | 中文名 | 数据类型 | 长度 | 备注 |
administratorsID | 工号 | Char | 8 | 主键 |
apassword | 工号密码 | Char | 13 | |
Aname | 姓名 | Varchar | 10 | |
aage | 年龄 | Int | 4 | |
anum | 手机号 | Char | 13 | |
表2-4车位信息表spotInfo
字段名 | 中文名 | 数据类型 | 长度 | 备注 |
spotId | 车位号 | Int | 4 | 主键 |
carId | 车牌号 | Varchar | 8 | |
数据库表包括车辆信息表carInfo,车主信息表driverInfo和管理员信息表administratorInfo,车位信息表spotInfo共四张表。
通过学习软件工程这个课程,让我们对UML建模有了深刻的认识,能够做一些简单的需求分析,通过软件进行建模,可以画出一些用例图,类图,顺序图,状态图等模型。这是我们第一次做项目文档,基于我们对课程的理解,虽然我们可能做的不太好,但我们都很用心的完成了这个文档。同时我们也认识到了我们在这方面还缺乏很多的知识,在以后的学习中同样要加强对这方面的学习。