
《05软件项目国标文档模板-概要设计说明书(GB8567——88)》由会员分享,可在线阅读,更多相关《05软件项目国标文档模板-概要设计说明书(GB8567——88)(14页珍藏版)》请在文档大全上搜索。
1、概要设计说明书姓名:王金辉学号:2012150001日期:2015。04。221引言21.1编写目的21。2背景21.3定义21。4参考资料22总体设计22.1需求规定22。2运行环境22。3基本设计概念和处理流程32。4结构32.5功能器求与程序的关系32.6人工处理过程32.7尚未问决的问题33接口设计33.1用户接口33.2外部接口33.3内部接口44运行设计44。1运行模块组合44.2运行控制44。3运行时间45系统数据结构设计45。1逻辑结构设计要点45.2物理结构设计要点45.3数据结构与程序的关系46系统出错处理设计56。1出错信息56。2补救措施56。3系统维护设计5概要设计说
2、明书1引言1。1编写目的说明编写这份概要设计说明书的目的,指出预期的读者。当今社会有很多交友软件,存在很多不安全因素,很容易泄露用户信息。而且,没有提供近距离的交友平台。很多同学对上课有厌烦心理,借助这款交友,同学们可以在课余时间,与他人交流,提高上课的乐趣和积极性。现在在一个班级上课的同学都不认识,很不方便学术的交流,所以,应提供同班同学交流认识的平台。1.2背景说明:a. 待开发软件系统的名称;b. 列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。a:Secretb:项目任务提出者,梁正平老师。开发者,王金辉也即本人用户:深圳大学周边人群。计算中心或则网络:本人电脑搭
3、建的服务器。C与其他的系统或则机构暂无来往,参考微信手机客户端的实现。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。apk file大意:扩展名为apk的文件是Android应用程序包,每一个Android应用程序包含的所有代码、资源和清单文件都被编译并打包成一个文件,这个文件的名字可任意取,但扩展名必须是.apk.例如,可以取名为myExampleAppname。apk。为了方便起见,一个Android应用程序包文件经常被称之为一个apk。.dex file大意:Android应用程序代码最终将会被编译成一个扩展名为dex((Dalvik Executable)的文件,
4、我们所编写的java文件会自动地被编译成dex文件.Action大意:Action是对Intent发送者所发送的intent(意图)的一种描述。Action是被分配给intent的一个字符串。Action可以由Android系统定义,也可以由第三方开发人员定义。例如,对于一个网页URL使用android.intent.action.VIEW,或者在一个定制应用中使用com。example.rumbler。SHAKE_PHONE使手机震动.Activity大意:Activity在应用程序里表现为一个“屏幕”,或应用程序的其中一个界面。通常,Activity是可见的、全屏的窗口,它可以处理UI事件
5、、执行复杂的任务。虽然Activity通常是全屏的,但也可以设置使其浮动或透明。adb大意:adb是Android Debug Bridge的简写,即Android调试桥,它是Android SDK中自带的一个命令行调试应用程序。它所提供设备浏览工具、设备上的拷贝工具和为调试转寄端口的功能。如果你是在Eclipse下使用ADT插件进行开发,adb已经集成到你的开发环境中了。Application大意:从组件的角度来看,Android应用程序是由一个或多个Activity、Service、Listener和Intent receiver组成;从资源文件的角度来看,Android应用程序是由Jav
6、a代码、xml资源文件、多媒体资源(音频、视频、其它文件等)和一个文件清单组成。在编译过程中,这些文件被打包成一个单一的叫做应用软件包的文件中(。apk)。Content Provider大意:Content Provider是一个数据抽象层,通过它你可以安全地将你应用程序中的数据暴露给其它的应用程序。Content Provider构建在ContentProvider类之上,它负责处理指定格式的查询串,并以指定的格式返回数据。Dalvik大意:Dalvik是Android平台的虚拟机。Dalvik是一个只能解释执行dex文件的虚拟机,dex文件针对存储性能和内存管理进行了优化。Dalvik是
7、基于寄存器的虚拟机,并且能够运行经过Dalvik自带的“dx”工具转换过的Java类。虚拟机运行在兼容Posix的操作系统上,依赖于底层的功能(如线程和低级内存管理)。Dalvik的核心类库有意做得与Java标准版非常类似,但它明显更适合小型移动设备。DDMS大意:DDMS即Dalvik Debug Monitor Service,它是SDK自带的一个图形化的调试工具,它提供了屏幕捕捉、日志存储和进程检测的能力。如果你在Eclipse中使用ADT插件进行开发,那么DDMS已经被集成在你的开发环境中了。Dialog大意:Dialog通常以一种轻量级的浮动窗口形式呈现,一个Dialog可以只包含一
8、个用于执行简单动作的按钮(如按钮选择)。Dialog并不会被持久存储在历史栈中.所有对话框类的基类是Dialog。Drawable大意:Drawable是经过编译的可视化资源,可以用于背景、标题或屏幕的其他部分。典型的情况,drawable被装载到另外一个UI元素中,例如将drawable作为背景图片。drawable不能够接收事件,但可以分配不同的其它属性,如“状态”。许多drawable对象是从描述图片的xml资源文件或位图文件中加载得到的。Drawable资源被编译到android。graphics。drawable的一个子类中.Intent大意:Intent是一个消息对象,你可能通过i
9、ntent启动其它应用程序或其它Activity,或者通过intent与其它应用程序或Activity进行异步交流。Intent对象是Intent的一个实例,它包含了许多方面:您能提供什么、确定应用程序或Activity收到的意图以及处理intent时接受者做什么处理.Intent包括:预期执行的动作(action)、动作类别(category)、数据(data)、数据类型(MIME Type)、处理类等。一个应用程序发送一个意图给Android系统,而不是直接给发送给其它应用程序或Activity。应用程序能够将意图发送给目标应用程序或者将意图作为一条广播发送,该广播能够被许多应用程序轮流处
10、理。根据其它应用程序定义的意图过滤器,Android系统负责解决:对于每一个意图,哪一个意图接收器最适合。Intent Filter大意:应用程序的Intent Filter(意图过滤器)声明在Manifest文件中,它用于告诉系统应用程序的组件愿意接收哪种类型的意图。通过Intent filter,应用程序能够表达出对哪些指定的数据类型、意图的行为、URI格式等感兴趣.当要解决某个意图,系统会对所有应用程序的全部意图过滤器进行评估,然后将意图传递给最匹配的应用程序的Activity。Broadcast Receiver大意:Broadcast Receiver是一个用于接收应用程序广播(不是
11、发送给应用程序的Activity)的类.系统将广播发送给所有对此广播感兴趣的广播接收器,这些广播接口器会按顺序处理该意图。Layout Resource大意:布局资源是一个用于描述屏幕布局的xml文件。Manifest File大意:清单文件是每一个应用程序都必须定义的xml文件,它用于描述应用程序的包名、版本、组件(Activity、intent filters、Services等)、引用的类库等。Ninepatch / 9-patch / Ninepatch image大意:.9.png是一种尺寸可变的位置资源,它可以用于背景图片或在设备上显示的图片。OpenGL ES大意:你可以使用An
12、droid提供了OpenGL ES类库处理快速、复杂的3D图像。它比Canvas对象的使用要难一些,但更适合3D应用.android。opengl和javax。microedition。khronos.opengles两个包暴露了OpenGL ES的功能。Resources大意:资源可以理解为应用程序的“非编程”组件,即并不是通过编写代码产生的。但应用程序代码可以使用特定的引用格式来使用资源。Android系统支持大量的资源类型,最为典型的应用程序资源主要由UI字符串、UI布局组件、图像及其它媒体文件等组成。Android应用程序使用资源来有效地支撑本地化和各种各样的设备,对于不同的手机屏幕大
13、小、屏幕方向(横竖屏)都可以设置相应的资源。Service大意:Service运行在后台(无需任何UI界面)以开展许多持久的活动,例如:播放音乐或者监测网络的活动。Theme大意:Theme是一系列定义多种默认显示设置的参数(文字大小、背景颜色等).Android系统在R.style中提供了一些标准的主题(以Theme_”开头)。URIs in Android大意:Android使用URI字符串作为基本的数据请求(例如检索联系人列表)和动作请求(例如在浏览器中打开一个页面)的方式。URI字符串可以具有不同的格式,但所有请求数据的URI都必须以“content:/”开头.有效的动作URI字符串会
14、被设备上的适当的程序处理,例如,以“http:/开头的URI字符串会被浏览器处理。View大意:View是绘制在手机屏幕上的一块矩形区域,它能够处理点击事件、键盘事件和其它交互事件。View是大多数组件的基类,如文本框、对话框等。Viewgroup大意:ViewGroup是包含一系列view的容器对象。ViewGroup负责决定它里面包含的view显示在什么位置、占用的大小,以及在适当的时候调用每个view的方法来绘制它们自己.有些ViewGroup是不可见的,它们仅仅用于布局,但有些ViewGroup又有固定的UI,例如滚动的列表框组件。所有的ViewGroup都继承了ViewGroup类,
15、并且位于android.widget包下.Widget大意:Widget即组件,它是一系列View子类(UI组件、布局等)的集合,例如文本框或弹出菜单.Widget要负责测量和绘制它本身,并且还要对屏幕事件做出反应。所有的Widget都位于android.widget包下。Window大意:在Android应用程序中,我们并不会实现或直接使用Window这个类,它是一个抽象类。我们通常都是使用实现了Window类的Dialog和Activity类生成一个窗口(Window)。1。4参考资料列出有关的参考文件,如:a. 本项目的经核准的计划任务书或合同,上级机关的批文;b. 属于本项目的其他已发
16、表文件;c. 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。参考:陌陌,微信,米聊各种社交工具参考界面的设计,以及一些系统内部类关系,功能,模块,如何分类的问题。接着是一些书籍:参考文献 1 Android A Programmers Guide 。 Jerome (J.F.) DiMarzio DOI:10。1036、 0071599886 2 林城。 Android 2.3 应用开发实战J . 机械工业出版社,2011:17321.3 韩超。 Android经典应用程序开发J . 人力资源出版社,
17、2011:5-18。 4 (美)Cay S。 Horstmann,Gary Cornell. Java核心技术J. 机械工业出版社, 2008:15-17。 5 刘卫国,姚昱禹. Android与J2ME平台间即时通信的研究与实现J。 中南大 学 信息科学与工程学院. 2008年12期:118-120. 6 刘平. Android手机访问服务器的一种数据交互方法J . 西安财经学院 网络 与现在教育技术中心,2010-09:96102. 7 刘玉平。 Java输入输出流及在网站开发中的应用探讨J. 郴州市科技局, 2009,(18):3549。 8 赵亮,张维。 基于Android技术的界面设
18、计与研究D . 徐州:徐州建筑职业 技术学院, 2001. 9 陈璟,陈平华,李文亮。 Android内核分析J . 广东工业大学计算机学院 实践 与经验,2009:112115. 10 刘卫国,姚昱禹。 Android的架构与应用开发研究J . 中南大学:信息科学 与工程学院 计算机系统应用 2008-11:110-112。 11 张海藩. 软件工程导论(第4版)J. 北京:清华大学出版社,2006:34-38. 12 邝孔无,王晓敏。 信息系统分析与设计(第三版)M。 清华大学出版社, 2006:23-26. 13 亢勇,陈自力,李鹏,路平。 面向对象的软件测试J. 测试技术学报, 199
19、9,(02):1523。 14 何玉洁。 数据库原理与应用教程M. 机械工业出版社,2005。12 15 KEN ARNOLD,JAMES GOSLING,DAVID HOLMES: JAVA PROGRAMMING LANGUAGE M,POSTS TELECOM PRESS,2006:231235. 16 JOHN LEWIS: JAVA SOFTWARE SOLUTIONSM. PUBLISHING HOUSE OF ELECTRONICS INDUSTRY,2007:134140.2总体设计2。1需求规定说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见附录C。数据
20、项说明输入格式是否必填账号用户用于登陆的身份文本是密码用户自定义设置的文本是服务器ip不同服务器ip不同文本是服务器端口号端口号一般为5222文本是好友名称用于查找好友,进行添加的作用文本是2。2运行环境简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,详细说明参见附录C。Window 8Openfire服务器Spark电脑客户端Secret手机客户端程序设备一:联想Z4801设备2:华为荣耀62。3基本设计概念和处理流程说明本系统的基本设计概念和处理流程,尽量使用图表的形式。系统设计模型概览系统设计类图: 系统组件图2。4结构用一览表及框图的形式说明本系统的系统元素(各层模块、子
21、程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系。2。5功能器求与程序的关系本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:程序1程序2程序n功能需求1功能需求2功能需求n程序1程序2程序n功能需求1功能需求2功能需求n2。6人工处理过程说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。暂无.2。7尚未问决的问题说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。这个项目在考虑的过程中,主要考虑了聊天,圈子功能的实现,其他的功能暂时处于未实现阶段。3接口设计3。1用户接口说明将向用户
22、提供的命令和它们的语法结构,以及软件的回答信息。命令语法信息正确信息错误确定按钮点击点击功能成功点击功能失败取消按钮点击取消功能成功取消功能失败登录按钮点击进入系统重新登录注册按钮点击注册成功注册失败删除按钮点击删除成功删除失败3。2外部接口说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。硬件接口:手机键盘,手机摄像头,手机触摸屏.。软件的接口(Asmack ):建立连接XMPPConnection类用来建立到XMPP服务器的连接.要建立SSL连接,要使用SSLXMPPConnection类。下面是建立连接的例子:/建立一个到jabber.org服务
23、器的连接。XMPPConnectionconn1=newXMPPConnection(jabber。org);/通过一个特殊的端口建立一个到jabber.org服务器的连接。XMPPConnectionconn2=newXMPPConnection(jabber.org”,5222);/建立一个到jabber.org服务器的SSL连接。XMPPConnectionconnection=newSSLXMPPConnection(”jabber.org);一旦您建立了一个连接,您必须通过方法XMPPConnection.login(Stringusername,Stringpassword)使用用
24、户名和密码登陆。如果登陆成功,您可以通过创建新的Chat或GroupChat对象和其它用户聊天。操作RosterRoster能够让您跟踪其它用户的有效性(存在).您可以通过使用像“朋友和“同事”这样的组来组织用户,这样您可以发现每个用户是否在线.使用XMPPConnection。getRoster()这个方法得到Roster.通过Roster类您可以找到所有Roster登陆、他们所属的组以及每个登陆当前的存在状态。读写Packet从客户端以XML格式发送到XMPP服务器的每个消息被称为一个“packet”。org.jivesoftware.smack。packet包中包含了一些类,这些类封装了
25、XMPP所允许的三个不同的基本packet类型(message,presence,和IQ)。像Chat和GroupChat这样的类提供了更高类别的构造能够自动地创建和发送packet,但是您也可以直接创建和发送packet。下面是一个通过改变您的presence来让别人知道您已无效,已经outfishing”了:/创建一个新的presence.传入false以指示我们已经无效了Presencepresence=newPresence(Presence.Type。UNAVAILABLE);presence.setStatus(”Gonefishing”);/发送packet(假设已经有了一个名为
26、”con”的XMPPConnection实例)。con。sendPacket(presence);Smack提供两种方法读取收到的packet:PacketListenerpacket监听器和PacketCollectorpacket收集器。二者都是使用PacketFilter实例来决定哪个packet应该被处理.packet监听器用于事件样式的编程,而packet收集器有一个可以做轮询和阻塞操作的packet的结果队列。所以,当您想对一个有可能随时到来的packet采取一些操作时,使用packet监听器;而当您想等待一个特别的packet到来时,使用packet收集器。您可以使用XMPPCo
27、nnection实例创建packet收集器和监听器。3.3内部接口说明本系统之内的各个系统元素之间的接口的安排.4运行设计4。1运行模块组合说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。用户类型登录注册修改管理员能能能用户能能能4。2运行控制说明每一种外界的运行控制的方式方法和操作步骤。触控屏:输入密码和用户名,验证码等等。用手点击手机虚拟键盘(触控屏)从而能够达到数字英文的输入4。3运行时间说明每种运行模块组合将占用各种资源的时间。响应时间:10秒内更新时间:10秒内信息提交时间:10秒内5系统数据结构设计5。1逻辑结构设计要点给出
28、本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系.、学生学号 char(10)姓名 char密码 char性别 int联系人用户id int联系人id int添加时间 datetime添加地点位置当前地点 char选择说说用户id int说说时间 Datetime说说内容 char添加5。2物理结构设计要点给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。用户学号添加联系人反馈反馈表发表保存说说聊天记录Id用户id反馈类别跟
29、进状态反馈内容反馈时间姓名密码个性签名性别Id用户id联系人id添加时间用户id说说内容说说时间用户id联系人id聊天时间聊天内容nmnnm5.3数据结构与程序的关系说明各个数据结构与访问这些数据结构的形式:校园聊天系统需要用户的特征;添加和删除联系人,并且记录时间;说说的特征包括说说内容和发表说说的时间,删除和修改功能;保存聊天记录,或删除聊天记录;地点,通过地点判断位置,从而能知道用户的位置信息;提供用户反馈,与用户沟通。6系统出错处理设计6.1出错信息用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。可能的错误形式含义处理方法错误登录信息边框提示登录密
30、码错误重新输入输入错误数据边框提示密码之类信息输入错误重新输入应用崩溃边框提示系统崩溃重新开启应用Gps未开启边框提示不能使用定位功能开启gps定位网络故障无信息提示手机暂无网络服务无6.2补救措施说明故障出现后可能采取的变通措施,包括:a. 后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;b. 降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;c. 恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。首先,假如系统崩溃,那么我们可以通过在contentprovider来查找崩溃之前的信息,崩溃之前,应用的存储的信息,用户的数据等等。这样在崩溃时能够快速的将数据恢复。然后再对比服务器的信息,从而达到信息无差错,崩溃无损失的效果.6。3系统维护设计说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。 各个程序之间的对应关系,可采用如下的矩阵图的形式;