Javier Luis Canovas IzquierdoUniversitat Oberta de Catalunya | UOC · IN3
Javier Luis Canovas Izquierdo
PhD in Computer Science
About
88
Publications
40,625
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
1,434
Citations
Introduction
I'm associate professor at the Faculty of Computer Science, Multimedia and Telecommunications. Before (2015-2019) I was postdoctoral fellow in the SOM Research Lab at IN3 UOC, in Barcelona, Spain. From 2011 to 2015, I was part of Inria as postdoctoral researcher in the AtlanMod team (now NaoMod, at the Ecole des Mines de Nantes, France. I got my PhD in June 2011 in the Modelum team reaseach team, at the University of Murcia, Spain.
Additional affiliations
June 2015 - present
May 2011 - June 2015
September 2006 - June 2011
Publications
Publications (88)
Software repositories is one of the sources of data in Empirical Software Engineering, primarily in the Mining Software Repositories field, aimed at extracting knowledge from the dynamics and practice of software projects. With the emergence of social coding platforms such as GitHub, researchers have now access to millions of software repositories...
Model-Driven Engineering (MDE) is a software engineering methodology focusing on models as primary artifacts. In the last years, the emergence of Web technologies has led to the development of Web-based modeling tools and model-based approaches for the Web that offer a web-based environment to create and edit models or model-based low-code solution...
Most organizations base their strategic decisions on the analysis of business performance data. With the emergence of artificial intelligence, this analysis also includes applying machine learning techniques, among others, which help to discover and predict patterns in data. Although there are a number of tools to perform data analysis, they requir...
Background. The development of empirical studies in software engineering mainly relies on the data available on code hosting platforms, being GitHub the most representative. Nevertheless, in the last years, the emergence of Machine Learning (ML) has led to the development of platforms specifically designed for developing ML-based projects, being Hu...
Seeking the best governance models for FOSS projects.
The software industry is in continuous evolution, forcing developers to quickly adapt to new requirements to catch up with the latest trends. A clear example is the huge demand for web-based APIs to connect all kinds of services among them. Like any other piece of software, a Web API is continuously changing, and with each change, all client applic...
The application of machine learning (ML) algorithms to address problems related to model-driven engineering (MDE) is currently hindered by the lack of curated datasets of software models. There are several reasons for this, including the lack of large collections of good quality models, the difficulty to label models due to the required domain expe...
The role of non-coding contributors in Open Source Software (OSS) is poorly understood. Most of current research around OSS development focuses on the coding aspects of the project (e.g., commits, pull requests or code reviews) while ignoring the potential of other types of contributions. Often, due to the assumption that these other contributions...
The Open Data movement promotes the free distribution of data. More and more companies and governmental organizations are making their data available online following the Open Data philosophy, resulting in a growing market of technologies and services to help publish and consume data. One of the emergent ways to publish such data is via Web APIs, w...
The Open Data movement promotes the free distribution of data. More and more companies and governmental organizations are making their data available online following the Open Data philosophy, resulting in a growing market of technologies and services to help publish and consume data. One of the emergent ways to publish such data is via Web APIs, w...
REST APIs have become key assets for any company willing to have online presence and provide access to its services. Several approaches have been proposed to describe this kind of APIs, being OpenAPI the dominant proposal in the last years. OpenAPI allows any consumer to understand the operations and data elements of a REST API. However, it does no...
A number of software foundations have been created as legal instruments to better articulate the structure, collaboration and financial model of Open Source Software (OSS) projects. Some examples are the Apache, Linux, or Mozilla foundations. However, the mission and support provided by these foundations largely differ among them. In this paper we...
General Programming Languages (GPLs) continuously evolve to adapt to the ever changing technology landscape. The evolution is rooted on technical aspects but it is ultimately decided by the group of people governing the language and working together to solve, vote and approve the new language extensions and modifications. As in any community, gover...
The development Open Source Software fundamentally depends on the participation and commitment of volunteer developers to progress on a particular task. Several works have presented strategies to increase the on-boarding and engagement of new contributors, but little is known on how these diverse groups of developers self-organise to work together....
The network of collaborations in an open source project can reveal relevant emergent properties that influence its prospects of success. In this work, we analyze open source projects to determine whether they exhibit a rich-club behavior, i.e., a phenomenon where contributors with a high number of collaborations (i.e., strongly connected within the...
The development Open Source Software fundamentally depends on the participation and commitment of volunteer developers to progress. Several works have presented strategies to increase the on-boarding and engagement of new contributors, but little is known on how these diverse groups of developers self-organise to work together. To understand this,...
The development of modern IDEs is still a challenging and time-consuming task, which requires implementing the support for language-specific features such as syntax highlighting or validation. When the IDE targets a graphical language, its development becomes even more complex due to the rendering and manipulation of the graphical notation symbols....
Publication in top conferences is a key factor, albeit controversial, in the dissemination of ideas and career promotion in many areas of computer science. Therefore, it is a major goal for every CS researcher. However, many researchers believe publishing in a top conference is something reserved for the established members of the conference commun...
Nowadays most software applications have to deal with personal data, specially with the emergence of Web-based applications, where user profile information has become one of their main assets. Due to regulation laws and to protect the privacy of users, customers and companies; most of this information is considered private, and therefore convenient...
In the last years, a number of Open-Source Systems (OSS) have created parallel foundations, as legal instruments to better articulate the structure, collaboration and financial model for the project. Some examples are Apache, Linux, Mozilia, Eclipse or Django foundations. Nevertheless, foundations largely differ in the kind of mission they have and...
Web APIs have become first-class citizens on the Web, in particular, to provide a more unified access to heterogeneous data sources that organizations want to make publicly available. While REST APIs have become the norm to structure web APIs, they can be regarded as a server-side solution, offering default limited query capabilities and therefore...
The development of software projects entails significant implementation and collaboration activities, typically supported by tools such as issue trackers, code review tools and Version Control Systems. However, these tools only provide a partial view of the project and often lack of advanced querying mechanisms, thus hampering the analysis of the s...
Crowdsourcing has emerged as a novel paradigm where humans are employed to perform computational tasks. In the context of Domain-Specific Modeling Language (DSML) development, where the involvement of end-users is crucial to assure that the resulting language satisfies their needs, crowdsourcing tasks could be defined to assist in the language defi...
Since the early days of Model-driven Engineering (MDE), our community has been discussing the reasons why MDE had not quickly became mainstream. It is now clear the answer is a mix of technical and social factors, but among the former, the lack of maturity of MDE tools is often mentioned. The goal of this paper is to explore the question of whether...
REpresentational State Transfer (REST) has become the dominant approach to design Web APIs nowadays, resulting in thousands of public REST Web APIs offering access to a variety of data sources (e.g., open-data initiatives) or advanced functionalities (e.g., geolocation services). Unfortunately, most of these APIs do not come with any specification...
More and more individuals and organizations are making their data available online publicly, resulting in a growing market of technologies and services to help consume data and extract its real value. One of the several ways to publish data on the Web is via Web APIs. Unlike other approaches like RDF, Web APIs provide a simple way to query structur...
Context: GitHub, nowadays the most popular social coding platform, has become the reference for mining Open Source repositories, a growing research trend aiming at learning from previous software projects to improve the development of new ones. In the last years, a considerable amount of research papers have been published reporting findings based...
Conferences have become primary sources of dissemination in computer science research, in particular, in the software engineering and database fields. Assessing the quality, scope and community of conferences is therefore crucial for any researcher. However, digital libraries and online bibliographic services offer little help on this, thus providi...
Software development is becoming more and more collaborative, emphasizing the role of end-users in the development process to make sure the final product will satisfy customer needs. This is especially relevant when developing Domain-Specific Modeling Languages (DSMLs), which are modeling languages specifically designed to carry out the tasks of a...
Many open source projects stagnate after an initial push and end-up fading away. In this talk we will argue that, most of the time, the reason has nothing to do with the quality of the software itself but with the project's
inability to attract and support a healthy community around it. The community of contributors and also the users must take an...
In most areas of computer science (CS), and in the software domain in particular, international conferences are as important as journals as a venue to disseminate research results. This has resulted in the creation of rankings to provide quality assessment of conferences (specially used for academic promotion purposes) like the well-known CORE rank...
Software development processes are collaborative in nature. Neglecting the key role of end-users leads to software unlikely to satisfy their needs. This collaboration becomes specially important when creating Domain-Specific Modeling Languages (DSMLs), which are (modeling) languages specifically designed to carry out the tasks of a particular domai...
Software development processes are collaborative in nature. Neglecting the key role of end-users leads to software unlikely to satisfy their needs. This collaboration becomes specially important when creating Domain-Specific Modeling Languages (DSMLs), which are (modeling) languages specifically designed to carry out the tasks of a particular domai...
GitHub, one of the most popular social coding platforms, is the platform of reference when mining Open Source repositories to learn from past experiences. In the last years, a number of research papers have been published reporting findings based on data mined from GitHub. As the community continues to deepen in its understanding of software engine...
In the last years, there has been an increasing interest for Model-Driven Engineering (MDE) solutions in the Web. Web-based modeling solutions can leverage on better support for distributed management (i.e., the Cloud) and collaboration. However, current modeling environments and frameworks are usually restricted to desktop-based scenarios and ther...
Software development projects are notoriously complex and difficult to deal with. Several support tools such as issue tracking, code review and Source Control Management (SCM) systems have been introduced in the past decades to ease development activities. While such tools efficiently track the evolution of a given aspect of the project (e.g., bug...
The authors discuss important factors to consider when migrating software to the cloud and offer recommendations to maximize the chance of success.
Governance rules in software development projects help to prioritize and manage their development tasks, and contribute to the long-term sustainability of the project by clarifying how core and external contributors should collaborate in order to advance the project during its whole lifespan. Despite their importance, specially in Open Source Softw...
Most Open Source Software projects can only progress thanks to developers willing to voluntarily contribute. Therefore, their vitality and success largely depend on their ability to attract developers. Code hosting platforms like GitHub aim at making software development more collabo-rative and attractive for contributors by providing facilities su...
Software development projects face a lot of risks (requirements inflation, poor scheduling, technical problems, etc.). Underestimating those risks may put in danger the project success. One of the most critical risks is the employee turnover, that is the risk of key personnel leaving the project. A good indicator to evaluate this risk is to measure...
Software development projects face a lot of risks
(requirements inflation, poor scheduling, technical problems,
etc.). Underestimating those risks may put in danger the project
success. One of the most critical risks is the employee turnover,
that is the risk of key personnel leaving the project. A good
indicator to evaluate this risk is to measure...
Reporting bugs, asking for new features and in
general giving any kind of feedback is a common way to
contribute to an Open-Source Software (OSS) project. In GitHub,
the largest code hosting service for OSS, this feedback is typically
expressed as new issues for the project managed by an issuetracking
system available in each new project repository...
Reporting bugs, asking for new features and in general giving any kind of feedback is a common way to contribute to an Open-Source Software (OSS) project. This feedback is generally reported in the form of new issues for the project, managed by the so-called issue-trackers. One of the features provided by most issue-trackers is the possibility to d...
Developers in modern general-purpose programming languages create
reusable code libraries by encapsulating them in Applications Programming
Interfaces (APIs). Domain-specific languages (DSLs) can be developed as an alternative
method for code abstraction and distribution, sometimes preferable to
APIs because of their expressivity and tailored devel...
Most Open Source Software projects can only progress thanks to developers willing to voluntarily contribute. Therefore, their vitality and success largely depend on their ability to attract developers. Code hosting platforms like GitHub aim at making software development more collabo-rative and attractive for contributors by providing facilities su...
Open source software projects evolve thanks to a group of volunteers that
help in their development. Thus, the success of these projects depends on their
ability to attract (and keep) developers. We believe the openness of a project,
i.e., how easy is for a new user to actively contribute to it, can help to make
a project more attractive. To explor...
Model-Driven Engineering (MDE) is increasingly gaining acceptance in the software engineering community, however its adoption by the industry is far from successful. The number of companies applying MDE is still very limited. Although several case studies and reports have been published on MDE adoption in large companies, experience reports on smal...
The development of Web APIs has become a discipline that companies have to master to succeed in theWeb. The so-called API economy is pushing companies to provide access to their data by means of Web APIs, thus requiring web developers to study and integrate such APIs into their applications. The exchange of data with these APIs is usually performed...
Domain Specific Languages (DSL) are becoming increasingly more important with the emergence of Model-Driven paradigms. Most literature on DSLs is focused on describing particular languages, and there is still a lack of works that compare different approaches or carry out empirical studies regarding the construction or usage of DSLs. Several design...
Domain-Specific Modelling Languages (DSMLs) are high-level languages specially designed to perform tasks in a particular domain. When developing DSMLs, the participation of end-users is normally limited to providing domain knowledge and testing the resulting language prototypes. Language developers, which are perhaps not domain experts, are therefo...
JSON has become a very popular lightweigth format for data exchange. JSON is human readable and easy for computers to parse and use. However, JSON is schemaless. Though this brings some benefits (e.g., flexibility in the representation of the data) it can become a problem when consuming and integrating data from different JSON services since develo...
Software development processes are collaborative in nature. Neglecting the key role of end-users leads to software that does not satisfy their needs. This collaboration becomes specially important when creating Domain-Specific Modeling Languages (DSMLs), which are (modeling) languages specifically designed to carry out the tasks of a particular dom...
As cloud computing allows improving the quality of software and aims at reducing costs of operating software, more and more software is delivered as a service. However, moving from a software as a product strategy to delivering software as a service hosted in cloud environments is very ambitious. This is due to the fact that managing software moder...
Data rather than functionality are the sources of competitive advantage for Web2.0 applications such as wikis, blogs and social
networking websites. This valuable information might need to be capitalized by third-party applications or be subject to migration
or data analysis. Model-Driven Engineering (MDE) can be used for these purposes. However, M...
Domain Specific Languages (DSL) are becoming increasingly more important with the emergence of Model-Driven paradigms. Most literature on DSLs is focused on describing particular languages, and there is still a lack of works that compare different approaches or carry out empirical studies regarding the construction or usage of DSLs. Several design...
Resumen En los procesos de modernización o reingeniería de software se aplica generalmente el denominado modelo de herradura. En este mod-elo hay transformaciones verticales entre artefactos software de diferente nivel de abstracción y transformaciones horizontales en el mismo nivel de abstracción. A pesar de ser un modelo conocido y usado en numer...
Software development processes are becoming more collaborative, trying to integrate end-users as much as possible. The idea is to advance towards a community-driven process where all actors (both technical and nontechnical) work together to ensure that the system-to-be will satisfy all expectations. This seems specially appropriate in the field of...
Model-driven software modernization is a discipline in which model-driven development (MDD) techniques are used in the modernization of legacy systems. When existing software artifacts are evolved, they must be transformed into models to apply MDD techniques such as model transformations. Since most modernization scenarios (e.g., application migrat...
ContextA software artefact typically makes its functionality available through a specialized Application Programming Interface (API) describing the set of services offered to client applications. In fact, building any software system usually involves managing a plethora of APIs, which complicates the development process. In Model-Driven Engineering...
Model-driven software development (MDD) is gaining increasing acceptance, mainly because it can raise the level of abstraction and automation in software construction. MDD techniques (see the sidebar "MDD Basic Concepts"), such as metamodeling and model transformation, not only apply to the creation of new software systems but also can be used to e...