Fabiano Cutigi Ferrari

ORCID: 0000-0002-7339-8529
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Advanced Software Engineering Methodologies
  • Software Testing and Debugging Techniques
  • Software System Performance and Reliability
  • Software Reliability and Analysis Research
  • Software Engineering Techniques and Practices
  • Service-Oriented Architecture and Web Services
  • Educational Games and Gamification
  • Model-Driven Software Engineering Techniques
  • Advanced Malware Detection Techniques
  • Real-time simulation and control systems
  • Business and Management Studies
  • Teaching and Learning Programming
  • Digital Games and Media
  • Virtual Reality Applications and Impacts
  • Viral Infectious Diseases and Gene Expression in Insects
  • Engineering and Information Technology
  • Distributed systems and fault tolerance
  • VLSI and Analog Circuit Testing
  • Scientific Research and Technology
  • Multidisciplinary Science and Engineering Research
  • Augmented Reality Applications
  • Formal Methods in Verification
  • Higher Education and Employability
  • Adversarial Robustness in Machine Learning

Universidade Federal de São Carlos
2016-2025

George Mason University
2019

Universidade do Vale do Rio dos Sinos
2012

Universidade de São Paulo
2008-2011

Universidade Federal do Rio Grande do Norte
2010

Hospital Universitário da Universidade de São Paulo
2010

Lancaster University
2008

Wolters Kluwer (Netherlands)
2002

Software product lines (SPLs) enable modular, large-scale reuse through a software architecture addressing multiple core and varying features. To reap the benefits of SPLs, their designs need to be stable. Design stability encompasses sustenance line's modularity properties in presence changes both It is usually assumed that aspect-oriented programming promotes better changeability than conventional variability mechanisms, such as conditional compilation. However, there no empirical evidence...

10.1145/1368088.1368124 article EN 2008-01-01

Mutation testing has been shown to be one of the strongest criteria for evaluation both programs and test suites. Comprehensive sets mutants require strong achieve acceptable coverage. Moreover, mutation operators are valuable other approaches. Although its importance highlighted aspect-oriented (AO) programs, there is still a need suitable set AO languages. The quality itself relies on such operators. This paper presents design AspectJ-based programs. These model instances fault types...

10.1109/icst.2008.37 article EN International Conference on Software Testing, Verification, and Validation 2008-04-01

Generic controllers for self-adaptive systems can be configured parametrically according to system needs, even though their reuse is restricted because of the wide range services that may provided by each stage a feedback control loop, like MAPE-K. Rainbow typical example such generic, monolithic controller. This article revisits and extends prior work advocates structurally flexible controllers, as ensembles micro-controllers providing specific services. We experimented with our approach...

10.1145/3715145 article EN ACM Transactions on Autonomous and Adaptive Systems 2025-01-27

10.1109/mcd.2002.1175763 article EN IEEE Circuits and Devices Magazine 2002-11-01

This paper presents the results of an exploratory study on fault-proneness aspect-oriented programs. We analysed faults collected from three evolving systems, all different application domains. The analysis develops two angles. Firstly, we measured impact obliviousness property evaluated systems. show that 40% reported were due to lack awareness among base code and aspects. second regarded main programming (AOP) mechanisms, namely pointcuts, advices intertype declarations. indicate these...

10.1145/1806799.1806813 article EN 2010-05-01

Pointcut Descriptors (PCDs) are used to specify sets of program join points with a common property where additional behavior should be applied. If PCDs wrongly formulated, faults injected into the program, because will applied unintended or fail intended points. In this paper we classify types that can occur in -- terms selected and present two-step strategy to: 1) help tester identifying extra by PCDs; 2) neglected first place. We focus on step but provide motivating examples directions for both.

10.1145/1146374.1146380 article EN 2006-07-20

Coupling metrics received increased recognition by object-oriented (OO) software developers when they were found to be indicators of important quality attributes, such as fault-proneness. However, there is no consensus on which coupling are effective for emerging development paradigms, Aspect-Oriented Programming (AOP). AOP aims improve providing significantly different decomposition mechanisms, pointcut, advice and intertype declarations. Therefore, it not obvious if can derived from direct...

10.1145/1809223.1809231 article EN 2010-05-04

