赞
踩
此为本人本科阶段某课程的课程设计,内容较多,仅供参考,并不适合所有人。
因为能力有限,可能有地方有误,望以指正。
近几年来,网络事业,特别是Internet发展速度之快是任何人都始料不及的。目前、由于Internet表现出来的便捷、快速等诸多优势、已经使它成为社会各行各业、甚至是平民大众工作、生活不可缺少的一个重要组成部分。书籍交易网站就是Internet和电子商务发展的产物,近几年在我国发展迅猛,如同一些书店纷纷在各地开设分店以拉近书店与顾客间距离一样。随着科学技术得分速发展,Internet这个昔日只被少数科学家接触和使用的科研工具已经成了普通百姓都可以触及的大众型媒体传播手段。随着现今全民素质和科学技术水平的不断提高,知识更新的越来越快。人们随时都会有被淘汰的危机,为了不让社会淘汰,做到与时俱进就必须多读书不断的学习,21世纪是网络的时代、信息的时代,时间是非常宝贵的,人们由于种种原因没有时间到书店去,也不知道哪家书店有自己需要的书籍,同时那些传统书店的经营者又没什么好的方法让人们知道我这就有顾客需要的书籍,这种买卖双方之间信息交流上的阻碍成为“网上书城”网站发展的原动力。
网上书城的建立可以跟好的解决这方面的问题,向广大用户推出的是一种全新的网上信息服务,旨在书店与消费者之间架起了一座高速、便捷的网上信息桥梁。随着社会的发展、线下实体店销售的方式已经不可避免的显示出它在时间、空间等方面的局限性,广大的人民群众迫切的需要打破这种局限性。在这种要求下、基于网络的电子商务产生了。它的出现不但解决了传统销售方式的缺点、而且给了广大消费者更大的选择空间、促进了图书的优化配制、有效的避免了商家的恶性竞争。所以像网上书店系统这种电子商务的发展壮大也是不可避免的。
网上书店系统作为一种典型的系统也迅速的发展并深入人们的日常生活中,它使人们足不出户就可以挑选自己喜欢的各种图书,大大缩短了人们的购物时间,提高了购物效率。网上书店系统是建立在互联网上的一种进行商务活动虚拟网络空间,是一个为商务的顺利运营提供保障的管理环境。相对于实体书店,网上书店有以下优点:营业时间不受限制、经营管理更加科学、浏览人群广泛等。其基本功能有登录注册、浏览商品、商品管理、购买商品和系统管理。
Android是一个开放源代码的移动操作系统,由Google公司领导开发团队所开发。它最初主要应用于智能手机和平板电脑等移动设备,并且现在也扩展到其他设备上,例如智能手表、智能家居、汽车信息娱乐系统等。Android操作系统提供了一系列的基础功能模块和应用程序,同时也支持开发者创建各种类型的第三方应用程序以满足用户需求。
1. Java编程语言
Android应用程序通常使用Java语言编写。Java具有简单易学、可靠性高等优点,在Android开发中得到广泛应用。Java是一种广泛使用的计算机编程语言,最初由Sun Microsystems公司于1995年推出。它是一种面向对象的程序设计语言,旨在使应用程序具有代码可重用性、跨平台性和安全性等特性。
2.Spring
Spring是一个开源的Java框架,它提供了全面的解决方案来简化企业级应用程序的开发。Spring框架的核心原则是基于依赖注入和面向切面编程,以提高代码的可测试性、可维护性和可扩展性。
Spring框架的一个主要特点是依赖注入。它通过将对象之间的依赖关系交由框架来管理和注入,从而减少了手动管理对象的复杂性。开发人员只需定义好对象之间的依赖关系,Spring框架会负责在运行时自动完成对象的创建和注入。这种松耦合的设计使得代码更加灵活和可测试。
另一个重要特性是面向切面编程。通过声明式的方式,开发人员可以将切面应用于不同的方法或类,并在特定的时机插入相应的逻辑,从而实现对横切关注点的统一处理。
Spring还提供了IoC容器来管理应用程序中的对象和依赖关系。IoC容器负责对象的创建、配置和生命周期管理,开发人员只需通过配置或注解描述对象之间的关系,Spring框架将负责实现对象的解耦和管理。
3.Spring MVC
Spring MVC是基于Spring框架的一种用于开发Web应用程序的模块,它提供了一种灵活、高效的方式来构建和管理Web应用的MVC架构。通过Spring MVC,开发人员可以将应用程序的业务逻辑、数据处理和用户界面分离,使代码更加清晰、可维护和可测试。
在Spring MVC中,控制器(Controller)负责处理用户的请求并调度适当的业务逻辑。控制器接收HTTP请求,根据请求的URL路径、请求参数等信息,调用相应的服务方法进行处理,并将处理结果封装为Model对象。视图(View)负责将Model对象渲染为用户可见的界面,常用的视图技术包括JSP、Thymeleaf、FreeMarker等。模型(Model)代表应用程序的数据,包括从数据库中检索的数据、用户输入的数据等。
Spring MVC框架提供了一组丰富的注解和配置选项,使开发人员可以轻松地定义请求映射、参数绑定、数据验证、异常处理等功能。通过注解,可以将控制器的方法与特定的URL路径关联起来,从而实现请求的路由和分发。另外,Spring MVC还支持拦截器机制,可以在请求处理的前后添加自定义逻辑,例如身份验证、日志记录等。
使用Spring MVC的好处之一是它与Spring框架的紧密集成,可以充分利用Spring框架提供的依赖注入、事务管理、AOP等特性。通过依赖注入,可以方便地将服务层、持久层等组件注入到控制器中,实现业务逻辑的解耦和可重用性。
4. SQLite数据库
SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。
5.SharedPreferences
SharedPreferences是Android平台上一个轻量级的数据存储方式,主要用于保存应用的一些常用配置,如用户的登录信息、程序的设置等。SharedPreferences使用键值对(key-value)的形式存储数据,其本质是将数据保存在一个XML文件中,通常位于手机data/data目录下,只有当手机root后才会显示该目录。
SharedPreferences具有以下特点:数据的存储位置,在Android应用的私有文件夹下。数据的存储方式,以键值对形式进行存储,使用键来唯一标识一个值。数据的访问方式,通过SharedPreferences对象,使用putXXX()方法存储数据,使用getXXX()方法获取数据。数据的类型,SharedPreferences支持基本数据类型,如boolean、float、int、long、string等。数据的存储模式,SharedPreferences的存储模式是私有的,即其他应用无法访问到其存储的数据。数据的生命周期,SharedPreferences中的数据会一直存在,除非程序卸载或手动清除,否则数据不会自动消失。
总的来说,SharedPreferences是一个简单易用、方便快捷的数据存储方式,适用于存储一些常用配置信息,但是它并不适合用于存储大量的数据。
需求分析是对产品或系统所需要的功能、性能和质量要求进行详尽的确定和分析的过程。对于网上书店来说,需求分析主要是为了明确用户的需求和市场定位,以便为后续的网站设计和开发提供指导。需求分析包括用户需求、功能需求、性能需求、环境需求等方面的分析。通过深入了解用户的需求和行为习惯,可以更好地满足用户的购物体验,提高用户的忠诚度和满意度。同时,通过市场定位和竞争分析,可以制定出更加精准的市场策略,提升网上书店的市场份额和品牌知名度。
网上书店系统是面向消费者的一个系统,可以在该系统中进行浏览所需书籍信息然后进行购买、结算和查看订单等操作。本章节的需求分析分为两部分,下面将对每一部分做出详细的阐述。
1.用户的业务流程:
下载和安装:用户首先需要在应用商店或官方网站上下载并安装网上书店购物APP。注册和登录:打开APP后,新用户可以选择进行账号注册,提供必要的个人信息,并创建一个账号和密码。已经注册的用户可以直接使用之前注册的账号和密码登录。在登录的页面中也可以选择记住密码,以便下次直接登录。首页浏览:登录后,用户会进入书籍购物APP的首页,可以浏览所需购买的书籍。书籍选择:用户可以根据自己的需要选择不同类型的书籍,如科幻、玄幻、历史等。
书籍详情:用户点击感兴趣的书籍,进入书籍商品的详细页面,可以查看书籍的简介、作者信息、章节目录、价格等。购物车:用户可以将喜欢的书籍加入书架,方便购买。用户还可以对购物车中的书籍进行排序、删除等管理操作。同时在购物车结算中的时候需要添加收货地址和电话。订单管理:同时在支付完之后生成订单,可以查看订单或者删除订单。个人中心:在该模块中可以查看个人信息、修改密码、查看关于app和退出登录等操作。
2.管理员的业务流程
系统管理:管理员负责对小说阅读APP的系统进行管理,包括服务器运维、数据库维护、安全防护等工作。内容审核:管理员需要审核用户上传的小说内容,判断是否符合平台的规定和政策。这包括检查小说的版权情况、内容是否违规或有不当信息等。广告管理:管理员负责管理广告投放,包括审核广告内容、控制广告数量和频次,以确保广告的质量和用户体验。用户管理:管理员监控和管理用户的活动,包括注册、登录、违规行为处理等。他们可能需要根据用户投诉或举报处理违规行为,例如虚假发布、侵犯他人权益、非法内容等。技术支持:管理员需要向用户提供技术支持,解答用户遇到的问题和疑问,帮助用户解决使用过程中的困难和故障。数据统计与分析:管理员通过数据统计与分析来了解用户行为和喜好,优化平台的功能和服务。他们可能会收集和分析阅读量、用户留存率、用户反馈等数据指标。运营推广:管理员参与小说阅读APP的运营和推广活动,如制定运营计划、合作推广渠道、策划推广活动等,以提高用户量和活跃度。版权维护:管理员需要关注小说版权问题,及时处理侵权投诉和申诉。他们可能与作者、出版社或权利方沟通,确保平台上的小说内容合法有序。
1.用户
(1)用户注册:用户在打开APP后,可以选择进行账号注册。注册过程中,用户需要输入用户名和自己的密码,然后进行注册。
(2)登录系统登录账号:注册完成后,用户可以使用之前注册的用户名和密码登录。同时也可以记住密码,方便下次登录。
用户功能需求分析的用例图如图2.1所示。
图2.1 用户功能用例图
2.管理员
(1)登录功能。管理员进入登陆界面后,管理员根据系统的提示信息输入自己的账号密码,点击登录按钮进行登录,如果管理员填写的内容与数据库中的数据符合,则管理员登录成功,此时系统会跳转到后台管理员的主页面,反之,管理员登录失败返回首页。
(2)系统管理:管理员负责对小说阅读APP的系统进行管理,包括服务器运维、数据库维护、安全防护等工作。服务器运维:系统管理员需要监控服务器的运行状态和性能,确保服务器的稳定性和可用性。他们会进行服务器配置、部署和升级,处理服务器故障和优化服务器资源利用。数据库维护:数据库是存储和管理用户数据的关键组成部分,系统管理员负责对数据库进行维护和管理。他们会执行数据库备份、恢复和优化操作,确保数据的完整性、安全性和性能。安全防护:系统管理员需要制定和实施安全策略,保护系统免受安全威胁和攻击。他们会监测系统日志和网络流量,及时发现和应对潜在的安全漏洞,进行安全补丁更新,设置访问权限和防火墙等措施。故障排除和支持:在系统出现故障或用户遇到问题时,系统管理员负责进行故障排除和技术支持。他们会收集和分析故障信息,与开发团队合作解决问题,并为用户提供必要的技术支持。性能优化:系统管理员会监测系统的性能,并进行必要的优化措施,以提高系统的响应速度和用户体验。他们可能通过调整服务器配置、数据库索引优化、缓存策略等方式来提升系统性能。更新和升级:系统管理员需要关注软件和硬件的更新和升级,并对系统进行规划和安排。
管理员功能需求分析的用例图如图2-2所示。
页面布局设计指的是在设计网页、移动应用或软件界面时,决定和安排各个元素(文字、图像、按钮等)在页面上的位置、大小和相互关系的过程。通过合理的页面布局设计,可以使用户更容易理解和使用界面,提升用户体验和界面美观度。
1. 登录:登录是打开小说app后最初始的界面,需要有多种登录方式,也要有注册功能,登录界面也必须整洁干净。系统登录设计如图3-1所示
图3-1 系统登录设计
2. 小说列表页面:这是用户在选择小说时所看到的页面。应该以清晰的分类和排序方式展示小说列表,包括封面、标题、作者和简介等信息,供用户浏览和选择。
图3.2 管理员主页面设计
在需求分析阶段我们对数据库的开发做了详细的分析工作,确立了整体架构与功能。本章主要进行系统的总体设计,包括系统框架设计、软件功能设计、数据库实体设计和页面设计。
系统分为客户端(Android应用)和服务器端两部分。客户端负责展示小说内容、用户交互以及向服务器端请求数据,而服务器端则负责处理客户端请求,调用相关业务逻辑和数据库操作,并将结果返回给客户端。
在客户端部分,我们使用Android Studio进行开发,并使用Java语言编写Android应用。客户端的主要功能包括小说的展示、搜索、书签管理等。通过Android的界面设计和交互逻辑,用户可以方便地阅读和管理小说。
在服务器端,我们使用Spring框架和Spring MVC模块来构建业务逻辑和Web服务。Spring框架提供了依赖注入、面向切面编程等功能,帮助我们实现可扩展和易于维护的代码结构。Spring MVC模块则用于处理客户端的请求和响应。
服务器端的业务逻辑主要包括小说的查询、分类、推荐等功能。通过定义相应的控制器(Controller)和服务层(Service),我们可以将业务逻辑进行组织和处理。控制器负责接收和解析客户端的请求,调用相应的服务层方法进行业务处理,然后将结果封装为JSON或其他适当的数据格式返回给客户端。
在服务层,我们使用Spring框架来管理业务逻辑的实现。服务层定义接口和实现类,通过注解和依赖注入来处理业务逻辑和事务管理。服务层可以调用数据访问层的方法,处理业务逻辑,以及与其他服务层组件进行协调和交互。
数据访问层使用MyBatis框架来进行数据持久化操作。MyBatis提供了灵活的SQL映射和数据库访问功能,通过配置数据源和数据库连接信息,我们可以定义数据访问接口和映射文件,实现与MySQL数据库的交互。数据访问层负责执行SQL语句,进行数据库的增删改查操作,并将结果返回给服务层进行处理。
最后,我们使用MySQL作为后端数据库存储小说的相关数据。在MySQL中创建相应的数据表,设计合适的表结构,以便存储小说内容、用户信息等数据。数据表之间可以建立关联关系,以支持数据的查询和检索。
这个系统框架设计基于Spring+Spring MVC+MyBatis+MySQL,通过合理划分客户端和服务器端的功能,实现小说的展示、交互和数据管理。这个框架提供了良好的可扩展性和可维护性,使开发人员能够快速构建出功能完善的Android小说阅读器。
本系统主要涉及到的是用户、管理员:(1)用户:用户注册、用户登录、搜索图书、阅览图书、写作发布作品,个人主页管理。(2)管理员功能,对用户信息修改进行验证,负责用户写作的审核管理小说,对小说的章节进行管理、管理用户、管理分类、管理评论。
该系统的软件功能结构图,如图4-1所示。
Android的电子书阅读器各个功能点具体介绍如下:
1.用户功能:
(1)用户注册功能:用户输入个人信息提交注册信息,系统自动进行数据校验,通过校验的数据在提交之后会自动切换到登录界面。
(2)用户登录功能:用户可以选择账号密码登录,也可以通过“微信”“QQ”“GitHub”登录,若输入错误的账号或密码则提示“请输入正确的手机号”,“请输入正确的密码”,登录时选择“记住密码”下次登录时可以更快进入,登录成功后进入个人中心界面。
(3)用户搜索图书功能:在首页的上方点击搜索按钮,输入所需图书的名字进行搜索,搜索栏下方可以浏览搜索记录,点击“清楚搜索记录”可以清空搜索记录。
(4)用户阅览图书功能:用户可以在自己的书架上点击图书即可进行该图书的阅读,向下滑动换页。
(5)用户写作功能:在“写作”界面点击“+”进入写作,写作完毕等待审核。
(6)用户管理个人中心功能:用户可以对自己的收藏、浏览记录、离线缓存进行查看。
2.管理员功能:
(1)管理小说:对小说的章节进行管理。
(2)管理用户:管理读者和编辑。
(3)管理分类:管理作者和添加分类。
(4)管理评论:对用户评论进行管理。
数据库设计是指针对于一个给定的应用环境,构建最优的数据库模式。建立数据库及其应用系统,使之能够有效的存储更多数据,以满足不同用户在不同场景下的各种需求。本章包含数据库概念结构设计、数据库逻辑结构设计和数据库物理结构设计。数据库设计在设计软件系统中的过程中起着至关重要的作用,任何数据信息和业务操作都需要得到数据库的支持。通常开发人员在开发与设计数据库时有两个重要方面:分析数据库、设计和实现数据库。数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。它是整个数据库设计的关键,本文将用关系模型图来展示各个实体的概念模型。
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更好、更准确地用某一数据库管理系统实现这些需求。
概念模型的主要特点是:
1.能真实、充分反映现实世界,包括事物和事物之间的联系,是现实世界的一个真实模型。
2.易于理解,可以用它和不熟悉计算机的用户交换意见,方便沟通。用户积极参与是数据库设计成功的关键。
3.易于更改,当应用环境和业务需求改变时,容易对概念模型修改或扩充,方便后续的开发。
4.易于向关系、网状、层次等各种数据模型转换。
概念模型是各个数据模型的共同基础,它比数据模型更独立、更抽象,从而更加稳定。描述概念模型的有力工具是E-R模型,E-R模型涉及的主要概念,包括实体、属性、实体之间的联系等。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体型的实体集之间的联系。
E-R模型实体之间的联系分为:
1.一对一联系
2.一对多联系
3.多对多联系系统设置四种用户是因为他们拥有的菜单权限和数据权限不一样。涉及的功能模块也不一样,通过分析我们确定拟开发的系统主要包括以下实体:用户实体、小说实体、管理员实体、分类实体、书签实体、评论实体。各实体具体介绍如下:
1.用户实体
属性:用户名、密码、邮箱、性别、电话号码、昵称、头像等,如图4-2所示
图4-2用户实体属性图
2.小说实体
属性:标题、作者、封面图片、简介、内容、分类、标签等,如图4-3所示
图4-3小说实体属性图
3.管理员实体
属性:用户名、密码、真实姓名、手机号码、邮箱等,如图4-4所示。
图4-4管理员实体属性图
4.分类实体
属性:分类名称、描述、封面图片等,如图4-5所示。
图4-5分类实体属性图
5.书签实体
属性:用户id、小说id、书签位置、创建时间等,如图4-6所示。
图4-6书签实体属性图
6.评论实体
属性:用户id、小说id、内容、创建时间等,如图4-7所示。
图4-7评论属性图
根据系统的功能,可以确定各个实体间的关系,从而推导出系统E-R图,。-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来。系统E-R图,如图4-8所示。
图4-8系统E-R图
上文通过概念结构设计得到了项目需要实体的E-R图,根据E-R图的描述,以及项目的实际开发需求,需要在每个实体添加一个编号(即ID)为主键,并且需要针对多对多关系,设计中间表,并且以中间表两端的ID为外键设置在中间表上,对于一对多关系,需要在多表端加上一个关联一表ID的外键。
1. 用户表(User):用户ID(id):主键、用户名(username)、密码(password)、姓名(name)、手机号码(phoneNumber)、邮箱(email)、创建时间(creationDate)。
2.管理员表(Admin):管理员ID(id):主键、用户名(username)、密码(password)、姓名(fullName)、手机号码(phoneNumber)、邮箱(email)、创建时间(creationDate)。
3.小说表(Novel):小说ID(id):主键、标题(title)、作者(author)、内容(content)、创建时间(creationDate)、管理员ID(adminId):外键,关联到管理员表的管理员ID。
4.分类表(Category):分类ID(id):主键、分类名称(name)、描述(description)。
5.小说分类关联表(NovelCategory):小说ID(novelId):外键、关联到小说表的小说ID、分类ID(categoryId):外键,关联到分类表的分类ID。
6.书签表(Bookmark):书签ID(id):主键、用户ID(userId):外键,关联到用户表的用户ID、小说ID(novelId):外键,关联到小说表的小说ID、书签位置(position)、创建时间(creationDate)。
7.评论表(Comment):、评论ID(id):主键、用户ID(userId):外键,关联到用户表的用户ID、小说ID(novelId):外键,关联到小说表的小说ID、内容(content)、创建时间(creationDate)。
本系统在实现的过程中主要创建的表有:用户表、管理员表、小说表、分类表、小说分类关联表、书签表、评论表
1.用户表,如表4-1所示。
表4-1用户表
标识符 | 字段名 | 类型 | 长度 | 备注 |
User_id | 用户ID | bigint | \ | 主键 |
续表4-1
User_password | 密码 | varchar | 255 | |
User _Name | 姓名 | varchar | 255 | |
User_phoneNumber | 手机号码 | varchar | 11 | |
User_ email | 邮箱 | varchar | 255 | |
User_ creationDate | 创建时间 | \ | \ |
2. 管理员表,如表4-2所示。
表4-2管理员表
字段名 | 类型 | 长度 | 备注 | |
Admin_id | 管理员ID | bigint | \ | 主键 |
Admin_name | 用户名 | varchar | 255 | |
Admin_password | 密码 | varchar | 255 | |
Admin_fullname | 姓名 | varchar | 255 | |
Admin_ phoneNumber | 手机号码 | varchar | 11 | |
Admin_email | 邮箱 | varchar | 255 | |
Admin_ creationDate | 创建时间 | \ | \ |
3. 小说表,如表4-3所示。
表4-3小说表
标识符 | 字段名 | 类型 | 长度 | 备注 |
Novel_id | 小说ID | bigint | \ | 主键 |
Title | 标题 | varchar | 255 | |
Author | 作者 | varchar | 255 | |
Content | 内容 | varchar | 255 | |
Novel_creationDate | 创建时间 | \ | \ | |
Admin_id | 管理员ID | bigint | \ | 外键 |
4. 分类表,如表4-4所示。
表4-4分类表
标识符 | 字段名 | 类型 | 长度 | 备注 |
Category_id | 分类ID | bigint | \ | 主键 |
Category_name | 分类名称 | varchar | 255 | |
Descrition | 描述 | varchar | 255 |
5. 小说分类关联表,如表4-5所示。
表4-5小说分类关联表
标识符 | 字段名 | 类型 | 长度 | 备注 |
Novel_id | 小说ID | bigint | \ | 外键 |
Category_id | 分类ID | bigint | \ | 外键 |
6. 书签表,如表4-6所示。
表4-6书签表
标识符 | 字段名 | 类型 | 长度 | 备注 |
Bookmark_id | 书签ID | bigint | \ | 主键 |
User_id | 用户ID | bigint | \ | 外键 |
Novel_id | 小说ID | bigint | \ | 外键 |
Position | 书签位置 | varchar | 255 | |
creationDate | 创建时间 | \ | \ |
7. 评论表,如表4-7所示。
表4-7评论表
标识符 | 字段名 | 类型 | 长度 | 备注 |
Remark_id | 评论ID | bigint | \ | 主键 |
User_id | 用户ID | bigint | \ | 外键 |
Novel_id | 小说ID | bigint | \ | 外键 |
Position | 书签位置 | varchar | 255 | |
creationDate | 创建时间 | \ | \ |
系统的主要功能如表5-1所示。
表5-1实现的主要功能细节
序号 | 功能细节 | 备注 |
1 | 注册功能 | 用户输入个人信息提交注册信息创建账号 |
2 | 登录功能 | 用户输入正确的账号密码进入系统界面 |
3 | 搜索图书 | 用户输入书名直接进行搜索 |
4 | 阅览图书 | 点击图书进行阅读,下滑浏览下一页 |
5 | 用户写作 | 用户发表自己的作品并对其进行审核 |
6 | 用户管理个人中心 | 用户查看个人信息包含版本更新和关于本系统 |
7 | 管理小说 | 管理员对图书进行分类,对不合规的图书进行处理 |
8 | 管理用户 | 管理员对读者进行信息管理 |
9 | 管理分类 | 管理员对图书作者进行管理分类和介绍 |
10 | 管理评论 | 管理员根据本系统规定进行评论审查管理 |
1.流程设计
(1)用户按提示输入个人信息;
(2)获取用户手机号验证码;
(3)用户输入年龄时只能输入数字字符,其他字符不予显示和添加;
(4)用户设置密码需要保证两次输入相同;
(5)系统自动进行数据校验,通过校验的数据在提交之后会自动切换到登录界面。
2.技术应用
用户进入登录界面点击“用户注册”,界面跳转到activity_register.xml注册界面,在RegisterActivity.java中注意设置用户输入信息时需要注意的要求,用户输入完毕,系统把数据提交给数据库,并反馈用户注册成功。
3.实现效果
注册界面如图5-1所示。
图5-1 注册界面
1.流程设计
(1)用户可以选择账号密码登录和手机验证码登录,也可以通过“微信”、“QQ”、“GitHub”登录;
(2)若输入错误的账号或密码则提示“请输入正确的手机号”,“请输入正确的密码”;
(3)选择手机验证登录,输入手机号并获取验证码;
(4)登录时选择“记住密码”下次登录时可以更快进入;
(5)用户若忘记密码,则点击“忘记密码”对账号密码进行重置;
(6)系统自动进行数据校验,通过校验的数据在提交之后会自动进入系统界面。
2.技术应用
用户登录时输入账号密码时,数据库根据指定条件查询记录,并返回结果数据队列,验证用户账号和密码是否正确,用户通过手机号获取验证码登录时,系统读取手机号并返回用户验证码。
用户忘记密码时,点击“忘记密码”界面跳转到activity_loginforget.xml注册界面,在LoginForgetActivity.java中注意设置用户重置时需要注意的要求,用户输入完毕,系统把数据提交给数据库。
3.实现效果
登录界面如图5-2所示
。
图5-2 登录界面
密码重置界面如图5-3所示
图5-3 密码重置界面
1.流程设计
(1)在首页的上方点击搜索按钮;
(2)输入所需图书的名字进行搜索;
(4)系统连接到数据库,对数据库的图书进行索引并反馈给用户;
(3)搜索栏下方可以浏览搜索记录;
(4)点击“清楚搜索记录”可以清空搜索记录。
2.技术应用
用户点击搜索按钮,界面跳转到search_layout.xml搜索界面,设置初始化搜索框变量,绑定视图和组件,设置点击搜索按键后的操作,设置点击返回按键后的操作,通过复写其onMeasure方法、达到对ScrollView适配的效果,设置数据库变量,用于存放历史搜索记录。
3.实现效果
搜索界面如图5-4所示。
图5-4 搜索界面
1.流程设计
(1)用户可以在自己的书架上点击图书即可进行该图书的阅读;
(2)也可以在书城对书城里的图书进行阅读;
(3)向下滑动可以换页继续阅读。
2.实现效果
阅览图书界面如图5-5所示。
图5-5 阅览图书界面
1.流程设计
(1)在“写作”界面点击“+”进入写作;
(2)输入作品名、章节名、正文行进写作编辑;
(3)编辑完毕点击“发布”;
(4)写作完毕等待审核。
2.技术应用
用户点击“写作”,系统跳转到newwritting.xml写作界面,得到toolbar对象,添加menu,为menu设置监听事件,设置点击新写一本按钮。
3.实现效果
写作界面如图5-6所示。
图5-6 写作界面
1.流程设计
(1)用户可以查看自己的收藏;
(2)查看浏览记录;
(3)查看离线缓存;
(4)用户可以检查并更新版本。
管理员功能:
(1)管理小说:对小说的章节进行管理。
(2)管理用户:管理读者和编辑。
(3)理分类:管理作者和添加分类。
(4)管理评论:对用户评论进行管理。
2.技术应用
点击“个人中心”,系统跳转到activity_user.xml个人中心界面,把对应的account设置到telphone文本框, 得到toolbar对象, 设置导航图标, 为NavigationIcon设置监听事件, 点击退出登录按钮弹出对话框并添加“取消”按钮,添加“确定”按钮。
3.实现效果
个人中心界面如图5-7所示。
图5-7 个人中心界面
流程设计
(1)管理员管理小说,对小说的章节进行管理;
(2)管理员管理用户,管理读者和编辑;
(3)管理员管理分类,管理作者和添加分类;
(4)管理员管理评论,对用户评论进行管理。
软件测试是检查实际结果与预期结果是否匹配并确保软件系统无缺陷的活动。软件测试还有助于识别产品与实际需求不符或是缺失项。测试活动既可以手动完成,也可以使用自动化工具完成。有些人更喜欢将软件测试称为白盒和黑盒测试。
软件测试的目标:
软件测试可确保所提供的软件符合预期的功能要求,或者该软件的实际输出功能与预期的功能之间是否存在差异,并且该软件是否满足功能性,容错性和稳定性的要求。一般来说,意外的功能,隐藏的错误和软件缺陷是从用户的角度进行测试的。从开发人员的角度来看,我们希望开发的软件没有错误,并且可以处理异常,成为成熟,可靠,高质量的“艺术品”,使开发的软件可以满足客户要求,且易于使用,以提高用户使用软件的信心。
硬件环境:
Windows操作系统,CentOS 7 操作系统。
软件环境:
IntelliJ IDEA、MySQL、Chrome、VsCode、Postman、Tomcat 8.0。
功能测试也叫做行为测试,也就是对系统各个功能进行验证,根据测试用例,检查系统是否达到用户需求。功能测试也叫黑盒测试或数据驱动测试。测试人员不需要去了解系统的内部结构和内部编码,只需要测试系统的各项功能,按照需求编写相关的测试用例。用预期结果和实际结果进行对比,从而提高系统性能,提高用户体验,达到用户需求。
用户进入到首页界面后,选择手机号码,微信,QQ,或者GitHub授权登陆,页面会跳转到第三方授权登录页面进行登录,在第三方平台用户确认授权登录后获取用户授权登录时生成的密码,在服务器端进行判断,如果没有使用可以顺利登录该系统,否则不能正常登录。或者忘记密码,可以用生成的手机验证码进行验证码登录,用户登录的测试用例如表6-1所示。
表6-1 用户登录测试用例表
用例ID | | 是否授权 | 密码是否被使用 | 测试结果 |
1 | 15937821514 | 是 | 否 | 登录成功 |
2 | 15937821514 | 是 | 是 | 密码被使用登录失败 |
3 | 15937821514 | 否 | 否 | 拒绝授权,登录失败 |
4 | 无 | 未执行 | 未执行 | 拒绝授权,登录失败 |
步骤如下:
1.运行系统,用户打开该系统并且进入系统主页,点击账号密码即可登录;2.测试用例1,用户使用手机号登陆并进行确认授权,授权成功,输入密码未被使用,登录成功。
3.测试用例2,用户使用手机号登陆并确认授权后输入的密码被使用,登录失败。
4.测试用例3,用户使用手机号登陆,未授权,未输入密码,用户拒绝授权,登录失败。
5.测试用例4,用户未使用手机号登陆,拒绝登录,登录失败。
用户在首页上方,点击搜索按钮,输入所需图书的名字进行搜索,点击确认,系统连接到数据库,对数据库的图书进行索引反馈给用户,输入或选择填充内容,系统后台会接收查找信息的申请与查找的图书,后台进行图书的信息进行安全验证,如果验证不通过,则提示用户参数错误,请更改正确后重新提交申请。如果验证通过,后台将图书的信息进行保存到数据库中并将图书的信息返回给用户,此时页面刷新并提示搜索成功。
修改用户信息的测试用例,如表6-2所示。
表6-2 搜索功能测试用例表
用例ID | 是否填充信息 | 是否点击确认 | 操作结果 |
1 | 是 | 是 | 操作成功 |
2 | 未全部填充 | 否 | 操作成功,只查找填充的信息 |
3 | 否 | 是 | 操作失败 |
4 | 是 | 否 | 操作失败 |
1.运行系统,一般用户登录系统,进入用户界面。
2.测试用例1,用户填充了要查找的信息,点击确认,操作成功。
3.测试用例2,用户填充了部分要查找的信息,没有填充完整,点击确认,操作成功,只有填充过的信息被查找出来。
4.测试用例3,用户没有填充要查找的信息,点击确认,操作失败。
5.测试用例4,用户填充了要查找的信息,没有点击确认,操作失败。
用户在“写作”界面点击“+”进入写作,输入作品名、章节名、正文,点击之后,进行写作编辑,正常情况下界面会弹出一个页面供用户进行编辑的页面,编辑完毕点击“发布”,点击确定。用户在没有登录的情况下点击登录按钮,系统会提示用户首先登陆,登录后进行页面的跳转。
用户写作测试如表6-3所示。
表6-3用户加入拼车测试用例表
用例ID | 用户登录 | 填充编辑信息 | 点击确认 | 操作结果 |
1 | 是 | 是 | 是 | 操作成功,系统更新数据 |
2 | 是 | 部分编辑信息 | 否 | 操作成功,系统更新数据 |
3 | 是 | 否 | 是 | 操作失败,提示填写信息 |
4 | 是 | 错误信息 | 是 | 操作失败,提示信息错误 |
5 | 否 | 未执行到 | 未执行到 | 操作失败,提示用户登录 |
步骤如下:
1.运行系统,用户进入该系统的写作页面,并编辑写作信息。
2.测试用例1,用户登录情况下,编辑写作信息后提交。系统提示编辑写作信息成功,并更新数据。
3.测试用例2,用户登录情况下,编辑部分写作信息后提交。系统提示编辑写作信息成功,并更新数据。
4.测试用例3,用户登录情况下,未进行编辑写作信息提交。系统提示请填写写作信息后再进行提交。
5.测试用例4,用户登录情况下,写作编辑错误信息后提交。系统提示请填写正确的信息后再次尝试提交。
6.测试用例5,用户未登录情况下,编辑写作信息,系统提示请登录后在进行操作。
用户在加入写作之后,点击退出写作按钮,界面上方会弹出一个确定和取消的提示信息,用户点击取消后,退出写作动作取消,当用户点击确定后,正常情况下系统会提示退出登录成功,并展示退出写作之后的信息。
用户退出写作测试用例表,如表6-4所示。
表6-4用户退出写作测试用例表
用例ID | 用户是否登录 | 用户是否加入写作 | 用户是否点击确认 | 操作结果 |
1 | 是 | 是 | 是 | 操作成功,退出成功 |
2 | 是 | 是 | 否 | 操作失败,用户主动放弃 |
3 | 是 | 否 | 未执行到 | 查询当前数据为空 |
4 | 否 | 未执行到 | 未执行到 | 操作失败,提示用户登录 |
5 | 否 | 未知 | 未知 | 操作失败,提示参数错误 |
步骤如下:
1.运行系统,查询当前写作信息。
2.测试用例1,用户登录该系统并且已经加入写作,用户点击退出写作并点击确认按钮,操作成功,退出写作成功。
3.测试用例2,用户登录该系统并且已经加入写作,用户点击退出写作,出现确认弹窗时,用户没有点击确认,故操作失败,用户主动放弃退出写作。
4.测试用例3,用户登录该系统但用户并没有加入写作,用户查询个人写作时数据为空,并未执行到退出写作场景,故操作失败,查询当前写作数据为空。
5.测试用例4,用户未登录本系统,不展示我的写作信息。故未执行到。
6.测试用例5,用户脱离当前页面,直接调用该接口操作。系统提示参数错误并提示用户进行登录。
系统性能测试是指对计算机系统、软件应用或网络应用等进行测试和评估,以确定其在特定条件下的性能表现。这些条件可以包括工作负载、数据量、并发用户数、网络带宽等。该测试主要包括系统压力测试和系统性能测试。
系统压力测试是一种对计算机系统、软件应用或网络应用进行测试的方法,旨在验证系统在高负载或极限条件下的性能和稳定性。在系统压力测试中,会模拟大量用户并发请求、大数据量以及其他可能导致系统性能下降的因素,将系统推向其设计极限。通过增加负载或压力,测试人员可以评估系统的性能表现,并确定系统在不同负载水平下的瓶颈点和故障情况。系统压力测试的目的是:
测试系统的负载容量:确定系统在特定负载条件下的性能极限和最大承载能力,避免系统在超出设计范围时崩溃或性能显著下降。
发现性能瓶颈:通过持续增加负载,找出可能影响系统性能的瓶颈点,例如数据库连接数、网络带宽、CPU利用率等,以便进行优化和调整。
评估系统稳定性:测试长时间运行或高负载条件下系统是否能保持稳定,并排查可能导致系统崩溃或异常退出的问题。
确保系统可靠性:测试系统在高负载条件下的响应时间和吞吐量,验证系统的可用性和用户体验,确保系统能够满足实际需求。
客观评估系统表现:通过性能指标的收集和分析,提供有关系统性能的数据支持,以便做出合理的决策和改进措施。
系统性能测试旨在评估计算机系统、软件应用或网络应用在特定工作负载下的性能表现。
常见的系统性能测试类型包括:
负载测试(Load Testing):模拟实际使用情况,施加预期负载并观察系统的性能情况。测试人员会逐渐增加并发用户数、事务量或数据量,以确定系统处理不同负载水平时的性能状况。
压力测试(Stress Testing):通过将系统推向其极限,测试系统在超出正常工作范围的高负荷条件下的表现。这种测试有助于确定系统的极限容量、资源耗尽点和异常行为。
并发测试(Concurrency Testing):验证系统在同时处理多个操作或请求时的性能和效率。测试过程中会创建并发用户,并观察系统的响应时间、吞吐量和并发性能。
容量测试(Capacity Testing):评估系统的最大容量和可扩展性,并确定系统在负载逐渐增长时的性能表现。这种测试有助于规划资源投入和预测系统未来的容量需求。
通过系统性能测试,可以识别潜在的瓶颈点、性能问题和异常情况,并根据测试结果进行系统调整和优化,以保证系统在各种条件下的稳定性和可靠性。
系统性能测试中的问题严重程度描述通常使用以下标准,如表6-5所示,
表6-5 问题验证程度描述
问题严重程度 | 描述 | 响应时间 |
阻塞 | 问题导致系统完全无法正常工作或无法完成基本功能,严重影响系统可用性。 | 立即 |
严重 | 问题会显著影响系统性能或功能,并可能导致用户体验大幅度下降。 | 优先处理 |
一般 | 问题对系统的功能或性能有一定影响,但不会导致系统崩溃或无法使用。 | 适当时间内解决 |
Android软件项目课程设计结束之际,感谢所有参与项目的队友,无论是在需求分析、系统设计、代码编写或其他方面的工作,我们的团队合作精神、创新意识和实践能力都让整个项目顺利完成。
这次课程设计,不仅仅让我们的知识更加牢固,还让我们意识到我们所学的知识能够与生活紧密的联系起来。这让我对自我有了更多的信心,因为我们在大学在学习真正对我们的生活有帮忙的知识和潜力。一个小小的课程设计,却让我有了大大的期望。我会更加珍惜此刻这么好的学习环境,努力学习知识,让自我在激烈的社会竞争中立足,也把自我所学的知识运用到生活实际中来回报社会。
虽然项目已经结束,但是收获了许多宝贵的经验和教训,在未来的学习和职业生涯中,将继续努力,不断提升自己,为开发更好的软件产品或服务而努力奋斗。
人生中难免会经历bug,但是只要我们坚定信念、不懈努力,最终一定能够获得成功。成功不是一蹴而就的,需要我们耐心地积累、不断学习、快速反应,然后在经验和信念不断提升的基础上去寻找巧妙的解决方案。宝剑锋从磨砺出,梅花香自苦寒来。
再次感谢大家!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。