APP下载

面向软件的众包平台设计与实现

2017-09-01刘安战郭基凤缑西梅李勇军

计算机技术与发展 2017年8期
关键词:发布者用例竞标

刘安战,郭基凤,缑西梅,李勇军

(中原工学院,河南 郑州 450007)

面向软件的众包平台设计与实现

刘安战,郭基凤,缑西梅,李勇军

(中原工学院,河南 郑州 450007)

众包提供了一种全新的组织劳动力方式。为了解决软件开发的众包问题,在分析软件众包主要方式的基础上,设计并实现了面向软件的众包平台。根据软件开发的特点,该平台将众包软件项目分为竞赛项目、竞标项目、众+项目和自发项目,以实现其开发和管理流程。围绕众包软件平台的用户角色、主要用例及规约、系统设计、功能实现等内容,设计并提出了基于软件工程瀑布模型和原型模型的众包模式,采用瀑布模型来实现众包项目的在线严格线性流程管理,采用原型模型来实现众包项目的螺旋式流程管理,参与的用户可实时跟踪项目进展,实施项目在线管理、在线交易和评价等工作。运行测试表明,所设计构建的软件众包平台可行有效,能实现软件项目的在线众包,为软件众包提供了一种全新的解决方法。

软件众包;众包平台;竞赛;竞标;众包

0 引 言

众包(Crowdsourcing)[1]一词最早于2006年6月在美国《连线》杂志上出现,记者杰夫霍维将其定义为:“一个公司或机构把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的大众网络的做法。”众包就是把特定的工作任务,通过网络公示给受众,并向按需要完成组织任务并支付约定报酬的大众承包模式[2]。众包也是利用共享网络外包给公众个人[3]。众包是一种极具代表性的群智感知模式,是一种新型的解决问题的方式。众包以用户为基础,以自由参与的方式分发任务[4]。众包应用方面,亚马逊的Mechanical Turk平台[5]通过经济奖励报酬的方式让大众解决实际难题。Foodpickle[6]将众包与微博结合形成了一个即时问答平台。众包还应用在语言翻译[7]、语音识别[8]、数据库研究[9]、地理信息标记、市场预测、意见挖掘等方面。文献[10]对众包在计算机领域中已有的研究工作进行了综述;文献[11]基于众包模式,采用C/S架构,设计社交网络数据采集模型;文献[12]提出了一种用于模式匹配众包方法中的问题发布策略;文献[13-14]从不同的侧面对众包质量监控等进行了研究。

对于软件业和服务业,众包提供了一种组织劳动力的全新方式。调研发现,目前针对软件类产品的众包可以分为以下五类:一是开源共享维基百科类,如维基百科、百度百科、互动百科、360百科等;二是知道、知乎问答类,如百度知道、知乎、德文社区等;三是分享、传播点评类,如腾讯的说说、大众点评等;四是草根、调查差事类,如高德地图标注等;五是悬赏、竞赛、创意威客类,如猪八戒网等。

为了使众包模式更好地为软件开发过程服务,采用SSH、Java Web、Ajax等技术,设计和实现了面向软件的众包平台。该平台为用户提供在线的软件产品众包服务,并提供了软件开发流程的管理。

1 用户角色

系统的用户分为项目发布者、项目承接者、系统管理员、仲裁管理员和游客。

项目发布者:首先是系统注册的用户,可以发布项目供承接者进行承接。项目发布者可以创建项目并对项目的属性进行设置,是项目的发起方。

项目承接者:首先是系统注册的用户,可以承接发布者发布的项目,进行项目的开发提交,同时可以获得相应的积分或资金报酬等。项目承接者是项目的参与开发方。

系统管理员:为系统的内置账户,可以对系统中的配置信息进行管理,同时可以管理注册用户信息,用户信息的审核等。

仲裁管理员:当项目发布者和项目承接者之间出现纠纷时,由仲裁管理员进行仲裁。

游客:一般只能对系统发布的信息进行浏览。

2 主要用例与规约

项目发布者的主要用例包括登录、个人信息维护、个人项目管理、发布项目等。其中发布的项目包括六种类型,对应系统的六种项目分类。

项目承接者的主要用例除了登录和个人信息维护之外,主要是对自己参加的项目进行管理,包括提交项目成果资料等,当然也包括对项目过程中出现的问题向仲裁管理员提出仲裁等。

