KTV点歌系统的设计与实现

1 引言
1.1 研究背景及现状
目前现有的KTV点歌系统对于用户而言其在线点歌流程仍然过于繁琐,对于歌曲而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。
1.2 项目目标
KTV点歌系统的后台开发目标是以信息管理系统的管理和开发方法,用目前现有的新技术进行系统开发,提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导,提供对用户而言非常友好的界面操作环境以及完善系统功能。
本系统主要针对现在KTV点歌系统中存在的问题,对需要改进的地方进行系统分析,对系统所要实现的功能进行完善,使得其更具有高度界面友好的特性。提出对于系统而言具备可行性的方案,做好系统分析。编译出界面友好,功能齐全的KTV点歌系统系统。
1.3 项目适用范围
该项目的前台适用于普通用户用户,后台适用于管理人员。
1.4 项目应遵守的规范与标准
为了信息传输的安全性,与数据库进行交互的情况下,重要的信息比如“用户密码”,一律用密文传输。
1.5 涉众
在本系统中,涉及到的人员有管理人员和用户。
对于管理人员,其使用习惯是偏向于实用性和安全性。希望该系统能够高度安全,并且能够正常实现KTV点歌业务的各项功能。
对于用户而言,其更倾向于界面友好性和便捷性。不仅希望系统能动态展示,还希望系统能够做到“一步到位”,其希望能实现的功能除了正常的歌曲业务以外还希望能够网上点歌歌曲和点歌歌曲,学习歌曲知识。

2  需求分析
2.1 业务需求
2.1.1 业务流程
在歌曲流程中,管理员登录网站的后台管理后,管理人员受理业务并添加歌曲信息,其歌曲流程总体业务如图2.1所示。

图2.1 歌曲流程总体业务
在线点歌歌曲流程中,用户到KTV点歌系统,查看歌曲信息,点击点歌按钮,管理人员将办理业务并返回歌曲的信息,其点歌歌曲流程总体业务如图2.2所示。

图2.2 点歌歌曲流程总体业务
在用户注册总体业务中,用户到网站注册,管理人员将根据用户情况进行注册,其用户注册流程总体业务如图2.3所示。

图2.3 用户注册流程总体业务
2.2 功能性需求
2.2.1 用例概述
在图2.5高层用例图中抽取了满足管理员和用户的基本业务需求的基本用例。由这些用例所显示的从用户使用的前台和管理人员使用的后台来完成歌曲的正常运作。

图2.5 高层用例图
图2.5之间的用例标识、用例名称和摘要描述如表2.1所示。
表2.1 用例摘要描述
用例标识(UC) 用例名称 摘要描述
0 登录 使用系统前的身份验证。
1.1 更改密码 用户可以在系统上更改密码。
1.2 查看歌曲信息 用户可以查找歌曲信息,并可以获得包括歌曲名、图片、简介等信息。
1.3 在线点歌歌曲 用户可以在线点歌歌曲。
1.4 点歌歌曲 用户和管理员可以在线点歌歌曲信息。
2.1 管理用户信息 对用户的信息进行查询、更改、删除等操作。
2.2 管理我的收藏信息 管理人员可以管理我的收藏的信息。
2.3 管理歌曲信息 管理人员可以管理歌曲的信息。
2.4 管理歌曲类别信息 管理人员可以管理歌曲类别的信息。
2.5 管理播放记录信息 管理人员可以管理播放记录的信息。
2.6 管理人员密码更改 管理人员可以更改管理人员密码。

2.2.2 用例细化描述
(1)管理用户信息用例
管理人员可以通过管理用户信息用例对用户信息进行维护,包括对用户信息的增删改查。管理用户信息用例图如图2.6所示。

