Gregorio Robles

Gregorio Robles
King Juan Carlos University | URJC · Telematic and Computational Systems Engineering

Professor

About

259
Publications
193,471
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
6,055
Citations
Introduction
Gregorio Robles currently works at the Universidad Rey Juan Carlos, located in Madrid, Spain. Gregorio does research in Software Engineering (mainly Free/Open Source Software, Mining Software Repositories, Software Maintenance and Evolution) and Computational Thinking.

Publications

Publications (259)
Article
Full-text available
Effort estimation models are a fundamental tool in software management, and used as a forecast for resources, constraints and costs associated to software development. For Free/Open Source Software (FOSS) projects, effort estimation is especially complex: professional developers work alongside occasional, volunteer developers, so the overall effort...
Article
Full-text available
Context Building past source code snapshots of a software product is necessary both for research (analyzing the past state of a program) and industry (increasing trustability by reproducibility of past versions, finding bugs by bisecting, backporting bug fixes, among others). A study by Tufano et al. showed in 2016 that many past snapshots cannot b...
Chapter
New theories often emerge from seemingly contradictory empirical evidences. This is precisely the starting point of this chapter. Recent computational thinking (CT) research in K-12 shows different results depending on whether the computational concepts involved are used to solve visuospatial (Román-González, Pérez-González, and Jiménez-Fernández 2...
Preprint
Full-text available
Although architecture instability has been studied and measured using a variety of metrics, a deeper analysis of which project parts are less stable and how such instability varies over time is still needed. While having more information on architecture instability is, in general, useful for any software development project, it is especially import...
Technical Report
La Escuela de Pensamiento Computacional e Inteligencia Artificial (EPCIA) es un proyecto del Ministerio de Educación y Formación Profesional, que se desarrolla en colaboración con las Consejerías y Departamentos de Educación de las comunidades y ciudades autónomas. El objetivo del proyecto es ofrecer recursos educativos abiertos, formación, acompañ...
Preprint
Full-text available
Python is known to be a versatile language, well suited both for beginners and advanced users. Some elements of the language are easier to understand than others: some are found in any kind of code, while some others are used only by experienced programmers. The use of these elements lead to different ways to code, depending on the experience with...
Preprint
Full-text available
Effort estimation models are a fundamental tool in software management, and used as a forecast for resources, constraints and costs associated to software development. For Free/Open Source Software (FOSS) projects, effort estimation is especially complex: professional developers work alongside occasional, volunteer developers, so the overall effort...
Article
Full-text available
Este artículo presenta los resultados de la investigación que ha medido el impacto causal de la intervención realizada en el marco del proyecto Escuela de Pensamiento Computacional, que el Ministerio de Educación y Formación Profesional de España puso en marcha en el curso académico 2018-2019. En concreto, el trabajo estudia si es posible mejorar e...
Article
Full-text available
This article presents an investigation that has measured the causal impact of an intervention carried out within the School of Computational Thinking project framework, launched by the Spanish Ministry of Education and Vocational Training in the 2018-2019 academic year. Specifically, it studies whether it is possible to improve the development of m...
Article
Context Developer churn is the overall turnover in a software organization’s staff. Existing developers leave and new ones join the project. Retaining the knowledge of the software source code among the development team in such scenarios is an essential factor to keep the software maintenance cost as low as possible. Knowledge diffusion is an activ...
Article
The Shadow Program Committee (PC) is an initiative/program that provides an opportunity to Early-Career Researchers (ECRs), i.e., PhD students, postdocs, new faculty members, and industry practitioners, who have not been in a PC, to learn rst-hand about the peer-review process of the technical track at Software Engi- neering (SE) conferences. This...
Preprint
Full-text available
Background/Context: Currently, the usual interface for visualizing data is based on 2-D screens. Recently, devices capable of visualizing data while immersed in VR scenes are becoming common. However, it has not been studied in detail to which extent these devices are suitable for interacting with data visualizations in the specific case of data ab...
Preprint
Full-text available
To promote and facilitate the Shadow PC program at SE conferences in the future, this report provides details about the process and a reflection on the Shadow PC program during MSR2021. The presentation slides and video are also available online at https://youtu.be/ReUXwmtIEk8. This report will appear at SIGSOFT Software Engineering Notes in Octob...
Article
The efficient assignment of bug fixing tasks to software developers is of major importance in software maintenance and evolution. When those tasks are not efficiently assigned to developers, the software project might confront extra costs and delays. In this paper, we propose a strategy that minimizes the time and the cost in bug fixing by finding...
Preprint
Full-text available
The inclusion of artificial intelligence (AI) in education is increasingly highlighted by international organizations and governments around the world as a cornerstone to enable the adoption of AI in society. That is why we have developed LearningML, aiming to provide a platform that supports educators and students in the creation of hands-on AI pr...
Article
Full-text available
Container-based solutions, such as Docker, have become increasingly relevant in the software industry to facilitate deploying and maintaining software systems. Little is known, however, about how outdated such containers are at the moment of their release or when used in production. This article addresses this question, by measuring and comparing f...
Preprint
Full-text available
Open Source Software (OSS) has changed drastically over the last decade, with OSS projects now producing a large ecosystem of popular products, involving industry participation, and providing professional career opportunities. But our field's understanding of what motivates people to contribute to OSS is still fundamentally grounded in studies from...
Article
Full-text available
Context: As a novel coronavirus swept the world in early 2020, thousands of software developers began working from home. Many did so on short notice, under difficult and stressful conditions. Objective: This study investigates the effects of the pandemic on developers' wellbeing and productivity. Method: A questionnaire survey was created main...
Preprint
Full-text available
Intrinsic bugs are bugs for which a bug-introducing change can be identified in the version control system of a software. In contrast, extrinsic bugs are caused by external changes to a software, such as errors in external APIs; thereby they do not have an explicit bug-introducing change in the version control system. Although most previous researc...
Article
Intrinsic bugs are bugs for which a bug-introducing change can be identified in the version control system of a software. In contrast, extrinsic bugs are caused by external changes to a software, such as errors in external APIs; thereby they do not have an explicit bug-introducing change in the version control system. Although most previous researc...
Article
Full-text available
In a widely used definition, a software ecosystem is a 'collection of software projects which are developed and evolve together in the same environment'. The objective of this paper is to explore how software ecosystems foster collaboration among their key players to achieve innovation within individual software projects. Thus, in this paper, we me...
Conference Paper
Full-text available
Diversity in software development teams has been identified as one of the main ingredients of a more productive and healthy software community. Thus, the interest in identifying who is contributing to a project has increased in the last years. In the software domain , although other types of diversity exist, the case of gender is particularly impor...
Preprint
Full-text available
Background. As a novel coronavirus swept the world in early 2020, thousands of software developers began working from home. Many did so on short notice , under difficult and stressful conditions. Aim. This paper seeks to understand the effects of the pandemic on developers' wellbeing and productivity. Method. A questionnaire survey was created main...
Article
Full-text available
The use of Artificial Intelligence (AI) offers new and thriving opportunities, but introduces also new risks and ethical issues that should be dealt with. We argue that the introduction of AI contents at schools through practical, hands-on, projects is the way to go to educate conscientious and critical citizens of the future, to awaken vocations a...
Conference Paper
Full-text available
Game design is increasingly used in modern education to foster Computational Thinking (CT). Yet, it is unclear how and if the game genre of student-designed games impact CT and programming. We explore how game genre impacts CT development and programming routines in Scratch games designed by 8th-grade students using a metrics-based approach (i.e.,...
Article
Full-text available
When identifying the origin of software bugs, many studies assume that “a bug was introduced by the lines of code that were modified to fix it”. However, this assumption does not always hold and at least in some cases, these modified lines are not responsible for introducing the bug. For example, when the bug was caused by a change in an external A...
Article
Full-text available
Even though countries from all over the world are modifying their national educational curriculum in order to include computational thinking skills, there is not an agreement in the definition of this ability. This is partly caused by the myriad of definitions that has been proposed by the scholar community. In fact, there are multiple examples in...
Conference Paper
Artificial Intelligence (AI) and Machine Learning (ML) have heavily irrupted in society, bringing new applications and possibilities while introducing some ethical problems. Governments and institutions around the world are working on the challenges posed by AI in all aspects, from economy to education. Therefore, introducing AI-related content at...
Article
Full-text available
Open source software (OSS) has conquered the software world. You can see it nearly everywhere, from Internet infrastructure to mobile phones to the desktop. In addition to that, although many OSS practices were viewed with skepticism 20 years ago, several have become mainstream in software engineering today: from development tools such as Git to pr...
Chapter
Government 3.0, which builds on openness and transparency, sharing, increased communication and collaboration, government reorganization through integration and interoperability, and use of new technologies, is an emerging concept in eGovernance. However, few systems that qualify as Government 3.0 have been described in detail so far. And there is...
Chapter
Full-text available
Software ecosystems have gained a lot of attention in recent times. Industry and developers gather around technologies and collaborate to their advancement; when the boundaries of such an effort go beyond certain amount of projects, we are witnessing the appearance of Free/Libre and Open Source Software (FLOSS) ecosystems. In this chapter, we explo...
Conference Paper
Computational thinking (CT) is key to digital literacy and helps develop problem-solving skills, which are fundamental in modern school. As game design shows potential for teaching CT, metrics like Dr. Scratch emerge that help scholars systematically assess the CT of student-designed games, particularly with Scratch. Compared to other CT metrics, D...
Chapter
Full-text available
Given that computational thinking (CT) is still a blurry psychological construct, its assessment remains as a thorny, unresolved issue. Hence, in recent years, several assessment tools have been developed from different approaches and operational definitions of CT. However, very little research has been conducted to study whether these instruments...
Conference Paper
Full-text available
Nowadays, software projects and in particular open source ones heavily rely on a plethora of tools (e.g., Git, GitHub) to support and coordinate development activities. Despite their paramount value, they foster to fragment members' contribution , since members can access them with different identities (e.g., email, username). Thus, researchers and...
Chapter
Full-text available
Given that computational thinking (CT) is still a blurry psychological construct, its assessment remains as a thorny, unresolved issue. Hence, in recent years, several assessment tools have been developed from different approaches and operational definitions of CT. However, very little research has been conducted to study whether these instruments...
Article
Reusable Open Source Software (OSS) components for major programming languages are available in package repositories. Developers rely on package management tools to automate deployments, specifying which package releases satisfy the needs of their applications. However, these specifications may lead to deploying package releases that are outdated,...
Preprint
Full-text available
Containerized applications, and in particular Docker images, are becoming a common solution in cloud environments to meet ever-increasing demands in terms of portability, reliability and fast deployment. A Docker image includes all environmental dependencies required to run it, such as specific versions of system and third-party packages. Leveragin...
Preprint
Full-text available
Software systems often leverage on open source software libraries to reuse functionalities. Such libraries are readily available through software package managers like npm for JavaScript. Due to the huge amount of packages available in such package distributions, developers often decide to rely on or contribute to a software package based on its po...
Preprint
Full-text available
Packaging software into containers is becoming a common practice when deploying services in cloud and other environments. Docker images are one of the most popular container technologies for building and deploying containers. A container image usually includes a collection of software packages, that can have bugs and security vulnerabilities that a...
Preprint
Full-text available
Developers discuss software architecture and concrete source code implementations on a regular basis, be it on question-answering sites, online chats, mailing lists or face to face. In many cases, there is more than one way of solving a programming task. Which way is best may be decided based on case-specific circumstances and constraints, but also...
Article
The OpenStack Foundation's goal is to "promote the global development, distribution and adoption of open infrastructure." As in many other open source communities, and in the technology industry as a whole, the OpenStack community reflected a lack of representation of females and underrepresented minorities, a fact that should be supported with evi...
Conference Paper
Full-text available
Background: Many studies in the software research literature on bug fixing are built upon the assumption that "a given bug was introduced by the lines of code that were modified to fix it", or variations of it. Although this assumption seems very reasonable at first glance, there is little empirical evidence supporting it. A careful examination sur...
Conference Paper
Full-text available
Source code analysis tools are designed to analyze code artifacts with different intents, which span from improving the quality and security of the software to easing refactoring and reverse engineering activities. However, most tools do not come with features to periodically schedule their analysis or to be executed on a battery of repositories, a...
Conference Paper
Full-text available
Source code analysis tools are designed to analyze code artifacts with different intents, which span from improving the quality and security of the software to easing refactoring and reverse engineering activities. However, most tools do not come with features to periodically schedule their analysis or to be executed on a battery of repositories, a...
Article
Full-text available
Xen is one of the most popular technologies for virtualization. It is produced and maintained by a software ecosystem with the participation of several large IT companies. Some years ago they decided to use software development analytics to better understand some problems they had with code review. Since them, they collect and publish several metri...
Article
Computational thinking (CT) is arising as a set of problem-solving skills that must be acquired by the new generations of students to fully understand and participate in our computer-based world. However, from a psychometric approach, we are still at an early stage regarding the definition and assessment of CT as a psychological variable. One way t...
Conference Paper
Full-text available
Development of Computational Thinking (CT) is an area of many initiatives in the last years, due to the importance of having CT skills. There are many environments that allow learners to develop such skills, for instance Scratch and MIT App Inventor, in a visual and intuitive way. As in professional software development, assisting tools that help a...
Conference Paper
Full-text available
Software development projects, in particular open source ones, heavily rely on the use of tools to support, coordinate and promote development activities. Despite their paramount value, they contribute to fragment the project data, thus challenging practitioners and researchers willing to derive insightful analytics about software projects. In this...
Conference Paper
Full-text available
Modern code reviews improve the quality of software products. Although modern code reviews rely heavily on human interactions, little is known regarding whether they are performed fairly. Fairness plays a role in any process where decisions that affect others are made. When a system is perceived to be unfair, it affects negatively the productivity...
Conference Paper
Full-text available
Software library packages are constantly evolving and increasing in number. Not updating to the latest available release of dependent libraries may negatively affect software development by not benefiting from new functionality, vulnerability and bug fixes available in more recent versions. On the other hand, automatically updating to the latest re...
Conference Paper
Full-text available
In recent years we are witnessing movements around the world to bring computer programming to schools. Lots of these initiatives, however, have been conceived to address the shortage of professionals in the technology sector, an approach that is encouraged by the software industry. On the contrary, this article argues that the focus should swift to...
Article
Full-text available
Context Reproducibility of Empirical Software Engineering (ESE) studies is an essential part for improving their credibility, as it offers the opportunity to the research community to verify, evaluate and improve their research outcomes. Objective We aim to study reproducibility and credibility in ESE with a case study, by investigating how they h...