1、 摘 要由于社会在不断发展,互联网已经被千千万万的家庭所接收,公交查询在日常生活中占有很重要的位置。通过对公交信息管理系统的现状分析,考虑如何在日常生活中充分利用网络和计算机的优势, 使公交信息既能够得到及时有效的查询,又能得到高效的管理,并节省日常生活中的时间、提高效率。 本系统应用B/S结构,MVC模式采用S2SH框架技术编写,采用MySQL作为后台数据库。本系统论文的前言部分主要介绍了与该系统相关的国内外现状以及开发该系统在需求上,技术上的可行性,并介绍该系统开发用到的一些关键性的技术;当确定需求后,该论文的系统设计部分就介绍了具体该怎么去设计并实现该系统。然后该系统论文的系统实现部分再
2、介绍具体实现的细节了。该系统主要功能包括公交车线路信息查询,公交车论坛,公交新闻,公交车线路图,资源上传下载,用户留言,乘车指南,论坛管理,新闻管理,图片管理,资源管理,留言管理,维护个人信息等功能。关键词:公交信息管理,B/S结构 ,S2SH框架 ,MySQL数据库 ABSTRACTWith the development of the society, the internet has been accepted by millions of families. Through analyzing the present situation of the bus information m
3、anagement system, to consider how to make full use of Internet in our daily life and the advantage of computer, both to make the bus information, timely and effective query and can get efficient management, and save the time and improve efficiency of daily life.The system applied B/S structure, MVC
4、pattern written by S2SH frame technology.The foreword of thesis of bus system introduces somthings about the system at home and abroad,and the Demand feasibility and the technical feasibility of developing the system.There are also introduce some key technology about this system.After confirm the de
5、mand,the part of the system design of thesis can tell us how to do the system.And then,the part of system implementation of the thesis let us know that how to coding to implements the system.The system main function includes bus information query, bus BBS, news, bus image center, resource upload and
6、 download, user messages, system introduction, BBS management, news management, image management, resource management, message management, maintenance of personal information, and other functions. Keyword: The bus information management, B/S structure, S2SH framework, MySQL Database 毕业设计(论文)原创性声明和使用
7、授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学
8、校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被
9、查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤
10、情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设
11、计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优
12、良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教
13、研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日目 录第一章 概述11.1开发背景11.2目的及意义11.3课题研究的内容2第二章 系统开发的相关技术32.1 JSP技术32.2 MVC模式32.2.1 Model: 系统状态和商业逻辑JavaBeans42.2.2 View: JSP页面和表示组件42.2.3 Controller: ActionServlet和ActionMapping52.3 Struts2简介52.4 MySQL数据库6第三章 需求分析83.1 技术支持83.1.1 系统框架的选择83.1.2 数据库的选择93.2 系统功能需求9
14、3.2.1 总体需求103.2.2 各模块设计103.2.3 数据流图113.3 系统非功能需求123.3.1技术可行性123.3.2管理可行性133.3.3系统准确性和及时性133.3.4系统开放性和可扩充性133.3.5系统易用性和易维护性133.3.6系统的响应速度13第四章 总体设计144.1系统用例图设计144.1.1系统前台用例图144.1.2系统后台用例图154.2系统模块划分图154.3系统E-R图164.4系统流程图174.5数据库设计184.5.1数据库设计原则184.5.2数据表结构设计19第五章 详细设计与实现225.1系统的活动图225.1.1会员注册模块225.1.
15、2登陆模块225.2系统框架关键配置235.2.1 Struts2关键配置235.2.2 Spring事务管理配置245.2.3 Hibernate持久化配置255.3各功能模块实现265.3.1用户登录注册模块的实现265.3.2公交查询模块的实现285.3.3公交论坛模块的实现325.3.4公交新闻模块的实现335.3.5公交线路图模块的实现345.3.6资源上传下载模块的实现355.3.7用户留言模块的实现375.3.8乘车指南模块的实现395.3.9线路管理模块的实现395.3.10论坛管理模块的实现425.3.11新闻管理模块的实现435.3.12图片管理模块的实现455.3.13资
16、源管理模块的实现465.3.14留言管理模块的实现475.3.15用户管理模块的实现48第六章 软件测试506.1软件测试的目的及意义506.2测试的方法506.3测试用例516.3.1 注册测试用例516.3.2 登陆测试用例516.3.3 公交查询功能测试用例52谢 辞54参考文献55第一章 概述1.1开发背景城市公交是专门服务于市民出行的客运企业。它是城市社会和经济活动的重要组成部分。伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而
17、成为城市交通的主体。但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。现阶段,人们的出入方式主要还是来源于城市公交,特别是对于那些到外地出差、打工,进行商业有关或其他事情需要在外地进行短暂停留的人而言,公交对他们是必不可少的,但是对于那个不属于自己所熟悉的城市,坐公交也是一个很大的难题,因此,开发一个公交查询系统就显得非常的重要。随着城市经济的发展、规模的扩大以及人口的增长,城市交通问题日益突出。降低出行时间将使所有的公交利用者产生效益,快速的交通、更好的信息及更好的市场可以提高公交的形象,能够增加公交乘坐者。城市公共交通运输以其覆盖面广、经济、快捷的特点,成
18、为绝大多数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。本地市民特别是外来旅游、出差、就医等急需了解本地道路情况的人可以利用本系统方便快捷的查询出所有符合他们要求的公交路线,对他们的出行和生活提供帮助。 设计公交信息管理系统能够方便城市公交管理者对公交线路进行管理,及时更新最新的线路信息,市民在使用时能够掌握实时的公交线路状况,也方便了使用者直接的信息交流,对于城市公共交通的发展是有利的。1.2目的及意义应广大城市市民查询公交信息的需求,公交公司对城市公交线路等信息的管理需求,开发一套公交信息管理系统。主要针对用户和管理员,用户在此系统可以对所要了解的公交线路进行查询,对公交服务中
19、存在的问题提出建议,对服务中的不合理行为进行投诉,参与用户之间的讨论等;而管理员主要负责后台的管理,管理员不需要运用传统的方式进行纷繁复杂的操作,使用本系统,管理员登录后可以对线路信息、用户信息、留言信息等进行添加、删除、查询和修改功能。此系统将以简洁、易懂的界面呈现给用户,目标能够使每一个用户易于操作,减少不必要的业务逻辑,提高该系统的利用率和运行、维护效率。设计本系统的目的在于掌握MVC设计模式及该模式下三种对象的设计方法,掌握面向对象设计(Object-Oriented Design,OOD)方法的步骤。系统的首要目标是能够满足目前的业务功能需要,并确保系统切换平滑、运行稳定;对于ser
20、vice的编写,通过参数配置等形式,实现其应具备的控制功能,并具有良好的可扩展性,提高service的复用性;对于HTML界面的编写,以简洁、轻快明了、规范性为目标,使其呈现的效果多、丰富;对于JavaBean的编写使其具有对数据进行增、删、改、查、参数初始化的业务逻辑。1.3课题研究的内容本文共分为六大章,其中分为课题来源到系统开发的相关技术、系统分析、总体设计等等。通过每一章的阐述对公交信息管理系统做出了详细的讲解和分析。第一章、 前言 本章主要阐述了公交信息管理系统的课题来源背景及课题研究的目的 与意义。第二章、 开发相关技术 本章主要介绍了该系统在什么环境中运行,运用的开发语言以及相关
21、的技术简介等。第三章、 需求分析 本章主要根据公交企业管理信息的过程和特点,以及客户的需求,对系统的功能进行设计,并对系统的可行性作了分析。第四章、 总体设计 本章主要阐述了公交信息管理系统的系统结构设计、功能模块图、数据库设计、逻辑设计及物理设计等。第五章、 详细设计与实现 本章主要阐述了前台界面和后台管理模块的设计与代码编写。第六章、 系统测试 本章主要是对系统进行测试,对本系统进行总结,并提出遇到的问题及系统中的不足之处。第二章 系统开发的相关技术2.1 JSP技术JSP技术可以以一种简捷而快速的方法生成Web页面。使用JSP技术的Web页面可以很容易地显示动态内容。JSP技术的设计目的
22、是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。 JSP技术不是惟一的动态网页技术,也不是第一个,在JSP技术出现之前就已经存在几种优秀的动态网页技术,如CGI、ASP等。下面结合这些技术的介绍,讲述动态网页技术的发展和JSP技术的诞生。JSP具有以下优点: 1简便性和有效性 JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自
23、己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。 2程序的独立性 JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。换句话说,就是拥有程序的对平台的独立性,即Write once,Run anywhere!。 3程序的兼容性 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的
24、B2B应用,都可以使用JSP的动态页面。 4程序的可重用性 在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。2.2 MVC模式MVC(Model/View/Controller)模式是国外用的比较多的一种设计模式,最早是在Smaltalk中出现的。MVC包括三类对象,简单地说,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式6。 MVC设计模式中“模型“指的是真正完成任
25、务的代码。对大多数Web应用程序来说,功能比界面感觉更重要。在模型同界面相分离的情况下,代码即可实现可管理性和可重用性。模型通常也被称作”业务逻辑“。 所谓“视图“其实就是使用界面。在MVC模式下,在通常的设计前提下界面任务并不大。当然,视图应该具有一定功能性并遵守可用性的约束,但视图不应当处理数据。事实上,界面的每一部分都只能包含采集数据的足够逻辑,并把它传递给设计模式中的其他组成部分以进行处理。 “控制器”控制着模型和视图之间的交互过程。它决定着向用户返回怎样的视图,检查通过界面输入的信息以及选择处理输入信息的模型。 在JSP开发中,最常使用Model2。Model2实际上就符合MVC模式
26、。 2.2.1 Model: 系统状态和商业逻辑JavaBeans 基于MVC的系统中的 Model 部分可以细分为两个概念 - 系统的内部状态, 能够改变状态的行为。用语法术语来说,我们可以把状态信息当作名词(事物),把行为当作动词(事物状态的改变)。 通常说来,你的应用程序将系统内部的状态表示为一组一个或多个的JavaBeans,使用属性(properties)来表示状态的细节。依赖于你的应用程序的复杂度,这些beans可以是自包含的(以某种方式知道怎样永久地保存它们的状态信息),或者可以是正面的(facades),知道当被请求时怎样从外部数据源(例如数据库)中取得信息。Entity EJ
27、B通常也用来表示内部状态。 大型应用程序经常将系统可能的商业逻辑行为表示为可以被维护状态信息的beans调用的方法。举个例子,你有一个为每个当前用户保存在session中的购物车bean,里面是表示当前用户决定购买物品的属性。这个bean有一个checkOut()方法用来验证用户的信用卡,将定单发给库房以选择货品和出货。别的系统分别地表示同样的行为,或许使用Session EJB。 在一些小型应用程序中,同样的行为又可能嵌入到作为Controller一部分的 Action 类中。这在逻辑非常简单或者并不想要在其它环境中重用这些商业逻辑时是恰当的。Struts框架支持所有这些方法,但建议将商业逻
28、辑(“做什么“)和 Action 类(“决定做什么”)分离开。 2.2.2 View: JSP页面和表示组件 基于Struts的应用程序中的 View 部分通常使用JSP技术来构建。JSP页面包含通常称为“模版文本”的静态HTML(或XML)文本,加上插入的基于对特殊行为标记解释的动态内容。JSP环境包括了其用途由JSP规范来描述的一套标准的行为标记,例如 。另外,还有一个用来定义你自己标记的标准机制,这些自定义的标记组织在“定制标记库”中。 Struts包括了一个广阔的便于创建用户界面,并且充分国际化的定制标记库,与作为系统 Model 部分一部分的ActionForm beans美妙地相互
29、配合。这些标记的使用将在后面做详细讨论。 除了JSP页面和其包含的行为及定制标记,商业对象经常需要能够基于它们在被请求时的当前状态将自己处理成HTML(或XML)。从这些对象处理过的输出可以很容易地使用 标准行为标记包括在结果的JSP页面中。 2.2.3 Controller: ActionServlet和ActionMapping 应用程序的 Controller 部分集中于从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的View组件。在Struts中,controller的基本组件是一个 ActionServle
30、t 类的servlet。这个servlet通过定义一组映射(由Java接口 ActionMapping 描述)来配置。每个映射定义一个与所请求的URI相匹配的路径和一个 Action 类(一个实现 Action 接口的类)完整的类名,这个类负责执行预期的商业逻辑,然后将控制分派给适当的View组件来创建响应。 Struts也支持使用包含有运行框架所必需的标准属性之外的附加属性的 ActionMapping 类的能力。这允许你保存特定于你的应用程序的附加信息,同时仍可利用框架其余的特性。另外,Struts允许你定义控制将重定向到的逻辑名,这样一个行为方法可以请求“主菜单”页面(举例),而不需要知
31、道相应的JSP页面的实际名字是什么。这个功能极大地帮助你分离控制逻辑(下一步做什么)和显示逻辑(相应的页面的名称是什么)。2.3 Struts2简介Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。Struts2既然是从Struts1发展而来,但实际上Struts2与Struts1在框架的设计思想上面还是有很大的区别,Struts2是以WebWork的设计思想为核心,为什么Struts2不沿用Struts1的设计思想,毕竟Struts1在目前的企业应用中还是有非常大的市场在的,那么,来看下Str
32、uts1的一些缺点吧: 1)支持的表现层技术单一。 2)与Servlet API严重耦合,这点可以从Action的Execute的方法声明里面就可以看的出来。 3)代码依赖Struts1 API,有侵入性,这点可以从写Action类和FormBean的时候看的出来,Action必须实现Struts的Action类而Struts2之所以以WebWork的设计思想为其核心,一点就是最近WebWork的上升势头,再就是WebWork没有Struts1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。基于以上介绍可以看的出,Struts2体系结构与Struts1的体系结构有很大的差别,Str
33、uts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器(FilterDispatcher)做为其中心处理器,这样做的一个好处就是将Action类和Servlet API进行了分离。 Struts2的简单处理流程如下: 1)浏览器发送请求。 2)中心处理器根据struts.xml文件查找对应的处理请求的Action类。 3)WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能。 4)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Exe
34、cute方法来处理用户请求。 5)将Action类中的对应方法返回的结果响应给浏览器。Struts2与Struts1对比 :1)Action类的实现方式: Struts1的Action在实现的时候必须扩展Action类或者Action的子类,Struts2的Action类实现的时候可以不用实现任何类和接口,虽然Struts2中提供一个ActionSupport类,但是,不是必须的。 2)Struts1的Action类是单例模式,必须设计成线程安全的,Struts2则为每一个请求产生一个实例。 3)Struts1的Action类依赖与Servlet API,从其execute的方法签名可看出,e
35、xecute方法有两个Servlet的参数HttpServletRequest和HttpServletResponse,Struts2则不依赖于Servlet API。 4)以为Struts1依赖于Servlet API这些Web元素,因此对Struts1的Action进行测试的时候是很困难的,需要借助与其他的测试工具,Struts2的Action可以象测试其他的一些Model层的Service类一样进行测试。 5)Struts1的Action与View通过ActionForm或者其子类进行数据传递,虽然也有LazyValidationForm这样的ActionForm的出现,但是,还是不能像
36、其他层面那样通过一个简单的POJO进行数据传递,而Struts2将这样的奢望变成了现实。 6)Struts1绑定了JSTL,为页面的编写带来方便,Struts2整合了ONGL,也可以使用JSTL,因此,Struts2下的表达式语言更加强大四、Struts2与WebWork对比 Struts2实际上就是WebWork2.3,不过,Struts2还是与WebWork有少许的差别: 1)Struts2不再支持内置IOC容器,改用Spring的IOC容器 2)Struts2对于Webwork的一些Ajax的特性的标签改用Dojo进行替换。2.4 MySQL数据库MySQL是一个精巧的SQL数据库管理系
37、统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。 SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品
38、信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。 MySQL 主要目标是快速、健壮和易用,自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个GB字节的关键应用数据。 MySQL数据库的主要功能只在组织和管理很庞大或复杂的信息和基于WEB的库存查询请求不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供如下功能: 1) 减少记录编档的时间 2) 减小记录检索时间3) 灵活的查找序列 4) 灵活的输出格式5) 多个用户同时访问记录 第三章 需求分析3.1 技术支持3.
39、1.1 系统框架的选择一个信息管理系统的框架结构是否合理,对该系统的性能、使用效率和安全都具有至关重要的影响,因此在进行公交信息管理系统总体设计时,首先应确定使用哪种系统框架比较合理。基于本公交信息管理系统的特性,达到方便的信息管理和信息查询,本系统使用S2SH框架结构,即(struts2,hibernate,spring)技术构架。系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。采用上述开发模型,不仅实现了视图、控制
40、器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。图3-1 S2SH框架结构主流的s2sh(struts2,hibernate,spring)技术构架。相对于老系统有诸多优势,如:1. 典型的三层构架体现MVC(模型Model,视图View和控制)思想,可以让开发人员减轻重新建立解决复杂问题方案的负担和精力。便于敏捷开发出新的需求,降低开发时间成本。 2. 良好的可扩展性,ssh主流技术有强大的用户社区支持它
41、,所以该框架扩展性非常强,针对特殊应用时具有良好的可插拔性,避免大部分因技术问题不能实现的功能。 3. 良好的可维护性,业务系统经常会有新需求,三层构架因为逻辑层和展现层的合理分离,可使需求修改的风险降低到最低。随着新技术的流行或系统的老化,系统可能需要重构,s2sh构架重构成功率要比其他构架高很多。 4. 优秀的解耦性,很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。s2sh三层构架,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,
42、只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也不会改变。3.1.2 数据库的选择数据库从最初的数据文件的简单集合发展到今天的大型数据库管理系统已经成为我们日常生活中不可缺少的组成部分。如果不借助数据库的帮助,许多简单的工作将变得冗长乏味,甚至难以实现。尤其是象银行、院校和图书馆这样的大型组织更加依靠数据库系统实现其正常的运作。再看互联网上,从搜索引擎到在线商场,从网上聊天到邮件列表,都离不开数据库。 目前,市面上的数据库产品多种多样,从大型企业的解决方案到中小企业或个人用户的小型应用系
43、统,可以满足用户的多样化需求。这里,本系统使用的MySQL数据库是众多的关系型数据库产品中的一个,相比较其它系统而言,MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人或商业用途,而不必支付任何费用。 MySQL是一种高性能的数据库,它可以和市场下任何同类的产品竞争。为什么使用MySQL, 因为如下原因:1. 速度快。MySQL本身并不复杂,且本系统需要信息的及时更新,数据库本身并不庞大。2. 可升级性。MySQL能够同时处理无限数量的拥护和5亿个纪录3. 简单性。MySQL的核心是一个小而快速的数据库,面向那些了解数据库工作的人员,是他们能够有效的工作和编写高级功能。4. 价值。MySQL是遵循GPL协议的自由软件,可以免费下载并且使用它。5. 可移植性。因为MySQL是开放源代码的自由软件,可以运行于所有的平台。如今,包括Siemens和Silicon Graphics这样的国际知名公司也开始把MySQL作为其数据库管理系统,这就更加证明了MySQL数据库的优越性能和广阔的市场发展前景。3.2 系统功能需求以往由于公交企业与市民地理位置的分离,致使公交企业与市民之间的沟通产生空间上的阻隔,不能灵活、高效的进行信息查询工作。如何解决公交企