图2.6 管理用户信息用例图
添加用户信息用例中描述如表2.2所示。
表2.2 添加用户信息用例表
用例标识 2.1.1
用例名称 添加用户信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在用户表中添加一条用户信息。
用例概述 管理人员可以对用户信息进行添加。
基本事件流 1. 管理人员在管理用户主界面选取添加用户信息项。
2. 系统显示添加用户界面。
3. 管理人员按照用户提供的信息输入用户姓名、用户密码、用户性别、用户电话后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统查询结果确认没有重复姓名,将录入用户信息到用户信息表中。
6. 系统显示添加用户成功。
备选事件流 5a 系统查出有重复姓名,将显示添加用户失败,管理员重新输入另一名称,系统查出没有重复姓名,显示添加用户成功。
备注 用户编号生成
更改用户信息用例描述如表2.3所示。
表2.3更改用户信息用例表
用例标识 2.1.2
用例名称 更改用户信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在用户表中更改一条用户信息。
用例概述 管理人员可以对用户信息进行更改。
基本事件流 1. 管理人员在管理用户主界面选取更改用户信息项。
2. 系统显示更改用户界面,并将用户信息显示齐全。
3. 管理人员按照用户提供信息更改用户信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复姓名,将更改用户信息表中的记录。
6. 系统显示更改用户成功。
备选事件流 5a 系统查出有重复姓名,将显示更改用户失败,管理员重新输入另一名称,系统查出没有重复姓名,显示更改用户成功。
备注 无
删除用户信息用例描述如表2.4所示。
表2.4删除用户信息用例表
用例标识 2.1.3
用例名称 删除用户信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在用户表中删除用户信息。
用例概述 管理人员可以对用户信息进行删除。
基本事件流 1. 管理人员在管理用户主界面选取删除用户信息项。
2. 系统显示是否删除用户,管理人员选择删除。
3. 系统删除用户信息表中相对应的用户信息。
4. 系统显示删除用户成功。
备选事件流 2a 系统显示是否删除用户,管理人员选择不删除。系统不改变
备注 无
搜索用户信息用例描述如表2.5所示。
表2.5搜索用户信息用例表
用例标识 2.1.4
用例名称 搜索用户信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在用户表中搜索用户信息。
用例概述 管理人员可以搜索用户信息。
基本事件流 1. 管理人员在管理用户主界面选取搜索用户信息项。
2. 系统显示搜索用户页面。
3. 管理人员输入用户个别信息,并进行搜索。
4. 系统根据输入的信息,返回搜索结果。
备选事件流 4a 系统根据输入结果搜索不到结果,在主页面显示搜索不到结果。
备注 无
(2)管理歌曲类别信息用例
管理人员可以通过管理歌曲类别信息用例对歌曲类别信息进行维护,包括对歌曲类别信息的增删改查。管理歌曲类别信息用例图如图2.7所示。

图2.7 管理歌曲类别信息用例图
其添加歌曲类别信息用例的描述如表2.6所示。
表2.6 添加歌曲类别信息用例表
用例标识 2.4.1
用例名称 添加歌曲类别信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲类别表中添加一条歌曲类别信息。
用例概述 管理人员可以对歌曲类别信息进行添加。
基本事件流 1. 管理人员在管理歌曲类别主界面选取添加歌曲类别信息项。
2. 系统显示添加歌曲类别界面。
3. 管理人员输入歌曲类别名称、歌曲类别简介后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复歌曲类别名,将歌曲信息录入到歌曲类别信息表中。
6. 系统显示添加歌曲类别成功。
备选事件流 5a 系统查出有重复书记类别名称,将显示添加歌曲类别失败,管理员重新输入另一名称,系统查出没有重复歌曲类别,显示添加歌曲类别成功。
备注 歌曲类别编号生成
更改歌曲类别信息用例描述如表2.7所示。
表2.7 更改歌曲类别信息用例表
用例标识 2.4.2
用例名称 更改歌曲类别信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲类别表中更改一条歌曲类别信息。
用例概述 管理人员可以对歌曲类别信息进行更改。
基本事件流 1. 管理人员在管理用户主界面选取更改歌曲类别信息项。
2. 系统显示更改歌曲类别界面,并将歌曲类别信息显示齐全。
3. 管理人员更改歌曲类别信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复歌曲类别名称,将更改歌曲类别信息表中信息。
6. 系统显示更改歌曲类别成功。
备选事件流 5a 系统查出有重复歌曲类别名称,将显示更改歌曲类别失败,管理员重新输入另一名称,系统查出没有重复歌曲类别名称,显示更改歌曲类别成功。
备注 无
删除歌曲类别信息用例描述如表2.8所示。
表2.8删除歌曲类别信息用例表
用例标识 2.4.3
用例名称 删除歌曲类别信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲类别表中删除歌曲类别信息。
用例概述 管理人员可以对歌曲类别信息进行删除。
基本事件流 1. 管理人员在管理歌曲类别主界面选取类别后删除歌曲类别信息项。
2. 系统显示是否删除歌曲类别,管理人员选择删除。

续表2.8删除歌曲类别信息用例表
基本事件流 3. 系统检查歌曲分类下是否有歌曲
4. 系统确认歌曲分类下无歌曲,将删除歌曲类别信息表中指定信息。
5. 系统显示删除歌曲分类成功。
备选事件流 1a 选取不同类别,选择批量删除
2a 系统显示是否删除歌曲类别,管理人员选择不删除。系统不改变
4a 系统确认歌曲分类下有歌曲,显示因分类下有歌曲,删除失败。
备注 无
(3)管理歌曲信息用例
管理人员可以通过管理歌曲信息用例对歌曲类别信息进行维护,包括对歌曲信息的增删改查。管理歌曲信息用例图如图2.8所示。

