30 research outputs found
A survey of the use of crowdsourcing in software engineering
The term 'crowdsourcing' was initially introduced in 2006 to describe an emerging distributed problem-solving model by online workers. Since then it has been widely studied and practiced to support software engineering. In this paper we provide a comprehensive survey of the use of crowdsourcing in software engineering, seeking to cover all literature on this topic. We first review the definitions of crowdsourcing and derive our definition of Crowdsourcing Software Engineering together with its taxonomy. Then we summarise industrial crowdsourcing practice in software engineering and corresponding case studies. We further analyse the software engineering domains, tasks and applications for crowdsourcing and the platforms and stakeholders involved in realising Crowdsourced Software Engineering solutions. We conclude by exposing trends, open issues and opportunities for future research on Crowdsourced Software Engineering
Motivasi Pengguna Dalam Menggunakan Metode Crowdsourcing Pada Pembuatan Perangkat Lunak
Perkembangan metode pada pengembangan perangkat lunak telah
meningkat pada akhir-akhir ini, dengan meningkatnya teknologi dan kebutuhan
pasar, metode crowdsourcing telah berkembang dan mendapat tingkat popularitas
yang tinggi dikalangan masyarakat. Metode crowdsourcing lebih condong
mengandalkan kekuatan orang banyak sebagai kemampuan utama dalam
produksinya. Meskipun begitu, sejak crowdsourcing menjadi kekuatan utama baru
dan merambah ke dunia pembuatan perangkat lunak, kualitas pada perangkat
lunak menjadi dipertanyakan. Crowdsourcing memiliki perbedaan dengan alur
pembuatan perangkat lunak secara tradisional seperti Software Life Development
Cycle maupun Waterfall Model, selain itu metode crowdsourcing mengandalkan
kekuatan keramaian pada saat pembuatanya. Beberapa studi dan jurnal
sebelumnya beranggapan bahwa motivasi merupakan kunci utama kesuksesan
ketika metode crowdsourcing digunakan untuk memproduksi sebuah produk.
Pada studi ini diajukan model yang dikombinasikan dari dua teori utama untuk
menjawab pertanyaan tentang motivasi penggunaan crowdsourcing untuk
pembuatan software yaitu teori self-determination, dan IS success model untuk
lebih mengerti tentang hubunganya intensitas pengguna dengan kepuasan pada
pengguna pada kasus pengembangan perangkat lunak dengan metode
crowdsourcing
==================================================================== Software Development has increased emerging new methods in its
development, with the advancement of digitalization, technology and global
networking, Crowdsourcing has been developed and gaining popularity among the
people. Unlike the outsourcing, crowdsourcing is more emphasis on the power of
crowds as major power production. This study will discuss crowdsourcing activity
that focused on software development. Software engineering is a process which
software is written a complex process without compromising the quality of the
software. However, since crowdsourcing software engineering relies on its robust
method to produce a software and entirely different from traditional software
engineering, their quality are questionable. A major issue in of crowdsourcing is
how to attract and to sustain for development. Motivation is a matter that should
be investigated further by the researchers for better crowdsourcing development to
bring right crowds to the table so it can sustain the crowdsourcing activity. This
study discusses more a several factors motivation that can be an impact, an
influence to the development of crowdsourcing in software development. To
improve these study findings, this study also combines two major theories about
self-determination and IS Success Model to investigate further about motivation
the users joined crowdsourcing on software development and to understand the
impact of user satisfaction in case of crowdsourcing on software developmen
Multi-objective Search-based Mobile Testing
Despite the tremendous popularity of mobile applications, mobile testing still relies heavily on manual testing. This thesis presents mobile test automation approaches based on multi-objective search. We introduce three approaches: Sapienz (for native Android app testing), Octopuz (for hybrid/web JavaScript app testing) and Polariz (for using crowdsourcing to support search-based mobile testing). These three approaches represent the primary scientific and technical contributions of the thesis. Since crowdsourcing is, itself, an emerging research area, and less well understood than search-based software engineering, the thesis also provides the first comprehensive survey on the use of crowdsourcing in software testing (in particular) and in software engineering (more generally). This survey represents a secondary contribution. Sapienz is an approach to Android testing that uses multi-objective search-based testing to automatically explore and optimise test sequences, minimising their length, while simultaneously maximising their coverage and fault revelation. The results of empirical studies demonstrate that Sapienz significantly outperforms both the state-of-the-art technique Dynodroid and the widely-used tool, Android Monkey, on all three objectives. When applied to the top 1,000 Google Play apps, Sapienz found 558 unique, previously unknown crashes. Octopuz reuses the Sapienz multi-objective search approach for automated JavaScript testing, aiming to investigate whether it replicates the Sapienz’ success on JavaScript testing. Experimental results on 10 real-world JavaScript apps provide evidence that Octopuz significantly outperforms the state of the art (and current state of practice) in automated JavaScript testing. Polariz is an approach that combines human (crowd) intelligence with machine (computational search) intelligence for mobile testing. It uses a platform that enables crowdsourced mobile testing from any source of app, via any terminal client, and by any crowd of workers. It generates replicable test scripts based on manual test traces produced by the crowd workforce, and automatically extracts from these test traces, motif events that can be used to improve search-based mobile testing approaches such as Sapienz
Can Toolkit Support Truly Elevate Algorithm Innovation? Unpacking the Impact through a Natural Experiment in an Innovation Contest Platform
This study investigates the influence of toolkit support on algorithm innovation in innovation contest platforms. Amidst the rapid growth of AI and escalating demand for innovative algorithms, toolkits—comprising pre-trained models, modular deployment, and collaboration features—are embraced by innovation platforms with expectations of augmenting algorithm innovation. However, the impact of such support on algorithm innovation performance remains ambiguous, necessitating a detailed examination. Leveraging a natural experiment on Kaggle.com, this research employs the Regression Discontinuity in Time to assess causal effects of toolkit support on innovator performance. Results reveal that toolkit support significantly enhances innovation performance, but the benefits vary across different user groups and contest conditions. Specifically, more experienced innovators reap significant enhancements, while the effects amplify in highly competitive environments and diminish in contests with greater task complexity. This study contributes to the understanding of platform-based features in innovation, emphasizing the complexity of toolkit support within algorithm contests
INSTITUTIONAL LOGICS, INDIE SOFTWARE DEVELOPERS AND PLATFORM GOVERNANCE
This two-essay dissertation aims to study institutional logics in the context of Apple's independent third-party software developers. In essay 1, I investigate the embedded agency aspect of the institutional logics theory. It builds on the premise that logics constrain preferences, interests and behaviors of individuals and organizations, thereby determining the appropriate and legitimate decisions and actions of actors. In the meantime, most social actors operate in fields characterized by multiple institutional logics where contradictions exist, allowing individuals and organizations with opportunities for negotiation and change through exploitation or management of these contradictions. I specifically study two competing institutional logics: professional and market logics when they are experienced simultaneously by independent iOS app entrepreneurs. Using participant observation and semi-structured interviews, I delineate the ways in which logic tension is reconciled through mechanisms of logic synthesis in three entrepreneurial areas - app ideation, app execution and app marketing, and conditions which facilitate or inhibit logic synthesis. In essay 2, I study the emergence and evolution of field-level logics in the context of Apple's desktop developers - Mac indies. Following the cultural emergence model of field-level logics in Thornton et al. (2012), and the argument that "field-level logics are both embedded in societal-level logics and subject to field-level processes that generate distinct forms of instantiation, variation, and combination of societal logics" (p148), I particularly examine the relationship between resource environment and the emergence and evolution of field-level logics. Taking advantage of a critical change in developers' resource environment - Apple's opening of the iOS App Store and subsequently the Mac App Store, and hence its governance model shifting from mainly a technological platform to a platform that includes a market exchange place, I identify developers' logics before and after the change, namely, the software ecosystem logic and platform ecosystem logic. Two ideal types are constructed for the logics along elemental categories, and a content analysis demonstrates the logic shift pattern as resource environments change. A further analysis of the two logics suggests that the software ecosystem logic and platform ecosystem logic are in contestation at this early stage of institutional change
A Collaboration Framework of Selecting Software Components Based on Behavioural Compatibility with User Requirements.
Beyond Traditional Software Development: Studying and Supporting the Role of Reusing Crowdsourced Knowledge in Software Development
As software development is becoming increasingly complex, developers often need to reuse others’ code or knowledge made available online to tackle problems encountered during software development and maintenance. This phenomenon of using others' code or knowledge, often found on online forums, is referred to as crowdsourcing. A good example of crowdsourcing is posting a coding question on the Stack Overflow website and having others contribute code that solves that question. Recently, the phenomenon of crowdsourcing has attracted much attention from researchers and practitioners and recent studies show that crowdsourcing improves productivity and reduces time-to-market. However, like any solution, crowdsourcing brings with it challenges such as quality, maintenance, and even legal issues.
The research presented in this thesis presents the result of a series of large-scale empirical studies involving some of the most popular crowdsourcing platforms such as Stack Overflow, Node Package Manager (npm), and Python Package Index (PyPI). The focus of these empirical studies is to investigate the role of reusing crowdsourcing knowledge and more particularly crowd code in the software development process.
We first present two empirical studies on the reuse of knowledge from crowdsourcing platforms namely Stack Overflow. We found that reusing knowledge from this crowdsourcing platform has the potential to assist software development practices, specifically through source code reuse.
However, relying on such crowdsourced knowledge might also negatively affect the quality of the software projects. Second, we empirically examine the type of development knowledge constructed on crowdsourcing platforms. We examine the use of trivial packages on npm and PyPI platforms. We found that trivial packages are common and developers tend to use them because they provide them with well tested and implemented code. However, developers are concerned about the maintenance overhead of these trivial packages due to the extra dependencies that trivial packages introduce. Finally, we used the gained knowledge to propose a pragmatic solution to improve the efficiency of relying on the crowd in software development. We proposed a rule-based technique that automatically detects commits that can skip the continuous integration process. We evaluate the performance of the proposed technique on a dataset of open-source Java projects. Our results show that continuous integration can be used to improve the efficiency of the reused code from crowdsourcing platforms.
Among the findings of this thesis are that the way software is developed has changed dramatically. Developers rely on crowdsourcing to address problems encountered during software development and maintenance. The results presented in this thesis provides new insights on how knowledge from these crowdsourced platforms is reused in software systems and how some of this knowledge can be better integrated into current software development processes and best practices
Chatbots for Modelling, Modelling of Chatbots
Tesis Doctoral inédita leída en la Universidad Autónoma de Madrid, Escuela Politécnica Superior, Departamento de Ingeniería Informática. Fecha de Lectura: 28-03-202
