校园电影设计_第1页
校园电影设计_第2页
校园电影设计_第3页
校园电影设计_第4页
校园电影设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0绪论

随着网络时代的来临,越来越多的网络技术被应用于生活的各个方面,从根本上影响

人们的生活方式。推荐系统在日常网络应用中无处不在,例如,在线购物、新闻应用程序、

社交网络、电影网站等当然都很有用。在今天的信息爆炸中,获得信息和获得信息的各种

方式不再是获取信息的一个地方,而是在许多地方寻找有趣的信息的一个地方C随着视频

网站的发展,出现了一些视频建议。根据当前热播视频及观众的个性化数据、为用户提供

相应的视频推荐,从而增加用户保存度,提高网站流量,是各大视频网站极其正视的功用

之一。

本APP使用Python,Html5语言,Pycharm,APICloud作为开发工具实现。本APP

开发成功后,就可以把大量的电影信息集中起来,将各类信息进行有序的存储,以最简便、

最快速的方式传送给大众,用户就可以根据自己的习惯和兴趣进行观影体验。

综上所述,在信息爆炸的今天,为处理信息过载问题,为用户推选最须要的资源,更

好地处置网络信息增加与用户需求之间的矛盾,电影推荐是我们的必然选择,如今处理信

息过载的首要计划是信息检索和信息过滤手艺,以搜索引擎为代表的信息检索手艺获得庞

大胜利,但它要求用户输入精确的关头字以获得检索成果的质量,但是在一些环境下用户

常常不克不及切确的描写本身的信息需求;以推荐体系能够有用的处理这方面的题目,本

性化推荐是当前研讨的热点范畴,现今,推荐算法支流分类包罗:基于内容的推荐、协同

过滤、联系关系法则和夹杂推荐手艺。此中,协同过滤是现今利用普遍的推荐手艺。

校园电影推荐APP填补了市场的空白,它的出现必将引领我国的电影推荐系统走向新

的高度。

68

1问题定义

1.1研究背景

随着互联网的迅速发展,我们已经进入了大数据时代。目前,互联网已经拥有了大量

的用户及接入设备,因此,各种数据包括结构化和非结构化数据在无时无刻地产生;信息

过载是指用户在面对随着网络的迅速发展而产生的大量信息时,无法迅速找到真正符合自

己兴趣的信息。

人们逐渐意识到了信息过载问题所带来的不利影响,于是人们开始寻找各种解决办

法,推荐系统应运而生,其内部包含各种算法和模型,对于主动进行信息选择具有很大作

用。与被动关键字搜索引擎不同,推荐系统采取主动方式,对用户的兴趣爱好进行主动学

习,通过特性化计算,指示用户发现所需的信息。卓越的举荐系统深受用户的喜爱,从而

与客户建立良性互动并且为日后的持续改进推荐质量提供方便。

仅凭理论的发展,而不付诸于实践,电影推荐APP是很难成长疾速的。而电商网站和

社交网站的不断发展,加大了对主动推荐的需求,从而构成了一股庞大的气力鞭策该领域不

竭地成长。与此同时,推荐体系与其他各学科如认知科学、信息科学、统计物理学、计较数

学的研讨逐步交融,由此发生了一个相对自力而且很有远景的前沿学科。

1.2研究内容

本研究需要研发对于校园电影进行推荐的APP,其功能包括用户注册和登陆、展示热

门电影、推荐电影等。

该APP主要利用APICloud平台进行前端设计,利用Django框架搭建后端服务,辅以

MySQL数据库及利用Python项目实现的协同过滤算法。

全文共分为8章:

第1章:问题定义。介绍了研究背景和意义以及研究的主要内容和论文的组织结构。

第2章:可行性研究°简要介绍r系统设计的目标,井对技术可行性、操作可行性、

法律可行性进行了分析,最后得出结论。

第3章:需求分析。分析和制定建议系统的职能要求、环境需要、可靠性需求、系统

的系统用途和活动图。

第4章:系统分析。阐述体系实体类、控制类和类与类之间的干系并绘制类图。并绘

制了本体系的时序图和状况图,设想了体系数据库。