图2.8 管理歌曲信息用例图
新增歌曲信息用例描述如表2.9所示。
表2.9 新增歌曲信息用例表
用例标识 2.5.1
用例名称 新增歌曲信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲表中添加一条歌曲信息。
用例概述 管理人员可以对歌曲信息进行添加。
基本事件流 1. 管理人员在管理歌曲主界面选取添加歌曲信息项。
2. 系统显示新增歌曲界面。
3. 管理人员输入歌曲名称、歌曲类别、图片、歌曲内容、简介后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复歌曲名称,将信息录入到歌曲信息表中。
6. 系统显示添加歌曲成功。
备选事件流 5a 系统查出有重复歌曲名称,将显示添加歌曲失败,管理员重新输入另一名称,系统查出没有重复歌曲名称,显示添加歌曲成功。
备注 歌曲编号生成

更改歌曲信息用例描述如表2.10所示。
表2.10更改歌曲信息用例表
用例标识 2.5.2
用例名称 更改歌曲信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲表中更改一条歌曲信息。
用例概述 管理人员可以对歌曲信息进行更改。
基本事件流 1. 管理人员在管理歌曲主界面选取更改歌曲信息项。
2. 系统显示更改歌曲界面,并将歌曲信息显示齐全。
3. 管理人员更改歌曲信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复歌曲名称,将更改歌曲信息表中的记录。
6. 系统显示更改歌曲成功。
备选事件流 5a 系统查出有重复歌曲名称,将显示更改歌曲失败,管理员重新输入另一名称,系统查出没有重复歌曲名称,显示更改歌曲成功。
备注 无
删除歌曲信息用例描述如表2.11所示。
表2.11 删除歌曲信息用例表
用例标识 2.5.3
用例名称 删除歌曲信息
参与者 管理人员
前置条件 已经以管理人员身份登录。
后置条件 在歌曲表中删除歌曲信息。
用例概述 管理人员可以对歌曲信息进行删除。
基本事件流 1. 管理人员在管理歌曲主界面选取歌曲后选择删除歌曲信息。
2. 系统显示是否删除歌曲,管理人员选择删除歌曲。
3. 系统删除歌曲信息表中的相对应的歌曲信息。
4. 系统显示删除歌曲成功。
备选事件流 1a 选取不同歌曲后,选择批量删除
2a 系统显示是否删除歌曲,管理人员选择不删除。系统不改变
备注 无
2.3 非功能性需求
安全性:用户信息具有保密性,用户信息只能由管理人员控制更改使用,用户注册也只能在管理人员处进行注册登记。
正确性:不允许出现业务错误。
兼容性:可在各种支持HTML5的浏览器中使用。
性能:系统处理业务时页面响应时间不能超过2秒,在繁忙时间最多不能超过6秒。
并发性:允许多个用户用户登录操作。
2.4 运行环境
KTV点歌系统系统运行需要的硬件环境如下
(1)主机类型
系统主机服务器:DELL PowerEdge R630,四核CPU,8G RAM
数据库服务器:HP DL388 Gen9,四核CPU,8G RAM
用户用PC机:任意可联网设备
(2)网络类型
以太网
(3)存贮器容量
系统主机服务器:200G以上
数据库服务器:1000G以上
(4)设备分布图
设备分布图如图2.9所示。

图2.9 设备分布图
KTV点歌系统系统运行所需的软件环境如下。
(1)操作系统:
应用服务器:Windows NT Server 2008以上版本
用户用PC机:windows XP和以上
(2)数据库管理系统:
MySQL 5.0.27
(3)网页浏览器:
应用服务器:Google Chrome
用户用PC机:Google Chrome或者Firefox
(4)开发环境:
IDE采用Eclipse Java EE IDE Luna(4.4.1)
(5)数据库管理工具:
Navicat Premium 10.0.9
(6)运行环境:
Tomcat 7.0 + Apache

