Javier Gonzalez-Huerta

Javier Gonzalez-Huerta
Blekinge Institute of Technology | BTH · Laboratory of Software Engineering (SERL)

PhD in Computer Science

About

57
Publications
17,872
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
316
Citations
Introduction
I received my Ph.D. in Computer Science from the Universitat Politècnica de Valencia (UPV) in 2014. My research interests are mainly (but not limited to): Software Architecture, Model-Driven Engineering , Cloud Computing, Mobile Applications Development, Software Quality, Software Product Lines, Software Measurement, Empirical Research in Software Engineering, Usability and User Experience.
Additional affiliations
February 2015 - March 2016
Université du Québec à Montréal
Position
  • PostDoc Position
March 2014 - March 2015
Universitat Politècnica de València
Position
  • PostDoc Position
March 2011 - February 2014
Universitat Politècnica de València
Position
  • PhD Student

Publications

Publications (57)
Preprint
Internet of Things (IoT) is a growing technology that relies on connected 'things' that gather data from peer devices and send data to servers via APIs (Application Programming Interfaces). The design quality of those APIs has a direct impact on their understandability and reusability. This study focuses on the linguistic design quality of REST API...
Article
Internet of Things (IoT) is a growing technology that relies on connected ‘things’ that gather data from peer devices and send data to servers via APIs (Application Programming Interfaces). The design quality of those APIs has a direct impact on their understandability and reusability. This study focuses on the linguistic design quality of REST API...
Article
Context: The concept of software craftsmanship has early roots in computing, and in 2009, the Manifesto for Software Craftsmanship was formulated as a reaction to how the Agile methods were practiced and taught. But software craftsmanship has seldom been studied from a software engineering perspective. Objective: The objective of this article is to...
Article
Full-text available
Context: Technical debt (TD) discusses the negative impact of sub-optimal decisions to cope with the need-for-speed in software development. Code technical debt items (TDI) are atomic elements of TD that can be observed in code artifacts. Empirical results on open-source systems demonstrated how code-smells, which are just one type of TDIs, are int...
Preprint
Full-text available
During the development and maintenance of software-intensive products or services, we depend on various assets. These assets are important to the feasibility of the project and influence product's final quality. However, despite their central role in the software development process, little thought is yet invested into what assets eventually are, o...
Article
Context: Agile methods in offshored projects have become increasingly popular. Yet, many companies have found that the use of agile methods in coordination with companies located outside the regions of early agile adopters remains challenging. India has received particular attention as the leading destination of offshoring contracts due to signific...
Preprint
Full-text available
Context: Developing software-intensive products or services involves utilising many artefacts that are either part of the offering or part of enabling their development. These artefacts, if valuable and used more than once by the development organisation, can be seen as assets such as test cases, code, requirements, and documentation. As such, asse...
Preprint
The COVID-19 outbreak has admittedly caused a major disruption worldwide. The interruptions to production, transportation and mobility have clearly had a significant impact on the well-functioning of the global supply and demand chain. But what happened to the companies developing digital services, such as software? Were they interrupted as much or...
Preprint
Background: Software project management courses are becoming popular for teaching software engineering process models and methods. In order to be effective, this approach should be properly aligned with the learning outcomes. Common misalignments are caused by using an incorrect degree of realism or inappropriate support. Objective: Design, impleme...
Preprint
Full-text available
Context: Technical Debt (TD) discusses the negative impact of sub-optimal decisions to cope with the need-for-speed in software development. Code Technical Debt Items (TDI) are atomic elements of TD that can be observed in code artefacts. Empirical results on open-source systems demonstrated how code-smells, which are just one type of TDIs, are int...
Conference Paper
Code evolution, whether related to the development of new features, bug fixing, or refactoring, inevitably changes the quality of the code. One particular type of such change is the accumulation of Technical Debt (TD) resulting from sub-optimal design decisions. Traditionally, refactoring is one of the means that has been acknowledged to help to ke...
Conference Paper
Context The micro-services architectural pattern advocates for the partitioning of functionality into loosely coupled services, which should be backward compatible, to enable independent upgrades. Deprecation is commonly used as a tool to manage multiple versions of methods or services. However, deprecation carries a cost in that tests might be dup...
Chapter
With the growing interest of adopting agile methods in offshored process, many companies realized that the use of agile methods and practices in companies located outside the location of early adopters of agile methods may be challenging. India, the main destination of offshoring contracts, have received particular attention, due to the big cultura...
Article
Global software engineering has changed the way software is developed today. To address the new challenges, many universities have launched specially tailored courses to train young professionals to work in globally distributed projects. However, a mere acknowledgment of the geographic, temporal, and cultural differences does not necessarily lead t...
Article
Full-text available
Today’s business processes become increasingly complex and often cross the boundaries of the organizations. On the one hand, to support their business processes, modern organizations use enterprise information systems that need to be aware of the organizations’ processes and contexts. Such systems are called Process-Aware Information System (PAIS)....
Book
This book constitutes the proceedings of the 6th Conference on Information Technologies and Communication of Ecuador “TIC-EC”, held in Riobamba City from November 21 to 23, 2018, and organized by Universidad Nacional del Chimborazo (UNACH) and its Engineering School, and the Ecuadorian Corporation for the Development of Research and Academia (CEDIA...
Conference Paper
can help students experience a reality context and understand complex concepts required to accomplish practitioners’ tasks. The present study aims to investigate the software engineering students’ perception about the usefulness of the Planning Poker technique in relation to their understanding of the relative estimation concept. We conducted a sim...
Conference Paper
Full-text available
In this paper, we present experiences from eight years of developing a financial transaction engine, using what can be described as an integration-test-centric software development process. We discuss the product and the relation between three different categories of its software and how the relative weight of these artifacts has varied over the ye...
Conference Paper
Background: Software project management courses are becoming popular for teaching software engineering process models and methods. However, in order to be effective, this approach should be properly aligned to the learning outcomes. Common misalignments are caused by using a correct degree of realism or an appropriate instruction level. Objective:...
Conference Paper
Practitioners on the area of mobile application development usually rely on set of app-related success factors, the majority of which are directly related to their economical/business profit (e.g., number of downloads, or the in-app purchases revenue). However, gathering also the user-related success factors, that explain the reasons why users choo...
Article
Full-text available
Identifier lexicon may have a direct impact on software understandability and reusability and, thus, on the quality of the final software product. Understandability and reusability are two important characteristics of software quality. REpresentational State Transfer (REST) style is becoming a de facto standard adopted by software organizations to...
Conference Paper
Full-text available
Business Process Model and Notation (BPMN) is becoming a de-facto standard for the specification of organizational business processes. In most cases, business processes are modeled in order to build software that may support or automate specific parts of those processes. In this work, we aim at refining BPMN models in order to automatically derive...
Article
Organizations build information systems to support their business processes. Precise modeling of an organization’s processes is a prerequisite for building information systems that support those processes. Our goal is to help business analysts produce detailed models of the business processes that best reflect the needs of their organizations. To t...
Article
Full-text available
Service-based cloud applications are software systems that continuously evolve to satisfy new user requirements and technological changes. This kind of applications also require elasticity, scalability, and high availability, which means that deployment of new functionalities or architectural adaptations to fulfill service level agreements (SLAs) s...
Chapter
Service Level Agreements (SLAs) specify the strict terms under which cloud services must be provided. The assessment of the quality of services being provided is critical for both clients and service providers. In this context, stakeholders must be capable of monitoring services delivered as Software as a Service (SaaS) at runtime and of reporting...
Chapter
Full-text available
Customer experience management (CEM) denotes a set of practices, processes, and tools, that aim at personalizing customer’s interactions with a company according to customer’s needs and desires (Weijters et al., J Serv Res 10(1):3–21, 2007 [29]). E-business specialists have long realized the potential of ubiquitous computing to develop context-awar...
Conference Paper
Full-text available
Flexible processes emerged to provide flexibility to business process execution. A flexible process is not static and can have several different executions, that is influenced by the current situation. In this context, the decision-making is placed in the hands of any knowledge worker during the execution, who decides which tasks and in which order...
Conference Paper
Full-text available
Identifier lexicon has a direct impact on software understand- ability and reusability and, thus, on the quality of the final software product. Understandability and reusability are two important character- istics of software quality. REST (REpresentational State Transfer) style is becoming a de facto standard adopted by many software organisa- tio...
Conference Paper
Full-text available
Cloud computing represents a new trend to provide software services. In order to deliver these services there are certain quality levels that should be considered. The provided services need to comply with a set of con-tract terms and non-functional requirements specified by a service level agreement (SLA). In addition, to support the fulfillment o...
Conference Paper
Full-text available
Software Product Line development involves the explicit management of variability that has to be encompassed by the software artifacts, in particular by the software architecture. Architectural variability has to be not only sup-ported by the architecture but also explicitly represented. The Common Variabil-ity Language (CVL) allows to represent su...
Conference Paper
Full-text available
Cloud computing is a paradigm that is transforming the computing in-dustry and is receiving more attention from the research community. The incre-mental deployment of cloud services is particularly important in agile develop-ment of cloud services, where successive cloud service increments must be inte-grated into existing cloud service architectur...
Conference Paper
Full-text available
Requirements engineering is a key activity on any software development project. In Software Product Line development, this activity is even more important since requirements may encompass commonality and variability. Furthermore, a requirement specification usually is composed by more than one model. In this context it is necessary to specify the r...
Article
Software architectures should be evaluated during the early stages of software development in order to verify whether the non-functional requirements (NFRs) of the product can be fulfilled. This activity is even more crucial in software product line (SPL) development, since it is also necessary to identify whether the NFRs of a particular product c...
Article
Full-text available
The specification of requirements is a key activity for achieving the goals of any software project and it has long been established and recognized by researchers and practitioners. Within Software Product Lines (SPL), this activity is even more critical owing to the need to deal with common, variable, and product-specific requirements, not only fo...
Conference Paper
In recent years, cloud computing has emerged as an option to use computing resources as a solution for the global economic crisis, namely, a cheaper way to have IT resources. Thus, many companies have started to migrate their systems to cloud infrastructures, without the required support to carry out this process. In this position paper, we provide...
Conference Paper
Full-text available
Software architecture derivation and evaluation are complex and error prone activities that still represent an open problem with many challenges and opportunities where model-driven software development can play a leading role. In software product line development, the use of model-driven principles could help by providing a richer semantic represe...
Conference Paper
Full-text available
Cloud computing represents a new trend to provide software services. In order to deliver these services there are certain quality levels that should be considered. The provided services need to comply with a set of contract terms and non-functional requirements specified by a service level agreement (SLA). In addition, to support the fulfillment of...
Conference Paper
Full-text available
Cloud computing is a paradigm that is transforming the way in which organization acquire computational resources and is receiving more attention from the research community. The incremental deployment of cloud services is particularly important in agile development of cloud services, where successive cloud service increments must be integrated into...
Conference Paper
Full-text available
Software architectures are the key to achieving the non-functional requirements (NFRs) in any software project. In software product line (SPL) development, it is crucial to identify whether the NFRs for a specific product can be attained with the built-in architectural variation mechanisms of the product line architecture, or whether additional arc...
Conference Paper
Full-text available
The importance of Requirements Engineering within software development has long been established and recognized by researchers and practitioners. Within Software Product Lines (SPL), this activity is even more critical because it needs to cope with common, variable, and product-specific requirements not only for a single product but for the whole s...
Conference Paper
Full-text available
Product architecture derivation is a crucial activity in Software Product Line (SPL) development since any inadequate decisions made during the architecture design directly impact on the non-functional properties of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is st...
Chapter
Full-text available
Product architecture derivation is a crucial activity in software product line (SPL) development since an inadequate decision during the architecture design directly impacts the quality of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is still a need for approaches t...
Conference Paper
Full-text available
Developing variant-rich software systems through the application of the software product line approach requires the management of a wide set of requirements. However, in most cases, the focus of those requirements is limited to the functional requirements. The non-functional requirements are often informally defined and their management does not pr...
Conference Paper
The development of complex software systems following the Model-Driven Engineering (MDE) approach relies on the use of different models for describing the system (e.g., structure, behavior). These models should be specified first separately but then their inter-relationship must be established since they represent complementary aspects of the syste...
Conference Paper
Full-text available
Product architecture derivation is a crucial activity in software product line (SPL) development since an inadequate decision during the architecture design directly impacts the quality of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is still a need for approaches t...
Conference Paper
Full-text available
Resumen. La aplicación del enfoque de Líneas de Producto Software está aplicándose, a la par que extendiéndose, de manera notable en la industria. Su adopción incrementa la reutilización de diferentes activos durante el proceso de desarrollo de software. En muchos ámbitos la aplicación de este enfoque va de la mano de procesos de desarrollo dirigid...
Conference Paper
Full-text available
The design of model transformations is a key aspect in model-driven development processes and is even more important when alternative transformations exist. The transformation designer must be able to identify which alternative transformations produce models with the desired quality attributes. This paper presents design guidelines for defining mod...
Article
This paper presents an architecture to perform model-driven transformations that are guided by quality attributes. The main goal of the architecture is to define a set of artifacts and a process for specifying and executing model transformations in which the selection of alternative transformations is done based on quality attributes. Specifically,...

Network

Cited By

Projects

Projects (2)
Archived project
The production of quality software, on time, and within budget, remains an open problem of Software Engineering that has been addressed from different approaches. An industrial approach to this problem is to use Software Product Lines (SPL). However, current works on SPL usually focus on a single system view (the variability view). One disadvantage of this approach is that this single view even extended with non-functional properties cannot properly define the extent of a software product line. In addition, this approach assumes a small number of variants perfectly defined as instances of a feature model. However, this situation is not always possible. The variants are beyond the act of monotonically adding/removing functionality to the product line architecture. The objective of this project is to define and implement a technological framework for developing high-quality software product lines. This framework is based on the existence of several models or system views (e.g., functionality, variability, quality, architectural transformations) with relationships among them. This approach implies the parameterization of the software production process by means of a Multimodel which is able to capture the different views of the product and the relationships among them. This approach leads us to re-consider the problems related to the intra (e.g., consistence of the variability model) and inter-model consistency (e.g., correspondence between the variability and quality models) in a broader and realistic context.
Project
Cloud Computing represents a fundamental shift in how cloud applications should be built, deployed, executed, and monitored. To be competitive in the current economy organizations, especially SMEs, should be able to quickly offer new cloud services ensuring a high-level of quality and flexibility meanwhile satisfying the customers changing needs. Current approaches for developing cloud services mainly focus on the functionality to be offered and on the technology to be used rather than on the value to be provided to the customers. The aim of this project is to provide a framework to support model-driven incremental cloud service development oriented to the customer’s value. Specifically, we are investigating how software development teams can create, deploy, reconfigure, and monitor cloud services incrementally by using principles and practices established in model-driven development, agile development and business process improvement. In order to achieve this objective, we set up a multidisciplinary research team composed by researchers from the fields of Software Engineering and Business Management. Furthermore, 12 national and multinational companies participate in this project as promoter and observer entities to provide realistic scenarios where to identify relevant problems and to propose solutions suitable for agile development environments and to allow a smoothly incremental adoption of the technology to be developed within this project.