Tandil, Argentina
Tandil, Argentina
Time filter
Source Type

Vidal S.,ISISTAN | Vidal S.,CONICET | Bergel A.,University of Chile | Diaz-Pace J.A.,ISISTAN | And 2 more authors.
Computer Languages, Systems and Structures | Year: 2016

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 failing to do so is likely to produce maintenance problems, poor system quality, and architecture decay. However, how developers uses class access modifiers or how inadequate access modifiers affect software systems has not been investigated yet in the literature. In this work, we empirically analyze the use of class access modifiers across a collection of 15 Java libraries and 15 applications, totaling over 3.6M lines of code. We have found that an average of 25% of classes are over-exposed, i.e., classes defined with an accessibility that is broader than necessary. A number of code patterns involving over-exposed classes have been formalized, characterizing programmers' habits. Furthermore, we propose an Eclipse plugin to make component public interfaces match with the programmer's intent. © 2016 Elsevier Ltd. All rights reserved.

Salinas S.A.,Instituto Para Las Tecnologias Of La Informacion Y Las Comunicaciones Itic | Garino C.G.,Instituto Para Las Tecnologias Of La Informacion Y Las Comunicaciones Itic | Zunino A.,ISISTAN
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | Year: 2012

An Enterprise Desktop Grid (EDG) is a low cost platform that scavenges idle desktop computers to run Grid applications. Since EDGs use idle computer time, it is important to estimate the expected computer availability. Based on this estimation, a scheduling system is able to select those computers with more expected availability to run applications. As a consequence, an overall performance improvement is achieved. Different techniques have been proposed to predict the computer state for an instant of time, but this information is not enough. A prediction model provides a sequence of computer states for different instants of time. The problem is how to identify computer behavior having as input this sequence of states. We identify the need of providing a architecture to model and evaluate desktop computer behavior. Thus, a scheduling system is able to compare and select resources that run applications faster. Experiments have shown that programs run up to 8 times faster when the scheduler selects a computer suggested by our proposal. © 2012 Springer-Verlag.

Vidal S.A.,CONICET | Bergel A.,University of Chile | Marcos C.,ISISTAN | Diaz-Pace J.A.,CONICET
Empirical Software Engineering | Year: 2015

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. © 2015 Springer Science+Business Media New York

Vidal S.A.,ISISTAN | Vidal S.A.,CONICET | Marcos C.,ISISTAN | Diaz-Pace J.A.,ISISTAN | Diaz-Pace J.A.,CONICET
Automated Software Engineering | Year: 2014

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. © 2014 Springer Science+Business Media New York

Loading ISISTAN collaborators
Loading ISISTAN collaborators