Andres Diaz-Pace

Andres Diaz-Pace
National University of the Center of the Buenos Aires Province | UNICEN · Instituto de Sistemas Tandil (ISISTAN)

About

101
Publications
24,728
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
827
Citations
Citations since 2017
28 Research Items
504 Citations
2017201820192020202120222023020406080
2017201820192020202120222023020406080
2017201820192020202120222023020406080
2017201820192020202120222023020406080
Introduction
Skills and Expertise

Publications

Publications (101)
Article
Software systems naturally evolve, and this evolution often brings design problems that contribute to system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies among packages. The early detection of smells is essential for software engineers to plan ahead for ma...
Conference Paper
Full-text available
Several automated techniques for assisting engineers in creating mappings between source code (e.g., classes) and architecture elements (e.g., modules) have been proposed. They are generally assessed via precision and recall metrics. However, these metrics can only be evaluated post-mortem, i.e., once an expert created and validated all the mapping...
Chapter
Natural language is widely used to write software requirements. Generally, software designers start with textual requirements and realize them into a first architectural design. A common problem in this transition is the conceptual gap between the requirements space and the software architecture space. To assist designers in the task, we propose an...
Article
The COVID-19 pandemic has affected all aspects of society, bringing health hazards and posing challenges to public order, governments, and mental health. This study examines the stages of crisis response and recovery as a sociological problem by operationalising a well-known model of crisis stages in terms of a psycho-linguistic analysis. Based on...
Article
Purpose The purpose of this paper is to present an approach for forecasting mental health conditions and emotions of a given population during the COVID-19 pandemic in Argentina based on social media contents. Design/methodology/approach Mental health conditions and emotions are captured via markers, which link social media contents with lexicons....
Preprint
Full-text available
Purpose. We present an approach for forecasting mental health conditions and emotions of a given population during the COVID-19 pandemic based on language expressions used in social media. This approach permits anticipating high prevalence periods in short- to medium-term time horizons. Design. Mental health conditions and emotions are captured via...
Chapter
Location-based recommender systems (LBRS) suggest friends, events, and places considering information about geographical locations. These recommendations can be made to individuals but also to groups of users, which implies satisfying the group as a whole. In this work, we analyze different alternatives for POI group recommendations based on a mult...
Article
Code smells are symptoms in the source code that could help to identify architectural problems. However, developers may feel discouraged to analyze multiple smells if they are not able to focus their attention on a small set of source code locations. Unfortunately, current techniques fall short in assisting developers to prioritize smelly locations...
Article
Full-text available
Software requirements are often described in natural language because they are useful to communicate and validate. Due to their focus on particular facets of a system, this kind of specifications tends to keep relevant concerns (also known as early aspects) from the analysts’ view. These concerns are known as crosscutting concerns because they appe...
Article
Feature models are a well-known formalism for capturing variability, commonalities and configuration rules of software systems. These models are a compact representation of the set of products in a software product line or configurations of a system at runtime, in terms of features and logical relationships among them. The feature model optimizatio...
Article
Providing recommendations to groups of users has become a promising research area, since many items tend to be consumed by groups of people. Various techniques have been developed aiming at making recommendations to a group as a whole. Most works use aggregation techniques to combine preferences, recommendations or profiles. However, satisfying all...
Article
Full-text available
Los code smells son síntomas en el código fuente que pueden revelar problemas de diseño. Para poder solucionar un smell deben aplicarse un conjunto de refactorings que permitan restructurar el sistema. Sin embargo, al aplicar un conjunto de refactorings en un orden determinado, pueden surgir problemas que impiden que éstos se apliquen. Por ejemplo,...
Article
Full-text available
Context: A common practice in JavaScript development is to ship and deploy an application as a large file, called bundle, which is the result of combining the application code along with the code of all the libraries the application depends on. Despite the benefits of having a single bundle per application, this approach leads to applications being...
Article
Full-text available
Engineering activities often produce considerable documentation as a by-product of the development process. Due to their complexity, technical analysts can benefit from text processing techniques able to identify concepts of interest and analyze deficiencies of the documents in an automated fashion. In practice, text sentences from the documentatio...
Preprint
Smart cities are a growing trend in many cities in Argentina. In particular, the so-called intermediate cities present a context and requirements different from those of large cities with respect to smart cities. One aspect of relevance is to encourage the development of applications (generally for mobile devices) that enable citizens to take advan...
Preprint
Full-text available
Software systems naturally evolve, and this evolution often brings design problems that cause system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies among modules. The early detection of these smells is important for developers, because they can plan ahead fo...
Preprint
Full-text available
The degree of dependencies among the modules of a software system is a key attribute to characterize its design structure and its ability to evolve over time. Several design problems are often correlated with undesired dependencies among modules. Being able to anticipate those problems is important for developers, so they can plan early for mainten...
Article
Full-text available
Code smells are a popular mechanism for identifying structural design problems in software systems. Several tools have emerged to support the detection of code smells and propose some refactorings. However, existing tools do not guarantee that a smell will be automatically fixed by means of refactorings. This article presents Bandago, an automated...
Article
Full-text available
The manifestation of code anomalies in software systems often indicates symptoms of architecture degradation. Several approaches have been proposed to detect such anomalies in the source code. However, most of them fail to assist developers in prioritizing anomalies harmful to the software architecture of a system. This article presents an investig...
Article
Full-text available
A code smell is a symptom in the source code that helps to identify a design problem. Several tools for detecting and ranking code smells according to their criticality to the system have been developed. However, existing works assume a centralized development approach, which does not consider systems being developed in a distributed fashion. The m...
Conference Paper
Full-text available
A key challenge of software architecture design is how to satisfy quality-attribute requirements, which often conflict with each other. This is usually a complex task, because there are several candidates for architectural solutions meeting the same requirements, and quality-attribute tradeoffs of those solutions need to be considered by the archit...
Conference Paper
Full-text available
A key aspect of software architecture design is to satisfy quality-attribute requirements, such as performance or modifiability. This is usually a complex task, because there are often several candidate solutions meeting the same requirements, and the quality-attribute tradeoffs of those solutions need to be considered by architects. In previous wo...
Article
Full-text available
Providing recommendations to groups of users has become popular in many applications today. Although several group recommendation techniques exist, the generation of items that satisfy all group members in an even way still remains a challenge. To this end, we have developed a multi-agent approach called PUMAS-GR that relies on negotiation techniqu...
Article
Java access modifiers regulate interactions among software components. In particular, class modifiers specify which classes from a component are publicly exposed and therefore belong to the component public interface. Restricting the accessibility as specified by a programmer is key to ensure a proper software modularity. It has been said that fail...
Conference Paper
Full-text available
Architectural problems constantly affect evolving software projects. When not properly addressed, those problems can hinder the longevity of a software system. Some studies revealed that a wide range of architectural problems are reflected in source code through code anomalies. However, a software project often contains thousands of code anomalies...
Article
Full-text available
The Software Architecture is an important asset in a software development process, which serves to share and discuss the main design concerns among the project stakeholders. The architecture must be properly documented (e.g., via a Wiki environment) to be effectively used by these stakeholders. However, the process of producing architecture documen...
Chapter
Full-text available
Providing recommendation to groups of users has become a promising research area, since many items tend to be consumed by groups of people. Various techniques have been developed aiming at making recommendations to the group as a whole, but satisfying all group members in an even way still remains as a challenge. We propose a multi-agent approach b...
Chapter
Providing recommendations to groups of users has become popular in many applications today. Although several group recommendation techniques exist, the generation of items that satisfy all group members in an even way still remains a challenge. To this end, we have developed a multi-agent approach called PUMAS-GR that relies on negotiation techniqu...
Conference Paper
Full-text available
Code smells are a popular mechanism to identify structural design problems in software systems. Since it is generally not feasible to f x all the smells arising in the code, some of them are often postponed by developer s to be resolved in the future. One reason for this decision is that the improvement of the code structure, to achieve modifabilit...
Article
Some of the challenges faced by most software projects are tight budget constraints and schedules, which often make managers and developers prioritize the delivery of a functional product over other engineering activities, such as software documentation. In particular, having little or low-quality documentation of the software architecture of a sys...
Article
Full-text available
Feature modeling has been widely used in domain engineering for the development and configuration of software product lines. A feature model represents the set of possible products or configurations to apply in a given context. Recently, this formalism has been applied to the runtime (re-)configuration of systems with high variability and running i...
Article
Full-text available
This work presents a semi-automatic tool for use case refactoring called RE-USE. This tool discovers existing quality problems in use cases and suggests a prioritized set of candidate refactorings to functional analysts. The analyst then reviews the recommendation list and selects the most important refactoring. The tool applies the chosen refactor...
Article
Full-text available
Information hiding is a positive consequence of properly defining component interfaces. Unfortunately, determining what should constitute a public interface remains difficult. We have analyzed over 3.6 million lines of Java open-source code and found that on the average, at least 20 % of defined methods are over-exposed, thus threatening public int...
Article
Full-text available
Code smells are a popular mechanism to find structural design problems in software systems. Consequently, several tools have emerged to support the detection of code smells. However, the number of smells returned by current tools usually exceeds the amount of problems that the developer can deal with, particularly when the effort available for perf...
Article
Full-text available
Background The stakeholders of a software system are, to a greater or lesser extent, concerned about its software architecture, as an essential artifact for capturing the key design decisions of the system. The architecture is normally documented in the Software Architecture Document (SAD), which tends to be a large and complex technical descriptio...
Conference Paper
Full-text available
The architecture of a software system is often described with diagrams embedded in the documentation. However, these diagrams are normally stored and shared as images, losing track of model-level architectural information and refraining software engineers from working on the architectural model later on. In this context, tools able to extract archi...
Article
Full-text available
Feature modeling has been widely used in domain engineering for the development and configuration of software products. A feature model represents the set of possible configurations to apply in a given context. Recently, this formalism was applied to the runtime (re-)configuration of systems with high variability and context changes, in which the s...
Article
Full-text available
Developing high-quality requirements specifications often demands a thoughtful analysis and an adequate level of expertise from analysts. Although requirements modeling techniques provide mechanisms for abstraction and clarity, fostering the reuse of shared functionality (e.g., via UML relationships for use cases), they are seldom employed in pract...
Conference Paper
Full-text available
Software architecture knowledge is an important asset in to-day's projects, as it serves to share the main design decisions among the project stakeholders. Architectural knowledge is commonly captured by the Software Architecture Document (SAD), an artifact that is useful but can also be costly to produce and maintain. In practice, the SAD often fa...
Article
Full-text available
Textual requirements are very common in software projects. However, this format of requirements often keeps relevant concerns (e.g., performance, synchronization, data access, etc.) from the analyst’s view, because their semantics are implicit in the text. Thus, analysts must carefully review requirements documents in order to identify key concerns...
Conference Paper
Full-text available
The inspection of documents written in natural language with computers has become feasible thanks to the advances in Natural Language Processing (NLP) techniques. However, certain applications require a deeper semantic analysis of the text to produce good results. In this article, we present an exploratory study of semantic-aware NLP techniques for...
Conference Paper
Full-text available
Determining the critical parts of a system is key to effectively conduct preventive software maintenance. To accomplish this task, information from the system history (i.e., past versions) can be helpful for identifying those software elements that are more likely to receive modifications in the near future. However, interpreting the large amount o...
Conference Paper
Technical knowledge is an important asset of today's software development projects. Collaborative and content management environments, such as Wikis, are becoming common nowadays for capturing such knowledge and sharing it among the project stakeholders. However, different stakeholders are often interested in subsets of the whole document repositor...
Article
In computer-supported collaborative learning contexts, group formation is a key aspect, since different characteristics of students might inuence the group performance. In this article, we present an intelligent assistant that models group formation as a weighted constraint satisfaction problem (WCSP). The assistant takes into account three student...
Article
Finding software faults is a problematic activity in many systems. Existing approaches usually work close to the system implementation and require developers to perform different code analyses. Although these approaches are effective, the amount of information to be managed by developers is often overwhelming. This problem calls for complementary a...
Conference Paper
The Software Architecture is an important asset in a software development process, which serves to share and discuss the main design concerns among the project stakeholders. The architecture knowledge must be properly documented in order to be effectively used by these stakeholders (e.g., using a Wiki). However, the repository of architectural docu...
Article
ContextConformance between architecture and implementation is a key aspect of architecture-centric development. Unfortunately, the architecture “as documented” and the architecture “as implemented” tend to diverge from each other over time. As this gap gets wider, the architects’ reliance on architecture-level analyses is compromised. Thus, conform...
Conference Paper
Over the last years, several techniques to evaluatemodifiability of software architectureshave been developed. One of such techniques is change impact analysis (CIA), which aids developers in assessing the effects of change scenarios on architectural modules. However, CIA does not take into account the pattern structures behind those modules. In ar...
Conference Paper
Full-text available
Recent trends in the software engineering community advocate for the improvement of textual requirements using (semi-)automated tools. In particular, the detection of incomplete or understated concerns at early development stages hold potential, due to the negative eects of untreated concerns on the development. Assistive tools can be of great help...
Conference Paper
Architecture documentation is a crucial activity in any software development project. In practice, architecture documenters face two problems: how to generate relevant documentation contents for the main stakeholders, and how to avoid documenting too much about the architecture. We propose a personalization approach based on stakeholders' interests...
Conference Paper
Full-text available
Specifying good software requirement documents is a difficult task. Many software projects fail because of the omission or bad en-capsulation of concerns. A practical way to solve these problems is to use advanced separation of concern techniques, such as aspect-orientation. However, quality attributes are not completely addressed by them. In this...
Article
Full-text available
Quality-attribute requirements describe constraints on the development and behavior of a software system, and their satisfaction is key for the success of a software project. Detecting and analyzing quality attributes in early development stages provides insights for system design, reduces risks, and ultimately improves the developers’ understandin...
Article
Software architectures are very important to capture early design decisions and reason about quality attributes of a system. Unfortunately, there are mismatches between the quality attributes prescribed by the architecture and those realized by its object-oriented implementation. The mismatches decrease the ability to reason architecturally about t...
Conference Paper
Full-text available
Mediante el uso de aspectos es posible encapsular crosscutting concerns (CCC) que atraviesan ortogonalmente los componentes de un sistema. Incorporarlos desde etapas tempranas del desarrollo de software conlleva importantes ventajas, tales como: mejorar la trazabilidad, facilitar las estimaciones de impacto de cambio, reducir los costos de la evolu...
Conference Paper
Full-text available
Rapidly changing technology is one of the key triggers of system evolution. Some examples are: physically relocating a data center, replacement of infrastructure such as migrating from an in-house broker to CORBA, moving to a new architectural approach such as migrating from client-server to a service-oriented architecture. At a high level, the goa...
Article
Software architectures capture early design decisions about a system in order to fulfill relevant quality attributes. When moving to detailed design levels, the same architecture can accept many different object-oriented implementations. A common problem here is the mismatches between the quality-attribute levels prescribed by the architecture and...
Chapter
Software design decisions are usually made at early stages but have far-reaching effects regarding system organization, quality, and cost. When doing design, developers apply their technical knowledge to decide among multiple solutions, seeking a reasonable balance between functional and quality-attribute requirements. Due to the complexity of this...
Conference Paper
A key aspect of architecture-centric development is the traceability of design documentation. In particular, architects should be always aware of the relationships between the architectural model ldquoas documentedrdquo and its corresponding implementation model. The problem is that these two models usually diverge from each other over time, due to...
Conference Paper
Architecture evolution, a key aspect of software evolution, is typically done in an ad hoc manner, guided only by the competence of the architect performing it. This process lacks the rigor of an engineering discipline. In this paper, we argue that architecture evolution must be engineered — based on rational decisions that are supported by formal...
Article
Full-text available
Architecture evolution, a key aspect of software evolution, is typically done in an ad hoc manner, guided only by the competence of the architect performing it. This process lacks the rigor of an engineering discipline. In this paper, we argue that architecture evolution must be engineered — based on rational decisions that are supported by formal...
Article
Full-text available
Aspect-oriented software development allows the encapsulation of crosscutting concerns, achieving a better system modularization and, therefore, improving its maintenance. One important challenge is how to evolve an object-oriented system into an aspect-oriented one in such a way the system structure gets gradually improved. This paper describes a...
Conference Paper
Full-text available
In this article, we present a semi-automated approach for identifying candidate early aspects in requirements specifications. This approach aims at improving the precision of the aspect identification process in use cases, and also solving some problems of existing aspect mining techniques caused by the vagueness and ambiguity of text in natural la...
Conference Paper
Locating software faults is a problematic activity in many systems. Existing tool approaches usually work close to the system implementation, requiring the developer to perform tedious code analyses in which the amount of information she must manage is usually overwhelming. This problem calls for approaches able to work at higher abstraction levels...