信息管理与信息系统毕业设计-基于安卓的打卡社交系统设计与实现_第1页
信息管理与信息系统毕业设计-基于安卓的打卡社交系统设计与实现_第2页
信息管理与信息系统毕业设计-基于安卓的打卡社交系统设计与实现_第3页
信息管理与信息系统毕业设计-基于安卓的打卡社交系统设计与实现_第4页
信息管理与信息系统毕业设计-基于安卓的打卡社交系统设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

绪论1.1研究背景伴随着5G网络的快速发展以及手机终端的广泛应用,中国的手机网络市场得到了快速的增长。在19届中国网络会议上,《中国互联网发展报告2020》公布,截至2019年底,手机上网人数达到13.19亿,约为世界上32.17%的手机上网人数。与此同时,5G通信技术的成熟与产业化,将会引发一场新的技术变革,并对人类的日常生活产生极大的影响[1]。根据StatCounter的资料,截至2019年9月,Android系统在当前正在使用的手机操作系统中,占有了76.24%,Android已经成为手机智能手机的领头羊。另外,因为Android开放源码的特点,使得移动程序的开发人员能够很好的理解并借鉴其先进的设计理念;这样就可以提升开发人员的专业性。另外,安卓系统的用户更多,用户也更多。所以,对于移动程序开发人员来说,安卓是首选。因为新冠肺炎疫情,很多学校不能如期上课。同时,教育部也发出了关于“停课不停学”的通知。而在上课时间不多的情况下,由于缺少家庭好友的相伴和校园的学习气氛,更可能让他们沉溺在丰富多彩的手机软件中;这会引起延迟或者加重。与此类似,很多公司也都开始实行网上办公,但是很多人都会因为在家里办公而忽略了自己的工作时间;沉溺于像移动电话这样的软件会让你的工作延迟。使工作无法按计划进行。拖沓是一种普遍存在的问题,严重地影响着学生的学业、工作和生活。为了克服这个缺点,有许多方法,比如制定明确的目标,科学地管理自己的时间,提高自己的意志力,提高自己的积极性等等。在网络环境的冲击之下,人们可以利用各种社会工具,迅速地构建出一个虚拟的社会社群,这将传统的社会模式彻底打破,让有着共同爱好,但生活在不同地区的人,可以在这个社会中进行实时的互动。基于此,我们设计了一个基于安卓平台的移动电话打卡软件,采用设定目标与自我动力的方式。通过使用打卡社交体系,使用者能够培养出一个很好的工作打卡习惯,还能够与其它使用者进行沟通和交互,互相鼓励,以此来解决自己的拖拉问题,提高自己的自信。在工作,娱乐,生活三者之间要有一个平衡点。1.2国内外概况简介1.2.1时间管理软件研究现状随着网络与移动电话的快速流行,人类对移动电话的依赖程度越来越高,延迟的问题也越来越突出。于是,就有了很多为拖拖拉拉的人设计的时间管理软件。这些应用软件主要可以分成两种类型,一是打洞,使用者可以自己设置打洞的任务和时限,只要在指定的时限之内就可以,那么就可以进行打卡[2]。这一类型的程序可以对程序的执行产生积极的刺激,促使程序的使用者在程序中培养出更好的行为习惯,避免程序的拖延。第二种是时间倒计时型,即使用者设置下一段时间的注意力,在这段时间里,使用者必须将注意力集中在工作或学习上,不允许使用任何的手机程序;不然,就会导致倒计时失败。这种类型的应用,是将电话与外界隔绝开来,让使用者在使用软体时,逐渐脱离对电话的依赖性,而不会有任何延迟。在世界范围内,有许多出色的时间管理软件。像崔洛,定时器,定时器。Trello是一个线上的合作专案管理软件。另外,该系统也被广泛应用于日常的工作当中,比如利用来自美国北部佛罗里达的Trello系统来追踪电子文件的采集与保存情况。Trello是建立在看板的基础上的,它有三种类型:牌,列表和牌。该系统的顶层结构是该系统的顶层,使用者可以自行在其上建立自己的区域。在每一块板子上,你都可以建立一个清单。正式建议的列表可以分成3种:正在进行的,即将进行的,以及已经进行的。以上三种清单构成了一个完全封闭的流程,以实现一个工作。另外,使用者也可以建立他们自己的清单。在每一个列表中都可以插卡,用来记载具体的工作内容,卡上可以添加链接,图片,内容介绍;标签,截止日期,也可以增加附加,信息等,可以充分的满足使用者的需要。Trello是一款合作开发的公私合作软件,尽管也可以变成一套个体的时间管理软件,但是对于个体使用者来说,这款程序太过庞大;还有其他的一些功能,比如人脉,都是在组队之后才能使用的。这是一个带有西红柿闹钟的计时软件。使用者可以建立他们自己的行为,也可以将所建立的行为设定为注意力模式,从而启动时间。在此期间,使用者可以将这些行为添加到西红柿时钟的模式中,并且在空闲时设定其它的行为。在一个事件被建立之后,如果使用者选取这个事件,您可以在常规对焦方式和西红柿计时方式之间进行选择。西红柿的处理工艺是由FrancisCirillo于1992年建议的一种新工艺,它的原理是,每次工作二十五分钟,然后再有五分钟的休息,一个工作可以用多个西红柿来代替,只要做完其中一个,那么这个工作就会被取消。这种“西红柿工作法”,既能保证在有限的时间内,又能保证任务的效率,又能让人从中获得一种满足,产生一种动力的恶性循环。所以,Timetrack的西红柿时钟已经得到了很多人的认可,并被他们所建议另外,使用者也可以透过软体的资料统计,了解当天所做的特定工作,以及一星期、一月两种不同类别的资料。通过对这些信息的总结,可以更好地培养出更多的用户对该程序的应用习惯,从而减少了他们对信息的延误。不过,Timetrack向西红柿钟表业务收取费用,这将使一部分顾客流失。另外,国产的时间管理系统也有了很大的发展,种类也很多。典型的有TimeSquare、Toddo、Forest、潮流等。TimeSquare是一个带有时间提示的计划管理软件。在这个过程中,使用者可以将自己想要做的工作分成不同的种类,并在设置了一定的时限后,提示使用者在规定的时限内,及时地将所要做的事情告知使用者[3]。与其它的软件相比,该系统关注于一个计划,而非一个特定的行动。用户可以预先设置好自己的工作和工作的时间,然后软件会定时的进行提示,以提示和督促用户在规定的工作期限内,能够及时地完成工作。对于数据的统计,本软件还提供了每日,每周,每月的时间表的统计。但是,如果使用者希望将特定的工作记录保存在档案中,则仍无法达到要求。西红柿ToDo与Timetrack的工作管理、西红柿时钟定时、以及数据统计等特性相似。除此之外,本系统还新增了“优等生”、“自学”等新功能。在学霸模式中,用户的手机会被锁定,并以一种强迫的方式禁止他们开启手机中的其它应用,以此来提升他们在执行任务时的专注程度。自习室的功能让使用者可以设定自己的课室,并且可以邀请朋友一起来一起监视自己的学业,也可以查询课室的等级,并可以选择自己感兴趣的课室。在自学教室里,使用者可以查看别人的专心程度,然后把自己和别人做对比,以此来激发使用者的积极性。刺激使用者的动力去学习。不过,其社会作用只局限在了学习时间上,并没有得到很好的发挥。其拥有漂亮而新颖的用户界面,并以一种栩栩如生的树木植入物的方法,为用户提供了一个设定时间长度并进行倒数的功能。在此过程中,使用者无法在手机上查看任何网页,只有在倒数完毕后,才算完成植树。从统计的角度来看,使用者可以看到每天,每周,每月,每年的注意力时间。不过,Forest无法为每一次的工作设定倒计数,所以当你看到这些工作的时候,你就不会清楚你在做什么了,这让你有一种很不好的感觉。在社会层面,用户可以在微信等第三方社会平台上建立一个房间,并邀请朋友共同参与倒数,但其限制为在自己社会平台上已经有的朋友;社会网络中的社会网络还没有扩大,社会网络的社会化特征还需要进一步提高。1.2.2即时通信研究现状即时通信(IM)是当今社会的主要通信模式。与电话、邮件等通讯手段相比,即时消息不但可以实现实时互动,还可以通过多种多媒体的形式来进行沟通随着网络的飞速发展,IM的成本越来越低,新的IM软件不断涌现,越来越多的IM软件开始出现,越来越多,越来越多。最近几年,在聊天软件中,微信已经是当之无愧的第一。微信是由腾讯于2011年发布的面向手机终端的一款聊天工具,它支持多种类型的聊天方式,如图片,声音,视频,并具备公众号和小程序等社会化媒介的特性,更好地满足了用户的需求。所以,从一开始,微信就广受广大用户的欢迎,现在已经有超过十亿的注册用户,特别是在学生中。而现在,它已经变成了很多科研人员的工具。对于用户的隐私和安全来说,IM消息的传输是最基本的。所以,目前市面上的通信软件大多使用的MSNP(Microsoft)、美国在线(AOL)的OSCAR(Microsoft)等通信协议。这种独断专行的方式,对于IM之间的连接以及通信产业的长期发展来说,是非常有害的。针对这一现状,许多世界范围内的通信协议标准机构也都纷纷提出了自己的看法,并提出了自己的看法。当前,通讯技术中存在着四种最基础的通信协定,它们也是当前大部分通信软件所采用的基础通信协定;分别为:即时消息及空间协定(IM)、空间及即时通信协定(SpaceandInstantMessageProtocol,PRIM)、SIP即时通信及状态扩充协定(SIMPLE)及可伸缩讯息及状态协定(ExtensibleMessageandStateProtocol,xmpp)。由于PRIM像另外三个协定那样被取消了,因此在此就不重复了。以下是另外三个通信协定的详细说明:(1)IMPP协议IMPP(InstantMessaging

andPresenceProtocol)协定是由IETF(IETF)制订的。在此基础上,本文提出了一种基于网络传输的实时通信方案。到现在为止,IETF发布了三个RFC的草稿,两个最重要的是RFC2778,它的目标是位置和信息模式,RFC2779,它的目标是信息/信息/信息协议的要求情况。(2)SIMPLE协议此外,IETF还开发了SIMPLE(内部消息与预设发布扩展SIPs),并与RFC2778及RFC2779一致。这个协定是基于SIP(SessionInitiativeProtocol,SIP)的扩充而来。SIMPLE使用SIP来创建IM过程,并且使用SDP(SessionDescriptionProtocol:SessionDescriptionProtocol)来传送信息。(3)XMPP协议可扩展消息和预设协定(XMPP)是由JabberSoftwareFoundation提出并首先在Jabber上实施的。这个协定是一个以XML为基础的公开协定,利用XML资料串行在客户与服务者之间传送资料。目前,XMPP已经获得Internet项目专家组的认可和规范化工作已经完成。另外,在Android平台上,也经常使用MQTT、WebSocket等通信机制。详细情况是这样的:(1)MQTT协议MQTT(通信队列传送)是一种由IBM公司研制的报文排队遥测传送协定。该系统采用了TCP/IP通信方式,采用了发送和订购两种方式,并采用了TCP/IP通信方式,从而实现了对用户的访问。(2)WebSocket协议WebSocket是基于TCP的一种单独的通讯方式,在C/S端口上规定了两种类型的异步、双向、单端口的通讯方式。1.3主要研究内容本项目以当前社会中广泛出现的拖沓问题为切入点,通过对已有的时间管理工具进行深入的分析和分析,提出一种新的打卡方法。在使用该系统的同时,用户不但可以培养出自己的打卡习惯,还可以利用动态和私信等社会形式,与别人进行交互,实现相互鼓励;目标是增加生产力和使用时间[4]。本论文的第一个内容是:在绪论中,对排课社会系统的研究背景进行了阐述,并对当前国内排课社会系统的研究状况进行了简要的阐述,对排课社会系统的实际需要与已有的管理软件的性能要求进行了分析。为以后进行系统的需求分析打下了良好的基础。在需求分析一章,基于之前对时间管理软件功能的介绍,文章从用户需求、系统功能需求以及非功能需求三个方面出发,对本论文的社会打卡系统进行了需求分析,确定了系统所要完成的主要功能,为以后的系统设计提供了依据。在软件设计中,根据用户的要求,对购票社会系统进行了总体结构设计,功能设计,数据库设计等方面的设计,最后给出了具体的实施方案。在系统的实施和试验中,详细地介绍了该系统的研制中所使用的软硬件环境,并且详细地介绍了它的主要功能的实施流程和实现接口的截屏,然后,对在系统完成后的功能进行了设计和测试;文中还详细说明了该软件的实验流程、实验结果以及一些非功能实验,从而保证了该软件的实用性,并为使用者提供了较好的体验。在“总结和前景”部分,主要是对本论文中所做的一些工作进行了归纳,并根据该系统的实际情况,提出了一些可以进一步完善的地方,为以后的系统的扩展指明了一个方向。2相关技术介绍这一章重点对安卓体系、WebSocket协定、OkHttp、资料库以及在打卡社交体系的发展中所使用到的发展环境做一个简单的介绍。2.1Android系统架构安卓是一种以Linux为核心的开放源码系统,目前已广泛应用于手机和平板电脑等智能手机上。安卓系统于2003年首次被安迪·鲁宾和他的同事们所发明,然后于2005年被美国谷歌公司所购买。谷歌于2008年发布了其首个安卓系统。之后安卓系统一路高歌猛进,两年后便超越了诺基亚的Symbian,一跃而上,成为全球最大的智能机操作系统。在图2.1中显示了Android系统的结构。图2.1Android系统架构图安卓的体系结构由4个层次和5个主要元素组成。它们是:(1)Linux内核层Linux的核心是基于Linux2.6,并基于用户的实际需求对其进行了改进和优化。为安卓操作系统的硬件提供多种基础驱动程序,如键盘驱动程序,摄像头驱动程序,显示器驱动程序等;无线保真驱动,绑定驱动,等等。这就保证了安卓系统能够对各种设备做出适当的调整,以及与之有关的通讯。另外,系统还具有内存管理,权限管理,电源管理等功能;主要的业务,如流程管理。(2)系统运行库层其中,操作系统的运行库主要由程序库和安卓的运行库两个组成。其中,使用C/C++开发的类来保证体系结构级的高效运行。其中,程序库对Android平台的一些重要功能进行了支持,例如:SQL语言库对数据库的支持,Webkit语言库对浏览器的支持,以及OpenGL/ES语言库对3D绘制的支持[5]。安卓系统的Runtime包括了一个核心类库以及Dalvik的虚拟机。这个内核类库包括了一些可以访问的功能,这些功能保证了开发人员可以用Java来写Android的应用。Dalvik虚拟机的基本结构是以注册表为基本结构,这样就保证了它的运行高效性。这使得每个安卓系统的程序都可以单独运行,并且每个程序都有自己的虚拟化程序。谷歌在安卓5.0发布后,为寻求更高效的方式,它宣称将采用ART技术取代Dalvik技术。ART采用了立即编译和预编译技术,保证了在APK运行以前,对Dex字节码进行了编译,并获得了当地的机器指令,从而使系统的性能得到了进一步的提升;让安卓程序可以更快速地开始,并且消耗更少的能量。(3)应用程序框架层其中,软件架构是以Java为基础,以Java为基础,对Android系统中的应用进行了详细的介绍和分析。在此基础上,开发者可以根据不同的API进行不同的开发,比如活动管理,资源管理,地理位置管理,通知管理等等。(4)应用层在这个程序中,你可以保存你的手机上的全部的Android软件,比如SMS,通讯录,日程安排等等。浏览器、应用市场中下载的应用和开发者自己开发的应用。2.2WebSocket协议WebSocket是建立在TCP上的,它的缺省端口是80,而它的端口是443。在服务器与用户间的网络Socket的构建过程可以分成三个步骤:用户发出一个“握手”要求,用户发出一个“握手”要求,用户发出一个“握手”要求,用户对这个“握手”要求进行处理。在客户与服务端经常进行双向通信的时候,这种做法能够防止服务器打开多个HTTP连接,从而提高了通信效率和资源利用率。2.3OkHttp在Android的早期,Android有HttpClient和HttpUrlConnection两种内置的网络请求框架。因为两种网络请求框架都有不同的bug,Google在Android4.4版本以后将HttpUrlConnection的底部替换为Square机构开发的OkHttp,并在Android6.0版本中将HttpClient去除。OkHttp是一种开放源码的轻量级架构,特别适合于处理网络上的要求。该协议具有易用、通信开销小、能将全部请求接入到相同的地址、利用连通池来降低响应时延;由于共用socket可以降低要求的数目,所以要求的有效性有了很大的提升。2.4数据库介绍采用MySQL+Redis格式,对打卡社交管理系统中的客户终端进行了有效的保存。MySQL是一个开放源码的关系数据库,它是瑞典MySQLAB公司所研发的。MySQL数据库具有很强的能力,它不但能够进行数据的安全储存与迅速查询,还能够提供多个用户的同步连接与存取,能够很好地解决中小规模应用对数据的基础存储与存取的需要。另外,利用各种可视化的工具,可以对MySQL进行简单的处理,大大方便了开发人员的工作。在这篇论文中,我们所采用的VisualDatabaseManagement软件就是基于Navicat的VisualDatabaseManagement软件。Redis是一个开放源码,键值类型的诺斯ql数据库.Redis支援资料型别,资料型别,清单,集;Sortedset和hash,5个可以用来处理基础商业场景需求的数据。在此基础上,提出了一种基于String的SocketsSocialSystemSystem,用于对缓存数据进行存储,以提升系统的查询速度。在打卡社交中,我们使用SQLite来保存一些用户数据,该数据库是一个非常适合于手机应用的、轻量化的、可用于手机应用的数据库。SQLite是一种内置型的数据库,它不但体积小、速度快,而且不需要任何的组态,还能自行执行交易的处理。SQLite是当今国际上使用最多的一种嵌入式数据库系统[6]。另外,当一个安卓客户的使用者登录之后,服务台会自动产生这个使用者的私有密码,然后把它传送到客户那里,让客户把这个密码储存到一个共享密码中。SharedPreferences还使用key-value对来保存数据,即当客户机保存或从客户机读出这些信息时,都必须为这些信息提供一个key来保存或获得所需的价值。通常使用SharePreferences来为用户提供记忆口令。2.5开发环境介绍在此基础上,基于AndroidStudio的软件环境,安卓系统的大部分软件都是在Eclipse平台上进行开发的,而Eclipse仅需通过谷歌公司(Google)研发的ADT(Android发展工具)工具包(ADT)来进行软件的研发。然而,基于Eclipse的安卓系统存在着启动慢、编译慢、内存占用大等问题,为此,谷歌推出了面向安卓系统的集成发展环境(IntegratedDevelopment环境),简称安卓Studio。这款软件是以IntelliJIDEA为基础的,不但可以加快运行速度,减少对存储空间的消耗,而且与Gradle等集成在一起,使得编辑变得更为便利和灵活。此外,它还提供了一个功能很强的界面编辑器,可以对界面进行实时的预览。也可以安装许多诸如Git和Markdown之类的插件。此外,它还支持Windows、MacOS、Linux等多个操作系统,为安卓程序开发人员提供了很大的方便。这个软件是基于Eclipse的,开放的,免费的,为Java编程提供了一个很好的工具,并且可以通过添加不同的插件来开发其它的语言。在打卡社会网中,通过对用户的登录、签到等各种互动方式的支持,实现了对用户的有效访问。在这个系统中,我们采用了一个开放源码的JavaServlet和JSP容器Tocat8.5。这是一个通常在少量使用的系统中使用的轻型服务器[7]。Tomcat系统能够为使用者提供数据解析、重包装等资讯处理作业,确保使用者能够存取及使用这些资讯。另外,Tomcat具有很高的安全性,并且更易于更新和维护。所以,对于中小规模的系统服务器,Tomcat是最好的选择。3需求分析本论文所设计的安卓打卡社交系统,就是为了使人们能够更好地掌握和管理自己的时间。这一章的重点是打卡社交服务体系的需要,在此基础上,对该体系的使用者进行了详细的剖析,并对该体系的功能和非功能进行了详细的说明。3.1用户分析在互联网快速流行的今天,人们已经开始更加依赖于诸如智能手机这样的移动智能装置。因为许多人都没有足够的自制力,所以他们会沉溺在互联网中,白白地浪费了自己的时间,这样就使得原本应该要做的事情被无限制地推迟了。会影响到他们的正常学习和生活。本论文所设计的社会打卡体系,是为了帮助使用者养成更好的生活习惯,进而更好的控制自己的工作,以克服自己的拖拉现象。可以粗略地将使用者分成下列种类:(1)时间管理用户这一类人占大多数,虽然他们的日常事务并不受拖延的困扰,但他们也有一种“时间管理”的职能,来规划并记录每日的日程。本文的打卡社会,是为了给这些人提供一些基础的打卡服务,例如:创建打卡任务,进行打卡等,同时也要将打卡记录保存下来,方便这些人进行查询。(2)拖延用户这些学生是另外一个主要的学生,由于对移动电话的依赖性而不能及时完成学业。本论文所介绍的打卡与社会服务体系,为此类使用者提供了打卡与社会服务,使使用者不但可以借由打卡培养出一个好的自己的生活方式,而且还可以借由社会服务中所包含的正面的资讯,使使用者被其它使用者所鼓舞;这样可以更好的帮助他们形成良好的生活习惯。3.2功能性需求分析本论文中的打卡社交系统是一个用于时间管理的应用程序,在对已有的国内和国外的时间管理程序进行了调查和分析后得出,对于目标使用者来说,该程序最基本的功能就是完成工作,完成了该程序的工作[8]。保证使用者可以大概地知道他们的打卡情况和他们所花的时间。使用者可以更好地安排自己的时间,将自己的学习、工作与休闲相结合,从而消除拖延症。与此同时,大多数的时间管理软件都没有社会功能,或者是比较简单,比如可以参加一个自习室,或者可以用第三方的社会软件来找朋友,让朋友们来一起学习。从上述的研究结果来看,本论文所设计的社会卡消费系统,其目的在于帮助使用者更好的进行自我管理与计划。该系统的主要功能包括:打卡、统计、社会交往、个人信息等,并得出了本论文所设计的社会卡签到系统的应用实例,见图3.1。图3.1打卡社交系统客户端用例图这篇文章中的“打卡社交”软件有五大功能,具体描述如下:(1)打卡管理考勤管理是该系统中最基本的一个功能,无须登录即可实现。打卡管理能让使用者更好地利用自己的打卡习惯,更好地安排自己的时间。打卡的主要内容有三个:新建打卡,对已建立的工作打卡,以及对已建立的工作打卡。用户可以按需创建新的打卡任务,也可以将以前创建的打卡任务删除,还可以对以前创建的打卡任务进行打卡。(2)动态管理它与当前大部分的时间管理软件不同之处在于它具有一个很大的特点。通过对该软件进行动态管理,可以为用户带来更佳的使用感受,从而增加了用户对该软件的好感,增加了用户的使用次数。“动态管理”包括了五项内容,分别是:发表自己的动态,查看别人的动态,和别人的动态进行交互;查看别人的首页并跟随别人。在与别人的动态交互中,可以用给别人的动态点赞、留言来表达自己的观点。(3)私信管理私人信息的管理是对社会功能的辅助。在进行社交活动时,可以和其他有兴趣的人进行私人聊天,从而增强了社交体验。私人信息的管理,包含了两种功能,一种是向别人传递消息,另一种则是直接将消息删掉。(4)个人信息管理个人资讯管理为使用者的私人资讯提供了一系列的资讯,其中包括五项内容,分别为:检视打卡资料、对使用者的互动动态进行管理;对关注的使用者进行管理,并对使用者的状态进行更新和更改。在个人信息设置页面中,使用者可以对自己的基本信息进行更改,另外,使用者也可以对自己的“删”等私人信息进行管理,比如:“喜欢”、“喜欢”、“喜欢”的人的留言都可以被删除。也可以对跟踪的人做取关动作,另外,也可以看到过去的记录。(5)账号管理账号管理向用户提供了对个人账号进行管理的功能,其中包括了注册账号、登录账号和退出登录三大功能。在第一次下载之后,已经进入到这个系统中的使用者,可以选择重新申请一个新的账号。已经有账号的使用者,可以在登录之后,再重新进入这个系统,或者在任何时候,都可以离开这个账号。此外,为了实现上述客户机的功能,服务端的作用就是与客户机合作,进行一系列诸如数据查询、修改、删除等的逻辑处理。3.3非功能性需求分析由于软件系统具有很长的寿命,所以在满足功能需要的同时,也需要对非功能需求给予足够的关注。它不仅为使用者提供了良好的服务经验,也为以后的系统发展与维护提供了便利。社交记录系统对非功能性要求有:性能要求、可用性要求和可扩充性要求。从安全性和稳定性等方面对该方案做了较为详尽的研究。(1)性能将打卡社交网络分成两个部分:一个是客户机,另一个是服务机,其中包括用户的注册、登陆、动态查看等,都必须与服务机构沟通。为了给使用者带来更好的经验,系统事务的处理与回应应该不会被使用者察觉,且不应该大于50ms。当用户操作失误或网络故障等情况发生时,系统的错误反应应该在1秒以内。其中最关键的一点,就是要有足够的人数,如果有多个客户,可以和一个服务器进行联机,那么这个系统必须能够容纳超过1000人。在系统操作中,在保证正常操作的基础上,尽量降低对存储空间的使用。(2)易用性本文所介绍的打卡式社会系统中,客户是需要和使用者交互的,所以在设计系统界面时,要尽可能地做到友善,要以用户为核心来进行接口的设计,这样才能保证使用者可以轻松地进行操作;快速入门,轻松掌握所有的功能。同时,也要尽量减少接口间的跳变与开关。(3)扩展性在此基础上,对该软件进行了进一步的扩充,并对其进行了相应的支持。采用模块式的设计与改进了程序的可重用性,并按照“高内聚度、低耦合度”的设计思想,以防止程序的重复设计。(4)安全性鉴于打卡社交网络中存在着客户与服务者间的数据交换,为了避免自己的技术以及用户隐私的泄漏,必须强化其安全保护。采用对传送资料进行保密的方式,保证资料传送及资料加工的独立。另外,为了取得存取和更改的许可,使用者在存取和更改服务器的资料时,还必须将自己的身份资料作为存取资料的凭证。(5)稳定性它的稳定性直接影响到使用者的使用体验。当使用者做了一些非常规的动作时,也可以保证该系统的正常工作而不被打扰。当使用者以移动电话号码登记账号时,如果键入的是其它的非数位的符号,或者是字符的长短不一致,都会有提醒。或是当使用者重复地点击某个按键时,应该不会发生跳闸等情况。该设备必须确保24小时运转正常。在此基础上,要将由于网络故障而造成的信息损失降到最低。4系统设计这一章是对社会打卡系统的系统设计,也是在该系统的工程建设中,一个非常关键的环节,它为后续的工程建设提供了一个重要的借鉴。这一章主要从三个角度对系统的设计进行了阐述,即系统的结构设计,主要功能设计以及系统的数据库设计。4.1系统架构设计该体系结构是在理论层次上对该体系进行了设计。打卡社交系统使用的是C/S结构,将客户和服务端分开,这种方式不仅减轻了两台计算机的工作负担,而且方便了以后的升级与维修,而且还能确保资料的安全。用户端使用安卓系统开发的安卓系统。而服务端则使用了Java编程,并使用了Tomcat服务器来进行商业操作。应用OkHttp和WebSocket等技术实现了用户与服务器间的数据交换与通讯。与使用者有关的资料储存于MySQL,Redis及SQLite中.在图4.1中显示了一个记录社会系统的结构。图4.1打卡社交系统架构设计4.2系统主要功能设计基于以上的需求分析和体系结构设计,从使用者的可用性和系统的可扩充性出发,将打卡管理模块分为五大模块,即:打卡管理模块,动态管理模块,私信管理模块;用户的个人资料和账号的管理。在此过程中,各业务端相互协作,完成了一系列的业务流程。在图4.2中给出了该系统的客户机函数的框图。图4.2系统客户端功能结构图4.2.1打卡管理模块功能设计作为穿孔卡社会服务平台的核心,刺卡管理模块主要由三个部分组成:新增打洞卡、打洞卡和打洞卡。(1)新建打卡任务在“打卡管理”模块中,用户可以根据自己的需要设置“打卡工作”,而“打卡工作”则可以帮助用户设置目标。使使用者能够养成“目标感”;对使用者进行催眠,催促使用者去做事情。在完成了输入工作后,将输入工作记录到了服务器的资料库中,并在资料库中进行了自动的网页更新,然后再从资料库中再次读出了输入工作的资料;还会在新的打卡任务中进行更新,并在下一次登录时,将会出现在打卡清单中[9]。(2)进行打卡使用者可以从穿孔卡片清单中挑选一项工作对卡片进行打孔。一旦确认了使用者已经完成了此项工作,则在系统的数据库中对其进行了相应的升级,并在安卓系统的打孔卡片统计报表中存储了打孔卡片的内容与时间。在用户的个人资料管理系统中,实现了对打孔记录的查询,帮助人们更好的安排和管理自己的生活。(3)删除打卡使用者可以自由地移除不想要的穿线作业,当移除成功之后,穿线作业就会从服务器表上移除。同时,在移除此页后,会自动执行此页的更新方式,此查询清单中将不会再出现此查询任务。不过,安卓系统的打卡数据不会做任何的移除处理,所以当使用者浏览时,仍然可以看见之前的打卡工作和时间。在图4.3中显示了一个记录管理模块的工作图表。图4.3打卡管理模块活动图4.2.2动态管理模块功能设计在打卡社交系统中,动态管理模块是另外一个重要的核心功能,其核心是实现社交网络的重要组成部分,其中包含了动态发布、动态浏览和动态交互等。五大特点:查看首页并跟踪用户。(1)发布动态当使用者想要发表动态的时候,就可以通过“动态管理”功能,在“动态管理”功能中,对要发表的文章进行编辑并增加照片,然后再发表。使用者可以随意的对其进行编辑,而照片则可以在安卓手机上找到。在系统完成了动态版本之后,系统会将其保存在系统的数据库中,并在系统运行过程中对系统进行更新;这样你就可以重新从数据库中提取出这些数据,并且把这些数据重新添加到一个页面上。使用者可以查看自己的最新动态。(2)浏览他人动态在动态管理模块中,用户能够向下滑动查看别人所发表的动态,动态按照发表的时间排序,再移动到一个动态清单的最下方时,onScroll方式就会被自动地完成。在一个动态清单上展示了更多的动态资讯,保证了使用者可以继续浏览其它资讯。(3)动态互动在浏览他人的照片时,他们会对自己的最新动态进行评论,也可以看到并发表自己的看法。在点击后,在服务器的动态数据库中,点击数量域的数值会随着点击数量的增加而增加。在完成了一次更新之后,就可以在这个网页上进行更新了,这个动态展示的点赞数量就会增加一倍[10]。如果要发布意见,那么在修改好意见内容之后发布,然后将新的意见内容加入服务端的意见列表中,并将其加入意见列表中;注释清单的更新会展示出新注释的内容。这些评论也是以出版日期为序。(4)浏览他人主页当你看到别人的动态时,你还可以看到你所关心的那个人的页面。在自己的网页上,会展示这个使用者的简介,粉丝数量,以及曾经发表过的任何更新。在浏览此使用者的同时,也可以做出相应的“喜欢”、“评论”等互动行为。(5)关注其他用户当你看到别人的动态或者你自己的页面时,你也会被吸引过去。一旦成为他的追随者,他的追随者数量就会增加一倍。一旦升级成功,用户界面上的“关心”状态就会被升级为“关心”。与此同时,新的关注点数据将被添加到Android系统的数据库中。在使用者资料管理模组中,使用者可以检视使用者所留意的使用者。在图4.4中显示了一个DynamicManagement的活动图表。图4.4动态管理模块活动图4.2.3私信管理模块功能设计在打卡社会的社会功能中,有一个可以让人发消息的小程序。具体包含了两个部分,分别是:私信互动和删除私信。(1)私信互动当你看到别人的首页时,你可以给你感兴趣的人发私人信息,和他们进行交流。在登陆安卓终端后,用户就会与服务器终端建立一个长期的网络Socket,并进行监视保持长期的网络连接。在消息的发送者发出私人讯息之后,会将讯息传递给服务者,服务者会根据讯息的接受程度来判断讯息的接受者有无连线。在接收方是被连接的情况下,向接收方传送消息,并将此消息保存在服务方数据库的消息表格中,并且消息的发送方和接收方的消息页都将根据此消息的内容进行更新和显示。如果接收方不在联机中,讯息传送就会失败。(2)删除私信在此过程中,使用者可以从私人通讯清单中选取一位私人通讯使用者的内容,并将其删除。在此过程中,在此过程中,服务端私人通讯表格的内容将不会被移除。在图4.5中显示了一个私人信息管理模组的活动曲线。图4.5私信管理模块活动图4.2.4个人信息管理模块功能设计个人信息管理是社会打卡系统中最基础的一个功能,它包括:个人信息修改,打卡统计查看,个人动态管理。着重介绍了五大功能,包括使用者的管理和互动的动态性。(1)个人信息修改使用者可以对自己的资料进行补充与修正,当使用者完成资料的整理并储存后,服务器会自动将资料加入使用者的资料表格,并完成资料的更新;在使用者资讯网页上,会出现更改后的资讯,当你再次检视使用者资讯时,会出现已更改的资讯。(2)打卡数据查看使用者可以查看打卡管理模块中打卡后的工作数据,可以将一天、一周、一月的打卡任务数据以图形的方式显示出来,帮助使用者对自己的时间使用情况有一个更加清晰的认识,以便合理安排和管理自己的时间。(3)个人动态管理同时,使用者还可以检视自己曾经发表过的任何更新,实现对自己的更新的管理。如果一个动态被删除,那么服务端会将对应的动态数据进行删除。当一个动态被删除之后,会自动执行一个动态的网页更新方式。(4)关注用户管理另外,使用者也可以对先前所追踪的使用者进行退选。当您在使用者管理系统中解除活动时,系统会清除安卓资料库使用者追踪表格中的追踪资料,并且会对使用者名单进行追踪。从资料库表格读取追踪使用者资料,然后在页面上进行更新。(5)互动动态管理同时,使用者也可以对已被点赞或留言的视频做些改变。如果使用者解除追踪,则在服务器的资料库中以一次点击次数减少一次,当更新成功时,会自动执行网页更新方式;这一次的评论只有一次的1%。当使用者将留言移除时,服务器会将留言表格中的对应资料移除,当成功移除后,会自动执行留言清单的更新方式,并且不会再出现此留言。在图4.6中显示了一个用户资讯管理模组的运作图表。图4.6个人信息管理模块活动图4.2.5账号管理模块功能设计账号管理模块也是一个基础的功能模块,其主要工作有:账号注册,账号登录,账号注销。(1)注册账号在进入该系统之前,使用者必须先进行登记,登记后再输入使用者名称及口令,然后服务者会将使用者的登记资料放入使用者表格,如果放入成功的话;使用者会接收一个讯息,然后就可以利用这个讯息来确认你的账号与密码。(2)登录账号在登录这个系统之前,使用者必须先登陆,然后在键入使用者名称和口令之后,服务者会询问使用者的资料,如果资料相符,就会通过认证。服务端会产生一个用户的身份认证信息,然后将它发送到客户端。同时,安卓一方会和服务器一方进行长期的联系,接收一条私人信息,然后会被自动引导到该平台的首页。(3)退出登录当你的账号被转换或者离开你的系统时,你必须有一个离线的登陆。在您的网站上,您的网站将会在您的网站上登陆。您的网站将会在您的网站上登陆。在图4.7中显示了账户管理模块的行为图表。图4.7账号管理模块活动图4.3数据库设计在软件开发中,数据库的选择与设计起着举足轻重的作用,直接影响到数据的安全性与工作效率。在此基础上,提出了一种新的基于社交的打卡信息管理方法。该数据库的设计必须符合RelationshipDatabase的设计标准,并且必须符合该系统的商业要求。将打卡社交系统划分成了两个部分:一种是customer,一种是service,客户端是SQLite数据库,service是MySQL,用于存储数据;同时使用Redis数据库对其进行高速缓存,以提高检索的速度。在服务端的部分表单和客户端的表单中,存在着类似的内容,比如打卡信息,私信内容,在这种表单中,用户所在的数据库和service的数据库之间存在着两种不同;一个是额外的状态域;用于指示与服务器端的资料库是否被同步,另一方面则是仅含有与使用者有关的资料库表。而在服务端所保存的数据,就必须是在连接网络的情况下,由客户端来获得,比如:动态信息、用户账户信息、关注和交互信息等。在完成了打卡平台体系结构和主要功能的设计之后,我们决定将所有的数据都永久地保存在这个平台上。在此基础上,提出了一种基于数据源及数据之间的逻辑联系的数据库体系,该体系的表结构为:用户信息表、记录表、动态信息表;动态评论列表,动态点赞列表,用户跟踪列表,私人消息列表。在此基础上,通过对该模型进行详尽的分析,给出该模型的具体实现方法。在图4.8中显示了系统数据库的实体图表。点点nnn创包1111发n11n发1包n添n评私动用打点图4.8 系统数据库E-R图4.3.1服务端数据库设计在服务器端,对用户进行了查询和查询,并对查询和查询进行了详细的分析。一个动态的资讯表格和一个动态的注释表格。该表格用于保存全部用户的基础资料,每个表格的具体结构为:(1)用户表:user在这张信息表中,记录着使用者的信息,其中有使用者的ID、名称、口令等等。注册及最后一次登录。使用者表格被用来确认使用者的登入及登记。使用者只有一个使用者识别码,并且使用者名称是无法复制的。使用者只需输入使用者名称及口令,便可登记及登入。在表4.1中显示了用户表的锚定结构。表4.1 user表结构字段名数据类型字段说明备注user_idint用户ID主键,唯一usernamevarchar用户名唯一passwordvarchar用户密码无register_timedatetime用户注册时间无last_timedatetime用户最近登录时间无(2)用户详细信息表:userMsg用户资料表格,主要记载了用户的个人资料,如性别,电子邮件,手机号码等;地址,简介,追随者数量,粉丝数量,粉丝数量。有些资料会出现在使用者的私人资料里,有些则会出现在使用者的私人资料里,有些则会出现在使用者的私人资料里。在表格4.2中显示了用户Msg表的锚定结构。表4.2 userMsg表结构字段名数据类型字段说明备注user_idint用户ID外键,唯一sexvarchar用户性别无phonevarchar用户手机号长度限制为11位mailvarchar用户邮箱格式要符合邮箱格式addressvarchar用户地址无introductionvarchar用户简介无fans_countint粉丝数无focus_countint关注用户数无like_countint获赞数无(3)打卡信息表:clockin点击器信息表格是指用户在点击器上所设定的点击器内容,包括点击器ID、点击器ID、点击器内容、点击器数量等。在表格4.3中给出了clockin表的详细结构。表4.3 clockin表结构字段名数据类型字段说明备注clock_idint用户的打卡ID主键,唯一user_idint用户ID外键clockvarchar用户打卡内容无clock_countint用户打卡次数无(4)动态信息表:news动态资讯网页是将使用者所发表之动态资讯记录,包含使用者动态识别码、使用者名称、动态内容等。图片的位置,动态的发布,动态的赞,动态的留言。在表4.4中显示了新消息表的锚定结构。表4.4 news表结构字段名数据类型字段说明备注news_idint动态ID主键,唯一user_idint用户ID外键contentvarchar动态文字内容无pic_urlvarchar图片地址无news_timedatetime动态发布时间无like_countint动态点赞量无comment_countint动态评论量无(5)动态评论表:comment动态评论表格则是将用户所发表的动态与其相关联的评论进行了详细的记载,其中包括了动态ID,动态ID,用户ID,以及评论的内容以及评论的时间。在表格4.5中给出了注释表格的详细结构。表4.5 comment表结构字段名数据类型字段说明备注comment_idint评论ID主键,唯一news_idint动态ID外键user_idint用户ID外键commentvarchar评论内容无comment_timedatetime评论发布时间无(6)私信信息表:message私信列表的功能就是用户和其它用户的聊天内容,比如私信的ID,私信内容,回复时间等等。在表4.6中显示了消息表的锚定结构。表4.6 message表结构字段名数据类型字段说明备注user_idint用户ID主键msg_useridint私信用户ID无messagevarchar私信聊天内容无send_timedatetime私信发送时间无4.3.2客户端数据库设计客户机的功能是储存使用者的个人资料,在使用者移除此电脑后,个人资料也会被清除[11]。其中包含了用户的点赞表、动态点赞表和用户的跟踪表。表格的具体结构如下:(1)用户详细打卡信息表:clockinMsg用户详情登录信息表格,是一种以登录ID、用户ID及登录时间为基础的登录信息表格。在表4.7中给出了clockMsg表格的锚定结构。表4.7 clockMsg表结构字段名数据类型字段说明备注clock_idint打卡ID主键user_idint用户ID外键clockvarchar打卡内容无clock_timedatetime打卡时间无(2)动态点赞表:likeMsg动态点赞表是对用户曾经与其互动点赞的动态进行记录,包括点赞ID、动态ID和用户ID。表4.8显示了类似Msg的表格的锚定结构。表4.8 likeMsg表结构字段名数据类型字段说明备注like_idint点赞ID主键,唯一news_idint动态ID外键user_idint用户ID外键(3)动态评论表:commentMsg动态评论清单是指用户在与用户进行互动时,所观察到的动态信息,包括评论ID,动态ID和用户ID。在表格4.9中显示了注释Msg表的特定构造。表4.9 commentMsg表结构字段名数据类型字段说明备注comment_idint评论ID主键,唯一news_idint动态ID外键user_idint用户ID外键(4)用户关注表:focus使用者追踪表格则是记载使用者追踪的使用者资讯,其中包含使用者识别码与追踪使用者识别码。在表4.10中给出了Focus表格的特定构造。表4.10focus表结构字段名数据类型字段说明备注focus_idint关注ID主键,唯一user_idint用户ID外键focus_useridint被关注用户ID外键另外,当Android客户的使用者登录后,服务器会将这个密码传送给客户,客户会使用共享偏好来保存这个使用者的密码。当随后的要求被发出时,被读出的token连同要求的信息被传送给了服务方。5系统实现与测试在进行了系统结构设计,功能设计,以及数据库设计之后,对整个系统已经有了一个大概的认识。最后,本文还对该软件的开发过程进行了分析,并对该软件的开发过程进行了分析。5.1开发环境搭建建立一个完整的开发平台,是整个系统得以实施的首要步骤。本论文所述的“打卡社交”系统是利用校园内的一台便携式计算机来实现的,其具体的开发环境为:CPU:英特尔(R)核心(TM)i5.8250U(1.60千兆赫)系统:视窗10x64位记忆体:8GBJava+JDK1.8.0:MySQL+Redis+SQLite开发工具:Eclipse版本4.16+Tomcat8.5.57+Android3.55.2系统主要功能实现在AndroidStudio的基础上,对刺卡社会网络进行了重点研究和实现。在这个流程中,通过服务端与用户端的协作来实现相关的相关功能。安卓用户的主要接口是由四个片段组成的活动元件组成的。单击下方的“浏览”键,即可将对应的页面翻译成对应的页面,并能实现对对应的XMLWeb文档的动态加载。这样的网页展示模式是当前最具代表性的一种,它使得整个系统的接口区域更为合理和高效,并被大部分安卓系统所使用。客户机接口使用MVVM模式进行开发,MVVM是微软WPF与Silverlight的体系结构大师JohnGossman于2005年所提出来的一种体系结构设计模式,它通过将前端与后端的代码分开,减少了与系统之间的耦合度,进而提升了软件的开发效率。MVVM模型可划分为三个层次,即视图、视图模型和模型。视图就是一个视图,在这个体系中,这个部分就是针对用户端的排版网页,并采用XML格式进行书写;它的目标就是将用户互动接口中的内容以及视图模型层中的数据呈现出来。在此基础上,提出了一种基于网络拓扑结构的信息管理方法。这些数据不但来自服务器侧的MySQL,还来自Android自己的SQLite。ViewModel又称ViewModel,其作用是将Model层获得的数据库中的数据转化为与Model层一致的数据。在图5.1中显示了一个MVVM的模式图表。图5.1MVVM模式图5.2.1用户账号管理模块其中,账户管理系统实现了账户的登录、登录和退出等操作。在开始的时候,使用者会被引导到一个注册登录网页,在一个EditText中,使用者可以通过输入框控制(EditText)来登记自己的账号。Android客户机通过LoginWithOkHttp方式向服务器发送用户的数据。在一个应用程序中,如果一个用户端的一个应用程序被调用,那么这个应用程序就会被调用。在这个页面上,会出现一个“注册成功”的图标,如果没有保存,则会出现一个“注册失败”的图标。您可以在您的账号上输入您的账号,并输入您的账号后,会出现在您的网页上。图5.2注册账号及注册成功界面使用者首次登录本网站并登记后,即可输入使用者名称和密码登录本网站。与此类似,客户将使用者资讯传送到服务器,服务器会先查询Redis快取,以确认使用者资讯。如果这个使用者资讯不在快取中,就会询问MySQL的使用者表格以确认,并且会传回使用者的资讯至客户机。若注册成功,则保留使用者资料,同时产生使用者的专用JWT(JSONWebToken)资讯,连同登入验证资讯一同传送至客户机[12]。JWT是一个以json为基础的网络标记,它是一种无状态的认证方式。标记资讯包括密码使用者ID,使用者名称,以及到期日期。当您登入时,使用者会储存权杖资讯至分享参数物件。每当讯息被传送,权杖就会被撷取出来并传送至服务器。在对该消息进行处理之前,服务端会对该token进行加密和认证,如果该时间处于该token所设置的有效时间范围之内,那么就可以对该用户进行该消息的处理,并产生一个新的token,在该处理结束之后,该消息和该新的token会被传送到该客户端。这种动态延长用户token有效期的方法,可以很好地解决由于token失效而造成的用户多次登陆的麻烦问题,从而大大地提升了用户的体验。如果现在的时限已经到了,你必须再次登陆,那么你的用户将会出现一个登陆消息,然后你的用户将会进入一个登录页面。在图5.3中显示了服务器用来产生JWT的关键代码。图5.3生成JWT代码当用户登录成功后,就可以进入到系统的默认页面,然后就可以进行后续的一些操作了。当使用者要离开账号时,只需在最下方的导航条上按下“我的”键,然后进入使用者的权限控制面板,再按下“退出登录”键,便会从使用者的权限控制面板中移除储存有token资料的共享选项,然后便会进入使用者的登录页面。5.2.2打卡管理模块在打卡社会系统中登录后,会自动出现一个打卡网页,这个网页包括了打卡管理模块的全部功能,包括:建立一个打卡任务,删除以往的打卡任务,打卡已有的打卡任务。输入卡片的接口显示在图5.4中。图5.4 打卡界面创建一个新的记录,需要在“+”上点一下,然后屏幕上就会出现一个对话框(Alert

Dialog)。在这种情况下,对话方块将阻止使用者与其它控制项互动,让使用者仅可与对话方块互动。使用者可以点击“取消”键来删除该对话框,或者在输入栏中填写打印工作,然后点击“确定按钮”,将使用者填写的打印工作传递给ClockModel,并通过ClockModel中的新ClockWithOkHTTP方式,将使用者的token资料和打印工作按照要求的地址发送给服务者;当服务器端的ClockServlet收到客户机发出的消息时,它会对客户机的ClockServlet进行分析确认token等相关的信息并进行数据库的插入动作,从而将新创建的打卡信息储存到服务器端的Clockin表格中,然后将储存的结果反馈到客户机的ClockModel,如果储存的结果是正确的还是错误的;使用者会将新的工作加入记录清单的最下方,记录清单会有一个“新建成功”的弹窗,如果保存不了,则会有一个“新建失败”的弹窗。新的输入接口和输入输出接口显示在图5.5中[13]。图5.5 新建打卡及成功界面如果使用者想要取消曾经设定过的打卡任务,只要按一下红色的取消按钮就可以了,在这个时候,屏幕上就会出现一个提示框,告诉使用者自己是否要进行取消的动作。然后向服务终端发送请求,服务终端从数据库中删除这个记录任务的数据,并向客户机返回一个操作是或是失败的信息,如果是这样的话,那么记录任务就会被删除;随着时间的推移,系统的工作流程也发生了变化,如果服务方的工作流程没有完成,系统就会出现一条消息,告诉用户自己的工作流程已经结束。在图5.6中显示了取消记录和完成记录的画面。图5.6 删除打卡任务及成功界面clockkinadapter是通过列表视图来完成的。在此流程中,需要将来自服务器的clockkinadapter导入到ClockModel中。ClockModel可以将clockkinadapter加入产品视图中。适配器可以在列表视图中对各个部件进行实例化,然后将其与数据进行关联;此外,对于每一个项目中的按钮,您也可以设定侦听器的setOnClickListener,以便响应使用者的单击。使用者可以在主页面上的打卡工作中,选择一个打卡工作,然后点击后面的“打卡”键,这时,ClockAdapter的SettOnClickListener方法会收到使用者的动作,然后将使用者的动作讯息传送至ClockModel中的ClockWithOkHttp方法,再传送至服务器;服务器端对clockin表格的计数字段进行更新,并向客户端反馈是否完成该动作,如果完成了,则在客户端的界面上会出现“打卡成功”的字样,并且会将这一次的打卡工作记录保存在当地SQLite的clockinMsg表格中,以便以后的打卡数据查询。如果无法升级,则会出现“打卡失败”的弹窗。5.2.3动态管理模块在页面下方的导航条上点击“阅读”键,便会进入一个动态的页面。这个页面包含了动态管理模块的全部功能,主要包括:发表消息、观看别人的消息、与别人的“喜欢”、“评价”、“浏览”等。在MVVM中,对动态数据进行了MVVM表示,在模型层中,当用户下载到一个动态网页时,用户就会执行对应的算法,然后将数据库中得到的数据传送到ViewModel层[14]。这个是一个新的适配器类,在这个类中把视图层次的控制项捆绑和执行,再把模型层次的资料分配到控制项,接下来;View是一个用于对动态数据进行显示的功能,也是一个用于给用户提供互动接口的功能。图5.7 动态管理界面在页面的右上方,通过“+”的方式,就可以看到一个动态的页面,在这个页面中,可以进行文本的修改,增加照片的内容,并在点击发表之后,把这个动态的消息传送到服务器端;在这个过程中,用户端会把这个消息保存起来,然后把这个消息保存起来,然后把这个消息保存到这个消息的最上面。在图5.8中显示了一个动态的版本接口。图5.8 动态发布界面在观看视频的过程中,使用者可以与别人的视频进行交流,比如给别人的视频点赞、留言等。用户对所关注的动态进行了赞,客户端向服务端发送了被赞的信息,然后,服务端在赞的信息中,在新的数据中添加了1,并向客户端反馈了更新的结果。如果更新成功,则会在动态清单接口中为其添加1的点赞值,并且将这个点赞值存储到客户机的局部数据库中。如果无法进行升级,则会在界面上弹出一个讯息,警告使用者目前的动作是错误的。还可以让使用者加入一个动态的讨论中,在这个过程中,使用者可以直接进入评论页面,根据评论的时间顺序来查看别人的评论,还可以自己写评论;当用户按下“评论”按钮时,用户就会把这条消息传给用户,用户就可以在评价表格中添加这条消息,并且会向用户反馈这条消息是不是添加了这条消息。如果资料被插入,则会在留言页上增加一条新的留言。如果没有成功,就会出现一个提示。这个评论界面显示在图5.9中。图5.9 评论界面用户还可以对所关心的人进行跟踪,然后,客户端向服务器端发出跟踪信息,服务器端在用户详情表格userMsg中对该用户跟踪信息进行更新,并向客户端发出更新是否成功的信息。如果更新成功,则会自动从“关注”变为“已关注”,并且在用户端的本机资料库中保存对此的注意资讯。在“关注”了其它用户之后的页面显示在了图5.10中。图5.10 用户关注后界面如果你想要更多地认识你所关注的某个人,你可以通过这个人的照片来访问这个人的页面,你可以查看这个人的简介和他的追随者数量;获得点赞和追随者以及这个人在微博上发表的全部更新。使用者可以与使用者的动态进行交流,并对其留言给予好评。在图5.11中显示了使用者的个人页面。图5.11 用户个人主页界面5.2.4私信管理模块Skype的Skype是通过Github的一个开放源码Java-WebSokcet框架来完成的,这就要求我们在.gradle中加入一个java-websocket的相关性。当使用者在浏览另一位使用者的个人网页时,可以在“私信”键上输入与另一位使用者的私信,使用者可以向另一位使用者发出讯息。从登陆开始,用户就一直与服务器端建立着一个长期的网络Socket链接,并且在收听过程中一直维持着长期的链接。当客户向服务端发出此私人讯息后,服务端会确认另一端的使用者也在长期连线中,如果使用者恰好也在连线中,那么服务端会向另一端的使用者发出私人讯息;与此同时,在服务器端的资料库中,消息会储存使用者与其它使用者的私人信息资讯。另外,还可以通过在导航条上的“消息”键切换到私人信息的列表页面,也可以通过特定的使用者来切换到私人信息的页面。使用者的私人讯息界面与私人讯息清单界面,见图5.12。图5.12私信界面类消息列表界面5.2.5用户信息管理模块使用者只需在下方的导航条上按一下“我的”键即可进入使用者资讯管理页。其中,包含了对使用者资料进行更改、使用者资料查询、使用者资料查询、使用者资料查询等全部功能;使用者交互检视与使用者关切检视。在图5.13中显示了一个使用者资讯管理界面。图5.13 用户信息管理界面通过“设置”键,用户可以进行用户资料的更改,用户还可以更改自己的姓名,密码,性别等;用户的手机号码及电子邮件号码,用户按“保存”后,用户将更改后的资料传送到用户管理表格,用户管理表格中的资料会被更改,并且会传回用户是否更改的资料给用户;用户将会在一个窗口中看到是否可以进行更改。在图5.14中显示了一个修改的信息接口。图5.14 修改信息界面在资讯管理系统中,使用者可以透过“浏览打卡资料”,进入打卡的统计界面,可以看到打卡的详细情况、打卡的内容以及打卡的时间;记录和存储在客户机的本地数据库的clockkinmsg表格中。这个图是通过从创意网站上下载的创意.min.js文件来完成的。穿孔的数据接口见图5.15。图5.15 打卡统计界面通过“我的动态”,可以直接到自己的“动态显示”页面,将自己所发表的文章按照日期顺序显示出来。当使用者按下“删除”键时,会有一个对话框出现,让使用者确认要不要删除此项动态,如果使用者按下“确定”键,则使用者会向服务器发出一条消息,服务器会重新消息表格中删除对应的动态,并且会向使用者反馈是否删除的消息。如果移除成功,则会在屏幕上出现一个新的动态,如果移除失败,则会在屏幕上弹出一个“失败”的消息。在图5.16中显示了一个用户的动态显示接口。图5.16用户动态展示界面当使用者按下“我的互动”键时,便会进入“互动”页面,此页面会呈现使用者与“我的互动”的动态清单,使用者可以选择“喜欢”或“不喜欢”;或者一个动作来移除注释。与此类似,用户向服务器端发出撤销或删除的消息,服务器端在新闻和评论表格中更新相应的字段或记录,并向用户反馈该动作的成败。用户端的界面会有升级或是出现错误的讯息。当你点开“我的关注”时,你会看到你的“我的”,然后你就会看到这个人的关注名单,如果你已经不喜欢这个人了,你也可以通过长按来取消这个关注。Client向服务器端发出一个取关消息,并对这个使用者的UserMsg表格中的一个fans_count域进行更新,并向Client反馈这个更新的结果。如果升级成功,则会从本机资料库中移除对应的资料,并且会更新接口焦点清单。如果升级不成功,就会出现一个错误的消息。在图5.17中显示了用户跟踪的清单。图5.17用户关注列表界面5.3系统测试在一个程序的整个寿命中,系统的测试是一个非常关键的环节,也是一个程序发布之前的最后一个环节。在当今社会,人们越来越重视系统的可靠性问题时,对其进行的系统测试,将会对使用者的评估产生重要的作用,进而为日后的应用提供保障;一个很好的使用者经验对系统的可用性,稳定性,可靠性都有很大的保障[15]。在5.2部分,重点介绍了打卡社交管理系统的具体实施过程,并对打卡社交管理系统进行了部分和总体的测试,以保证该系统的各项功能能够正确地发挥作用,并判断该系统的各个部分的非功能要求能否得到满足。该系统所做的检测工作包括:(1)根据所完成的系统函数,进行测试案例的设计。(2)对本课题所涉及的各个功能模块进行了单独的检测,以保证每一个功能都可以正确的发挥作用。(3)对实验数据进行统计和统计,并对实验数据进行统计和统计,以确定实验数据的准确性和可靠性,以保证实验数据的可靠性。这个系统被分成了五个主要的功能模块,它们是:账户管理、记录管理和动态管理;私人讯息的处理及使用者资讯的处理。各个功能模块主要侧重于对诸如接口按键之类的控制器的操作是否能够正确地执行,接口的跳跃是否能够正确地进行,接口的显示内容是否能够正确地进行。账号管理模组之试验用例与试验成果列于表格5.1中。表5.1账号管理模块测试结果测试内容预期结果结论各按钮能否正常操作各按钮操作正常与预期结果相同输入框能否正常编辑输入框能正常输入数据能否正常进行注册操作注册信息后界面提示注册成功能否正常进行登录操作输入信息后能正常登录进入系统能否正常进行退出登录操作点击退出账号后跳转到登录界面打卡管理模块的测试用例及测试结果如表5.2所示。表5.2打卡管理模块测试结果测试内容预期结果结论打卡任务数据能否正常显示用户打卡数据正常显示与预期结果相同能否正常进行打卡操作点击打卡后界面提示打卡成功能否在无网络时提示无网络时界面显示无网络能否正常保存打卡数据在数据统计界面显示保存的打卡数据新建打卡对话框能否正常弹出点击新建后界面正常弹出对话框能否正常进行新建打卡任务操作新建完成后界面更新添加新建打卡任务能否正常进行删除打卡任务操作删除打卡任务后界面更新不再显示该打卡任务动态管理模块的测试用例及测试结果如表5.3所示。表5.3动态管理模块测试结果测试内容预期结果结论动

温馨提示

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

评论

0/150

提交评论