公交查询系统分析报告_第1页
公交查询系统分析报告_第2页
公交查询系统分析报告_第3页
公交查询系统分析报告_第4页
公交查询系统分析报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安市公交查询系统 学生姓名: 学 号: 专 业: 计算机科学与技术 班 级: 目录1引言11.1设计目标11.2采取的策略11.3设计依据11.4参考资料12系统总体结构设计12.1系统逻辑结构设计22.2系统物理结构设计43子系统设计(模块设计)64数据库系统设计144.1设计要求144.2数据库设计155网络通信设计175.1设计要求175.2网络设计方案176.信息编码设计187.关键技术187.1提高查询速度187.2系统安全198.系统配置20 8.1硬件和网络配置20 8.2数据库和软件配置209.限制209.1通信线路选择209.2数据库在线容量限制2010.组织机构和人员配置2011.参考和引用资料201.引言1.1设计目标 在网络环境的支撑下建立城市公交信息查询系统,实现管理者对车辆信息、站点信息、线路信息、公交新闻、用户建议等进行管理的能力,方便管理者在后台对公交运营情况的掌握和管理,做出未来发展的决策;为用户提供实时更新的公交信息,可以让用户迅速了解准确的公交动态;为用户提供车次查询、站点查询、站站查询三种查询模式,利于用户选择最优的乘车路线及方案,方便用户出行,节约乘车时间。1.2采取的策略1.在软件工程生命周期法的大框架下,结合原型法和瀑布法进行城市公交查询系统软件的开发。2.使用UML建模工具Rational Rose进行系统的详细设计,既可以保证设计工作的规范性,又可以提高详细设计工作的效率。3.采用面象对象的程序设计方法,确保系统的可靠性和以维护性。4.严格的模块测试和集成测试,为系统的正确性提供保证。1.3设计依据1.系统可行性分析报告2.用户需求分析规格说明书1.4参考资料 信息系统分析与设计(第三版)王晓敏、邝孔武 编著清华大学出版社2系统总体结构设计2.1系统逻辑结构设计 该公交查询系统要管理的信息是很庞大的,要同时开发出全部的系统是不现实的,所以可按照公交管理部门的业务需求以及用户的使用需求将系统划分为两个大的子系统,通过良好的设计把各个子系统集成为一个整体。同样的,在各个子系统中仍然可以做进一步细分,以使开发工作更容易展开,并能够随时监视用户的需求变更等情况。 下图为公交信息查询的类图。公交查询系统分为公交信息查询和后台管理两个子系统。分析则有主界面类与登陆界面类之间是关联关系,而查询界面、后台管理界面、会员权限界面、会员注册界面和密码找回界面都是主界面的一部分,所以它们和主界面之间是组合关系。会员信息管理界面与提意见界面与会员权限界面是组合关系,它们都依赖于会员进行操作。会员与游客是继承的关系,会员权限在游客查询权限的基础上有所增加。会员可以修改会员信息和提意见,他们都依赖于会员进行操作,会员表和意见表都是通过修改会员信息和提意见两个接口类实现的,所以他们是实现关系。会员继承成了游客的查询权限,其中,车次查询、站点查询、线路查询之间有很多相同的操作,于是将它们抽象出来形成一个抽象类-公交信息查询。车次表、站点表和线路表通过车次查询、站点查询和线路查询三个接口实现。 公交信息管理界面和消息管理界面与后台管理界面是组合关系,他们都依赖于管理员进行操作。公交信息查询离不开后台管理,所以它们之间是依赖关系。公交信息管理和消息管理之间有很多相同的操作,于是将它们抽象出来构成一个抽象类-后台管理。采用“包”的分组形式将公交查询系统分解成公交信息查询和后台管理两个“子系统”组成的层次结构,可以将复杂问题简单化,以简洁、清晰地体系结构描述整个系统。分析可知系统中的主要实体类为:游客、会员和管理员。主要辅助类为:车次查询、站点查询、线路查询,这几个类可以抽象出父类“查询”。公交信息管理和消息管理这两个类可以抽象出父类“后台管理”。分析可知用户界面类为:主界面、登录界面、查询界面、注册会员界面、密码找回界面、会员权限操作界面、后台管理界面。公交查询系统主要参与者公交查询划分系统公交查询主要功能后台管理操作功能公交查询系统的系统界面类2.2系统物理结构设计 公交查询系统的各子系统在空间上是分布在不同的地点,在不同的节点上运行系统不同的部分。合理的物理结构设计有助于更好的实现系统的功能。物理结构设计可参见构件图建模和部署图建模部分。(1) 构件图 构件图提供当前模型的物理视图,对系统的静态实现视图建模。构件图显示一个系统物理设计时,构件所映射的类和对象的配置。公交查询子系统的类:1、 游客类2、 会员类 3、 管理员类 4、 角色类 5、 会员信息类6、 消息信息类7、 线路信息类8、 站点信息类9、 公交信息类10、 公交查询用户界面类11、 公交查询子系统类类的关系: 角色类是游客类、会员类和管理员类的基类,存在从派生类到基类的依赖关系。 公交查询用户界面类要使用到会员信息类、消息信息类、线路信息类、站点信息类和公交信息类,公交查询用户界面类依赖会员信息类、消息信息类、线路信息类、站点信息类和公交信息类。 公交信息类是线路信息类和站点信息类的基类,所以线路信息类和站点信息类依赖公交信息类。 主程序类要依赖公交查询用户界面、管理员类。公交查询子系统构件图(2) 部署图公交查询系统中的节点:1、 数据库服务器2、 公交信息查询:驻留的构件是公交查询子系统3、 后台管理:驻留公交管理子系统4、 2台PC机节点间的连接:1、PC机1通过ETHERNET与公交信息查询节点连接。2、PC机2通过ETHERNET与后台管理节点连接。3、公交信息查询节点和后台管理节点都是通过Ethernet方式与数据库服务器连接。4、公交信息查询节点和后台管理节点通过TCP/IP方式连接。公交查询系统部署图 3子系统设计(模块设计) 1.系统总体结构设计 公交查询系统有两个主要组成部分,一是面向用户的公交信息查询子系统, 一是面向管理人员的对整个页面信息进行维护的后台管理公交信息管理子系统。城市公交查询系统的功能模块结构分为查询模块和后台管理模块。用户可以按线路查询、站点查询和起点终点查询三种查询方式,使用户快速便捷的掌握公交行驶的路线信息、公交经过站点的信息、以及一次转换乘公交的乘车方法,方便用户出行。 而在后台管理模块中,系统管理员可以实现对公交信息、公交线路、发车时间表以及公交新闻、最新动态的新增修改和删除操作,方便管理员准确的更改信息,与实际公交线路或信息相符,方便人们查询公交信息。 2.系统功能模块设计 公交信息查询子系统包含游客类、会员类、线路类、站点类、路线类。 1)游客类 操作:查询车次、查询站点、查询线路、注册会员。 游客登录系统查询公交信息界面中,具体操作过程描述如下:(1)游客进入公交信息查询界面,系统提示用户输入需要查询的内容;(2)游客输入查询内容提交系统后,验证其输入内容是否存在和正确;(3)若正确,则公交信息查询界面反馈正确的查询结果;若错误,系统提示输入错误或查询内容不存在。 游客登录注册会员界面注册会员,具体活动过程描述如下:(1)游客进入注册会员界面,系统提示用户输入需要填写的内容;(2)游客填写身份信息内容提交系统后,验证其输入内容格式是否正确;(3)若正确,则注册会员界面提示注册成功;若错误,系统提示输入填写内容的格式错误,需要重新填写。2)会员类属性:会员ID、会员登陆姓名、会员登录密码操作:查询公交信息、修改信息、提建议。 在会员验证身份成功后,进入会员权限操作界面中,具体活动过程描述如下:(1)会员进入会员权限操作界面,可以选择会员信息管理或提出意见选项;(2)若会员选择会员信息管理,则在其下方显示会员信息,会员可以输入要修改的内容并提交系统;若会员选择提出意见,则在其下方会显示建议框,会员可以输入意见内容并提交;(3)若会员信息修改的内容符合要求,则系统提示修改成功,或修改内容不符合要求,则系统提示填写内容格式错误;若会员填写的意见标题、内容不为空,则系统提示提交成功,若填写内容有一项为空,则系统提示输入内容不能为空。3) 站点类属性:站点ID、站点名称、线路ID。操作:站点查询、修改和删除。4) 线路类属性:线路ID、公交车次、站点名称、站点序列。操作:线路查询、修改和删除。 下图为公交车站点查询中的一次换乘模块查询模块。 一次换乘功能:用户在客户端界面输入起点站和终点站,系统判断输入是否为空,输入为空则重新输入,若不为空则判断输入站点是否相同,相同则返回重新输入,否则继续判断站点是否存在,不存在则返回重新输入,否则系统查找经过起点站的所有线路和经过终点站的所有线路并判断两线路是否相等、是否存在交点,相等或存在交点则记录信息并计算最短站点数得到换乘路线并按照默认优先顺序显示于客户端界面。结束查询经过起点的所有线路查询经过终点的所有线路是否存在开始输入起点站和终点站是否为空是否一样NNNYYYY依次取一条路线直到所有依次取出其中一条直到所有存在交点是否相等记录信息记录信息找出最短站点数显示直连路线显示所有换乘一次的路线NNYN 公交查询一次换乘功能模块图用户可以根据起点站点和终点站点进行线路查询,也可以根据所在站点查询经过该站点的所有路线信息和车次信息,方便用户确定自己的位置以及如何选择车次到达目的地,如下图分别为站站查询和线路查询功能模块分析图。站点查询:用户在客户端界面输入站点名,系统判断输入是否为空,输入为空则重新输入,若不为空则判断输入站点是否存在,不存在则返回重新输入,否则系统查找经过该站点的所有线路并按照默认优先顺序显示于客户端界面。线路查询:用户在客户端界面输入线路名,系统判断输入是否为空,输入为空则重新输入,若不为空则判断输入线路是否存在,不存在则返回重新输入,否则系统查找该线路所经过的站点并按照默认优先顺序显示于客户端界面。开始输入站点名是否为空查找经过该站点的n条线路是否存在依次显示这些线路所经过的站点NY结束YN站点查询流程图开始Y是否为空输入线路名是否存在NNY查询该线路所经过的站点依次显示这些站点结束线路查询流程图公交换乘算法的实现:在SQL Server2008数据库中建立三个基本表1.站名表stop(stop_id,stop_name)2.线路表line(line_id,line_name)3.路线站点表linestops(line_id,stop_id.seq)此处的seq指某站点在某线路中的顺序。1、直达线路首先根据两个站点名获取两个站点各自的id,这里定义为id1,id2。然后查询select line_id from(select line_id from linestops where stop_id = id1) A,(select line_id from linestops where stop_id = id2) Bwhere A.line_id = B.line_id即得到可直达的线路列表2、一次换乘首先根据两个站点名获取两个站点各自的id,这里定义为id1,id2。然后搜寻两个站点通过直达方式各自能够到达的站点集合,最后他们的交集就是我们所需要的换乘站点。select stop_id from(select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id1)A,(select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id1)Bwhere A.stop_id= B.stop_id得到换乘站(可能有多个或0个)后,剩下的就是显示能够到达换乘站的两边线路,这通过前面的直达查询即可。3、二次换乘首先根据两个站点名获取两个站点各自的id,这里定义为id1,id2算法的中心思想是:站点1能够通过直达到达的所有站点集合A,站点2能够通过直达到达的所有站点集合B,A和B之间有直达的线路。一步一步来:站点1能够通过直达到达的所有站点集合A:select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id1)站点2能够通过直达到达的所有站点集合B:select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id2)而直达的查询是select line_id from(select line_id from linestops where stop_id = id1) C,(select line_id from linestops where stop_id = id2) Dwhere C.line_id = D.line_id我们把=id1和=id2换成 in (select .)A 和 in (select .)B这样最后我们的查询是select line_id from(select distinct line_id from linestops where stop_id in 【A】) C, (select distinct line_id from linestops where stop_id in 【B】) D where C.line_id = D.line_id其中【A】是(select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id1)其中【B】是(select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id2)这样子我们找到了作为中间换乘的线路(可能有多条或者0条),对列举的的每一条假设命名为X线,下一步就是找出可以从站点1到达X任意一个站点的直达线路、和可以从站点2到达X任意一个站点的直达线路即可。那么与前面的算法相似,我们在站点1所有能够到达的站点中去寻找和线路X相交的站点,然后再去找这两个点的线路select stop_id from(select distinct stop_id from linestops where line_id in(select line_id from linestops where stop_id = id1)A,(select stop_id from linestops where line_id = X ) Bwhere A.stop_id = B.stop_id找到站点了,下面就是根据已经解决的直达查询找线路了。站点2类似。以上的算法有一个优点,全部是sql完成搜寻,所以asp代码只需几行循环就可以实现公交查询功能。公交信息管理子系统 1.管理员类属性:登陆ID、登陆姓名、登录密码。操作:添加车次线路信息、修改车次信息、删除车次站点信息、发布公交新闻、删除公交新闻、查看意见、删除意见。 管理员登录管理权限界面,可以实现如下操作过程:(1)管理员进入后台管理登陆界面,系统提示用户输入用户名和密码;(2)管理员输入用户名和密码提交系统后,系统查询其输入的用户名是否存在并验证密码是否与用户名匹配;(3)若正确,则管理员登陆成功并自动跳转至后台管理界面;若错误,系统提示输入的身份信息有误,需要重新填写登录。 在管理员验证身份成功后,进入后台管理界面中,可以实现如下操作过程:(1)管理员进入后台管理界面,可以选择更新车辆信息或消息管理选项;(2)若管理员选择消息管理,则在其下方会显示消息信息,管理员可以查看或更新消息内容并提交;(3)若公交信息需要更新的内容符合要求,则系统提示修改成功,或修改内容不符合要求,则系统提示填写内容错误;若管理员更新的消息内容正确,则系统提示提交成功,若更新的消息内容错误,则系统提示输入内容错误。4数据库系统设计4.1设计要求 数据库系统通过对信息的分类和概括,建立抽象的概念数据模型。明确各实体及其属性、实体间的联系以及对信息的制约条件等在数据库里给出所需信息的局部视图。再将前面得到的多个用户的局部视图集成为一个全局视图。数据库系统基本要求: 能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。 冗余数据少,数据共享程度高。 能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。 有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。 具有可修改性和可扩充性。 能够充分描述数据间的内在联系。4.2数据库设计(1)数据库概念结构设计 通过对公交查询过程的内容和数据流图分析,设计如下面的数据项和数据结构。 管理员表(登陆ID,登录姓名,登录密码) 站名表(站名编号,站名) 车辆线路编号表(车次,车线类型) 线路表(线路编号,车次,站名,次序) 车辆表(车辆编号,车次,车辆类型,服务类型,票价,IC卡类型,运行区间) 冬季发车时间表(编号,车次,首班时间,末班时间)夏季发车时间表(编号,车次,首班时间,末班时间)(2)数据库物理结构设计 数据库的物理结构设计是对于给定的逻辑数据模型,选取一个最合适应用环境的物理结构。数据库的物理结构指的是数据库在物理设备上的存储结构与存取方法。城市公交管理系统的各子系统在空间上是分布不同的的地点,在不同的节点上运行系统不同的部分。合理的物理结构设计有助于更好地实现系统的功能。基于B/S的城市公交查询系统系统的数据库表结构如下表所示。管理员表:存放登陆系统所需要的用户名和密码,登录后台时需要访问此表。 表1 管理员表字段名数据类型长度是否为空是否为主键说明LoginIdint4否是登陆IDLoginPwdvarchar50否否登陆密码Loginnamevarchar50否否登陆姓名会员表:存放会员登录系统所需要的用户名和密码,会员若忘记密码可回答设置的会员问题找回密码,会员登录需访问此表。 表2 会员表字段名数据类型长度是否为空是否为主键说明Loginnamevarchar50否是会员姓名LoginPwdvarchar50否否登陆密码Loginquestionvarchar50否否会员问题Loginanswervarchar50否否会员答案夏季发车时刻表:存放夏季发车的时间,修改夏季发车时间需要访问此表。 表3 夏季发车时刻表字段名数据类型长度是否为空是否为主键说明编号int4否是编号车次int4否否车次首班时间varchar50否否首班时间末班时间varchar50否否末班时间 冬季发车时刻表:存放冬季发车的时间,修改冬季发车时间需要访问此表。 表4 冬季发车时刻表字段名数据类型长度是否为空是否为主键说明编号int4否是编号车次int4否否车次首班时间varchar50否否首班时间末班时间varchar50否否末班时间车辆表:存放车辆的相关信息,修改车辆等相关信息需要访问此表。 表5 车辆表字段名数据类型长度是否为空是否为主键说明车辆编号int4否是车辆编号车次int4否是车次车辆类型varchar50否否车辆类型服务类型varchar50否否服务类型票价varchar50否否票价IC卡类型varchar50否否IC卡类型运行区间varchar50否否运行区间 站名表:存放站名等数据,修改站名需要访问此表。 表6 站名表字段名数据类型长度是否为空是否为主键说明站名编号int4否是站名编号站名varchar50否否站名 车辆线路编号表:存放线路编号等数据,修改车辆线路编号将要访问此表。 表7 车辆线路编号表字段名数据类型长度是否为空是否为主键说明车次int4否是车次车线类型varchar50否否车线类型5.网络通信设计5.1设计要求公交查询系统的设计,主要考虑下列基本原则; 1)保证网络的先进性,同时要兼顾网络的经济性和可行性。 2)保证网络的开放性和可互连性。 3)保证网络系统的可靠性和安全性。 4)保证网络的可扩展性和可升级性。 5)充分考虑和利用现有网络设施,降低网络建设成本。 基于上述基本原则,考虑到企业已经建立了覆盖各部门的主干局域网,所以综合信息管理系统网络只需要对现有网络进行必要的补充。网络扩充设计应充分考虑其特点,并且要兼顾到网络建造费用、网络运行费用、网络通信速度、信息传输可靠性等因素。5.2网络设计方案 为了找出比较好的实现方案,要对各种可能的组网方案的优点及存在的问题做分析比较,并与企管部的技术人员进行了讨论交流,提出了一套可行的实现方案。6. 信息编码设计 公交查询系统涉及的信息相当庞杂,使用信息编码可以方便各种信息的分类和使用,有利于系统的开发和日后的升级维护。以下列出几个主要的信息分类编码:(1)车辆编号编码a:代码结构: xxxx 识别号b:代码长度:4c:代码类型:整型d:应用范围:查询子系统、管理子系统(2) 车次编码a:代码结构: xxxx 序列号b:代码长度:4c:代码类型:整型d:应用范围:查询子系统、管理子系统(3) 登录人员编码a:代码结构: xxxx ID b:代码长度:4c:代码类型:整型d:应用范围:管理子系统(4) 公交线路编码a:代码结构:采用国标码b:应用范围:查询子系统、管理子系统7. 关键技术7.1提高查询速度 (1)为了能提高非常大的表的查询速度,采用分区表及索引技术,该技术将大表分成若干较小的较易管理的子分区。这样对该表进行查询时,并不是访问具有同样的字段名,约束定义及其他属性,即所有的子分区具有相同的逻辑分区,而实际上位于不同的物理分区(甚至可以位于不同的表空间)。采用分区表技术并不增加最终用户的负担,而且用户可以完全透明地访问数据。其优点是不但可大大加快查询速度,而且当某一分区发生故障时,并不影响其他分区的操作,便于各分区的独立备份和恢复,另外可根据情况,适当将各分区放在不同硬盘上,从而可平衡I/O负数。 (2)使用MTS技术为了提高整个系统的响应速度,我们使用了MTS(Microsoft Transaction Server)技术。MTS可有效地利用计算机资源,特别是系统所需使用的三种系统资源(线程、对象、ODBC连接)都提供了缓冲池(Pooling),而这三种系统资源的合理调用直接影响系统的执行效能。MTS能建立一个所有用户能分享的对象实例库来避免系统资源的浪费。另

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论