




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ANDROID日程管理工具的设计与开发摘要随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如IPAD,IPHONE,ANDROID等智能终端设备,在这些平台中,ANDROID占领着最大的市场份额,所以为ANDROID用户开发满足日常使用的软件成为了现在的一大热门。本次设计选用了时下比较热门的ANDROID平台来作为开发技术,实现了一个个人事务提醒软件功能,用户可以通过本软件来做一些日常事情的事务记录,同时也可以做定时提醒。本论文将逐步介绍基于ANDROID平台的个人事务提醒系统的开发背景和意义,接着详细介绍了个人事务系统的分析、设计与实现过程,最后对本论文做了总结。关键字ANDROID;个人事务;SQLITE;手机THEDESIGNANDDEVELOPMENTOFTHESCHEDULEMANAGEMENTTOOLBASEDONANDROIDABSTRACTWITHTHERISEOFMOBILEPLATFORMS,MOREANDMORETRADITIONALPCSOFTWAREISPORTEDTOMOBILEPLATFORMS,SUCHASIPAD,IPHONE,ANDROIDANDOTHERSMARTTERMINALEQUIPMENT,TOOCCUPYTHELARGESTMARKETSHAREINTHESEPLATFORMS,ANDROID,DEVELOPEDFORANDROIDUSERSMEETTHEDAYTODAYUSEOFTHESOFTWAREHASBECOMEAFAVORITETHEDESIGNANDSELECTIONAMONGTHEMOREPOPULARANDROIDPLATFORMASTHEDEVELOPMENTOFTECHNOLOGY,ACALENDARNOTEREMINDERSOFTWARE,THEUSERCANDOTHROUGHTHISSOFTWARETHEMEMORECORDINGOFSOMEOFTHEDAYTODAYTHINGS,BUTCANALSODOFROMTIMETOTIMETOREMINDTHISTHESISISASTEPBYSTEPINTRODUCTIONTOTHEBACKGROUNDANDSIGNIFICANCEOFTHEANDROIDPLATFORMBASEDCALENDARNOTESREMINDERSYSTEMDEVELOPMENT,FOLLOWEDBYDETAILEDCALENDARNOTES,SYSTEMANALYSIS,DESIGNANDIMPLEMENTATIONPROCESS,ANDFINALLYTHEPAPERSUMMARIZEDKEYWORDSANDROIDCALENDARNOTESSQLITEPHONE目录摘要IABSTRACTII1绪论111本课题的研究背景和意义112本课题当前研究现状213本文研究内容414论文框架介绍42系统理论背景621开发工具及环境简介6211ECLIPSECLASSIC3726212SQLITE37213ADT8214ANDROIDSDK822ANDROID系统9221ANDROIDFEATURES特性9222ANDROID系统的四大组件103需求分析1431需求分析14311功能需求14312质量要求14313界面需求1532环境要求1533本章小结154个人日程管理系统分析1641概述16411系统分析的原则16412系统分析的方法1642系统可行性分析1743系统功能模块需求185个人日程管理系统设计1951系统设计原则1952系统流程设计2053系统功能模块设计2154数据库设计216个人日程管理系统实现2461日程安排界面实现2462日历功能实现2563添加事务模块实现2664闹钟提醒功能实现277系统测试与分析2971软件测试的重要性2972软件测试的目的3073软件测试的方法30731白盒测试31732黑盒测试3174本系统测试用例318总结与展望3581总结3582展望36参考文献37致谢38外文原文39外文翻译491绪论11本课题的研究背景和意义随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如IPAD,IPHONE,ANDROID等智能终端设备,在这些平台中,ANDROID占领着最大的市场份额,所以为ANDROID用户开发满足日常使用的软件成为了现在的一大热门。在现在移动平台爆发的时代,传统的PC软件没有办法满足用户了,如果说PC的软件只能在固定的地点使用,那么现在的移动平台软件就是能够无时无刻地使用,想使用它,只需要掏出自己的手机就可以立即使用,随时随地得到最新的资讯,不再被传统PC禁锢在办公室或家中,那些必须有电源的地方了。本设计与传统的PC软件相比有很大的优势,与现在的ANDROID中其他软件相比,也具有一定的优势。现在ANDROID软件使用风格可谓是千变万化,有很多工具软件无法满足用户的日常需要,还有很多软件由于使用风格不一,使得很多用户无法适应,把一些使用率很高的日常软件的风格统一,并且把它们的功能集中在一个软件平台中,就能使上述问题得以解决,不仅使使用风格得到了统一,也使得用户得到一站式的日常工具使用体验,并且可以使这些软件中的功能得到互补,相互共享资源,为本来硬件条件就不是很好的手机提供一个能够轻松运行的软件。本软件的优势体现1随时随地记录使用,不受地点、移动网络限制;2统一ANDROID平台软件的设计和使用风格;3操作方便快捷、系统相应速度快;4数据永久性保存,随时可以翻阅查看。随着手机的迅速发展,手机已成为人们生活中不可或缺的一部分,手机的主要功能就是打电话和发短信,因此手机个人事务管理软件是手机必不可少的软件,如果能拥有一款功能强大、操作简捷的手机个人事务管理软件便能够大大提高用户的使用效率。当前大多数手机个人事务软件的查询方式单一、未对手机个人事务记录进行统计和相关的数据挖掘,也未向用户提供一定的个性化设置功能。可视化手机个人事务不同于传统的手机个人事务软件,它的实现将会弥补传统手机个人事务软件的不足。手机应用软件属于嵌入式软件开发,必须满足占用空间小,运行效率高等特点。电子个人事务系统已经在PC机上很好地实现,但在手机上实现有较大的难度,需要针对手机平台的特点进行设计。本文以基于ANDROID平台的手机应用功能开发为线索,进行了相关理论研究,实验和技术开发,采用JAVA语言,设计和开发了一套ANDROID系统的手机个人事务,对项目的总体设计、应用环境和相关功能的划分作了详尽的描述;并在此研究基础上阐述了系统的实现过程;最后,对系统进行了测试,并对项目的不足和未来研究的方向进行了展望。12本课题当前研究现状ANDROID一词的本义指“机器人”。同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件组成。号称是首个为移动终端打造的真正开放和完整的移动软件。ANDROID是基于LINUX内核的软件平台和操作系统,早期由GOOGLE开发。后由开放手机联盟、OPENHANDSETALLIANCE开发。它采用了软件堆层,SOFTWARESTACK,又名以软件叠层的架构主要分为三部分。低层以LINUX内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。另外,为了推广此技术,GOOGLE和其它几十个手机公司建立了开放手机联盟。ANDROID在未公开之前常被传闻为GOOGLE电话或GPHONE。大多传闻认为GOOGLE开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,GOOGLE开始发表自家品牌手机电话的NEXUSONE。目前最新SDK版本为ANDROID444。ANDROID在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是阿童木(ANDROIDBETA),发条机器人(ANDROID10)。后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于ANDROID15发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序纸杯蛋糕(ANDROID15),甜甜圈(ANDROID16),松饼(ANDROID20/21),冻酸奶(ANDROID22),姜饼(ANDROID23),蜂巢(ANDROID30),冰激凌三明治(ANDROID40),果冻豆(JELLYBEAN,ANDROID41和ANDROID42)。ANDROID的系统架构和其操作系统一样,采用了分层的架构。如图11所示。图11ANDROID架构图从架构图看,ANDROID分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和LINUX内核层。在优势方面,ANDROID平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。ANDROID系统最初由安迪鲁宾(ANDYRUBIN)开发制作,最初开发这个系统的目的是利用其创建一个能够与PC联网的“智能相机”生态圈。但是后来,智能手机市场开始爆炸性增长,ANDROID被改造为一款面向手机的操作系统。于2005年8月被美国科技企业GOOGLE收购。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发改良ANDROID系统,随后,GOOGLE以APACHE免费开源许可证的授权方式,发布了ANDROID的源代码。让生产商推出搭载ANDROID的智能手机,ANDROID操作系统后来更逐渐拓展到平板电脑及其他领域上。目前ANDROID平台的应用软件已经很多,涉及到生活、娱乐、系统管理、办公等等一系列领域,但是作为个人事务系统本还是比较少的,如果用户在生活过程中可以随时随地用手机对自己生活做事务提醒的话,将是一件非常快乐的事情。13本文研究内容本文从分析目前大多数手机个人事务管理软件入手,讨论了可视化手机个人事务管理的主要技术和方法,开发工作分为需求分析、概要设计和平台实现三个部分,给出了基于ANDROID开发的可视化手机个人事务管理软件的技术实现过程;最后提出了总结和展望。具体工作如下(1)深入分析当前市场上的各类手机个人事务管理软件,发现普遍存在的功能缺陷,为可视化手机个人事务管理的设计提供更多的功能需求。(2)比较分析了目前常用的移动应用解决方案的优点及不足,对新一代移动应用平台ANDROID作了深入研究,分析了基于该平台开发可视化手机个人事务管理软件技术上的可行性;在需求分析阶段,主要将收集到的功能上的需求进行了分类归纳。(3)完成了基于ANDROID的可视化手机个人事务管理的设计与实现,针对移动开发的特点对不同界面之间的通信、嵌入式数据库等关键问题分别进行了讨论。给出了程序部分关键代码,并在模拟环境下验证了该可视化手机个人事务管理软件的可用性。14论文框架介绍本文详细介绍了基于ANDROID手机平台的个人事务系统的设计实现的全过程。从开始到程序设计的实现,将在一下的几章中予以介绍第1章绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,对开发本系统的可行性分析还有对论文各章内容的简要介绍。第2章系统理论知识,对涉及到的理论知识和用到的开发工具做相关阐述。第3章个人日程管理系统分析,主要介绍了本系统需要实现的功能模块和本系统的数据库设计、页面的详细设计等。第4章个人日程管理系统设计,主要介绍了本系统的整个设计过程、设计思路以及设计中应该注意的问题。第5章个人日程管理系统实现,主要介绍了本设计的实现环境和实现,详细分析了系统各个核心模块的实现过程,包括日历模块、事项事务录和提醒模块。第6章系统测试与分析,详细介绍了软件测试在整个软件开发环节的重要性和必要性,也分析了软件测试的各种目的,周给出了本系统的测试过程与结论最后总结、致谢、参考文献。2系统理论背景21开发工具及环境简介211ECLIPSECLASSIC372ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTKIT,JDK)。ECLIPSE是著名的跨平台的自由集成开发环境(IDE)。最初主要用来JAVA语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C和PYTHON的开发工具。ECLIPSE的本身只是一个框架平台,但是众多插件的支持使得ECLIPSE拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以ECLIPSE为框架开发自己的IDE。ECLIPSE最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的ECLIPSE代码基础,包括PLATFORM、JDT和PDE。目前由IBM牵头,围绕着ECLIPSE项目已经发展成为了一个庞大的ECLIPSE联盟,有150多家软件公司参与到ECLIPSE项目中,其中包括BORLAND、RATIONALSOFTWARE、REDHAT及SYBASE等。ECLIPSE是一个开发源码项目,它其实是VISUALAGEFORJAVA的替代品,其界面跟先前的VISUALAGEFORJAVA差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括ORACLE在内的许多大公司也纷纷加入了该项目,并宣称ECLIPSE将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。ECLIPSE是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由ECLIPSE项目、ECLIPSE工具项目和ECLIPSE技术项目三个项目组成,具体包括四个部分组成ECLIPSEPLATFORM、JDT、CDT和PDE。JDT支持JAVA开发、CDT支持C开发、PDE用来支持插件开发,ECLIPSEPLATFORM则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。ECLIPSEPLATFORM允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。212SQLITE3SQLITE3是一款轻型的数据库,是遵守ACID的关联式数据库管理系统。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLITE第一个ALPHA版本诞生于2000年5月。至今已经有10个年头,SQLITE也迎来了一个版本SQLITE3已经发布。SQLITE是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是DRICHARDHIPP建立的公有领域项目。不像常见的客户服务器范例,SQLITE引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库定义、表、索引和数据本身都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,它将为那些以前无法提供用作持久数据的后端的数据库的应用程序提供了高效的性能。现在,没有必要使用文本文件来实现持久存储。SQLITE之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的SQL。这一点对于对于小型设备空间的应用程序来说尤其重要。213ADT目前ANDROID开发所用的开发工具是ECLIPSE,在ECLIPSE编译IDE环境中,安装ADT,为ANDROID开发提供开发工具的升级或者变更,简单理解为在ECLIPSE下开发工具的升级下载工具。一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在ANDROID中,它为开发者提供了库文件以及其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用ECLIPSE作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。214ANDROIDSDKSDK(SOFTWAREDEVELOPMENTKIT)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,ANDROIDSDK指的既是ANDROID专属的软件开发工具包。215SDK安装下载好ANDROIDSDK后,开始安装,ANDROIDSDK采用了JAVA语言,所以需要先安装JDK50及以上版本。直接下载JDK安装文件安装更为方便。ANDROIDSDK不用安装,下载后,直接解压即可,将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。使用ECLIPSE进行ANDROID应用开发需要给ECLIPSE装ADT插件,这样ECLIPSE就可以和ANDROIDSDK建立连接,可以在ECLIPSE中启动ANDROID模拟器进行程序调试等ADT插件安装这里不再累赘,插件的安装URL为也可以下载ADT的压缩包安装安装完插件后,需要做一些简单的配置1、在ECLIPSE中,选择WINDOWPREFERENCE;2、从左侧的菜单中,选择ANDROID项;3、设置SDKLOCATION,点BROWSE选择SDK的安装根目录;4、OK,完成。22ANDROID系统ANDROID一词的本义指“机器人”。同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件组成。号称是首个为移动终端打造的真正开放和完整的移动软件。ANDROID是基于LINUX内核的软件平台和操作系统。早期由GOOGLE开发,后由开放手机联盟OPENHANDSETALLIANCE开发。它采用了软件堆层SOFTWARESTACK,又名以软件叠层的架构,主要分为三部分。低层以LINUX内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。另外为了推广此技术,GOOGLE和其它几十个手机公司建立了开放手机联盟。ANDROID在未公开之前常被传闻为GOOGLE电话或GPHONE。大多传闻认为GOOGLE开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,GOOGLE开始发表自家品牌手机电话的NEXUSONE,目前最新SDK版本为ANDROID444。221ANDROIDFEATURES特性ANDROID系统有如下的几大特性应用程序框架,支持组件的重用与替换DALVIK虚拟机,专门为移动设备做了优化内部集成浏览器,该浏览器基于开源的WEBKIT引擎优化的图形库,包括2D和3D图形库;3D图形库基于OPENGLESSQLITE,用作结构化的数据存储多媒体支持,包括常见的音频、视频和静态印象文件格式;如MPEG4、MP3、AAC、AMR、JPG、PNGGSM电话,依赖于硬件蓝牙BLUETOOTH、EDGE、3GANDWIFI,依赖于硬件照相机、GPS、指南针和加速度计,依赖于硬件丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表;222ANDROID系统的四大组件在ANDROID系统中,为我们提供了四大基本组件;每个组件是一个视图。但是有些是可见的,有些是不可见的视图。像ACTIVITY、CONTENTPROVIDER是可见的视图SERVICE和BROADCASTRECEIVER是不可见的;它们只在系统的后台运行。下面分别介绍四大组件(1)ACTIVITY简介在ANDROID系统中ACTIVITY提供可视化的用户界面,一个ANDROID应用通常由多个ACTIVITY组成。多个ACTIVITY组成了ACTIVITY栈STACK,当前活动的ACTIVITY处于栈顶。ACTIVITY有自己的生命周期,由ANDROID系统来控制。ACTIVITY是ANDROID组件中最基本也是最为常见用的四大组件(ACTIVITY,SERVICE服务,CONTENTPROVIDER内容提供者,BROADCASTRECEIVER广播接收器)之一。ACTIVITY是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。ACTIVITY中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过SETCONTENTVIEWVIEW来显示指定控件。在一个ANDROID应用中,一个ACTIVITY通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。ACTIVITY之间通过INTENT进行通信。(2)SERVICE简介顾名思义SERVICE就是运行在后台的一种服务程序,一般很少和用户交互。因此没有可视化界面。定义一个SERVICE类比较简单,只要继承SERVICE类,实现其生命周期中的方法就可以了。一个定义好的SERVICE必须在ANDROIDMANIFESTXML配置文件注册。通过元素声明才能使用。SERVICE有自己的生命周期,我们可以调用STARTSERVICE启动一个SERVICE或者BINDSERVICE方法来绑定一个存在的SERVICE。它跟ACTIVITY的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。SERVICE可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他ACTIVITY这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的。SERVICE的启动有两种方式CONTEXTSTARTSERVICE和CONTEXTBINDSERVICECONTEXTSTARTSERVICE启动流程CONTEXTSTARTSERVICEONCREATEONSTARTSERVICERUNNINGCONTEXTSTOPSERVICEONDESTROYSERVICESTOPSERVICE的生命周期并不像ACTIVITY那么复杂,它只继承了ONCREATE、ONSTART、ONDESTROY三个方法当我们第一次启动SERVICE时,先后调用了ONCREATE、ONSTART这两个方法;当停止SERVICE时,则执行ONDESTROY方法。这里需要注意的是,如果SERVICE已经启动了,当我们再次启动SERVICE时,不会在执行ONCREATE方法,而是直接执行ONSTART方法。它可以通过SERVICESTOPSELF方法或者SERVICESTOPSELFRESULT方法来停止自己,只要调用一次STOPSERVICE方法便可以停止服务,无论调用了多少次的启动服务方法。(3)BROADCASTRECEIVER简介BROADCASTRECEIVER顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的。例如某个按钮的单击事件。而广播事件处理机制是系统级别的。到目前为止我们可以使用INTENT来启动一个程序组件,我们还可以通过使用SENDBROADCAST方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现BROADCASTRECEIVER来监听和响应这些广播的INTENT;普通广播(NORMALBROADCAST)普通广播对于多个接收者来说是完全异步的,通常每个接收者都无需等待即可以接收到广播,接收者相互之间不会有影响。对于这种广播,接收者无法终止广播,即无法阻止其他接收者的接收动作。有序广播(ORDEREDBROADCAST)有序广播比较特殊,它每次只发送到优先级较高的接收者那里,然后由优先级高的接受者再传播到优先级低的接收者那里,优先级高的接收者有能力终止这个广播。(4)CONTENTPROVIDER简介CONTENTPROVIDER用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。ANDROID为常用的数据类型;如音视频、图片和联系方式等提供了大量的CONTENTPROVIDER。它们被定义在ANDROIDPROVIDER包下面。通过这样定义好CONTENTPROVIDER,我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定CONTENTPROVIDER共享我们的数据,方便用户的访问。ANDROID平台是开放,采用LINUX内核则是ANDROID平台开放性的基础。ANDROID平台中的操作系统采用了LINUX26版的内核,它包括了显示驱动、摄像头驱动、FLASH内存驱动、BINDER(IPC)驱动、键盘驱动、WIFI驱动、AUDIO驱动以及电源管理部分。LINUX内核层为我们在软件层和硬件层建立了一个抽象层,使得应用程序开发人员无需关心硬件细节。对于手机的开发商而言,如果想要ANDROID平台运行到自己的硬件平台上,就必须通过对LINUX层进行修改,通常要做的工作就是为自己的硬件便携驱动程序。总的一句内容提供器是应用程序之间共享数据的接口,ANDROID系统将这种机制应用到方方面面。比如联系人提供器专为不同应用程序提供联系人数据;设置提供器专为不同应用程序提供系统配置信息,包括内置的设置应用程序等。3需求分析一个好的手机应用没事要有多么炫酷的界面,多么复杂的功能,而是在于它能否满足广大用户的需要。只有做到用户所想要的,才是一个足够好的手机应用。因此,需求分析对于一个应用来说是重中之重。了解用户才能做好软件。本章节将对日程管理的需求做一个完整的分析。31需求分析311功能需求根据用户的实际要求,日程管理应实现以下功能日程管理界面友好,方便使用,具有基本的日程添加和修改,删除等功能,能够查阅日历。整个程序基于ANDROID技术开发,除总体模块外主要分为日程管理界面的查看,日程的添加和修改删除,日历的查看这三大部分。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。同时提供了较为直观的键盘图形用户界面。312质量要求本次毕业设计的质量要求如表31所示。表31日程管理系统质量要求主要质量属性详细要求正确性软件的能够满足用户的日程管理需求。可靠性给出用户正确的时间区间健壮性准确的设计和测试,减少BUG的出现,降低出现意外的可能。兼容性在不同的设备和不同版本的ANDROID系统上运行同样良好。313界面需求界面是一个软件的门面,一个美观、舒适的界面会让用户感觉自然。本系统要做到UI界面美观大方,各种操作的图标简单易懂,各种操作方便操作,符合用户的使用体验。32环境要求操作系统WINDOW7开发环境ECLIPSE85开发平台JDK16;ANDROID40智能手机33本章小结本章主要对ANDROID日程管理的需求做了一个介绍,需求分析是在这个软件开发流程中唯一一个面向用户的环节,但也是非常重要的一个环节。没有好的需求分析,后面工作做的再好也是徒劳。我们做每个系统最终是让用户使用,如果没有应对用户的需求,整个项目就等于零。因此要有一个好的需求分析。做好经常和用户沟通。其次需求也是多方面的,有用户为主的功能需求、可用性需求,还有开发的开发环境需求。4个人日程管理系统分析41概述系统分析是在总体规划的指导下,对某个或若干个子系统进行深入仔细地调查研究,确定新系统逻辑功能的过程。这一阶段的主要任务是由系统分析员了解每个业务流程,工作流程,广大用户的需求,运用系统开发理论、开发方法和开发技术设计出一个计算机化的信息系统。411系统分析的原则在系统分析中存在很多困难,为了克服困难,做好分析工作,在进行系统分析时应遵循系统分析的原则,这样才能保证分析工作能够顺利进行,系统分析的原则有1逻辑设计与物理设计分开的原则2面向用户的原则3结构化分析的原则通过实际调查并与相关用户交流后,分析基于ANDROID个人日程管理系统的具体的要求,确定本系统的逻辑功能,以满足用户的各项要求,完成相应的各项功能,提高软件的实用水平。在近期目标完成后,该系统应该有很强的扩充性,便于在此基础上进行扩充式开发,为以后的发展及扩充打好基础。412系统分析的方法该系统采用以抽象和分解为手段,并且采用结构化分析方法进行系统分析,根据实际调查研究,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,建立新系统的逻辑模型,这个逻辑模型将尽可能避免使用计算机术语,让其尽可能的简单化、通俗化,便于设计者和浏览者的沟通与交流经验。结构化分析方法的基本思想是该系统采用结构化分析方法,以抽象和分解为手段,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,从而达到易于理解的目的。42系统可行性分析该阶段通过对系统总目标的初步调研与分析,提出可行性方案并进行论证。在此,主要从技术可行性、经济可行性和操作可行性三方面进行分析。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是对进行了一次较大压缩简化后的系统进行分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性,技术上的可行性,操作上的可行性和法律上的可行性。(1)经济可行性目标系统开发经济需求的比较低,加上具有成熟的ANDROID生态环境,所以在软硬件的支出上十分有限。而且,目标系统并是十分的复杂,开发的周期较短,人员经济支出有限。当系统开发成后,通过测试和、试运行和实际应用后,将很大程度上提高日程管理软件的科学性和高效性,在为个人带来便利的同时,也为系统的进一步推广、创新创造了条件,这带来的经济回报将远超过支出,并且最重要的一点是通过该系统的开发,可以使我们进一步理解软件工程思想和软件开发流程,为从事软件开发工作打下很好的基础,从长远利益来考虑,本课题的设计开发还是具有相当大的经济可行性的。(2)技术可行性本系统使用ANDROID和SQLITE技术进行开发,ANDROID作为谷歌公司已经比较成熟的产品,现在有越来越多的企业及技术人员选择它作为开发平台。因此,在技术上ANDROID是完全可以胜任这个平台的开发。本系统采用SQLITE作为后台数据库。SQLITE实现了多数的SQL92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。多个进程或线程可以同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入;否则会写入失败并得到一个错误信息(或者会自动重试一段时间,而这重试时间的长短是可以设置的)。程序设计者还提供了一个叫做SQLITE3的独立程序用来查询和管理SQLITE数据库文件。SQLITE的用户可以把这个程序当作如何写SQLITE应用程序的示例。(3)法律可行性由于本系统是在相关法律法规下实施完成的,所以不存在任何法律问题,在法律上是完全可行的。综合考虑经济、技术、操作和法律等方面的因素,该基于ANDROID的个人日程管理系统可以立即开始进行。43系统功能模块需求个人日程管理系统作为手机的基础功能之一,我们每天都要频繁使用。它不仅仅是一个让我们知道日期的工具。能做事务提醒的日历软件,能极大的方便我们的日常生活。我想做的就是一款能在ANDROID平台上运行的加入了事务提醒功能的手机软件。它包括如下功能1日历查找功能,可以查看详细的日历信息、上个月、下个月信息。2事务消息功能在事务功能内能进行文字编辑,并保存到相应日期位置。3事务提醒开启/关闭功能用户可以任意开启或者停止一个事务提醒设置。4闹钟提醒功能在设定时间响铃提醒,并提供贪睡功能。5个人日程管理系统设计51系统设计原则系统设计是确定系统如何建立的过程。良好的软件系统来源于良好的系统设计。系统设计应该提供完整、准确、规范的系统设计文档。在系统设计中,首先应该注意的是设计的统一和准确。设计统一即将系统视为一个有机整体,要求设计具有统一的设计规范和标准。设计准确即设计描述应该力求避免模糊或二义性。此外,在进行系统设计过程中,还应该遵循的主要原则如下。1、适用性原则系统总的目的是保证系统功能目标的实现,即满足客户的需求,是所有应用软件最基本的原则。在满足系统需求的前提下,应该从系统用户角度考虑,使设计的系统操作简单化,易用化。应该以降低系统的成本为目标,避免一味追求技术上的先进而不考察应用效益。没有市场和应用前景的软件项目开发是失败的。2、可靠性安全性原则可靠性和安全性是系统重要的需求之一,也是系统设计质量的重要指标。网络科研管理系统工作在网络环境中,对于现在大量存在于网络的病毒、黑客攻击等安全威胁,应该具有一定的防御能力,对于网络带宽和访问量等外界运行环境的变化,应该具有较强的适应能力。只有安全可靠的系统才能发挥其应有的功能。3、可扩展性原则系统的设计应该提供可扩展能力,以满足未来科研工作需求的发展和变化。主要可以采用分布式设计、系统结构模块化设计等技术手段,把系统设计为多个功能相对独立的模块,降低系统的耦合度,提高系统的可扩展性。希望通过ANDROID技术和SQLITE数据库的支持,设计出一个基于ANDROID的个人日程管理软件,设计过程中希望能够从效能、逻辑和稳定性等多方面进行综合考虑,力求最后产品界面能够一目了然,让用户容易上手并且不容易出错。52系统流程设计本系统完成一个个人日程管理系统的设计与实现工作,用户一进入系统后看到的是一个日程列表,用户可以查看日程信息,也可以点击一个日程进入日程事务界面,该界面用户可以修改和删除所有的日程事务记录。用户可以添加一个日程事项,添加后的日程会自动被加入到我的日程管理中,到此日程事务添加完成,等待到了设置的时刻系统提醒。图51是日程管理系统的流程图。图51日程管理系统流程图53系统功能模块设计本系统采用SQLITE数据库来实现数据的持久性管理,实现了日历功能,日程管理的添加、修改、停用和删除、闹钟提醒等等一系列功能,系统的模块架构设计如图52所示。图52系统功能模块图54数据库设计本系统用到的数据库为ANDROID自带的SQLITE数据库,系统采用一个数据表来记录信息,即事务事项信息表。(1)ER图概述ER图也即实体联系图ENTITYRELATIONSHIPDIAGRAM,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。ER方法是“实体联系方法”(ENTITYRELATIONSHIPAPPROACH)的简称。它是描述现实世界概念结构模型的有效方法。构成ER图的基本要素是实体型、属性和联系,其表示方法为实体型ENTITY具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体在ER图中用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。如果是弱实体的话,在矩形外面再套实线矩形。属性ATTRIBUTE实体所具有的某一特性,一个实体可由若干个属性来刻画。在ER图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,在椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。联系RELATIONSHIP联系也称关系,信息世界中反映实体内部或实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在ER图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(11,1N或MN)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形。作ER图的步骤1确定所有的实体集合2选择实体集应包含的属性3确定实体集之间的联系4确定实体集的关键字,用下划线在属性上表明关键字的属性组合确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明是1或N多)来表示联系的类型,本系统数据库ER图,如下图53所示。图53系统实体ER图本系统只采用一个数据表,来记录用户事项的日程信息,该表的结果如表51所示。表51ALARMS日程信息表序号列名数据类型主键说明1_IDINT是2HOURINT小时3MINUTESINT分钟4NOTICEDATEVARCHAR提醒日期5ALARMTIME提醒时间6ENABLEDINT是否启用7VIBRATEINT是否震动提示8MESSAGEVARCHAR事项文本6个人日程管理系统实现本章介绍本系统的各个模块的设计和实现。首先在ECLIPSE中配置好ADT和ANDROIDSDK等开发环境,然后新建一个ANDROID项目,项目名为LIFEMEMOPRO,然后在ANDROID项目中的ANDROIDMANIFESTXML文件中配置本软件需要使用的权限。61日程安排界面实现在该界面中,用户可以看到所有的事务事项信息。系统通过LISTVIEW组件来显示所有的事务事项性信息,每一个ITEM都包括是否启用按钮、提醒时间、循环周期和提醒事项。该界面的顶端是通过RELATIVELAYOUT、BUTTON和TEXTVIEW这三个常用的组件来实现的,RELATIVELAYOUT用来做布局,BUTTON定义了添加事务录的入口按钮,而TEXTVIEW则指定了本系统的标题。用户可以通过左边的启动按钮来启动或者停止一个提醒事项,如果事项被设置成关闭提醒后,即使时间到了系统也是不会提醒的,直到用户启动该项事务提醒为止。左边的启动选项是通过一个IMAGEVIEW和CHECKBOX组件来实现的。通过指定IMAGEVIEW的SRC属性来为图片设置资源,而CHECKBOX则是通过设置其BACKGROUND属性来控制其显示的图片,从而标识当前是否为勾选状态。ITEM的右边显示了提醒的时刻和提醒事项。提醒事项名称为用户在添加闹钟的时候输入的。用户可以单击一个日程事项来打开上下文菜单,菜单中包括停止提醒、修改和取消提醒三个选项。同时,用户可以通过该界面左上角的“添加”按钮来打开日程提醒添加界面。具体的实现效果如图61所示。图61日程消息界面62日历功能实现日历界面显示了当前月的日历信息,包括月份、日期和对应的周信息。用户可以同“上一月”和“下一月”按钮来控制日历的显示信息。例如点击“上一月”按钮日历可以返回到上一月的日期。该界面采用一张背景图片来标识各个日期单元格和周信息,并通过继承至IMAGEVIEW来实现日历的绘制。日历的每个单元格都是采用RECT来绘制的。在JAVA中RECT表示了一个矩形,我们可以将其结合PAINT来绘制一个单元格并且在单元格中绘制文本。绘制文本的工作是交给PAINT来完成的。绘制文本时,我们通过PAINT对象的SETTEXTSIZE方法来设置文本的大小,并通过其SETCOLOR和SETFAKEBOLDTEXT方法分别来指定字体的颜色和是否为粗体。另外,当用户在屏幕上点击一个日期后,我们通过CALENDARVIEW对象的相关方法来或者用户点击的是哪个日期,并在屏幕的下方显示对应的日期。具体的实现效果如图62所示。图62日期查找功能实现63添加事务模块实现在该界面里涉及到了ANDROID中的一种重要ACTIVITY,即PREFERENCEACTIVITY,该类型主要用来做设置界面使用。本界面通过继承至PREFERENCEACTIVITY来实现各个选项的填写和输入操作,同时,涉及到的ANDROID组件包括CHECKBOX和BUTTON等等。在该界面中,用户可以添加新的事务提醒信息。添加时,用户需要选择时间、提醒循环类型;同时用户可以选择提醒的铃声和选择是否震动手机提醒;最后用户可以输入提醒事项的名称。当然这个名称也可以不输入。当用户输入后该事项名称将会被显示在我的事务记录里。用户可以通过最上方的“启用日程管理”复选框来开启或者关闭这个提醒事项。当各项输入完毕后,用户可以通过左下角的“完成”按钮来提交数据。具体的实现效果如图63所示。图63添加日程界面64闹钟提醒功能实现当手机时间到了闹钟设置的时间时,系统自动会启动闹钟来提醒,提醒是系统会根据设置来判断是否需要震动手机,也会根据用户设置的不同提醒声音播放不同的提醒声,如果用户添加事项事务的时候没有选择对应的提醒铃声,则系统会播放默认的提醒声。铃声提醒是通过在系统注册一个RECEIVER来实现的,该RECEIVER继承至BROADCASTRECEIVER并重写了其ONRECEIVE方法,在该方法中我们可以处理业务逻辑,例如铃声提醒。闹钟提示截图如下64所示。图64提醒界面同时该RECEIVER需要在ANDROIDMANIFESTXML全局文件中注册7系统测试与分析71软件测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括1认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;2以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;3测试工作枯燥无味,不能引起人们的兴趣;4测试工作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030投影仪行业市场深度调研及发展趋势与投资战略研究报告
- 2025-2030手动喷雾器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030工程承包项目可行性研究咨询报告
- 2025-2030工业硅砂行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030家纺行业投资机会及风险投资运作模式研究报告
- 生物技术在农业中的精准应用-全面剖析
- 道路工程大数据分析方法-全面剖析
- 错误传播与影响分析-全面剖析
- 科技与积极心理学的交叉研究-全面剖析
- 潜水冲浪技术发展趋势-第1篇-全面剖析
- 万城商业地产公司简介
- 快递驿站和快递公司保证金合同范本
- 校园茶餐厅设计说明
- 保密知识考试题库带答案(培优)
- 物流系统仿真技术智慧树知到期末考试答案章节答案2024年山东交通学院
- 2019大学生数学建模C题论文-获奖论文范例-问题C-机场的出租车问题
- 化工建设综合项目审批作业流程图
- 2024年4月自考00157管理会计(一)试题
- 青岛版科学 二年级《天气与动植物》
- 2023年4月自考04851产品设计程序与方法试题及答案含解析
- 生产主管转正述职报告
评论
0/150
提交评论