电影推荐系统的需求分析与概念原型
推荐系统的需求分析与概念原型">电影推荐系统的需求分析与概念原型
1. 前言及项目介绍
最近在高级软件工程课堂中完成了从需求分析到软件设计这一单元的学习内容,收获良多,下面结合本学期我的工程实践项目——基于Spark的电影推荐系统的设计与实现,通过运用课堂中所学的知识,对此项目进行简单的用例建模,业务领域建模以及数据建模,最终形成概念原型。此工程实践选题主要是基于spark以及机器学习相关的技术,完成一个电影推荐系统的设计与实现,并最终通过网页的形式展现出来。所要完成推荐系统的框图如下:
接下来结合本次实践选题,对课堂中学习的内容进行一个简单的总结和运用。
2. 需求分析的概念
首先我们明确需求和需求分析的概念:
需求就是用户期望的软件行为的表述,
获取需求就是需求分析师通过关注用户的期望和需要,从而获得用户期望的软件行为,然后对其进行表述的工作;
需求分析是在获取需求的基础上进一步对软件涉及的对象或实体的状态、特征和行为进行准确描述或建模的工作。
3. 项目用例图
需求分析的两类基本方法:
原型化方法(Prototyping)和建模的方法(Modeling)。
用例的概念:
用例是一个经过逻辑整理抽象出来的业务过程。业务过程就是在待开发软件所处的业务领域内完成特定业务任务的一系列活动。
用例有以下三个基本要素:
- 一个用例应该由业务领域内的某个参与者(Actor)所触发。
- 用例必须能为特定的参与者完成一个特定的业务任务。
- 一个用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
本系统主要用户有系统管理员和网站用户,下面分别对其需求进行详细分析。
4.1 用户用例图
通过浏览器访问系统主页进行搜索和查看,推荐热门电影,系统对登录用户进行个性化推荐。用户用例图如下:
4.2 系统管理员用例图
系统管理员主要是对系统后台进行管理,包括电影信息管理,用户信息的管理,数据平台管理,推荐引擎维护。系统管理员用例图如下:
4. 项目的业务类图
业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。
业务领域建模的基本步骤:
第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
第三步,给这些应用业务领域概念分类。分别列出哪些是类,哪些属性和属性值,以及列出类之间的继承关系,聚合关系和关联关系。
第四步,将结果用 UML 类图画出来。
UML类图是用来描述一个系统的静态结构。包含了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。类图也可以用于数据建模。它可以用来描述应用程序内部或和其他用户之间的对象和信息结构。在UML中问题域终要被逐步转化,通过类来建模,通过编程语言构建这些类。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。
业务类图的实现
本项目中的类可以大致分为以下几种:Person,User,Administrator, Movies, Rating, Interest, Recommendation
说明:Person是Administrator和User的父类,Administrator负责管理用户和电影信息,User可以设置自己的观影兴趣并且给电影评分,Movies主要是进行电影信息的管理和更新电影操作,Recommendation系统则是根据用户的兴趣和它对电影的评分,为用户生成个性化的推荐。
5. 项目的数据模型
数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。
根据以上分析,可以设计出用户信息、电影信息、评分和用户兴趣四个数据实体及其包含数据,得出数据模型如下:
1.用户信息表
字段名称 | 字段类型 | 主键 | 字段约束 | 字段说明 |
---|---|---|---|---|
user_id | string | 是 | Primary Key | 用户ID |
name | string | NOT NULL, Unique | 用户名 | |
age | int | NOT NULL | 用户年龄 | |
sex | string | NOT NULL | 用户性别 | |
password | string | NOT NULL | 用户密码 | |
interest | string | NOT NULL | 用户兴趣 |
2.电影信息表
字段名称 | 字段类型 | 主键 | 字段约束 | 字段说明 |
---|---|---|---|---|
item_id | string | 是 | Primary Key | 电影ID |
itemname | string | NOT NULL | 电影名称 | |
itemdate | string | NOT NULL | 电影上映时间 | |
itemtype | string | NOT NULL | 电影类型 |
3.评分信息表
字段名称 | 字段类型 | 主键 | 字段约束 | 字段说明 |
---|---|---|---|---|
user_id | string | NOT NULL,Foreign Key | 用户ID | |
item_id | string | NOT NULL,Foreign Key | 电影ID | |
rating | int | 评分 | ||
timestamp | int | 评分时间戳 |
4.用户兴趣表
字段名称 | 字段类型 | 主键 | 字段约束 | 字段说明 |
---|---|---|---|---|
user_id | string | NOT NULL,Foreign Key | 用户ID | |
item_id | string | NOT NULL,Foreign Key | 电影ID | |
itemType | int | 电影类型 | ||
itemDate | int | 电影上映时间 |
6. 概念原型
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
概念原型是一种虚拟的、理想化的软件产品形式。
概念原型 = 用例 + 数据模型
本项目概念原型的工作流程:
本项目是基于Spark的电影推荐系统的设计,首先,用户登录系统后,会先完成 一些个人信息的简单设置,以及个人爱好的设置。用户可以进行一些电影的搜索查找,同时为不同的电影评分打标签。同时,用户可以通过推荐系统来获取一些个性化推荐的电影。推荐系统主要是根据用户的兴趣爱好,以及电影的标签信息,来为用户生成个性化推荐。
7. 总结
通过本次实践作业,把高级软件工程课堂上所学内容与我的工程实践项目电影推荐系统相结合,对项目进行了需求分析和用例建模,进行了业务领域建模,得出了项目的数据模型和概念原型。由于项目还处于开始阶段,对项目的了解不够深入,很多业务和功能都没有构思清楚,因此本篇博客也只是对课堂中所学知识的一次简单运用。相信通过本次的实践,可以对工程实践项目有更清晰的认识与了解。
8. 参考资料
从需求分析到软件设计https://gitee.com/mengning997/se/tree/master/ppt
https://www.processon.com/diagrams
http://blog.itpub.net/31379315/viewspace-2646131/ UML设计:类图说明及一步一步制作UML类图
以上是 电影推荐系统的需求分析与概念原型 的全部内容, 来源链接: utcz.com/a/77974.html