Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where J. Andres Diaz-Pace is active.

Publication


Featured researches published by J. Andres Diaz-Pace.


automated software engineering | 2016

An approach to prioritize code smells for refactoring

Santiago Vidal; Claudia Marcos; J. Andres Diaz-Pace

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 performing refactorings is limited. Moreover, not all the code smells are equally relevant to the goals of the system or its health. This article presents a semi-automated approach that helps developers focus on the most critical problems of the system. We have developed a tool that suggests a ranking of code smells, based on a combination of three criteria, namely: past component modifications, important modifiability scenarios for the system, and relevance of the kind of smell. These criteria are complementary and enable our approach to assess the smells from different perspectives. Our approach has been evaluated in two case-studies, and the results show that the suggested code smells are useful to developers.


Requirements Engineering | 2013

Uncovering quality-attribute concerns in use case specifications via early aspect mining

Alejandro Rago; Claudia Marcos; J. Andres Diaz-Pace

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’ understanding of the system. A common problem, however, is that quality-attribute information tends to be understated in requirements specifications and scattered across several documents. Thus, making the quality attributes first-class citizens becomes usually a time-consuming task for analysts. Recent developments have made it possible to mine concerns semi-automatically from textual documents. Leveraging on these ideas, we present a semi-automated approach to identify latent quality attributes that works in two stages. First, a mining tool extracts early aspects from use cases, and then these aspects are processed to derive candidate quality attributes. This derivation is based on an ontology of quality-attribute scenarios. We have built a prototype tool called QAMiner to implement our approach. The evaluation of this tool in two case studies from the literature has shown interesting results. As main contribution, we argue that our approach can help analysts to skim requirements documents and quickly produce a list of potential quality attributes for the system.


Software and Systems Modeling | 2016

Identifying duplicate functionality in textual use cases by aligning semantic actions

Alejandro Rago; Claudia Marcos; J. Andres Diaz-Pace

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 practice. A particular quality problem of textual requirements, such as use cases, is that of having duplicate pieces of functionality scattered across the specifications. Duplicate functionality can sometimes improve readability for end users, but hinders development-related tasks such as effort estimation, feature prioritization, and maintenance, among others. Unfortunately, inspecting textual requirements by hand in order to deal with redundant functionality can be an arduous, time-consuming, and error-prone activity for analysts. In this context, we introduce a novel approach called ReqAligner that aids analysts to spot signs of duplication in use cases in an automated fashion. To do so, ReqAligner combines several text processing techniques, such as a use case-aware classifier and a customized algorithm for sequence alignment. Essentially, the classifier converts the use cases into an abstract representation that consists of sequences of semantic actions, and then these sequences are compared pairwise in order to identify action matches, which become possible duplications. We have applied our technique to five real-world specifications, achieving promising results and identifying many sources of duplication in the use cases.


international conference of the chilean computer science society | 2015

JSpIRIT: a flexible tool for the analysis of code smells

Santiago Vidal; Hernan Vazquez; J. Andres Diaz-Pace; Claudia Marcos; Alessandro Garcia; Willian Nalepa Oizumi

Code smells are a popular mechanism to identify structural design problems in software systems. Since it is generally not feasible to fix all the smells arising in the code, some of them are often postponed by developers to be resolved in the future. One reason for this decision is that the improvement of the code structure, to achieve modifability goals, requires extra effort from developers. Therefore, they might not always spend this additional effort, particularly when they are focused on delivering customer-visible features. This postponement of code smells are seen as a source of technical debt. Furthermore, not all the code smells may be urgent to fix in the context of the systems modifability and business goals. While there are a number of tools to detect smells, they do not allow developers to discover the most urgent smells according to their goals. In this article, we present a fexible tool to prioritize technical debt in the form of code smells. The tool is flexible to allow developer s to add new smell detection strategies and to prioritize smells, and groups of smells, based on the confguration of their manifold criteria. To illustrate this flexibility, we present an application example of our tool. The results suggest that our tool can be easily extended to be aligned with the developers goals.


2014 Eighth Brazilian Symposium on Software Components, Architectures and Reuse | 2014

An Approach for Managing Quality Attributes at Runtime Using Feature Models

Luis Emiliano Sánchez; J. Andres Diaz-Pace; Alejandro Zunino; Sabine Moisan; Jean-Paul Rigault

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 selection of the best candidate configuration is seen as an optimization problem based on quality criteria. To this end, we propose an approach for the specification, measurement and optimization of runtime quality attributes based on feature models, and furthermore, we describe its integration into a component-based architecture for supporting dynamically adaptive systems. Feature models are annotated with quality-attribute properties and metrics, and then an efficient and flexible algorithm is used to deal with the optimization problem. We report on some examples of adaptation and quality-attribute scenarios in the context of a video surveillance domain, in order to illustrate the pros and cons of our approach.


