2024年2月11日发(作者:辜惜蕊)
第一章 绪论
1.1 工程研究背景
经过多年的开展,随着第三代网络的使用及四代网络的即将来了呢,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的效劳将会有很大的开展空间。Google与包括HTC、摩托罗拉、三星、联想等在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月退出了一份专为移动设备设计的软件平台——Android OS。
Android 是一套真正意义上的移动性设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化额Java程序的运行过程。Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等效劳,同时也是 硬件的连接层。
Abdroid平台的开放性等特点既能促进技术〔包括平台本身〕的创新,又有助于降低开发本钱,还可以是运营商能非常方便地制定特色化的产品,因此,它具有很大的市场开展潜力。
1.2 工程研究的目的及意义
随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的效劳将会有很大的开展空间。在Google和Android 联盟的共同推动下,Android在众多 操作系统中脱颖而出,受到广阔消费者的欢送。
通讯录作为 的根本功能之一,每天我们都在频繁地使用着。根据 功能的不断加强与完善, 通讯录对于人们的意义,已经不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向开展。通讯录从无到有,从英文到中文,经过了十几年的开展历程,今后的开展趋势就是从通讯录开展为名片夹,也就是一个人名下,可以储存座机、 、单位、地址、电子邮箱等内容,这种名片夹在 薄的根底上,大大丰富了内容,同时结构也发生了革命性的的变化,而且随着 的开展,相信更优秀的通讯录会越来越受到社会各层认识的喜爱。
1.3系统主要内容与实现方式
仅供学习参考
1.3.1系统主要实现内容
通过对android技术的相关研究,了解Android源码实现原理以及过程,从而设计出一款能够使用的 通讯录。
这款通讯录实现的相关内容如下:
1、简介、使用的操作界面。
2、显示所有联系人的列表
3、添加联系人
4、删除联系人
5、修改编组联系人
6、呼叫联系人
7、发送短信至联系人
1.3.2安卓系统开发的方法
Android现在开展迅速,运营商、 商、平板电脑厂商都在推广,甚至加点厂商也开始涉足,对Android程序开发者的需求激增,人才的培养需要一个过程,大量的企业都在寻找Android软件开发的其他方式。安卓系统开发的方法,简单来说分为四层:
第一层:以Inventor为开标的绘图工具,是Google退出的简单开发工具,主要是针对初级玩家的工具,无法实现业务逻辑,运行效率也比拟低。
第二层:以Rexsee为代表的无线中间件,对技术门槛要求很低,会用HTML和JS的技术员就可以方便使用,在技术要求大弧度降低的同时,根底功能的封装也是一个大亮点,这些中间已经把所有应用需要的根底功能封装好,直接使用JS去调用就可以了,不再需要写代码。
第三层:基于Java的jdk,目前绝大局部应用都是用这种方式开发。
第四层:基于C++的NDK,很多大型游戏时一这种方法开发的,相对于JDK,这种方法的难度相对较高,目前使用的比拟少。
1.3.3 系统开发平台
由于该Android铜须路是一个基于Java语言开发软件,所以悬着了Eclipse作为开发平台,作为插件,它能够安装Android SDK,从而可以安装使用Android虚拟机,是的城西得以开发,亦更为方便。
仅供学习参考
本通讯录系统就是在Eclipse+Android平台环境下编写设计而成的。
第二章 系统分析
2.1系统可行性分析
2.1.1技术可行性
Java是有Sun Microsystems公司于1995年5月推出的Java程序设计语言〔以下简称Java语言〕和Java平台的总称。Java虚拟机〔Java Virtual
Machine〕和Java应用程序接口〔Application Programming Interface、简称API〕构成。Java应用编程接口为Java应用提供了一个独立操作系统的标准接口,课分为根本局部和扩展局部。在硬件或操作系统平台上安装一个Java平台之后,Java应用编程就可以运行。现在Java平添已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统重运行。
本软件用的是Java开发语言,在eclipse集成开发环境下,调试容易。当前的计算机硬件配置或者现有安卓 的硬件配置也完全能够满足开发的需求,因此技术上市绝对可行的。
2.1.2 经济可行性
开发该系统所需的相关资料可以通过以存在的相关系统进行调查采集,所需的软件系统、硬件平台等都易于获得,而且不需要Android平台机器,用虚拟器即可实现开发研究,开发本钱第,容易实现,从经济角度来看,该系统可行。
2.1.3 操作可行性
不管是安卓平台的 ,还是计算机,其本钱的下降,导致计算机,安卓
购置本钱的降低,这塔哦系统是利用自己的计算机,且使用安卓虚拟器,并且在本地安装JDK、Android跟Eclipse作为软件开发平台,使开发出来的系统有友好的用户界面、操作简单,因此在操作上是可行的。
2.2 需求分析
该通讯录软件是一种主要用来记录联系人的基于安卓平台的软件,可以运行在安卓平台虚拟器或者运行在安卓平台的手持设备上。
2.2.1Android通讯录的使用意义
根据 功能使用调查显示,近10成的消费者都会使用 通讯录功能。随着 通讯录功能的不断加强与完善, 通讯录对于人们的意义,已不仅仅像记事簿一样显示 号码,而是向着人性化、个性化的方向开展。通讯录从无到有,从英文到中文,经过了十几年的开展历程,今后的开展趋势就是从通讯录开展为名片夹,也就是在一个人名下,可以收集号码、QQ、地址、电子邮箱、备注等内容。
仅供学习参考
该系统针对的主要用户是A你的肉的 用户,Android 通信录管理系统包括以下主要内容:添加联系人、删除联系人、编辑联系人、查找联系人、打 、发短息。要设计一个良好的 通讯录,就必须首先明确该应用环境对系统的要求。Android 通讯录应用背景:方便用户快捷通讯。
2.2.2 外部事件
图2-1描述了通讯录与外部环境的交互。在这个系统重,通过对系统的分析,可以识别出参与者、用户。对于用户而言,通讯录上按钮时用户向系统输入的操作请求的输入设备,GUI是用于向用户输出信息的输出设备
按钮
用户
GUI
SQLitem数据库
系统
第三章 系统概要设计
3.1 系统总体设计
Android 通讯管理软件主要功能模块包括:联系人查看、联系人编辑、联系人添加、联系人删除、呼叫、发送短信,如图3-1所示
联系人添加
仅供学习参考
联系人查看
联系人编辑
联系人删除
呼叫联系人
发送短信
联系人搜索
联系人列表
Android 通讯管理软件
图3-1 功能结构图
3.2 处理流程设计
3.2.1业务流程图
用户进入 通讯管理软件后,会看到联系人列表界面。联系人列表界面主菜单中包括添加联系人、搜索联系人、关于及查看系统版本号、退出菜单项。点击添加联系人,那么进入联系人添加界面,添加成功后返回列表界面。点击搜索菜单,那么进入联系人搜索界面,输入联系人的全名或一个字,即可查找相关联系人,点击联系人会进入联系人查看界面,可以对联系人进行编辑、删除、拨打 、发送短信。
退出系统
图2 Android 通讯管理软件业务流程图
编辑联系人
删除联系人
呼叫联系人
发送短信
联系人 添加联系人 搜索联系人
联系人列表 Menu菜单
通讯管理软件
用户
仅供学习参考
3.2.2数据增加流程图
添加联系人时,数据由用户输入,点击确定按钮,判断数据是否合法〔及用户名是否为空〕,合法那么插入到数据库;不合法,提示错误信息,让用户重新输入。流程如图3所示:
图3 数据增加流程图
插入数据库
是否合法
添加数据
添加联系人界面
3.2.3数据修改流程图
编辑联系人时,点击编辑联系人菜单,输入修改后的数据,点击确定按钮,判断数据是否合法,合法,那么更新数据库;不合法,那么返回错误信息。流程如图4所示
图4 数据修改流程图
仅供学习参考
是否合法
修改数据
修改联系人界面
更新数据库
3.2.4数据删除流程图
当用户选定一个联系人时,点击删除联系人菜单,提示用户是否删除,点击确定按钮,那么从数据库中删除此条记录。数据删除流程如图5所示:
图5 数据删除流程图
更新数据库
是否删除
删除联系人
查看联系人界面
3.3 数据库设计
3.3.1 SQLite数据库简介
SQLite,是一款轻型的数据可,是遵守ACID的关联数据库管理系统。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占据资源非常低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等的操作系统,同时能够跟很多程序语言相结合,比方Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库端丽系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月,至今已经有10个年头,SQLite也迎来了一个版本SQLite3已经发布。
本系统采用的是Android系统自带的SQLite轻型数据库、因此占用资源非常小。
3.3.2 SQLite特点
1、 轻量级
SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和效劳器。使用SQLite一般只需要带上它的动态库,就是分享它的全部功能。而且动态库的尺寸也相当小。
仅供学习参考
2、 独立性
SQLite数据库的核心引擎不依赖第三方软件,使用它也不需要“安装〞。所以在部署使用能省去不少麻烦。
3、 隔离性
SQLite数据库支持所有的信息〔比方表、视图、触发器等〕都包含在一个文件内,方便管理和维护。
4、 跨平台性
SQLite数据库支持大局部操作系统,除了我们在电脑上使用的操作系统之外。很多 操作系统同样可以运行,比方Android、Windows Phone、Symbin、Plam、IOS等。
5、多语言接口
SQLite数据库支持很多编译语言接口,比方C/C++、Java等,得到很多开发者的喜爱。
6、 平安性
SQLite数据库通过数据库级的独占性和共享所实现独立事务处理。这就意味着多个进程可以同一时间从同一个数据库读取数据,在只有一个可以写入数据。在某个进程或线程想数据库执行写入操作之前,必须取得独立锁后,其他的读或写操作将不会在发生。
3.3.3 数据库表结构
首先创立数据库,在数据库中创立表用来存储联系人数据,其中包括联系人、 号、QQ、地址等联系方式。
第四章 系统详细设计
4.1联系人浏览模块
进入 通讯录管理软件后,看到的寄一个界面是联系人列表界面。该列表是有ListView控件生成的。翻开数据库,查看数据库中所有的联系人,并把联系人的和 号码这两项填充到ListView的adapter种每一行显示一个联系人的和 号码,联系人的显示顺序是根据插入数据库的顺序显示的。点击某个联系人会进入查看联系人界面,可以查看联系人的详细信息,对联系人进行编辑、删除。拨打 发送短信等。
点击menu男牛市,就会显示主菜单,其中包括:添加、查看、关于和退出。
〔1〕点击添加菜单,会进入添加联系人界面,可以输入联系人相关信息,完成联系人添加功能。
仅供学习参考
〔2〕点击查找菜单,会进入联系人查找界面,进行联系人查找,搜索想要找的联系人。
4.2查看联系人模块
在联系人浏览界面点击某个联系人,那么会跳转到该界面。该界面使用TextView把从数据库中调出的联系人的详细信息显示出来。在该Activity中添加了五项菜单,其中包括:返回列表、删除联系人、编辑联系人、呼叫联系人、发送短信给联系人、点击返回列表菜单项,会回到联系人浏览界面。
4.3编辑联系人模块
编辑联系人界面使用EditView空间显示并修改联系人的详细信息。联系人的所有信息,处于可编辑状态, 号的EditView设定为只能输入数字。修改完信息后点击确定按钮,触发确定按钮点击事件,从而对数据库中该凉席人的仅供学习参考
信息进行更新,然后返回联系人浏览界面。
4.4查找联系人模块
这里采用的查找方法是SQL模糊查询,可以只输入联系人中的一局部,在SQL语句中联系人的前后添加“%〞。即可查找到所有包含该局部的联系人,并在ListView中显示出来所有的联系人的和 号码。
第五章 系统测试与调试
5.1测试目的
仅供学习参考
程序测试就是在程序投入运行前,对程序的需求分析、设计规划说明和编码的最终复审,是保证程序质量的关键步骤,如果要给程序测试下定义,就可以将,程序测试时事为了发现错误而执行程序的过程。
测试的目的就是在软件揉入生存性运行之前,尽可能多的发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可能防止地会产生错误。编程人员liquid在每个剪短结束之前通过严格的而技术复查,尽可能早的发现并纠正错误。
5.2测试原那么
一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
二,程序员应该防止检查自己的程序,软件测试应该由第三方来负责。
三,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。
四,应该充分注意测试中的群集现象。
五,对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
六,制定严格的测试方案。一定要制定测试方案,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。
七,妥善保存测试方案、测试用例、出错统计和最终分析报告,为维护提供方便。
5.3测试主要内容
软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念:验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件(Do it right)
1.确定软件生存周期中的一个给定阶段的产品是否到达前阶段确立的需求的过程
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、效劳或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right
thing)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性
仅供学习参考
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
5.4测试方法
5.4.1等价类法
是把所有可能的输入数据,即程序的输入域划分成假设干局部(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
5.4.2.划分等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为假设干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
5.4.3.划分等价类的标准1)完备测试、防止冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
5.4.4.划分等价类的方法
1)在输入条件规定了取值范围或值的个数的情况下,那么可以确立一个有效等价类和两个无效等价类。
如:输入值是学生成绩,范围是0~100;
仅供学习参考
2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
5.4.5.静态测试
〔1〕代码检查:代码会审、代码走查、桌面检查
〔2〕静态结构分析
〔3〕代码质量度量
5.4.6.动态测试
〔1〕黑盒测试:又称功能测试。这种方法把被测软件看成黑盒,在不考虑软件内部结构和特性的情况下测试软件的外部特性。
〔2〕白盒测试:又称结构测试。这种方法把被测软件看成白盒,根据程序的内部结构和逻辑设计来设计测试实例,对程序的路径和过程进行测试。
5.5测试用例
√ 测试通过 ×测试未通过
5.5.1功能测试——添加联系人
用例 角色 测试环境
添加所有Android联系用户 模拟器
人
测试概述
测试用户能够添加联系人到SQlite数据库中
添加所有中兴 测试用联系用户 智能 户能够人 添加联系人到SQlite数据库中
5.5.2功能测试——查看联系人
用例 角色 测试环境
查看联系人
测试步骤
点击MENU选择添加联系人
点击MENU选择添加联系人
预期结果
正常添加联系人到SQlite数据库中
正常添加联系人到SQlite数据库中
实际结果
添加成功再次启动软件有之前添加信息
测试结未解决日期 论 问题
2021. √ 在模拟5.15 器中无法输入中文
添加成2021. √ 无
功再次5.15
启动软件有之前添加信息
测试概述 测试步骤
在用户列表中单击一个联系预期实际结测试结结果 果 日期 论
能够查看到2021. √
查看该联系5.15
到联人信息
系人的详细信所有Android验证用户用户 模拟器 是否能够查看从列表中选择的信息
未解决问题
在模拟器中无法输入中文
仅供学习参考
添加联系人
所有中兴 验证用户用户 智能 是否能够查看从列表中选择的信息
人
在用户列表单击一个联系人
息
能够查看到2021. √
查看该联系5.15
到联人信息
系人详细信息
无
5.5.3功能测试——删除联系人
用例 角色 测试环境
删除联系人
所有Android用户 模拟器
测试测试预期实际测试结论 未解概述 步骤 结果 结果 日期 决问题
验证在联成功删除2021. √ 无
用户系人删除成功5.15
能否联系联系重新删除页面人 启动联系点没有人 Menu该数选择据
删除该联系人
验证在联成功删除2021. √ 无
用户系人删除成功5.15
能否联系联系重新删除页面人 启动联系点没有人 Menu该数选择据
删除该联系人
删除联系人
所有中兴
用户 智能
5.5.3功能测试——修改联系人
用例 角色 测试环境
测试测试预期实际测试概述 步骤 结果 结果 日期
结论 未解决问题
仅供学习参考
修改联系人
所有Android验证用户 模拟器 该用户能否修改联系人
在联成功修改2021. √
系人修改 成功5.15
联系重新页面启动点数据Menu更新
选择修改该联系人
无
修改联系人
所有中兴 验证用户 智能 该用户能否修改联系人
在联成功修改2021. √
系人修改 成功5.15
联系重新页面启动点数据Menu更新
选择修改该联系人
无
仅供学习参考
2024年2月11日发(作者:辜惜蕊)
第一章 绪论
1.1 工程研究背景
经过多年的开展,随着第三代网络的使用及四代网络的即将来了呢,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的效劳将会有很大的开展空间。Google与包括HTC、摩托罗拉、三星、联想等在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月退出了一份专为移动设备设计的软件平台——Android OS。
Android 是一套真正意义上的移动性设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化额Java程序的运行过程。Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等效劳,同时也是 硬件的连接层。
Abdroid平台的开放性等特点既能促进技术〔包括平台本身〕的创新,又有助于降低开发本钱,还可以是运营商能非常方便地制定特色化的产品,因此,它具有很大的市场开展潜力。
1.2 工程研究的目的及意义
随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的效劳将会有很大的开展空间。在Google和Android 联盟的共同推动下,Android在众多 操作系统中脱颖而出,受到广阔消费者的欢送。
通讯录作为 的根本功能之一,每天我们都在频繁地使用着。根据 功能的不断加强与完善, 通讯录对于人们的意义,已经不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向开展。通讯录从无到有,从英文到中文,经过了十几年的开展历程,今后的开展趋势就是从通讯录开展为名片夹,也就是一个人名下,可以储存座机、 、单位、地址、电子邮箱等内容,这种名片夹在 薄的根底上,大大丰富了内容,同时结构也发生了革命性的的变化,而且随着 的开展,相信更优秀的通讯录会越来越受到社会各层认识的喜爱。
1.3系统主要内容与实现方式
仅供学习参考
1.3.1系统主要实现内容
通过对android技术的相关研究,了解Android源码实现原理以及过程,从而设计出一款能够使用的 通讯录。
这款通讯录实现的相关内容如下:
1、简介、使用的操作界面。
2、显示所有联系人的列表
3、添加联系人
4、删除联系人
5、修改编组联系人
6、呼叫联系人
7、发送短信至联系人
1.3.2安卓系统开发的方法
Android现在开展迅速,运营商、 商、平板电脑厂商都在推广,甚至加点厂商也开始涉足,对Android程序开发者的需求激增,人才的培养需要一个过程,大量的企业都在寻找Android软件开发的其他方式。安卓系统开发的方法,简单来说分为四层:
第一层:以Inventor为开标的绘图工具,是Google退出的简单开发工具,主要是针对初级玩家的工具,无法实现业务逻辑,运行效率也比拟低。
第二层:以Rexsee为代表的无线中间件,对技术门槛要求很低,会用HTML和JS的技术员就可以方便使用,在技术要求大弧度降低的同时,根底功能的封装也是一个大亮点,这些中间已经把所有应用需要的根底功能封装好,直接使用JS去调用就可以了,不再需要写代码。
第三层:基于Java的jdk,目前绝大局部应用都是用这种方式开发。
第四层:基于C++的NDK,很多大型游戏时一这种方法开发的,相对于JDK,这种方法的难度相对较高,目前使用的比拟少。
1.3.3 系统开发平台
由于该Android铜须路是一个基于Java语言开发软件,所以悬着了Eclipse作为开发平台,作为插件,它能够安装Android SDK,从而可以安装使用Android虚拟机,是的城西得以开发,亦更为方便。
仅供学习参考
本通讯录系统就是在Eclipse+Android平台环境下编写设计而成的。
第二章 系统分析
2.1系统可行性分析
2.1.1技术可行性
Java是有Sun Microsystems公司于1995年5月推出的Java程序设计语言〔以下简称Java语言〕和Java平台的总称。Java虚拟机〔Java Virtual
Machine〕和Java应用程序接口〔Application Programming Interface、简称API〕构成。Java应用编程接口为Java应用提供了一个独立操作系统的标准接口,课分为根本局部和扩展局部。在硬件或操作系统平台上安装一个Java平台之后,Java应用编程就可以运行。现在Java平添已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统重运行。
本软件用的是Java开发语言,在eclipse集成开发环境下,调试容易。当前的计算机硬件配置或者现有安卓 的硬件配置也完全能够满足开发的需求,因此技术上市绝对可行的。
2.1.2 经济可行性
开发该系统所需的相关资料可以通过以存在的相关系统进行调查采集,所需的软件系统、硬件平台等都易于获得,而且不需要Android平台机器,用虚拟器即可实现开发研究,开发本钱第,容易实现,从经济角度来看,该系统可行。
2.1.3 操作可行性
不管是安卓平台的 ,还是计算机,其本钱的下降,导致计算机,安卓
购置本钱的降低,这塔哦系统是利用自己的计算机,且使用安卓虚拟器,并且在本地安装JDK、Android跟Eclipse作为软件开发平台,使开发出来的系统有友好的用户界面、操作简单,因此在操作上是可行的。
2.2 需求分析
该通讯录软件是一种主要用来记录联系人的基于安卓平台的软件,可以运行在安卓平台虚拟器或者运行在安卓平台的手持设备上。
2.2.1Android通讯录的使用意义
根据 功能使用调查显示,近10成的消费者都会使用 通讯录功能。随着 通讯录功能的不断加强与完善, 通讯录对于人们的意义,已不仅仅像记事簿一样显示 号码,而是向着人性化、个性化的方向开展。通讯录从无到有,从英文到中文,经过了十几年的开展历程,今后的开展趋势就是从通讯录开展为名片夹,也就是在一个人名下,可以收集号码、QQ、地址、电子邮箱、备注等内容。
仅供学习参考
该系统针对的主要用户是A你的肉的 用户,Android 通信录管理系统包括以下主要内容:添加联系人、删除联系人、编辑联系人、查找联系人、打 、发短息。要设计一个良好的 通讯录,就必须首先明确该应用环境对系统的要求。Android 通讯录应用背景:方便用户快捷通讯。
2.2.2 外部事件
图2-1描述了通讯录与外部环境的交互。在这个系统重,通过对系统的分析,可以识别出参与者、用户。对于用户而言,通讯录上按钮时用户向系统输入的操作请求的输入设备,GUI是用于向用户输出信息的输出设备
按钮
用户
GUI
SQLitem数据库
系统
第三章 系统概要设计
3.1 系统总体设计
Android 通讯管理软件主要功能模块包括:联系人查看、联系人编辑、联系人添加、联系人删除、呼叫、发送短信,如图3-1所示
联系人添加
仅供学习参考
联系人查看
联系人编辑
联系人删除
呼叫联系人
发送短信
联系人搜索
联系人列表
Android 通讯管理软件
图3-1 功能结构图
3.2 处理流程设计
3.2.1业务流程图
用户进入 通讯管理软件后,会看到联系人列表界面。联系人列表界面主菜单中包括添加联系人、搜索联系人、关于及查看系统版本号、退出菜单项。点击添加联系人,那么进入联系人添加界面,添加成功后返回列表界面。点击搜索菜单,那么进入联系人搜索界面,输入联系人的全名或一个字,即可查找相关联系人,点击联系人会进入联系人查看界面,可以对联系人进行编辑、删除、拨打 、发送短信。
退出系统
图2 Android 通讯管理软件业务流程图
编辑联系人
删除联系人
呼叫联系人
发送短信
联系人 添加联系人 搜索联系人
联系人列表 Menu菜单
通讯管理软件
用户
仅供学习参考
3.2.2数据增加流程图
添加联系人时,数据由用户输入,点击确定按钮,判断数据是否合法〔及用户名是否为空〕,合法那么插入到数据库;不合法,提示错误信息,让用户重新输入。流程如图3所示:
图3 数据增加流程图
插入数据库
是否合法
添加数据
添加联系人界面
3.2.3数据修改流程图
编辑联系人时,点击编辑联系人菜单,输入修改后的数据,点击确定按钮,判断数据是否合法,合法,那么更新数据库;不合法,那么返回错误信息。流程如图4所示
图4 数据修改流程图
仅供学习参考
是否合法
修改数据
修改联系人界面
更新数据库
3.2.4数据删除流程图
当用户选定一个联系人时,点击删除联系人菜单,提示用户是否删除,点击确定按钮,那么从数据库中删除此条记录。数据删除流程如图5所示:
图5 数据删除流程图
更新数据库
是否删除
删除联系人
查看联系人界面
3.3 数据库设计
3.3.1 SQLite数据库简介
SQLite,是一款轻型的数据可,是遵守ACID的关联数据库管理系统。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占据资源非常低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等的操作系统,同时能够跟很多程序语言相结合,比方Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库端丽系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月,至今已经有10个年头,SQLite也迎来了一个版本SQLite3已经发布。
本系统采用的是Android系统自带的SQLite轻型数据库、因此占用资源非常小。
3.3.2 SQLite特点
1、 轻量级
SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和效劳器。使用SQLite一般只需要带上它的动态库,就是分享它的全部功能。而且动态库的尺寸也相当小。
仅供学习参考
2、 独立性
SQLite数据库的核心引擎不依赖第三方软件,使用它也不需要“安装〞。所以在部署使用能省去不少麻烦。
3、 隔离性
SQLite数据库支持所有的信息〔比方表、视图、触发器等〕都包含在一个文件内,方便管理和维护。
4、 跨平台性
SQLite数据库支持大局部操作系统,除了我们在电脑上使用的操作系统之外。很多 操作系统同样可以运行,比方Android、Windows Phone、Symbin、Plam、IOS等。
5、多语言接口
SQLite数据库支持很多编译语言接口,比方C/C++、Java等,得到很多开发者的喜爱。
6、 平安性
SQLite数据库通过数据库级的独占性和共享所实现独立事务处理。这就意味着多个进程可以同一时间从同一个数据库读取数据,在只有一个可以写入数据。在某个进程或线程想数据库执行写入操作之前,必须取得独立锁后,其他的读或写操作将不会在发生。
3.3.3 数据库表结构
首先创立数据库,在数据库中创立表用来存储联系人数据,其中包括联系人、 号、QQ、地址等联系方式。
第四章 系统详细设计
4.1联系人浏览模块
进入 通讯录管理软件后,看到的寄一个界面是联系人列表界面。该列表是有ListView控件生成的。翻开数据库,查看数据库中所有的联系人,并把联系人的和 号码这两项填充到ListView的adapter种每一行显示一个联系人的和 号码,联系人的显示顺序是根据插入数据库的顺序显示的。点击某个联系人会进入查看联系人界面,可以查看联系人的详细信息,对联系人进行编辑、删除。拨打 发送短信等。
点击menu男牛市,就会显示主菜单,其中包括:添加、查看、关于和退出。
〔1〕点击添加菜单,会进入添加联系人界面,可以输入联系人相关信息,完成联系人添加功能。
仅供学习参考
〔2〕点击查找菜单,会进入联系人查找界面,进行联系人查找,搜索想要找的联系人。
4.2查看联系人模块
在联系人浏览界面点击某个联系人,那么会跳转到该界面。该界面使用TextView把从数据库中调出的联系人的详细信息显示出来。在该Activity中添加了五项菜单,其中包括:返回列表、删除联系人、编辑联系人、呼叫联系人、发送短信给联系人、点击返回列表菜单项,会回到联系人浏览界面。
4.3编辑联系人模块
编辑联系人界面使用EditView空间显示并修改联系人的详细信息。联系人的所有信息,处于可编辑状态, 号的EditView设定为只能输入数字。修改完信息后点击确定按钮,触发确定按钮点击事件,从而对数据库中该凉席人的仅供学习参考
信息进行更新,然后返回联系人浏览界面。
4.4查找联系人模块
这里采用的查找方法是SQL模糊查询,可以只输入联系人中的一局部,在SQL语句中联系人的前后添加“%〞。即可查找到所有包含该局部的联系人,并在ListView中显示出来所有的联系人的和 号码。
第五章 系统测试与调试
5.1测试目的
仅供学习参考
程序测试就是在程序投入运行前,对程序的需求分析、设计规划说明和编码的最终复审,是保证程序质量的关键步骤,如果要给程序测试下定义,就可以将,程序测试时事为了发现错误而执行程序的过程。
测试的目的就是在软件揉入生存性运行之前,尽可能多的发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可能防止地会产生错误。编程人员liquid在每个剪短结束之前通过严格的而技术复查,尽可能早的发现并纠正错误。
5.2测试原那么
一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
二,程序员应该防止检查自己的程序,软件测试应该由第三方来负责。
三,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。
四,应该充分注意测试中的群集现象。
五,对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
六,制定严格的测试方案。一定要制定测试方案,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。
七,妥善保存测试方案、测试用例、出错统计和最终分析报告,为维护提供方便。
5.3测试主要内容
软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念:验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件(Do it right)
1.确定软件生存周期中的一个给定阶段的产品是否到达前阶段确立的需求的过程
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、效劳或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right
thing)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性
仅供学习参考
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
5.4测试方法
5.4.1等价类法
是把所有可能的输入数据,即程序的输入域划分成假设干局部(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
5.4.2.划分等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为假设干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
5.4.3.划分等价类的标准1)完备测试、防止冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
5.4.4.划分等价类的方法
1)在输入条件规定了取值范围或值的个数的情况下,那么可以确立一个有效等价类和两个无效等价类。
如:输入值是学生成绩,范围是0~100;
仅供学习参考
2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
5.4.5.静态测试
〔1〕代码检查:代码会审、代码走查、桌面检查
〔2〕静态结构分析
〔3〕代码质量度量
5.4.6.动态测试
〔1〕黑盒测试:又称功能测试。这种方法把被测软件看成黑盒,在不考虑软件内部结构和特性的情况下测试软件的外部特性。
〔2〕白盒测试:又称结构测试。这种方法把被测软件看成白盒,根据程序的内部结构和逻辑设计来设计测试实例,对程序的路径和过程进行测试。
5.5测试用例
√ 测试通过 ×测试未通过
5.5.1功能测试——添加联系人
用例 角色 测试环境
添加所有Android联系用户 模拟器
人
测试概述
测试用户能够添加联系人到SQlite数据库中
添加所有中兴 测试用联系用户 智能 户能够人 添加联系人到SQlite数据库中
5.5.2功能测试——查看联系人
用例 角色 测试环境
查看联系人
测试步骤
点击MENU选择添加联系人
点击MENU选择添加联系人
预期结果
正常添加联系人到SQlite数据库中
正常添加联系人到SQlite数据库中
实际结果
添加成功再次启动软件有之前添加信息
测试结未解决日期 论 问题
2021. √ 在模拟5.15 器中无法输入中文
添加成2021. √ 无
功再次5.15
启动软件有之前添加信息
测试概述 测试步骤
在用户列表中单击一个联系预期实际结测试结结果 果 日期 论
能够查看到2021. √
查看该联系5.15
到联人信息
系人的详细信所有Android验证用户用户 模拟器 是否能够查看从列表中选择的信息
未解决问题
在模拟器中无法输入中文
仅供学习参考
添加联系人
所有中兴 验证用户用户 智能 是否能够查看从列表中选择的信息
人
在用户列表单击一个联系人
息
能够查看到2021. √
查看该联系5.15
到联人信息
系人详细信息
无
5.5.3功能测试——删除联系人
用例 角色 测试环境
删除联系人
所有Android用户 模拟器
测试测试预期实际测试结论 未解概述 步骤 结果 结果 日期 决问题
验证在联成功删除2021. √ 无
用户系人删除成功5.15
能否联系联系重新删除页面人 启动联系点没有人 Menu该数选择据
删除该联系人
验证在联成功删除2021. √ 无
用户系人删除成功5.15
能否联系联系重新删除页面人 启动联系点没有人 Menu该数选择据
删除该联系人
删除联系人
所有中兴
用户 智能
5.5.3功能测试——修改联系人
用例 角色 测试环境
测试测试预期实际测试概述 步骤 结果 结果 日期
结论 未解决问题
仅供学习参考
修改联系人
所有Android验证用户 模拟器 该用户能否修改联系人
在联成功修改2021. √
系人修改 成功5.15
联系重新页面启动点数据Menu更新
选择修改该联系人
无
修改联系人
所有中兴 验证用户 智能 该用户能否修改联系人
在联成功修改2021. √
系人修改 成功5.15
联系重新页面启动点数据Menu更新
选择修改该联系人
无
仅供学习参考