基于B/S结构的软件众包平台系统设计毕业论文
2021-12-05 17:31:20
论文总字数:26938字
摘 要
随着网络的发展,通过网络聚集众人的智慧解决问题已成为一种常态。软件众包是软件行业解决软件问题的一种方式,是指由企业或个人将软件开发相关的任务发布到众包平台上,众包平台的用户以自愿的形式参与完成众包任务。通过软件众包,可以充分利用众包平台用户群体的智慧,解决企业或个人因缺乏工人而导致项目无法进行的难题,为软件行业人员提供一种利用技能创造价值的方式。为了能够充分利用软件行业人员集体智慧解决软件难题,本文在参考已有众包平台设计的基础上,采用前后端分离的开发模式,基于Layui、Gin、MySQL、GORM等技术,实现了一个软件众包平台系统。系统沿袭了发包者发布任务,接包者接受任务的模式,通过金钱、积分、信誉度三项数据激励员工参与众包任务,增加了众包任务参与者审核功能,并通过对众包任务添加技能约束,限制众包任务申请者的技能水平,从而提高众包任务的完成度。
关键词:软件众包;Gin;激励机制;技能约束
Abstract
With the development of the Internet, it has become the norm to gather people's wisdom to solve problems through the Internet. Software crowdsourcing is a way to solve problems in the software industry. It means that enterprises or individuals publish software development-related tasks on the crowdsourcing platform, and users of the crowdsourcing platform participate in the task voluntarily to complete the task. Through software crowdsourcing, we can make full use of the collective wisdom of the users of the crowdsourcing platform, solve the problem that enterprises or individuals cannot carry out projects due to lack of workers, and provide a new way for software development-related personnel to use their skills to create value. On the basis of referring to the existing crowdsourcing platform design, this thesis uses the development mode of front-end and back-end separation, using Layui, Gin, MySQL, GROM and other technologies to realize a software crowdsourcing platform system. The system follows the pattern of the originator releasing tasks and the recipient accepting tasks. Motivate employees to participate in the crowdsourcing task through the data of money, points and credit; The audit function of crowdsourcing task participants was added, and skill constraints were added to the crowdsourcing task to limit the skill level of the crowdsourcing task applicants, so as to improve the completion degree of the crowdsourcing task.
Key words: software crowdsourcing; Gin; motivation system; skills limit
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1项目开发背景及意义 1
1.2国内外研究现状 1
1.3课题研究内容 2
1.4论文结构安排 2
第2章 系统需求分析 3
2.1业务需求 3
2.2功能性需求 3
2.2.1系统用例图建模 4
2.2.2系统用例说明 5
2.2.3数据结构分析 7
2.2非功能性需求 9
第3章 系统设计 10
3.1系统技术选型 10
3.1.1 后端开发框架 10
3.1.2 前端开发框架 11
3.1.3 前后端通信协议 11
3.1.4 数据库设计 11
3.1.5 服务器部署 16
3.2系统功能模块设计 16
3.2.1 登录注册模块 17
3.2.2 用户管理模块设计 19
3.2.3 任务模块设计 20
3.3.4 文件模块 24
3.3.5 激励机制模块 26
第4章 系统功能模块接口实现 27
4.1登录注册模块 27
4.2 用户管理模块 28
4.3任务模块 30
第5章 系统测试 34
5.1 测试规划 34
5.2 测试用例 34
5.3 测试结果 40
第6章 总结与展望 41
6.1.1 总结 41
6.2.2 展望 41
参考文献 43
致 谢 44
第1章 绪论
1.1项目开发背景及意义
自然界的群体智能现象指出:一群具有特定智能水平的个体, 通过大规模的群体协同, 可以在群体层次上展现出超过任意一个个体的智能水平[1]。现如今,软件开发者和用户群体的规模得到了巨大的增长, 软件开发者具有了更高的个体生产效率, 而且能够通过更加方便的手段进行开发者个体之间的协同。软件开发复杂性、不一致性、易变性、不可见性等本质性困难,都可以归结于个体智能的想象力和创造力有限、协同能力和信息处理能力具有局限性。因此聚集众多个体的智慧进行软件开发,可以让软件开发工作具有更高的效率[2]。聚集众多软件开发人员的一种方式,就是软件众包[3]。
软件众包是利用群体智慧解决软件相关问题的一种方式。通过软件众包,可以充分利用群体的智慧,克服软件开发过程中的种种困难,通过适当的控制,还可以明显提高交付软件的质量。另外,软件众包为软件开发人员提供了一种新的就业形式,软件开发人员可以不受时间空间的约束,自由的选择众包任务,甚至可以与全球的程序员进行在线协作开发,相对于传统的工作形式,这种新的工作方式无疑更具有吸引力。对于企业而言,通过软件众包,利用程序员的盈余时间也可以有效地解决了企业和机构因工人不足等问题而急缺的项目开发难题。
1.2国内外研究现状
美国《连线》记者Jeff Howe于2006年首次提出了众包(crowdscouring[4])的概念:“一个公司或机构把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的大众网络[5]。”如今十几年过去,国内外软件众包行业也得到了长足的发展,国外出现了mytino、elance、TopCoder[6]等软件众包平台,国内也有大大神、猪八戒网、程序员客栈、腾讯众测等知名平台[7]。目前市面上的软件众包系统基本上可以分为两类:一种是众测平台,将软件测试任务众包给互联网上的测试者群体, 并根据每一参与者完成的测试任务的数量、质量、重要程度等因素向其支付相应的酬金;另一种是基于竞争的软件开发,将一个软件开发任务众包给互联网上的软件开发者群体, 并向任务完成质量靠前的一个或若干个开发者支付相应的奖金。
一个软件众包平台系统的设计,面临着三个重要的问题:一是如何吸引大规模程序开发人员的参与[8];二是如何合理有效地选择软件众包工人;三是基于竞争的软件开发会造成人力资源的浪费,如何合理拆分众包任务,并可以有效的对结果进行汇总,也是一个重要研究方向。目前国内的软件众包平台基本采用“众包 外包”的形式[9],当发包者发布任务后,由系统安排接包者或者由接包者自主申请参与众包任务,没能做到线上实时协作,但是仍然吸引了大批的软件行业相关人员,发展前景十分可观。
1.3课题研究内容
本文旨在完成一个基于B/S结构的软件众包平台系统,系统为业务需求方提供需求发布渠道,业务需求方可以发布众包任务,并为发布的需求设定接包方的技术限制;系统为众多的软件开发人员提供就业或兼职平台,通过完成众包任务将闲置时间和技能转化为经济价值并提高个人能力[10]。
本文在参考已有软件众包平台设计的基础上,使用业务需求方发包软件行业相关人员接包的模式,使用任务金钱奖励、积分、信誉度三项数据激励平台用户参与到众包任务中[11][12]。业务需求方在发包时会设置金钱奖励,接包方完成任务后,可以共同得到众包任务的金钱奖励,除此之外系统还会根据众包任务的奖励金额以及完成任务的相对用时奖励用户积分,用户的信誉度则是根据用户完成任务后业务需求方的评分计算。系统为提高众包任务的完成度,引入了技能管理机制[13],由平台提供系统所支持的所有技能,平台用户可以管理自己的技能列表,技能的度量以月份为单位,业务需求方在发布需求时,可以限定达到技能年限的平台用户参与到众包任务中。此外,系统还引入了用户偏好设置,可以根据用户设置的喜好向用户推荐众包任务[14]。
1.4 论文结构安排
本文开发了基于B/S结构的软件众包平台系统,各章节的安排如下:
第一章为绪论部分,介绍了软件众包平台国内外发展现状及软件众包平台研发的目的和意义。
第二章为系统需求分析,从众包平台用户角度考虑,研究了软件众包平台用户的需求并将用户需求转化为功能需求。
第三章为系统设计部分,首先确定系统的技术选型,综合对比后确定前后端的开发框架,明确数据库表结构设计和功能模块划分。
第四章为系统的设计与实现,基于需求分析和系统设计,实现各个功能模块的需求。
第五章为系统测试,设计测试用例,对系统的主要功能模块进行测试。
第六章为总结与展望,总结本次课题研究的收获,分析课题项目存在的不足,提出项目优化方向。
第2章 系统需求分析
2.1 业务需求
一般软件众包系统的核心流程为:(1)业务需求方登录平台创建并发布众包任务;(2)软件行业相关人员登录平台浏览众包任务并申请加入众包任务;(3)接包成功者完成众包任务并提交任务成果,成果可以为软件源码、技术方案文档以及图像视频资料;(4)业务需求方下载成果并支付报酬。本文在众包系统核心流程的基础上,增加了申请加入任务时的技能要求限制,增加了支付报酬时的奖励类型。业务模块划分如下:
用户模块:处理用户的登录注册信息和个人信息,个人信息中应包括用户技能信息。众包系统的用户分为系统用户和系统管理员两类。系统用户即软件众包平台系统的使用者,具体可以细分为接包者即业务需求方和接包者软件行业相关人员,两者之间没有设置明确的界限,一个用户可以发布众包任务也可以接受众包任务。系统管理员角色用于管理系统的配置信息,强制结束违规任务。
请支付后下载全文,论文总字数:26938字
相关图片展示: