软件工程大作业之停车场管理系统

软件工程设计

题目:停车场管理子系统

班级:

姓名:

学号:

指导老师:

第一章问题定义

1.1业务调查

    随着社会的发展和人民生活水平的提高,买车成为了人们奋斗目标之一,当然已经有很多人买了车。可是随着车辆的增加,车辆的停泊问题也随之出现。人们的生活方式发生着深刻的变化。城市的交通用即便是这种变化引起的现象之一。城市由于交通设施的增加造成的的交通拥挤甚至混乱给人们的生活带来了极大的不便,这种不便迫使人们寻求高技术的有效手段去解决这种不便,这就使得各个停车场需要更加先进,更加完善的车辆管理系统,为车主带来方便,使停车场的管理系统化。因此开发了停车场管理系统。

1.2需求陈述

1)车主进入停车场:车主在停车场外,停车场外的显示屏上显示空余停车位的数量,若有空余,车主来到挡车器前,系统自动识别车牌号,记录车辆进入停车场的时间与车牌号,挡车器放行,车主进入停车场。若因为某些原因,系统无法识别,如:车辆还未上牌,车辆使用的是临时车牌,这种情况下,由管理员负责手动录入车辆信息(车牌号,进入时间,特殊情况备注:未上牌或临时牌),无特殊情况则不需要备注。

2)车主离开停车场:车主再次来到挡车器前,系统自动识别车牌号,记录车辆离开停车场的时间,并计算停车费用,车主支付完成后,挡车器放行,车主离开停车场。若出现以上的特殊情况,则由管理员手动处理录入信息,费用则是由系统完成计算。

3)管理员查看车辆信息:管理员登陆该系统,可以对车辆信息(车牌号,进出时间,停车费费用,特殊情况备注)进行管理,可查讯车辆信息,添加车辆信息,删除车辆信息。

1.3业务模型

1.3.1业务模型

            

 

图1-1 业务用例模型

1.3.2车主业务活动图

 

              

图1-2车主业务活动图

1.3.3管理员业务活动图

 

图1-3管理员业务活动图

第二章 需求分析

2.1系统用例建模(根据对1.2的分析进行系统用例建模)

2.1.1参与者概述

1)车主——停车服务

2)管理员——管理车辆进出的相关信息

2.1.2用例概述

1)车主来到有空余车位的停车场,进入停车场停车,支付停车费用后离开停车场

2)管理员输入正确的账号和密码登陆系统,管理车辆进出的信息,包括车牌号,进出时间,停车费费用。

2.1.3用例关系

正在上传…重新上传取消

 

图2-1系统用例图

2.2用例规约说明

表2-1 “进入停车场”用例规约a

用例名称:

进入停车场

用例id:

P1

参与者:

车主

用例说明:

车主进入停车场

前置条件:

车主驱车到挡车器前

主事件流:

  1. 车主驱车到挡车器前,用例开始。
  2. 系统自动识别车牌号,记录车牌号与进入停车场的时间。
  3. 记录完成,挡车器放行。
  4. 车主驱车进入停车场。

异常事件流

无法识别车牌号

后置条件:

车辆信息记录成功

表2-2“进入停车场”用例规约b

用例名称:

进入停车场

异常事件流:

车主驱车到挡车器前,系统无法识别车牌号

  1. 车主驱车到挡车器前,用例开始。
  2. 录入车辆信息
  3. 记录完成,挡车器放行。
  4. 车主驱车进入停车场。

后置条件:

车辆信息记录成功

表2-3“支付费用”用例规约

用例名称:

支付费用

用例id:

P2

参与者:

车主

用例说明:

车主结算费用

前置条件:

车主驱车到挡车器前

主事件流:

  1. 车主驱车到挡车器前,开始用例。
  2. 系统自动识别车牌号,找到车辆进入停车场的相关信息(车牌号,进入停车场的时间),并记录离开停车场的时间。
  3. 系统核对车辆信息,计算停车费用。
  4. 车主支付停车费。

异常事件流

后置条件:

支付成功

表2-4 “离开停车场”用例规约

用例名称:

离开停车场

用例id:

P3

参与者:

车主

用例说明:

车主离开停车场

前置条件:

车主支付成功

主事件流:

  1. 车主支付成功后,用例开始。
  2. 挡车器放行,车主驱车离开停车场。

异常事件流

后置条件:

表2-5 “登陆”用例规约a

用例名称:

登陆

用例id:

P4

参与者:

管理员

用例说明:

管理员登陆系统

前置条件:

主事件流:

  1. 管理员进入到登陆界面,用例开始。
  2. 当管理员未经过身份验证并且身份验证尝试次数小于或等于三时
    1. 系统要求管理员提供其管理员账号和密码。
    2. 管理员输入其管理员账号和密码。
  3. 管理员账号和密码正确无误。
  4. 系统对管理员进行身份验证。

异常事件流

管理员身份验证失败。

后置条件:

管理员登陆系统。

表2-7 “查看车辆信息”用例规约

用例名称:

查看车辆信息

用例id:

P5

参与者:

管理员

用例说明:

