已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录摘要1关键字1Abstract1Keys1引言21需求分析21.1系统整体的功能需求21.2系统各模块的功能需求21.2.1公交查询21.2.2城市名片&商家服务31.2.3个人主页31.2.4问路31.3软硬件环境32概要设计32.1系统设计原则32.2对使用本系统的用户的分析42.3系统架构图42.4系统E-R图52.5各个子系统的功能设计62.5.1“公交查询”62.5.2“个人主页”&“问路”82.5.3“城市名片”&“商家服务”103详细设计123.1数据库表设计123.1.1User_Info:用户表123.1.2City:城市表123.1.3BusRoute:公交路线133.1.4BusStop:公交站点133.1.5BusinessOrScenerySpot:景点或商家等类似地点133.1.6PersonalCustom:个性化定制133.1.7Scheduling:个人行程143.1.8AskWay:问路信息表143.1.9AnswerWay:回复问路143.1.10Comment2Spot:对地点的评价143.2系统所用java包的包结构153.3百度地图API的使用153.3.1加载百度地图153.3.2位置检索、周边检索和范围检索153.3.3公交路线搜索164测试175运行结果17结论20致谢22参考文档23城市智能公交查询系统摘要Internet的出现与兴盛彻底改变了人们的生活方式。公交查询的方式也深受Internet的影响。国内已有众多优秀的公交查询系统,所以开发“城市公交查询系统”的目的不求对已有的公交查询系统做出突破,仅仅是为了检测自己对所学专业知识的扎实程度,检验自己对S2SH、Maven等技术的掌握程度,提高自己的调研能力。“城市智能公交查询系统”在实现了公交查询的基础上,增加了个性化、社交性的一些应用,这是与已有公交查询系统相比最大的不同之处。本论文按照“城市智能公交查询系统”的设计、开发步骤,详细阐述了系统开发的需求分析、概要设计、详细设计等阶段。关键字公交 公交查询系统 S2SH MavenUrban intelligent public transport query systemAbstractThe emergence of the Internet changed peoples lifestyle and thriving. Bus query approach also is under the influence of the Internet. Domestic has many excellent public transport query system, so the development of urban public transport query system for the purpose of making breakthroughs to the existing public transport query system, just in order to detect their have the solid professional knowledge level, test their mastery of S2SH, Maven, etc technology, to improve their research ability. Urban intelligent public transport query system in the realization of the public transport query, on the basis of increased the personalization, socialization of some applications, this is one of the biggest differences compared with the existing public transport query system. In this paper, in accordance with the urban intelligent public transport query system the design, development steps, in detail elaborated the system development needs analysis, outline design, detailed design stage.Keyspublic transit, Bus query system,S2SH,Maven引言21世纪是Internet空前繁荣的世纪,Internet渗透到我们生活的方方面面,使我们的生活更加方便。公交查询是人们生活中最常用的应用之一,Internet的普及使人们能更方便的使用这个应用。在Internet兴盛之前,人们想要获得公交信息,通常通过本城市的城市地图或报纸(上面刊登有公交信息)1;在Internet出现之后,出现了很多专门提供公交服务的网站。这些网站从公交公司获得公交信息,再通过网页呈现给人们最新的公交信息。这使得人们不用特意去记忆公交信息,只是到乘坐公交之前上网查一下即可,非常方便2。目前国内已有众多公交查询系统或公交查询API提供商。各公交查询系统的功能目前已经比较完善。为了检测自己对所学专业知识的扎实程度,检验自己对S2SH、Maven的掌握程度,提高自己的调研能力,所以选择“城市智能公交查询系统”的开发作为本人的毕业设计内容。本项目中用到了如下一些相关的技术:S2SH: 为 struts2+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架,它贯穿于我们web应用程序的表示层、业务逻辑层和数据访问层。其中使用Struts2作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对数据访问层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。Maven:是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。1 需求分析1.1 系统整体的功能需求在当今社会,网络已经嵌入人们的日常生活,它已经不再为少数精英人物所独享。网络给人们提供了新的互动环境,新的互动手段和全新的互动空间。本系统虽然主要用于公交查询,但是也提供给用户个性化的、社交性的功能。“城市智能公交查询系统”共分为五个子系统,包括:“公交查询”、“城市名片”、“商家服务”、“个人主页”、“问路”。1.2 系统各模块的功能需求1.2.1 公交查询本模块实现的主要功能有站到站查询,线路查询,站点查询,实时路况,电子地图功能。其中,、能够满足用户最基本的公交查询需求。站到站查询:用户输入公交起点站和终点站,得到起点站到终点站的多种乘车方案,并把路线在地图上显示出来。站点查询:用户输入公交车站名称,可查得经过该公交站点的所有公交路线。线路查询:用户输入公交线路的名称,可查得此公交线路经过的所有站点,并把该公交线路的经过的路径显示在地图上。实时路况:用户可查看城市内主要道路实时的拥堵情况。电子地图:用户可以观看某条公交线路沿线的风景。1.2.2 城市名片&商家服务因“城市名片”与“商家服务”契合较紧密,所以放在一起介绍。在用户对公交查询的需求都满足之后,用户还有这样的更高层次的需求:他们已不满足用本系统查询本城市的公交信息。他们可能想用本系统来了解一座城市,包括这座城市的基本信息、景点、商家等方面。系统管理员会把城市的信息(如:历史地理、人文习俗、美事小吃等)录入数据库,这是城市宣传的一个窗口,能让人们更好地了解、熟悉并喜爱本城市,给城市带来更多的客流和投资;系统管理员把城市内各景点的信息录入数据库,供游客参考;城市内有欲入驻“城市智能公交查询系统”的商家(酒店、饭店、旅店、超市、理发店等均可),可以让系统的管理员把商家信息(地址、电话、价格)录入数据库,这样商家的信息就可以通过网页呈现给需要的用户了。用户可以对商家的服务质量、价格等做出评价,供其他用户参考,同时也迫使商家不断追求提供更具性价比的服务。1.2.3 个人主页用户可注册到“城市智能公交查询系统”。系统可以为注册用户提供个性化定制,个人行程管理。个性化定制:用户定制感兴趣的公交路线、公交站点、景点、商家等,这些信息会显示在用户的个人主页,让用户实时掌握它们的最新信息;个人行程管理:类似日程表的一个应用,用户可用它来管理自己的行程,让自己的生活更有条理。1.2.4 问路用户可以询问一些很难查询到的线路,会有热心网友为用户解答。当然在“问路”上讨论的话题不限于此。1.3 软硬件环境“城市智能公交查询系统”是一个B/S结构的系统。业务处理、数据计算等都在服务器上进行。PC终端负责以网页形式展示查询、处理结果。系统服务器端配置如下:数据库服务器:sql server 2008;Web服务器:tomcat。2 概要设计2.1 系统设计原则在当前诸多条件制约下,首先要研究“城市智能公交查询系统”的实用性,使用户真正得到便利,使城市公交充分发挥作用。“城市智能公交查询系统”开发的原则如下:可行性原则:系统要保证技术上的可靠性和经济上的可行性。计算机系统、通讯网络系统设计和数据设计,在技术上必须是成熟的,经实践检验是成功的,在经济上是可能实现的3。适应性原则:系统要保证可扩展性、可维护性。系统软、硬件都要有扩充升级的充分余地,系统要便于维护,系统对用户的需求要有一定的适应能力4。安全性及保密性原则:“城市智能公交查询系统”的“公交查询”部分主要是调用第三方地图API实现的,且公交信息并不是机密数据,所以系统对“公交查询”部分的“安全性、保密性”的要求较低。“个人主页”部分设计到注册用户的个人行程安排、历史查询记录,与用户隐私息息相关,所以系统对“个人主页”部分的数据安全是非常重视的。除此之外,因系统并没有直接涉及到“金钱交易”等利害功能,所以系统总体上对“安全性”、“保密性”的要求较低4。用户参与系统建设原则:“城市智能公交查询系统”的用户,是获得信息(如:公交车临时改道、商家服务质量)最快捷的群体。设计系统时,要充分发挥用户的主动性,让他们参与到系统建设(主要是数据获取)中。系统工程原则:系统调查、系统分析、系统设计、软件开发以及实施都要遵照系统工程的方法和步骤一步一步地进行,以便确保系统的整体性。统一规划、分期实施、逐步完善原则:“城市智能公交查询系统”要按规划、分阶段实施,由点到面逐步扩充,逐步完善,循序渐进。比如,系统的“公交查询”部分只涉及到第三方地图API的调用,不涉及复杂的数据库设计,所以,可以率先实现“公交查询”。“公交查询”的实现和“数据库设计”可以并行实施。2.2 对使用本系统的用户的分析本系统所面向的用户群主要分为两大类:“用户”和“系统管理员”。而“用户”又可细分为“非注册用户”、“注册用户”、“商家用户”。这四类用户(或角色)的权限详见“角色表”。角色名称权限描述非注册用户可以进行公交查询,浏览城市信息、景点信息、商家信息,查看注册用户对景点、商家的评论,查看系统的“问路”版块的信息。注册用户拥有非注册用户所有的权限,可发表对景点、商家的看法,可在系统的“问路”版块提问、回答别人的提问,拥有“个人主页”,可以在“个人主页”定制自定义信息、制定“个人行程”。商家用户拥有注册用户所有的权限,可发表对景点的看法,可回复注册用户对自己的商家(可以是饭店、旅店、理发店、小吃店、超市等)的看法,可以编辑、修改自己的商家的信息。系统管理员拥有最高的权限,可以做任何事。但是一般不允许系统管理员修改商家的信息。2.3 系统架构图图2-1为系统架构图。图2-1:系统架构图2.4 系统E-R图图2-2为系统E-R图。图2-2:系统E-R图2.5 各个子系统的功能设计2.5.1 “公交查询”“公交查询”子系统是“城市智能公交查询系统”的最基本的子系统。该子系统的功能是调用百度地图API实现的。“公交查询”子系统的用例图如图2-3所示:图2-3:“公交查询”子系统用例图“公交查询”子系统里重要用例的用例规约:用例名称站到站查询角色非注册用户、注册用户、商家用户、系统管理员用例说明为用户提供所需起点站到终点站所有线路信息前置条件用户输入正确的站点基本事件流参与者动作系统响应1、 用户登入界面。2、 系统显示线路行情查询的基本 界面。3、 用户编辑内容确认提交。4、系统显示所查询的线路信息。备选流系统提示所输站点有误,提示重新输入站点后置条件用户获得查询线路信息用例名称站点查询角色普通用户用例说明给用户提供本站点所有车辆信息前置条件启动程序,进入地图界面基本事件流参与者动作系统响应1、进入地图界面,用户点击站点查询功能。2、用户输入站点,点击提交按钮。3、系统响应点击事件,返回经过该站点的所有车次。 备选流无后置条件所输站点有误,提示重新输入用例名称电子地图功能角色普通用户用例说明动态显示交通线路沿线所有的景色以及站点附近的场景。前置条件启动程序,进入地图界面基本事件流参与者动作系统响应1.进入地图界面,用户点击电子地图按扭。2.用户输入查询公交路线,点击提交按钮。3.系统响应点击事件,利用HTML5动态显示相关场景。备选流无后置条件系统显示输入错误,并提示重新输入用例名称离线查询角色普通用户用例说明用户下载离线数据包后,免流量查询信息前置条件启动程序,进入地图离线下载界面基本事件流参与者动作系统响应1.进入地图离线下载界面3.用户下载4.开启离线地图功能5.输入离线查询信息2界面显示离线下载界面6.界面显示地图信息备选流无后置条件用户离线查询,界面显示地图信息用例名称历史记录查询角色普通用户用例说明用例主要功能是用户进入查询信息的界面查询所需信息时,系统会记录用户的查询对象,当用户下一次进入查询时,会显示历史数据前置条件启动程序,进入信息查询界面基本事件流参与者动作系统响应1.进入查询界面,用户点击查询框2.用户输入查询内容3、查询后系统自动保存查询信息4、系统提取历史查询记录,将查询数据反馈给用户 备选流无后置条件系统成功存入历史数据 2.5.2 “个人主页”&“问路”“个人主页”和“问路”这两个子系统,因都需要用户登录系统方可操作,所以在这里把它们放在一起画用例图。“个人主页”子系统和“问路”子系统的用例图如图2-4所示:图2-4:“个人主页”、“问路功能”子系统的用例图“个人主页”子系统和“问路”子系统中重要用例的用例规约:用例名称注册角色非注册用户用例说明非注册用户通过此用户注册到系统前置条件进入注册页;用户没有注册过基本事件流参与者动作系统响应1、进入注册页,用户输入注册信息3、用户点击“注册”按钮2、系统检测注册信息是合法的4、系统检测注册信息是完整的,然后系统提交用户注册的操作备选流 如果用户已存在,则系统提示用户“已注册,请登录”或“请重写注册信息” 如果填写的用户信息非法,则系统提示用户“信息不合法,请重新输入” 如果在用户点击“注册”按钮后,系统检测到注册信息不完整,则系统提示“所填信息不完整,请完成填写”后置条件用户信息成功存入历史数据。用户注册到系统之后,才可以充分应用“个人主页”、“问路”等功能用例名称定制、浏览、退订个性化定制信息角色注册用户用例说明在注册用户的个人主页里,用户可以定制一些他/她比较关心的公交路线、公交站点、商家、景点等信息。前置条件用户已注册;登入到“个人主页”页面基本事件流参与者动作系统响应1、定制个性化定制信息3、浏览个性化定制信息5、退订个性话定制信息2、系统记录用户的个性化定制4、系统把信息从数据库分拣出来推送到页面6、系统把用户的某条个性化定制清楚,然后在用户浏览个性化定制信息时,不再显示退订的个性化定制信息备选流略后置条件略用例名称问路角色注册用户用例说明注册用户如果碰到在“城市智能公交查询系统”不好查到的公交路线,则他/她可以在“问路”模块向广大网友求助;当然,在“问路”上讨论话题的范围不限于此前置条件用户已注册;已登录系统基本事件流参与者动作系统响应1、进入“问路”页面,发表询问信息2、系统检测用户输入的询问信息是合法的,则把询问信息保存到数据库3、刷新页面,此时用户可以看到页面上有自己刚刚发布的询问信息备选流 如果用户输入的询问信息是非法的(如:字数过少、字数过多、有特殊字符、有敏感文字等),则系统提示用户“您输入的询问信息不合法,请重新输入”,并禁止用户提交 如果用户输入的询问信息已存在于数据库(即同一用户两次发表了相同的询问信息),则系统提示用户“您已发布了相同的询问信息,请勿重复提交”,并禁止用户提交后置条件询问信息成功存储到数据库。接下来若有人回答用户的提问,则系统会提示用户“您的询问有了热心网友的新回复”2.5.3 “城市名片”&“商家服务”根据功能划分,“景点介绍”属于“城市名片”子系统的一部分;而根据技术处理方式划分,“景点介绍”和“商家服务”子系统却又非常相似。所以,在这里把“城市名片”子系统和“商家服务”子系统放在一起画用例图。“城市名片”子系统和“商家服务”子系统的用例图如图2-5所示:图2-5:“城市名片”、“商家服务”子系统的用例图“城市名片”子系统和“商家服务”子系统中重要用例的用例规约:用例名称评论商家角色注册用户用例说明注册用户到一家商户进行消费,如果他/她对本次商家的服务有所感想,并且此商家已入驻本系统,则他/她可以登录到系统,查询到此商家的信息,在“评论区”对商家的服务进行评论前置条件用户已注册;已登录系统;商家已入驻本系统;用户在商家进行了消费(非必须)基本事件流参与者动作系统响应1、进入“商家”的“评论区”页面,发表评论信息2、系统检测到用户输入的评论信息是合法的,则把评论信息保存到数据库3、刷新页面,此时用户可以看到页面上有自己刚刚发布的评论信息备选流 如果用户输入的评论信息是非法的(如:字数过少、字数过多、有特殊字符、有敏感文字等),则系统提示用户“您输入的询问信息不合法,请重新输入”,并禁止用户提交 如果用户输入的评论信息已存在于数据库(即同一用户两次发表了相同的评论信息),则系统提示用户“您已发布了相同的询问信息,请勿重复提交”,并禁止用户提交后置条件评论信息成功存储到数据库。用例名称修改商户信息角色商家用户,且该商家拥有该商户用例说明商家用户可以登录到系统,根据商户的价格、地址、联系方式的变动而随时改变商家信息,以及时把最正确的商家信息呈现给其他系统用户前置条件商家用户;该商户归该商家所有;商家信息(如地址、价格、联系方式等)发生了变化 (非必须)基本事件流参与者动作系统响应1、进入“商家”的“编辑区”页面,修改信息2、系统检测到用户的输入是合法的,则把评论信息保存到数据库3、刷新页面,此时用户可以看到页面上有自己修改过后的商家信息备选流如果用户输入的信息是非法的,则系统提示用户“您输入的询问信息不合法,请重新输入”,并禁止用户提交后置条件评论信息成功存储到数据库。3 详细设计3.1 数据库表设计根据“概要设计”里的系统E-R图,我们知道本系统至少需要10张表。下面分别对各表给出设计方案。3.1.1 User_Info:用户表字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号NameVarchar(32)否用户的注册名EmailVarchar(64)否3.1.2 City:城市表字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号NameVarchar(16)否城市名称IntoduceVarchar(1024)是对城市的大致介绍ClimateVarchar(512)是对城市气候的介绍DeliciousSnacksVarchar(1024)是对城市的美食小吃的介绍CulturalFestivalsVarchar(1024)是对城市的民俗节庆的介绍3.1.3 BusRoute:公交路线字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号CityIdintegerForeign Key否公交路线所属城市的唯一编号BusNumberVarchar(16)否线路名称BusStopsVarchar(512)是线路经过的站点的名称的集合LastChangeDateTimeDateTime是信息最后更新时间3.1.4 BusStop:公交站点字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号CityIdintegerForeign Key否公交站点所属城市的唯一编号StopNameVarchar(32)否站点名称BusRoutesVarchar(512)经过站点的路线的名称的集合LastChangeDateTimeDateTime是信息最后更新时间3.1.5 BusinessOrScenerySpot:景点或商家等类似地点字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号CityIdintegerForeign Key否景点或商家等类似地点所属城市的唯一编号TypeVarchar(16)是地点的类型(商家、景点等)NameVarchar(64)是地点的名称IntroduceVarchar(1024)是对地点的简介PriceInteger是消费情况TelPhoneVarchar(32)是联系方式AddressVarchar(128)是地址Recommendinteger否推荐次数。初始值为0DisRecommendInteger否不推荐次数。初始值为0LongitudeFloat是地点所处经度LatitudeFloat是地点所处纬度3.1.6 PersonalCustom:个性化定制字段名数据类型键情况可空说明UserIdIntegerForeign KeyPrimary Key否所属用户的唯一编号BusRouteIdsVarchar(2048)是定制的若干公交路线的编号的集合BusStopIdsVarchar(2048)是定制的若干公交站点的编号的集合SpotIdsVarchar(2048)是定制的若干地点的编号的集合3.1.7 Scheduling:个人行程字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号UserIdIntegerForeign Key否所属用户的唯一编号TitleVarchar(64)否行程的名称ContentVarchar(1024)是行程的详情ExecuteDateTimeDateTime否执行日程的日期时间FormulateDateTimeDateTime否制定日程的日期时间3.1.8 AskWay:问路信息表字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号UserIdIntegerForeign Key否所属用户的唯一编号KeywordsVarchar(64)是关键字ContentVarchar(512)否问路的内容AskDateTimeDateTime否问路日期时间3.1.9 AnswerWay:回复问路字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号AskWayIdIntegerForeign Key否所属问路信息的唯一编号AnswerUserIdIntegerForeign Key否回复者的唯一编号AnsweredUserIdIntegerForeign Key否被回复者的唯一编号ContentVarchar(512)否回复内容RecommendTimeInteger否推荐次数,初始值为03.1.10 Comment2Spot:对地点的评价字段名数据类型键情况可空说明IdintegerPrimary key否唯一编号SpotIdIntegerForeign Key否所属地点的唯一编号UserIdIntegerForeign Key否所属用户的唯一编号IsRecommendBoolean是是否推荐。不填代表观点中立ContentVarchar(512)否评论内容3.2 系统所用java包的包结构若系统功能和实现技术统一考虑的话,本系统的Java代码可分为5个包:(1) common:里面放一些共用的、公共的包或类,如日志类、压缩与解压缩类等;(2) bus:放与公交查询相关的包或类;(3) spot:放关于景点、商家的包或类;(4) personalPage:放与个人主页相关的包或类;(5) discuss:放与问路相关的包或类。关于景点、商家的评论,虽然在功能上属于spot包,但在技术上属于discuss包,所以把对于景点或商家的评论的相关包或类放在了discuss里。根据S2SH的分层体系思想17,上述五个包的每个包里至少有四个子包,分别是action、service、dao、data,也可以把action、service、dao叫做action层、service层、dao层。下面分别对action、service、dao、data作简单介绍:(1) action:业务控制层。负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现;(2) service:业务逻辑层。负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑;(3) dao:数据访问层。负责与持久化对象交互。该层封装了数据的增、删、查、改的操作;(4) data:持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库。3.3 百度地图API的使用百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发18。本系统用到了百度地图JavaScript API几乎所有的功能函数,所以下面将挑选较重要的接口做简要说明。3.3.1 加载百度地图接口:Map(container:String|HTMLElement, opts:MapOptions);说明:在指定的容器内创建地图实例,之后需要调用Map.centerAndZoom()方法对地图进行初始化。未进行初始化的地图将不能进行任何操作。接口在代码中的使用情况:var map = new BMap.Map(map_container);map.centerAndZoom(new BMap.Point(114.392567, 30.488104), 12);map.enableScrollWheelZoom();map.addControl(new BMap.NavigationControl();map.addControl(new BMap.OverviewMapControl(); 3.3.2 位置检索、周边检索和范围检索接口:LocalSearch(location:Map|Point|String, opts:LocalSearchOptions);说明:创建一个搜索类实例,其中location 表示检索区域,其类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由当前地图中心点确定,且搜索结果的标注将自动加载到地图上,并支持调整地图视野层级;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行18。接口在系统中的应用效果:如图3-1所示。图3-1:周边搜索3.3.3 公交路线搜索接口:BusLineSearch(location:Map|Point|String, options:BusLineSearchOptions);说明:创建公交线搜索类。其中location 表示检索区域,其类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由当前地图中心点确定;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行18。接口在系统中的应用效果,如图3-2。图3-2:公交路线搜索4 测试白盒测试是一种以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称为结构测试法或玻璃盒测试法。合理的白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多的发现程序中的错误。主要有两种方法:一种是逻辑覆盖法,另一种称为路径覆盖法。在这里我们采用逻辑覆盖法19。在开发“城市智能公交查询系统”的时候,我们对系统使用白盒测试技术进行了全面测试,采取的具体测试思路是:网页兼容性测试:为了保证系统的每一个网页在主流浏览器上都能呈现出预想的、一致的效果,我专门安装了IE、Chrome、Firefox、Opera等浏览器,确保每一个网页在以上浏览器内都展现正常。数据跟踪:我对系统内的每一个数据进行了跟踪测试。比如,对“用户信息”,从注册开始,到登录,到用户发表评论等,都要确保用户信息是完整的、一致的。注册用户时,未注册用户输入“用户名”时,系统要验证所输入的“用户名”是数据库中没有的(因用户的“用户名”是两两各不相同的);修改用户信息时,除更新数据库中表“User_Info”中用户的信息,还要检查用户在“个性化定制”、“问路”、“景点评论”、“商家评论”等板块中的痕迹,如果发现已有内容与用户最新信息有不符的地方,要检查数据库表中的主键、外键的设置是否正确。移植测试:我把系统拷贝到其他计算机上运行,看其移植性能和对环境的要求。综合测试:在以上测试的基础上对系统功能进行整体的测试,依此来检验系统功能是否符合设计的要求。5 运行结果首页:在浏览器地址栏输入http:/localhost:8081后回车,就进入“城市智能公交查询系统”的首页。首页呈现给用户的是一张地图,和用于公交查询的若干输入框。在首页也可以点击去往“登录”、“注册”、“问路”等模块。图5-1为首页效果。图5-1:系统首页城市名片:在首页的地图上点鼠标右键,在出现的菜单栏的“城市名片”菜单上左击。地图会分析鼠标当前所处位置属于哪座城市,然后把该城市的简单简绍显示在首页。如果用户还要对城市做进一步了解,可点击“更多”,则系统会展现出如图5-2所示。图5-2:城市名片景点或商家服务:因为城市景点与商家有很多相同之处,所以系统把景点和商家的处理方式统一起来,即,在“城市名片”页面里,罗列出各个景点或商家,用户可选感兴趣的点击进入做更多了解。我们在这里选择了一个景点,图5-3是系统对该景点的信息的展示。图5-3:景点介绍电子地图:在首页上部有一个“电子地图”的链接可通往此功能。先查询一趟公交路线,然后系统会模拟出一个“人”,从该公交路线的起点走到终点,每经过一站,就稍作停顿,以展示该站点或站点附近的景色的照片。如图5-4所示:图5-4:电子地图用户注册页面:用户注册时,系统在用户输入用户名时检测该用户名在系统数据库中是否已存在,会检查输入的密码的长度,也会检查输入的邮箱地址是否合法(但不能检查出邮箱是否存在)。图5-5为注册页面。图5-5:用户注册页面用户登录页面:如果用户已经注册到系统,则他/她可以在这里登入系统。图5-6为登录页面。图5-6:用户登录页面问路板块:用户在这里问路,也可以回答别人的问路。如图5-7所示。图5-7:“问路”页面结论预想中,系统做出来之后的样子完全符合当初的“需求分析”的,即它是一个功能明确、操作简单、有良好用户体验、数据更新快的“公交查询系统”,而且附加的诸如“问路”、“个性化定制”、“商家服务”等功能,使它超越了一般意义上的“公交查询系统”,变得更加个性化、人性化,并且带有些许社交属性。但由于时间紧张、精力有限,系统的很多设想未来得及实现,或没有足够的技术力量去实现。但最可贵是对“公交查询系统”领域提出的一些富有创意的想法。尽管如此,本系统还是实现了大部分的预期功能。如“电子地图”功能。系统预想的“电子地图”类似谷歌地图的“街景”功能,事先把公交沿线风景全方位拍下来,然后在系统中可以沿公交线边“走”边“观看”沿途风景,达到虚拟现实的效果。但是实现起来确实有一定困难。首先是不知道谷歌的“街景”采用了什么技术,再者,知道了谷歌“街景”采用的技术,但是这必须要设计到大数据量的采集、大数据量的计算,对于规模较小的团队或个人是无力承担的。所以必须要绕道其他途径实现“电子地图”功能。最后,我把百度地图的“折线覆盖物”、“运动坐标点”、“地址解析”、“反地址解析”等API结合起来,实现了“电子地图”功能。它与谷歌街景相比实在只能算是小儿科,但是它代表了我个人的突破,一样值得自豪。致谢经过一个月时间的努力,论文即将脱稿付印。此时,我思绪万千,心情久久不能平静。回顾近四年的千百余个日日夜夜,自己为有机会在某某大学学习,品味民大的纯酿,感受母校的精神,不断的在各个方面提示自己并取得了一定的成绩而感到欣慰。欣慰之余,我要向关心和支持我学习的所有老师、朋友表示真挚的谢意!感谢你们对我的关心、关注和支持!在即将毕业离校之际,我要感谢23#630宿舍全体同仁生活上给予我的关心和帮助以及学业上的切磋和指点,感谢09级软件工程3班全体同学的帮助和勉励。同窗之谊和手足之情,我将终生难忘! 最后,衷心的感谢我的指导老师杜某某老师给予我无私的帮助。您的教诲让我明白了自己的不足,让我明白做什么事都必须有严谨的态度。您的言传身教将使我终生受益!路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学和朋友!参考文档1 (美)Abraham Silberschatz Henry F.Korth S.Sudarshan 杨冬青 李红燕 唐世渭,数据库系统概念(第6版)M,机械工业出版社 ,北京,20122 陆舟,Struts2技术内幕:深入解析Struts2架构设计与实现原理M ,机械工业出版社,北京,20123 孙卫琴,hibernate逍遥游记M,电子工业出版社,北京,20104 许晓斌,Maven实战M,机械工业出版社,北京,20115 (英) Paul Nieuwenhuis, (荷) Philip Vergragt, (英) Peter Wells等编著 王云鹏等译,未来的交通:交通产业的可持续发展M,机械工业出版社,北京,20126 Manoj Debnath Bio,Implementing AOP in SpringJ, /java/implementing-aop-in-spring.html,February 25, 20137 Cagdas Basaraner ,20 Database Design Best PracticesJ, /2012/02/20-database-design-best-practices.html, February 3rd, 20128 Andrey Redko,Going REST: embedding Jetty with Spring and JAX-RS (Apache CXF)J, /2013/01/going-rest-embedding-jetty-with-spring-and-jax-rs-apache-cxf.html,January 22nd, 20139 Daniel Reuter,10 Tips on Java Debugging with EclipseJ,http:/blog.codecentric.de/en/2013/04/again-10-tips-on-java-debugging-with-eclipse/,April 8, 201310 Shivprasad,11 Important Database Designing Rules J ,http:/blog.codecentric.de/en/2013/04/again-10-tips-on-java-debugging-with-eclipse/,April 04, 201211 百度在线网络技术(北京)有限公司,Reference_of_Baidu_JavaScript_API_v1.5EB/OL,北京,201312 songxing2010,SQL Server 2008安装指南D,百度文库,201013 梅宏, 申峻嵘. 软件体系结构研究进展J. 软件学报, 2006(6).14 仇书礼, 初佃辉, 孟凡超. 基于Spring的构件动态演化机制J. 计算机工程, 2012(2).15 赵春亮, 张建国, 孟晨. 基于Struts2拦截器的日志记录的设计与实现J. 计算机与现代化, 2011(2).16 张铁头, 刘磊. 基于模板的WEB视图层生成技术J. 数字技术与应用, 2012(7).17 屈建明, 陈洁. FreeMarker模板引擎动态生成网页的应用研究J. 计算机与现代化, 2011(3).18 邵雪航. Hibernate框架技术下关联映射在WEB项目中的应用J. 电脑知识与技术, 2012(32).19 孙仁鹏, 何淼. Tomcat性能监视和调优研究J. 软件导刊, 2012(12).王红崧, 周海晏. 基于百度地图API的旅游地理信息系统开发J. 现代计算机(专业版), 2012(23).袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 导管内微乳头状癌的护理
- 2026江苏镇江市丹徒区教育局所属学校“才荟丹徒”校园招聘教师30人笔试备考试卷带答案解析
- 2026年设备监理师之质量投资进度控制考试题库200道及答案【真题汇编】
- 2025重庆巫山县人力社保局公益岗招聘2人模拟试卷附答案解析
- 九江学院2025年第二批公开招聘博士研究生学历学位高层次人才备考题库及答案解析(必刷)
- 2026年(通讯维修工)理论知识考试题库含答案(b卷)
- 2026年陕西省选调生招录(面向陕西师范大学)备考题库及答案解析(必刷)
- 2025湖南娄底双峰县城乡建设投资集团有限公司下属子公司专业管理人才引进招聘参考题库附答案解析
- 2026年设备监理师之设备监理合同考试题库(易错题)
- 2025山西阳泉市平定县从社区专职网格员中选聘社区专职工作人员笔试模拟试卷带答案解析
- 基于LoRa技术的列车防御系统研究与应用
- 军工产品知识培训课件
- 2025年度领导干部任前应知应会党内法规和法律知识考试题(附答案)库
- 电力营销安全培训教学课件
- 网络安全漏洞扫描报告
- SMETA确保员工合法工作权的核查程序-SEDEX验厂专用文件(可编辑)
- 医院人员定岗定编实施方案
- 光伏电站运维表格大全
- 无人机无人机航空摄影测量技术提升方案
- 脑瘫儿童家长培训
- 农村供水工程水质净化消毒技术应用方案
评论
0/150
提交评论