系统管理员的主要用例包括用户管理和系统管理,用户管理主要是对用户进行认证管理,系统管理主要是对系统的配置信息进行管理,包括系统的公告、通知等。

仲裁管理员的主要用例是进行仲裁管理,对项目进行过程中的问题,在用户提出申请的时候进行仲裁,解决纠纷,维护项目发布者和承接者的合法权益。

游客的用例就是进行用户注册和浏览等功能。

系统在分析阶段为每一类用户设计了用例,并为每一用例制订了用例规约,下面仅以发布项目和承接竞标项目为例说明一下用例规约的设计。

用例名称:发布项目,编号UC-UProPub-001。

(1)简要说明。

用户在添加项目过程中,需要填写项目标题(不为空),内容简介(不多于1 000字),附件,项目价格(大于0的整数),流程划分,项目类型(竞赛项目、竞标项目、众+项目、自发项目、出售服务、出售产品)。基本信息填完后,系统保存这些信息。

(2)事件流。

当用户添加项目时,开始执行以下基本流:系统要求用户填写添加项目信息,包括项目标题,内容简介,附件,项目价格,项目类型,竞标结束时间,项目开始时间,完成项目时间,完成项目各个阶段划分等。

发布竞赛项目,发布者填写竞赛项目须填写评判方式,奖励办法(酬金奖励、积分奖励)等。

发布竞标项目,发布者填写竞标项目的基本信息,项目酬金,流程划分等。

发布众+项目,发布者填写项目基本信息,交流方法等。

发布其他项目,发布者主要填写项目的基本信息。

(3)备选流。

如果系统检测到用户输入的项目信息格式或内容有错,例如项目标题为空、简介内容过长、附件格式不对,项目类型未选择评判方式和奖励内容不能为空,流程划分不能为空。如果项目信息未能成功保存至数据库提示,项目添加失败。

(4)前置条件。

用户必须登录网站的主页,使用发布者身份选择发布项目类型。

(5)后置条件。

如果当前用例成功,数据库中将增加一条项目信息;否则维持不变。

用例名称:参与竞标项目竞标,编号UC-UProPub-016。

(1)简要说明。

当前用例用于承接用户参与竞标项目竞标,发布项目的用户可选择符合自己要求的承接方。

(2)事件流。

用户直接选择竞标项目或通过查找后选择自己想要参与的竞标项目,然后用户参与竞标,并提交竞标资料。提交成功后,用户成为参与竞标项目的参与者,系统给用户提示竞标成功,返回项目参与的全部竞标项目列表。

(3)备选流。

如果未能成功参与竞标,则显示项目承接失败,重新操作。

(4)前置条件。

用户必须首先登录到系统,该项目处于竞标期,用户才能采用竞标项目竞标。如果用户不是第一次参与指定项目的竞标,则提示用户已经参与竞标并允许用户更新或完善竞标资料。

(5)后置条件。

如果该用例成功,系统数据库中将增加一条项目竞标信息。否则,系统维持原状。项目发布者有权对所有参与竞标的用户进行筛选选择,决定最终的承接用户,中标的用户可以进行项目的实施。

3 系统设计

3.1 系统结构

面向软件的众包平台是基于Web的服务系统,系统整体包括部署于Web服务器的网站系统和部署于数据库服务器的数据库。用户通过客户端浏览器访问系统,并进行系统的各项功能操作。

系统的体系结构基于SSH框架,体系层次上共分

成5层,从低到高依次是基础设施层、数据库层、业务服务层、逻辑表示层和用户门户层,如图1所示。

图1 系统体系层次

3.2 模块划分

在详细的需求分析的基础上,把整个系统分为八个主要模块:首页、竞赛任务、竞标任务、众+任务、自发任务、交易服务、出售成品、用户中心。

3.3 数据库

根据分析,设计出主要的实体及关系。主要实体包括用户,认证信息,项目,用户提交内容,项目类型,交易、评价信息,项目阶段,技术标签。主要的关系包括认证,交易评价,项目发布,项目参与,交易信息和项目及用户的关系等等。实体关系图如图2所示。

图2 系统的主要实体关系图

用户:用户分为项目参与用户和项目发布用户,用户的基本信息主要包括ID、用户名、别名、密码、头像、邮箱、类型(个人/公司)、标签,评分,积分,账号金额,注册时间,状态,是否认证等。

