在一个典型的Web系统中,系统的日志、安全性等软件非功能属性是保证系统质量的关键因素。
但是,面向对象编程在解决非功能属性问题时容易引起代码混乱和代码分散问题,不利于整个系统的模块化开发,给后期的维护也带来困难。
针对上述问题,本论文使用面向方面编程(AOP)的思想来解决,利用AOP中的方面(Aspect)来对非功能属性进行建模,并采用UML中的类图进行描述,并给出其在科研申报系统中权限控制模块的实现,验证了面向方面编程在解决非功能属性方面的优越性。
1
一、数据分析项目介绍1. 项目所需的模块库介绍pandas用法:需要导入以下模块importnumpyasnpimportpandasaspdfrompandasimportSeries,Dataframe2.项目背景介绍互联网电影资料库(InternetMovieDatabase,简称IMDB)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。
电影作为艺术和娱乐载体已成为我们生活中的一部分,作为电影爱好者之一,希望通过分析了解电影市场大体情况,以便于以后选择电影观看。
使用的数据是IMDB美国票房排名前1000的电影数据,数据包含了电影名称,票房金额,上映年份,演职人员,IMDB评分,电影类型等信息,数据中的很多电影大家也比较熟悉。
相信不少人都有这样的经历,当想要看一部电影的时候,会去百度一下谁是导演,谁是主演。
如果导演是克里斯托弗•诺兰,心里已经给电影打了个8分以上的评分了。
而阿汤哥的动作片,预期也都能肾上腺素飙升。
对于已上映的电影,不少人会去豆瓣搜索现时的评分,或是前作的评价,若是豆瓣高分、高评论数,也会按奈不住去蹭下热度。
如果要去电影院观看的话,想必不少人会更倾向选择动作片或者科幻大片这类特效丰富,影音冲击强烈的电影。
近几年特效技术和3D动画的日渐成熟,影院观影已经是越来越多人的第一选择。
IMDB的资料中包括了影片的众多信息、演员、片长、内容介绍、分级、评论等。
对于电影的评分目前使用最多的就是IMDB评分。
截至2018年6月21日,IMDB共收录了4,734,693部作品资料以及8,702,001名人物资料。
3.项目所需数据介绍数据的属性包括:电影名称、评论数、评分、导演、上映时间、上映国家、主要演员、语言、IMDB评分等。
理解数据:color、director_name、num_critic_for_reviews、duration、director_facebook_likes、actor_3_facebook_likes、actor_2_name、actor_1_facebook_likes、gross、genres、actor_1_name、movie_title、num_voted_users、cast_total_facebook_likes、actor_3_name、facenumber_in_poster、plot_keywords、movie_imdb_link、num_user_for_reviews、language、country、content_rating、budget、title_year、actor_2_facebook_likes、imdb_score、aspect_ratio、movie_facebook_likes4.项目功能详细介绍显示电影评分分布的情况;
电影数量与平均分年度变化的情况;
评论家评论数与评分的关系;
评分与电影票房的关系;
电影数量大于5前提下平均分前十的导演推荐的数据;
不同电影类型的年份累计分析;
电影时长的分布及时长能否和评分有相关性;
电影时长的分布及时长能否和评分有相关性。
二、数据分析过程1.主要功能实现的类和方法介绍#清洗runtime电影时长列数据,可使用str.split()方法df['runtime']=df['runtime'].str.split('').str.get(0).astype(int)df['runtime'].head()#清洗year列,使用str[:]选取年份数字并转换成int类型,使用df.unique()方法检查数据df['year']=df['year'].str[-5:-1].astype(int)df['year'].unique()2. 数据分析过程代码和解释说明导入包:导入、查看、清洗数据:评分分布图:电影数量与平均分布年度变化:评论家评论数&评分、评分&票房:电影数量大于5平均分前十的导演:统计不同年份、不同类型电影的数量:cumsum=df.groupby(['main_genre','year']).title.count()#使用累加功能统计1980年起不同年份不同电影类型的累计数量,对于中间出现的缺失值,使用前值填充genre_cumsum=cumsum.unstack(level=0).cumsum().ffill()#只选取总数量大于
2023/1/19 6:32:34 459KB 数据分析
1
时间过的真快,转眼就一年了,没想到随手写的笔记会被这么多人浏览,不想误人子弟,于是整理了一个优化版。
感激各位同道的支持!
2017/5/5 7:25:44 9.35MB Spring aop 记录操作日志 Aspect
1
这些jar包可供大部分spring项目使用,其中包含了spring的核心jar包和aspect核心jar包
2020/10/19 7:13:13 24.13MB spring
1
AOP中,所需要的jar包,cglib-nodep-3.2.5.jaraspectjrt-1.6.8_3-20130313.151215-2.jaraspectjweaver-1.9.5.jar具体的使用常见,见我的博客
2015/5/22 13:43:12 2.24MB aop
1
Aspect-SentimentEmbeddingsforCompanyProfilingandEmployeeOpinionMining.
2020/1/27 18:23:33 767KB 研究论文
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