已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文基于安卓系统的手机位置跟踪应用程序的设计二级学院机械与电子工程学院专业通信工程完成时间2016年04月10日基于安卓系统的手机位置跟踪应用程序摘要在ANDROID移动应用开发中,手机防盗追踪功能是一项重要的安全技术,而本软件致力于手机的防盗与追踪,主要研究基于安卓系统的定位,电子围栏,手机SIM卡安全,以及短信追踪功能。软件共分为安卓端,服务器端,数据库端,与网页端四个方面,由它们可以实现记录定位信息,匹配手机信息,保障手机安全并能随时随地知道你的手机在哪里。本文主要分为软件总体功能介绍,以及各个应用端的设计与实现和最终的软件调试。首先介绍了本软件的主要功能和设计思路以及设计的意义,再分开详细描述每一个功能模块的设计与实现,如安卓端功能,服务端功能实现等。最后就是对系统的整体测试,测试发现,本软件已经满足需求说明书上的需求,可以正常使用。关键词安卓;防盗追踪;安全;软件引言随着移动通讯产业的快速发展,手机成为了我们生活中不可缺少的一部分,它不仅可以打电话,发短信,更可以浏览网页,聊天,甚至购物,银行转账等等,相信在不久的将来,手机的业务也能逐渐的取代电脑,成为一个互联网的终端,向外界提供更多的服务。而谷歌推出的一个专为移动设备设计的操作系统平台ANDROID,更是加速了手机产业的发展,但是,因为安卓系统是开放源代码的,且功能强大,容易使用,在我们的日常生活中应用十分广泛,所以针对手机的防盗追踪技术就显得更为重要。手机里存有我们大量的个人信息,甚至一些非常敏感的信息,要是丢失了该多危险。本软件是基于安卓平台开发环境,在智能手机上设计、实现基于安卓系统平台的具有手机防盗追踪功能的软件,有了它,再也不用担心找不到你的手机了。通过本次设计可以锻炼自己对所学理论知识和技能的综合运用,提高自己对文献资料的搜索和信息处理能力,培养自己对软件开发知识的能力,进一步提高自身的知识素养和设计论文的技巧。1软件介绍此软件是基于安卓系统开发的一个安全软件模块,主要有定位,追踪,防盗等功能。用户可在手机查看自己的位置,家人也可以在电脑查看手机所在位置,同时还有电子围栏,更换SIM手机卡告警,收到短信回复定位功能。11软件功能本软件是基于安卓系统的手机位置的跟踪应用程序,主要实现了以下几点功能(1)定位功能采用了第三方高德地图实现定位功能,同时高德地图集成了电子围栏,地图显示等功能,在安装了本软件的安卓手持客户端,和任何一台有浏览器软件的电脑端,都可以查看到手机所在的位置。(2)手机防盗功能每次当手机更换SIM卡,手机在开机和开启本软件时会匹配SIM卡信息,如果不匹配将会发送告警到事先设置好的监控手机号码。(3)收到短信回复位置功能当手机收到事先设置好的监控手机发来的短信,并且内容为“在哪”,则手机会回复地理位置给监控手机。12软件设计思路一座大楼的最初原型就是一张设计图纸,一个软件也是一样,只有先预想它要有什么样的功能,才能慢慢的去实现它,完善它,所以软件的流程图,就是一个软件的核心,软件的最初原型,和最终功能。图2软件设计总流程图(1)在开启本软件的时候需要先设置好本软件需要用到的一些安全信息,如手机监控号码,围栏半径,还有设置好电子围栏的中心点(默认为最初安装软件得到的经纬度为中心点)。(2)在软件首页可以通过不同的按钮选择不同的功能。(3)换卡功能在每次开机和开启本软件自动匹配数据,如果与存储的数据不一致,则会发出报警。(4)定位功能使用第三方软件高德地图实现,高德地图还集成了电子围栏功能,因此只需要使用高德地图的API就可以轻松的做到定位以及电子围栏功能。在完成定位的同时,发送定位信息到服务器端,在电脑上通过链接访问网页就可以在电脑上查看到手机的位置,方便又可靠。(5)通过监听手机的短信广播和短信数据库的变化来判断是否收到来自监控手机号码的短信,是否应该回复手机的定位信息。13设计本软件的意义手机在飞速发展,它的功能也不再局限于接打电话,强大的信息处理能力使手机成为我们身边不可或缺的重要助手。现如今,手机的数据传输速度越来越快,智能化程度也是越来越高,手机能处理的业务也变得越来越多,它在我们的日常生活中的重要性已经不言而喻,手机里存储了我们大量的信息,这些信息一旦随着手机的丢失而丢失的话,就会给我们的生活,个人隐私,财产等带来巨大的威胁。最近,MCAFEE对美国、日本和英国等3G业务比较发达国家的2000名用户进行了调查,研究发现,平均有861的用户对于手机所引发的安全问题有所担心。担心的内容包括私人信息泄露,蓝牙间谍或被远程监控、手机病毒影响到朋友和同事关系等。6随着手机功能的丰富及手机与我们日常生活的紧密关系,使得手机信息安全,再一次成为关注的焦点,本软件致力于手机的防盗和追踪功能,随时随地让你知道你的手机在哪里,再也不怕找不到自己的手机了。2安卓端21安卓系统简介ANDROID是GOOGLE公司推出的一款致力于移动便携设备的系统,这个系统主要由操作系统、中间件、用户界面和用户软件组成,是目前主流的手机系统之一,2011年在全球的市场份额超过了塞班系统,2013年全球市场份额已经达到781,它能够取代塞班系统不是没有原因的,安卓系统最大的优点就是开源,免费,也就是说安卓系统是开放源代码,而且不收费的,其次就是开放性,扩展性非常高,开发比较容易,所以才会存在安卓市场的大量软件的存在。22安卓系统结构以及主要组件首先我们看下安卓的系统结构图1图1ANDROID系统架构图ANDROID的系统架构主要分成了应用程序层、应用程序框架层、系统运行库层和LINUX核心层,层次分明,是一个标准的分层结构。而开发者一般只需要对应用层进行开发,就能开发出各种各样的APP软件了。本软件就属于应用程序层的一个APP软件。其中应用层最主要的几个组件,同时也是本软件所需要应用到的几个分别是ACTIVITY活动,BROADCASTRECEIVE广播接收器,BROADCAST,SERVICE服务,下面简单的介绍下它们。(1)ACTIVITY活动应用程序中,一个ACTIVITY通常就是一个单独的屏幕,也可以说一个ACTIVITY对应了一个界面,一个应用程序就是由多个ACTIVITY组成,它上面可以显示一些控件也可以监听并处理用户的事件做出响应,所以ACTIVITY就是与用户交互的媒介工具。(2)BROADCASTRECEIVE广播接收器广播机制是安卓系统的一个很大的特点,系统中发生的各种事件都会发出一个广播,例如,收到一条短信就会发出来短信了的广播,开机成功就会发出一个开机成功的广播等等。但是广播还有一个特性,就是不管你的程序接不接收这个广播,广播都会发出,就像我们日常生活中的广播电台一样,这也对我们开发软件有很大的帮助,比如我们需要监听来短信了这个事件,我们只需要在程序中写一个广播接收器接收这个广播,再做我们需要做的操作就可以实现我们的功能,非常简便。(3)SERVICE服务SERVICE类似于WINDOWS中的服务,没有界面,只是在后台运行,由于它是不可见的,所以服务不能自己运行,只能通过调用CONTEXTSTARTSERVICEINTENTINTENT或CONTEXTBINDSERVICEINTENTINTENT来开启一个服务,而正是由于不可见,我们可以在后台做一些不需要界面辅助的事情,比如本软件在后台定位,并回传信息给服务端。(4)CONTENTPROVIDER内容提供者CONTENTPROVIDER是一个可以共享数据的组件,这些数据可以存储在文件(FIEL)、SQLITE数据库、或者其他合理的方式,其他应用可以通过CONTENTRESOLVER类从该内容提供者中获取或存入数据,但是一般我们开发的应用程序不会把自己应用的数据共享出来,只有类似于通讯录这些才会供给其他程序调用。23安卓项目结构搭建好了安卓的环境就可以进入开发阶段了,首先我们来看看一个安卓APP包结构图3安卓包结构图(1)SRC目录源文件存放目录存放代码(2)LIBS目录第3方功能JAR包存放库文件和第三方JAR包(3)RES目录项目内部资源存放图片,布局文件,菜单,文本资源等(4)GEN目录工具自动维护目录(5)ANDROIDMANIFESTXML文件项目的核心配置文件所有ACTIVITY和SERVICE,广播接收器,以及权限都需要在里面配置24安卓存储方式由于软件需要进行数据的处理,存储,发送数据必不可少,下面简单的介绍下安卓的几种存储方式第一种是安卓自带的小型数据库SQLITE,SQLITE虽然比MYSQL,ORACLE等数据库轻量,但是实质都需要编写SQL语句,操作复杂,不建议使用。第二种就是使用FILE,也就是文件的形式进行存储,在手机内存或者SD卡新建目录进行存储,这种存储形式更适合图片缓存,日志记录等内容,也不建议使用。第三种就是使用SHAREDPREFERENCES,这是一种轻型的数据存储方式,使用简便,易于存取。经过仔细对比,感觉本软件需要存储的数据较少,可以不需要使用数据库存储,因此使用安卓自带的一种简便的存储方式进行数据存储。下面简单的介绍下这种存储方式SHAREDPREFERENCES它的本质是基于XML文件存储KEYVALUE键值对数据,通常用来存储一些简单的配置信息。其存储位置在/DATA/DATA/SHARED_PREFS目录下。具体实现代码如下SHAREDPREFERENCESSPTHISGETSHAREDPREFERENCES“SAFEINFO“,THISMODE_PRIVATEEDITOREDSPEDITEDPUTSTRING“BANJING“,MBANJINGEDCOMMIT这段代码是将本软件设置好的围栏半径,监控号码和SIM卡识别号存储到SHAREDPREFERENCES里,一共存储了三条数据,里面”BANJING”对应了设置好的半径,监控号码和SIM卡识别码也是一样,这段代码执行过后,即在/DATA/DATA/COMNINGLOCATIONSYS/SHARED_PREFS目录下生成了一个SAFEINFOXML文件,一个应用可以创建多个这样的XML文件,然而,有存就有取,因为这是一个非常简便的存取工具,在取的时候代码也非常简单,只需要简单的几句就可以取出存储好的数据,具体代码如下SHAREDPREFERENCESSP2THISGETSHAREDPREFERENCES“LOACATE“,THISMODE_PRIVATELATITUDEDOUBLEPARSEDOUBLESP2GETSTRING“LATITUDE“,“0”这是取出存储的定位获得的经纬度信息,只需要找到对应存储的XML文件,对应的KEY值,通过GETXXX方法,可以方便的获得对应KEY的VALUE值,如果KEY值错误或者此KEY无对应VALUE值,SHAREDPREFERENCES提供了一个赋予默认值的机会,以此保证程序的健壮性。225安卓的服务器连接由于本软件需要发送数据到电脑端,所以就需要连接到服务器,ANDROID中网络请求一般使用APACHEHTTPCLIENT或者采用HTTPURLCONNECT,但是直接使用这两个类库需要写大量的代码才能完成网络POST和GET请求,所以经过我在网上和书籍上进行搜索,终于找到了更加便捷的方法来实现网络的连接操作。ANDROIDASYNCHTTP是一个第三方服务器连接组件,它是基于HTTPCLIENT进行二次开发的一个开源框架项目,最大的特点就是封装好了我们连接服务器的代码,并且所有的连接请求都独立在主线程之外,我们只需要通过回调它提供的方法,就能得到请求的结果,再进行结果的处理就可以了。由于操作十分简便,所以本软件采用这种比较成熟的服务器连接开源框架来实现服务器的连接,下面简单的介绍下它的使用方法(1)首先到它的官网去下载最新的JAR包,然后添加到安卓应用程序包目录下的LIBS目录下。(2)在代码中实现网络的连接操作ASYNCHTTPCLIENTCLIENTNEWASYNCHTTPCLIENTLISTLISTNEWARRAYLISTLISTADDNEWBASICNAMEVALUEPAIR“LATITUDE“,DOUBLETOSTRINGLATITUDELISTADDNEWBASICNAMEVALUEPAIR“ADDRESS“,ADDRESSURLENCODEDFORMENTITYENTITYNEWURLENCODEDFORMENTITYLIST,“UTF8“CLIENTPOSTTHIS,“192168201938080/SAFESYS/LOCATESERVLET“,ENTITY,NULL,NEWASYNCHTTPRESPONSEHANDLER通过以上几行简单的代码就可以把服务端需要的信息传输过去,在它的ONSUCCESS方法中可以得到发送成功返回的回调信息。相比使用安卓原生的HTTPCLIENT方便了许多,减少了大量的代码。26定位功能由于定位功能有更好的第三方软件可以提供使用,高德地图集成了GPS,基站,WIFI等目前最主要的定位方式,所以本软件采用了高德地图来实现定位的功能。下面是定位功能的详细实现流程图5定位功能流程图高德地图是一款能够提供免费的地图导航服务的产品,也是国内比较流行的地图软件之一,由于它的免费性,以及定位功能的稳定、全面性,本软件综合考虑之后决定使用这款地图服务,但是要使用属于第三方软件的地图服务,必须遵守它的规则,下面是本软件使用高德地图进行开发的前置操作(1)访问HTTP/LBSAMAPCOM/进入高德地图官网,注册申请成为开发者,并申请应用的KEY。(2)找到相关的下载,解压得到定位包和地图包拷贝JAR包到项目的LIBS目录。(3)在核心配置文件里进行配置并指定申请的用户KEY,这个步骤比较重要,因为每一个应用都对应了一个KEY值,是使用高德地图的一把钥匙。(4)必须在核心配置文件里添加必须的权限,比如获取手机信息,开启网络数据流量,GPS等,这样就可以使用高德地图的服务了。(5)最后就是通过代码来得到我们需要的地理位置信息,首先是初始化高德地图的定位,并设置监听器来得到返回的地理位置信息,还可以通过设置一些参数获得不一样的效果,比如设置定位模式为高精度模式(采用GPS模式)或者低功耗模式(采用网络或者WIFI定位),设置定位的次数为一次或者无线次数,还有定位的时间间隔等等,非常简单实用。本软件每隔设置的时间间隔为每分钟定位一次或者每分钟定位2次。然后我们接收返回的位置信息,存储起来,再做一个对比,如果位置不变的话,就不要发送到服务端存储,由于位置信息需要传递到服务器端,在电脑上显示,所以就必须把定位后得到数据存储并发送出去,所以就需要用到前面所说的服务器连接组件ASYCHTTPCLIENT。27电子围栏功能地理围栏是模拟出一个虚拟的栅栏,以一个圆形区域作为一个虚拟的围栏,当我们进入或者离开这个区域的时候,手机都能够接收到通知。高德地图同时也提供了地理围栏的功能,由于它也是属于定位服务的,所以与定位相关的所有前置工作都要做,然后需要注册一个广播接收器来实现围栏的功能,根据返回来的信息判断是在围栏半径内还是在围栏半径外,再做对应的操作。这个功能主要是定位功能的一个扩展,只需要在定位的基础上添加一些地理围栏的代码,不过,由于我们不知道到底什么时候用户会走出这个圈,所以我们需要使用到一个将来的意图(INTENT),在未知的时间里如果走出了这个围栏就会触发这个意图,而我们只需要在触发意图的时候发送一个特定的广播,就可以通知到我们的用户出了围栏,然后我们再做对应的操作就可以了。28换卡发送短信功能由于在手机的SIM卡中并没有保存用户的手机号码,所以只能通过SIM卡唯一的识别串号(区分每一张SIM是通过IMSI码,在运营商的数据库中存在手机号码和IMSI码的映射,所以手机是通过发送IMSI码到运营商的一端,获得自己的手机号码)来判断是否切换了SIM卡,并且在开机和开启APP的时候双重判断,就能够判断出用户的手机卡是否切换。主要流程如下图6换卡发送短信功能流程图(1)首先是在安装APP的时候,默默在后台存储了手机的相关信息,在主界面也能查看手机的各种状态信息。(2)在手机开机的时候和每次开启APP的时候都再次取出IMIS码做对比,如果匹配结果不一致,则判定为切换了SIM卡,反之没有切换。具体代码实现获取手机IMIS码TELEPHONYMANAGERTMTELEPHONYMANAGERTHISGETSYSTEMSERVICECONTEXTTELEPHONY_SERVICESTRINGSUBSCRIBERIDTMGETSUBSCRIBERID安卓系统在开机完毕后会发出一个开机完成的广播,我们只需要在程序代码中监听这个广播,首先是需要注册一个广播接收器进行监听,然后在开机完毕后执行相对应的匹配操作,就能够实现这个功能,不过由于开机手机会比较卡顿,经常不会执行或者是卡的时候手机为了保证系统不受影响会杀死这些代码执行的进程,具体实现如下先写一个类继承广播接收器BOOTBROADCASTRECEIVER用来接收开机的时候安卓系统发送出来的广播,然后在它的ONRECEIVE方法里执行相应的匹配操作,如果匹配成功则不做操作,如果检测到开机获取的手机卡的识别码与我们存储的不一致,则执行发送短信操作。最后,需要注意的是,广播接收器需要在核心配置文件里进行配置,具体代码如下29收到短信回复我们的手机收到一条短信,安卓系统也会发出一个广播,并且把短信放在一个BUNDLE(INTENTEXTRAS)中,BUNDLE可以理解为一个键值对的形式,短信采用“PDUS“作为键,PDUS应该是PROTOCOLDESCRIPTIONUNITS的简写,也就是一组短信。7ANDROID不是一接收到短信就立刻发出广播的,他会有一定的延迟,所以就有可能会有多条短信,所以才会用数组来存放。所以这个功能需要监听手机来短信的广播或者监听短信数据库的变化,为了确定能收到监听到短信,本软件对这两个点都做了监听,因为广播的权限与优先级别会被打断,但是数据库的变化不会,因此,这样双重监听才能确保能收到短信的时候代码会被执行,具体实现流程如下图7收到短信回复流程图首先是我们需要注册一个广播接收器监听短信广播,一个广播监听短信数据库的变化,在它们的ONRECEIVE方法中实现短信判断逻辑,当收到短信的时候,我们要获得短信的内容,短信的发送者,然后根据发送者和内容做一个判断,再决定是否需要回传定位短信。短信到来的时候,系统会将短信的内容封装成PDU的格式,然后放到INTENT里面。所以要获得短信的内容,就通过INTENT,将PUDS拿出来就可以了,它返回的是OBJECT数组,下面是获取短信内容的实现OBJECTMESSAGESOBJECTINTENTGETSERIALIZABLEEXTRA“PDUS“BYTEPDUOBJSNEWBYTEMESSAGESLENGTHFORINTI0I这样的符号,这就是HTML的标签。42网页端功能实现网页主要由HTML编写,其中使用到了目前比较流行的一些技术,比如AJAX,和JAVASCRIPT。AJAX也不是一种新的编程语言,只是一种技术。主要用于创建更好更快以及交互性更强的WEB应用程序,AJAX在浏览器与WEB服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面,用于局部刷新效果非常好。JAVASCRIPT是一种属解释性的脚本语言,被广泛用于WEB应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。网页端主要是由HTML标签编写形成,调用了百度地图的接口,我们只需要发送一个AJAX的POST请求到对应的SERVLET就请求到服务器返回的数据,然后在它的SUCCESS方法中把获取到的位置信息加载到百度地图中去,地图上就会显示出最新的定位信息,当然,如果没有接收到数据的时候,也做了相应的处理,会弹窗告知没有定位信息,打开手机定位。最后在电脑上任意一个浏览器输入网络上的HTML链接就可以得到地图显示出来的定位信息,比如本软件通过访问19216811048080/LOCATESERVER/DITUHTML这个链接就可以访问到HTML页面,网页成功访问的时候会把SERVLET返回的JSON数据解析,然后应用到地图页面。最终我们就能够看到地图上显示了小于10条的定位信息,且最新的一条会以卡通人物和窗口特别显示出来。5调试在调试初期,遇到了很多问题,比如获取不了手机SIM卡的号码,就不能判断是否切换了帐号;还有监听收到短信的时候,广播接收器不能拦截到信息;还有监听开机广播,开启定位服务和换卡监控服务无法实现等等。后来,经过上网查询资料,终于一点一点解决了问题,进入到了调试阶段51程序调试程序开发中会遇到各种各样的问题,如语法的错误,逻辑的错误。开发完一个功能,都需要及时测试,待功能测试通过后,才能进行下一个功能的开发,这样可以保证程序的质量。在程序开发中,使用了打印调试信息,弹窗提示,DEBUG调试等方法。52测试的主要内容为了保证测试的质量,测试过程包括代码审查、单元测试以及系统测试。(1)代码审查代码审查为了对代码中冗余的部分,代码中逻辑不合理的部分加以修改,保证代码的可读性,可维护性。(2)单元测试单元测试就是模块测试,是编写的一小段代码实现某一个具体的功能,用来检查功能是否符合需求。3系统测试系统测试是将所有的单元模块整合到一起,作为一个整体的系统进行测试,验证系统是不是满足了需求,还有没有能更加完善的办法等。下面是本软件进行调试的一些截图图9设置安全信息页面调试这个是在开启本软件的时候需要设置的一些安全信息,是实现后续功能的前提,对于这些数据的存储,遇到过很多的问题,比如存储和取出来的先后逻辑出现错误,重复存储,重复取出等问题,做过很多的尝试,最终还是统一做一个安卓本地的存储,这样利于存取,完美的解决了这个问题。图10手机中查看我的位置页面调试这是在调试在手机上查看我的位置调试时候的截图,刚开始这个功能只能够在文字页面中查看到定位得到的消息,不够突出,也不能查看周边的环境,最终为了更好的视图效果,我加上了地图上查看位置这个功能。图11调试检测手机是否换卡功能这个功能相对花的时间还算是比较多的,因为在我们的是手机中并没有存储我们的手机号码,为了实现这个功能,我找了不少的资料,最终通过手机卡中唯一的一个识别码解决了这个问题。地理围栏这个功能算是最难测试的一个功能了,由于距离不好控制,当然定位也会有一定的差距,最后还是通过安卓的模拟器设置的一个虚拟定位成功调试出来,只需要在设定好围栏的半径之后,模拟已经到另一个地址,就可以接收到围栏信息,下图模拟的位置首先是广东省广州市越秀区王圣堂后街,接下来我模拟到距离它绝对超过围栏半径的广州市白云区天幕步行街,结果能正确打印出离开围栏区域信息,手机界面也会弹出消息提示。图12地理围栏测试结果最后一个功能是在电脑上查看手机的定位信息,这个功能主要是访问之前写好的SERVLET获取到数据库存储的定位信息(默认显示10条,不足10条按原来条数计算),然后在浏览器输入HTML页面的链接,就能够在地图中显示出手机传送过来的信息,在页面中,最新的一条信息将会以一个窗口显示出来,且定位中心点由一个卡通人物作为标志,非常容易识别。图13电脑查看手机位置信息界面经测试该软件系统的功能皆正常。软件的质量可以达到保证,软件系统在异常情况下能正常运行,不会出现异常状况而直接退出。6总结通过本次毕业设计,使我熟悉了软件开发的流程,并且学到了很多软件开发的知识,这些知识,这些实战经验都是在课堂上学不到的东西,在此同时,我也有几点深刻的体会(1)编程中定义窗体及变量的名称时,一定要规范,必要时加上注解,不要想当然的定义某个变量,常量等。标准的定义方式,有助于自己以后维护,也便于其他编程人员更容易的看懂程序代码,以便以后进行维护。(2)编程的方法固然重要,程序的使用界面也需要注意美观,布局要合理,主题要突出,界面要友好,要让使用过计算机的用户在首次接触到该软件时,感到一目了然,只要简单翻阅一下软件使用说明书就能了解该软件的大致功能。(3)在程序编好后,对程序的调试是极其重要的一步,调试程序的意义在于,可以逐步完善,改正程序中的错误,使程序尽量达到尽善尽美。在程序调试的过程中,尽量不要以编程者编程时的思想去调试,要以一个普通使用者的思维去调试。以上是我在编写程序过程中的体会,在这次毕业设计的过程中我不仅了解了软件的编写过程,更体会到软件工程的重要性。一个软件成败的关键在于需求分析和总体设计。从软件工程的角度有以下几点体会(1)需求分析工作是软件开发过程中重要的一步,也是决定性的一步,是要把用户“做什么”的要求转换成一个软件的逻辑模型。在实际工作中,由于用户对软件开发的不了解,往往对于软件所要达到的功能不能完全提出来,软件开发人员要完全了解用户的需求,要想到用户的前面,把用户没想到的需求也要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024装修合同样填写简单装修合同样本
- 2024年娄桂与前配偶共同抚养子女合同
- 2024年度鲜花花艺设计合同
- 2024年度文化创意产品设计合同
- 2024年废纸回收合同范本下载
- 2024年建筑工程木工长期劳务合同
- 2024年双方协商一致停薪留职具体条款协议
- 课件彩虹2教学课件
- 2024年度货物销售合同标的:电子产品销售
- 2024年度项目托管合同
- (2024版)大学本科新增专业《智能视觉工程》解读
- 2023寺庙寺院品牌营销全案
- 循环系统监测-课件
- 企业反腐倡廉培训课件
- 老旧楼加装电梯方案
- 索道桥悬索桥施工方案样本
- 医疗影像技术部门KPI设计
- 高分子职业生涯规划
- 人工流产术健康宣教课件
- 老年高血压管理指南
- 危化品运输安全检测与监控
评论
0/150
提交评论