第5章:系统设计。首先介绍了协同过滤算法原理。然后设计了实体类、边界类、控

制类。接下来对视图进行了设计,模板进行了设计,并介绍了儿个页面的功用和焦点代码。

第6章:编码。介绍了系统使用的技术框架一一django框架,系统的配置:开发环境

配置、配置文件的配置、路由的配置,系统的文件目录树。及系统的类名和对象名的命名

规则、编码规则。最后展示了信息检索和推荐算法的核心代码。

第7章:测试。首先简单陈述测试的基本原则,接下来进行单元测试:对用户注册与

登陆模块、信息搜索模块、电影评分模块设计了测试用例。最后阐述了测试的结论:包括

软件能力和软件限制。

第8章:结论。对内容做全面的总结并指出论文研究的不足和对作品下一阶段的展望。

68

2可行性研究

2.1现行系统调研及目标

人民的生活水平伴随着经济的高速发展而不断提高,人们对生活质量的需求也越来越

高,而电影作为人们在业余生活中的一种休闲娱乐方式,该行业得到了迅速发展。一个有

效的电影推荐系统对于人们的观影是非常方便快捷的,从而为用户提供个性化服务。在大

数据时代,事物发展方式趋于智能化,随着人们对生活质量要求的提高,智能化服务和个

性化推荐发展迅速。而人们的这些需求恰好能够通过个性化电影推荐系统而得到满足从而

极大地方便了人们的娱乐生活。

2.2可行性分析

2.2.1可行性分析的目的

可行性分析又可称为可行性研究,在这一阶段,“对于上一个阶段所确定的问题有可

行的解决办法吗?”是所要处理的关头性题目,是以体系查询拜访为根本,开辟该体系是不

是契合需要性和可行性。可行性研究阶段主要是以问题的研究范围为基础的,需要分析该

问题是否值得去解决和能否寻求适当的解决办法,而非具体要解决哪些问题。

事实上,不是所有的问题都能够找到简单明了的解决办法,有很多复杂的问题是不能

在一定的时间范围内或者一定的系统规模内得到解决的。倘若问题不能够得到合适的解

决,那么在这项工程上所话费的各种时间成本、人力、物力成本、软硬件资源和经费等都

会形成浪费。在最短的时间内,用最小的代价确定出问题能否得到很好的解决,同时要确

定开发所带来的风险及经济效益,这就是可行性研究的目的。

可行性研究内容包括经济可行性、技术可行性、操作可行性、法律可行性及社会效益

可行性。

2.2.2经济可行性

本推荐系统的开发规模是比较小的,需求也不是很高。可以使用在网上免费下载的开

发工具比如Pycharm和谷歌浏览器。在完成开发后,大大方便了用户的生活,经济效益显

著高于它的开发成本。因比,从经济性方面来看本系统是具有可开发性的。

2.2.3技术可行性

本推荐系统是以深度学习的校园电影为基础的,使用python和H5语言编写代码,

pycharm作为开发工具,运用爬虫技术爬取豆瓣网上的电影及用户信息,数据库用的是当

下最流行的关系型数据库管理系统之MySQL数据库,所以要想实现这个系统,只

需掌握以上技术就可以了.因此本推荐系统在技术上是可行的。

2.2.4操作可行性

在使用该系统时,用户可以从谷歌浏览器输入回址从而进入本推荐系统的界面,其操

作形式非常简单,而且界面清晰友好,用户可以和机器进行良性互动,在设计开发过程中,

系统可以使将操作可视化,使用者不需要有很强的技术水平就可以进行操作,因此从操作

性上来说本系统是完全可行的。

2.2.5法律可行性

(1)开发本系统均使用正版软件以及合法来源资料

(2)开发过程中未涉及任何法律责任

是以,该系统在法律层面是可以继续的。

2.2.6社会效益可行性

由于本推荐系统具有为人们提供个性化电影信息服务的功能,这对人们来说是非常方

便的,人们可以在线查看和浏览电影信息并选择自己所感兴趣的部分,从而带来非常显著

的社会效益。因此本推荐系统在社会效益性上是可行的。

2.2.7可行性研究结论

