Ricardo Massa Ferreira Lima
Federal University of Pernambuco
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Ricardo Massa Ferreira Lima.
Information & Software Technology | 2010
Adriano L. I. Oliveira; Petrônio L. Braga; Ricardo Massa Ferreira Lima; Márcio Cornélio
Context: In software industry, project managers usually rely on their previous experience to estimate the number men/hours required for each software project. The accuracy of such estimates is a key factor for the efficient application of human resources. Machine learning techniques such as radial basis function (RBF) neural networks, multi-layer perceptron (MLP) neural networks, support vector regression (SVR), bagging predictors and regression-based trees have recently been applied for estimating software development effort. Some works have demonstrated that the level of accuracy in software effort estimates strongly depends on the values of the parameters of these methods. In addition, it has been shown that the selection of the input features may also have an important influence on estimation accuracy. Objective: This paper proposes and investigates the use of a genetic algorithm method for simultaneously (1) select an optimal input feature subset and (2) optimize the parameters of machine learning methods, aiming at a higher accuracy level for the software effort estimates. Method: Simulations are carried out using six benchmark data sets of software projects, namely, Desharnais, NASA, COCOMO, Albrecht, Kemerer and Koten and Gray. The results are compared to those obtained by methods proposed in the literature using neural networks, support vector machines, multiple additive regression trees, bagging, and Bayesian statistical models. Results: In all data sets, the simulations have shown that the proposed GA-based method was able to improve the performance of the machine learning methods. The simulations have also demonstrated that the proposed method outperforms some recent methods reported in the recent literature for software effort estimation. Furthermore, the use of GA for feature selection considerably reduced the number of input features for five of the data sets used in our analysis. Conclusions: The combination of input features selection and parameters optimization of machine learning methods improves the accuracy of software development effort. In addition, this reduces model complexity, which may help understanding the relevance of each input feature. Therefore, some input parameters can be ignored without loss of accuracy in the estimations.
acm symposium on applied computing | 2008
Henrique Rebêlo; Sérgio Soares; Ricardo Massa Ferreira Lima; Leopoldo Ferreira; Márcio Cornélio
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed to improve functional software correctness of Java applications. However, instrumented object program generated by the JML compiler use the Java reflection mechanism and data structures not supported by Java ME applications. To deal with this limitation, we propose the use of AspectJ to implement a new JML compiler, which generates an instrumented bytecode compliant with both Java SE and Java ME applications. The paper includes a comparative study to demonstrate the quality of the final code generated by our compiler. The size of the code is compared against the code generated by an existent JML compiler. Moreover, we evaluate the amount of additional code required to implement the JML assertions in Java applications. Results indicate that the overhead in code size produced by our compiler is very small, which is essential for Java ME applications.
applications and theory of petri nets | 2006
Meuse N. O. Junior; Silvino Neto; Paulo Romero Martins Maciel; Ricardo Massa Ferreira Lima; Angelo Ribeiro; Raimundo S. Barreto; Eduardo Tavares; Frederico Braga
This paper presents an approach for analyzing embedded systems’ software energy consumption and performance based on probabilistic modeling. Such an approach applies Coloured Petri Net modeling language (CPN) for supporting simulation and analysis. The proposed approach offers three basic contributions for embedded system analysis field:(i)code modeling, a probabilistic model for scenarios exploration being presented, (ii) formalism, a formal and widespread modeling language (CPN) being applied, with previously validated engines and algorithms for simulation;(iii) flexibility, the proposed approach enabling modeling of different micro-controllers at different abstraction levels.
systems man and cybernetics | 2010
G A de Albuquerque; Paulo Romero Martins Maciel; Ricardo Massa Ferreira Lima; Armin Zimmermann
This paper proposes a methodology for modeling and evaluating supply chains based on generalized stochastic Petri net (GSPN) components. The proposed modeling process is based on a bottom-up approach, which assures desirable model properties that start from a set of predefined modules for typical supply chain entities. A compositional algebra that formally defines GSPN compositions is presented. The proposed methodology is supported by an implementation of the methodology in the stochastic logistics optimizer tool (SLOT). An industrial case study has been conducted to show the benefits of the approach.
Proceedings of the 13th international conference on Modularity | 2014
Henrique Rebêlo; Gary T. Leavens; Mehdi Bagherzadeh; Hridesh Rajan; Ricardo Massa Ferreira Lima; Daniel M. Zimmerman; Márcio Cornélio; Thomas Thüm
Aspect-oriented programming (AOP) is a popular technique for modularizing crosscutting concerns. In this context, researchers have found that the realization of design by contract (DbC) is crosscutting and fares better when modularized by AOP. However, previous efforts aimed at supporting crosscutting contract modularity might actually compromise the main DbC principles. For example, in AspectJ-style, reasoning about the correctness of a method call may require a whole-program analysis to determine what advice applies and what that advice does relative to DbC implementation and checking. Also, when contracts are separated from classes a programmer may not know about them and may break them inadvertently. In this paper we solve these problems with AspectJML, a new specification language that supports crosscutting contracts for Java code. We also show how AspectJML supports the main DbC principles of modular reasoning and contracts as documentation.
systems, man and cybernetics | 2009
Cesar A. L. Oliveira; Ricardo Massa Ferreira Lima; Thiago Andre; Hajo A. Reijers
In this paper we review several approaches for the performance evaluation of business workflows and propose an approach based on Generalized Stochastic Petri Nets, which presents desirable characteristics, such as analytic solutions. We present a case study demonstrating the application of our proposal and compare the results with that obtained by a colored Petri net model.
symposium on computer architecture and high performance computing | 2007
Abel G. Silva-Filho; Carmelo J. A. Bastos-Filho; Ricardo Massa Ferreira Lima; Davi M. A. Falcão; Filipe R. Cordeiro; Marília P. Lima
Cache memory hierarchy contributes positively to system performance. Moreover, tuning cache architectures in platforms for embedded applications can dramatically reduce energy consumption. This paper presents an automated method for adjusting two-level cache memory hierarchy intended for data caches in order to reduce energy consumption and improve the performance of embedded applications. We propose an automated mechanism called TEMGA (Two-level cache Exploration Mechanism based on Genetic Algorithm), to determine the suitable cache hierarchy configuration by exploring a small part of search space. In our experiments, we applied the proposed mechanism to 12 different benchmarks from the MiBench suite. The results show an average reduction of about 15% in the energy consumption for data caches when compared to existing heuristics and a reduction of 5 times in the number of cycles needed to execute applications from Mibench Benchmark suite.Speedup in distributed executions of constraint logic programming (CLP) applications are directed related to a good constraint partitioning algorithm. In this work we study different mechanisms to distribute constraints to processors based on straightforward mechanisms such as round-robin and block distribution, and on a more sophisticated automatic distribution method, grouping-sink, that takes into account the connectivity of the constraint network graph. This aims at reducing the communication overhead in distributed environments. Our results show that grouping-sink is, in general, the best alternative for partitioning constraints as it produces results as good or better than round-robin or blocks with low communication rate.
acm symposium on applied computing | 2002
F. H. Carvalho; Ricardo Massa Ferreira Lima; Rafael Dueire Lins
This paper presents Haskell<inf>#</inf>, a parallel functional language based on coordination. Haskell<inf>#</inf> supports <i>lazy stream communication</i> and facilities, at coordination level, to the specification of <i>data parallel programs.</i> Haskell<inf>#</inf> supports a clean and complete, semantic and syntactic, separation between <i>coordination</i> and <i>computation</i> levels of programming, with several benefits to parallel program engineering. The implementation of some well-known applications in Haskell<inf>#</inf> is presented, demonstrating its expressiveness, allowing for elegant, simple, and concise specification of any static pattern of parallel, concurrent or distributed computation.
foundations of aspect-oriented languages | 2013
Henrique Rebêlo; Gary T. Leavens; Ricardo Massa Ferreira Lima; Paulo Borba; Márcio Ribeiro
Aspect-oriented programming (AOP) is a popular technique for modularizing crosscutting concerns. However, constructs aimed at supporting crosscutting modularity may break class modularity. For example, to understand a method call may require a whole-program analysis to determine what advice applies and what that advice does. Moreover, in AspectJ, advice is coupled to the parts of the program advised, the base code, so the meaning of advice may change when the base code changes. Such coupling also hinders parallel development between base code and aspects. We propose some simple modifications to the design of crosscut programming interfaces (XPIs) to include expressive design rule specifications. We call our form of XPIs crosscutting programming interfaces with design rules (XPIDRs). The XPIDR-based approach, by design, supports modular runtime checking and parallel development by decoupling aspects from base code. We also show how XPIDRs allow specification of interesting control flow effects, such as when advice does (or does not) proceed. We have implemented XPIDRs as a simple contract extension to AspectJ. Since XPIDRs do not require any new AspectJ constructs, they can be adopted easily by the AspectJ community.
Design Automation for Embedded Systems | 2008
Raimundo S. Barreto; Paulo Romero Martins Maciel; Eduardo Tavares; Romulo Devezas Freitas; Meuse N. Oliveira; Ricardo Massa Ferreira Lima
Abstract Over the last few years, embedded software synthesis has drawn much attention. However, few works deal with software synthesis for hard real-time systems considering arbitrary inter-tasks precedence and exclusion relations. Code generation for meeting all timing and resource constraints is not a trivial task. Thus, this research area has several open issues, mainly related to generation of predictable-guaranteed scheduled code. The method proposed in this paper starts from a high-level specification, and automatically translates such specification into a time Petri net model; this model is adopted for finding a feasible static schedule meeting all constraints. If found, the approach generates a scheduled code, based on the found feasible schedule. Therefore, the user just enter the specification and receives, as result, the scheduled code. Thus, all intermediary phases are hidden from the users.