第3章 系统设计与实现
3.1 技术路线
在KTV点歌系统系统中,用到的技术路线如下:
B/S(Browser /Service )结构,中文译为浏览器和服务器结构。是目前国内最为常见,而且对于用户而言是最方便的一个常用结构,对以往的客户机/服务器结构(Client/Service)进行更深一层的优化。在这种结构下,用户只需要使用任意浏览器即可进行主要事物的实现和使用。其主要的逻辑在服务器端(Service)完成,而在浏览器部分只处理非常少的事物逻辑处理。可以看作从传统的二层模式结构发展而来的在C/S(Client/Service)结构在Web上的应用的三层结构。该结构适用面非常广,其对系统维护所产生的升级成本和人力时间更低,用户使用成本低,以目前的技术发展情况看,其技术相对来讲易于把握。
Spring MVC是 Spring提供用于构建 Web应用程序的轻量级全功能的 MVC模块开发框架,作为一个一站式轻量级应用开发框架(平台), Spring抽象了在各类生活场合中的各种共性问题。Spring有其自身独有的设计理念,在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用可以进行面向接口开发。其支持OO(面向对象)的设计方法。SmartAdmin是一套基于JQuery,Bootstrap构建的UI组件库,是将各种JQuery插件和Bootstrap整合到一起,是一整套基于完整的应用开发UI库。
JQuery是一个快速的、简洁的JavaScript框架,其封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文房操作,时间处理、动画设计和Ajax交互。
Bootstrap,是一个来自Twitter的Web框架。目前很受Web前端开发者们的欢迎,Bootstrap是基于HTML、CSS、JavaScript而成的,以此而形成更加快捷的Web开发方式。其在JQuery的基础上进行了更加人性化和个性化的完善,形成一套Bootstrap独有网站风格。Bootstrap包含了目前非常主流的Web组件,在开发过程中可以通过这些组件快速搭建既实用又美观的网站。许多前端开发者较为熟悉的框架(如WeX5)也是基于Bootstrap进行性能优化而形成的。

3.2 软件体系结构设计
3.2.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。

图3.1系统功能结构图
3.2.2 系统架构
系统架构图如图3.2所示。
图3.2 系统架构图
系统架构选用Spring3.0架构。作为在Java领域最为成功的开源软件之一,Spring在Java EE 开发中使用者众多。Spring抽象了我们在目前许多应用开发中所遇到的最共性的问题,同时作为一个轻量级的应用开发框架,Spring和传统的J2EE开发相比,有其自身特有的特点。Spring通过这些自身特有的特点充分体现了它的设计理念:在Java EE的应用开发中,支持POJO(JavaBean)的开发方式,使应用能够面向接口开发,充分支持OO(面向对象)的设计方法。在IOC容器和AOP面向切面编程的核心模块的支持下,使得程序员能够高度简化了Java EE的开发过程。为应用开发提供了极其丰富的系统组件,通过这些组件,为企业应用服务的实现提供驱动支持。
3.3 数据库设计
3.3.1 概念结构设计
针对KTV点歌系统系统的功能性需求方面的了解,系统概念模型(ER图)如图3.3所示。

图3.3 系统概念模型ER图
3.3.2 表的详细设计
通过对KTV点歌系统系统在需求分析中的领域对象、业务对象及对象之间的分析,进行了对KTV点歌系统系统的数据库建表设计。KTV点歌系统系统数据库管理部分采用MySQL。
(1)bofangjilu表注释: 播放记录
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
gequmingcheng varchar(200) 是 NULL 歌曲名称
geshouxingming varchar(200) 是 NULL 歌手姓名
gequfengmian varchar(200) 是 NULL 歌曲封面
gequshipin varchar(200) 否 歌曲视频
fangjianhao varchar(200) 是 NULL 房间号
(2)config表注释: 配置文件
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
name varchar(100) 否 配置参数名称
value varchar(100) 是 NULL 配置参数值
(3)diangegedan表注释: 点歌歌单
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
gequmingcheng varchar(200) 是 NULL 歌曲名称
geshouxingming varchar(200) 是 NULL 歌手姓名
gequleibie varchar(200) 是 NULL 歌曲类别
gequfengmian varchar(200) 是 NULL 歌曲封面
geshouleibie varchar(200) 是 NULL 歌手类别
gequzhuangtai varchar(200) 是 NULL 歌曲状态
yuzhongleibie varchar(200) 是 NULL 语种类别
gequshizhang varchar(200) 是 NULL 歌曲时长
diangeshijian datetime 是 NULL 点歌时间
fangjianhao varchar(200) 是 NULL 房间号
sfsh varchar(200) 是 否 是否审核
shhf longtext 是 NULL 审核回复
(4)discussgequxinxi表注释: 歌曲信息评论表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
refid bigint(20) 否 关联表id
userid bigint(20) 否 用户id
nickname varchar(200) 是 NULL 用户名
content longtext 否 评论内容
reply longtext 是 NULL 回复内容
(5)gequleibie表注释: 歌曲类别
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
gequleibie varchar(200) 否 歌曲类别
(6)gequxinxi表注释: 歌曲信息
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
gequmingcheng varchar(200) 否 歌曲名称
geshouxingming varchar(200) 是 NULL 歌手姓名
gequleibie varchar(200) 是 NULL 歌曲类别
gequfengmian varchar(200) 是 NULL 歌曲封面
geshouleibie varchar(200) 是 NULL 歌手类别
yuzhongleibie varchar(200) 是 NULL 语种类别
gequshizhang varchar(200) 是 NULL 歌曲时长
shangjiashijian datetime 是 NULL 上架时间
clicktime datetime 是 NULL 最近点击时间
(7)news表注释: 公告资讯
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
title varchar(200) 否 标题
introduction longtext 是 NULL 简介
picture varchar(200) 否 图片
content longtext 否 内容
(8)storeup表注释: 收藏表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
refid bigint(20) 是 NULL 收藏id
tablename varchar(200) 是 NULL 表名
name varchar(200) 否 收藏名称
picture varchar(200) 否 收藏图片
type varchar(200) 是 1 类型(1:收藏,21:赞,22:踩)
inteltype varchar(200) 是 NULL 推荐类型
(9)token表注释: token表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
userid bigint(20) 否 用户id
username varchar(100) 否 用户名
tablename varchar(100) 是 NULL 表名
role varchar(100) 是 NULL 角色
token varchar(200) 否 密码
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
expiratedtime timestamp 否 CURRENT_TIMESTAMP 过期时间
(10)users表注释: 用户表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
(11)yonghu表注释: 用户
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
fangjianhao varchar(200) 否 房间号
mima varchar(200) 否 密码
xingming varchar(200) 否 姓名
xingbie varchar(200) 是 NULL 性别
touxiang varchar(200) 是 NULL 头像
shouji varchar(200) 是 NULL 手机