管理员查看车辆信息

前置条件:

管理员已登陆系统

主事件流:

  1. 当管理员选择要浏览的车辆类型时,用例开始。
  2. 系统将显示车辆信息目录。

异常事件流

后置条件:

表2-8 “查询车辆信息”用例规约

用例名称:

查询车辆信息

用例id:

P6

参与者:

管理员

用例说明:

管理员查询车辆信息

前置条件:

管理员已登陆系统

主事件流:

  1. 管理员选择“查找”,用例开始。
  2. 管理员输入搜索的车牌号。
  3. 系统搜索符合条件的车辆。
  4. 系统显示车辆相关信息

5其他

5.1 系统告诉管理员未找到匹配的车辆

异常事件流

后置条件:

表2-9“录入车辆信息”用例规约

用例名称:

添加车辆信息

用例id:

P7

参与者:

管理员

用例说明:

管理员手动录入车辆信息

前置条件:

管理员已登陆系统

主事件流:

  1. 管理员选择“添加信息”,用例开始。
  2. 系统显示车辆详细信息填选表单,包括车牌号和进入时间(必填)、
  3. 同时(未完成添加)

3.1   管理员选择一个字段并添加其值。

  1. 系统要求管理员确认添加。
  2. 管理员选择确定。
  3. 系统将新的车辆添加到目录中

异常事件流

后置条件:

新的车辆信息已添加到目录中

表2-10 “删除车辆信息”用例规约

用例名称:

删除车辆信息

用例id:

P8

参与者:

管理员

用例说明:

管理员手动删除车辆信息

前置条件:

管理员已登陆系统

主事件流:

  1. 当管理员选择“删除信息”时,用例开始。
  2. 系统向管理员询问车辆标识符。
  3. 管理员输入车辆标识符。
  4. 系统要求管理员确认删除。
  5. 管理员选择确定。
  6. 系统删除车辆详细信息。

异常事件流

后置条件:

车辆的详细信息已从系统中删除。

第三章 面向对象分析

3.1用例实现

使用顺序图,按B-C-E架构实现每一个用例

图3-1登陆时序图

 

图3-2删除车辆信息时序图

 

图3-3添加车辆信息时序图

 

图3-5查找车辆信息时序图

 

图3-6查看车辆信息时序图

3.2分析类模型

建立系统的分析类图,为每个类分配职责、属性,及对类之间的关系建模

 

 

第四章 面向对象设计

4.1数据库设计

数据库结构

  1. 车辆信息表

列名

数据类型

可否为空

说明

备注

Carin

Datetime

Not null

入库时间

主码

Carout

Datetime

出库时间

carpay

Float(20)

停车费用

carno

Varchar(20)

Not null

车牌号

主码

表3.5车辆信息表

(2)管理员信息表

列名

数据类型

可否为空

说明

备注

rId

varchar(20)

not null

管理员账号

主码

password

varchar(20)

not null

密码

表4.1 管理员信息表

4.2设计类

实体类

在OOA阶段得到的类图中有两个实体,分别是车辆和管理员

边界类

  1. 管理员登陆边界类—LogOn.java
  2. 车辆信息管理—mainWindowsjava
  3. 录入车辆信息界面—addcar.java
  4. 查询车辆信息界面—findcar.java
  5. 删除车辆信息界面—delcar.java

控制类

  1. 登陆控制类—接收登陆请求,控制登陆过程的状态,调用模型,转发请求到管理员登陆边界类logOn.java。
  2. 车辆信息管理—接收请求,控制车辆信息管理的执行状态,调用模型,得到处理结果,转发请求到车辆信息管理mainWindows.java。
  3. 录入车辆信息—接收录入请求,控制录入车辆信息的执行状态,调用模型,得到处理结果,转发请求到录入车辆信息addcar.java。
  4. 查询车辆信息—接收查询请求,控制查询车辆信息的执行状态,调用模型,得到处理结果,转发请求到查询车辆信息FindCar.java。
  5. 删除车辆信息—接收删除请求,控制删除车辆信息的执行状态,调用模型,得到处理结果,转发请求到删除车辆信息DelCar.java。

4.3软件体系结构

本系统采用MVC设计模式搭建程序结构,模型用来完成对业务逻辑的封装,控制器控制各个程序流程,也就是上一个设计的控制类的实现;视图用来显示页面,也就是上一步设计的边界类的实现。

模型部分除了包含对上一步设计的实体类的属性封装外,还需要实现实体类对应的各个方法,对全部的业务功能进行分类,设计各个业务的Bean如下。

carService实现车辆信息管理相关的业务,包含以下方法:

add_in()---在车辆信息表中添加一条车辆入库信息。

Add_out()---在车辆信息表中添加一条车辆出库信息。

FindCar()---查询车辆信息

delCar()---删除车辆信息

lookCar()—查看车辆信息。

4.4交互界面设计

1.登陆logOn.java

 

图4-1登陆界面设计

2.车辆信息管理mainWindows.java

 

图4-2车辆信息管理界面设计

 

图4-3浏览车辆信息

 

图4-4添加车辆信息

 

图4-5添加出库车辆信息

