第 3 章 音乐网站需求分析及整体设计
3.1 需求分析和 B/S 架构概述。
3.1.1 需求分析简介。
需求分析就是把软件计划阶段做出的软件可行性分析报告[18]精确及进一步细化,总结用户对产品的整体要求,建立各个模块的解决方案。
在项目开始前,首先要准确的理解和分析客户的实际需求,帮助客户挖掘需求并分析其可行性,在项目进行的过程中也要尽可能的和用户沟通,及时的确认需求改动。总之,需求分析就是分析并解决系统需要完成什么功能的过程。
需求分析阶段主要需要完成以下四大主要工作务:
1. 确定软件的整体需求:功能和性能分析、可靠性和实用性设计、软件健壮性考虑,以及扩展性和可移植方面的研究;2. 分析软件的数据要求:一般的程序执行过程中都会有不少的数据处理操作,因此在软件设计阶段,也要对软件运行时有可能使用的数据进行分析,通常是使用 E-R 图对数据进行建模并进行分析[19].
3. 生成软件的逻辑模型:在需求分析的过程中,将软件的整理结构拆分成多个子模块,分别设计其功能模型,这样有助于对软件有一个系统、直观的理解。
4. 修正软件的开发计划:在需求分析完全结束时,需要结合需求分析文档将可行性分析阶段制定的开发计划中被认为是不正确或者难以实现的的部分进行修订。
总之,首先需要根据用户的需求提出一些功能方面的具体问题与用户进行讨论,之后可以快速建立一个能够实现主要功能的软件模型,让用户在具体使用过程中反馈一些细节问题,以用户的实际需要为核心自顶向下求精,逐步完善软件功能直到满足用户需求。
3.1.2 B/S 系统架构概述。
本文设计个性化音乐推荐系统时,使用 B/S 结构(浏览器/服务器模式)。如图3.1 所示,与传统的 C/S 结构相比,这种结构将客户端进行统一,将软件的核心模块集中到服务器上实现[20],一方面大大降低了软件开发和维护的难度,另一方面浏览器(Browser)能够很方便的在不同的系统中兼容,用户可以在任何机器上操作系统而不需要在机器中安装任何软件[21],并且规模较小的项目基本不用考虑并发的问题。
3.2 系统需求分析。
任何一个网站设计的最终目的都是要部署应用的,必须要全面的考虑都可能面对那些类型的用户及他们都需要都什么样的操作权限,在本文设计的音乐网站中,根据用户的权限不同,可以将所有用户分为三类:游客,注册用户,系统管理员。
3.2.1 游客权限。
如果用户是以游客身份登录,系统只会在主页中显示热门推荐模块,这种推荐方式只是简单的将最近最火(播放次数最多)的几首音乐推荐给游客,并且游客只能浏览推荐音乐的相关信息但是不能播放和收藏,如果点击了播放或收藏按钮,则系统会弹出"请先登录"的提示;游客可以使用右侧的分类功能;游客可以在主页面右上角点击"注册"按钮,进入注册页面完成注册。
3.2.2 注册用户权限。
游客注册时可以获得一个唯一的身份 ID,普通注册用户登录后的权限有:
1) 可以使用个性音乐推荐模块与游客状态相比,普通用户登录在获得热门音乐推荐的同时还可以看到推荐音乐模块,这一模块属于个性化推荐部分,系统根据用户注册时填写的偏好标签及用户的历史浏览记录来自动为用户推荐有可能感兴趣的音乐2)可以播放任意音乐3)可以收藏自己感兴趣的音乐(或者从收藏夹中删除音乐)4)可以更改自己的个人信息,如昵称、偏好标签等3.2.3 系统管理员权限。
(1)管理注册用户。
系统设计时自带的根用户是 Administrator,登录后可以管理普通用户,主要是可以删除不活跃用户(长期不登录的用户),另外根用户可以为其他的用户添加 admin 权限,或者删除这种权限,这些新增的管理员只能操作音乐信息,不能操作用户、管理员数据库。
(2)管理音乐信息。
管理员账号登录后可以向系统中添加音乐,也可以删除、修改系统中已经存在的音乐。因为本文所采用的算法的基础是两方面的:用户注册时填写的信息和长时间收集用户历史信息建立起的用户偏好模型,这些综合起来是系统对用户方面的依赖。另一方面,则是音乐本身的属性,毕竟只有确定了音乐的分类才好将其推荐给有这类偏好的用户,所以音乐信息的管理也是推荐精度的关键点。在网站运行期间。管理员需要对音乐的分类有准确的描述,而且有可能随着时间的推移,流行的歌曲变成经典,或者不再流行,这些改变都需要管理员将相应的分类标签修改,以保证推荐的准确。
(3)系统安全管理。
在长期的运行过程中,整个系统不太可能是一点问题都没有的,如自然灾害造成的严重损失就不比多说,平时也可能遭到黑客攻击导致数据丢失等状况。因此,考虑到系统运行稳定性问题,有必要将数据库进行备份,尤其是用户个人信息、历史记录等,这些一方面关系到用户个人利益,另一方面也是系统推荐技术的基础,必须要进行备份。
3.2.4 网站整体结构分析。
本文中网站的整体设计采用基于 B/S 模式,将整个系统的逻辑分成三层:
分别是表示层、逻辑层[22]
和数据层。B/S 模式是随着 WEB 的发展而出现的一种网络结构模式,它利用 WEB Browser 技术,使用通用 Browser 来完成原本需要用很逻辑很麻烦的软件才能实现的功能。相比 C/S 结构,B/S 结构在 web 应用方面更受编程人员青睐。从实质上讲,B/S 结构也是一种 Client/Server 的应用,它可以被看做是传统二层 C/S 模式发展出来的三层模式在网络中的特殊应用。
系统整体架构。
采用分层结构设计[23]的主要优点有:
(1) 更加灵活,扩展性更强,一些应用环境的变化只需修改应用层就行。
(2) 可共享性,由于使用的是通用浏览器,一个 Server 可以为处于不同系统平台的 Browser 服务,而不用为不同系统设计不同的 Server,大大节省了开发开销。
(3) 升级和维护更容易,由于客户端就是通用浏览器,根本就不用维护,因此需要升级或维护时只需要在 Server 端操作就可以。
(4)安全性,这种模式下客户端(浏览器)并不直接访问数据,实际上的数据访问和操作都是由服务器来控制的,相对来说比较安全。
相应的,对应的三层结构中各层需要完成的功能。
(1) 表示层:实际上就是网站的页面,是系统为访客提供的与网站进行交互的模块,使用通用浏览器。它的作用是给用户提供操作界面,并根据用户的操作(注册、登陆、浏览、播放、添加、删除、修改信息等)通过 Web 浏览器向网络上的 Web 服务器发出服务请求,Web 服务器通过网络传输协议把需要的信息发送到浏览器,浏览器接受传来的主页文件并把它显示在在页面上。这一层只是采集页面的输入及向页面提供输出,并不负责解释;(2) 逻辑层:是音乐网站实现功能模块与数据处理的中心模块,逻辑层首先接收来自页面的服务请求,执行对应的功能模块并连接对应的数据库,通过CRUD 语句的方式向 DB 所在的 Server 提出数据访问请求,然后等待数据库服务器将数据返回,收到结果后回发到 Web 服务器端,最后由 Web 服务器将其提交传给浏览器。它负责所有的业务逻辑处理,包括用户偏好信息、音乐信息、用户历史记录的处理,以及通过合适的推荐算法模型为用户提供热门、个性化推荐服务。总之,整个网站中所有的数据库相关操作都在这一层的模块中处理的;(3) 数据层:实际上指数据库,在数据层进行处理整个网站的数据,其功能是接受 Web 服务器向数据库发送的相关操作申请,执行对数据库增、删、改、查操作,并把所需结果返回到 Web Server 端。本系统中存储在 DB 中的信息主要包含三类:用户个人数据、音乐数据、用户评分、访问记录。