3.4 对象设计
本系统的功能包括登录、用户管理、歌曲管理、歌曲类别管理、播放记录管理等。下面对核心模块进行详细设计。
3.4.1 用户管理用例对象设计
(1)用例实现
用户管理模块的顺序图,管理员登录系统可以进行用户管理。如图3.4所示。

图3.4用户管理模块顺序图
本模块的最主要功能就是管理员管理用户信息,添加,删除和修改用户信息。
经过处理,管理员可以登录系统,对用户信息进行编辑,添加,删除等操作。
3.4.2 在线点歌歌曲管理用例对象设计
(1)用例实现
在线点歌歌曲管理模块的顺序图,用户登录系统可以进行在线点歌歌曲管理。如图3.5所示。

图3.5在线点歌歌曲管理模块顺序图
本模块的最主要功能就是用户在线点歌歌曲信息,用户选择音乐在线点歌歌曲。经过处理,用户可以登录系统,对用户在线点歌歌曲进行等操作。

3.4 核心功能实现
在KTV点歌系统系统中,核心业务用例的实现效果如下所示。受篇幅所限,将只会显示和点歌、歌曲相关的三个模块核心功能。
用户在线点歌歌曲模块实现
用户点歌歌曲操作,采用 form发送异步请求将歌曲信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行查询并返回结果,实现效果如图4.1所示。

图4.1 用户在线点歌歌曲功能实现效果图
管理人员添加歌曲功能模块
管理人员对歌曲进行添加操作,采用form发送异步请求将歌曲信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行插入并返回结果。实现效果如图4.3所示。

图4.3 管理人员添加歌曲功能实现效果图

3.5 关键技术难点与解决方案
(1)对于界面中要输入的大批量文字和含有特殊符号的内容的情况下,经过各种editor的比较,最后决定采用百度编辑器插件UEditor实现大批量文字输入和特殊表情。UEditor可以以高度可视化的编辑方式编辑大批量文字和含有特殊符号的内容。其可操作性和执行效率要比JavaScript的方式要高。
(2)由于登录时管理人员和用户使用共同的登录页面,需要登录页面去判断当前登陆账号是用户还是管理人员,进而跳转至不同的主页。因此在登录界面中,其控制层的实现方式代码如下所示。
Map<String, Object> map = userService.getUserByName(userName);//检查是否是管理员
Map<String, Object> userLogin = frontReaderService.getReaderByName(userName);//检查是否是用户
// 用户名和密码是否正确,同时检查是用户还是管理员
if (map != null && map.get(“password”).equals(passwordMD5)) {
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, “登录成功”);
retMap.put(Params.RET_MSG, “管理员”);
return retMap;
} else {
if(userLogin != null && userLogin.get(“readerPassWord”).equals(passwordMD5)){
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, “登录成功”);
retMap.put(Params.RET_MSG, “用户”);
return retMap;
}
3.6 编码规范
在该项目的实现阶段,为保证该系统的编码合乎规范,专门制定其编码规范。KTV点歌系统系统的编码规范如下表4.1所示。
表4.1 编码规范表
条目 规范内容
1 包名由小写字母构成。类名由一个或者多个单词构成,且单词首字母大写。
2 函数(方法)名由一个或者多个单词构成,第一个单词为动词,首字母小写,后面的单词为名词,且每个单词的首字母大写。
3 常量名全部由大写字母构成,单词间用下划线(_)分割。
4 变量名由一个或者多个单词构成,第一个单词首字母小写,后面的单词首字母大写。
5 参数命名和变量保持一致。
6 Bean命名:去掉表名的下划线同时首字母大写
7 DAO接口命名:Bean名+DAO。实现类命名:DAO接口+Impl
8 Service接口命名:模块名+Service。 实现类命名:Service接口+Impl
9 Controller类命名:模块名+ Controller
10 Bean实例及方法调用规范:Controller只允许调用Service,Service只允许调用DAO。
一个DAO对应一个数据库表。
一个Service对应一个业务模块,可以对应多个DAO。
一个Controller对应一个业务模块,可以对应多个Service。
11 事务控制放在Service层,不要放在DAO层。
12 DAO层方法的命名规则如下:
插入数据:add*
更新数据:update*
删除数据:delete*
查询数据:get*
13 Service层方法的命名规则如下:
插入数据:add*
更新数据:update*
删除数据:delete*
查询数据:get*
是什么:is*
是否存在:exists*
14 jsp文件命名:文件名首字母小写,如果是由多个单词构成,则后面的单词首字母大写。同使用名词+动词的形式。

