1、武汉工程大学邮电与信息工程学院毕业设计(论文)基于Android的手机团购应用的设计与实现The Design and Implementation of Mobile Group Buy Applications Based On Android学生姓名 学 号 专业班级 指导教师 2015年4月武汉工程大学邮电与信息工程学院毕业设计(论文)作者声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已
2、在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。特此声明。 作者专业: 作者学号: 作者签名: _年_月_日摘 要近些年来我国网络基础设施不断完善、信息技术不断发展,计算机网络已经基本实现了全民普及。而且随着第三方支付工具如支付宝、财付通等的不断发展和完善,网络团购日益成为网民日常网络生活的一项重要内容。目前国内的主流团购网站美团、百度糯米、大众点评等等都推出了自己的手机团购应用程序,这显示各大团购网站对手机端团购群体的争夺越来越激烈。Android是一种以Linux为基础的开放源码操作系统,主要用
3、于便携设备,由Google公司在2007年11月5日正式公布。虽然Apple iOS、微软Windows Phone和黑莓都占有一定的市场,但截至目前,Android仍保持智能手机市场强劲主导地位,出货量持续增长。在中国市场,Android份额更是接近84%,因此选择在安卓智能手机平台上开发一个手机团购应用是很有意义的。本系统设计并实现了一款手机团购应用,整个系统基于 C/S 架构,由客户端和服务器端两个部分构成。客户端负责向用户呈现各类信息、向服务器端发送请求,服务器端接收请求并将处理结果返回给客户端。客户端由一个Android应用程序构成,该应用程序基于Eclipse(集成 ADT 插件)
4、和 Android SDK 开发,实现了商品信息的展示、用户信息的管理、用户订单信息的管理、购物车功能、收货地址管理等一系列功能;服务器端基于 SSH 架构实现了业务逻辑和具体数据的分离。开发过程中的难点主要集中在业务逻辑的处理和数据持久化的实现。业务逻辑依赖前期的需求分析得到解决,数据的持久化借助 SQLite 技术得以实现。关键词:安卓;团购;C/S;EclipseAbstractThe network infrastructure of China has been improved in recent years. With the information technology dev
5、eloping, the coverage of computer network has became universal. Because of the continuous development of the third-party payment tools, the network Group Buy is increasingly become an important thing to the online Internet users in their daily life. The current domestic Group Buy Websites, such as M
6、eituan, Baidu Nuomi, Dazhongdianpin, and so on has launched their mobile phone Group Buy application, it shows that the competition for mobile terminal online groups has became more and more intense.Android is a Linux-based open source operating system, mainly for portable devices, It is announced b
7、y Google in November 5, 2007. Although Apples iOS, Microsofts Windows Phone and BlackBerry are also occupy a certain market, But so far, Android smartphone market still remains strong dominance, shipments continued to grow. In the Chinese market, Android system reached nearly 84% share of the market
8、, So choose the Android platform to develop a mobile Group Buy application is very meaningful.The System carried out the development of the program interface on client part, which realize the interface design between client and server. The whole mobile phone Group Buy system based on C/S architectur
9、e, consists of client and server. Client is responsible for sending requests to the server, the server accepts the request, processes the request and returns the results to the client. Client consists of an Android application, the application is based on Eclipse with the Android SDK development; th
10、e server is based on SSH architecture which implements the separation of business logic and the specific data. The difficulty in the development are mainly concentrated on the treatment of business logic and data persistence. Business logic relies on the early resolved demand analysis, and data pers
11、istence is solved by using Hibernate technology.Key Words:Android; Group Buy; C/S; Eclipse目 录第1章 绪论11.1 研究背景11.2 国内发展现状及趋势11.3 相关工作21.4 论文结构安排2第2章 关键技术介绍42.1 开发语言Java42.2 系统架构52.3 Android平台简介62.3.1 Android 体系结构62.3.2 Android基本组件72.3.3 Android 应用工程源码结构92.4 SSH 框架简介102.5 Quartz调度框架112.5.1 Quartz存储方式12
12、2.5.2 Quartz触发器122.5.3 Quartz调度器122.5.4 Quartz在本系统中的应用122.6 本章小结13第3章 系统分析143.1系统结构分析143.2业务模块分析153.2.1 注册登录模块分析153.2.2 商品信息展示模块分析163.2.3 购物车模块分析163.2.4 订单模块分析17433.3本章小结18第4章 系统设计194.1客户端和服务器之间的通信设计204.1.1 连接方式的设计204.1.2 客户端服务器之间的数据处理204.2业务逻辑设计214.2.1 登录注册模块业务逻辑214.2.2 商品信息模块业务逻辑234.2.3 订单模块业务逻辑24
13、4.2.4 购物车模块业务逻辑264.2.5 地址管理模块业务逻辑264.2.6 收藏夹管理模块业务逻辑264.3数据库设计274.4本章小结29第5章 系统实现305.1客户端和服务器之间的通信305.1.1 通信连接的建立305.1.2 通信数据的处理315.2系统功能模块的实现325.2.1 用户登录注册功能的实现325.2.2 商品信息展示功能的实现355.2.3 购物车功能的实现365.2.4 结算模块功能的实现385.2.5 收藏夹模块功能的实现395.3本章小结40第6章 总结41参考文献42致谢43第1章 绪论本章主要介绍了网络团购的现状及其未来的发展趋势、智能手机操作系统的现
14、状和它们各自所占的市场份额,以及论文的主体内容和论文的结构框架。1.1 研究背景近些年来随着我国网络基础设施的不断完善、信息技术不断发展,计算机网络已经在全国范围内基本实现了全民普及。伴随着第三方支付工具的不断发展和完善,网络购物日益成为网民日常网络生活的一项重要内容。而网络团购作为网上购物的一种组成方式,具备了网络购物的所有优点,如方便、快捷、不受地域限制等,最重要的是网络团购可以享受比普通网购更低的价格,而价格优势又成为其受广大网民欢迎的最主要的核心优势,不断增长的移动互联网终端使得手机团购必然会成为继网站购物后又一种比较流行的购物方式。手机团购具有操作方便、简单的特点,而且经过多年的发展
15、,第三代移动通信(3G)技术得到了广泛的接受和第四代移动通信技术(4G)的兴起,为移动终端用户带来了更快的数据传输速率,这就更加推动了手机团购必然会成为又一种流行的购物方式。1.2 国内发展现状及趋势据易观智库最新发布的中国移动互联网数据盘点&预测专题研究报告2015数据显示,在2014年,中国移动互联网市场规模迎来增速高峰值,增长率达到183.8%,总量达13437.7亿元人民币。在用户移动化行为习惯逐渐养成的前提下,2014年移动互联网整体市场表现突出,其中,移动购物是增长的主要驱动力。虽然中国移动互联网用户规模增速有所放缓,但用户数达到7.3亿人,与2013年相比增长11.8%,继续保持
16、着超越PC端用户量的态势1。目前针对智能手机的操作系统,主要有Apple公司的IOS、Google公司的Android、微软公司的Windows Phone和加拿大Research In Motion(简称RIM)公司的Blackberry系统。其中,Google公司的Android系统因其开放性而受到全世界人民的喜爱,占据着智能手机市场的主导地位,Android系统智能手机出货量持续增长,占总份额的近84%,并且其占有率仍处于上升趋势。1.3 相关工作一个界面友好,功能合理的手机团购应用,可以吸引更多网购客户,提高自己的知名度。在一定程度上,一个友好绚丽、使用体验良好的界面可以决定一个应用的
17、生命周期。本文接下来将从三个方面描述手机团购应用的开发过程:(1) 需求分析这是程序开发的首要任务,清晰地分析和理解问题是解决问题的前提条件,通过需求分析弄清楚程序要实现的功能,实现的难点,理清各种功能模块之间的调用关系。做好这些工作之后就可以大大提供程序的开发效率,节约时间成本。(2) 客户端的设计和实现在之前需求分析结果的基础之上,依据需求分析文档中的要求,逐步实现客户端的各项功能。重点实现的内容包括:客户端程序的界面设计和实现、商品图片的异步加载方式、一些较大数据的压缩和解压缩、客户端和服务器端之间的通信接口设计。(3) 与服务器端的通信通过分析研究,首先定义一种服务器端和客户端都可以接
18、受的通信格式。其次,根据客户端的具体需求,定义一个能够跟服务器高效地进行数据交换的接口。根据之前需求分析的结果,从中抽象出各个实体所对应的类,为之后的数据库设计打好基础。最后将定义在需求文档中的业务逻辑接口合理实现。在设计客户端和服务器端之间通信方式的过程中,作者使用基于JSON 的数据交换格式,该数据格式采用完全独立于具体程序语言的本文格式,采用 C 系语言的定义风格,易于程序员的编写阅读,非常适用于通信压力较轻的应用场合。1.4 论文结构安排 根据软件的实际开发过程,将本论文划分为六大章节。 第一章为绪论,主要介绍了研究课题的背景,相关课题在国内的研究发展现状,研究实现过程中所要解决的一些
19、重要问题和使用到的一些重要技术,以及研究过程的简略描述。第二章为关键技术介绍,主要介绍了客户端应用程序开发过程需要使用的一些关键技术和应用到的技术架构。第三章为系统需求分析,该购物系统的业务逻辑一共分为六部分,用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。良好的系统需求分析能够为之后的项目开发打下良好基础。第四章为系统详细设计,包括系统的整体架构、客户端和服务器端之间的通信设计、业务设计,一共三个部分。第五章为系统实现,在之前完成的系统需求分析和系统详细设计的基础上,具体实现客户端和服务器端之间的通信以及系统各个功能模块。第六章为总结,总结了全文的主要内容。第2
20、章 关键技术介绍2.1 开发语言JavaJava的诞生要归功于Sun公司的“Green”项目,该项目是为了开发一种用于管理控制电子消费产品的分布式系统。开发人员最初计划使用C+开发,但是因为C+的复杂性和安全性问题,开发者最后放弃使用C+,选择在C+的基础之上开发一门新的语言Oak(java 的前身)。Oak于1995年1月更名为“java”。Java是一种面向对象的高级语言,它最大的特点就是平台无关性,这使得 Java特别适合网络环境内的应用程序开发。目前Java有三种技术分支,它们分别是Java SE,Java EE,Java ME。Java SE是Java Platform Standa
21、rd Edition 的英文缩写,汉语意思是Java平台标准版,适用于开发标准的桌面程序、以及各种基础的类库。 Java EE是Sun公司推出的企业级应用程序开发平台,能够让开发人员短时间内开发出健壮、跨平台和易扩展的服务器端应用程序。Java ME是Sun公司推出的一种针对嵌入式电子消费产品的应用程序开发版本。Java SE是Java EE和 JavaME的基础2。Java的语法特征跟C+语言非常类似,因此有C语言基础或者C+基础的程序员可以非常快速的上手Java。但是与C+相比,Java还是有自己的鲜明特点:(1)实现了自动管理内存。Java语言本身提供了GC(垃圾回收)机制,垃圾回收器可
22、以自动的管理应用程序所在的内存空间,程序员不必再为申请内存和释放内存劳心费神,彻底远离了可怕的内存泄露问题。(2)取消了“指针”这一概念,以“引用”代替,使开发人员摆脱了复杂的内存访问和内存管理问题,从而使java语言开发出来的程序更加安全健壮。(3)取消了“多重继承”,只支持单一继承,增加了接口概念和匿名内部类,间接地实现了“多重继承”机制的功能,避免了多重继承带来的复杂性。Java 语言是一种解释型语言,跟 C、C+这种类型的语言相比,java的执行效率很低。因为Java程序的执行必须依赖于Java解释器,而java解释器的存在使 java真正实现了“一次编写,处处运行”的目标,为了达到这
23、个目标而牺牲一部分效率还是非常值得的。另外,Java 语言具有特别强大的、易于联网的特点,因此 Java特别适合开发分布式的程序。在所有的计算机高级语言中,使用Java语言编写Socket 程序是最简单的3。2.2 系统架构选择一个合理的系统架构能够很大程度上决定一个项目的开发成败。在互联网团购类项目的开发历史中存在 C/S 和 B/S 两种架构。在 B/S 体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S 结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序
24、的执行将在服务器上完成。实际上 B/S 体系结构是把二层 C/S 结构的事务处理逻辑模块从客户机的任务中分离出来,由 Web 服务器单独组成一层来负担其任务,这样能减轻客户机的压力。这种三层体系结构如图 2.1 所示。数据库Web服务器 Browse浏览器 图 2.1 B/S 三层架构示意图C/S 架构主要包括“客户端”、“中间件”、“服务端”三大部分。用户可以通过客户端应用程序向服务器发送各种请求,并接收从服务器返回的数据信息。服务器会接收来自客户端的信息并作出响应,同时负责管理系统的各种后台数据和信息,比如数据库信息。服务器要面对的一个难点就是当多个用户同时请求同一种资源时,应该如何响应这
25、些请求。中间件是客户端程序和服务端程序沟通的桥梁,主要负责数据结构的定义和数据传输。由于Android平台的应用开发非常的便捷高效,借助一个自主的APP应用程序,可以更加高效合理的展示团购商品信息,提高用户的手机团购体验,因此选择C/S架构作为本手机团购应用的系统架构。C/S 架构的示意图如图 2.2 所示。服务器端中间件客户端图 2.2 C/S 架构示意图2.3 Android平台简介Android 系统基于 Linux 内核,但并不是标准的 linux 内核。为了让 Android 系统更加适用于移动终端设备,google 对 Linux 的内核进行了各种优化和加强。 Android 平台
26、采用了一种“软件叠层”的方式构建,它由分别是应用程序层、框架层、函数库层、运行时库、内核五层构成。这种构架方式的好处就是各层之间相互独立,底层的改变不会影响上层。2.3.1 Android 体系结构Android 体系结构从上到下一共分为 5 层,分别是应用程序层、应用程序框架层、函数库层、运行时库层、内核层。应用程序层主要包含系统的核心应用程序,比如浏览器、电话薄、日历计算器等等;应用程序框架层为应用程序层提供了所需要的 API,这些 API都包含在 Google 提供的 Android SDK 中;函数库层由大量的C/C+库构成,这些库函数一般不会直接被应用程序调用,而是被应用程序框架层的
27、API调用,而Java和C/C+之间的跨语言调用借助于JNI技术;运行时库层包括核心库和Dalvik虚拟机,核心库封装了Java语言的全部功能,Dalvik虚拟机负责安卓应用程序的运行。内核层主要负责内存管理、进程管理、网络协议栈和驱动模型的实现,位于整个架构的最底层4。Android的体系结构图如图 2.3 所示。Application Framework(应用软件架构)ViewSystemWindowsManagerActivityManagerContentProviders软件组件电话管理资源管理位置管理提示管理Android RuntimeAndroidLibrariesDalvik
28、虚拟机器Library(函数库)SurfaceManagerMediaFrameworkSQLiteOpenGLFreeTypeWebKitSGLOpenSSLLibcLinux Kernel硬件驱动电源管理Wi-Fi网络内存管理相机驱动Application(应用程序)文件管理浏览器照相程序通讯录电话图2.3 Android系统架构图2.3.2 Android基本组件Android 应用程序通常是由一个或者多个基本组件构成的。Android 应用程序的基本组件包括:Activity(活动)、Service(服务)、BroadcastReceiver(广播)、 ContentProvider(
29、内容提供者) 5。其中最常用也是最常用到的组件就是 Activity(活动),下面简要的介绍一下这四种组件。(1)Activity(活动)Activity 是 Android 系统中负责跟用户进行交互的组件,它为 Android 系统提供了可视化的用户界面。如果一个安卓应用程序包含多个用户界面,那么这个安卓应用必将包含多个 Activity。多个 Activity 将组成一个 Activity 栈,栈顶对象就是当前处在活动状态的 Activity。随着不同应用的交替运行,每个 Activity 都可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。StartingActivity 具
30、有四种状态:活动状态、暂停状态、停止状态、销毁状态。当 Activity处于前台,用户可见并可获得焦点的时候,Activity就处在活动状态;当其他 Activity位于前台,该 Activity 依然可见但无法获得焦点,该 Activity 处在暂停状态;当Activity 不可见,失去焦点时,该 Activity 处在停止状态;当 Activity所在的 Dalvik 进程结束时,Activity 处在销毁状态。这四种状态的切换过程如图2.4 所示。(1)onCreat()(2)onStart()(3)onRestoreInstanceState()*(4)onResume()(3)onR
31、esume()(2)onCreat() (1)onRestart()(1)onSaveInstanceState()*(2)onPause()Running onResume()(1)onSaveInstanceState()*(2)onStop()PausedStopped *(可选)onDestroy()or Destroyedd图 2.4 Activity生命周期(2)Service(服务)Android 系统架构中, Service和Activity具有相同的地位。Service和Activity的区别就是Service处在后台运行没有图形界面。Service 运行起来以后也会具有自己
32、的生命周期。当需要在后台运行服务或者监控其他组件的状态变化的时候,就需要借助 Service 组件了。Service 跟 Activity 类似,也具有自己的生命周期,分别为:创建(onCreate)、开始(OnStart)、运行(ServiceRunning)、停止(OnStop)、销毁(OnDestroy)。(3)BroadcastReceiver(广播)顾名思义,BroadcastReceiver代表的就是广播消息接收器,该组件本质上是一种全局的监听器,可以监听的系统全部的广播。从代码的实现角度来看,它非常类似于事件编程中的监听器。与普通的事件监听器不同的是, BroadcastRece
33、iver 监听的事件源是 Android 系统中的组件,普通事件监听器监听的事程序中的对象,利用这点我们可以非常方便的实现系统中不同组件之间的通信。需要注意的是对广播的滥用会加重系统的功耗负载。(4)ContentProvider(内容提供者)Android系统中每个应用程序都运行在各自的Dalvik虚拟机中,也就是说应用程序之间是相互独立的。但是在很多情况下,应用程序之间也是需要实时地交换数据的,例如打电话的程序就要调用联系人应用中的电话号码。ContentProvider就是Android系统为跨应用进程之间的数据交换设定的一种标准。通常ContentProvider和ContentRes
34、olver是配套使用的,一个应用程序使用ContentProvider暴露自己的数据,使用ContentResolver访问别的应用程序的数据。2.3.3 Android 应用工程源码结构目前,Android 应用程序的主流开发平台是 Eclipse。通过在 Eclipse 中安装 ADT插件,用户可以非常方便的生成 Android 工程、管理虚拟机镜像(AVD),调试Android 应用程序、打包 Android 应用程序等等。在 Eclipse 环境下,一个典型的 Android 工程包括以下几个目录和文件:(1)Src/该目录下存放的是 Android 应用的源文件,都是用 java 语
35、言编写成的。(2)Gen/该目录下存放的系统自动生成的文件。其中最核心的文件就是 R.java。R.java文件是由 appt 工具根据应用的资源文件自动生成的,换句话说 R.java 就是 Android应用中的资源字典。需要注意的是,R.java 不可以删除,即使被删除了系统也会自动生成。(3)AndroidX.X/该目录下存放的是Android SDK。这是Android应用的程序开发包,其中提供了 Android 系统开放的所有 API。根据用户设定的不同,该目录下 SDK 的版本号也不尽相同。(4)Bin/该目录下存放生成的目标文件,比如java二进制文件、资源打包文件、Dalvik
36、虚拟机的可执行文件(.dex 后缀)。(5)Libs/该目录存放用户导入的第三方 jar 包。(6)Res/Res目录下存放了Android应用的所有资源,包括图片资源、颜色资源、字符串资源、尺寸资源等等。按照Android的规定,不同的资源都会放在不同的目录中,比如字符串资源就放在/res/value/string.xml 中。(7)AndroidManifest.xmlAndroidManifest.xml 文件是每个Android工程必备的,这是一个安卓应用的全局描述文件。AndroidManifest.xml文件中制定了应用的名称、图标、包含的组件、应用程序兼容的最低版本、以及要获得的
37、权限。2.4 SSH 框架简介SSH 框架在 Web 应用开发中是一种非常受欢迎的架构,它主要由 “struts”、“spring”、“hibernate”构成,能够帮助开发人员在短时间内开发出结构健壮、重用性强、方便后期维护的 Web 应用。从功能的角度我们可以将 SSH 分成三层:表示层、业务逻辑层、和数据持久层6。SSH 框架中,“spring”负责整个系统的底层架构,它主要负责 MVC 模型结构分离,控制业务调用流程;“hibernate”框架实现了对 JDBC 的轻量级封装,提供了对持久层的支持;“struts”负责总体的管理。采用 SSH 框架后,彻底实现了业务逻辑层和持久层的分离
38、,无论前端怎样变化,都不会对模型造成影响,数据库结构的改变也不会影响到前端。SSH 框架模型如图 2.5 所示:业务逻辑层控制层控制层数据源/连接池HibernateDAO组件 自动装配Spring Ioc容器 AOP支付 业务逻辑组件Spring声明式事物 Struts2Struts XMLAction JSPFreeMaker等Hibernate ORMHibernate 查询Hibernate 其他服务HibernateSessionFactoryData Transfer ObjectDomain Model Object 图 2.5 SSH架构结构图2.5 Quartz调度框架Qua
39、rtz是一种由Java写成的开源系统框架。应用该项技术我们可以为一项作业创建简单或复杂的调度,提高开发效率。在系统的开发过程中,我们可能需要周期性地执行一些任务,或者定时执行某些任务,这时我们就需要借助Quartz 技术了。2.5.1 Quartz存储方式Quartz 主要支持两种存储方式:(1)JDBC类型的存储。JDBC指的是Java数据库连接,它是一种专门负责连接并操作数据库的标准。使用该方式是需要安装特定的JDBC驱动程序和后台数据库。(2)RAMJobStore 机制。这是一种性能极好、易于使用配置的调度机制,从字面意思我们就可以看出,它将调度信息保存在内存中。但缺点就是当机器重新启
40、动的时候所有的调度信息都会丢失。2.5.2 Quartz触发器Quartz 框架中定义了触发器机制和触发器类型,在该触发器机制下作业和对作业的调度是可以分离的,而作业被调度的时间点是由触发器决定的。常用的触发器有以下两种类型:(1)CronTrigger。该触发器是为复杂的任务调度设计的。如果我们要在某月的一号和十五号执行某个任务,我们就应该选用这种触发器。(2)Simple Trigger。从字面意思我们就可以知道这是一种用于简单任务调度的触发器。如果我们需要一个任务在一个固定的时间点执行的话就选用这种触发器,它非常类似与 Java 语言中的 Timer(定时器)。2.5.3 Quartz调
41、度器调度器是Quartz框架的核心,它借助于Quartz框架中的一些重要组件管理Quartz运行时的环境。Quartz的架构是一种基于多线程的架构,在该框架启动的时候,它会初始化一系列的worker线程,这些线程主要被调度器调用来执行预设好的任务。这就是Quartz能够并行执行多个任务的基本原理。2.5.4 Quartz在本系统中的应用在系统的正常运行中,随时会面临库存的更新事件,比如有新的商品上架了或者旧的商品下市了,因此优秀的调度机制是非常重要的。Quartz 框架恰好为我们提供了良好的调度接口,可以显著提高程序的开发效率。2.6 本章小结本章介绍了 Java 语言的特点、团购系统使用的架
42、构、轻量高效的 SSH 框架和 Android 系统相关的内容。为接下来的系统需求分析和程序开发奠定基础。第3章 系统分析随着手机上网用户数量的激增、智能手机平板电脑的普及、无线上网速度的提升、上网资费的下降,借助手机进行网上购物成为一种必然的趋势。而网络团购作为一种新型的网购模式,由于具有较高的品牌知名度、占有较大的市场份额、服务体系完善、售后好、产品质量稳定等特点,而且相比于传统电商而言,其价格也低于产品市场最低零售价,能降低消费者成本,并且产品的质量也有很好的保证。因此,网络团购模式也越来越受到人们的青睐。目前,国内的各大团购网站(美团、百度糯米、大众点评等)均针对自己网站的特点,推出了
43、对应的手机团购软件。在这样一个大的背景下,作者也尝试在安卓平台上实现这种类型的手机团购应用。该团购系统的业务逻辑一共分为六部分,用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。3.1系统结构分析整个系统可以分为客户端和服务器端,客户端可以实现用户的注册和登录,可以进行商品搜索,商品浏览,商品购买,订单管理,购物车管理,收藏夹管理等功能。服务器端可以实现会员管理,团购商品增加、删除、查找、修改和订单管理等功能。具体系统结构如图3.1所示。 团购系统 客户端 服务端 订单管理 商品购买 商品浏览 商品搜索 注册登录 收藏夹 购物车 会员管理 商品管理 商品修改 商品查
44、找 商品删除 商品增加图 3.1 系统结构图3.2业务模块分析在该小节中将结合客户端角度的系统用例图描述六个重要模块的具体功能。这六个功能模块分别是:用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。在本节接下来的部分中将详细介绍这六个功能模块的需求分析信息。手机团购应用程序系统用例图见图3.2 所示。收藏商品用户登录提交订单个人中心浏览商品加入购物车用户注册用户地址管理收藏夹管理订单管理商品浏览图 3.2 系统用例图3.2.1 注册登录模块分析注册模块。该模块规定了账号的格式、密码的格式和长度。账号格式为一个已经注册的有效邮箱地址,如果用户输入的邮箱地址格式错误,
45、系统要弹出错误提示信息。密码由数字、英文字母构成,长度为 8-16 位,在用户进行注册的时候,应该让用户输入两次密码,并确保两次输入的密码一致,用户注册账号成功后会自动登录并跳到系统首页。登录模块。用户填写的账号、密码信息在通过服务器端的验证后才可以成功登录,系统能够弹出用户账号或者密码错误的提示信息。用户登录成功后会进入系统首页,登录失败后还停留在在登录界面用户可以点击取消按钮跳到系统首页。3.2.2 商品信息展示模块分析商品信息模块主要由四部分构成,分别是:商品分类、商品简略信息展示、商品详细信息展示、商品列表项展示。商品分类。商品分类包括一级分类和二级分类。一级分类包括美食、娱乐、生活、酒店旅游、网购和其他。二级分类在一级分类的基础上对商品进行了更细致的展示。商品列表。根据用户选择的不同排序方式,商品将按照对应的方式显示。这四种排序方式分别是:默认排序、按价格排序、按折扣排序、按发布时间排序。默认排序实际上就是按照销量来排序,价格排序就是按照商品价格的高低来排序;折扣排序就是按照一件商品的折扣程度进行排序;发布时间排序就是按照商品发布的时间先后来进行排序。商品简略信息展示。商品简略信息展示界面显示“商品名称、商品价格、商品图片、商品折扣”四种类型的信息。用户在点击商品图片对应的区域之后就可以进入显示商品详细信息的界面。商品详细信息展示。在商品详细信