Network


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

Hotspot


Dive into the research topics where Ricardo Massa Ferreira Lima is active.

Publication


Featured researches published by Ricardo Massa Ferreira Lima.


Information & Software Technology | 2010

GA-based method for feature selection and parameters optimization for machine learning regression applied to software effort estimation

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

Implementing Java modeling language contracts with AspectJ

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

Analyzing software performance and energy consumption of embedded systems by probabilistic modeling: an approach based on coloured petri nets

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

Automatic Modeling for Performance Evaluation of Inventory and Outbound Distribution

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

AspectJML: modular specification and runtime checking for crosscutting contracts

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

Modeling and analyzing resource-constrained business processes

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

An Intelligent Mechanism to Explore a Two-Level Cache Hierarchy Considering Energy Consumption and Time Performance

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

Coordinating functional processes with Haskell

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

Modular aspect-oriented design rule enforcement with XPIDRs

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

A time Petri net-based method for embedded hard real-time software synthesis

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.

Collaboration


Dive into the Ricardo Massa Ferreira Lima's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Cesar A. L. Oliveira

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Eduardo Tavares

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Henrique Rebêlo

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Raimundo S. Barreto

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Gabriel Alves

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Meuse N. Oliveira

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Márcio Cornélio

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Alexandre Mota

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Natália C. Silva

Federal University of Pernambuco

View shared research outputs
Researchain Logo
Decentralizing Knowledge