软件工程需求分析(共11页).doc
精选优质文档-倾情为你奉上针对手机用户隐私保护客户端的设计目录 一编写目的 本设计报告主要对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,人机界面,实现对系统的初步设计。我们根据需求分析得到的数据流图,将之转化为软件结构和数据结构,建立起目标系统的逻辑模型。使软件编程人员能对目标系统有一致的认识。 我们将介绍系统的各个模块,为进行后面的实现和测试作准备。二、程序总体设计本客户端是基于Android系统的,其开发包括可扩展标记语言(extensible markuplanguage, xml)布局文件的开发和Java语言开发。其中,xml布局文件用来描述客户端外观,以Layout为布局单位,在标签中定义大小、形状、颜色、背景等外观属性。Java语言开发使用的是面向对象的编程思想,主要处理交互逻辑和数据计算处理逻辑。Android应用程序框架层使用组件Activity处理界面和逻辑,在Java文件中继承Activity对象,并将xml文件与一个Activity对象绑定,即可实现其全部坊能。,主要采用MVC架构即Model-View-Contr01ler设计模式,将界面与数据处理控制分离,实现界面展示模块与数据处理模块的分开处理。系统的整体架构图如图所示。短信隐藏模块图片隐藏模块启动与运行模块界面认证模块管理模块手机安全扫描模块文件加密模块快速加解密模块个人空间管理模块数据流加密模块数据清除模块支付保镖模块拦截模块清除历史记录模块三、模块划分启动与运行模块不采用传统的启动、运行模块。通过特定的拨号代码进入相关设置模块。使一般人无法进入相应的设置模块。运行过程中不能被其他恶意程序终止。通过拨号键盘使用特定的代码唤醒进入管理模块。如在拨号键盘中输入等进入该模块。管理模块最主要的功能,开发与手机系统相关的产品,管理应用权限,负责分发应用权限。以及进行相关其他模块的设置。管理应用程序的读取、存储权限、联网权限。通过对应用的权限的分配,拒绝给予恶意软件的权限,渲染图如下所示。快速加解密模块主要对本地文件进行快速加解密,保证手机即使受到入侵,也有可能不能完成对数据的加解密操作,从而保护用户的隐私。本地数据加密采用了流密码算法RC4,该算法使用相同的密钥进行加解密。RC4的加解密速度一般要比分组密码速度快,且能较好地隐藏明文的统计特征,实现起来也较为方便。利用RC4 算法对手机上的文件进行加密,对密钥进行严格保管,可以保证加密的高效性和安全性,从而保护用户想保护的文件。数据清除模块当手机的解密或者解锁受到爆破攻击或者其他类似的刷机等操作并无法获得手机主人的认证的时候,对数据进行清除操作,即便手机被他人得到,也无法获取手机的数据。 个人空间管理模块可以在手机中开辟一段隐秘空间,针对这段空间,实施更加严密的加解密操作,并将含隐私的重要文件放置于此空间内,在不经过手机主人的特定允许下,其他人在一般的应用下面是无法获得这其中的文件,相关的应用也无法访问这部分文件。对个人信息进行加密,防止他人偷看,保护隐私安全。这里可以采用启动与运行模块类似的方式激活私人空间。文件加密模块、文件加密的实现。在文件加密模块中,提供文件加密、数字签名、文件校验三个功能。文件加密功能中,选定相关文件夹中的某个具体文件,通过自行输入密码,可生成相应加密算法下的加密文件。选择已加密文件,输入对应密码,则可以还原初始文件。数字签名能中,可以生成密钥文件,并设置文件名及密钥大小。选取需要签名的文件及密钥后,即可通过已生成的密钥文件执行签名,可通过下图所示的策略(配合快速加解密模块进行工作)数据流加密模块此模块主要针对和网络进行交互的数据得到加密控制,保证隐私不被泄露,身份不能被冒充。针对移动平台的特性,用户可能需要将数据发送到传统设备上或者智能终端之间进行数据沟通。所以必要的安全传输是所有系统间必须实现的功能。在数据加密的情况下再进行数据的分段传输。文件传输的实现。在文件传输模块中,通过无线路由设备,对加密文件进行传输。传输时可以选择对应的加密算法并输入密码,若发送成功会出现提示。通过填写正确的IP地址、端口号和解密密码来接收文件,接受成功时也会出现相应提示。加密手机安全扫描模块在一个周期内,对手机进行扫描,发现病毒木马、隐私泄露隐患。及时进行优化处理。 程序锁模块为不同的应用程序进行加锁,只有输入特定的密码才能进入,防止他人使用。并且可以改变程序图标和引用程序所用名字。可通过网上开源的项目进行改写。拦截模块当涉及到较为重要的手机权限的时候,拦截相关操作,询问手机使用者的意见。经过主人的允许之后,可进行后续的操作。当应用进行拨号、发送短信的时候也进行上述询问操作。清除历史记录模块主要针对系统使用过程中产生的临时文件和用户数据进行分析,通过分析操作系统的行为和用户程序的运行模式,探知到数据的保存位置或者历史数据的查询删除接口,从而通删除或者转移的形式将数据进行保护和销毁。清除历史记录的实现。在清除历史记录模块中,可选择删除指定联系人的短信及通话记录,若未选中,则会提示选择联系人。也可删除全部短信及通话记录。此外,用户可以删除浏览器的历史结果。认证模块当设计到相关的主人认证的时候,需要调用该模块,可涉及指纹识别、密码解锁、虹膜解锁等相关操作,针对指纹识别,提高其准确度。密码解锁时,针对密码的设置,强制使用强密码如大小写和特殊符号等。支付保镖模块针对网银和快捷支付等特定的支付手段进行强效保护,防止交易受到监测、篡改以及其他安全破坏针对该模块,该模块在启动时同时调用数据流加解密模块和手机安全扫描模块,以保障支的安全。短信隐藏模块当收到指定联系人的短信时,系统自动进行拦截,使短信不显示在手机自带的短信功能中,而是存储于安卓自带的小型数据库内,而这一数据库内的数据在普通状态下无法查阅,只能通过本模块进行读取。即用户只能从本模块中读取相关短信。同时,本模块还具有发送短信功能,对外发送的短信也只会在本系统中显示,不会显示在手机的发信箱里。可以认为本模块是一个独立的短信收发系统,将用户想要隐藏的信息隔离于其它信息记录短信隐藏模块包括两个功能,即短信接收隐藏功能与短信发送隐藏功能。短信接收隐藏功能可以让用户将指定联系人的短信隐藏于本系统相关文件夹,短信发送隐藏功能可以让用户在本系统内给指定联系人发送短信,短信记录只显示于本系统内照片隐藏模块、由于现在的智能终端都有摄像摄影功能,同时由于具有丰富的数据连接功能,所以设备中会保存大量图片。因为图片本身的原因,具有一个具有加密保存图片并且还能实时显示的软件是必须的功能。图片隐藏的实现。图片隐藏模块使得用户可以将手机中的图片存储于特定隐私文件夹内,通过输入用户名与密码进入隐私文件夹可以查看图片,以实现对重要数据的隐藏。3接口设计 通过面向对象语言设计类,在public类中实现调用;类间实现严格封装。每个模块均设置相应的接口,独立成模块,为后续开发做好准备, 4运行设计 4.1运行模块组合 本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口通过打开另一个子窗口来实现个模块之间不同功能的连接和组合。各模块之间相对独立,程序的可移植性好。各模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。 4.2运行控制 运行控制将严格按照各模块间的函数调用关系来实现。 在网络传输方面,客户机再发送数据后,将等待服务器的确认到信号,收到后,在此等待服务器发送数据,然后对数据进行确认服务器再接收到数据后发送确认信号,在对数据处理、访问数据库后,将饭返回信息送回客户机,并等待确认。 ,程序的正确执行依赖于合理的数据结构。 系统出错处理设计 .出错信息 数据库连接错误 原因:数据库设置不正确或SQL Server异常解决办法:取消本次操作,提醒用户检查数据库。 输入错误 输入不规范 过对话框,提醒用户,然后再次操作。 其他操作错误 用户的不正当操作使程序发生错误 中止操作提醒用户中止的原因和操作的规范不可预知错误 未知异常 进行数据库备份,帮助开发者完善程序。 补救措施 我们对于本程序的几种可能的错误进行了分析,分别进行了不同的处理。 主要的错误可能有: 数据库连接错误:这类错误主要是数据库设置不正确,或SQL Server异常引起的,们只要取消本次操作,提醒用户检查数据库问题就可。 输入错误:这主要是用户输入不规范造成的,我们在尽量减少用户出错的条件的情况下,主要也是通过对话框,提醒用户,然后再次操作。 其他操作错误:对于用户的不正当操作,有可能使程序发生错误。我们主要是中止操作,并提醒用户中止的原因和操作的规范。 其他不可预知的错误:程序也会有一些我们无法预知或没考虑完全的错误,我们对此不可能作出安全的异常处理,这时我们主要要保证数据的安全,所以要经常的进行数据库备份,并能及时的和我们联系,以逐步的完善我们的程序。 界面设计1.简易性界面的简洁让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。2.用户语言界面中要使用能反应用户本身的语言,而不是游戏设计者的语言。3.记忆负担最小化人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25的遗忘率。所以对用户来说,浏览信息要比记忆更容易。4.一致性是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与游戏内容相一致。5.清楚在视觉效果上便于理解和使用。6.用户的熟悉程度用户可通过已掌握的知识来使用界面,但不应超出一般常识。7.从用户的观点考虑想用户所想,做用户所做。用户总是按照他们自己的方法理解和使用。通过比较两个不同世界(真实与虚拟)的事物,完成更好的设计。如:书籍对比竹简。8.排列一个有序的界面能让用户轻松的使用。遵循以上原则,我们渲染除了一个简单的界面如下图所示:系统维护设计 对于软件功能方面的维护,由于我们采用的是模块化的设计方法,每个模块(窗口)之间相互独立性较高,这样对软件的维护带来了很大的方便,对于单独功能的修改只需修改一个窗口就行了。而对于功能的添加,只要再添加菜单项的内容即可,软件卖出后,我们将根据客户的要求和反映,定期的对软件进行维护修改。专心-专注-专业