




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ANDROID平台的食谱APP互动留言模块设计本科生毕业论文(设计)中文题目基于ANDROID平台的食谱APP英文题目学生姓名刘心宇班级11学号52121115学院通信工程专业信息工程指导教师职称吉林大学学士学位论文(设计)承诺书本人郑重承诺所呈交的学士学位毕业论文(设计),是本人在指导教师的指导下,独立进行实验、设计、调研等工作基础上取得的成果。除文中已经注明引用的内容外,本论文(设计)不包含任何其他个人或集体已经发表或撰写的作品成果。对本人实验或设计中做出重要贡献的个人或集体,均已在文中以明确的方式注明。本人完全意识到本承诺书的法律结果由本人承担。学士学位论文(设计)作者签名2016年6月11日摘要摘要传统的食谱分散在民间各地,收集整理相对困难,而维护工作更是由于其内容的不确定难以展开。但是,人们的生活却越来越需要食谱来提高生活质量,有时甚至需要通过食疗来强身健体。如何高质量高效率地收集维护食谱也因此成为一项课题。通过移动网络这项先进的技术,我们现在有方法实现食谱的信息化管理。如何建设一套菜谱的分发与管理系统,就是本文希望探讨的话题。本文章主要的核心内容就是试图设计一个兼使用与管理功能俱全的完整系统。该系统主要客户端搭建在安卓系统之上,负责数据交互与信息收集的功能由服务器实用程序来完成。客户端集成了评论模块,浏览模块,登录模块,注测模块,收藏模块等功能模块。而管理端基于WEB,可以运行于任何支持国际标准的浏览器之中。管理端集成了登录模块,浏览模块,增删模块等管理模块。本文中的数据库采用MYSQL,服务器采用TOMCAT,服务器语言采用JAVA,客户端使用安卓平台,管理端使用JSP技术,多种技术融为一体。本文中从需求开始,细致分析了各个功能所需要的数据及其结构,通过流程图结构图等传统的方法具体呈现系统的设计方法,并且为其主要的用户界面提供展现。关键词安卓评论管理系统菜谱IABSTRACTABSTRACTTRADITIONALRECIPESARESCATTEREDOUT,WITCHARECOLLECTEDANDSORTEDRELATIVELYDIFFICULTY,SOITISDIFFICULTTOMAINTAINANDEXPANDITSCONTENTBYPEOPLESLIFEMOREANDMORENEEDEDTOBEIMPROVED,SOMETIMESITISEVENNEEDTOGOTHROUGHTHEDIETTOACHIEVEPHYSICALFITNESSHOWTOCOLLECTANDMAINTAINTHEHIGHQUALITYANDHIGHEFFICIENCYBECOMESATOPICTHROUGHTHEADVANCEDTECHNOLOGYOFMOBILENETWORK,WENOWHAVETHEMETHODTOREALIZETHEINFORMATIONMANAGEMENTOFTHERECIPEHOWTOBUILDASETOFRECIPESDISTRIBUTIONANDMANAGEMENTSYSTEMISTHETOPICOFTHISPAPERWANTSTOEXPLORETHECORECONTENTOFTHISPAPERISTODESIGNACOMPLETEDSYSTEMWHICHUSEANDMANAGEFUNCTIONINGWELLTHECLIENTOFTHESYSTEMISBUILTONTHEANDROIDPLATFORM,WHICHISRESPONSIBLEFORTHEFUNCTIONOFDATAEXCHANGEANDINFORMATIONCOLLECTIONTHECLIENTUSESTHEANDROIDPLATFORMTOINTEGRATETHEREVIEWMODULE,THEBROWSINGMODULE,THEREGISTRATIONMODULE,THENOTETESTMODULE,THECOLLECTIONMODULEANDSOONTHEMANAGEMENTSIDEISBASEDONWEB,WHICHCANBERUNINANYBROWSERTHATSUPPORTSINTERNATIONALSTANDARDSTHEMANAGEMENTTERMINALINTEGRATEDLOGINMODULE,BROWSEMODULE,ADDORDELETETHEMODULEMANAGEMENTMODULEBYUSINGMYSQLDATABASE,USINGTOMCATSERVER,USINGJAVALANGUAGESERVER,CLIENTUSINGTHEANDROIDPLATFORM,MANAGEMENTENDUSINGJSPTECHNOLOGY,INTEGRATEDOFAVARIETYOFTECHNOLOGY,THISPAPERCOMPLETEARECIPECOMMENTMANAGEMENTSYSTEMINTHISPAPER,WESTARTFROMDEMANDANDANALYSISTHEDATANEEDEDFOREACHFUNCTIONANDSTRUCTURETHROUGHTHEFLOWGRAPHANDSHOWTHEMAINUSERINTERFACEKEYWORDSANDROIDCOMMENTSMANAGEMENTSYSTEMRECIPEII目录目录第一章绪论111研究的背景及意义112研究目的113国内外概况214研究内容和章节安排2第二章设计原理及方法321架构概述322关键技术简介423开发环境简述524平台简述625需求分析7第三章系统设计1031功能模块划分1032模块功能设计1033数据库设计1034数据库连接14第四章系统实现1541设计思路1542登陆界面1643主界面设计2044管理界面2245评论界面23第五章测试2651测试的基本概念2652测试方法2653盒子测试27结论29谢辞30参考文献31III第一章绪论第一章绪论11研究的背景及意义食谱作为人们生活经验的积累,通常以口口相传,或者是以亲人亲身传授的方式,得以传承。在如今,信息技术高速发展,人们有了不同于以往的技术手段来实现信息的采集整合与存取1。网络作为本世纪以来发展最快,覆盖面最广,应用场合最全面的新技术登上历史的舞台。而移动互联网,又是作为网络皇冠上的明珠,成为信息科学界的新星。把握住移动互联网的浪潮,就能站立在时代前沿,既能推动时代的发展,又能获得生活上的丰收。如何将移动互联网与食谱结合起来,就是本文试图探究的核心。现今我们生活的是一个充满着数字信息技术的世界,衣食住行各行各业几乎都已经迈开了数字化移动化的步伐。过去,食谱容易被食材污染,不易浏览,内容繁杂不易维护。互联网尤其是移动互联网的发展带来一种全新的信息传递方式,即通过手机等移动终端浏览。这种方式快捷便利,易于维护,减少存储的物理空间,也不会被食材污染或污染食材。利用这些种种优势,我们可以对传统菜谱更新换代,用一种暂新的方法对传统的信息进行升级。12研究目的本设计主要是针对移动平台作为客户端,WEB作为管理平台开发一个收录菜谱的系统。首先我们系统地分析了菜谱系统的开发背景和现实意义,然后分析了现存APP系统的特性与共性,从中获取设计的灵感归纳系统设计的方法。接着,我们进行软件的需求分析,系统分析,按照传统软件设计的方法,构思出系统的架构并设计出相应的设计,接口文档。然后我们给予完整的开发过程和以供调试的关键代码,并介绍开发重点,比如如何配置安卓SDK,MYSQL工作站,JDBC等配置文文件。最后,提供了完整的测试过程,并给予总结。系统设计部分较为关键,具体分为前台设计和后台设计两部分。前台设计主要是客户端的设计,与之相对应的,后台设计主要是面向数据,尤其是对数据库及其数据的格式结构的设计2。数据库部分主要描述了如何建立一个数据库并对其维护,数据部分阐述了核心功能诸如收藏管理,评论管理,用户管理,菜谱管理等功能所需表结构及实现方法。最终,完备的测试过程检验了该设计的所有功能模块,无论是模块化检测还是集成检测,都证明本设计是一个有效,完整,而且具有较高实用度的系统。1第一章绪论13国内外概况当今国内外安卓开发除了系统层面的研究,主要还是以开发应用为主,大体可以分成以下三类开发企业级应用只服务于大型企业,在谷歌的应用商城和其他应用市场上销售自制的中小型通用应用,以及同样在谷歌应用商城上销售和其他应用市场上销售的以游戏为主题的大中型游戏开发。菜谱应用正是其中的中小型通用应用3。这种类型的应用基本架构成熟,拥有丰富的资源,和较多的开发资源,开发时长相对较短,耗费人力相对较少。但是其弊端是用户忠诚度很低,同类可替代应用较多,只有那些服务能力优秀,拥有优秀的人机交互界面,服务器承载能力较强的运营者能够脱颖而出,最终赢得消费者的青睐。安卓系统平台的优势在于其可以对多种设备,不同分辨率的设备统一进行软件开发,大大减少了软件开发的时间和经费成本,真正实现跨平台软件开发。另外安卓系统是一个功能强大的系统,除了拥有丰富的系统组件,还可以轻松地完成手机相应硬件功能的调用,这样开发出的应用拥有着的强大功能使得其他系统无法与之相比。14研究内容和章节安排本设计主要是为了实现评论的管理,通过移动端浏览,新增,电脑端维护的方法对评论及其数据进行维护。主要涉及的技术有JAVA,安卓,JSP,SQL,WEB等等。实现了用户的登录,注册,浏览,评论功能以及管理员的登录功能,对用户数据的浏览,新增,删除功能。本篇第二章主要以简述设计系统的基本方法,主要包括基础的描述,需求分析以及关键性的技术描述。第三章设计了系统关键的组成部分,包含思路,界面。第五章主要是测试部分,介绍了先进的测试方法,并客观的阐述系统性能。2第二章设计原理及方法第二章设计原理及方法21架构概述此设计的主要目的是为了完成菜谱系统,主要包括安卓平台的客户端软件开发,常见数据库的创建,连接和维护。最终此设计完成的功能包括用户登录功能、收藏功能、评论功能、注册功能、以及与之相关的后台管理功能。本系统各页面交互性良好,运行状况良好。除了基础的安卓编程,此设计也包含了简易服务器的搭建,为了控制输入的信息,本设计也使用了一些前端控件,在连接数据库之前作必要的信息验证以减少错误的发生。为了规划系统,本设计也采用了数据流图,系统结构图等具体展示了各个系统功能模块,主要界面图也会在接下里的阐述中得到呈现。此菜谱系统主要的模式采用模型视图控制器(MODELVIEWCONTROLLER)的设计。尽管暴露了一些缺陷,MVC架构仍然是当前最流行的WEB应用模式,MYBATIS、SPRING、STRUTS等知名框架就是采用了这种架构。在设计中MODEL、VIEW、CONTROLLER的含义分别是模型、视图、控制器,三者结合共同组成这种典型的模式4。MVC模式是一种经常用在计算机上,用于实现用户操作界面的软件架构模式。MVC模式通常是吧软件应用程序的开发分别划为相互关联的三个部分,从而向用户提供从内部信息方式中抽离的信息,亦或是从用户的信息当中抽取信息合并至内部。该操作的实现需要其他组件的帮助。传统的MVC被广泛应用于桌面系统的开发(GUIS),然而该架构最近在WEB应用的开发中也变得十分流行。安卓应用程序和WEB程序十分类似,因此完全可以使用此模式开发。模型是MVC模型的中央组件,用于捕捉在其问题域的应用程序的行为,独立的用户界面。模型的主要职责是直接管理数据的逻辑和规则。视图层则是信息输出途径的拥有者,比如通过计算机自动绘制表示业绩的图,通过一次成功用户会话等等。同一条信息可能同时存在于多个视图,比如一份选课单,一张管理视图。最后控制器负责输入输出流,将视图的命令输入转化为模型亦或是将模型转化为输出视图,也有不少此层负责处理业务信息的先例。3第二章设计原理及方法22关键技术简介221持久化在计算机科学中,持久化是指一种创建进程的特征状态。在实现实践中,计算机通过将状态数据存储在数据存储去。程序必须将数据传输至存储设备,并从本机编程语言数据结构中提供到存储设备数据结构的映射5。持久化亦分为“正交ORTHOGONAL”和“透明TRANSPARENT”,当所指的是一个程序的执行环境的内在属性时。一个正交的持久化环境不需要在其运行的程序中进行任何特定的操作来检索或保存它们的状态。非正交持久化要求数据被写入和读取,并从存储使用特定的指令在一个程序中。结果导致持久化的使用成为一个动作如完成,程序持久化数据中。正交持久化适用于那些简单且易于出错的程序。正交持久化操作系统和虚拟化平台等系统为VMWARE和VIRTUALBOX的广泛采用。在本设计中持久化通过JAVADATABASECONNECTIVITY,也就是我们常说的JDBC,一种数据库连接来实现。222用户界面设计用户界面设计(UI),通常在工业设计领域当中用于人机交互,经常用在在人类和机器直接接触的场合。用户界面设计的目标是允许人类有效地控制机器终端的同时让机器模拟信息反馈以为操作者提供有效决策信息。除了在计算机领域,界面交互还被手工工具制作,重型机械的人工操作,过程控制等领域广泛采用。像人机工程学和心理学这样的学科都对创建设计用户界面有很大的帮助6。总的来说,设计用户界面的目标是产生一个自定义的高效的用户友好的简明界面,一个操作者期望看到的结果。这通常意味着用户可以仅做最小化的操作就获得最符合期望的输出结果,也意味着机器必须最小化人们不愿意看到的输出。伴随着个人电脑的普及和社会对重型机械的意识下降,用户界面现在越来越多的是特指图形化的计算机用户界面,用人机界面取代去描述工业中控制面板领域和机械设计领域,以方便讨论。4第二章设计原理及方法23开发环境简述231ECLIPSEECLIPSE由常用的主要工作区域和多个可扩展插件的自定义槽组成,用于计算机编程的集成开发环境7。ECLIPSE的主要用途是用于开发JAVA应用程序,但通过使用插件,该软件也可以开发其他编程语言,包括ABAP,C,C,FORTRAN,HASKELL,JAVASCRIPT,LASSO,PHP,PYTHON,GROOVY,R和SCHEME。在增加了一系列的插件之后ECLIPSE几乎成为了JAVA开发的标准工具。而本文中使用的JAVA和安卓正好都是基于JAVA语言的,使用ECLIPSE可以游刃有余地胜任两者的协同开发。需要更多的功能时,可以通过为其安装插件来实现。同样插件可以在不同的运行时环境中运行。ECLIPSE的运行时系统是基于在OSGI核心框架下的EQUINOX的。除了允许ECLIPSE平台可以使用C和PYTHON这样的语言扩展,它的扩展框架还允许ECLIPSE平台像LATEX那样或者像TALNET和其他数据库管理应用程序那样重新排版。插件支持任何扩展环境的编写,就连配置管理也不例外。ECLIPSESDK提供JAVA与CVS的支持,但你需要从第三方提供商哪里获取其他版本的控制系统插件。除了很小的ECLIPSE的运行时内核,ECLIPSE的一切其实都是插件。这意味着开发ECLIPSE的每个插件和其他的插件都是类似的。ECLIPSE提供各种第三方插件无论是自由模式的还是商业模式的,例如UML生成器,DBEXPLORER。ECLIPSESDK包括完整的ECLIPSEJAVA开发工具(JDT),提供内置的增量JAVA编译器。虽然与GNU通用公共许可证不兼容,ECLIPSESDK在ECLIPSE公共许可证的条款下是免费和开源软件。自从2004发布30版本至今已经发行45版本MARS。232TOMCAT服务器我们常听说的TOMCAT指的就是APACHETOMCAT,源于一个开源的WEB项目,已经获得了了SUN公司的支持,受到了广泛的认可。TOMCAT的开发和维护由APACHE软件基金会和开放社区的开发人员协力完成,在APACHE2许可证发布下,TOMCAT服务器是开源软件。CATALINA是TOMCAT的SERVLET容器。CATALINA实现SUN公司的规格为SERVLET和JAVASERVERPAGES(JSP)。在TOMCAT,REALM元素代表了一个“数据库”的用户名,密码,和角色(类似于UNIX组)分配给这些用户。REALM不同的实现允许CATALINA被集成到环境中,这些认证信息已经被创建并保存,然后利用这些信息在SERVLET的规范描述下来实5第二章设计原理及方法现容器的安全管理8。TOMCAT开始由杰姆斯邓肯戴维森一个SERVLET的参考而实现,杰姆斯是SUN公司的软件架构师。后来他帮助开源项目,SUN系统公司在其中起到了关键作用,把TOMCAT捐赠给APACHE软件基金会。APACHEANT一个构建软件自动化工具的开发成为作为一个开放源代码项目的TOMCAT创作的一个副产品。戴维森最初希望该项目能成为开放源代码。因为许多开源项目有OREILLY的书籍,他们的封面上的展示和动物有关,他也在想自己项目的动物名称。他想出了TOMCAT(公猫),一个可以保护自己的代表动物,虽然TOMCAT已经使用另一个OREILLY的标题。当OREILLY他们介绍TOMCAT的书封面上出现了一只三脚猫,他希望看到的一个动物图标也终于被实现了。24平台简述241ANDROID平台安卓是一种移动操作系统(操作系统),该系统以LINUX内核为核心,最初由谷歌公司开发,主要为触摸屏移动设备而设计,如智能手机和平板电脑。ANDROID的用户界面主要是基于直接操作,使用触控手势松散地对应于真实世界的行为,如滑动、轻触、戳、操纵屏幕上的对象,通常还伴有输入文字的虚拟键盘。除了触摸屏设备外,谷歌还为汽车开发了ANDROIDAUTO,为手表开发了ANDROIDWEAR,为电视开发了ANDROIDTV,而且每个都拥有独享的用户界面。安卓在笔记本电脑、游戏机、数码相机和其他电子产品中也有不同的应用。安卓系统现在有所有操作系统的任何种类的最大的安装占有量。自从2013以来,安卓一直是平板电脑上最好的销售系统,在智能手机上,它也占有绝对支配地位。最初安卓由ANDROID,INC开发,在2005被谷歌收购,2007年开放手机联盟成立了,包括谷歌在内的85家企业,涉足硬件制造、软件开发、电信运营领域,共同研发和升级安卓系统,使得这个原本并不算成熟的系统迅速成长起来。从2008年首款安卓手机问世,到2011年,安卓系统仅用了3年就超过了盛极一时的塞班系统,问鼎全球第一系统的宝座。截止到2015年,安卓已经拥有14亿个月活跃用户,并且在一项调查中显示超过71的移动客户端开发者表示曾经使用过安卓系统开发应用,40的职业移动应用开发者把安卓作为优先目标平台,同时苹果的IOS占有率为379。安卓在定制低成本高科技设备操作系统是十分流行。拥有很大的开源社区和数目庞大6第二章设计原理及方法的开发爱好者,安卓系统增加了很多先进功能,甚至有高级用户将安卓操作系统的先进特性移至到其他系统之内。同时,由于ANDROID没有集中的更新系统大多数ANDROID设备无法获得安全更新研究2015得出结论,几乎90的ANDROID手机在使用过但由于缺乏更新和支持未打补丁的安全漏洞。尽管安卓的源代码发布拥有谷歌的开源许可证书,但是绝大多数的安卓设备最终是以一种开源和专有组合起来的方式发货的。甲骨文公司最近起诉谷歌公司,认为其安卓系统中侵害了JAVA的软件著作权索要天价赔款,但是诉讼中美国法院认为其系统尚未构成抄袭,谷歌获得了此次诉讼的胜利。25需求分析251菜谱系统的需求分析随着网络化步伐进一步加快,各行各业都在进行网络化改革。互联网成功创业的案例层出不穷,一方面人们对于互联网的依赖性与日俱增,另一方面企业家们也开始对这种新颖的商业模式产生浓厚兴趣。但是由于技术手段的受限,开发时间受限,开发人力受限,开发经费不明确,管理经验不足等种种原因不少企业家更倾向于观望,持保守态度,踌躇不前。因此,总的来说,大多数的传统企业家,对虚拟经济持观望态度,或者处于长期考察的阶段。建立一个优秀完整的系统之前,全面完备的系统分析是必不可少的。只有做好系统分析,才能指导项目良好地长期发展。而本设计优良的系统分析是建立在优良的需求分析之上的。得益于良好的系统分析,本项目可以按计划有序进行,有秩序地逐步完成。假若没有进行完整的系统分析,却试图通过编程调试来完成需求,必然会导致编程思路混乱,新增功能时和原有功能冲突,严重扰乱系统逻辑,拖慢开发进度,此时再进行系统分析恐怕为时已晚,成品的质量恐怕也是难以恭维。项目的进度一旦严重落后,开发人员的内心难免也会产生波动,更加影响开发的质量,拖慢开发进度,甚至导致版本倒退,这也正是软件危机的一种具体呈现。所以想要规避这种结果,做好系统分析必不可少。明确系统的功能目的在系统分析时是首要的,考虑实现手段在此时则相对占次要地位。只有明确系统的功能,最后问题才课能迎刃而解。紧接着,是本文的核心。一个系统必然少不了用户和管理员的模型。用户是数据操作的主体,对数据库进行主要操作,包括登陆,注册,查询,评论收藏。管理员主要负责维护系统,主要职责包括维护菜谱的时效性,维护系统的稳定,可以进行用户的删除,评论7第二章设计原理及方法的删除,收藏的删除等操作。菜谱系统在性能上应满足以下需求1界面友好用户无需培训就可以自发完成注册,浏览,收藏,评论等核心操作。页面布局合理美观,信息一目了然,功能键按照常见的顺序排列,放置在醒目,合理的位置。尽量让用户感受到所见即所得,用户体验优先。管理员对表的增删查改操作都应该直观且高效。2交互及时控件应该是响应式或是具备响应式控件的特点,每次操作都有相关的提示或者变化效果,以便用户了解自己操作的情况。远程操作后应该有操作成功或者失败的提示,删除等危险操作时应该给予警告以防误触。3系统应该为新的功能保留接入的空间,即具有优良的扩展性。4系统运转之后应该可以长期稳定地维持运转,并在遭遇突发事件后有能力恢复系统的正常运行。表21需求表252可行性分析在因特网上,我们往往需要通过留言来进行跨时间的交流,这是一种典型的交互式设计。最常见的形式就是网络用户需要与网页的拥有者或者维护者互通信息,或者游客与游客之间相互交流时,可以在一个特定的区域张贴文章或者意见看法。本系统后台数据库采用MYSQL,该数据库系统在安全性、准确性和成本方面有的较大优势;前台采用来自ORACLE公司的JAVA语言作为开发基础,可以无缝的连接MYSQL数据库10。8第二章设计原理及方法本系统的链接架构是基于ANDROIDSERVLETMYSQL框架开发而成的,采用B/S架构,优点有成本低,建设快,维护方便等等。在实际运行时,本设计在功能模块化的指导思想下,较好地达成了目标,也为今后的扩充功能保留了充足的空间,既方便又灵活。综合以上几点总结分析,本次毕业设计选定安卓做为食谱系统的平台。9第三章系统设计第三章系统设计系统设计又称概要设计,是为一个系统定义结构,组件,模块和接口等以满足的需求过程。系统设计作为系统理论的应用,在其分析与架构上和一些工程学科有所重叠。31功能模块的划分本系统主要分为前端后端两个部分六个模块,前端作为客户端拥有登录模块,注册模块,浏览模块,收藏模块,评论模块;后端作为管理系统拥有登陆模块和管理员模块。32模块的功能设计登录模块用户键入账户名和密码,与后台数据库比对浏览模块用户可以浏览所有的菜谱条目,并对菜谱条目详细信息进行浏览收藏模块用户能够收藏所选菜谱评论模块用户能够评论指定菜谱管理模块管理员能够增加最新菜谱,管理用户,评论以及收藏。33数据库的设计数据库结构设计DATABASEDESIGN就是指按照需求,规划每个数据对象之间互相的关联关系,并使数据库中表对象结构规划统一。此过程是在某一具体的数据库管理系统之下,如本设计中所使用的是JDBC,以完成数据库的规划与建立的11。331需求分析首先,我们要对用户做调调研,整合优化他们的数据使用情况和业务需求,以初步确定数据规模,种类还有长度。然后根据这些基础,建立起一个系统的需求,以供建立数据使用。对于菜谱系统来说主要实体首先是菜谱本身,菜谱表自动生成一个编号作为主键以供其他模块使用。菜谱本身还需要一些其他的内容信息诸如做法,图片,分类,配料等等。此系统另一个主要实体是用户。同样用户需要一个自动生成的编号作为主键,用户还需要保存用户名,密码,注册时间等信息。在这两张表的基础之上,用户的收藏,评论操作都是以用户表,菜单表的主键作为外键引用,并且自动生成编号作为主键。通过已知的数据模型对数据模式进行设计,最后完成的符合需求的ER图(实体关系模型)如图3110第三章系统设计图31实体联系图332概念设计概念设计是有关所有非美学设计管理学科的纪律的一个统称词汇。它是互动设计的经验、方法和策略。人力,知识,产品,服务,流程,盈利能力,视觉以及其他的可能,对设计师来说,每个不同的方面都需要不同的考量。概念设计紧紧联系着任何给定环境下的抽象思考,帮助人们快速理解每个关键元素,失败的根源,也和人机交互紧紧联系在一起。自从设计思想作为一种商业和研究发展的高速工具出现,许多传统的训练有素的美学设计人员被错误地要求为支持需要专业知识的组织与车间或过程开发做出无法与其容量相匹配的不正确假设。这导致了一个巨大的阴影笼罩在设计行业中,其设计作为商业或研究发展的价值也因此受到质疑。本设计的结构示意图如图32所示11第三章系统设计图32示意图12第三章系统设计333逻辑设计逻辑设计作为系统设计的一个部分,主要是对系统地数据流进行设计,用抽象表示系统的输入输出。通常图表设计和抽象模型都需要进行。逻辑设计主要是通过模拟进行的对实际系统的过度抽象。本设计中该环节的目标是把概念中的数据模式转化为建立在一个具体数据库管理系统之上的具体数据结构。本设计经过逻辑设计之后,获得的符合需求的数据表和字段名及其说明如下(1)菜谱表菜谱表是本设计的核心,其具体结构如表31所示。表31菜谱表(2)用户表用户表是用户实体的抽象,其具体字段如表32所示。(3)收藏表基于用户表和菜谱表,收藏表具体如表33所示。(4)评论表同样基于用户表和菜谱表,评论表的结构如表34所示。13第三章系统设计表32用户表表33收藏表表34评论表34数据库的连接连接数据库是一项很关键的步骤,只有正确完整地完成连接,才能成功地进行其他操作,才能开展之后的设计与实现工作。本设计主要采用JAVA语言编写,连接桥采用MYSQLJDBC驱动,服务器与数据库之间共享数据通过JDBC完成。此连接桥由于十分常见,本文不再赘述,实际源码可以参考附录。14第四章系统实现第四章系统实现41设计思路用户用起来是否顺手,能否轻松简单的使用,用户进行操作和机器进行响应之间的操作响应时间,以及终端发出消息主机接收到消息之间的连接时间,这些时延是否足够的小,用户接收到的图片的综合质量是否令用户满意,首页的布局质量的高低以及首页信息类型信息,这些都是用户感受最直接最基础的东西,这些东西就叫做移动终端。生活中我们经常遇到的界面通常有三种情况1文字生活中我们看到一个界面,我们经常发现界面中的连接、标题、正文。都是主要以文字的形式出现。甚至一些按钮、警告、信息等等都是文字。我们通常会把文字用来传递信息,这是最常出现的最普遍的情况。所以说文字是界面的内容载体,而标题则是界面的眼睛。标题是对整个页面内容的总体概述,应该让人一眼看到,能够直接传递一些重要信息,直观、醒目。而页面里的文字又有着很多属性,每个属性都能出传递重要的信息。我们常用的属性一般有字体、颜色、大小、位置、排版。我们可以通过这些属性对设计者想要传达的信息有一个大概的了解。字体,大小,颜色,板式和排列都从侧面直观地投射出设计者的想法、水平和态度。要想真正体现出用户友好型,必须从字体开始着手。在设计时,字体可以与W3C规范同步以保证美观。2图形除了上文中的文字是,界面比较直观的,反映信息的要素,还有一种要素,在传递信息时有着至关重要的作用那就是图形,我们可以通过合理的运用图形,来表达,来传递一些信息,我们也可以通过,对图形的合理应用,来使的设计主题可以达到更加生动更加形象的效果,在日常生活中,我们看网页中的图片一般都有如下格式GIF,JPG,还有一些罕见的PNG的通用WEB格式。3界面版式板式是界面设计中的重要部分,其组合着文字与图形。一个美观大方的板式能够提高阅读效率,加速信息传递,提高用户忠诚。正是为了将文字,图形等元素有序的组合在一起,我们需要慎重设计终端系统的界面。试想一个每个功能都图文并茂,甚至只需要图片就能了解功能概况的系统,必定能够牢牢把握住用户的芳心,让用户爱不释手。反之,一个操作繁杂,难以上手,晦涩的系统,肯定最终会被用户抛弃,消失在应用的海洋之中。15第四章系统实现42登陆界面421界面功能期望我们期望主菜单界面拥有以下功能模块,首先我们希望能拥有让用户进行浏览的浏览功能模块,而且还有供用户登录和注册的功能模块,如果用户想退出,还有退出的功能模块,不光如此,评论和收藏的功能模块也必须要有,而且在此基础之上每个功能模块,都能够独立的运行,相对独立地提供服务,而且从外观上,还要体现出美观得体,要让用户一眼看上去很舒服,让用户有着更好的用户体验。422如何优化界面我们的登录界面是面向用户的,所以让用户能够简单明了的进行操作是我们设计界面的目的,我们期望每一个用户都有一个帐号和密码来进行登录,当然如果没有帐号和密码的情况下,也可以以游客的身份进行浏览,但是他会比有帐号和密码的用户少一些功能,例如说,他没有收藏功能,而且在使用本服务后,无法进行评论。当用户输入完帐号和密码后,界面把消息发送给数据库,这一段消息得经过加密处理。数据库把加密后的信息和数据库中的加密信息进行对比,只有两者相同才能通过验证,通过验证后返回到主菜单界面,如果不对则返回主菜单界面并提示账号或密码错误。423功能描述用户可需要通过输入用户名和密码来解锁移动终端首界面的所有功能。用户的账号密码是通过注册写入数据库的,也可提前在服务器数据库中取定的,用户通过张海密码登录。每一个用户的账号和密码都不是重复的,必须唯一。16第四章系统实现424界面外观图图41登录界面效果图425设计步骤用户登录的控制我们是通过ACTIVITY来实现的,在完成基本的非空校验之后,将用户名与密码发送的到服务器实用程序中去。非空校验主要是保证账号密码必须有值,如果有一条为空那么就发送一条消息,该消息显示用户名或密码至少有一者为空。如果发送了为空的用户名或者密码可能会造成服务器端空指针的错误所以务必要避免。服务器实用程序将发送来的密码与数据库表中的数据进行匹配,匹配则返回指令提示移动终端跳转到响应的页面。426关键源码设计解读安卓程序的结构是在相应的控件之上绑定监听事件函数,比如登陆界面就是在登陆按钮上绑定一个函数,如果检测到用户名或者密码的输入框中有未填写项,就会使用TOAST函数弹出一个提示框提示用户用户名会这密码未填写,只有不为空时,才会新建一个线程向服务器发送数据。如果服务器经过比对返回了跳转指令,监听函数收到了跳转指令,就会返回UI线程,在UI线程中跳转到指定的主界面。如果收到了失败指令,就会弹出一17第四章系统实现个提示框提示该用户用户名或密码填写错误。在安卓的版本经过升级之后,系统性能有着显著的提升,其代价是设计者必须重新思考程序的设计以适应新版本系统的结构。在较新的版本之中,多线程协调工作成为一个应用必须的能力,而不再是过去简单的单线程应用也可胜任多重任务。在新版本之中,主线程被认为是用户界面线程,有严格的运行时间限制,任何试图在主线程之中进行的长耗时操作,诸如网络连接,新建界面,等待认证都会导致应用产生意料之外的行为。其具体表现为应用不执行或跳过开发者的程序片段,产生空指针导致应用强行退出,点击界面控件后长时间没有响应以至于整个应用停止工作。如何在适应新的框架下编写应用成为开发者入门的一道难关。本设计将简单阐述多线程控制器(HANDLER)和在视图层运行线程(RUNONUITHREAD)两种方法实现简单的网络交互工作。(1)多线程控制器(HANDLER)多线程控制器同样是一种MVC结构设计的产物,作为一种特殊的控制器函数,HANDLER负责协调各线程之间运行,并通过消息队列(HANDLEMESSAGE)处理来源于子线程的更新请求。新版本中应用无法顺利执行多线程命令的原因是新的线程即耗时操作并不是原本视图的拥有者。耗时操作的目的是为了更改原有的视图,这就产生了线程试图超越它本身的权限的安全隐患,可能会导致恶意进程更改其他应用的用户界面,从而获得对移动设备的控制权。所以,非视图拥有者是不能更改视图的,视图的拥有者即MAINACTIVITY需要创建一个控制器(HANDLER),并通过安全的消息队列获得它产生的子线程的数据完成视图的更新操作。其具体工作方式如图4218第四章系统实现图42工作方式示意图这样一来新的线程通知了视图的拥有者,让视图的拥有者去更新视图,完成视图操作。达到了目标。详细的工作原理请参考有关安卓异步回调机制的相关书籍。(2)视图层运行线程视图层运行线程是指创建新的子线程之后或者是同时,再创建一个视图线程,该线程是用户视图线程的拥有者,在子线程中完成耗时操作之后,再在此视图线程中完成视图的更新操作,同样可以完成目标。这么做的好处是对于那些异步操作较少的简单应用,比如仅仅是需要访问一次网络,可以更快地完成回调,但是对于那些异步操作较多的应用,比如需要多次访问网络,频繁与其他界面交互,这种做法并不明智。427安卓系统机制概述要想实现安卓的应用程序首先我们需要至少了解安卓系统的简单机制。一个安卓应用程序一般来说是由多个活动(ACTIVITY)组成的,活动类似一个窗口或者一张视图,特殊情况下应用程序也可能并不是这样组成的。在实际装配时,需要为每一个活动在配置文件中(ANDROIDMANIFESTXML)至少设置一条记录。一个活动一般分成布局(LAYOUT)和源19第四章系统实现程序(RES)两个部分,源代码就是写在程序部分的。活动之间通过意图(INTENT)来进行切换。首先活动新建一个意图,通过在配置文件中设置的类名找到新的活动,再新建一个线程(THREAD),将意图置入新的线程,最后启动线程就可以完成活动之间的跳转。除了活动,安卓还有一种服务(SERVICE)用于处理那些没有界面,而且需要运行较长时间的进程,比如在在浏览网页的同时后台播放本地的背景音乐,此时播放音乐就是一个典型的没有视图的线程,又比如后台同步网络数据,这也可以是一个没有视图的线程。我们常见的在通知栏里出现的是通知(BROADCAST),短消息提醒,活动信息,广告等往往采用这种方式与用户互动。最后还有一种是内容提供者(CONTENTPROVIDER),比如联系人列表,这类组件往往用于为其他应用程序提供对设备数据的访问。安卓中最为常用的主要是活动,并且在默认的情况下,新的活动建立(ONCREATE)时,旧的进程并不是立即销毁(ONDESTORY),而是进入中断(ONPAUSE),并被保存在历史堆栈中,这样,即使开发者没有为每一个活动定义返回键的函数(ONBACKPRESSED)重载(OVERRIDE),应用也可以自动地在按返回键时重现上一个活动。43主界面设计431功能设定这个按键模块是想达到让使用者查看菜谱信息的目的,对感兴趣的信息进行阅读。登陆之后,用户也可以收藏评论相应的菜谱条目。432主用户界面构思主用户界面的如下图43所示20第四章系统实现图43主界面图44评论功能21第四章系统实现图45收藏功能44管理界面441功能设定设计该功能主要是为了维护系统,使系统内的数据保持正确,具有时效。442界面设计本界面的设计如下图46所示443功能实现为了让菜谱保持时效,不断更新菜谱,需要拥有多个可以直接对后台进行维护操作的管理员,即允许同时有多个管理员对用户表进行新增或者删除操作,审查评论并可以删除或者新增以此来维护论坛秩序。22第四章系统实现图46管理界面45评论界面451功能设定在相应的菜谱界面可以看到用户的评论,登陆过后点击评论按钮以后系统会跳转到指定评论界面。23第四章系统实现452界面设计图47提交评论查看评论24第四章系统实现453功能实现首先应用会从服务器获得菜谱的编号,并提交当前用户的ID与评论内容,通过BTNSETENABLEDFALSE方法就会使按钮失效,不能重复提交评论,这也是为了减少冗余,不易让用户重复提交评论产生数据错误。25第五章测试第五章测试51测试的基本概念测试是为了让企业等利益相关方对产品或服务的质量实施相关的调查,以提供一个个客观独立的意见,以便评估部署软件的风险。测试的技术主要致力于在执行应用或程序的同时,寻找缺陷或潜在的错误。为了获取一个或多个特性,测试应该覆盖软件或系统组件的执行。由于需要测试的简单软件数量几乎是无限的,所以测试通常使用一些策略来确保测试的时间和资源没有超出可接纳的上限。测试不仅是试图执行软件,更重要的是在试图从执行中发现阻碍程序运行的具体错误或者潜在的缺陷。有时,修复一个错误时可能发现一个另一个漏洞或者更深层次的漏洞,甚至,可能会产生一个新的漏洞,所以测试的过程往往是反复的。由于一个错误的存在可能引发更为严重的其他错误,导致一系列的错误,以至于修复所需要的时间、资源剧烈增长,所以测试应该及时的被执行,软件只要部分完成,到达可以执行的程度,就应该执行测试。软件在总体开发的时候就可以决定何时以及如何进行测试。比如,阶段开发系统需要在系统定义之后执行可测试的程序,而迅敏开发则是开发的同时就进行测试。52测试方法软件测试有如此之多的方法,我们可以把它们分为静态方法和动态方法。所谓静态方法包括评审(REVIEW),走查(WALKTHROUGH)和检查(INSPECTION)12。动态检查指的是在给定测试用例的情况之下,执行代码。有很多静态测试方法其实是隐式进行的,比如预编译器,还有很多集成开发环境(IDE)会自动地对源代码的数据流和语法进行测试。动态测试则一般需要在程序成功执行的同时进行。当然也可以在代码完全完成之前对特定的模块实施动态测试。大部分的动态测试需要在调试(DEBUG)环境中运行13。通过静态测试代表程序语法的正确(VERIFICATION),通过动态测试代表程序语义的有效(VALIDATION),通过二者的联合执行能够显著提高程序的质量。二者结合的一些检测技术十分有效,比如突变检测,它可以通过改变源代码的方法能够确保测试用例成功检测到错误。26第五章测试53盒子测试在传统测试中软件测试又分为黑盒测试(BLACKBOXTESTING)与白盒测试(WHITEBOXTESTING),测试工程师将根据自己所持的观点选择测试的类型,本设计完整的测试用例将在附录中给出14。531黑盒测试所谓黑盒测试是将软件本身视为一个“黑盒子”,不去关心任何有关源代码的知识,仅仅对软件进行功能性检测,就是典型的测试人员只关心结果,不关心实现过程。黑盒测试通常会使用以下方法等价划分法(EQUIVALENCEPARTITIONING),模糊测试法(MODELBASED),成对测试法(ALLPAIRSTESTING),边值分析法(BOUNDARYVALUEANALYSIS),状态转换表法(STATETRANSITIONTABLES)用例测试法(USECASETESTING)等等。通常黑盒测试用于整体检测15。532白盒测试所谓白盒测试是把程序内部的结构,源码暴露给测试者,需要测试者拥有一定的编程能力。这类测试类似于电路测试中的测试节点电路(ICT)。白盒测试通常使用以下的方法突变检测法(MUTATIONTESTINGMETHODS),接口测试法(APITESTING),故障注入法(FAULTINJECTIONMETHODS),代码覆盖法(CODECOVERAGE)。白盒测试往往用在单元检测之中16。533灰盒测试所谓的灰盒测试是在系统内部暴露一个接口给测试者,测试者虽然无法完全认知系统,但是测试者根据自身的数据结构与算法知识设置仅凭输入输出就可以判断系统内部的运行情况,灰盒测试通常用在集成测试之中17。54测试用例表51登录模块测试27第五章测试表52收藏模块表53菜品信息表54评论模块28结论结论历时多个月,最后,我终于能够顺利编写代码实现了菜谱系统的基本功能,随着论文的撰写完成,毕业设计也圆满的收尾。通过思考实践与深入学习,我从本次毕业设计中收获了谷歌安卓系统与JAVA等相关技术的开发经验。同时,在非常有限的时间之内完成一套系统,我也能巩固快速查询资料的能力,累积丰富的实践知识。从需求分析开始,推进到可行性分析,到实际进行JAVA环境配置,最后编写JAVA代码并进行调试测试等一系列完整流程的展示,旨在让每个阅读过本文的用户可以对此类系的建立产生初步的概念。数据库与JAVA知识融合在理论实践当中,充分锻炼了分析和处理问题的能力,也激发了我对于此类系统的兴趣。经过若干月份的长期资料收集与毕业设计,可以清楚地感受到科技尤其是计算机和相关学科的进步。随着网络世界的高速发展与演变,可以说其已经完全无法从现代人类生活中分割了。人类通过网络高度的可识别性,低廉的存储成本,优异的可扩充性,相对高速的传递以对时效性的保证,逐步完成了信息技术的飞跃。在以网络为主宰的信息时代,信息传递正朝着小型化发展,以手机为主的移动端发展尤其引人注目。各个网站纷纷推出移动门户,甚开展移动端业务,至优先发展移动端业务。在这种背景之下,我们必然应该朝着安卓苹果等平台着手发展。此次毕业设计加深了我对于信息工程这门学科的认识,同时也对软件工程建立了初步的概念。相对独立地完成各阶段的主要目标,使我对系统的全局规划有了进一步的认识。在设计过程中遇到的种种困难与阻碍,也让我感受到软件危机的存在。如果能够更加系统全面的去学习去分析去设计,也许可以减少很多冗余无谓的工作量。如果总体设计规划更加科学合理,分析需求更加详细,任务目标更加明确,也许能大大加快完成的进度。尽管受到水平与时间的限制,开发的过程还是带来了丰厚的收获,今后的工作也好学习也好,生活也好,都因此受到了深远的影响。29谢辞谢辞本篇论文得以完成必须要首先感谢王金芳老师在百忙之中抽空对我的大力支持,同时我也需要感谢吴阔育同学能够在完成任务的同时对我鼎力相助。并且我需要感谢王楠同学对我论文提出的宝贵的修改意见,以及钱赜彬同学为我的论文构思提供大量的建设性建议。逝者如斯夫,四年如白驹过隙般迎来了终章,母校给予的谆谆教诲此时已铭刻在心。本科生活收获的远不止专业知识,还有为即将踏入社会之人所准备的渊博道理。母校营造的优秀的学习生活氛围,不是一人两人,甚至不止一代两代人所能够塑造的。所有创造或者维持着优良的学术氛围的人,都是值得感谢的。最后,我要感谢学院里在大学期间每一位帮助过我的老师,要完成这篇论文,不能离开老师的悉心的教诲。30参考文献参考文献1谭浩强JAVA语言程序设计第三版M北京清华大学出版社,20082张孝祥JAVA就业培训教程M北京清华大学出版社,20033王珊、萨师煊数据库系统概论第四版M北京高等教育出版社,20064李春儒守望互联网经济电子商务发展现状与趋势OLHTTP/WWWILIB2COM,20055李飞,最新实用网络技术教程M西安西安电子科技大学出版社6970,1241266史斌星
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考中国对外贸易-网络经济与企业管理参考题库含答案解析(5卷)
- 追投合同(标准版)
- 2025四川会计自考试题及答案
- 2025数据结构自考试题及答案
- 2025年教师招聘之《幼儿教师招聘》练习题库包含答案详解【新】
- 教师招聘之《小学教师招聘》能力检测附完整答案详解(考点梳理)
- 教师招聘之《小学教师招聘》练习题库及参考答案详解(完整版)
- 全球疫苗市场2025年辉瑞与BioNTech合作研发合作模式优化报告
- 2025内蒙古呼伦贝尔农垦集团有限公司社会招聘备考附答案详解(典型题)
- 2025年教师招聘之《幼儿教师招聘》通关试卷提供答案解析及参考答案详解(培优)
- 吸痰护理操作课件
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共90题)
- 2025年天津市专业人员继续教育试题及答案3
- 主要诊断及主要手术的选择原则
- 2024年急危重症患者鼻空肠营养管管理专家共识
- 医学教材 《中国高尿酸血症相关疾病诊疗多学科专家共识(2023年版)》解读课件
- 2024版债务处理咨询服务协议
- 《我们走在大路上》 课件 2024-2025学年湘教版初中美术七年级上册
- 2024年八年级物理上册必背考点113条背记手册
- 供应链安全风险评估
- 移动公司个人求职简历模板
评论
0/150
提交评论