软件工程报告.docx
《软件工程报告.docx》由会员分享,可在线阅读,更多相关《软件工程报告.docx(9页珍藏版)》请在冰豆网上搜索。
软件工程报告
软件工程项目报告
项目:
BusWhere
班级:
小组:
组员:
指导老师:
日期:
2014年12月11日
一、简介
BusWhere是一款实时查询公交位置的安卓APP软件。
随着移动互联网行业的迅猛发展以及各大城市公交系统不能及时提供及时服务,诞生了一种全新的公交理念:
实时公交。
BusWhere正是立足于生活中的“公交电子站牌”,结合移动设备便携、强交互特性打造而成的生活实用型APP,目的在于让用户不再局限于以往只能在公交站台等车却不知道公交实时情况,而是随时随地都能查询到公交情况,自由地进行选择,彻底解决人们候车时间长、错过公交,陌生城市上错车等难题。
软件除了基础的线路、站点、距离外,还能查询每条线路上所有行驶公交车的实时位置以及所有经过候车站点的车辆到站信息,实现真正意义上的实时公交。
2、需求分析
1、功能需求
(1)系统需支持多个城市、多条公交线路以及每条线路上的多辆公交车。
(2)乘客端的智能手机App能根据当前乘客位置自动选择所在城市,乘客可以手动从所支持的城市列表中选择城市。
(3)乘客端的智能手机App能根据当前乘客位置获取当前的站点,当可选站点不唯一时,提示乘客选择。
乘客也可以手动选择站点。
(4)乘客可以从经过当前站点的公交线路列表中选择公交线路(包括方向),可选择多条线路。
(5)乘客也可以选择目的地站点,系统将由此获取经过当前站点和目的地站点的线路(可能多条)。
(6)App能显示当前城市的地图、所选的公交线路、当前站点、公交车当前位置。
并用文字显示公交车距离当前站点的距离和预计时间。
2、非功能需求:
(1)当乘客位于系统不支持的城市时,App需给出提示。
(2)当乘客所在城市的公交线路和站点很多时,App的UI设计应方便乘客选择。
(3)当地图上显示多条线路和多辆公交时,应便于乘客区分。
(4)当多条线路和多辆公交都符合乘客搭乘需求时,系统应对数目作出限制,只提供最合适的线路和公交车辆,以保证用户界面的整洁。
3、系统设计
根据需求分析,总结得本系统主要的功能如下用例图所示:
根据以上功能,本项目将主要分为三个系统:
1、位置信息系统;2、线路信息系统;3、信息记录系统。
其中,位置信息系统可细分为两个子系统:
1、乘客位置信息系统;2、公交车位置信息系统;下面分别说明各系统的作用。
1、位置信息系统
1)乘客位置信息系统
该系统主要负责乘客的位置信息管理,当用户打开该APP时,该系统将自动获取用户当前位置信息(若客户端未开启定位服务,需提醒用户是否开启)。
再根据获取到的信息得出乘客所在城市,站点等详细信息,并反馈给用户,使用户能够及时获取当前自己的位置信息然后选择起始车站和终点车站。
2)公交车位置信息系统
该系统负责公交车的位置信息管理。
该系统获取公交车信息(经纬度,获取时间,公交车行驶路线)并保存,根据这些信息计算出公交车的速度,到下一站的距离等等信息。
2、线路信息系统
该系统负责公交车线路信息管理。
1、用户查询任一站点时,系统应该快速获取到能够到达该站点并还未到达的所有公交车信息。
获取到公交车的位置信息之后,根据信息计算出当前每辆车玉该站的距离及到达站点所需要的时间,最后在UI上显示路线以及公交车信息。
2、用户设置起始车站、终点车站后,系统先获取包括两个站点的公交路线,路线信息以文字方式反馈用户。
用户选择一条路线后,系统获取该线路上未到达起始车站的公交车信息,并根据信息计算到终点站的距离和时间,最终显示在UI。
3、信息记录系统
本系统主要用于自动记录各项数据信息。
用户使用APP后,本系统将记录用户以及基本设置信息(例如用户位置历史记录,路线查询历史),并在本地保存,在用户下次打开该APP时,该系统负责调出这些信息,用户无需重新设置即可立即使用,若需要重新设置,用户可通过手动来设置。
同时,该系统还将记录一些用户的收藏信息。
比如用户可选择收藏站点,路线等信息,当用户再次搜索的时候,该系统将从本地直接调出推送给用户而无需向服务器发送请求来获取相关信息,大大减少系统的负担,使整个系统运行更流畅,提高用户体验。
四、对象设计
类设计:
1)城市类(CityInfo)
2)线路类(RouteInfo)
线路类用于记录线路的详细信息,包括线路、站点等信息。
3)站点类(StopInfo)
站点类用于记录站点的信息,如经纬度、站点名等信息。
4)车辆类(bus)
车辆类用于记录该路线上的公交车辆的实时信息,包括经纬度、时间等。
5)请求类(HttpUtil)
用于APP向服务器发起请求,以获取数据。
6)计算类(Calulator)
用于计算时间,距离,路线选择等各类算法。
上述类中1)2)3)4)为实体类,他们之间的关系如下图所示
数据库设计:
1)城市信息表
用于存储城市的信息,对应CityInfo类。
2)线路信息表
用于线路城市的信息,对应RouteInfo类
3)站点信息表
用于存储站点的信息,对应StopInfo类
4)车辆信息表
用于存储车辆的信息,对应Bus类
以上各表之间的关系如下图所示
5、UI设计
客户端:
1、用户打开APP进入UI0,手机屏幕中间部分显示地图,地图中心点为用户当前所在位置。
屏幕上方以文字方式显示用户当前位置,旁边有两个按钮,一个功能为GPS重新定位,另一个功能为用户手动定位。
屏幕下方为菜单栏:
“公交查询”、“路线收藏”。
2、点击屏幕上方GPS重新定位,刷新当前页面,更新地图信息以及屏幕上方文字信息。
点击手动定位,跳转另一个UI1,屏幕中有下拉框,供用户自行选择城市,点击确定返回UI0刷新位置信息。
3、选择“公交查询”,提示两种查询方式:
1、车站查询,点击之后屏幕中地图更新显示用户所在城市所有车站标注点,点击某个车站标注点其余车站标注点消失,并在地图上显示所有即将到达该站的公交车标注点。
点击公交车标注点显示与该站的距离和到达该站的时间,再次点击车站标注点,公交车信息消失其余车站信息重新显示。
2、
路线查询,点击后跳转UI2。
用户选择起始站点和和终点站之后,先以文字方式返回用户所在该城市所有包括这两个站点的路线,用户选择某条路线后,跳转UI3。
UI3中,屏幕下方为两个个按钮,一个:
返回UI1,另一个收藏当前线路信息。
屏幕其余地方为地图,地图显示用户选择的线路信息:
1、车站标注点,点击显示公交车与该站距离和到达时间。
2、线条连接标注点。
3、所有行驶在该线路上却未达到起始车站的公交车
4、选择“路线收藏”,跳转UI4文字方式显示用户收藏的线路信息,选择某条收藏跳转UI3。