Guilherme Horta Travassos

Guilherme Horta Travassos
Federal University of Rio de Janeiro | UFRJ · Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia (COPPE)

D.Sc. Systems Engineering and Computer Science

About

390
Publications
134,054
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,089
Citations
Introduction
Additional affiliations
January 2003 - December 2009
Universidade Federal do Rio de Janeiro
January 1999 - present
University of Maryland, College Park
February 1996 - present
Federal University of Rio de Janeiro
Position
  • Professor (Full)
Description
  • Undergrad: Software Engineering; Object Oriented Software Development Grad: Experimental Software Engineering; Verification, Validation and Testing; Special Topics in Software Engineering
Education
September 1998 - August 2000
University of Maryland, College Park
Field of study
  • Experimental Software Engineering
March 1990 - March 1994
Federal University of Rio de Janeiro
Field of study
  • Systems Engineering and Computer Science
March 1986 - February 1990
Federal University of Rio de Janeiro
Field of study
  • Systems Engineering and Computer Science

Publications

Publications (390)
Data
Study package containing raw and analyzed data from the work entitled "On the Investigation of Empirical Contradictions - Aggregated Results of Local Studies on Readability and Comprehensibility of Source Code"
Article
Context : Context-awareness challenges the engineering of contemporary software systems and jeopardizes their testing. The variation of context represents a relevant behavior that deepens the limitations of available software testing practices and technologies. However, such software systems are mainstream. Therefore, researchers in non-academic se...
Article
Context Technical Debt (TD) contextualizes the technical decisions on shortcuts and workarounds during software development, positively and negatively influencing software evolution. However, TD still seems to confound with any issue occurring during software development, impacting its proper understanding and management in software projects. Goal...
Article
Context Security and performance are critical software non-functional requirements. Therefore, verification activities should be included in the development process to identify related defects, avoiding failures after deployment. However, there is a lack of understanding on factors moderating the security and performance verification, which jeopard...
Preprint
Full-text available
Software systems on the Internet of Things have driven the world into a new industrial revolution, bringing with it new features and concerns such as autonomy, continuous device connectivity, and interaction among systems, users, and things. Nevertheless, building these types of systems is still a problematic activity due to their specific features...
Preprint
Full-text available
Context: Context-aware contemporary software systems (CACSS) are mainstream. Furthermore, they present challenges for current engineering practices. These challenges are distinctively present when testing CACSS, as the variation of context deepens the limitations of available software testing practices and technologies. Objective: To understand how...
Preprint
Full-text available
Contemporary software systems (CSS), such as the internet of things (IoT) based software systems, incorporate new concerns and characteristics inherent to the network, software, hardware, context awareness, interoperability, and others, compared to conventional software systems. In this sense, requirements engineering (RE) plays a fundamental role...
Preprint
Full-text available
The Roadmap is performed in the context of a Ph.D. research in collaboration between the Experimental Software Engineering Group, from the Systems Engineering and Computing Program of the Federal University of Rio de Janeiro (COPPE/UFRJ) and the Laboratory of Industrial and Human Automation Control, Mechanical engineering and Computer Science (LAMI...
Preprint
Full-text available
Context: Security and performance (S&P) are critical non-functional requirements on software systems. Therefore, verification activities should be included in the development process to identify related defects and avoiding S&P failures after deployment. However, the state of the practice of S&P verification is unclear, challenging academia to offe...
Preprint
Full-text available
We conducted a set of Rapid Reviews to characterize Internet of Things facets. We formatted a generic meta-protocol that was instantiated for each of the six facets presented (Connectivity, Things, Behavior, Smartness, Interactivity, and Environment)and considering the issue of Security, one of the most important and frequent challenges in the cont...
Article
Context: The relevance of Requirements Engineering (RE) research to practitioners is vital for a long-term dissemination of research results to everyday practice. Some authors have speculated about a mismatch between research and practice in the RE discipline. However, there is not much evidence to support or refute this perception. Objective: This...
Conference Paper
The IoT paradigm seeks to support practical solutions to solve problems in the real world and several domains such as education, health, and mobility. As with traditional systems, requirements engineering represents a fundamental part of the Internet of Things (IoT) based software systems' quality development. However, the IoT systems are complex w...
Preprint
The relevance of Requirements Engineering (RE) research to practitioners is vital for a long-term dissemination of research results to everyday practice. Some authors have speculated about a mismatch between research and practice in the RE discipline. However, there is not much evidence to support or refute this perception. This paper presents the...
Conference Paper
Full-text available
With the advent of the Internet of Things paradigm, more and more devices and sensors are physically distributed to accomplish many tasks in our daily lives. Edge computing has emerged as a way to migrate part of the storage , data processing, and computation capabilities to the edge devices. Such a migration aims at addressing the challenges regar...
Conference Paper
Full-text available
Sistemas de software contemporâneos (internet das coisas, indústria 4.0, cidades inteligentes, dentre outros) incorporam novas preocupações e características em sua construção e inerentes à rede, software, hardware, sensibilidade ao contexto, e interoperabilidade. Nesse sentido, a engenharia de requisitos (ER) desempenha um papel fundamental para g...
Conference Paper
Full-text available
Technical Debt (TD) and Technical Debt Management (TDM) are terms that are receiving increasing attention from practitioners and researchers. They reflect a concern on how shortcuts taken during the software development process can incur negative impacts on software maintainability and how practitioners may use tools and techniques to mitigate the...
Conference Paper
Full-text available
Background: Technical debt (TD) has been an important focus of attention in recent years by the scientific community and the software industry. TD is a concept for expressing the lack of internal software quality that directly affects its capacity to evolve. Some studies have focused on the TD industry perspective. Aims: To characterize how the sof...
Article
Full-text available
Context Productivity refers to the rate at which a company produces goods, and its observation takes into account the number of people and the amount of other necessary resources to deliver such goods. However, it is not clear how to observe productivity and what influences it when the product is software since most effort spent in software develop...
Chapter
Research synthesis represents an essential element of the knowledge accumulation and application process, which is indispensable to any scientific field such as software engineering. In the case of the software engineering domain, the evidence is produced in both quantitative and qualitative forms, which challenges their combined analysis. Research...
Chapter
Full-text available
Empirical methods like experimentation have become a powerful means to drive the field of software engineering by creating scientific evidence on software development, operation, and maintenance, but also by supporting practitioners in their decision-making and learning. Today empirical methods are fully applied in software engineering. However, th...
Chapter
Full-text available
The software startups are a particular scenario where Technical Debt (TD) may occur in an intentional or unintentional way. However, the current knowledge about the perception and management of TD are mainly related to mature software organizations. This chapter contextualizes the startups’ characteristics that can lead to TD incurrence, the concep...
Book
Full-text available
This volume celebrates the career of Prof. Ricardo de Almeida Falbo on the occasion of his formal retirement. The volume includes reflections from collaborators and former students, casting light on his academic work and contributions. The chapters show how Falbo's original contributions have influenced a number of developments in the application o...
Preprint
Full-text available
Empirical methods like experimentation have become a powerful means to drive the field of software engineering by creating scientific evidence on software development, operation, and maintenance, but also by supporting practitioners in their decision making and learning. Today empirical methods are fully applied in software engineering. However, th...
Conference Paper
Full-text available
The user interfaces promote the interaction with the software system to achieve the users' goals. In this way different types of interaction are provided, such as direct manipulation, web UI or tangible interaction. These interfaces have evolved, including artificial intelligence and adaptation mechanisms to answer the evolution of the technologica...
Conference Paper
Full-text available
Chatbots make use of natural language processing to establish dialogues with people. They can be used as channels that facilitate communication between humans and entities (companies, social projects, research projects, hospitals, schools/universities, etc.). The PipaBot is a chatbot that was built to facilitate the communication between the mother...
Conference Paper
Technical debt (TD) is a still incipient subject adopted by software practitioners, despite being an increasing interest topic among researchers. This work aimed to produce a summary of the central concepts related to TD, including the software technologies currently available to manage it. A survey with practitioners from Brazilian software organi...
Conference Paper
Full-text available
Context: Software inspection is a static and formal verification technique that aims to detect defects in the earlier stage of software development. Both academic and industrial professionals have widely applied software inspections since they reduce by up to 60% the number of defects in artifacts produced in the software development cycle, being a...
Conference Paper
Contemporary Software Systems, such as Ubiquitous Systems, Context-Aware Systems, and Internet of Things (IoT) led to a new technological revolution, with characteristics like autonomy, seamless connectivity and interaction. The engineering of such systems is challenging due to their novelty and a possible lack of software technologies to deal with...
Conference Paper
Full-text available
Contemporary Software Systems (CSS) embraces the Internet of Things (IoT) paradigm. Such a paradigm has allowed new technologies, and it is leading to more autonomous and smarter software systems in the fourth industrial revolution. The demand for CSS has grown considerably, highlighting new challenges in their engineering to assure final quality....
Article
Full-text available
Contemporary software systems, such as the Internet of Things (IoT), Industry 4.0, and Smart Cities represent a technology changing that offer challenges for their construction since they are calling into question our traditional form of developing software. They are a promising paradigm for the integration of devices and communications technologie...
Article
Full-text available
The Internet of Things (IoT) is a new technological paradigm that brings together the physical and virtual worlds to provide software systems everywhere through daily life objects. The IoT can transform how we interact with the environment surrounding us, leading to a significant multidisciplinary technological shift. However, since it is a new fie...
Article
JavaScript is one of the most used programming languages for front-end development of Web applications. The increase in complexity of front-end features brings concerns about performance, especially the load and execution time of JavaScript code. In this paper, we propose an evolutionary program improvement technique to reduce the size of JavaScrip...
Article
Technical debt (TD) is receiving more and more attention to software engineering. Although it was initially used as a communication tool for technical and non-technical stakeholders, nowadays this concept supports the improvement of the software’s internal quality. Despite the increasing number of studies regarding TD and its management, only a few...
Article
Context Context-aware software systems can interact with different devices to complete their tasks and act according to the context, regardless of their development and organizational differences. Interoperability is a big challenge in the engineering of such systems. Objective To discuss how interoperability has been addressed in context-aware so...
Conference Paper
Internet of Things is a technology paradigm that enables the interaction of devices and communications technologies with embedded software, integrating different areas and multidisciplinarity. It is built from smart objects, that relies on things interaction and information exchange, which can lead to development challenges. This paper presents res...
Conference Paper
Full-text available
As infecções parasitárias afetam mais de um bilhão de pessoas em 149 países em desenvolvimento e, para diagnosticá-las, utiliza-se um processo lento, capaz de afetar negativamente a saúde dos profissionais envolvidos. Visando este problema, propõe-se uma infraestrutura de baixo custo com o objetivo de transformar microscópios ópticos comuns em digi...
Article
Full-text available
Abstract Genetic Improvement is an area of Search Based Software Engineering that aims to apply evolutionary computing operators to the software source code to improve it according to one or more quality metrics. This article describes challenges related to experimental studies using Genetic Improvement in JavaScript (an interpreted and non-typed l...
Article
Full-text available
Abstract Context Kanban is increasingly being used in diverse software organizations. There is extensive research regarding its benefits and challenges in Software Engineering, reported in both primary and secondary studies. However, these results have not been synthesized yet. Goal to investigate and identify the actual benefits and challenges of...
Conference Paper
Security and performance are critical non-functional requirements for software systems. Thus, it is crucial to include verification activities during software development to identify defects related to such requirements, avoiding their occurrence after release. Software verification, including testing and reviews, encompasses a set of activities th...
Conference Paper
Maintenance is often the most expensive and time-consuming of all software system lifecycle phases. Technical Debt (TD) refers to technical decisions on shortcuts and workarounds taken during the software development. It affects the internal quality of software. Therefore, software maintenance can be difficult when the TD is not perceived or manage...
Conference Paper
u>Background: Software product quality assurance affects the acceptance of releases. The one dimensional observational perspective of current software product quality (SPQ) models constrains their use in continuous software engineering environments. Aims: To investigate multidimensional relationships between software product characteristics and bui...
Conference Paper
Full-text available
Contemporary software systems, such as the Internet of Things (IoT), Industry 4.0, and Smart Cities are new technology paradigms that offer challenges for their construction since they are calling into question our traditional form of developing software. They are a promising paradigm for the integration of devices and communications technologies....
Chapter
Full-text available
Software release planning is crucial to software projects that adopt incremental development. Open source projects depend on their globally distributed maintainers’ communities who share project information, usually described in the software project repository as issues, to plan the contents and timing of the next releases. This paper introduces an...
Conference Paper
Full-text available
Resumo. A qualidade de um produto de software deve ser vista de forma ampla, considerando-se quatro dimensões importantes: Engenharia de Software, Serviço, Qualidade do Produto e Organizacional. Apesar de existirem normas e modelos que tratem elementos destas dimensões, não há nenhum modelo que avalie produtos de software considerando estas quatro...
Article
Full-text available
The evidence-based software engineering approach advocates the use of evidence from empirical studies to support the decisions on the adoption of software technologies by practitioners in the software industry. To this end, many guidelines have been proposed to contribute to the execution and repeatability of literature reviews, and to the confiden...
Conference Paper
The evidence-based software engineering approach advocates the use of scientific evidence by software engineers to support the adoption of software technologies in industrial software development and maintenance projects. Aside from the unavailability of scientific knowledge in industrial settings and the time required to acquire evidence in the so...
Conference Paper
Technical debt (TD) is receiving more and more attention in soft-ware engineering. Although it was initially used as a communication tool for technical and non-technical stakeholders, nowadays this concept supports the improvement of software’s internal quality. Despite the increasing number of studies regarding TD and its management, only a few ar...
Article
Full-text available
Background: Coding guidelines can be contradictory despite their intention of providing a universal perspective on source code quality. For instance, five attributes (code size, semantic complexity, internal documentation, layout style, and identifier length) out of 13 presented contradictions regarding their influence (positive or negative) on the...
Article
Full-text available
Software testing is an important activity in the software development life cycle. Several previous studies reported the results of surveys on software testing practices among practitioners from different countries. In this paper, we analyze these surveys aiming to get their main questions, and replicate a survey with practitioners from Brazil and U...
Conference Paper
Full-text available
Background: In the era of digitalization, context awareness has become more important to allow software systems adaptation. Therefore, the quality assurance of such systems must consider the variation of context. However, there is a lack of software quality technologies doing so, which can increase the risk of failure of these systems. Objective/Ai...
Conference Paper
The development of innovative software usually happens in an environment of high uncertainty conditions regarding the problem, the solution, and business issues. Thus, the software needs to be delivered fast and iteratively to the intended customers, which can quickly experiment the ideas developed for the product and give adequate feedback regardi...
Conference Paper
Full-text available
Several models of software testing effort estimation take into account intrinsic characteristics for the whole software development, presenting no evidence of how they effectively affect the test effort. Also, most of such estimation models only estimate the effort regarding the execution of tests. However, in software testing projects the activity...
Conference Paper
Full-text available
Context: Several code guidelines aim at providing a common perspective on the readability and comprehensibility of source code. However, in many cases, they are contradictory on how to improve these quality characteristics. Objective: To analyze the influence of three contradictory source code attributes-indentation spacing, identifier length and c...
Article
Full-text available
The relevance of Requirements Engineering (RE) research to practitioners is a prerequisite for problem-driven research in the area and key for a long-term dissemination of research results to everyday practice. To better understand how industry practitioners perceive the practical relevance of RE research, we have initiated the RE-Pract project, an...
Article
Context-Aware Software Systems (CASS) use environmental information to provide better service to the systems’ actors to fulfill their goals. Testing of ubiquitous software systems can be challenging since it is unlikely that, while designing the test cases, the tester can identify all possible context variations. A quasi-Systematic Literature Revie...
Conference Paper
Full-text available
Interoperability is a critical software system attribute since it enables different systems interaction to support the society’s daily activities. The emerging technologies composing systems-of-systems, such as smart objects, internet of things, context-aware and pervasive systems have increased its importance and scope. To better understand the ev...
Article
Context: Current software systems have increasingly implemented context-aware adaptations to handle the diversity of conditions of their surrounding environment. Therefore, people are becoming used to a variety of context-aware software systems (CASS). This context-awareness brings challenges to the software construction and testing because the con...
Article
Full-text available
Context: Surveys constitute an important tool to capture a large-scale snapshot of the state of the practice. Apparently trivial to adopt, surveys hide, however, several pitfalls that might hinder rendering the result valid and, thus, useful. Goal: We aim at providing an overview of main pitfalls in software engineering surveys and report on practi...
Conference Paper
Full-text available
Context-awareness feature has been widely employed in the last years due to their usefulness to enhance systems functional reliability and user experience. Different software and hardware technologies can be integrated and used to capture context information, without user intervention. However, the heterogeneity of technology makes interoperability...
Conference Paper
Full-text available
An adequate way of making software organizations to remain competitive is to ensure their innovative capacity and the continuous increasing of their software process productivity with quality. Indeed, the ability on increasing the software productivity relies on among other issues in the organization's measurement and prediction capacity. Productiv...
Conference Paper
Software testing aims to reveal failures due to the lack of conformity (defects) among functional and non-functional requirements and the implemented system. Thus, defects can be identified and fixed, improving software quality. However, despite several works emphasizing the importance of non-functional requirements (NFRs), there is an insufficient...
Conference Paper
Full-text available
Software Product Lines are usually specified using feature models. A hierarchically arranged set of features with different relationships among them represents a feature model. However, there is a lack of techniques to support the detection of semantic defects in feature models. In this context, it was recently developed FMCheck, a checklist-based...
Conference Paper
Full-text available
Use cases specifications are artifacts employed in all stages of software development, from the requirements elicitation to implementation. During this process, issues related to ambiguity, redundancy, inconsistency, and incompleteness can affect these specifications. These issues can harm software engineers' understanding and, consequently, affect...