电影推荐系统——需求分析与设计

Re丶 2022-01-09 18:51:14

1 概述

        本文是对工程实践项目——电影推荐系统,进行的需求分析与设计文档。电影推荐系统是基于数据挖掘、数据处理、数据分析以及推荐算法实现的,其主要用户是针对广大电影爱好者。需求是对用户期望的软件行为的表述,需求分析是在获取需求的基础上进一步对软件涉及的对象或实体的状态、特征和行为进行准确描述或建模的工作。

2 用例图

       用例的核心概念中首先它是一个业务过程,经过逻辑整理抽象出来的一个业务过程,这是用例的实质。业务过程是指在待开发软件所处的业务领域内完成特定业务任务的一系列活动。本文所设计的推荐系统主要服务于用户和管理员,接下来将从用户与管理员两种角度来进行用例图的绘制。

2.1 用户用例图

       从用户角度来看,分为游客和普通用户:游客只能浏览电影信息,而且需要用户登录才可以对电影进行评分,评论等操作,所以游客无法获得个性化定制的推荐电影列表;对于普通用户,首先需要新用户在系统当中注册 user_id,便于系统能够准确识别用户信息,并根据该用户的观影兴趣为其提供独特的推荐列表。游客与普通用户的用例图如下:

 2.2 管理员用例图

  从管理员的角度来看,管理员在系统中具有最高权限,其主要是对用户信息以及电影信息进行维护与管理操作。管理员可以随时添加新电影,以及对电影信息进行删除,更新修改以及检索等,管理员还可以添加、删除、查找用户信息,还可以对用户行为进行管理。管理员的用例图如下:

 

3 数据模型

3.1 概念数据模型

  概念数据模型实现世界到信息世界的第一层抽象,主要是在高水平和面向业务的角度对信息的一种描述。本文设计概念模型主要使用E-R图。

  工作流程:每个用户登陆后,可以收到来自推荐系统推荐的电影信息,同时他也可以标记电影为“看过”或“想看”,或者对看过的电影进行评价和打分。具体实例如下:

3.2 物理数据模型

  物理模型是概念模型的具体表示,描述了数据在物理存储介质上的具体组织结构,不但与数据管理系统有关,同时还与具体的操作系统及硬件有关。物理数据模型将综合考虑各种存储条件的限制,进行数据库的设计,从而真正的实现数据在数据库中的存放。其主要的工作是根据逻辑数据模型中的实体、属性、联系转换为对应的物理模型中的元素,包括定义多有的表和列,定义外键以维持表之间的联系等。本文以电影信息,用户评分信息和电影标签信息为例:

 

4 架构设计

       本系统的服务架构设计如下图4-1所示:

       GUI Layer 层主要是负责前端页面展示,使用富客户端技术ExtJS实现,用户可以浏览相关的电影信息以及评分,包括一些热门电影的推荐,还有根据每个用户特定兴趣的推荐。

       BLLayer层是Web后台服务层,该层使用javastruts框架实现,后台的Web服务器收到前端提交的评分数据,推荐列表请求数据等Http请求包后,解析Http请求包获取其中的信息,然后调用特定的服务获取结果返回给浏览器。Profile Service层用于管理用户的兴趣属性模型,其中包括用户的喜欢的导演,演员,还有电影类型等信息。用户可以填写完善个人信息,以便推荐系统更易理解用户。

        Common Service提供根据用户获取用户推荐电影列表,获取根据电影推荐相似电影列表的功能。由于Common Service 使用频率比较高,因而采用C++实现并对外提供WebService调用接口,供其他外部程序调用。AnalysisService是一个定时触发的线程,该线程定期分析用户的日志数据获取用户的新的评分记录,更新评分数据库,重新计算用户与用户,电影与电影之间的相似度,更新用户与电影的profile 信息。

 作者:486

...全文
3225 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