软件建模与分析项目报告模板10.docx
《软件建模与分析项目报告模板10.docx》由会员分享,可在线阅读,更多相关《软件建模与分析项目报告模板10.docx(32页珍藏版)》请在冰豆网上搜索。
软件建模与分析项目报告模板10
@SoftR
开发文档
软件名称:
家校互动系统
版本号:
V1.0
项目组人员:
周国南,黄德朋,许洋,唐文欣
完成时间:
2015年12月24日
目录
第1章引言1
1.1背景1
1.2目的和意义1
1.3参考资料2
第2章相关技术基础3
2.1室内定位技术3
2.2室内导航算法4
第3章需求分析6
3.1所采用的技术6
3.2功能需求分析6
3.3系统开发环境7
第4章概要设计8
4.1系统总体结构8
4.2用户界面设计9
4.3系统功能设计9
4.3.1电子地图10
4.2.2二维码定位10
4.2.3室内导航11
4.4数据库设计12
第5章详细设计14
5.1系统用例图14
5.2系统时序图14
5.3电子地图的实现15
5.4室内导航的实现18
5.4.1回溯算法18
5.4.2路径显示21
第6章系统使用说明24
6.1系统主界面24
6.2电子地图24
6.3室内导航25
第1章引言
1.1背景
我的位置在哪里?
我的周围有什么?
我要到达某个办公室,路线该怎么走?
我的车放在哪里了?
这一切都预示着,人们对于导航系统的需求正在逐渐变化着。
平常人一天的大部分时间,是在室内的。
正因为如此,人们需要更加精确的室内导航。
随着GPS全球定位系统技术的快速发展,类似谷歌地图、XX地图等数字地图应用也越发普及,在日常生活中,人们越来越无法离开导航系统了。
但是你依然会发现自己在大型地下停车场、人潮涌动的商场或高层大厦中,想要认识路并不比几年前更容易,尽管目前市面上的绝大部分智能手机都配备了GPS定位功能。
6年以前或许可能更早,导航行业内就已经意识到了GPS是存在缺陷的,例如它有时候在室内无法正常工作。
一方面,如果建筑的墙壁太厚,GPS定位信号无法穿透,导航设备在大型地下建筑中会彻底找不到卫星信号而无法定位。
在这种情况下,GPS定位不够精确,而且很慢甚至不可能。
另一方面,GPS信号只能呈现一个平面的定位,无法立体呈现一栋大型建筑的内部结构。
虽然很多的大型公司(比如谷歌)都在想办法解决室内导航这个问题,不过现在因为以上原因,室内导航依旧无法迅速普及。
目前,随着二维码技术的蓬勃发展,产生了一种新型的室内导航方法。
利用地图建模方法,可以将一栋建筑每一层的室内位置,利用格式化的方式,生成一张室内平面图。
每一个房间的位置,都会被格式化在室内导航图之上,而每一个房间编码都将生成一个二维码。
当使用者需要导航时,只需要对准就近的二维码扫描一次,就可以获取使用者当前位置信息,然后结合使用者想要前往的的目的位置,获取当前位置到目的位置的导航路径。
1.2目的和意义
一方面,由于传统的GPS导航系统只能实现平面导航,无法实现精确的室内导航。
另一方面,随着二维码这种新技术和智能手机等移动设备的发展,使利用二维码进行室内位置的定位成为一种可能。
本系统以某多层建筑的电子楼为模版,对电子楼A-B楼的室内工程图进行分析、量化,在此基础上,充分利用二维码技术和智能手机等移动设备的优势,填补定位和导航功能的不足,实现电子楼的室内导航。
室内导航系统利用智能手机,实现对二维码信息的采集、室内位置的定位、室内路径计算、拓扑路线显示等功能,从而在复杂室内环境下,为楼层用户提供一种低能耗、快捷便利的导航系统,方便大家的生活。
1.3参考资料
[1]潘继财.二维条码技术及应用浅析.商场现代化,2009年3月.
[2]吴雨航,吴才,陈秀万.介绍几种室内定位技术[N].中国测绘报,2008年.
[3]徐静.室内移动导航系统的路径规划方法研究[D].长春理工大学,2009年.
[4]李江,薛全.J2ME平台下基于手机定位实现的移动GIS导航系统[J].现代电子技术,2007年08期.
[5]吴晓刚,陈益振,郑修一.基于J2ME的手机室内导航系统[J].电脑知识与技术,2011年06期.
[6]关媛媛,安世全,刘光明.提供精确室内定位信息的Cricket系统[J].重庆工业高等专科学校学报,2004年02期.
[7]张红平.楼宇三维寻径分析研究[D].南京师范大学,2011年.
[8]郑睿,原魁,李园.一种用于移动机器人室内定位与导航的二维码.高技术通讯,2008年第4期.
[9]王春东,王秀峰.基于802.11的室内定位算法研究[J].计算机工程,2007年.
[10]张害藩.软件工程导论[M]第四版.清华大学出版社,2003年.
[11]麦斯阿塞克,王素琴.需求分析与系统设计[M].机械工业出版,2003年.
[12]李金凤,王庆辉,刘晓梅,曹顺.基于MEMS惯性器件的行人室内定位系统.计算机测量与控制,2014年第11期.
[13]王阳.图书馆二维码和RFID技术差异性分析.图书馆工作与研究,2015年第1期.
[14]陈丹晖,刘红.条码技术与应用.化学工业出版社,2006年.
[15]林雕,宋国民,邓晨.基于图的语义室内导航模型构建研究.测绘工程,2015年第1期.
第2章相关技术基础
2.1室内定位技术
在室内定位技术方面,按照定位信号的种类,主要分为射频识别技术、WIFI技术、二维码技术等。
这些技术有着各自的优缺点,或传输距离有限;或定位精度低;或设备复杂,成本高;或稳定性差,应用范围窄。
(一)射频识别技术
无线射频识别技术,通过射频信号存储信息,并利用信号中的位置信息进行定位。
这种技术的优势在于射频信号传输速度快,传输距离长,它可以在很短的时间内获取位置信息。
此外,由于射频设备价格低,实现成本也就较低,可以大范围部署。
但是射频技术也有它的缺点,无线射频设备的作用距离较近,需要单独的定位设备,而且它和智能手机等日常移动终端设备的整合性较差,这大大限制了无线射频识别技术的发展前景。
(二)WIFI技术
WIFI技术,是一种能够用无线方式将笔记本电脑、智能手机等移动终端设备互相连接的技术。
随着智能手机等移动终端设备的普及,WIFI技术在生活也变得越来越常用。
WIFI定位技术的优点是,能够很好地利用当前的基础和设备,从而显著的降低了初始成本。
此外,当前据大多数的移动终端都WIFI支持接入,这也为定位提供了很大的便利。
(三)二维码技术
二维码是根据一定的规则,在二维平面方向上,用黑色和白色图形记录数据符号信息的特定几何形状。
在代码构成上,二维码巧妙地运用计算机的内在基本逻辑比特0和比特1的概念,用若干几何形体来表示信息,通过使用图像扫描设备,来实现从图像到信息的转换。
二维码的优点:
(1)编码密度高,可存储大量的信息。
(2)编码范围广。
(3)有较强的容错力,并且有纠错能力。
(4)译码过程中,可靠性高。
(5)可进行信息加密。
(6)制作方便,成本低,持久耐用。
相对于其他定位技术,二维码技术的优点是:
一方面,成本低廉,无需其他设备,只需有智能手机,扫一扫,就定位当前位置。
另一方面,定位更加方便,稳定性更高,不需要WIFI无线连接,没有传输距离的限制。
二维码的缺点是,安全性就差,因为用户在扫二维码之前,并不知道其中信息是否安全。
二维码中可以有效的承载位置信息,本文的定位功能的实现便是使用技术。
2.2室内导航算法
目前,常用的导航算法主要有:
A*算法、回溯算法。
(一)A*算法
A*算法是一种直接探索方法,用于在静态路径网络中,有效的求解最短路径。
如果估计数值越接近实际数值,说明估计函数就取得越好。
算法公式为:
x(n)=y(n)+z(n)。
其中,x(n)是一个估计函数,它表示从起始节点到扩展节点n,再从扩展节点到目标节点;y(n)表示从起始节点到扩展节点n的实际数值;而z(n)则表示扩展节点n到目标节点的最短路径的估计数值。
估计函数x(n)的选取是找到路径网络中的最短路径的关键。
如果估计数值到目标节点的实际距离数值越大,那么探索的范围也越大,探索的节点众多,需要记录的节点也多,效率自然也就越低,但能这种情况下能够得到最短路径。
并且,如果z(n)等于y(n),也就是估计距离z(n)是最短路径,那么算法将严格沿着最短路径进行路径探索,最高的探索效率是这种了。
如果实际数值比估计数值小,那么探索的范围越小,探索节点数也少,需要记录的节点也少,效率也高,但是不能确保得到的解为最优解。
(二)回溯算法
回溯算法,它是一种系统地探索问题的解的方法,是一种深度优先算法。
回溯算法的基本思想是:
沿着某一通路一直前进,遇到障碍就返回,换另外一条通路,再次前进。
用回溯算法解决问题的步骤如下:
(1)定义一个包含问题的解的迷宫。
(2)用适当的方法组成迷宫。
(3)用深度优先法探索包含解的迷宫。
(4)用限界函数避免移动到无解的子迷宫。
问题的解迷宫一般是动态产生的,在探索解的过程中,这是回溯算法的重要特点。
知道迷宫的结构后,回溯法就从开始节点出发,以深度优先的方法探索整个解迷宫。
开始节点就变成一个活节点,同时也成为当前的扩展节点。
在当前的扩展节点处,选择某个前驱方向进行探索,移至一个新节点。
这个新节点就变成一个新的活节点,并变成当前扩展节点。
如果在当前的扩展节点处不能再向其他方向移动,则当前扩展节点就成为死节点。
遇到这种情况,应返回至最近的一个活节点处,并使这个活节点成为当前的扩展节点,重新选择方向前进,这就是回溯。
回溯算法就是以这种递归的方式地在解迷宫中探索,直至找到问题的解,或者解迷宫中已没有活节点时为止。
本系统的导航功能的实现便是使用回溯算法。
第3章需求分析
本章将介绍基于二维码的多层建筑室内导航系统所采用的一些关键技术,系统的主要功能以及系统的开发环境。
3.1所采用的技术
传统的导航系统都具有两个主要功能,一个是室内定位功能,另一个是室内导航功能。
在本文中,室内导航系统实现室内定位功能和室内导航功能所采用的技术分别是,二维码定位技术和回溯算法。
之所以选用这两种技术,是因为经过比对,这两种技术相对于其他技术有其明显的优点。
首先,室内定位采用二维码技术。
二维码技术与射频识别技术相比,不需要特定的射频设备,成本更低;而且射频设备和智能手机、iPad等日常移动终端设备的整合较差,从另一方面大大的制约了射频识别技术的发展前景。
二维码技术与WIFI技术相比,定位更加方便快捷,不需要WIFI无线连接,稳定性更高,也没有传输距离的限制。
室内导航采用回溯算法。
A*算法中,如果估计数值到目标节点的实际距离数值越大,那么探索的范围也越大,探索的节点众多,需要记录的节点也多,效率自然也就越低。
而回溯算法依据节点,能快速遍历,迅速找到目标节点,需要记录的节点教少,其效率更高。
3.2功能需求分析
为了方便用户的使用,满足用户随时似地进行导航的目的,基于二维码的室内导航系统将具有如下的功能:
(一)电子地图显示功能
将室内建筑通过建模方式量化,并通过电子地图的方式向用户呈现出室内的通路情况。
分析室内建筑的拓扑结构,将室内建筑通过建模的方式,量化成小的节点坐标,组成电子地图,选择楼层,显示该楼层电子地图,并将模块坐标信息存入数据库。
本系统是对电子楼的室内结构进行建模,以房间为节点。
(二)定位功能
系统定位功能基于二维码技术,二维码中存放室内导航系统链接和当前位置信息,经过手机浏览器扫码,将打开导航网站,并自动显示用户当前的具体位置。
每个房间有一个坐标,每个房间坐标信息单独存入一个二维码内。
手机浏览器扫房间二维码,发送HTTP请求,访问导航系统,记录当前起点位置坐标。
(三)导航功能
用户打开导航网站,自动显示起点,检索终点坐标,进行导航,系统能够利用回溯算法,计算起点坐标到终点坐标的路径,并在电子地图上显示出来起点坐标到终点坐标的路径。
以上是功能性需求,室内导航系统页面的显示效果也要尽量显示的美观大方简洁。
3.3系统开发环境
根据章节3.2,室内导航系统的功能性需求分析,也可以确定导航系统的开发环境。
(一)开发语言
本文中的室内导航系统是使用Java语言、JSP技术和Struts2框架开发的web网站。
因为基于Java的JSP技术面向对象,开发迅速,而且可移植性强,Java程序经过编译后,移植到别的系统上后,依旧可以执行。
(二)数据库
本系统的数据库使用的是MySQL数据库。
本系统的数据库之所以选择MySQL数据库,是因为MySQL数据库体积小、运行速度快,还是免费的,而且适用于个人开发的中小型网站。
(三)服务器
本文中的室内导航系统是使用Java语言开发的web网站,web服务器选择的是Tomcatv7.0。
本系统的web服务器之所以选择Tomcat服务器,是因为,本文中的室内导航系统是使用基于Java的JSP技术开发的web网站,而Tomcat服务器适用于Java开发,也是调试JSP程序的首选。
第4章概要设计
概要设计是系统开发的一个重要的环节。
本章主要介绍了基于二维码的多层建筑室内导航系统的总体框架、功能模块以及系统开发原来等做系统的分析研究,并介绍系统所拥有的特点。
4.1系统总体结构
用户通过手机浏览器,扫二维码后进入室内导航系统网页,同时进行定位,首先看到当前用户所在的起点位置,可以检索终点位置,用户还可以点击进入相关楼层,每一层都有一个室内电子地图,可以选取起始点和目标点进行导航。
web服务器提供电子地图显示功能、室内定位功能、室内导航功能。
当用户通过扫二维码链接从而进行页面访问,向服务器发送导航请求后,服务器对用户的请求调用室内导航模块进行处理,并将得到的结果显示到页面上,将结果在电子地图上显示出来。
本系统的系统结构,如图所示。
图4.1系统结构图
上图为基于二维码的室内导航系统的系统结构图,本系统主要包括三个模块:
用户界面模块、系统功能模块以及数据库模块。
系统有三个功能:
电子平面图显示功能、室内定位功能、室内导航功能。
(1)首先,对实际的电子楼进行建模分析,将电子楼模型化,以实现现实到模型的转换,然后将建模分析后得到的数据存入数据库;
(2)从后台数据库中,将量化后的数据取出,利用算法建筑电子楼的平面地图;
(3)二维码内存放有电子楼当前位置的信息,用手机浏览器扫二维码,得出精确的定位坐标;
(4)输入需要前往的目标位置,进行查找,及电子楼科室与科室之间的导航;
4.2用户界面设计
依据第3章节需求分析得出,多层建筑室内导航系统的界面应当显示导航相关的内容。
室内导航系统拥有电子地图显示功能、室内定位功能、室内导航功能等功能,用户界面中也需要一一对应。
室内导航对应起点输入框,终点下拉框,寻路按钮;电子地图显示对应电子平面图,地图楼层选择按钮。
如图所示。
图4.2用户界面设计图
4.3系统功能设计
由图4.1可以看出本系统分为三个功能:
电子地图显示功能、室内定位功能、室内导航功能,下面将具体介绍这三个功能。
4.3.1电子地图
首先进行地图建模,分析空间的拓扑结构信息,生成一个文件,并对此文件进行进一步的修改,得到电子地图的地图结构文件。
电子地图,定义电子楼电子地图的拓扑结构以及空间各节点的信息,显示电子地图图形。
电子地图模块主要完成一个电子地图,它是室内导航系统向用户显示的部分。
电子地图层的设计主要是为了描述电子楼内空间的拓扑结构,并包括电子楼内的一些特殊位置(比如办公室、会议室等的位置)。
所以在设计的时候使用一个有向图来表示电子地图层,有向图的每一个节点代表了一个空间上的特殊位置,比如道路上的路点、办公室等房间、楼梯或者电梯等,节点与节点之间的连线代表可以从一个节点到达另一个节点。
本模块需要对电子楼的所有楼层建立平面地图,并完成一个用来操作电子地图的JSP文件。
还要对所有楼层建立地图结构层,并生成数据库。
如图所示:
图4.3电子平面地图
电子楼的楼层平面电子地图的显示效果,当与上图相似。
电子地图需要明显区分出不同功能的单位,如外墙、房间、过道、楼梯、大门、障碍物等,都需要有不同的显示。
电子楼是立体的结构,每一层都有一个室内电子地图,所以需要对所有楼层建立结构层,点击某一楼层,怎显示该楼层的平面图。
4.2.2二维码定位
众所周知,二维码中可以包含信息,我们可以将网站链接信息做成二维码,通过智能手机扫码来打开网站。
关于室内定位的设计,依照用户当前所扫的二维码中的信息,结合数据库进行室内定位。
二维码中包含两方面信息,一是室内导航系统的网页链接信息,二是当前位置坐标的信息。
将两方面信息用二维码生成器,制成二维码,则二维码中将包含网页链接和当前位置的坐标信息。
如以下一个例子:
http:
//210.29.15.3:
8080/DaoHangSystem/map_ShowMap.do?
start=A101
二维码中包含当前位置的坐标信息,如果是初次来此或是对该建筑内部通路不熟悉的用户,通过手机浏览器扫一下二维码,就能知道自己当前的位置。
通过二维码技术,方便快捷的解决了室内定位的问题。
4.2.3室内导航
在室内导航时,使用的是回溯算法。
知道了解迷宫的结构后,回溯法就从开始节点出发,以深度优先的方法探索整个解迷宫。
开始节点就变成一个活节点,同时也成为当前的扩展节点。
在当前的扩展节点处,选择某个前驱方向进行探索,移至一个新节点。
这个新节点就变成一个新的活节点,并变成当前扩展节点。
如果在当前的扩展节点处不能再向其他方向移动,则当前扩展节点就成为死节点。
遇到这种情况,应返回至最近的一个活节点处,并使这个活节点成为当前的扩展节点,重新选择方向前进,这就是回溯。
回溯算法就是以这种递归的方式地在解迷宫中探索,直至找到问题的解,或者解迷宫中已没有活节点时为止。
室内导航的目标是对用户提交的起点和终点,根据算法找出一条道路。
由于是室内导航,不存在道路拥挤、交通工具的换乘等情况,所以寻找一条可通行的路径即可。
但是室内导航系统的设计牵扯到楼层的问题,当起点和终点不在同一楼层时,必须考虑上下楼梯的因素。
本系统介绍室内导航模块和其他模块之间的关系,然后分析导航模块的功能和工作流程,给出导航的设计思路,最后给出导航模块的具体设计。
本系统中室内导航模块由用户模块调用,其具体实现需要依赖电子地图模块的地图结构文件。
用户使用用户模块向服务器导航模块发送导航请求,请求中包括起点信息和终点信息。
导航模块接到请求后通过室内导航算法,结合电子地图的拓扑结构进行处理,最终得出导航的路径。
4.4数据库设计
数据库的设计亦是系统中的重点。
数据库中的数据是地图的模型化后的信息。
数据库map2表包含房间节点编号、节点横坐标、节点纵坐标、节点所在层数、节点描述等一系列相关信息,通过算法绘制矢量图图形,实现现实中电子楼到电子楼电子地图的矢量化。
(一)数据库的设计
(1)数据库的设计,如表所示。
表4.1数据库设计表
名称
类型
长度
含义
roomId
int
11
主键,表示节点编号
x
int
11
表示三维立体坐标系x轴,代表节点横坐标。
y
int
11
表示三维立体坐标系y轴,代表节点纵坐标。
z
int
11
表示三维立体坐标系z轴,代表节点的楼层数。
description
varchar
255
对每个节点的具体功能描述。
(2)举个例子,数据库表中内容如下:
表4.2数据库表—举例表
roomId
x
y
z
description
1
1
1
1
1
2
2
1
1
电工预留室
10
2
2
1
B109
21
5
3
1
floor1-1
22
6
3
1
door
29
5
4
1
0
在数据库表中,对每个节点的具体描述是有不同含义的:
“1”表示在地图上该节点为障碍物,不可通行。
“0”表示在地图上该节点为通道,可通行。
“floor1-1”表示在地图上该节点为1楼楼梯,是上下楼必经之路,可通行。
“door”表示在地图上该节点为大门,可通行。
“电工预留室”则表示在地图上该节点为房间,是电工预留室,不可通行。
(二)数据库连接的代码实现
如图所示,是数据库连接的代码。
图4.4数据库连接代码
本文中,系统使用的数据库是mysql数据库,端口为3309,数据库为test,数据库表为map2,用户名为root,密码为1234。
第5章详细设计
通过第四章对多层建筑室内导航系统的分析与设计,得到了系统的功能模块概要设计。
首先开发人员需要对电子楼的地图进行量化,完成地图建模,并进行数据收集,存入数据库。
然后用户使用电子地图模块显示地图,通过手机浏览器,扫二维码向服务器发送HTTP访问请求,确定当前终点位置,检索终点位置,服务器调用室内导航模块处理请求。
本章主要讨论系统的详细设计。
5.1系统用例图
系统用例图是一种动态视图,用于描述系统功能的,体现的是用户与系统的交互的过程。
根据多层建筑室内导航系统的功能描述分析,可以生成系统的用例图。
如图5.1所示,本系统的用例是持有智能手机等设备的用户使用系统的用例。
图5.1系统用例图
基于二维码的室内导航系统的主要流程如下:
(1)用户用手机浏览器扫房间二维码,发送HTTP请求,访问室内导航系统,记录当前位置坐标,即为起点。
(2)用户选择楼层,室内导航系统显示该楼层电子地图。
(3)用户检索终点坐标。
(4)用户点击寻路按钮,进行导航。
(5)室内导航系统利用回溯算法,计算起点坐标到终点坐标的路径。
(6)显示起点坐标到终点坐标的路径。
5.2系统时序图
系统的用例,是通过对象之间的交互来实现的,而组成系统的类不是相互孤立的,类之间通过接口通信机制共同完成用户操作及系统功能。
系统时序图能够清晰的表示出用例在执行时涉及到的类以及这些类之间通信的先后顺序。
如图所示,通过UML建模的方法,给出系统的时序图。
图5.2系统时序图
根据用户的操作,室内导航系统的主要运行路径如下:
用户用手机浏览器扫房间二维码,发送HTTP请求,访问室内导航系统,记录当前位置坐标,即为起点。
打开导航网站后,用户有两个选择。
一,用户可以先选择所要查看楼层,室内导航系统将运行算法,调用数据库中相关数据,生成该楼层电子地图并显示。
二,用户也可以直接检索终点坐标,选择所要到达的目的地,点击导航按钮,进行导航。
室内导航系统利用回溯算法,调用数据库中坐标信息,计算起点坐标到终点坐标的路径。
显示起点坐标到终点坐标的路径。
5.3电子地图的实现
电子地图显示功能是室内导航系统的重要功能之一,以下内容将着重介绍电子地图功能。
(一)电子地图
在系统中电子地图显示的流程,如图所示。
图5.3电子地图显示的流程图
电子地图显示的顺序如下:
(1)用户选择楼层,传入所选的楼层;
(2)获得该层的行列,生成矩阵,;
(3)获得节点,将节点信息依次放入对应位置;
(4)添加外墙;
(二)代码实现
(1)电子地图的存储
电子地图是一个矩阵,可以使用二维数组表示电子地图,这样电子地图的每一个节点都可以用其唯一的行列号来指定。
但是,二维数组不能动态定义电子地图的大小。
我们可以先定义一个二维数组arr[i][j],然后用它存放元素,即可得到一个i*j的二维数组。
下面主要介绍矩阵的代码实现:
int[][]arr=mm.ProductMap
(2);
for(inti=0;ifor(intj=0;jSystem.out.pr