4 系统测试
KTV点歌系统系统的测试是和系统开发同步进行的,因此在需求阶段测试人员就已经对需求阶段的各个指标进行了相对应的验证测试,在系统开发过程中进行单元测试,在系统开发完成后针对性能、功能性和可用性进行系统测试。限于篇幅所限,下面主要围绕功能测试用例和测试总结两个方面进行说明。
4.1 功能测试
本系统对用户用户和系统管理员两个核心模块进行了功能测试,测试设计如下所示。
(1)登陆模块功能测试
登录功能中由于管理人员和用户共同使用同一个登录入口。因此测试用例设计如表5.1所示。
表5.1 登陆模块功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 以用户身份登录 按照系统要求填写用户登录名和密码信息点击“确定” 系统跳转至用户可使用的前台首页 通过
D002 以管理人员身份登录 按照系统要求填写管理人员登录名和密码信息点击“确定” 系统跳转至管理人员可使用的后台首页 通过
D003 以未注册身份登录 按照系统要求填写并未注册登录名和密码信息点击“确定” 系统提示用户名或密码错误 通过
D004 密码长度小于6位 输入的密码与确认密码长度小于6位,其余选项正常填写 系统提示用户密码长度不能小于6位 通过
D005 用户名为空 用户没有填写用户名 系统提示用户名未填写 通过
(2)点歌歌曲功能测试
用户登录系统,可以选择自己喜欢的歌曲点歌的功能。测试用例设计如表5.2所示。
表5.2 点歌歌曲功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D006 以用户身份登录系统点歌歌曲 用户点击喜欢的歌曲,进入详情页面,点击点歌按钮。 系统提示点歌成功 通过
(3)管理人员管理歌曲相关功能测试
管理人员管理歌曲相关中包含了歌曲和歌曲分类两大部分的内容。测试用例设计如表5.3所示。
表5.3 管理人员管理歌曲相关功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D009 显示歌曲分类下歌曲 在歌曲分类页面选择任意查看歌曲按钮 系统跳转到该歌曲分类下的歌曲列表 通过
D010 在增加歌曲分类时没有填写完必填信息 在增加歌曲分类时必填信息没有填写并提交 系统提示必填项未填写完全,本次录入失败 通过
D011 在增加歌曲分类时部分信息超出允许范围 在增加歌曲分类时部分信息长度超出范围,其余正常输入 系统自动限制输入范围 通过
D012 在更改歌曲分类时没有填写完必填信息 在更改歌曲分类时没有填写完必填信息 系统提示未填写完全,本次更改失败 通过
D013 在更改歌曲分类时超出允许范围 在更改歌曲分类时超出允许范围 系统自动限制输入范围 通过
D014 歌曲类别内还有歌曲时进行删除 在歌曲类别页里删除任意含有歌曲的类别 系统提示类别下还有歌曲,无法删除 通过
D015 在增加歌曲时没有填写完必填信息 在增加歌曲时必填信息没有填写并提交 系统提示必填未填写完全,本次录入失败 通过
D016 在增加歌曲时没选择图片 在增加歌曲时没有选择图片,并提交 系统将使用默认图片作为该歌曲图片 通过
D016 在增加歌曲时部分信息超出允许范围 在增加歌曲时部分信息长度超出范围,其余正常输入 系统自动限制输入范围 通过
D017 在更改歌曲时没有填写完必填信息 在更改歌曲时没有填写完必填信息 系统提示未填写完全,本次更改失败 通过
D018 在更改歌曲时超出允许范围 在更改歌曲时超出允许范围 系统自动限制输入范围 通过
D019 在移动歌曲时不选择歌曲类别 在移动歌曲时不选择歌曲类别 系统提示选择歌曲类别 通过
D020 在搜索歌曲时不填写搜索条件 在搜索歌曲时不填写任何搜索条件后点击搜索 系统搜索出所有歌曲 通过
D021 在搜索歌曲时填写模糊搜索条件 在搜索歌曲时,搜索条件填写部分字段,点击搜索 系统将匹配的结果显示出来 通过
D022 在搜索歌曲时多次查询 在搜索歌曲时按搜索条件搜索结果后更换搜索条件再次搜索 系统将只显示本次搜索结果,不显示上次搜索结果 通过
D023 显示歌曲简介 在分类下歌曲列表页选择查看歌曲简介 系统显示查看歌曲简介页 通过
(4)用户在线点歌歌曲功能测试
用户登录系统后,可以选择歌曲,在线点歌歌曲的功能,其测试用例设计如表5.4所示。
表5.4 用户在线点歌歌曲功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D024 以用户身份进入歌曲列表 以用户身份选择任意歌曲的在线点歌歌曲按钮 系统跳转到该歌曲的点歌歌曲页,并显示该歌曲的详情信息 通过