Aspect-Oriented Programming has introduced new types of software faults that may be systematically tackled with mutation testing. However, such testing approach requires adequate tooling support in order to properly performed. This paper addresses this issue, introducing a novel tool named Proteum/AJ. Proteum/AJ realises set requirements for mutation-based tools and overcomes some limitations identified previous aspect-oriented programs. Through an example, we show how was designed the main...

10.1145/1808266.1808274 article EN 2010-05-03

Systematic Reviews (SRs) have recently intensified in Software Engineering. However, there is a lack of work that makes explicit how the process to perform SR practice. The goal this paper externalising reflects SRs are currently performed, transforming tacit knowledge into knowledge. We describe phases and activities compose relationship among them, explore iterative characteristic process, focusing on intra- inter-phase iterations necessary conduct appropriately. To achieve proposed goal,...

10.1049/iet-sen.2013.0029 article EN IET Software 2013-11-04

Coupling in software applications is often used as an indicator of external quality attributes such fault-proneness. In fact, the correlation coupling metrics and faults object oriented programs has been widely studied. However, there very limited knowledge about which properties aspect-oriented programming (AOP) are effective indicators modules. Existing do not take into account specificities AOP mechanisms. As a result, these unlikely to provide optimal predictions pivotal This impacts...

10.1109/issre.2010.33 article EN 2010-11-01

Mutation testing is a program-transformation technique that injects artificial bugs to check whether the existing test suite can detect them. However, costs of using mutation are usually high, hindering its use in industry. Useless mutants (equivalent and duplicated) contribute increase costs. Previous research has focused mainly on detecting useless only after they generated compiled. In this paper, we introduce strategy help developers with deriving rules avoid generation mutants. To our...

10.1145/3136040.3136053 article EN 2017-10-12

Context: Exercising the implementation of an adaptive system (AS) effectively, in order to detect faults, is not a trivial task. This due characteristics this type systems, such as high number configurations and runtime adaptations. In context, characterisation challenges for testing ASs may support definition suitable strategies. However, currently spread over several studies literature. Objective: analysing testing-related which are described literature, establishing generic...

10.1145/2993288.2993294 article EN 2016-09-19

Context: Testing is essential to improve the quality of software products. Despite that, it not a subject that students are motivated learn. Gamification promising way address issues in testing education; used insert game elements educational contexts aiming increase students' motivation and performance. Objective: Reporting on results an experimental study designed assess impact gamification education. Method: We carried out sessions with undergraduate from three Brazilian institutions....

10.1145/3364641.3364661 article EN 2019-10-28

A considerable part of software systems is comprised functions that support the main modules, such as array or string manipulation and basic math computation. These auxiliary are usually considered less complex, thus tend to receive attention from developers. However, failures in these might propagate more critical thereby affecting system's overall reliability. Given complementary role functions, a question arises whether agile practices, pair programming test-first programming, can improve...

10.5555/2337223.2337285 article EN International Conference on Software Engineering 2012-06-02

Mutation testing is a program-transformation technique that injects artificial bugs to check whether the existing test suite can detect them. However, costs of using mutation are usually high, hindering its use in industry. Useless mutants (equivalent and duplicated) contribute increase costs. Previous research has focused mainly on detecting useless only after they generated compiled. In this paper, we introduce strategy help developers with deriving rules avoid generation mutants. To our...

10.1145/3170492.3136053 article EN ACM SIGPLAN Notices 2017-10-23

Context: Testing is a fundamental activity in the software development cycle. Revealing faults its main objective. Despite that, testing considered unpleasant, dull and tedious. As result, there lack of expertise among professionals while many projects fail. Gamification promising way to address issues; it new trend being used mostly increase motivation, engagement performance with use game elements non-game contexts. Objective: To describe results study that aimed characterize how...

10.1145/3266003.3266007 article EN 2018-09-13

Since the proposal of Aspect-Oriented Programming, several candidate fault taxonomies for aspect-oriented (AO) software have been proposed. Such taxonomies, however, generally rely on language features, hence still requiring practical evaluation based realistic implementation scenarios. The current lack available AO systems as well historical data are two major obstacles this kind study. This paper quantifies, documents and classifies faults uncovered in releases three systems, all from...

10.1109/sbes.2010.11 article EN Brazilian Symposium on Software Engineering 2010-09-01
Coming Soon ...