认证信息:该实体用于存放用户实名认证的信息,和用户信息关联。

项目:该实体用于保存项目的基本信息,该实体信息主要包括ID、项目名称、项目描述、附件路径、技术标签、预算下界、预算上界、项目状态、发布时间、阶段信息、结束标志等信息。

用户提交内容:该实体用于保存用户提交的内容,用户提交的信息分为两大类,一类是基本的文字信息,一类是附件信息。该实体直接保存文字信息,用户提交的附件以路径的方式存放到该实体内。

交易:该实体用户保存系统中的交易信息,主要包括交易ID、项目ID、付费者ID、付费金额、是否到第三方、支付时间、是否确认支付到对方、确认时间、对方用户ID、交易成功时间等。

评价信息:该实体用户保存和用户或项目相关的评价信息,评价信息是进行用户信誉等级计算的依据。

技术标签:该实体主要为用户和项目建立相关的技术标签,方便根据技术类别进行搜索和展示。

3.4 主要业务流程

3.4.1 基本众包流程

项目实施过程中的参与者包括项目发布者、众多的项目承接者和系统。项目发布者首先发布项目,发布成功的项目进入项目实施阶段,发布者一般要为项目预付一定的酬金给第三方。项目承接者可以参与不同的项目并和发布者进行交互,项目在项目结束前由项目参与者和承接者直接通过协商支付酬金,待项目结束后,双方可以进行互评。基本的流程如图3所示。

图3 项目众包基本流程

在相同的基本流程下,不同类型的项目在进入项目实施阶段后的过程是不一样的,系统中管理的项目类型分为:竞赛项目、竞标项目、众+项目、自发项目。不同的类型项目有不同的实施过程。

3.4.2 竞赛项目

首先是项目发布者发布竞赛,组织广大参与者进行项目竞赛,项目承接者通过提交参赛作品进行项目参与。发布者可以进行竞赛的阶段设置,同时可以设置竞赛的基本要求、评选方法和奖励办法等。通过竞赛评选优秀的作品,承接者可以获得相应的奖励。竞赛项目采用的是一对多的项目实施方式,体现大众参与。

对于竞赛项目,竞赛承接者需要首先选择参加竞赛,参赛用户可以提交作品,并和发布者进行信息交互,不断完善作品,直到竞赛最终进入评选阶段。待竞赛进入评选阶段,由发布者评选获奖者并公示。公示结束后,发布者可以为获奖者发放奖金。发布者和承接者之间在竞赛结束之前可以进行相互评价。

3.4.3 竞标项目

与竞赛项目不同,竞标项目实施之前采用的一对多的项目竞标方式。项目发布者通过发布竞标项目,让承接者进行竞标,也就是说,每个准备承接项目的用户都要通过投标的方式争取获得项目开发实施资格。项目发布者有权选择采用哪个项目承接者进行项目实施。一旦双方达成一致,项目即可进入实施阶段,此时,项目发布者和项目实施者之间构成合同关系,按照合同约定进行项目的实施。竞标项目在项目实施之前采用一对多模式,使得项目更能够被有资格和能力的用户或团队进行实施,减少项目实施失败的风险。当然,竞标可以是一个项目最终只有一个承接方承包,也可以由几个承接方同时开发,项目发布者需要对各个承接方承诺奖励或报酬方案。比如,项目发布方为了增加项目的成功可能性可以选择两个承接者,并承诺80%的资金报酬将付给项目成果被采用的承接者,20%付给另外一个承接者。为更好地保护双方的利益,竞标项目的实施采用分阶段实施方法,酬金也采用分阶段付费的方法。

对于竞标项目,发布者首先发布项目,发布成功的项目进入竞标参赛阶段,然后项目承接者首先进行竞标。待竞标期结束后,项目发布者可以进行选标。中标的承接者可以为项目提交工作内容,工作内容可以多次提交给发布者,二者之间可以进行多次交互。最终到项目工作内容完成,双方可以进行相互评价。在竞标项目实施过程中,软件项目需求方发布项目,承接方通过竞标的方式获得项目开发资格,然后双方建立劳资关系,双方协商制定酬金支付方案。项目发布者对任务进行分解、阶段划分,软件工程过程按照瀑布模型管理。