(5)管理人员管理用户相关功能测试
管理人员管理用户相关功能中包含了增加用户、更改用户、删除用户、搜索用户、查看借书状态等的功能。测试用例设计如表5.5所示。
表5.5 总体借还书功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D025 增加用户 到新增用户页,按要求填写用户信息,点击提交 系统提示注册成功 通过
D026 增加用户时部分必填项为空 到增加用户页中,部分必填项为空,其余正常 系统提示必填项为空 通过
D027 更改用户 到更改用户页,按要求更改用户信息,点击提交 系统提示更改还回 通过
D028 更改用户时部分必填项为空 到更改用户页中,部分必填项为空,其余正常 系统提示必填项为空 通过
D029 删除用户 在用户列表页中,选择任意用户,点击删除用户按钮 系统提示删除成功 通过
D030 查询用户 在用户查询页中,填写查询条件,点击查询 系统列出搜索用户信息 通过
D031 查看用户借阅情况 在用户列表页中,点击任意用户的借阅情况按钮 系统列出该用户的借阅情况信息 通过
(5)更改密码功能测试
更改密码功能中有管理人员的密码更改和用户的密码更改的功能。测试用例设计如表5.6所示。
表5.6 更改密码功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D034 以用户身份更改密码 以用户身份到用户密码更改页,填写旧密码、新密码、确认新密码后点击确认 系统提示更改成功 通过
D035 确认新密码和新密码不一致 到密码更改页后,确认新密码和新密码不一致,其余保持正常 系统提示密码不一致 通过
D036 旧密码和当前登录密码不一致 到密码更改页后,旧密码和当前登录密码不一致,其余保持正常 系统提示旧密码错误。并返回登录页 通过
D037 旧密码和新密码一致 到密码更改页后,旧密码、新密码和确认新密码填写一致 系统提示旧密码和新密码一致 通过
4.2 测试分析
KTV点歌系统系统一共产生30个bug,通过测试发现在登录注册界面产生5个bug,歌曲类别界面产生5个bug,用户点歌歌曲界面产生4个bug,网站首页界面产生6个bug,KTV点歌界面产生2个bug,统计管理界面产生5个bug,播放记录管理界面产生3个bug,通过修改都已经处理了所有bug,并且做了回归测试,整个系统运行的很稳定。测试结束后,在测试总结中通过按版本统计结果、按等级统计结果角度对测试情况进行了客观的统计和分析,具体按版本统计bug的结果,如图5.1所示。

图5.1 按版本统计bug数
按等级统计bug的结果,如图5.2所示。

图5.2 按问题等级统计bug数
按类型统计bug的结果,如图5.3所示。

图5.3 按类型统计bug数

4.3 测试总结
在开发期间采用的是边开发边测试的方式,使得开发周期和测试周期同步。经检测,在最后的系统测试期间,全部bug数为320个,在开发阶段的bug就有280个。在最后测试阶段的bug则只有40个。通过开发和测试共同进行的方式,最终保证系统能够具有较高的稳定性。同时通过不断的版本控制,使得系统具备较好的可用性。
系统在功能性上由于新技术所造成的不稳定性,导致了新技术所带来的功能性bug较多。但性能bug则很少,另外经过多次改进,新技术造成的错误数大幅度减少。