6. 删除车辆信息DelCar.java

 

图4-6删除车辆信息

7. 查询车辆信息findCar.java

 

图4-7查询车辆信息

第五章 面向对象实现

5.1停车场信息管理系统编码实现

本系统基于Java+MySQL+swing,

 

第六章 软件测试与部署

6.1 软件测试

本停车管理系统在设计开发过程中就采用软件测试的V模型来规范软件测试。V模型推崇开发与测试并行的方式,在开发完一个功能模块以后就进行相应的单元测试,注重细节方面的问题。接着再进行集成测试,主要测试模块间的接口能否互通的问题。最后,在进行功能测试来检测整个系统运行是否正常。

在测试过程中主要采取的是功能测试,通过功能测试可以逐一检测各个功能是否可以满足停车场管理人员的需求。

6.2 功能测试

功能测试是一种黑盒测试,这是根据软件需求的要求设计测试用例并验证系统功能的过程,并且通过与测试系统的外部输入与输出的关系来验证。功能测试在于测试功能是否正常,因此不考虑内部的实现方式,测试的前提就是系统已经处于运行状态。

本停车管理系统对在设计开发过程中多次对系统功能进行测试,确保功能的正常运作。

6.3功能测试总结

主要对停车场管理系统的登录、车辆驶入、车辆驶出、对车辆信息的增删改查操作进行功能测试。测试过程中界面UI的显示都符合预期,功能方面符合需求。

6.4用例测试

6.4.1登录用例测试

测试用例编号

Login_01

测试标题

输入正确的用户名和与之对应的密码

预置条件

系统存在该用户

输入

Username:admin123

Password:123456

操作步骤

打开系统登录页面,输入username(admin123),password(123456)

预期输出

密码输入时被隐藏,管理员登录到系统首页

测试用例编号

Login_02

测试标题

输入错误的用户名或错误的密码

预置条件

系统存在该用户|系统不存在该用户

输入

Username:随机

Password:随机

操作步骤

打开系统登录页面,输入username,password

预期输出

提示用户“登录失败!用户名或密码错误”

6.4.2添加信息用例测试

测试用例编号

Add_01

测试标题

增加后可在页面中查看该信息

预置条件

管理员登录成功

输入

输入要添加的信息

操作步骤

点击【添加】,输入相应的信息,点击【添加】

预期输出

终端输出“添加成功!”

6.4.3查询信息用例测试

测试用例编号

Find

测试标题

输入车牌号后可以看到相关信息

预置条件

管理员登录成功,所查询的信息存在

输入

相应车牌号

操作步骤

输入要查询的车牌号信息,点击【查询】,

预期输出

界面显示出其相关的信息。

6.4.4浏览信息用例测试

测试用例编号

Look

测试标题

浏览所有的车辆信息

预置条件

管理员登录成功,所浏览信息存在

输入

操作步骤

点击【浏览车辆信息】,

预期输出

浏览页面显示所有的车辆信息详情

6.4.5删除信息用例测试

测试用例编号

Delete

测试标题

确认删除信息后无法看到该信息

预置条件

管理员登录成功,所删除信息存在

输入

操作步骤

输入要删除的车牌号信息,点击【删除】,

预期输出

终端输出“删除成功!”,页面中该信息不存在

6.5本章小结

本章节主要介绍了对停车场管理系统进行功能测试的必要性和测试结果,针对当前停车管理系统设计了一系列的功能测试用例。通过系统测试使系统更能符合预期要求,并能检测和修复一些开发过程中的bug。

  • 33
    点赞
  • 372
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
软件工程作业中,CSDN(全称:中国软件开发网)是一个非常重要的资源平台。CSDN是一个面向IT技术和软件开发领域的社区,提供了大量的技术文档、开发教程、项目案例等资源。在软件工程作业中,可以通过CSDN获取到很多帮助和支持。 首先,CSDN上有丰富的技术文章和开发教程,可以提供给我们一些实践指导。在大作业的开发过程中,可能会遇到一些技术难点或者需要学习新的开发框架,通过CSDN上的文章和教程,我们可以了解到其他同学或者开发者的经验分享,学习到一些开发技巧和解决问题的方法,这对于我们完成大作业非常有帮助。 其次,CSDN还提供了丰富的开源项目和项目案例,我们可以通过这些项目来学习和借鉴。在软件工程作业中,我们可能需要开发一些特定的功能或者系统,而这些功能或者系统往往已经有其他开发者实现过了,我们可以通过CSDN上的开源项目来学习和参考其代码和设计思路,避免重复造轮子。 除此之外,CSDN还有一个活跃的技术问答社区,我们可以在这里向其他开发者提问,寻求帮助和解答疑惑。在软件工程作业中,我们可能会遇到一些bug或者困惑,通过在CSDN的问答社区提问,我们可以得到其他开发者的帮助和意见,加快解决问题的速度。 综上所述,CSDN是一个非常宝贵的资源平台,在软件工程作业中可以通过CSDN获取到很多实用的技术文档、开发教程、项目案例和社区支持,能够提高我们的开发效率和解决问题的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值