全文总字数:2294字
1. 研究目的与意义(文献综述)
自然界的群体智能现象指出:一群具有特定智能水平的个体, 通过大规模的群体协同, 可以在群体层次上展现出超过任意一个个体的智能水平。现如今,软件开发者和用户群体的规模得到了巨大的增长; 软件开发者具有了更高的个体生产效率, 而且能够通过更加方便的手段进行开发者个体之间的协同。软件开发复杂性、不一致性、易变性、不可见性的本质性困难,都可以归结于个体智能的想象力和创造力有限、协同能力和信息处理能力具有局限性,如果能够集合众多个体的智慧进行软件开发,无疑会具有更高的效率。而聚集众多软件开发人员的一种方式,就是软件众包。通过软件众包,可以充分利用群体的智慧,克服软件开发过程中的种种困难,通过适当的控制,还可以明显提高交付软件的质量。另外,软件众包为软件开发人员提供了一种新的就业形式,软件开发人员可以不受时间空间的约束,自由的选择众包任务,甚至可以与全球的程序员进行在线协作开发,相对于传统的工作形式,这种新的工作方式无疑更具有吸引力。对于企业而言,通过软件众包,利用程序员的盈余时间也可以有效地解决了企业和机构因工人不足等问题而急缺的项目开发难题。
2006年,美国《连线》记者jeffhowe首次提出了众包的概念。如今,国内外软件众包也得到了长足的发展,国内出现了大大神、猪八戒、程序员众包、腾讯众测等软件众包平台,国外也有mytino、elance、topcoder等平台。当前的软件众包平台基本上可以分为两类,一是众测平台,将软件测试任务众包给互联网上的测试者群体, 并根据每一参与者完成的测试任务的数量、质量、重要程度等因素向其支付相应的酬金;另一种是基于竞争的软件开发,将一个软件开发任务众包给互联网上的软件开发者群体, 并为任务完成质量靠前的一个或若干个开发者支付相应的奖金。一个软件众包平台的设计,面临着几个重要的问题,一是如何吸引大规模程序开发人员的参与,此问题各种众包平台多采用金钱和学识的激励机制;二是如何合理有效地选择软件众包工人,这是一个亟待解决的问题;还有就是基于竞争的软件开发会造成人力资源的浪费,如何合理拆分众包任务,并可以有效的对结果进行汇总,使得软件开发人员进行高效协同工作,节省人力资源,也是一个重要研究方向。
本次课题设计完成一个软件众包平台系统,对于如何吸引大规模人员参与问题,除众包任务奖励外,引入积分机制;对于软件众包工人的选择,引入了开发人员的技能机制,通过技能限制对开发人员进行资质限制;对于竞争式的软件开发,采用协同式竞争的形式,一个完整的软件开发任务可以选择分段下发为需求文档设计任务、技术文档编写任务、软件开发任务等,不同阶段的任务由众包工人以申请的形式进行参与,协同式竞争并没有真正解决软件众包的核心问题,只是提出了一种解决思路。
2. 研究的基本内容与方案
研究课题需要完成一个基于b/s结构的软件众包平台系统,此系统的涉及到的主要角色为初步设定为发包者、接包者和平台(包括系统默认规则和管理员),系统的核心流程为:软件业务需求方可以发布众包任务,并为发布的需求设定接包方的资质、技术指标等要求;接包方接受并完成自己的任务后,可以提交任务结果,结果可以是软件源码、技术方案文档、图片视频资料等;众包任务完成,平台按照要求支付接包报酬给接包方。
研究课题的最终目标为实现一个软件众包平台系统,基本目标为实现个人信息管理模块,包括个人的注册信息、认证信息、技能管理、积分信息;任务管理模块,包括发包方发布、修改、取消任务、结束任务,接包方接受任务、提交任务结果;进阶目标为实现支付模块,包括发包方发布任务时保证金、任务追加奖励、接包方提现;通信模块,支持发包方和接包方在线交流沟通。
系统的实现采用前后端分离的形式,前端采用layui搭建软件众包平台系统的基本页面,layui框架遵循原生 html/css/js 的书写与组织形式,门槛极低,降低学习成本,提高开发效率;后端使用go语言进行开发,使用gin框架;前后端使用json格式进行数据传输;数据存储使用mysql数据库,使用gorm作为orm框架;在必要的情况下,使用redis作缓存。对于后端开发语言、后端框架、mysql数据库、orm框架等技术掌握的比较熟练,因此后端开发的难点主要在于业务的实现;对于前端技术我掌握的并不多,在时间安排上需要注意留出充分的时间。
3. 研究计划与安排
2.10 – 2.25 查找相关文献,阅读并完成开题报告
2.26 – 2.28 完成外文翻译
3.2 – 3.7 梳理完善系统需求,搭建项目后端开发框架;设计数据库表结构,建立所需要的所有数据库表,并在代码中建立对应的数据模型,即model层,提供基础的curd方法。
4. 参考文献(不低于12篇)
参考文献见附件
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。