综上所述,开发本推荐系统不管是在技术、经济上,还是在操作、法律以及社会效益

上都具有一定的可靠性,并且近一步开发也是有意义的。

68

3需求分析

3.1需求概况

推荐系统所使用的数据集是主要以电影、演员和描述为基础,利用数据集中的信息来

了解用户需要的信息以及感兴趣的内容,对不同的客户提供不同类型的电影推荐,然后结

合推荐系统的模型与实际,对系统的各个方面进行分析。

3.1.1功能需求

我们通过收集用户的观影记录及评价情况来建立用户-电影的模型,得出用户的兴趣偏

好,以此向用户推荐的其个性化的内容。最终为用户生成推荐表单。对于新用户而言,该

推荐系统采取推荐排行榜单的方式,作为“冷启动”的处理方式。

用户需要通过注册账户并登陆来实现个性化的电影推荐。已登录的用户可以通过搜索

观看感兴趣的电影并进行打分。系统根据用户打分的情况为其推荐用户可能感兴趣的其他

电影。

3.1.2环境需求

(1)硬件要求:为了推荐系统算法的计算速度正常,要求内存至少为2G。

(2)系统要求:安卓4.x及以上

3.1.3可靠性需求

依据用户的需求,系统性能需符合以下要求:

(1)安全性和准确性。确保体系的相干数据可以完全、精确保留,体系的数据不会丢

失和不法窜改,客户的信息能得到有效的安全保护,系统每个功能模组都可以运行,能依据

用户习惯合理推荐相关信息;

(2)稳定性。系统稳定性和兼容性良好,APP在不同系统内,不同分辨率下,能够

稳定运行和推荐资源。

(3)扩展性。在APP运转和版本更新进程中,体系功用、体系数据会逐步增加,致

使体系负载增大,致使体系的机能低落等题目,体系必要具备可扩大性来为处理这些题目。

3.2需求分析

3.2.1分析用例模型

(1)图形元素说明:

表3/用例图元素说明表

Table.3-1UseCaseDiagramElementDescriptionTable

元素名称表示符号说明

表示与您的应用程序或系统进行

参与者(Actor)

交互的用户、组织或外部系统

用例就是外部可见的系统功能,

用例(UseCase)

对系统提供的服务进行描述

用来展示系统的一部分功能,这

子系统(Subsystem)

部分功能联系紧密

关联,参与者与用例间关系

泛化a参与者之间或用例之间关系

<include>

包含>用例之间关系

扩展用例之间关系

<e-xt-en-d>-》

(2)用例图

本设计基于用户的电影推荐系统的用例图如下

图3-1基于用户的系统用例图

Fig.3-1User-basedSystemUseCaseDiagram

3.2.2基于用户的用例描述

(1)注册

68

用例描述用户注册一个账号

行为者用户

先决条件无

后置条件无

活动步骤输入相关信息2.系统验证3.录入数据库相关信息

异常处理方法1.账号已存在,提示2.输入的账户密码不符合要求,提示

用例之间的关系与登陆是扩展关系

备注无

(2)登陆

用例描述用户输入账户,密码,验证码后登入个人系统

行为者用户

先决条件无

后置条件寻求推荐,提供偏好数据

活动步骤1.输入账号密码2.系统验证3.登入

异常处理方法账号密码输入不正确提示,并可重新输入

用例之间的关系与注册是扩展关系,与寻求推荐和提供偏好数据是泛化关系

备注无

(3)搜索

用例描述用户输入关键词之后系统根据关键词进行搜索

行为者用户,系统

先决条件无

后置条件打分

活动步骤1.用户输入关键词2.系统执行算法3.得到搜索

异常处理方法用户未输入关键词给予提示

用例之间的关系与登陆是泛化关系

备注用户也可以不登陆就进行搜索,但是不能进行个性化推荐。

(4)打分

用例描述用户根据搜索的电影进行打分

行为者用户,系统

先决条件搜索

后置条件推荐

活动步骤点击搜索结果后的分值进行打分

异常处理方法无

用例之间的关系与搜索是泛化关系

备注每给一部电影打分之后,这部电影的搜索结果就不再显示。

(5)推荐

用例描述根据用户的喜爱进行推荐

行为者用户,系统

先决条件用户汀分数据足够

后置条件无

活动步骤点击进入推荐界面

异常处理方法无

用例之间的关系与打分是泛化关化

3.3系统活动图

该活动图通过展示用户、系统之间的交互,生动形象的描述出了整个系统的业务流程。

详情请看下图3・2。

68

图3-2系统活动图

Fig.3-2SystemActivityDiagram

4系统分析

4.1系统对象模型

电影推荐系统对象模型是对前述的需求分析的精工细雕。在设计的过程中,我们需要

用类图来记载和表达设计C建议的电影系统对象模型是为了满足系统的所有功能和功能的

需要,因此,实现目标作为目标,即用例驱动,针对每个用例,开发实现这些用例所需的

类设计,逐步细化设计类模型,构建其类图。

4.1.1实体类分析

根据第3章的基于用户的电影推荐系统用例分析,该系统需要设计的实体类有:存储

电影信息的类(MoviesData)、存储所有注册用户信息的类(RatingsN)、存储TOP5榜单电

影信息的类(Top5)。

(1)MoviesData类

成员变量:电影编号(movieid)、电影名称(title)、主演(actors)、类型(type)、平均评分

(rating)

(2)RatingsN类

成员变量:用户编号(userid)、电影编号(movieid)、评分(rating)、用户名(username)、

密码(keywords)

(3)Top5类

成员变量:排名(ranking)、电影编号(movieid)、电影名称(title)、主演(actors)、类型(type)、

平均评分(rating)

4.1.2控制类分析

根据第3章的电影推荐系统活动图和实际开发需要分析,该系统需要设计只有控制类

CF:

①成员变量:无

②成员方法:初始化方法(_init_)、计算用户之间的相似度方法(recommendByUser)、

获取推荐列表方法(getrecommandList)>转换方法(formatRat)>找到相邻用户方法

(getNearestNeighbor)格式化userDict数据方法(formatuserDict)计算余弦距离方法

(getCost)>推荐的准确率方法(getPrecision)、显示推荐列表方法(showTable)

4.1.3系统类图设计

68

本部分通过类图描述系统中各个模块中类之间的关系,包罗类或类与接口的继承干系,

类之的依靠、聚合等干系C它还描写每个类的具体信息,包括变量,和方式。经由过程类

图,就可以现实的把体系中的各个类,即对象描写清晰。

图4-1系统类图

Fig.4-1Systemclassdiagram

4.2系统时序图

本时序图体现了系统进行推荐的全过程。

:RabngsN:TOD5:MovieData:CF

1:登录0-:

彳:物证o

1

alt新用户>3:访问0

4:返回Top5植单

1

1

-T*

1

,:搜索0

L

6:返回搜索结果

八打分0.

!

8:推荐0

-

<

9:返回推荐名告果

图4・2系统时序图

Fig.4-2SystemSequenceDiagram

4.3数据库设计

4.3.1数据库设计

此数据库旨在丰硕数据库的数据库机能要求,以供交易使用。良好的数据摩的想法该

当满足业务系统的须要并准确地指定数据。

由于木系统数据量不是很大,操作也不是很复杂,所以APP使用的是MySQL分布式

数据库。

68

4.3.2概念模型设计

(1)局部ER图

图4-3局部ER图

Fig.4-3LocalERGraph

(2)整体ER图

1

1

Top5电影信息

图4-4整体ER图

Fig.4-4GlobalERDiagram

4.3.3关系模式设计

说明:下划线代表主键,斜体字代表外键

电影信息(电影编号,电影名称,主演,类型,平均评分)

用户信息(用户编号,电影编号,评分,用户名,密码)

TOP5(排名,电影编号,电影名称,主演,平均评分,类型)

4.3.4物理模型设计及表名约束

表4-1电影信息表

Tablc.4-1FilmInformationTabic

字段名字段含义数据类型最大数据长度是否允许为空特别说明

movicid电影编号int8no主键

title电影名称varchar80yes-

actors主演varchar80yes-

type类型varchar80yes-

rating平均评分int4yes-

68

表4-2用户信息表

Table.4-2UserInformationTable

字段名字段含义数据类型最大数据长度是否允许为空特别说明

userid用户编号int8no-

inovieid电影编号int16yes-

rating评分int2yes-

uscniaiiiu用户名varchai40IIO主键

keywords密码varchar40yes-

表4-3TOP5表

Table.4-3TOP5InformationTable

字段名字段含义数据类型最大数据长度是否允许为空特别说明

ranking排名int8no主键

movicid电影编号int8no-

title电影名称varchar40yes-

actors主演varchar80yes-

rating平均评分varchar4yes-

type类型varchar20yes-

说明:Django框架使用关系对象映射(ORM)来操纵数据库。Django遵循CodeFirst的

原则,即:表格数据库自动生成,以代码中定义的类别为基础。Django使用类别模型中的

数据库。如果MySQL、SQLServer或其他类型的Django数据库,编程人员不必注意SQL

语句和数据库的类型。自动输入对应的SQL类型数据库,以完成数据库操作。

5系统设计

5.1相关算法介绍

协同过滤算法(CollaborativeFiltering,CF)是只遵照用户的履历行为预测用户未来的习

惯的算法。对于协同过滤算法,行业中最有名和使用最广泛的算法是基于邻居计算的方法。

主要包含以下2种算法。

基于用户的协同过滤算法(UserBasedCF)的算法第荐对用户感兴趣的其他用户喜欢的

项目。

基于项目的协同过滤算法(ItemBasedCF)算法向用户推荐与以前喜欢的项目相同的项

目。

为了实现协同过滤,以下三个措施必须要有:

(1)收集用户偏好

(2)找到相似的用户或物品

(3)计算推荐

协同过滤根据用户行为数据得到用户(物品)的特征向量后,便可计算相似度,找到

用户(物品)的最近邻集°

相似度计算中邻居的选择主要参考以下几点:

(1)固定数量的邻居

(2)基于相似度门槛的邻居

表5-1将上述两类算法进行了比较(本次毕业设计用UserCF)。

表5-1UserCF和ItemCF的比较

Table.5-1ComparisonofUserCFandItemCF

UserCFItemCF

性能溃月于用户较少的场合.如果用户过多.法茸用户相似度矩*活用于物品数明显小于用户数的场合.如果物品很多.计算扬品相似度走M的

的代价交大代价交大

领域实效性要求高.用户个性化兴趣要求不高长是物品丰富,用Q个住化得求握烈

实时月户有新行为,不一定得要攫荐箔果之即变化用户有新行为,一定会导致推荐结果的实时变化

冷后在圻用户时少的物品产主行为后.不能立即电色遂行个性化推号用户只要对一个物品产生行为,就能推春相关物品给色,但无法在不离线更

劫荐,因为用户相似变/宴线计算的:新物品相似度表的*况下将新物品推荐的用户

新初品上浅后一段时网,一旦有用户可物品产生行为,粒可以(但是梦的Item到来也同样是冷目动问题)

将新物品推荐给其他用户

推荐很选提供令用户倍眼的推荐岐峰可以根据用户选史行为归纳推荐理由

理由

68

5.2系统类设计

这部分我将从系统实现的角度进行详细的设计,达到开发人员根据这部分设计能够实

现代码的各种逻辑算法。

5.2.1实体类设计

Django采用的是Model-Template-Views模式,其中:

M:数据存取部分,白Django数据库层处理。

V:选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。

C:根据用户输入委派视图的部分,由Djaiigo框架根据URLconf设置,对给定URL

调用适当的Pytlion函数。

所以,MoviesData类、RatingsN类、Top5类均在model.py下编写,且都继承于

models.Modelo

(1)MoviesData类:

classMoviesDatafmodels.Model):

movieid=models.AutoField(primary_key=True)

title=models.CharField(max_length=80,blank=True,null=True)

actors=models.CharField(max_length=80,blank;True,null二True)

type=models.CharField(max_length=80,blank=True,null=True)

rating=models.IntegerField(blank=True,null=True)

MoviesData类有五个字段:

movieid字段为int格式数据,用来存储电影编号不可为空且为外键。

title为char格式的数据,用来存储当电影名称。

actor为char格式数据,存储该电影主演信息。

type也为char格式的数据,存储电影的类型。

rating为int格式数据.用来存储该电影的平均评分。

(2)RatingsN类:

classRatingsN(models.Model):

y^erid=models.AutoField(primary_key=True)

movieid=models.IntegerField(blank=True,null=True)

rating=models.IntegerField(blank=True,null二True)

username=models.CharField(max_length=40,blank:True,null二True)

keywords=models.CharField(max_length=40,blank=True,null=True)

RatingsN类有五个字段:

userid字段为int格式数据,用来存储用户编号,不可为空。

movieid为int格式数据,用来存储当电影编号。

rating为int格式数据.用来存储该用户对该电影的评分。

username为varchar格式数据,用来存储用户名称,不可为空且为主键。

keywords为varchar格式数据,用来存储用户密码。

(3)Top5类:

classop5(models.Model):

movieid=models.IntegerField()

ranking=models.IntegerField(primary_key=True)

title=models.CharField(max_length=40,blank=True,null二True)

actors=models.CharField(max_length=80Fblank=True,null=True)

rating=models.CharField(max_length=4,blank=True,null=True)

type=models.CharField(max_length=20,blank=True,null=True)

Top5类有五个字段:

ranking为加格式数据,用来存储电影排名,不可为空且为主键。

movieid为int格式数据,用来存储电影编号,不可为空。

title是char格式数据,用来存储电影名称。

actors也是char格式数据,存储电影主演信息。

rating为varchar格式数据,用来存储该电影的平均评分。

type为varchar格式数据,用来存储电影类型。

5.2.2控制类设计

本设计中控制类有:CF类。

classCF:

def_init_(self,movies,ratings,k=10,n=5):...

defrecommendByUser(self,userid):...

defgetrecommandList(self,userid):...

defformatRate(self):...

defgetNearestNeighbor(self,userid):...

defformatuserDict(self,userid,I):...

defgetCost(self,userid,1):...

defgetPrecision(self,userid):...

defshowTable(self):...

(1)—init—函数:

这个构造函数是用来设定查询亲近邻居个数及推荐电影个数,并初始化邻居列表

68

(neighbors)推荐列表(recommand表st)。

(2)home函数:

该函数是用户登岸注册的函数,起首处置右上角登岸和注册按钮的功用:当

request处置的是GET方式,接下来实现用户的登岸注册功用:当request处置的是Post

方式时,该函数获得用户输入的用户名,暗码和再输一次的暗码。若是create为真,

且用户简直输入了合适尺度的用户名和暗码,判定两个暗码输入是不是分歧:若是纷

歧致,给出提醒信息并重定向该页面;若是分歧,判定该用户名是不是存在:若是存

在,给出提醒信息并重定向该页面,不然就将用户的信息保留在数据库中,并给出注

册胜利的信息,最初进入登岸的页面;若是create为假且用户输入用户名。那末就考

证用户名和暗码是不是输入的准确:准确则登岸,不准确则给出提醒信息,提醒用户

名不存在,重定向登岸界面。未输入用户名和暗码时,都要给出提醒信息,而且重定

向相干页面。

(3)recomdByUser函数:

这个函数可以根据对电影的评分计算出用户之巨的相似度。

(4)getrecommandList函数:

这个函数是用于获取推荐列表。

(5)formatRat函数:

这个函数将ratings转换成为userDict及IlemUser。

(6)getNearestNeighbor函数:

这个函数是用于找到某用户的相邻用户。

(7)formatuserDict函数:

这个函数是用于格式化userDict数据。

(8)getCost函数:

这个函数是用于计算余弦距离。

(9)getPrecision函数:

这个函数是用于查看推荐的准确率。

(lO)showTable函数:

这个函数是用于显示推荐列表。

(ll)rate_movie函数:

该函数实现了电影打分功能:首先判断用户存不存在,如果用户不存在,提示用户登

陆。如果存在,则记录用户打分的情况,并调用RemoveFromList函数剔除已经打过