众+项目:该类项目指的是发布方在对项目需求不明确的情况下发布的项目需求,通过与大众开发者进行交互逐步形成明确的项目需求,一般符合软件原型开发过程,通过该过程,发布者在明确项目需求的同时,逐步确定项目承接者,并最终由一个或几个项目承接者进行项目的开发实施。

该类项目在项目实施的前期阶段充分发挥网络大众开发者的智慧,为发布者提供从无到有,再到详细具体解决方案和方法的服务产品。

3.4.4 众+项目

对于众+项目,发布者首先发布项目,发布成功的项目进入项目实施阶段,然后项目承接者可以参与项目,接着项目承接者和项目发布者不断进行交互,反馈项目情况,直到双方满意,由发布者确认项目结束。整个项目期间,双方可以借助第三方进行酬金的支付。二者之间可以进行多次交互。最终到项目工作内容完成,双方可以进行相互评价。众+项目针对发起方对软件项目需求不明确,需要参与者逐步开发出需求并最终完成的软件项目。发布者和承接者在项目期间要不断交互并逐步明确软件需求并完成项目,软件工程过程按原型模型管理。

3.4.5 自发项目

该类项目充分发挥广大网络开发者的优质和空闲资源,采用志愿自发的方式进行项目开发。发布者通过发布项目需求或要求,项目参与的方法,由大家自发完成一个项目,积累大家的智慧和力量。该类项目特别适合资源库建设或开源项目,如百度百科,广大用户都可以在上面建立条目,通过广大用户的自发努力最终形成百科。

3.4.6 用户实名认证流程

实名认证是为了更好地确认用户的实际身份,要求用户提供更多的证实信息,包括真实姓名、身份证号、手机、电话、身份证照片等。系统管理员通过查询这些信息确认用户的实际身份,为用户之间交互交易提供更加可靠的保障,同时用户之间可以看到对方是否通过实名认证。

实名认证的基本流程首先是用户注册并登录,然后用户提交实名认证信息。提交了用户认证信息后,由管理员在后台通过验证审核,审核通过的用户将获得实名认证标记。

4 功能实现

系统主要模块划分为首页、竞赛任务、竞标任务、众+任务、自发任务、交易服务、出售成品、用户中心。

系统导航栏中有竞赛项目、竞标项目、众+项目、自发项目,购买服务和在线产品。所有的项目系统都提供了项目信息的浏览和查询的功能,比如竞赛项目的描述信息中包含“项目标题及技能”、“发布日期”、“状态”等。用户可以按照关键字、技术标签和状态进行项目搜索,状态包括“已发布”、“竞赛中”、“评选中”、“公示中”、“结束”。竞标类项目的描述信息中包含“项目标题及技能”、“发布日期”、“项目预算”、“状态”等。用户可以按照关键字、技术标签或项目状态进行搜索,竞标项目的状态包括“已发布”、“竞标中”、“评标中”、“工作中”、“互评和确认”、“结束”。界面如图4所示。

图4 竞赛项目搜索页面

每个项目可以查看该项目的详细信息,根据项目的状态用户可以进行相应的操作,例如当竞标项目处于“竞标中”时,登录的承接者可以“参与竞标”。如图5所示,其他类型的项目都有相应的操作。

图5 参与项目界面

项目的管理包括发布者和承接者管理。发布者可以通过后台进行项目的信息维护,如发布、信息修改、子项目划分、保障金、项目参与用户的管理等。承接者的项目管理包括可以参与项目、提交工作内容、项目过程管理、酬金管理等。发布者竞标项目的维护界面如图6所示。

图6 发布者竞标项目维护界面

针对不同类型的项目,管理上并不完全一样,比如在项目阶段划分上,不同类型的项目有不同的阶段,比如竞标项目的阶段分为“竞标”、“评标”、“工作”、“确认与互评”四个阶段,而自发项目则没有阶段的概念。

5 结束语

为了实现软件的在线众包,将众包模式应用于软件工程开发过程,设计和开发了面向软件的众包平台。该平台实现了对竞赛项目、竞标项目、众+项目、自发项目在众包模式下的管理,经过运行测试,该软件众包平台可行有效,能实现软件项目的在线众包,为软件众包提供了一种全新的解决方法。然而,众包模式下,还有很多问题值得进一步探讨和研究,比如软件开发中的质量控制问题,任务分解后子任务之间的耦合管理问题等等,下一步将对这些问题进行研究。

