85 research outputs found

    Behind the Scenes: On the Relationship Between Developer Experience and Refactoring

    Get PDF
    Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that code refactoring activities are mainly executed by developers who have sufficient knowledge of the system’s design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results by analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an experience score to each contributor in order to test various hypotheses related to whether developers with higher scores tend to 1) perform a higher number of refactoring operations 2) exhibit different motivations behind their refactoring, and 3) better document their refactoring activity. We found that (1) although refactoring is not restricted to a subset of developers, those with higher contribution score tend to perform more refactorings than others; (2) while there is no correlation between experience and motivation behind refactoring, top contributed developers are found to perform a wider variety of refactoring operations, regardless of their complexity; and (3) top contributed developer tend to document less their refactoring activity. Our qualitative analysis of three randomly sampled projects show that the developers who are responsible for the majority of refactoring activities are typically in advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to

    Merging datasets for emotion analysis

    Get PDF
    Context. Applying sentiment analysis is in general a laborious task. Furthermore, if we add the task of getting a good quality dataset with balanced distribution and enough samples, the job becomes more complicated. Objective. We want to find out whether merging compatible datasets improves emotion analysis based on machine learning (ML) techniques, compared to the original, individual datasets. Method. We obtained two datasets with Covid-19-related tweets written in Spanish, and then built from them two new datasets combining the original ones with different consolidation of balance. We analyzed the results according to precision, recall, F1-score and accuracy. Results. The results obtained show that merging two datasets can improve the performance of ML models, particularly the F1-score, when the merging process follows a strategy that optimizes the balance of the resulting dataset. Conclusions. Merging two datasets can improve the performance of ML models for emotion analysis, whilst saving resources for labeling training data. This might be especially useful for several software engineering activities that leverage on ML-based emotion analysis techniques.This paper has been funded by the Spanish Ministerio de Ciencia e Innovación under project / funding scheme PID2020-117191RB.Peer ReviewedPostprint (author's final draft

    Energy efficient software in an engineering course

    Get PDF
    Sustainable development has become an increasingly important theme not only in the world politics, but also an increasingly central theme for the engineering professions around the world. Software engineers are no exception as shown in various recent research studies. Despite the intensive research on green software, today’s undergraduate computing education often fails to address our environmental responsibility. We present a module on energy efficient software that we introduced as part of an advanced course on software analysis and testing. In this module we study techniques and tools to analyze and optimize energy consumption of software systems. Preliminary results of the first four instances of this course show that students are able to optimize the energy consumption of software systems.ERDF European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme within project POCI-01-0145-FEDER006961, and by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia within project POCI-01-0145-FEDER016718 and UID/EEA/50014/2013

    Behavlets: a Method for Practical Player Modelling using Psychology-Based Player Traits and Domain Specific Features

    Get PDF
    As player demographics broaden it has become important to understand variation in player types. Improved player models can help game designers create games that accommodate a range of play styles/preferences, and may also facilitate the design of systems that detect player type and adapt dynamically in real-time. Existing approaches can model players, but most focus on tracking and classifying behaviour based on simple functional metrics such as deaths, specific choices, player avatar attributes, and completion times. We describe a different approach which seeks to leverage expert domain knowledge using a theoretical framework linking behaviour and game design patterns. The aim is to derive features of play from sequences of actions which are intrinsically informative about behaviour – which, because they are directly interpretable with respect to psychological theory of behaviour, we name ‘Behavlets’. We present the theoretical underpinning of this approach from research areas including psychology, temperament theory, player modelling, and game composition. The Behavlet creation process is described in detail; illustrated using a clone of the well-known game Pac-Man, with data gathered from 100 participants. A workshop evaluation study is also presented, where nine game design expert participants were briefed on the Behavlet concepts and requisite models, and then attempted to apply the method to games of the well-known first/third-person shooter genres, exemplified by ‘Gears of War’, (Microsoft). The participants found 139 Behavlet concepts mapping from behavioural preferences of the temperament types, to design patterns of the shooter genre games. We conclude that the Behavlet approach has significant promise, is complementary to existing methods and can improve theoretical validity of player models.Peer reviewe

    FLOSSSim: Understanding the Free/Libre Open Source Software (FLOSS) Development Process through Agent-Based Modeling

    Get PDF
    abstract: Free/Libre Open Source Software (FLOSS) is the product of volunteers collaborating to build software in an open, public manner. The large number of FLOSS projects, combined with the data that is inherently archived with this online process, make studying this phenomenon attractive. Some FLOSS projects are very functional, well-known, and successful, such as Linux, the Apache Web Server, and Firefox. However, for every successful FLOSS project there are 100's of projects that are unsuccessful. These projects fail to attract sufficient interest from developers and users and become inactive or abandoned before useful functionality is achieved. The goal of this research is to better understand the open source development process and gain insight into why some FLOSS projects succeed while others fail. This dissertation presents an agent-based model of the FLOSS development process. The model is built around the concept that projects must manage to attract contributions from a limited pool of participants in order to progress. In the model developer and user agents select from a landscape of competing FLOSS projects based on perceived utility. Via the selections that are made and subsequent contributions, some projects are propelled to success while others remain stagnant and inactive. Findings from a diverse set of empirical studies of FLOSS projects are used to formulate the model, which is then calibrated on empirical data from multiple sources of public FLOSS data. The model is able to reproduce key characteristics observed in the FLOSS domain and is capable of making accurate predictions. The model is used to gain a better understanding of the FLOSS development process, including what it means for FLOSS projects to be successful and what conditions increase the probability of project success. It is shown that FLOSS is a producer-driven process, and project factors that are important for developers selecting projects are identified. In addition, it is shown that projects are sensitive to when core developers make contributions, and the exhibited bandwagon effects mean that some projects will be successful regardless of competing projects. Recommendations for improving software engineering in general based on the positive characteristics of FLOSS are also presented.Dissertation/ThesisPh.D. Computer Science 201

    Bayesian network analysis of software logs for data-driven software maintenance

    Get PDF
    Software organisations aim to develop and maintain high-quality software systems. Due to large amounts of behaviour data available, software organisations can conduct data-driven software maintenance. Indeed, software quality assurance and improvement programs have attracted many researchers' attention. Bayesian Networks (BNs) are proposed as a log analysis technique to discover poor performance indicators in a system and to explore usage patterns that usually require temporal analysis. For this, an action research study is designed and conducted to improve the software quality and the user experience of a web application using BNs as a technique to analyse software logs. To this aim, three models with BNs are created. As a result, multiple enhancement points have been identified within the application ranging from performance issues and errors to recurring user usage patterns. These enhancement points enable the creation of cards in the Scrum process of the web application, contributing to its data-driven software maintenance. Finally, the authors consider that BNs within quality-aware and data-driven software maintenance have great potential as a software log analysis technique and encourage the community to deepen its possible applications. For this, the applied methodology and a replication package are shared.Junta de Andalucía, Grant/Award Number: P20‐00091; AEI, Grant/Award Number: PID2019‐106758GB‐32/AEI/10.13039/501100011033; Spanish project, Grant/Award Number: PDC2021‐121195‐I00; Spanish Program, Grant/Award Number: BEAGAL18/00064Peer ReviewedPostprint (published version

    Filthy Lucre? Innovative Communities, Identity, and Commercialization

    Get PDF
    Online communities play an increasingly important role in developing innovation. However, relatively little is known about the ways in which community affiliation influences how innovations and products generated in these communities are commercialized. By examining open source software (OSS) as an example of an innovation community and using both a quasi experiment and a longitudinal survey, I seek to shed light on this issue. In the quasi experiment, using the launch of the Apple App Store, I find a decreased propensity toward commercialization among individuals associated with online community innovation. I then examine the mechanisms for this decreased commercialization with a novel longitudinal survey of OSS community members. Despite the history of OSS as an anticommercial community, I do not find that anticommercial attitudes play a role in commercialization decisions. Instead, differences in entrepreneurial self-identity have large significant effects on the propensity to commercialize. I conclude with a discussion of the implications of these findings for the literatures on both entrepreneurial identity and community innovation

    Mobile map client API : design and implementation for Android

    Get PDF
    The fast development of computational power of the mobile phone makes it a suitable platform for running map applications. Both public and field working professionals can benefit from easy access to a mobile map client application with features such as route planning, location based services and simple GIS operations. This master's thesis describes the mobile operating system (OS) Android from a geographic information aspect and relates it to other major mobile OS. Available map client application programming interfaces (API) are investigated. It is concluded that Android is a good platform choice for implementing mobile map applications. But there is need of a generic open source API for Android. Such an API is implemented, resulting in a good performing map client. Though it needs additional development to perform all features aimed for in the suggested API design.Populärvetenskaplig sammanfattning: Dagens datorlika mobiltelefoner lämpar sig utmärkt för att visa olika typer av kartor. Det är inte svårt att hitta tillämpningar för både privatpersoner och professionella användare med behov som att till exempel hitta lämpliga färdvägar eller visa information om platsen man befinner sig på. Det här examensarbetet går ut på att undersöka hur geografisk data kan behandlas och visas som kartor på Android-mobiler. Målet är att skapa ett generellt programmeringsverktyg som ska kunna användas för att snabbt och enkelt kunna utveckla specialiserade kartapplikationer för Android. Ett sådant verktyg kallas inom databranschen för API, vilket står för Application Programming Interface. Ett API är ett gränssnitt som ger programmerare smidig tillgång till grundläggande funktioner i ett system eller en typ av applikation. I det här fallet får programmeraren tillgång till grundläggande kartfunktioner, som t.ex. kartdataladdning eller panorering och zoom, utan att behöva programmera hela logiken bakom dessa funktioner. Istället kan programmeraren fokusera sitt arbete på de delarna som gör just den kartapplikationen unik. Arbetet är uppdelat i en undersökande del för att klarlägga var utvecklingen av tekniken befinner sig idag och vilka liknande försök som gjorts tidigare och en mer praktisk utvecklingsdel med målet att implementera ett API för kartapplikationer på Android. I undersökningen jämförs Android med andra mobila plattformar, t.ex. Apples iPhone och Nokias Symbian. Det konstateras att Android står sig bra i konkurens med de andra och lämpar sig väl för kartapplikationer men att det skulle behövas ett generellt kartverktyg som inte är så hårt styrt som Google maps, som är det vanligaste kartverktyget för Android. För att tydliggöra vad API:et borde innehålla och klara av att utföra gjordes först en teoretisk modell av dess olika delar. De viktigaste delarna, t.ex. dataladdning och användargränssnitt med kartbildsvisning, panorering och zoom, implementerades sedan för att kunna testköras och vidareutvecklas på en Android-mobil. En demoapplikation utvecklades för att demonstrera användningen av API:et. Resultatet är ett verktyg för ett energibolags servicepersonal att ha med sig i fält för att se deras fjärrvärmenäts geografiska utsträckning och info om nätets olika delar, kopplingar och kunder.Scientific summary: The fast development of computational power of the mobile phone have made it a suitable platform for running map applications. Both public and field working professionals can benefit from easy access to a mobile map client application with features such as route planning, location based services and simple GIS operations. This master's thesis describes the mobile operating system (OS) Android from a geographic information aspect and relates it to other major mobile OS. A map client application programming interfaces (API) is implemented, resulting in a good performing map client. Though it needs additional development to perform all features aimed for in the suggested API design. The study is divided into a state-of-the-art investigation of available technology, and an effort to design and implement a map client API for Android. The investigation was made by referencing available scientific papers, technical articles and websites. Available OS's and API's are investigated. It is concluded that Android is a good platform choice for implementing mobile map applications. But there is need of a generic open source API for Android. Another objective of the study was to compare a map client running as a web application to the native client developed regarding performance. Unfortunately no suiting API for setting up the web application was found. Since then the OpenLayers community have made a great effort for running OpenLayers clients on mobile devices, which would have been an ideal choice for doing the comparison. The work on the API contains a theoretical model which is partly implemented. The aim of the model is to define the overall functionality, some specialized features and cohesive data structures. Then the base functionality, such as data loading, map drawing, panning and zooming, was implemented. The implementation was carried out in an iterative manner. Starting with complementing a basic, incomplete open source map API to gain understanding of mobile map API design and avoid re-inventing the wheel. Added was support for coordinate systems and projections other than WGS 84 Web Mercator (EPSG 4326), better Web Map Service (WMS) support, vector data loading and improved responsiveness when loading data. A demo application was put together in order to test performance on the hardware emulator integrated in the Android SDK and on a real device, Motorola Milestone running Android version 2.1. The scenario for the demo application is a district heating pipe system, an useful field application for a city energy company. The application shows a raster background map loaded from a tiled WMS with the pipe system as vector overlays loaded from a custom Keyhole Markup Language (KML) service. The vector data is click-able in order to show information about different parts of the pipe system

    Sustainability of Open Source Software Projects: On the Influence of Technical Interdependencies in Software Ecosystems on Developer Participation

    Get PDF
    In the community-based model of open source software (OSS) development, OSS projects are built and maintained by developers that voluntarily contribute their skills, knowledge, and time, thus making them dependent on their continued participation. Therefore, the question of how projects can attract and retain developers is of major concern for their sustainability. OSS projects are embedded into a complex network of technical interdependent projects that emerges from building upon and reusing existing software components. In these so-called software ecosystems, the issue of sustained participation is not only a concern of a single project but also other dependent projects. However, the role and influence of these interdependencies between projects have so far been neglected by Information Systems researchers. This dissertation thus asks: _How do technical interdependencies in software ecosystems influence the sustainability of open source software projects?_ To answer this question, this dissertation consists of three independent empirical studies that focus on three aspects of how technical interdependencies influence developer participation and thus contribute to the sustainability of open source projects: (1) the ability to attract developers, (2) the influences on developers' participation decision, and (3) the retention of developers in a project. This dissertation finds that OSS projects attract more developers when depending on other projects and their ability to retain developers increases with the number of shared developers with other technical interrelated projects. Furthermore, the participation decisions of developers are also positively influenced by these technical relations. Together, these studies contribute to the body of knowledge on developer participation by highlighting the role of technical interdependencies for the overall sustainability of open source projects

    Game for Teaching Very Basic Programming

    Get PDF
    Hlavním cílem této práce je vytvoření hry pro výuku úplných základů programování . První část této práce se zabývá studiem a analýzou současných her pro výuku programovaní a soudobých principů užívaných ve výukových hrách . Na toto navazuje návrh a implementace rozhraní pro vizuální programování v Unity3d a následná integrace tohoto rozhraní do jednoduché hry , která bude splňovat principy sepsané v první části této práce . Výsledek práce je poté vyhodnocen jak z hlediska technického tak uživatelského , s cílem zjistit efektivitu rozhraní pro vizuální programování a hry samotné jako nástroje pro představení programování .The main goal of this thesis is to create a game for teaching very basic programming. An analysis of current programming education games and education principles takes up the first part of this thesis. This is followed by a design and implementation of visual programming interface in Unity3d and later integration of this interface into a simple game supporting the foundings from the first part of the thesis. This thesis is then being evaluated from the technical and user perspective with the goal to analyze the effectiveness of both the visual programming interface and the game as a tool to introduce programming to non-coders.
    corecore