分的电影并刷新页面,

5.3APP界面设计

(2)菜单页

首页

推荐

图5-2菜单UI设计图

Fig5-1ThehomepageUIdesignFig5-2MenucircleofUIdesign

68

(3)登录页(4)注册页

登录注册

用户名:______________用户名:_______________

密码:______________密码:_______________

登录|注册

注册并登录

图5-3登录UI设计图图5-4注册UI设计图

Fig5-3LoginUIdesignFig5-4RegisterUIdesign

(5)推荐页

推荐

1.

2.

3.

图5-5推荐页UI设计图

Fig5-5RecommendationpageUIdesign

5.4APP功能设计

(1)展示功能:进入APP可以看到分类展示电影信息,点击显示详细信息

(2)搜索功能:输入想看的电影名,可以搜索数据库中是否含有该电影信息,有返回详

情界面,没有提示无数据V

(3)登录注册功能:评分功能及推荐功能需要登陆后才可以使用,输入用户名、密码进

行注册,用户名不可重复,在注册成功后会返回登录界面并提示登录。

(4)推荐功能:新用户观看并评价一定数目电影后开启此功能,可以根据用户喜好为其

推荐电影。

68

6编码

6.1代码规则

源程序代码最好要通俗易懂、才必要的注释、逻辑简单清晰,这是好程序的其中几个

标准。程序的编写文档最好要包括恰当的标识符、程序的视觉组织以及适当精简的注解等,

这样无论是本专业人员还是非本专业人员都能对代码有一定的理解和认识;数据和代码说

明的次序应该按照数据结构或数据类型来确定说明的次序,这样在有环节测试出错时可以

精准的定位到需要完善的部分。运用掌握更为熟练的语言在编码部分遇到的困难会比较

少,可以省去大量时间,省去大量人力,并且可以编出更容易掌握和更容易维护的源程序:

在语句构造的方面应该尽量减少比较繁琐复杂的条件测试,以避免读代码时H现逻辑混

淆,也可以避免大量使用循环和条件嵌套;

在输入输出方面应该对正常和异常的数据类型都进行一定的异常处理,同时保持输入

内容的简单精炼,设计简单简洁的输出形式等。

代码标准:

1)需要满足停车场车牌识别及收费系统的管理员(用户)的要求。

2)编译编写的程序需要满足可以使用的规则。

3)软件工具需要是可以利用的。

4)根据工程的规模进行调整。

5)程序员的知识可读懂校验。

6)代码具有可移植性、标准化程度等要求。

7)软件的应用范围应该广泛或是有特定针对性的

6.2Django框架介绍

Django是开放源码软件执行框架,Python在Django写了网站经常使用的模块,这些守则

通常被公布,经由过程削减反复的代码,Django使你可以专注于web上有趣的关键性的东

西。为了实现这一政策,Django的Web交付实现了高度的抽象形式,提供了一个快速的

编程解决方案。

在Django中,接纳用户输入的控制器部门由框架自身处置,因此Django对模型

(Model)模板(Template)和视图(Views)更感兴趣,称为MTV模式。

6.3开发平台与项目结构

6.3.1开发平台搭建

在软件开发之前要搭建正确的开发环境。要想开发Android软件,我们选择的是新型

的开发平台APICIoud,APICIoud是一个国内的HybirdAPP平台,提供HybirdAPP一站式

开发服务。HTML、CSS和JS等语言制作的应用将可以直接编译为APP在安卓以及IOS

平台上被使用。本次设计,APP测试及运行采用的是网易mumu模拟器。

其中,静态网页的设计使用的是HBuilder软件。后端开发使用的是Pycharm软件。

数据分析和推荐算法的实现先是在Sublime实现,之后代码移植到Pycharm中。

Django框架是Python中Web开发的框架。Html5加上Css以及用于构建网页的BookStarp

的JavaScript和框架。该设备是一个基于Numpy的工具,用于完成数据分析任务。Scipy

是一种常用于数学,科学和工程的软件包。它可以处理插值,积分,优化,图像处理,求

解常见微分方程和信号处理的数值解.Django-jsonEeld是数据格式转换的工具包。