[1] Howe J. The rise of crowdsourcing[J]. Wired Magazine,2006,14(6):1-4.

[2] 肖 岚,高长春.“众包”改变企业创新模式[J].上海经济研究,2010(3):35-41.

[3] Doan A,Ramakrishnan R,Halevy A Y.Crowdsourcing systems on the world-wide web[J].Communications of the ACM,2011,54(4):86-96.

[4] 张 引,陈 敏,廖小飞.大数据应用的现状与展望[J].计算机研究与发展,2013,50(S):216-233.

[5] Yan T,Kumar V,Ganesan D.Crowdsearch:exploiting crowds for accurate real-time image search on mobile phones[C]//Proceedings of the 8th international conference on mobile systems,applications,and services.[s.l.]:ACM,2010:77-90.

[6] Alonso O,Rose D E,Stewart B.Crowdsourcing for relevance evaluation[J].ACM SIGIR Forum,2008,42(2):9-15.

[7] Callison-Burch C.Fast,cheap,and creative:evaluating translation quality using Amazon's Mechanical Turk[C]//Proceedings of the 2009 conference on empirical methods in natural language processing:volume.[s.l.]:Association for Computational Linguistics,2009:286-295.

[8] Bigham J P,Jayant C,Ji H,et al.VizWiz:nearly real-time answers to visual questions[C]//Proceedings of the 23nd annual ACM symposium on user interface software and technology.[s.l.]:ACM,2010:333-342.

[9] Franklin M J,Kossmann D,Kraska T,et al.CrowdDB:answering queries with crowdsourcing[C]//Proceedings of the 2011 ACM SIGMOD international conference on management of data.[s.l.]:ACM,2011:61-72.

[10] 冯剑红,李国良,冯建华.众包技术研究综述[J].计算机学报,2015,38(9):1713-1726.

[11] 高梦超,胡庆宝,程耀东,等.基于众包的社交网络数据采集模型设计与实现[J].计算机工程,2015,41(4):36-40.

[12] 黄冬梅,许 坤,张明华.Entropy-Beta:用于模式匹配众包方法中的发包策略[J].计算机科学与探索,2015,9(7):887-896.

[13] 阮闪闪,王小平,薛小平.基于证据理论信任模型的众包质量监控[J].计算机应用,2015,35(8):2380-2385.

[14] 张志强,逄居升,谢晓芹,等.众包质量控制策略及评估算法研究[J].计算机学报,2013,36(8):1636-1649.

Design and Implementation of Crowdsourcing Platform Oriented Software

LIU An-zhan,GUO Ji-feng,GOU Xi-mei,LI Yong-jun

(Zhongyuan University of Technology,Zhengzhou 450007,China)

The crowdsourcing provides a new way of organizing the workforce.In order to solve the problem of crowdsourcing in software development,a software crowdsourcing platform is designed and implemented based on analyzing main ways of the software crowdsourcing,in which software projects are divided into competition projects,bidding projects,crowd plus projects and spontaneous projects according to the characteristics of software development for realization of its development and management process.Based on the user role,main use case and protocol,system design and function realization of the software platform,the software engineering waterfall model and the prototype model are designed and proposed.The former is used to realize the online strict linear process management of the project and the latter is adopted to realize the spiral flow management of the project.Through the platform the participating users can trace the progress in real time,online management,online trading and evaluation in the project.Testing results show that it is feasible and effective,which can realize the online software project crowdsourcing and provides a new solution for software crowdsourcing.

software crowdsourcing;crowdsourcing platform;competition;bidding;crowdsourcing

2016-10-12

2017-01-13 网络出版时间:2017-07-00

河南省科学技术计划科技攻关项目(152102210150);河南省高校重点科研项目(15B520041)

刘安战(1980-),男,讲师,硕士,研究方向为软件工程、移动计算

http://kns.cnki.net/kcms/detail/61.1450.TP.20170705.1653.086.html

TP311

A

1673-629X(2017)08-0171-06

10.3969/j.issn.1673-629X.2017.08.036

猜你喜欢

发布者用例竞标
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于视频会议系统的在线开标实践
武器装备项目竞标组织管理研究与应用
新加坡新法规引争议
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
软件众包任务发布优先级计算方法
基于博弈论的社交网络转发控制机制
岁末年初的竞标秀