conference on object-oriented programming systems, languages, and applications | 2005

ArchMatE: from architectural styles to object-oriented models through exploratory tool support

J. Andres Diaz-Pace; Marcelo Campo

Given the difficulties of conventional object technologies to deal with quality-attribute concerns, software architectures appear as an interesting approach to manage them better. A problem to make this approach feasible is the gap between architectural and object models. Succeeding in bridging these two worlds implies that those design decisions about quality attributes made at the architectural level should be reflected at the object level. Nonetheless, a given architecture usually admits multiple, different materializations. Furthermore, any materialization requires considerable design background and experience from the developer. In this paper, we describe a tool approach, called ArchMatE, to assist developers in the exploration of object-oriented solutions for grounding specific architectural models. An important aspect of the approach is that the materializations are accomplished by means of quality-oriented strategies, so that those concerns prescribed by the original architecture are mostly preserved.


automated software engineering | 2016

Assisting requirements analysts to find latent concerns with REAssistant

Alejandro Rago; Claudia Marcos; J. Andres Diaz-Pace

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 and their effects. Concern mining tools based on NLP techniques can help in this activity. Nonetheless, existing tools cannot always detect all the crosscutting effects of a given concern on different requirements sections, as this detection requires a semantic analysis of the text. In this work, we describe an automated tool called REAssistant that supports the extraction of semantic information from textual use cases in order to reveal latent crosscutting concerns. To enable the analysis of use cases, we apply a tandem of advanced NLP techniques (e.g, dependency parsing, semantic role labeling, and domain actions) built on the UIMA framework, which generates different annotations for the use cases. Then, REAssistant allows analysts to query these annotations via concern-specific rules in order to identify all the effects of a given concern. The REAssistant tool has been evaluated with several case-studies, showing good results when compared to a manual identification of concerns and a third-party tool. In particular, the tool achieved a remarkable recall regarding the detection of crosscutting concern effects.


Journal on Data Semantics | 2016

Producing Just Enough Documentation: An Optimization Approach Applied to the Software Architecture Domain

J. Andres Diaz-Pace; Christian Villavicencio; Silvia N. Schiaffino; Matias Nicoletti; Hernan Vazquez

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 documentation often fails to deliver contents that address the stakeholders’ information needs. To address the problem, we argue for a knowledge management strategy in which: (i) architecture documentation is created incrementally; and (ii) its contents are driven by a model of stakeholder preferences. In this work, we present an information optimization approach applied to the architecture documentation domain, derived from an existing documentation method called Views & Beyond. To do so, we define the Next SAD Version Problem (NSVP) and then provide tool support to assist architects in producing cost-effective documentation. Based on prior work, we perform a sensitivity analysis of the optimization model and develop a robust formulation that takes into account uncertainty in the parameter estimations for NSVP instances, thus improving the outcomes of our documentation assistant.


symposium on search based software engineering | 2014

Producing Just Enough Documentation: The Next SAD Version Problem

J. Andres Diaz-Pace; Matias Nicoletti; Silvia N. Schiaffino; Santiago Vidal

Software architecture knowledge is an important asset in today’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 fails to fulfill its mission of addressing the stakeholders’ information needs, due to factors such as: detailed or high-level contents that do not consider all stakeholders, outdated documentation, or documentation generated late in the lifecycle, among others. To alleviate this problem, we propose a documentation strategy that seeks to balance the stakeholders’ interests in the SAD against the efforts of producing it. Our strategy is cast as an optimization problem called ”the next SAD version problem” (NSVP) and several search-based techniques for it are discussed. A preliminary evaluation of our approach has shown its potential for exploring cost-benefit tradeoffs in documentation production.


Empirical Software Engineering | 2016

Understanding and addressing exhibitionism in Java empirical research about method accessibility

Santiago Vidal; Alexandre Bergel; Claudia Marcos; J. Andres Diaz-Pace

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 interfaces to unnecessary exposure. Such over-exposed methods may have their accessibility reduced to exactly reflect the method usage. We have identified three patterns in the source code to identify over-exposed methods. We also propose an Eclipse plugin to guide practitioners in identifying over-exposed methods and refactoring their applications. Our plugin has been successfully used to refactor a non-trivial application.

Collaboration


Dive into the J. Andres Diaz-Pace's collaboration.

Top Co-Authors

Avatar

Silvia N. Schiaffino

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Alejandro Rago

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Matias Nicoletti

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Santiago Vidal

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Christian Villavicencio

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Ariel Monteserin

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Marcelo Campo

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Alvaro Soria

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Hernan Vazquez

National Scientific and Technical Research Council

View shared research outputs
Top Co-Authors

Avatar

Luis Emiliano Sánchez

National Scientific and Technical Research Council

View shared research outputs
Researchain Logo
Decentralizing Knowledge