5 结论、
5.1 本文的主要贡献
在这近几个月的不断的努力中,KTV点歌系统系统终于圆满完成。这套系统具有很多优点,不仅能完成日常KTV点歌的,还可以对歌曲的业务进行扩展。不过在本项目完成的同时,由于时间短,项目紧促,造成了该系统也有很多不足的地方。整个项目仍有改进的空间。具体的改进如下:
优点
本项目的优点在于项目前后台分离,各自负责不同的部分。同时还应用了较为新颖的技术。项目运用了bootstrap,使项目能有较高的易用性,其强大的UI库保证了界面的美观程度。页面加载部分使用Ajax方法,使得页面能够动态显示各种信息。
缺点
本项目的缺点在于由于只有一个人完成整个项目,以此来计算的情况下完成整套系统的时间显得非常仓促。在需求调研阶段就调研结果而言并不能高度满足于现有系统真正所需要的要求。另外在项目中,并没能很好的完全分离前后台,这一点还有待加强学习。同时,项目中由于bootstrap的UI库信息量非常多,其显示的并不一定是最符合其位置的UI样例。
5.2 下一步工作的展望
对于KTV点歌系统系统的缺点的相对应改善计划是,理清前后台的业务逻辑,使之能够做到前后台分离。而bootstrap中我们可以通过加强对JQuery的使用对其进行补充。使得项目能够有更好的易用性。针对bootstrap过多的问题,可以对其进行库设计,从而达到快速引用的设计。
通过这几个月的不断努力和学习,最终独立的完成了整个项目。对此有很多的感触。项目中应用到了不少的新技术。有很多都不在学校的课堂中学习到而是通过不断的实践获得的。有很多的知识通过在公司的实习和在对技术的应用中获得,而这些知识将全部应用在KTV点歌系统系统这个项目上来。随着技术的进步,我们还需要不断的学习与探索,会有更好的天地等着我们去实现。

参考文献

[1]王智勇.基于Struts的J2EE构架的Ayo歌曲信息网站设计与实现[J].中国管理信化,2013,14(13):37-39.
[2]赵建华,李楠,王国双. Ayo歌曲信息网站实用性[J].中小企业管理与技术,2013,21(15):259-260.
[3]韩友君.关于Ayo歌曲信息网站的应用方案分析[J].科技创新与应用,2013,28(25):79-79.
[4]李建东.Ayo歌曲信息网站可靠性设计[J].计算机安全,2013,7(4):79-82.
[5]许平格.数据库管理系统中查询优化的设计与实现[D].浙江:浙江大学,2005.
[6]刘姗.一种改进的MySQL数据库访问控制的设计与实现[D].武汉:华中科技大学,2011.
[7]王晓东.J2ee架构的研究与应用[J].科技信息,2013,23(23):439-439.
[8]廖胜军.基于SSH整合架构的应用研究[D].武汉:武汉理工大学,2008.
[9]胡元发.基于J2EE架构的SSH组合框架的设计与应用[D].苏州:苏州大学,2006.
[10]Ou Feng,ZOU Min and LI Xiao-Zhen.Survey on Java Technology Framework[J].Computer Systems& Applications,2012,21(8):236-239.
[11]Farias G, Cervin A, Dormido S, Esquembre F. Java Simulations of Embedded Control Systems[J]. Sensors, 2010, 10(9):8585-8603.
[12]陈明志.基于SSH的Ayo歌曲信息网站的设计[J].电子技术与软件工程,2013,14(6):22-24.
[13] 王晓东.J2EE架构的研究与应用[J].科技信息,2013,23(23):439-439.
[14] Ou Feng,ZOU Min and LI Xiao-Zhen.Survey on Java Technology Framework[J].Computer Systems& Applications,2012,21(8):236-239.
[15] Farias G, Cervin A, Dormido S, Esquembre F. Java Simulations of Embedded Control Systems[J]. Sensors, 2010, 10(9):8585-8603.

致 谢
在系统全部完成之际,我非常感谢在毕业设计时给予我帮助的人。没有他们的帮助,就没有我能够顺利的完成毕业设计。
首先,我要感谢我的指导老师,这几个月来,老师为我们付出了很多的努力,针对我们的系统和论文进行了非常细心的指导。根据毕业设计期间的要求和政策对我提出了不少的意见和建议。在她的建议下我能够圆满完成我的毕业设计任务。对此再次表示衷心的感谢。
其次我需要感谢的是我的父母,在整个毕业设计期间,是我的父母,作为在毕业设计期间最强有力的后盾,我可以全身心的去关注、去撰写我的毕业设计论文。在大学生活中我的每时每刻都离不开来自于我的父母的全力支持和关心。
之后,我要感谢的是全体软件工程系的大力协助,在大学的四年间,您们严谨的教学态度和科学的工作方法对我们的成长有很重要的影响。没有您们为我们无私的传授知识和获取知识的方法,就没有我们能够在软件行业立足的基础。
最后我要感谢的,是我们的学校。不仅教育我们知识,对我们的思想道德的培养更多。使我们不仅能够做一名合格的大学生,更能在走出校园时,能够成为一名合格的社会人。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值