主页 > 案例大全 > 论文技巧案例-效率型时间管理系统的设计与实现

论文技巧案例-效率型时间管理系统的设计与实现

2021-05-29 14:47:30

  互联网行业和互联网技术的逐步发展,虽然在一定程度上方便了人们的生活,但对人们的自控力也造成了不小的冲击。随着以享乐主义为核心的泛娱乐行业的迅猛发展,人们将越来越多的时间花费在各种娱乐软件之上,拖延症和网络依赖症也是当下人们普遍需要面对的问题。同时,越来越多的人意识到在充分有效的时间里提高工作或学习效率是非常重要的,时间管理类系统应运而生。

  本文实现了一个效率型时间管理系统,该系统旨在帮助用户规划时间,培养习惯,通过待办计划以及待办集,帮助用户合理利用每天的时间。通过时间计时统计,生成专注报告,督促用户养成专注学习习惯。为了满足用户的需求,该系统通过制定学习目标,并给该目标赋予一定的时间限制,从而帮助用户养成自律习惯,拒绝拖延。

  本系统采用面向对象技术实现开发,以Intellij作为开发环境,以SSM框架为主开发框架,以MySQL5.7作为数据库平台,开发出一套基于JAVA的效率型时间管理系统。该系统实现了自习室功能,待办事项功能,统计管理功能,用户管理功能。人机交互良好,满足了用户对时间管理的基本需求。随着时间管理理论的不断创新和时间管理体系的不断完善,探究该类别软件的发展趋势,有着举足轻重的意义。

  随着互联网技术的不断发展,虽然在一定程度上方便了人们的生活,但对人们的自控力也形成了不小的考验。由于以享乐主义为核心的泛娱乐行业的迅猛发展,人们将越来越多的时间花费在各种娱乐软件之上,拖延症和网络依赖症也是当下人们普遍需要面对的问题。同时,越来越多的人意识到在充分有效的时间里提高工作或学习效率是非常重要的,时间管理类系统应运而生。该系统旨在帮助用户规划时间,培养习惯,通过待办计划以及待办集,帮助用户规划时间。通过时间计时统计,生成专注报告,敦促用户养成专注于当前工作事务的习惯。为了迎合用户的需求,该系统通过制定学习目标,并给该目标赋予一定的时间限制,从而帮助用户养成自律习惯,拒绝拖延。

  1.1.2选题意义

  目前时间管理理论还未完全成熟,该系统旨在尝试给予时间管理理论一个承载的实体,即将其作为一个系统编码实现。调研用户的时间管理需求。对比分析现存效率类时间管理软件的优劣势,对系统的定位及功能有一个基本的定义。随着时间管理理论的不断创新和时间管理体系的不断完善,探究该类别软件的发展趋势,有着举足轻重的意义。

  选择该选题的的意义主要体现在以下几个方面:

  给予时间管理理论一个承载的实体:史蒂芬·柯维博士在《高效能人士的七个习惯》[1]中提出了第四代时间管理理论[2],将如何管理时间转化为如何管理处于当下时间状态中的自己。将事件根据其紧急和重要程度划分为一个具有四个象限的矩阵,根据优先级安排事件是否投入时间完成。该系统是在第四代时间管理理论基础上进行应用实现,以一个网页系统为载体,帮助用户更好的理解时间管理理论,并帮助用户高效利用时间。

  调研用户的时间管理需求:目前市面上存在多种帮助用户提高使用效率的时间管理类App。有些功能和操作较为繁琐凌乱,不符合一些自律意识比较差的用户群的使用需求。本文主要针对这两个群体,深入挖掘用户需求,指导用户宏观的把控和利用时间。

  探究同类系统的发展趋势:通过调研分析市面上现存的时间类管理App,寻求其不足,在该系统中进行完善和改进,以适应目标用户群的需求。

  1.2国内外相关研究综述

  1.2.1国外研究现状

  (1)理论研究进展

  第一代时间管理为备忘时代,强调由备忘录和笔记来规划时间,保证在众多繁忙的任务中,不遗忘某些特定的工作。调配精力,规划时间。

  第二代时间管理为计划时代,强调由工作表和日程表上的时间计划包括:长期,中期,短期计划,时间管理的焦点为对未来时间的分配和计划。

  第三代时间管理为效率时代,强调每个任务的优先级,根据每个事务优先级来制定不同时间跨度的目标,逐步细分计划,最大程度上提高效率,使得对时间进行更加合理的调配。

  美国管理学大师史蒂芬柯维在其出版的著作《高效能人士的七个习惯》[1]、《要事第一》[3]、《高效能人士的第八个习惯》[4]等著作中首次提出了他的第四代时间管理理念。第四代时间管理理念强调个人自主约束和人生价值的实现。以价值为核心,引导角色,全盘规划角色的日常生活中的时间,以达到实现角色自我价值的目的。从机械化的追求价值与效率,将时间管理转化为与生活,社交,自我实现结合的模式。第四代时间理论的导向为个人目标,根据每件事物的紧急和重要程度来安排事物的优先级。通过协作达到目标,建立在理性的基础上,按照原则进行决策和规划。

  (2)技术应用情况

  随着互联网行业的发展,人们对时间的管理逐渐从传统的自我约束和自我管理,逐渐转向对时间进行信息化管理,基于各类时间管理理论,将其运用到实践中去。国外现有的时间管理软件如:ToDoList,Google Calendar可简单在网页上或者安装小型PC端程序进行使用。ToDoList主要特点为:界面简洁大方,用户交互体验良好。占用内存较小。支持多个项目及支持多层子任务。可导出多种格式。内置计时器等。Google Calendar主要特点为:无需打开网页,无需安装软件,仅在桌面上便可便捷使用服务。受众范围广,支持语言类别多。具体功能对比如下表1-1所示:

  表1-1国外技术应用情况对比表

  1.2.2国内研究现状

  (1)理论研究进展

  我国时间管理理念一开始较其它国家更为落后,随着我国心理学家和行为学家的不断努力,我国科学家也提出了一套自己的时间管理理论,与国外研究时间管理行为不同,我国的研究重点主要为对时间管理倾向的研究。

  心理学研究者黄希庭教授开启了中国的第一次时间心理学研究[5],通过模糊统计赋值,信号检查论,多因素实验提出了时间感知综合处理模型,研究发现时间管理倾向与一个人的人格特质有关。房安荣、杜晓新等心理学专家提出了“学习时间管理能力”[6]的概念,并将其定位为一种人类的元认知能力。尹志丽学者认为若要更好的管理时间,必须从强化人的时间管理意识[7]出发,通过一定的管理方法,进而增加其时间管理的坚持力。

  近年来,时间管理理论的重点逐步切入到时间管理倾向和拖延类型的联系上来,郑文青学者认为学业自我效能感[8]在时间管理倾向中对主动拖延起着完全中介作用,在被动拖延中起着部分中介作用。时间管理倾向即为个体在利用时间的方法上所表现出来的心理学和行为学特征。拖延者主观意识为未来时间应是无限的,与客观事实存在一定的差异。储思娴学者以情境感知[9]为基础,提出了一套个性化时间管理理论。

  (2)技术应用情况

  近几年,国内时间管理软件的研发成果层出不穷,主要侧重于移动端,例如“时间秘书”、“番茄ToDo”“Forest”等。各个软件功能方面的侧重点各有差异。

  “时间秘书”是一款侧重于事务管理的时间管理软件,对对各种工作事务进行安排管理,可管理电脑自动关机事务,以及可以对未处理事物进行提醒。

  “番茄ToDo”是一款侧重于专注计时的时间管理软件,具有很高的自由度,用户可以根据自己的需求设置专注时间,与此同时推出各个模式可强制用户执行专注时间。

  “Forest”是一款侧重于用户交互的时间管理软件,通过激发用户共情,通过专注时间使得树更加美丽。若是中断专注时间,小树就会枯萎。从而督促用户专注于眼前的相关事宜。具体功能对比如下表1-2所示:

  表1-2国内技术应用情况对比表

  1.3研究内容和研究方法

  研究思路和方法严格按照软件的生命周期进行设计[10],具体思路及方法如下:

  软件计划:

  1)调研用户对与该效率类时间管理软件的需求。

  2)分析该选题所具备的背景和意义。

  3)构思研究思路。

  4)敲定研究方法。

  需求分析:

  1)根据前期调研结果探究系统功能需求。

  2)设计业务逻辑。

  系统设计:

  1)按照业务逻辑设计各个功能模块及其子功能。

  2)通过分析功能模块的需求设计该系统的业务流程。

  3)根据具体功能需求设计数据库字段。

  编码实现:

  1)选择ssm作为该系统的核心框架。

  2)选择MyBatis作为该系统的持久层框架。

  3)选择c3p0作为数据库连接池。

  4)编写各个功能实现类和实现各个类的方法。

  5)编写测试类对于每个功能进行测试黑盒测试,对实现各个功能的代码进行白盒测试。

  测试:

  1)对该系统进行功能测试、性能测试、安全性测试。

  结论:

  1)对研究内容进行总结。

  具体研究方法如下图1-1所示:

  图1-1研究方法流程图

  1.4论文结构

  该毕业论文的撰写主要分为如下几章:

  1)绪论:简述了该课题的背景和研究意义,阐述了国内外相关软件的研究进程,结合调查结果进行研究内容和研究方法的综述。

  2)系统设计主要技术及研究工具:包括对本系统简述和对本系统所用核心技术的介绍,对于开发软件及数据库软件进行介绍。对于系统运行环境进行说明,并给出规定,该软件如何正确部署运行。

  3)效率型时间管理系统需求分析:结合用户需求指定该系统的总体目标和总体需求,包括:系统本身的功能需求,系统运行所需要的性能需求,系统的数据需求等。通过对需求的更深层次解析,明确系统的业务流程。

  4)效率型时间管理系统设计:主要包括对该系统的总体功能的设计即:总体功能和数据流向的设计。结合需求分析的结果完成对系统整体框架的设计即:该系统所必须符合的设计原则和目标,该系统的技术架构设计。明确数据库各个模块的功能,和各个模块间的联系。给出界面基本设计框图。完成该系统数据库的设计包括:数据库概念设计,数据库逻辑设计,数据库物理设计等。

  5)效率型时间管理系统实现:配置系统所需要的开发环境,通过代码实现该系统符合用户要求的功能。

  6)效率型时间管理系统测试:系统测试应当符合相应的原则,对该系统进行功能,性能,安全性测试。优化测试结果进行分析,通过结果分析不断优化系统,使系统更加符合用户要求。

  1.5本章小结

  本章作为论文的首章,主要分析了选题的背景及意义。阐明了该系统存在的价值,交代了该系统的设计理念。对于国内外时间理论的研究进展及国内外相关软件技术应用情况,对国内外主流软件进行功能方面的对比。最后阐述了该系统的研究内容和研究方法。阐述了该系统相较于其他效率类时间管理软件的创新点。规定了整篇论文的结构。综上,本章为整个系统及论文的综述。

  第二章系统设计主要技术及研究工具

  22.1系统设计技术

  2.1.1SSM核心框架

  SSM框架是Spring[11]、SpringMVC[12]、MyBatis[13]三个框架的整合,作为一种系统核心框架集,常用于简单的web项目的核心框架。符合绝大多数Java应用所需要的简单性,松耦合性,可测试性的要求。

  Spring:Spring作为项目的Bean工厂,为JavaEE的开发提供了更加容易便捷的应用应用程序配置框架。通过特性参数去调用实体类的构造方法以实例化对象。其核心思想为IOC(控制翻转)和AOP(面向切面)。通过Spring框架,可以构造简单的配置组件,并将其与复杂的应用程序组合在一起。该框架包括七个明确定义的模块,具体包括以下几个部分:

  核心容器:提供依赖注入功能,实现Bean容器的管理。

  应用上下文模块:由核心模块所提供的BeanFactory使Spring作为容器,提供电子邮件,JNDI访问,EJB集成,等许多企业服务。

  AOP模块:提供对面向切面编程支持。使Spring与其他AOP框架可互用。使用Spring的元数据支持提供源代码注释。指示Spring切面函数在何处,如何应用。

  JDBC抽象和DAO模块:Spring JDBC提取现有JDBC中容易大量重复的代码,包括取得连接,创建语句,处理结果集,关闭连接等。从而保证数据库访问代码更加简洁。事务管理服务由Spring中的AOP模块为Spring中对象提供。

  对象/关系映射集成模块:为流行ORM(对象关系映射)框架提供集成方案。

  Web模块:提供应用上下文模块之上的一些面向服务支持,建立于应用上下文模块之上,并提供适合Web应用的上下文。

  MVC模块:提供用于构建Web应用程序的完整MVC框架。请求参数可以声明性的绑定在业务对象之上。SSM框架图如下图2-1所示:

  图2-1 SSM框架图

  SpringMVC:SpringMVC是构建Web应用程序的全功能MVC模块,在进行Web开发过程中,可以使用SpringMVC架构或是其他MVC开发架构。

  MyBatis:apache开源项目iBatis是基于Java的持久层框架,支持个性化SQL[14],存储过程以及高度映射。通过使用XML或注解配置映射信息,并将Java的POJOS映射成数据库中的记录。

  功能架构分为以下三层:

  API接口层:可以在外部使用的接口,开发者可以通过这些本地API来对数据库进行操作。接口层调用请求,在数据处理层中处理相关数据。

  数据处理层:主要用于SQL查询,SQL解析,数据库SQL操作以及相关执行结果的映射。根据接口层调用请求,对数据进行处理。

  基础支撑层:主要用于连接管理,配置加载,事务管理,缓存处理等基础功能支持。为上层数据处理层提供基本支持。

  框架结构如下图2-2所示:

  图2-2 SSM架构结构图

  加载配置:通过配置文件和Java代码注解将SQL配置信息加载成MappedStatement对象放入内存。

  SQL解析:API接口层获取调用请求,通过获取传入SQL的ID和传入对象,根据SQL ID寻找相应的MappedStatement,并根据传入参数对其进行解析,获取最终执行的SQL语句和参数。

  SQL执行:将获取的可执行SQL语句和参数在数据库中执行并获得数据库操作结果。

  结果映射:按照映射要求对操作结果进行转化,并返回。映射图如下图2-3所示:

  图2-3映射配置图

  2.1.2Thymeleaf模板引擎

  Thymeleaf[15]是用于Web和独立环境的Java模板引擎,可处理JavaScript,HTML,XML。目的是为了开发者提供一种创建模板的简单但可维护的方法。在自然模板的概念上,逻辑被注入到模板中,使用该模板引擎创建的Html模板可以在浏览器中直接访问并展示静态数据。是JSP的替代技术。

  2.1.3C3P0数据库连接池

  C3P0是开源JDBC连接池,支持Spring,Hibemate开源项目的使用。通过导入相应的jar包,定义配置文件,创建核心对象,获取连接对数据库连接进行分配,管理,释放操作。不再使应用程序的数据库连接重新创建,而是重复使用现有的数据库连接。初始化时将特定的数据库连接保存到连接池中,若应用程序请求连接数超过最大连接数,这些请求将会被添加到队列之中。

  2.2系统设计工具

  2.2.1Intellij工具

  Intellij作为java编程语言的开发和集成环境。其智能代码助手,代码自动提示,代码重构,CVS整合,代码分析等功能十分强大。它是业界最佳的Java开发工具。

  该软件专门设计用于最大限度的提高开发人员强大的静态代码分析能力,使开发更加高效。

  2.2.2MySQL工具

  关系型数据库管理系统MySQL是当前最常用的关系型数据库之一,也是最优秀的RDBMS应用软件之一。关系型数据库引入数据并将其储存在不同表中,同时提高了在速度和灵活性。SQL语言是最常用的数据库访问标准语言。MySQL具有许多优点:源码开放,体积小,速度快,拥有成本低。

  2.3本章小结

  本章主要介绍了该系统设计的技术包括系统的核心框架:SSM框架,该系统所使用的模板引擎:Thymeleaf。该系统所使用的持久层框架MyBatis。数据库连接池C3P0。介绍完成该系统所使用的工具,包括开发工具Intellij和数据库存储工具MySql。为系统的实现奠定了基础。

  第三章效率型时间管理系统需求分析

  需求分析是开发人员通过多种多样的方法进行细致入微的调研和分析,准确获取用户需求,分析用户行为,将用户的非形式性需求转化为产品的功能需求,性能需求等具体的落地需求。从需求的定义出发,指导该程序应该实现什么样功能的过程。

  本章通过分析目标用户的需求,从用户的需求出发,对该效率型时间管理系统进行功能模块和架构的分析,并归纳该系统的业务流程。从数据传递和加工的过程中进行进一步分析,进而梳理该系统的逻辑功能。

  33.1系统总体目标

  该系统旨在实现一个可以帮助用户管理计划,有效合理利用时间的一个效率型时间管理系统。通过待办计划,帮助用户规划时间,培养习惯。通过时间计时统计,生成专注报告,督促用户养成专注学习习惯。为了迎合用户的需求,该系统通过制定学习目标,并给该目标赋予一定的时间限制,从而帮助用户养成自律习惯,拒绝拖延。本系统具有以下特点:人机交互良好,操作简单易懂,只需要简单的鼠标点击及键盘输入即可在PC端进行操作。功能简洁。提供一定的社交功能,用户可以加入自习室与志同道合的其他用户一起学习,达到改善用户拖延情况的效果。提供待办事项记录功能,包括对待办项记录的添加,删除,修改,查询等功能。对于每天,每月,每年的学习情况进行统计。

  作为一款效率型时间管理软件,该系统关注于数据的稳定性和可靠性。同时还要具有数据加密等安全性措施,以免数据的丢失和泄露给用户造成不必要的麻烦。

  3.2系统总体需求

  该系统基于Intellij开发平台进行开发,以MySQL进行数据存储。选用C3P0数据库连接池传输数据。以SSM为核心框架,利用Thymeleaf为模板引擎,选取MyBatis作为持久层框架。通过初步分析,该系统具有以下核心子模块:自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块。核心要求如下:

  1)满足用户实现时间管理的各项功能,有效的对用户的待办事务进行管理。

  2)能够对用户待办信息进行查询,修改,删除,添加,且满足数据的稳定性,安全性,可靠性。

  3)人机交互良好,界面符合用户操作要求,适合一般用户的操作习惯,即使没有计算机基础的用户,也可以快速熟练掌握该软件的使用。

  3.2.1系统非功能需求

  系统非功能需求,包括系统的页面需求和硬件需求,具体情况如下表3-1,3-2所示:

  系统的页面需求,如下表3-1所示:

  表3-1系统页面需求表

  系统的硬件需求,如下表3-2所示:

  表3-2系统硬件需求表

  3.2.2系统功能需求

  该效率型时间管理系统有以下几个业务模块:自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块。各个模块功能如下:

  1)自习室管理模块:

  加入学习:用户可以通过查看自习室列表,选择自习室加入学习,加入学习则该阶段计时开始,若中断,该阶段计时清零。

  创建自习室:用户可以输入房间名称,房间密码创建新的自习室。

  删除自习室:用户可以删除管理员为自己的自习室。

  中断原因查看:用户可以查看个人在不同自习室中的中断原因,便于用户对自己无法专注的原因进行反思。

  2)待办事项管理模块:

  新增待办;用户可以点击新增输入项目名称,项目类型,耗费时间,项目备注,项目开始时间新建待办项。

  编辑待办:用户可以通过编辑按钮对待办项的项目类型,耗费时间,开始时间进行编辑。

  删除待办:用户可以通过删除按钮,对不需要的待办项进行删除。

  关闭待办事项状态:用户可以点击关闭按钮,停止待办执行和计时。

  3)统计管理模块:

  当日数据统计:用户可以查看同一自习室中,个人和其他用户当日专注学习时间。

  当月数据统计:用户可以查看同一自习室中,个人和其他用户当月专注学习时间。

  当年数据统计:用户可以查看同一自习室中,个人和其他用户当年专注学习时间。

  4)用户管理模块:

  用户注册:通过该模块用户进行注册,将个人信息提交到数据库中,包括:用户名,密码,电话,昵称等信息。

  用户登陆:用户可以通过提交用户名和密码,输入验证码后,进行后台比对,比对成功则登录进入主页面,比对失败,则提醒用户密码或验证码错误。

  资料修改:用户可以带资料修改菜单对注册填入信息进行修改,包括电话,昵称等信息。

  密码修改:用户可以通过重新输入原密码,修改新的密码,并对新密码进行确认。

  系统框架如下图3-1所示:

  图3-1系统架构图

  3.2.3系统主要业务流程

  基于Java的效率型时间管理系统包括:自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块。图3-2是系统的总用例图:

  图3-2系统整体用例图

  3.2.4系统数据需求

  该系统在数据传输过程中应该满足数据质量的四大特性即:准确性,完整性,一致性,及时性。同时应满足数据的保密性和安全性,保证用户信息数据不被泄露。

  1)准确性:数据在输入输出过程中,要保证输入输出数据的准确性,不符合数据库存储要求的数据,应不被输入进入系统中。

  2)完整性:,通过给予一定的数据约束,控制非法数据的输入。规定数据缺失值的处理方式。

  3)一致性:输入的数据必须确保各个模块间数据共享一致。

  4)及时性:系统处理数据必须为及时而高效的,面对大量的数据,数据信息必须准确处理,及时更新。

  5)保密性:由于该系统涉及到用户部分个人信息,则在后台进行数据的安全性处理是必不可少的。通过加盐值的方法二次加密用户密码,谨防数据泄露。

  6)安全性:通过权限设置,保证数据安全。通过验证码,防止恶意破解用户密码。以此确保该高效运行的系统具有一定的安全性。

  3.3本章小结

  本章节对于该效率型时间管理系统各个模块的具体需求进行了详尽的解读。从用户的需求出发,分析数据的流向,阐述该系统的定位,给出该系统的总体目标。搭建系统框架,详尽剖析该系统的总体需求。逐步完善各个功能模块下的详细功能,并对每个功能进行说明及详细描述。针对该系统的自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块等四个子模块进行具体的需求概述。最后分析了系统中的角色和业务流程,从系统运行必要的数据需求,安全性需求对该系统进行进一步的阐明。

  第四章效率型时间管理系统的设计

  系统设计在软件的生命周期作为一个十分重要的阶段,主要是在对用户需求进行分析后,在需求分析的基础上明确软件的具体实现方式。设计阶段主要包括概要设计和详细设计,概要设计主要根据交互过程和数据流形成交互框架和视觉框架。详细设计是对概要设计的一个细化,通过对实体关系图的分析,建立数据库及数据库表。根据每个模块的业务流程,设计完成每个模块的基本流程以及各个模块的界面设计,实现该模块所需要的算法设计。对各个子模块进行更加详细的论述。

  本章主要是基于上一章的基础上对该效率型时间管理系统的架构进行进一步细化,方便该系统的实现。

  44.1系统总体功能设计

  4.1.1总体功能设计

  系统主要包括以下总体功能:该系统各个模块的详细定义和具体的范围划分,以及各个功能模块实现时需要考虑的细节,防止由于功能模块划分模糊而造成的功能冗余现象,具体功能模块划分如下表4-1所示:

  表4-1系统总体功能分析表

  各个模块界面和功能设计如下图所示:

  (1)主界面设计:

  主界面是一个系统软件最重要的组成部分,一个好的主界面将直接影响到用户体验,从而决定着一个软件的优劣。因此一个用户友好的主界面将帮助用户更加简洁高效的使用软件,给予用户一个更好的交互体验。该系统主界面采用深蓝色作为背景色,配以白色为前景色。用户可根据自己的喜好置换页面底色的颜色,根据置换结果,部分按钮会变为用户所设置的颜色。用户亦可以设置是否收起左侧菜单栏,是否固定顶部和宽度。主界面采用左侧标题栏分别可以跳转到主页,自习室管理,待办事项管理,时间数据统计,个人资料等子模块。用户可以更加方便快捷的跳转到自己想要访问的界面。标题栏上方显示当前用户状态(学习中or休息中);主界面显示计时时钟,提醒用户珍惜时间。向下移动页面,显示待办项目列表。主界面框架设计如下图4-1所示:

  图4-1主界面设计

  (2)自习室管理功能设计

  该模块主要负责自习室的创建和使用。用户可以先浏览是否有符合自己要求的自习室,若有直接加入学习。若无符合要求的自习室通过设置房间名称,开始时间,结束时间创建新的自习室。若自习室不需要时,点击删除,将房间注销。当选择加入学习时进入计时统计。点击停止学习,输入停止原因方可退出学习。在中断原因选项卡中可以查看打断原因统计。功能流程图如下图4-2所示:

  图4-2自习室功能流程图

  根据以上的流程图对界面进行设计,自习室列表模块,创建自习室模块界面如图4-3所示,中断原因统计模块界面设计如图4-4所示:

  图4-3自习室模块界面

  图4-4中断原因统计界面

  (3)待办事项管理功能设计:

  该模块主要负责待办事项的查看,新增,编辑,删除等功能。点击待办管理菜单栏,用户可以查看个人待办项目的列表。点击新增输入项目名称,项目类型,耗费时间,项目备注,项目开始时间新建待办项。通过编辑按钮对待办项的项目类型,耗费时间,开始时间进行编辑。通过删除按钮,对不需要的待办项进行删除。用户可以点击关闭按钮,停止待办执行和计时。

  用户可以通过简单的点击,将待办事项录入系统,方便用户管理个人待办项。并对后期统计用户专注数据提供一定的依据。功能流程图如下图4-5所示:

  图4-5待办事项模块功能流程图

  根据以上的流程图对界面进行设计,待办事项管理模块界面设计如图4-6所示:

  图4-6待办事项管理模块界面设计

  (4)统计管理功能设计:

  统计管理模块按照日,月,年统计同自习室其它好友的专注学习时间,通过直方图直观的对比自习室中各个用户的专注时间,从而达到督促用户专注学习的目的。功能流程图如下图4-7所示:

  图4-7统计管理模块功能流程图

  根据以上的流程图对界面进行设计,统计模块界面设计如图4-8所示:

  图4-8统计管理模块界面设计

  (5)用户管理功能设计:

  用户管理模块分为两个权限:普通用户和系统管理员。

  普通用户:用户可以通过点击主人资料,修改用户名,密码,电话,昵称等信息。

  系统管理员:管理员可以查看所有用户的信息,并具有注销用户的权限,以便于管理违规用户。功能流程图如下图4-9所示:

  图4-9用户管理模块功能流程图

  根据以上的流程图对界面进行设计,用户管理界面设计如图4-10所示:

  统计管理模块普通用户界面设计:

  图4-10统计管理模块普通用户界面设计

  统计管理模块管理员界面设计如图4-11所示:

  图4-11统计管理模块管理员界面设计

  4.1.2业务流程设计

  业务流程分析是通过分析用户需求,剖析该系统的业务功能,将业务功能进一步细化,从而获取该系统的业务流程图即TFD(Transaction Flow Diagram),是反映一个系统业务处理过程的“流水线”。对系统进行业务流程设计的主要目标是:形成科学合理的业务流程便于系统符合规则运行。通过对现有业务流程的分析,进行业务流程重组(BPR),产生更加符合系统运行要求的业务流程。

  通过对该系统各个模块功能的分析归纳,对于该系统的四个功能模块进行总体框架设计规划。目的是帮助用户快速理解该效率型时间管理软件的系统框架和业务流程,更加直观的反映该系统的总体框架,总体框架设计如下图4-12所示:

  图4-12系统总体框架图

  4.2数据库设计

  4.2.1数据库设计的基本原则

  当对数据库进行设计时,应该着重考虑数据结构的合理性,数据库的安全性,以及数据表中数据的准确性。既要满足该系统对数据的存取功能,又要对用户友好,最大程度上简化用户的操作,使用户有一个更好的体验。

  该效率型时间管理系统数据库采用MySql5.7数据库作为系统设计的数据库,基于该数据库实现相应的功能,进行数据的存储。在对数据库设计时,应该首先分析系统的数据特点,对系统的数据库进行综合设计,最大程度上满足用户需求。在数据库中数据合理规范的同时,尽量满足该系统对数据库的存储量要求。在系统读取存储数据时应该尽量做到响应时间短,读取存储速度快的要求。数据库的设计更加应该方便管理员进行管理和维护。

  4.2.2数据库概念设计

  根据对系统的需求和业务逻辑进行分析,该系统有用户表,用户权限表,待办项目表,待办项目类型表,角色表,权限表,角色权限中间表,自习室表,自习室状态表,菜单表,其中各个数据表的种类关系实体如下图所示:

  (1)用户表实体图

  该实体包括用户编号(id),用户名(username),密码(password),密码盐值(salt),是否启用(isEnable),最后登录时间(lastLogin),电话(phone),用户昵称(nickname),创建时间(createTime),用户状态(status:0休息中,1学习中),开始学习时间(startTime),结束学习时间(endTime),总学习时间(duration),当天学习时间(totalTime),所在房间号(roomId),本年度学习时间(yearDuration)等字段。用户表实体图如下图4-13所示:

  图4-13用户表实体图

  (2)用户权限表实体图

  该实体包括权限编号(id),用户编号(adminUserId),角色编号(RoleId)。用户权限表实体图如下图4-14所示:

  图4-14用户权限表实体图

  (3)待办项目表实体图

  该实体包括待办编号(id),待办名称(name),待办类型(type),待办时长(duration),待办备注(remark),创建时间(createTime),开始时间(startTime),状态(status)。待办项目表实体图如下图4-15所示:

  图4-15待办项目表实体图

  (4)待办项目类型表实体图

  该实体包括待办项目类型编号(id),待办项目类型名称(name)。待办项目类型表实体图如下图4-16所示:

  图4-16待办项目类型表实体图

  (5)角色表实体图

  该实体包括角色编号(id),角色名称(name),描述(description),是否删除(isDeleted)。角色表实体图如下图4-17所示:

  图4-17角色表实体图

  (6)权限表实体图

  该实体包括权限编号(id),相对路径(path),描述(description),是否删除(isDeleted)。权限表实体图如下图4-18所示:

  图4-18权限表实体图

  (7)角色权限中间表实体图

  该实体包括编号(id),角色编号(roleId),权限编号(permissionId)。角色权限中间表实体图如下图4-19所示:

  图4-19角色权限中间表实体图

  (8)自习室表实体图

  该实体包括编号(id),自习室名称(name),创建时间(createdTime),开始时间(startTime),结束时间(endTime),状态(status),房间密码(password)。自习室表实体图如下图4-20所示:

  图4-20自习室表实体图

  (9)自习室状态表实体图

  该实体包括编号(id),用户编号(userId),房间编号(roomId),创建时间(creatTime),打断原因(interruptReason)。自习室状态表实体图如下图4-21所示:

  图4-21自习室状态表实体图

  (10)菜单表实体图

  体包括菜单编号(menuId),菜单名称(menuName),父菜单编号(parentId),显示顺序(orderNum),请求地址(url),菜单类型(menuType:M目录,C菜单,F按钮),菜单状态(visible:0显示,1隐藏),权限标志(perms),菜单图标(icon),创建者(createBy),创建时间(createTime),更新者(updateBy),更新时间(updateTime),备注(remark)。菜单表实体图如下图4-22所示:

  图4-22菜单表实体图

  根据业务流程,分析可得各个实体之间的关系,该效率型时间管理系统ER图,如下图4-23所示:

  图4-23效率型时间管理系统总ER图

  4.2.3数据库逻辑设计

  (1)数据流程分析

  该效率类时间管理系统顶层数据流是用户进入该系统,从交互界面输入输出数据,用户操作结果返回至交互界面。系统顶层数据流图如图4-24所示:

  图4-24系统顶层数据流图

  用户进入该系统后,对各项系统的功能进行操作,对于相应的子模块:自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块进行不同的操作。操作过程中,数据会进行相应的流动,进一步分析数据流动的过程,数据流图如图所示:

  图4-25系统数据流图

  (2)数据库逻辑设计

  数据库逻辑设计主要含义为将概念结构转换为系统所支持的数据模型,并将其进行进一步优化,通过对该效率型时间管理系统的实体关系图进行分析后,根据各个表中的实体,联系属性,得出每个属性的主键及数据属性,数据库逻辑设计情况如下:

  用户(用户编号,用户名,密码,密码盐值,是否启用,最后登录时间,电话,用户昵称,创建时间,用户状态(0休息中,1学习中),开始学习时间,结束学习时间,总学习时间,当天学习时间,所在房间号,本年度学习时间);

  用户权限(权限编号,用户编号,角色编号);

  待办项目(待办编号,待办名称,待办类型,待办时长,待办备注,创建时间,开始时间,状态);

  待办项目类型(待办项目类型编号,待办项目类型名称);

  角色(角色编号,角色名称,描述,是否删除);

  权限(权限编号,相对路径,描述,是否删除);

  角色权限关系(编号,角色编号,权限编号);

  自习室(该实体包括编号,自习室名称,创建时间,开始时间,结束时间,状态,房间密码);

  自习室状态(编号,用户编号,房间编号,创建时间,打断原因);

  菜单(菜单编号,菜单名称,父菜单编号,显示顺序,请求地址,菜单类型(M目录,C菜单,F按钮),菜单状态(0显示,1隐藏),权限标志,菜单图标,创建者,创建时间,更新者,更新时间,备注);

  4.2.4数据库物理设计

  (1)用户表(admin_users)

  该表主要用于用户个人信息的存储,主键为id,表示用户编号,是用户记录的唯一标识。username表示用户名,password表示密码,salt表示密码盐值,isEnable表示是否启用,lastLogin表示最后登录时间,phone表示电话,nickname表示用户昵称,createTime表示创建时间,status表示用户状态(0休息中,1学习中),startTime表示开始学习时间,endTime表示结束学习时间,duration表示总学习时间,totalTime表示当天学习时间,roomId表示所在房间号,yearDuration表示本年度学习时间,数据字典如下列表4-2所示:

  表4-2用户表

  (2)用户权限表(admin_user_roles)

  该表主要用于用户和对应角色权限的储存,主键为id,表示用户权限编号,是每个用户权限记录的唯一标识。adminUserId表示用户编号,RoleId表示角色编号。数据字典如下表4-3所示:

  表4-3用户权限表

  (3)待办项目表(project)

  该表主要用于待办记录的储存,主键为id,表示待办事件编号,是每个待办事项记录的唯一标识。name表示待办名称,type表示待办类型,duration表示待办时长,remark表示待办备注,createTime表示创建时间,startTime表示开始时间,status表示状态。数据字典如下表4-4所示:

  表4-4待办项目表

  (4)待办项目类型表(project_type)

  该表主要用于待办项目类型的存储,主键为id,表示待办项目类型编号,是每个待办类型的唯一标识。name表示待办项目类型名称。数据字典如下表4-5所示:

  表4-5待办项目类型表

  (5)角色表(roles)

  该表主要用于用户角色类型的存储,主键为id,表示角色编号。name表示角色名称,description表示对于该角色的描述信息,isDeleted表示该角色的删除状态。数据字典如下表4-6所示:

  表4-6角色表

  (6)权限表(permissions)

  该表主要用于存储不同角色权限可以访问的页面信息,主键为id,表示权限编号。path表示相对路径,description表示对于该权限的描述信息,isDeleted表示该权限的删除状态。数据字典如下表4-7所示:

  表4-7权限表

  (7)角色权限中间表(role_permissions)

  该表作为角色和权限的关系表,主要用于存储每个角色所被赋予的权限,主键为id,表示角色和权限之间的关系。roleId表示角色编号,permissionId表示权限编号。数据字典如下表4-8所示:

  表4-8角色权限中间表

  (8)自习室表(room)

  该表主要用于存储每个自习室的基本信息,主键为id,表示自习室编号。name表示自习室名称,createdTime表示创建时间,startTime表示开始时间,endTime表示结束时间,status表示自习室状态,password表示房间密码。数据字典如下表4-9所示:

  表4-9自习室表

  (9)自习室状态表(user_room)

  该表主要用于存储每个自习室的状态信息,主键为id,表示自习室状态记录编号。userId表示用户编号,roomId表示房间编号,creatTime表示创建时间,interruptReason表示打断原因。数据字典如下表4-10所示:

  表4-10自习室状态表

  (10)菜单表(sys_menu)

  该表主要用于存储该系统左侧菜单栏的相关信息,主键为menuId,表示菜单编号。menuName表示菜单名称,parentId表示父菜单编号,orderNum表示显示顺序,url表示请求地址,menuType表示菜单类型(M目录,C菜单,F按钮),visible表示菜单状态(0显示,1隐藏),perms表示权限标志,icon表示菜单图标,createBy表示该菜单的创建者。createTime表示该菜单的创建时间,updateBy表示菜单更新者,updateTime表示更新时间,remark表示备注信息。数据字典如下表4-11所示:

  表4-11菜单表

  4.3本章小结

  通过对用户需求的进一步解读,运用关系图,数据字典,数据流图等工具对该系统进行进一步的设计。将该系统划分为自习室管理模块,待办事项管理模块,统计管理模块,用户管理模块等四个功能模块。针对每个模块所要为用户提供的功能,进行详细的物理设计和逻辑结构的设计。对于每个模块间的结构和联系进行进一步的规划。

  第五章效率型时间管理系统的实现

  本章节是在需求分析和后续设计的基础上,对该系统进行具体的实现。通过编码的方式,将设计的内容展示给用户,让用户更加直观的体验到一个完整的系统程序。

  55.1主界面的实现

  用户输入网址进入该系统,登录后进入主界面具体功能模块见系统左侧菜单栏,通过JavaWeb重定向的方法实现各个页面间的跳转。各个功能模块之间彼此独立又相互关联,符合程序设计低耦合高内聚的特点。上侧菜单栏显示打开的页签。上侧菜单栏上方显示当前用户状态(学习中or休息中)。页面中心显示当前版本信息,待办项目列表,计时钟等信息。系统主界面如下图5-1所示:

  图5-1主界面实现结果图

  5.2自习室模块的实现

  自习室模块用户可以通过设置房间名称,开始时间,结束时间创建新的自习室。选择自习室列表,选择加入学习进入计时统计。点击停止学习,输入停止原因方可退出学习。在中断原因选项卡中可以查看打断原因统计。该页面点击加入学习计时开始,点击停止学习的时间统计结束,通过时间戳换算学习时间。用户可根据自身需求进行操作,时间戳换算学习时间。自习室列表查看实现结果图如下图5-2所示:

  图5-2自习室列表查看实现结果图

  点击加入学习,进入学习状态,界面按钮变化如下图5-3所示:

  图5-3学习状态变化图

  中断原因查看实现页面效果图如下图5-4所示:

  图5-4中断原因列表查看实现结果图

  核心伪代码,如下所示:

  //加入学习

  添加注解 Transactional,使该类中的所有方法抛出异常

  public void join(房间ID,用户ID,客户端请求){

  调用adminUserMapper接口中的selectById方法;

  定义一个时间戳,将其存入startTime中;

  //记录当前的开始时间用户加入房间的时候保存,在停止的时候记录学习总时长

  设置当前的时间通过时间戳来换算学习时间;

  使用setStartTime设置启动时间;

  adminUser.setStartTime(startTime);

  调用set方法获取房间ID;

  request对象中的attribute值通过setAttribute放入到request中,并将返回值保存到当前session对话中。

  调用adminUserMapper接口中的updateById方法,更新该用户学习时间。

  }

  //停止学习

  添加 ResponseBody注解将java对象转换为json格式数据

  public JsonResult stopLearning(ID,客户端请求,中断原因){

  将session对话中的返回值保存到adminUser中;

  定义一个时间戳,将其存入startTime中;

  使用费setEndTime设置结束时间;

  根据setStartTime和setEndTime中的时间数据,计算持续时间;

  Return时间数据;

  }

  5.3待办事项管理模块的实现

  待办事项模块用户可以根据待办项目名称,待办项目类型,耗费时间,项目备注,项目开始时间等信息创建新的待办卡。用户可以对个人的待办进行增删改查。通过编辑删除关闭按钮对每一项待办条目进行管理,实现效果如下图5-5所示:

  图5-5待办事项管理实现结果图

  核心伪代码如下所示:

  添加注解 ResponseBody

  添加映射请求注解 RequestMapping

  //添加

  public JsonResult addSubmit(项目,开始时间){

  调用projectService类中的add方法将传入对象保存到数据库中;

  return Json结果字符串;

  }

  //修改

  public JsonResult updateSubmit2(ID){

  调用projectService中查询方法根据id查询项目;

  调用projectService中update方法更新项目;

  return Json结果字符串;

  }

  //查询

  public String update(ID){

  调用projectService中查询方法根据id查询项目;

  }

  //删除

  public JsonResult delete(ID){

  调用projectService中delete方法根据id删除项目;

  return Json结果字符串;

  }

  5.4统计管理模块的实现

  统计管理模块通过计算用户每日专注学习时间,以柱状图的形式对比用户和其他用户专注时间,将统计结果呈现给用户。在右侧菜单栏中可选择年月日查看累计统计结果的分布情况。通过配置js文件,配置数据及加载图像将Echarts可视化库引入该系统中。统计管理模块实现效果如下图5-6所示:

  图5-6当日数据统计实现结果图

  按天为例,核心伪代码如下所示:

  /**拿到今日的统计数据绘制图表*/

  添加注解 ResponseBody

  添加映射请求注解 RequestMapping

  public JsonResult showChart(){

  声明一个新的Map对象;

  定义数组列表clist1;

  定义数组列表clist2;

  调用adminUserService中selectAll()选择所有用户数据;

  利用stream方法对list进行集合循环{

  将获取的用户昵称添加到列表clist1中;

  创建totalTime存放时间戳;

  将获取的用户总时间添加到列表clist2中

  });

  把数组列表clist1中数据放入Map中;

  把数组列表clist2中数据放入Map中;

  return Map Json结果;

  }

  5.5个人资料管理模块的实现

  个人资料管理模块为用户提供基础的用户管理功能,包括用户的个人信息管理及用户的登陆注册。

  用户在浏览器中输入地址访问网站,若无账号,点击注册按钮输入电话,验证码快速注册。若有账号,用户输入账号密码字符验证码登陆,系统读取表admin_users中数据,判断其是否为系统中存在的数据条目,并将Id,UserName等信息写入session中。登陆功能核心代码如下所示:

  添加注解 ResponseBody

  添加映射请求注解 PostMapping

  public JsonResult loginSubmit(验证码,用户名,,密码,客户端){

  if(验证码图片生成器中验证码与输入验证码不同)

  {

  return提示"验证码错误,请重新输入;

  }

  if(验证码图片生成器中验证码与输入验证码一致){

  调用adminUserService类中的selectByUserName方法,根据用户名查询用户信息;

  //在登录成功后返回该角色的权限用于前端校验

  //在存放adminUser的时候应该避免存放铭感数据

  request对象中的attribute值通过setAttribute放入到request中,并将返回值保存到当前session对话中

  return登录成功;

  }

  return登录失败,账号密码错误;

  }

  5.6本章小结

  本章主要介绍了该效率型时间管理系统的主要子系统模块及具体编码实现的方法,包括自习室模块,待办事项模块,统计管理模块,个人资料管理。通过本章节给出系统的核心代码及具体实现效果图,同时对系统的功能进行简洁的介绍。完整的展示该效率型时间管理系统的实现结果。

  第六章效率型时间管理系统的测试

  系统测试是指将硬件,软件,操作人员当作一个整体,检验其是否符合系统说明书的要求,指导发现系统分析设计以及实现中所存在的问题。是软件开发生命周期的重要组成部分。通过系统测试,从而发现软件存在的缺陷,提高系统质量。软件测试[16]时一个执行系统并发现错误的过程。

  66.1系统功能测试

  功能测试也叫黑盒测试,通过一定的测试,检验出该系统的各个功能是否可以正常使用。在测试的过程中不考虑程序内部结构,对程序外部接口进行测试。功能测试旨在检查系统的功能是否按照预期的要求执行,即是否按照需求分析的规定正确的使用。程序是否可以按照符合规定的输入数据产生相应的输出数据。该效率型时间管理软件功能测试主要涉及:主界面的测试,功能模块的测试。测试用例如下表6-1所示:

  表6-1主要功能测试用例及结果

  6.2系统性能测试

  系统的性能测试主要是通过自动化测试工具模拟使用情况,对系统的正常,峰值,以及异常负载对系统性能的各项指标进行检测。性能测试包括:负载测试和压力测试。负载测试即测试系统在各种负载下的性能,目标是检测系统在不同性能指标增加时,检测其变化情况,压力测试即通过系统的瓶颈及其他不可接受性能点,获取系统能提供最大服务的测试,测试用例及结果如下表6-2所示:

  表6-2性能测试表

  6.3系统安全性测试

  系统安全性测试是测试系统对于非法操作的防范能力。该效率型时间管理软件的安全性测试主要是对数据存储的安全性及安全提示方面进行测试,确保用户在软件的使用过程中的安全性。