




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科毕业设计(论文) IT 技术人才能力评测系统的设计与实现Design and Implementation of IT Technical PersonnelsCapability Evaluation System学院: 软件学院 专业: 软件工程 学生姓名: xx学号: xxxxxxxxxxx指导教师: 北京交通大学2016 年 5 月 学士论文版权使用授权书本学士论文作者完全了解北京交通大学有关保留、使用学士论文的规定。特授权北 京交通大学可以将学士论文的全部或部分内容编入有关数据库进行检索,提供阅览服务, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。 (保密的学位论
2、文在后适用本授权说明)学位论文作者签名:指导教师签名:签字日期:年月日签字日期:年月日 北京交通大学毕业设计(论文)中要中要摘要:随着时代的进步,IT 产业日益发达,对于程序员的需求量逐年增加。与此同时, 各个公司寻求优秀程序员的愿望也日渐强烈。评判一个程序员的质量主要看他的编程能 力。因而该系统通过 Web 端的在线编程方式对程序员进行评估,为企业筛选出合适的理想人才。另一方面,程序员本身也要不断提升自己的素质。因此该系统同时在移动端提供 各大企业面试真题的刷题训练,使面试找工作的程序员得到更多的锻炼。 在移动客户端的实现过程中,作者主要负责安卓端的需求分析、系统设计、编码实现、测试工作以及
3、维护工作。移动端的开发分为两个阶段,第一阶段本着精益创业的核心思想,以最低的成本制作 MVP(minimum viable product,最小可执行产品)的原则,只实现了 APP 中核心的刷题功能,并且没有硬件服务器和服务器编程的投入,使用国内知名的为 app 开发提供服务的云平台 leancloud,在一周之内迅速搭建可用的最小可执行产品 (MVP),并且上传到各大安卓市场。第二阶段在用户量稳定增长到一定阶段后,作者重构了安卓版本,服务器也从云平台移植到了自有的服务器。本文按照软件生命周期模型,首先分析了移动客户端的项目背景与实现意义,并对同类型产品进行了分析与比较, 介绍了客户端的设计与
4、实现过程中用到的关键技术。接着明确了移动客户端的功能性与非功能性需求与系统架构,并对系统的数据库及接口进行了设计。并在此基础上,针对移动客户端的各个功能模块提出详细设计实现方案。最后本文介绍了移动客户端程序的测试, 并展示了程序的运行效果。 目前,本文所涉及的 xx 网站与移动应用已开发完毕并成功上线运行。移动客户端运 行状态良好,能够满足公司及客户的需求。 关键词:技术人才能力;程序员;安卓客户端;设计实现;软件生命周期i 北京交通大学毕业设计(论文)英要ABSTRACTABSTRACT:With the progress of the times, IT industry increasi
5、ngly developed, the demand for programmers is increasing year by year. At the same time, every company hopes to seek for good programmers. Judge the quality of a programmer is mainly by his programming skills. Therefore, the system through the way of programming online to evaluate the programmers fo
6、r enterprises selecting the best talented person. On the other hand, the programmer must improve their quality. Thus, the system also provides opportunity to experience real questions of major companies in the mobile terminal, so that programmers can get more exercise for a job interview. In the imp
7、lementation process of the mobile client, the author is responsible for the demand analysis, system design, coding, implementation, testing and maintenance work of Android terminal. The development of mobile terminal is divided into two phases, the first phase only completed core function of the APP
8、 follow the minimum viable product(MVP) principle, and there is no hardware servers and the input of server programming, just using the app development cloud platform-leancloud, quickly set up the minimum viable product (MVP)within a week, and upload it to the major Android markets. The second phase
9、 is after the stage of steady growth of the number of users, the author reconstructs the Android version, and the server is also ported from the cloud platform to our own server.In this paper, according to the software life cycle model, firstly analyze the project background and implementation of mo
10、bile client significance, compare with the same type of product, and introduce the key technology used in the design and implementation process. Then clear the the functional and non-functional requirements and the system architecture of the client, design the database and interface of the system. A
11、nd on this basis, propose the implementations for each functional module and database. Finally, this paper describes the testing of the mobile client program, and shows the operating results of the program.At present, the Xxxxxxx application that involved in this paper have been developed anddeploye
12、d successfully. The application runs in good condition, it can meet the demand of the company and the users.KEYWORDS : technical personnel capacity; programmers; android client; design andimplementation; software life cycle.ii 北京交通大学毕业设计(论文)目录目录中要IABSTRACTII目1录III引言项目背景及意义1项目来源2同类产品比较31.3.
13、1 牛客31.3.2 HackerRank31.3.3 HackerEarth41.3.4 结论论文主要工作4论文组织结构5本章小结5项目关键技术62.1 Android MVC 框架62.1.1 MVC62.1.2 android MVC72.2 Volley72.2.1 Volley 的原理72.3 视图布局92.3.1 XML 布局92.3.2 HTML9GSON9JSON 数据交互9友盟社会化分享10百川云推送10友盟应用统计10本章小结11项目需求分析与架构设计123.1 系统描述123.2 项目功能性需求123.2.1 机会
14、模块133.2.2 刷题模块143.2.3 发现模块163.2.4 我模块173iii 北京交通大学毕业设计(论文)目录3.3 项目非功能性需求193.3.1 性能需求193.3.2 可靠性和可用性193.3.3 出错处理193.3.4 接口需求193.3.5 易用性系统架构20系统整体流程22数据库及接口设计233.6.1 数据库设计233.6.2 接口设计253.7 本章小结27项目主要模块的设计与实现284.1 登录注册机制284.2 机会模块294.2.1 客户管理模块的功能划分294.2.2 机会模块的类设计304.2.3 机会模块的核心流程314.3 刷题模块
15、324.3.1 刷题模块的功能划分334.3.2 刷题模块的类设计334.3.3 刷题模块的核心流程344.4 发现模块364.4.1 发现模块的功能划分364.4.2 发现模块的类设计364.4.3 发现模块的核心流程374.5 我模块384.5.1 我模块的功能划分394.5.2 我模块的类设计394.5.3 我模块的核心流程404.6 本章小结41项目测试及运行效果424项目测试42机会42刷题46发现模块48我模块51本章小结556 结论56参考文献57致谢58iv 北京交通大学毕业设计(论文)目录附录59v 北京交通大学毕业设计(论文)正文1 引
16、言本文主要阐述了 IT 技术人才能力评测系统的设计与实现,项目来源于作者实习的北京 xx 科技有限责任公司开发运营的一款 Web 与移动应用xx。作者负责 xx 安卓移动端的开发和维护。作者遵循面向对象原则及软件设计模式原则等,系统地对该安卓 客户端应用进行了设计与实现。下面首先阐述项目的背景及意义。 1.1项目背景及意义随着时代的进步,IT 产业日益发达,对于程序员的需求量逐年增加。与此同时,各个公司寻求优秀程序员的愿望也日渐强烈。 当下中国企业招聘技术人才会面临一系列问题。第一,HR 没有技术基础,通过建立无法鉴别技术人才的技术能力,面对大量的技术建立无从下手。第二,招聘技术人才效率低下,
17、为技术人才招聘采用了不同的招聘流程,没有信息化,HR 与技术部门沟通成本高。第三,缺乏有效的招聘渠道,传统的招聘渠道简历质量低,方向杂乱,无法快速精准定位到候选人,招聘周期长。第四,再技术人才的雇主品牌形象方面缺乏必要的投入,从而导致面试率低下,吸引不到优秀技术人才。 只通过建立无法鉴别技术人才能力,从而导致招聘技术人才效率非常低下的难题。一方面,企业会浪费大量时间在筛选简历上面。另一方面很多简历很好,但是实际操作能力很差,使得技术负责人在面试过程中才发现人才能力的缺失,只有在类似工作的情况下才可以真实了解到一个技术人才的技术水平。 为解决这些问题,作者的实习公司提出了技术测评解决方案。推出集
18、技术能力评测系统、优质人才推荐系统、招聘流程管理系统于一身的技术测评1平台xx。该系统作为新一代互联网技术人才成长服务平台,使企业的技术人才招聘不再纸上谈兵,让技术人才轻松找到合适的归宿。 技术评测系统具有批量邀请评测功能,可以对评测结果进行排名。同时具有丰富且新鲜的测试项目库,考察程序员的技术应用水平2。 人才推荐系统可以再测评后对优秀人才进行推荐,保证了简历的新鲜度。同时可以根据公司需求智能推荐人才,企业可以直接查看评测报告及用户简历。 招聘管理系统可以对候选人面试甄选进行流程化管理,可以批量导入其他渠道职位, 而且可以协助 HR 和技术部门沟通,同时可以直观了解到招聘进度及工作量。 该系
19、统通过模拟日常工作场景,对于候选人进行代码层面的考核,从而保证效率的提升。使得每招聘一个人平均节省 30 个小时,节省 43%的招聘成本,60%HR 和技术部 1 北京交通大学毕业设计(论文)正文门协同性被提升。 如何评判一个程序员的质量主要看中他的编程能力。因而该系统通过 Web 端的在线编程方式对程序员进行评估,为企业筛选出合适的理想人才。 另一方面,程序员本身也要不断提升自己的素质。因此该系统同时在 Web 端提供在线编程练习和学习3的环境,又在移动端提供各大企业面试真题的刷题训练,使面试找工作的程序员得到更多的锻炼。 就功能而言,在该系统的 Web 端企业可以按照需求选择不同的测评项目
20、新建测评。该系统采用的云端开发环境易于候选人进行操作。同时企业可以查看评测报告及简历。可以按技术方向查找技术人才,也可以只推送在求职的技术人才。与此同时,企业可以批量上传简历,同时做线上测评4。 App 中用户可以选择自己感兴趣的职位扫码去网站中参与答题,成绩高者有机会获得该企业的工作职位。也可以进行面试题刷题,提高应试能力。推荐学习资料与相关比赛活动,丰富职业生活与能力。 技术实操能力才是衡量技术水平的唯一途径,该系统模拟了真实的开发环境,技术人才可以直接在网页中编译代码5。作为国内唯一一家支持移动互联网人才技术能力测评的机构,系统会智能得出被测评人员的编程能力水平,给出测评结果。企业可以通
21、过该系统轻松得知程序员的真实编程水平,同时对于不善言辞的技术性程序员来讲更可以展现自己。企业可以快速识别优秀的技术人才,同时系统可以精准推荐合适的人才。 该系统具有以下优点:第一,采用先进的技术识别技术。采用自动判卷6,精确识别技术人才的技术能力。第二,易用性高且便捷。无需技术同时参与就可以筛选出不符合要求的技术人才。第三,简单高效。可以根据企业的个性化需求,匹配不同的项目来测试候选人的技术水平。第四,与主流招聘网站无缝对接。可以直接导入智联、前程无 忧等招聘网站的简历。第五,采用 saas 模式。不需要投资软件,极大地减少了成本费。1.2 项目来源本项目来源于北京 xx 科技有限责任公司开发
22、运营的一款 Web 与移动运用xx。本人作为该公司的实习生,在技术团队中从事安卓 App 开发工作,负责 xx 安卓移动端的开发和维护,并参与到公司整个产品线开发任务中,协助同事完成其他工作。 本测评平台项目包括数据库开发、服务器开发、网站开发、App 客户端开发、等开发内容,以及应用推广、产品运营等内容,具体如下: 1) 数据库设计:根据需求,定义表结构,进行数据库设计与开发。 2) 服务器开发:包含编译服务器开发和 APP 服务器端开发。根据业务需求对服务器进行设计与开发,为客户端提供 API,包括合作方外调 API 的开发,完成各项功能。 2 北京交通大学毕业设计(论文)正文3) 网站开
23、发:主要是在线编程与编译以及智能生成评测报告功能的开发,为用户提供测评服务。 4) App 客户端开发:分别完成 Android 和 IOS 系统手机客户端的开发,包括与网站配合,实现扫码答题;提供海量企业面试真题刷题;以及推荐书籍、推荐技术类活动与比赛;开辟话题模块提供讨论空间;开发并发布到运用市场。 5)开发:对用户、企业、挑战、收入等进行管理。 6) 运用推广:与第三方推广合作,举办各种线上与线下推广活动,全力推广产品。 7) 产品运营:解答客户问题及扩大用户市场,负责内容建设、用户维护、活动策划等。 由于整个平台开发任务大,团队成员按照各自分工开展工作,并互相配合,协调解决问题。在整个
24、项目中,作者主要负责安卓移动客户端的开发与维护工作,并参与到其他工作中去。由于公司分配与各部门各司其职,作者并未负责更多的工作。因此本文更侧重于安卓移动客户端的设计与实现,而不是针对整个平台。当然,安卓移动客户端和其他工作的业务逻辑具有一致性,共用数据存储、服务器及其他资源。安卓移动客户端主要是增强用户的使用体验,更快捷方便的使用系统。其主要目的是为公司拓宽发展渠 道,实现公司业务的发展壮大,吸引更多用户。下面介绍论文主要工作。 1.3同类产品比较本文主要分为 6 个章节,主要内容安排如下。 在调研中,我们发现国内外市场中已有几款在线评测、笔试刷题的相关平台或应用。因此,在对 IT 技术人才智
25、能评测系统的设计与实现之前,作者先对目前已存在的三款类似的平台作出分析与比较。 1.3.1 牛客牛客网为 IT 技术工作者提供求职平台,提供海量职业笔试题库,包括 C+、JAVA、前端等。同时可以在线进行 BAT 等互联网名企的笔试面试模拟考试练习,也可以和牛人一起讨论经典试题,从而全面提升程序员的编程能力。 牛客网致力于为 IT 开发者提供学习和成长平台。它拥有各大互联网名企的笔试面试题库,使用户可以便捷地查看;在准备试题练习中,提前熟悉各种名企的笔试面试, 也有可能直接得到名企内推的机会;提供和同行的交流机会。 1.3.2 HackerRank3 北京交通大学毕业设计(论文)正文Hacke
26、rRank 是专注于为用户和企业提供编程挑战的公司,并且有一个超过一百万的程序员用户的在线社区。HackerRank 的编程题可以通过各种编程语言解决(包括以下语言,但不限制使用哪一种:Java、C、PHP、SQL),并跨越多个计算机科学领域。在用户端,当程序员提交编程挑战的代码后,他们的代码将根据其准确性和执行时间被评分。然后程序员全球排名在 HackerRank 排行榜中显示,并获得基于他们的成绩将用户之间的竞争徽章。除了单独的编程挑战,HackerRank 也承载编程比赛(通常被HackerRank 称为“CodeSprints”),用户在给定的时间内进行相同的编程挑战比赛,然后在该比赛
27、的结束时排名。在计算机编程比赛竞争激烈的趋势下,HackerRank 被看作是市 场的领导者。网站的用户端供程序员免费使用。 1.3.3 HackerEarthHackerEarth 是一家的创业公司的项目,它通过线上编程比赛的形式为 IT 从业人员提供工作机会。HackerEarth 会定期举行线上的编程竞赛,或是配合企业雇主来设置特殊的编程竞赛,开发者通过线上参加这样开发竞赛,编程过程会被 HackerEarth 记录并通过特殊的算法来为企业主推荐合适的开发者。 1.3.4 结论经过以上比对与分析可以发现,为增加产品竞争力,必须与以上产品有所区别,并具有更大的亮点: 1) 在线编程测评平台
28、目前在国内是唯一一家,更具有中国本土特色,符合本国的形势,并且可以更好地为中国的用户提供服务。 2) 同时结合网站与手机客户端,将在线编程评测与手机刷笔试面试题相结合,两者 的结合将为程序员提供更多更好的服务,提供相当大的便利。 1.4论文主要工作作者作为实习生加入到xx 的开发团队中,根据项目的需要,专门加强学习了Android 的开发、数据库等方面的知识,同时也学习了项目中需要的其它技术及 API 等,确保可以尽快开展开发工作。 本文基于作者的实习经历,作者在开发过程中付出了大量时间与精力,最终成功地完成了安卓移动客户端的设计与实现工作。 在项目的需求分析、系统设计、编码实现、测试、部署上
29、线、维护等环节中,作者 4 北京交通大学毕业设计(论文)正文主要负责安卓移动客户端的设计与实现过程。 通过需求分析,作者将安卓移动客户端分为 4 个功能模块,即机会模块、刷题模块、发现模块和用户“我”的模块。 本文阐述了项目需求分析过程,给出了项目的功能性和非功能性需求以及系统架构。在此基础上,给出了其中主要功能模块以及数据库的设计与实现方案。最后,展示了安卓移动客户端的运行效果。 1.5论文组织结构本文主要分为 6 个章节,主要内容安排如下。 第一章主要介绍了本毕业设计课题的项目背景及研究意义,简要介绍了项目背景及意义,项目来源,做了同类产品的分析与比较,阐述了论文的主要工作,最后简单陈述论
30、文的组织结构。 第二章对实现安卓客户端采用的技术进行简单介绍。 第三章描述了安卓客户端的业务场景和目标人群,并通过功能性需求和非功能性需求7两个方面,对安卓客户端的需求进行全面诠释,然后阐述了系统框架,并对数据库设计及接口设计进行了简单阐述,归纳总结出安卓客户端的整体流程。 第四章阐述了安卓移动客户端的设计与实现,作者挑选作者参与的功能模块,即机会、发现、我,描述了这些模块的类设计及核心流程。 第五章展示了安卓移动客户端的测试及运行效果图,主要是一些主要功能模块页面的运行效果图展示。 第六章为结论章节,总结了整个项目的主要成果与不足,介绍了作者实习这段时间 的心得与体会,以及在项目开发过程中的
31、感想与收获。 1.6 小结本章对项目的来源及背景进行了介绍,并阐述了作者在该项目即本论文的主要工作。同时对本论文的组织结构进行了陈述。这将对之后的论文书写奠定概念及大背景的基础。明确作者的工作任务及本文的研究方向。 5 北京交通大学毕业设计(论文)正文2 项目关键技术安卓移动客户端8是使用 Android 技术9进行开发,作为应用程序发布到各大平台供用户下载使用。与通过接口调用进行数据的请求与发送,使用谷歌 Volley 框架进行网络通信,使用 Gson 对 Json 进行序列化和反序列化。 在项目设计与实现过程中使用到的关键技术,主要有 android MVC、Volley、安卓布局(XML
32、、HTML)、GSON、JSON、友盟社会化分享、百川云推送、友盟应用统计等。 下文将简要介绍这些技术。 2.1 Android MVC 框架2.1.1 MVCMVC(Model-View-Controller):M 是指逻辑(Model)模型,V 是指视图(View)模型,C 则是控制器(Controller)。一种 Model 可以对应多种 View,例如一组统计数据可以分别用折线图、柱状图来描述。一个 View 也可以对应多个 Model。使用 MVC 是为了将视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码, 同样,一个应用的业务流程或者业务规则的改变只需要改
33、动 MVC 的模型层即可10。因 为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 图 2-1 MVC 结构图6 北京交通大学毕业设计(论文)正文MVC 有许多优点:一方面,用户可以根据自己的需要,选择自己习惯的方式来浏览信息。比如说,我们要在苹果手机上查看学习文档,既可以用浏览器查看也可以用专用客户端查看。另一方面, MVC 把应用程序的逻辑层与界面完全分开,这样可以使界面设计人员专注于界面开发,程序员专注于软件的逻辑层面。减少界面设计人员和程序 员的交互,降低系统的耦合性,从而使系统更加易于维护和升级。 2.1.2 android MVC在 Android 的界面中也
34、采用了 MVC 框架11: 1) 视图层(View):通常使用 XML 文件对界面进行描述,这样可以很便捷地引用进 java 代码中。另外,也可以使用 JavaScript 和 HTML 等方式来描述界面,这就需要 Java 与 JavaScript 的信息交互。然而,安卓已经提供了实现它们之间通信的简易的方式。 2) 控制层(Controller):Android 的控制层大多在Acitvity 里,也就是说不要在Activity中写代码,要通过 Activity 与 Model 业务逻辑层交互进行对数据的处理。因为 Android 中的 Acitivity 的响应时间是 5 秒钟,如果将耗
35、时的操作放在 Activity 中,程序很容易被回收掉,因此控制层会放在 Activity 中。 3) 模型层(Model):对数据库、网络、业务计算等操作都应当在 Model 层里进行处 理。 2.2 VolleyVolley 是 Android 平台上的网络通信架构,它可以使网络通信更简单易用且高效稳定。Volley 简化了 HTTP 的通信流程,可以说是把 AsyncHttpClient 和 Universal-Image- Loader 的优点集于了一身,既可以像 AsyncHttpClient 一样非常简单地进行HTTP 通信, 也可以像 Universal-Image-Loader
36、 一样轻松加载网络上的图片。Volley 不但在操作上简明易用,在性能上也有很大的优势。尤其在数据量较小但信息交互频繁的情景下,它更有用武之地。 Volley 通信架构提供了如下的便利功能:JSON,图像等的异步下载;网络请求 j/的排序(scheduling);网络请求的优先级处理;缓存;多级别取消请求;Activity 和生命周期的联动。 2.2.1 Volley 的原理Volley12的原理过程如下:7 北京交通大学毕业设计(论文)正文1) 将一个请求以优先级顺序添加到请求队列中。请求队列中有一个缓存调度器和一个网络调度器。 2) 请求队列会先调动缓存调度器,去查看当前请求的数据有没有在
37、缓存中。 如果当前请求的数据在缓存中,那么就把数据从缓存中取出来,然后经过一系列加工解析,将加工好的数据交付给主线程 如果当前请求的数据没在缓存中,进行第 3 步 图 2-2 Volley 原理图 3) 数据没有在缓存中,那只能去网络中获取了,这时候请求队列会要求网络调度器,网络调度器其实是一个线程池,默认情况下会启动 4 个线程去网络下载数据。所以请求队列会给当前空闲的的网络调度器分配任务。 4) 拿到任务的网络调度器就会去网络上下载数据了,与此同时,他会判断下载到的数据能否写入到缓存中,如果可以的话就写入缓存,以便于下一次直接从缓存中获取到数据。最后,将数据加工,交付给主线程。 8 北京交
38、通大学毕业设计(论文)正文Volley 使用了线程池来作为基础结构,主要分为主线程,缓存线程和网络线程。主线程和缓存线程都只有一个,而网络调度器线程可以有多个,这样能解决并行问题,如图 2-2,其中蓝色的是主线程,绿色的是缓存线程,黄色的是网络线程。 2.3 视图布局2.3.1 XML 布局XML 布局是安卓中用来描述用户界面的重要方式。在 XML 格式的文件中书写各个控件及其布局,并在 Activity 的 java 代码中进行引用。 另一种方式,可以在 Java 代码中直接对 XML 布局中的控件进行动态修改。在 XML 中定义的布局将视图层与逻辑层分开,不需要再重新编译代码。而在 Act
39、ivity 中描述的界面则需要再次编译代码。 这两种描述界面的方式可以同时根据不同情景自由地运用。在 XML 中定义好的布局,在 Activity 中可以对某些布局(如按钮状态、文本框内容等)进行修改。 2.3.2 HTMLHTML 即超文本标记语言。建立网站时,需要使用 HTML 这种标记语言来描述网页。在结合 JavaScript、CSS 等技术,不仅能使网站页面更为美观,而且使交互行为更为便捷高效。 最新的 HTML513中加入了许多新的特征与属性,可以更便捷地在网页设计时加入各种内容,同时提高效率。HTML517在错误处理上也更加智能,可以使不同浏览器中显示相同的错误信息。HTML5
40、的新文件类型将只有“”,这可以使用户界面更为简洁,增强用户体验。 2.4 GSONGson 是 Google 的一种开源 Java 类库。可以反序列化 JSON 字符串成为一个 Java对象,也可以将 Java 对象序列化为 JSON 字符串。 2.5 JSON 数据交互JSON(JavaScript Object Notation),即 JavaScript 对象表示法,是一种独立于语言的 9 北京交通大学毕业设计(论文)正文文本格式。JSON 作为一种理想的数据交换语言,具有下列优点14: (1) 数据格式简单,读写方便,压缩后传输的数据较小,节省带宽。 (2) 解析方便,在前端使用 Ja
41、vaScript 就能轻松解析21JSON 数据。 (3) 支持多种语言,包括 Java、JavaScript、Perl、PHP、 Python、Ruby 等服务器端语言。这样在也能快捷地解析。 代码可以使用 JSON 格式22,减轻前端与的开发负担,并且使开发(4)和维护更为容易。 目前,所有网站开发都需要 Json 语言,移动客户端的开发同样也需要 Json 来解析数据。可以说 Json 是相当重要的轻量级数据交互与解析的一种语言23。 2.6友盟社会化分享友盟社会化分享可以用来使应用快速集成分享、登录至微信、微博、QQ 等平台的功能等。可以对产品推广提供推动。并且可以全面地对用户行为进行
42、分析,将分享链接的回流率进行分析等。 友盟社会化分享可以分享至国内外 23 种社交平台。支持图片、文字、音乐、视频、链接等多种形式的分享。接口简单,集成迅速。可以自定义界面。同时可以有效掌握用户在各平台的分享动作,了解其分享操作的比例和趋势。 2.7 百川云推送百川云推送是基于大数据的阿里移动云服务,实现更快、更稳、更准的实时推送。旨在为百川移动应用提供从云端到移动终端的优质的信息推送服务。开发者只需通过简单的配置和编码工作,即能够快速搭建起服务于自身业务的、高效稳定的推送服务。 推送服务支持市场主流的两大移动操作系统:Android 和 iOS,支持 Native 移动应 用的两种典型使用场
43、景:和消息, 还提供一些方便开发者对推送任务进行管理和精准定位的功能,如用户标签、定时触发、离线信息保留、推送统计等。 2.8友盟应用统计友盟应用统计是一家专业的平台。用来对移动应用进行数据统计与分析。它可以让开发者轻松了解各项数据并提供数据分析服务。包括对应用趋势,渠道,留存,行为, 用户属性错误进行分析。这样可以使开发者更好的对产品进行推广。 10 北京交通大学毕业设计(论文)正文2.9 小结本章主要对项目的设计与实现过程中所要使用的关键技术进行介绍。包括主要的 MVC、VOLLEY、JSON、第三方 API 等。本章所阐述的各项技术将为之后的项目实现提供技术支持。 11 北京交通大学毕业
44、设计(论文)正文3 项目需求分析与架构设计为了使开发出的软件产品真正满足用户的需求,作者首先必须要了解用户的需求。发现目标用户主要为找工作的技术人员或在校计算机专业的学生,并且了解了整个系统包括 web 端的业务范畴。之后作者与不同的目标用户人群进行沟通来获取具体需求。经过反复与用户沟通,作者总结出移动客户端的功能性需求与非功能性需求,确定了移动客户端的整体框架,对目标系统提出完整、清晰、具体且准确的要求,明确了移动客户 端的整体流程。 3.1 系统描述本平台将网站端与移动客户端相结合,两者相辅相成互为补充。网站与移动端的数据相同。 安卓移动客户端采用 MVC 框架,使用 Volley 框架进
45、行数据通信,提高数据交互的效率。本着“高内聚,低耦合”的原则,本系统模块独立性高,模块间依赖极小。模块内各元素结合紧密。这样不仅可以使模块开发更为容易,而且测试与维护也更容易。 同时也可以使接口更为简化。 3.2项目功能性需求移动客户端的整体功能模块如图 3-1 所示。图 3-1 移动客户端层次图移动客户端各模块主要功能如下: (1)机会。用户在公司列表中可以看到各个招聘企业,通过点击某个公司可以查看 12 北京交通大学毕业设计(论文)正文该企业发起的挑战或查看企业详细信息。可以通过点击筛选来显示推荐给用户的适合他的相关企业。通过点击挑战又可以查看挑战详细信息并进行扫码挑战。同时,可以对挑战进
46、行收藏。(2) 刷题。用户可以选择各种编程语言(包括 android、iOS、java、C+、C 语言、PHP、python 等),进行笔试面试题的智能练习。也提供名企近几年笔试面试真题给用户进行训练。在刷题过程中,可以对题目进行收藏。 (3) 发现。提供 xx 与其它公司共同合作的编程比赛列表,提供猜你喜欢来推荐适合用户的物品。用户可以通过点击页面上方的滚动条或比赛列表中的比赛来查看比赛详情,并进行报名或收藏该比赛。另外,对于猜你喜欢的物品,用户也可以点击查看详情并购买。 (4) 我。用户通过该模块可以查看自己所填写的资料或修改资料;可以查看自己收藏的挑战、题目、活动,以及答题记录和接受的挑
47、战。同时可以在这里进行系统的设置, 或查看 xx 的相关信息。 3.2.1 机会模块用户通过点击机会,可以查看企业列表;查看挑战详情或企业详情;可以对挑战进行收藏,也可以扫码开始挑战。图 3-2 是机会模块的用例图。 由图 3-2 可知,用户可以进行以下操作: (1) 查看企业列表。查看企业又分为查看所有企业和查看推荐企业:查看所有企业即为用户在未登录或未选择刷题语言或未选择就业方向的时候,为其显示所有企业列表。而登录了的且已选择了刷题语言或就业方向的用户,当其点击筛选使则为其显示适合他 的企业列表。 (2) 查看企业详情。用户可以通过点击某个企业,或查看企业信息(包括公司名称、规模、地址、公
48、司介绍、logo)。 (3) 查看挑战。用户可以通过点击某个企业,查看其发出的职位招聘挑战列表( 包括方向、等级、薪资、已接受挑战人数)。 (4) 查看挑战详情。通过在挑战列表点击某个挑战,可以查看挑战详细信息。包括等级、招聘职位、公司名、公司 logo、公司地址、试题数量、挑战难度、截止日期以及接受挑战的人数。 (5) 收藏挑战。在挑战详情页,用户可以对该挑战进行收藏。 (6) 扫码答题。由于客户端并不能提供在线编译的功能,并且为与网站保持一致联 系,需要用户去网站进行编程挑战。用户只需登录后在网页扫码,即可实现在网站登录并显示该挑战题目,用户便可以在网站选择开始答题。 13 北京交通大学毕
49、业设计(论文)正文图 3-2 机会模块用例图3.2.2 刷题模块用户通过刷题模块,可以选择智能练习或练习名企真题。在答题过程中对题目进行 收藏,并且最后可以查看题目及答案。刷题模块的用例如图 3-3 所示。 14 北京交通大学毕业设计(论文)正文图 3-3 刷题模块用例图由图 3-3 可知,刷题模块包括以下具体功能: (1) 查看等级。在刷题页面中用户将看到自己当前的身价、刷题数、正确率以及超越了多少百分比的用户。 (2) 智能练习。通过用户对答题语言(包括 android,iOS,java,C+,C 语言,PHP,python 等)的选择以及根据用户的身价,为用户推荐合适的练习题目。 (3)
50、 名企真题。用户可以对当下知名企业(如谷歌,BAT 等)近几年的笔试面试题进行查看和练习。 (4) 收藏题目。在答题过程中可以对题目进行收藏。 (5) 查看题目及解析。在答题过程中,答过每道题都会显示对错与解析。在答题结 束后,用户可以选择查看错题及解析,或者查看所有题目及解析。在查看过程中同样可以对题目进行收藏。 15 北京交通大学毕业设计(论文)正文3.2.3 发现模块用户在发现模块中可以发现热门活动与猜你喜欢的物品。可以查看活动、分享活动、报名活动、开始活动挑战;可以查看和购买喜欢的物品。发现模块的用例图如图 3-4 所示。 图 3-4 发现模块用例图由图 3-4 可知,发现模块包括以下
51、功能: (1)查看活动。在发现模块中可以在上方滚动条幅中看到活动宣传海报,点进后可以查看活动详情;在发现页中显示最多两条活动,点进后也可以看到活动详情;同时在发现页中也可以选择查看全部活动,在全部活动页面中点击某条活动也可以看到相应的 16 北京交通大学毕业设计(论文)正文活动详情。活动详情包括:活动海报、活动名称、浏览次数、收藏次数、分享次数、活动时间、活动形式、活动地点、主办方、协办方以及活动详情介绍。 (2) 查看物品。在发现页中通过点击下方物品架上的物品,可以进入查看物品详情页面。也可以在发现页中选择查看所有物品,在查看所有物品页面中选择物品并查看其详细信息和购买。 (3) 分享活动。
52、用户可以在活动详情页中点击右上角分享按钮,可以选择分享到微信朋友圈、微信好友、微博、QQ 或 QQ 空间。 (4) 收藏活动。用户可以在活动详情页中收藏该活动。 (5) 报名活动。如果该活动在报名时间内,则用户可以在活动详情页中点击报名, 则进入报名信息填写页,填写完整后则视为报名成功返回活动详情页。如果该活动已经开始,则报名按钮变为“活动已开始,立即答题”,用户则可以点击进入所有已报名比赛的挑战列表,选择挑战进行扫码答题;如果该活动未开始,则报名按钮变为“报名成功,活动即将开始”且不可点击。 (6) 购买物品。用户可以在物品详情页购买该物品。 3.2.4 我模块我模块是一些关于用户的模块。包
53、括我的简历,用户可以查看或修改资料。也可以在此模块中查看所有收藏的活动、挑战和题目;查看答题记录、接受的挑战或报名的活动;同时,可以在设置中查看关于 xx 的信息,设置刷题数或选择退出登录。图 3-5 是我模块的用例图。 从图 3-5 可以看出,我模块包括以下功能: (1) 我的简历。用户可以在我的简历里查看并修改资料。包括姓名、性别、年龄、工作年限、学校、专业、学历、是否求职。如果求职的话填写期望城市、期望职位、期望薪资,否则则无需填写。 (2) 我的。 查看我接受的挑战,显示挑战列表,点击后可查看挑战详情或再次挑战; 查看我收藏的挑战,显示挑战列表,点击后可查看挑战详情或再次挑战,可以取消
54、收藏; 查看我收藏的题目,显示题目方向和企业真题列表,点击后可查看题目列表,然后可以查看具体题目及答案解析,可以取消收藏; 查看我的答题记录,显示时间轴列表,点击后可查看该套题目; 查看我收藏的活动,显示活动列表,点击后可查看该活动,可以分享、报名或开始答题挑战,可以取消收藏; 17 北京交通大学毕业设计(论文)正文(3)设置。 用户可以设置智能刷题数,必须大于等于五; 可以查看 xx 合作企业; 可以查看 xx 媒体报道; 可以提出意见反馈,跳到邮箱发送邮件; 可以退出登录。 图 3-5 我模块用例图18 北京交通大学毕业设计(论文)正文3.3项目非功能性需求移动客户端除了要满足上述功能性需
55、求外,还要满足很多非功能性需求。所谓非功能性需求是指移动客户端为满足用户需求而必须具有的特性,不包括功能性需求。这些非功能性需求从系统的性能需求、可靠性和可用需求、出错处理需求、接口需求、易用 性等方面定义了移动客户端必须达到的指标,以保证移动客户端能充分满足用户要求。 3.3.1 性能需求响应速度:移动客户端作为手机 app 为用户使用,要求响应速度必须在 5 秒以内, 数据交互必须高效。 容量:作为手机应用,移动客户端不应占过大的内存,要保证代码高效,减少冗余, 图片在保证清晰度的情况下尽量压缩,使用的三方包也要做到尽量压缩。 安全性:用户登录的需要加密上传,保证用户信息安全。同时用户填写的资料 信息也要做好安全保密工作。 3.3.2 可靠性和可用性手机客户端必须保证正常运行,不可用的时间不能超过总时间的 2%。利用相关平台(例如友盟)做好用户错误分析工作,即使对用户在操作中发生的和改正。 现象做出处理 3.3.3 出错处理手机客户端需要对环境错误作出适当响应。例如在连接况下应提示网络错误或其它相关错误。 过程中数据未返回的情根本上来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苹果公司库存管理
- 高中体育与健康开学第一课教学设计
- 幼儿园健康维护
- 英国历史概况:近代政治制度的确立和发展教学教案
- 池州职业技术学院《医学大数据技术》2023-2024学年第一学期期末试卷
- 内蒙古准格尔旗第四中学2024-2025学年数学九上期末经典试题含解析
- 山东省济宁院附中2025届八上物理期末质量跟踪监视模拟试题含解析
- 安康学院《中国现代文学名著鉴赏》2023-2024学年第一学期期末试卷
- 物理学科综合能力提升计划
- 云南师范大学《荀子经典与思想研究》2023-2024学年第一学期期末试卷
- 2025年北京市中考数学真题试卷及答案
- 硬笔书法全册教案共20课时
- 模切品质培训
- 北京昌平霍营街道社区“两委”干部储备人才招募笔试真题2024
- 2025年安徽省中考数学试卷真题(含标准答案及解析)
- (人教PEP版2025新教材)英语三下期末分单元复习课件
- 19S406建筑排水管道安装-塑料管道
- 新概念英语第一册单词汇总打印版已排版
- 湘版高中音乐鉴赏《中国近现代通俗音乐》教学设计、实录与反思
- 混凝土施工仓面设计
- 电话号码中的数学问题
评论
0/150
提交评论