图6-1APICIoud安装界面

Fig6-1APICIoudInstallPage

68

图6-2APICloud登录界面

Fig6-2APICloudLoginInterface

网易MuMu3

图6-3网易模拟器界面

Fig6-3NctcascSimulatorInterface

68

公首页(SbAp...X

图6-4调试界面

Fig6-4DebuggingInterface

6.3.2项目结构

在编码时要根据需求划分模块,根据功能建立单独的html。建立清晰的项目目录结构

能够在编码过程中有效的指导开发方向,根据功能设计有顺序的发开不同模块c项目的目

录结构如图6-5o

v口bsbs

S3json.ajaxElapp

>❶.git

"Project▼Q

>■css

▼・json_ajax~/PycharmProjects/json

▼Elapp>■feature}.

►■.idea▼Ilhtml

►Elmigrations

圜.DS_Store46fun

►・ml-1m

&」nit_.pyfixed.htmla

母admin.py0main.html

f^apps.py目mmovies.html

路models.py

0slide.html

行movie_Recommend.py

tests.py目win」ogin.html

@views.py目win_register.html

▼Eljson_ajax

>■icon

修_init_.py

settings.py>■image

tfturls.py>■launch

ftwsgi.py

>Ilres

Elmmmmmoive

>■script

►templates

rjmanage.py>■wgt}

►HiliExternalLibraries..DS_Store61};

►%ScratchesandConsoles

<>config.xml

0index.html63fun

Terminal

图6-5文件目录枕

Fig6-5FileDirectoryTree

68

7测试

试验阶段的主要方针是,尽全力查明和解除软件中存在的缺点,最终将高质量的APP软

件交给用户。

7.1系统测试的基本原则

在制定有效的测试模式之前,工程师必须了解软件测试的基础。这是一套测试原则:

(1)所有的测试都应追溯到用户需求。

(2)该当把“早期和一贯测试”当作座右铭。

(3)测试必须由专业的独立软件测试机构进行,以遵守4Pareto准则。在测试中发现

的80%的偏差或许来自于20%的部分。

(4)策画检测用例时,理当考虑一切情况。

(5)测试的差池的结果必须在一个确定的过程中进行确认。

(6)制定严格的测试计划。

(7)完全测试是不可能的,测试需要终止。

(8)重视回归检验的相关性。

(9)好好保存测试过程的所有文档。

7.2单元测试

控制模块的软件测试的是最小单位测试,是为了发现不符合预期的功能模块的功能,

以及在编码错误。由于逻辑简单、服从唯一、模块规模小,测试人员通过课程模块笔记本

和原代码,通过模块的I/O状态和模块的逻辑结构,使用结构测试(白盒子法)的例如,

实现了可用的编码测试,并进行补充性测试的例子(黑匣子方法)和所rr工程分散的输入

分开。

7.2.1项目类测试方案设计

项目类测试设计方案为黑盒测试,模拟用户实际输入数据,数据应具有一定要求,来

测试软件功能是否可控,将测试数据输入功能模块,查看其结果数据,对比功能需求检验

结果数据是否符合用户需求且是否正确。

(1)推荐系统APP查询用例输入测试方案

APP查询用例输入首先需要在登录页面输入账号以及密码,然后在应用首页点击搜索

按钮。

(2)用例输出结果预测

用户模拟登陆信息填写准确无误后,发起网络请求,等待成功回调返回的数据。能够

根据输入的关键字显示相关电影数据或告知用户电影不存在。

(3)查询用例测试结果预测

登录信息填写完整后可以正常登录,并能记住登录状态,保证下次使用软件时不需要

再次登录。在APP首页能够分类展示电影信息,搜索功能正常,推荐功能正常。

(4)测试记录

1)记住登录状态功能成功。

2)电影信息查询成功。

3)获取数据正常,能够根据不同输入内容展示不同数据。

4)推荐电影成功。

(5)结果分析

用例结果均为正确输出结果,测试功能无误。

7.3校园电影推荐系统APP测试结论

此应用已经基本上满足推荐系统APP应具有的功能,暂时在测试过程中未发现问题,

但可能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论