- Advanced Software Engineering Methodologies
- Software Engineering Research
- Service-Oriented Architecture and Web Services
- Software Engineering Techniques and Practices
- Software System Performance and Reliability
- Business Process Modeling and Analysis
- Model-Driven Software Engineering Techniques
- Open Source Software Innovations
- Software Reliability and Analysis Research
- Software Testing and Debugging Techniques
- Biomedical and Engineering Education
- Innovative Approaches in Technology and Social Development
- Multi-Agent Systems and Negotiation
- Big Data and Business Intelligence
- Web Applications and Data Management
- Infrastructure Maintenance and Monitoring
- ERP Systems Implementation and Impact
- Semantic Web and Ontologies
- Product Development and Customization
- Scientific Computing and Data Management
- Genetics, Bioinformatics, and Biomedical Research
- Software Engineering and Design Patterns
- Quality and Supply Management
- ICT Impact and Policies
- Advanced Malware Detection Techniques
Universidade Federal do Rio Grande do Norte
2015-2024
Universidade Federal do Rio Grande
2017-2023
Ministry of Labor and Employment
2018
Universidade Federal da Paraíba
2018
Universidade de Brasília
2015
University of Rio Grande and Rio Grande Community College
2010-2014
Faculdade de Tecnologia e Ciências
2011
Universidade Nova de Lisboa
2007-2010
University of Lisbon
2008-2010
Center Point
2009
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...
The approach proposed by Silwerski, Zimmermann, and Zeller (SZZ) for identifying bug-introducing changes is at the foundation of several research areas within software engineering discipline. Despite foundational role SZZ, little effort has been made to evaluate its results. Such an evaluation a challenging task because ground truth not readily available. By acknowledging such challenges, we propose framework results alternative SZZ implementations. evaluates following criteria: (1) earliest...
Design patterns offer flexible solutions to common problems in software development. Recent studies have shown that several design involve crosscutting concerns. Unfortunately, object-oriented (OO) abstractions are often not able modularize those concerns, which turn decrease the system reusability and maintainability. Hence, it is important verifying whether aspect-oriented approaches support improved modularization of concerns relative patterns. Ideally, quantitative should be performed...
Adoption strategies for Software Product Lines (SPL) frequently involve bootstrapping existing products into a SPL and extending an to encompass another product. One way do that is use program refactorings. However, the traditional notion of refactoring does not handle appropriately feature models (FM), nor transformations involving multiple instances same SPL. For instance, it desirable apply reduce its configurability. In this paper, we extend context. Besides programs, FMs must also be...
SZZ is a widely used algorithm in the software engineering community to identify changes that are likely introduce bugs (i.e., bug-introducing changes). Despite its wide adoption, still has room for improvements. For example, current implementations may flag refactoring as bug-introducing. Refactorings should be disregarded because they do not change system behaviour. In this paper, we empirically investigate how refactorings impact both input (bug-fix changes) and output (bug-introducing of...
One of the main promises aspect-oriented programming (AOP) is to promote improved modularization crosscutting concerns, thereby enhancing software stability in presence changes. This paper presents a quantitative study that assesses positive and negative effects AOP on typical maintenance activities Web information system. The consists systematic comparison between object-oriented versions same application order assess what extent each solution provides maintainable decompositions. Our...
In this paper, we present a unit testing approach for MASs based on the use of Mock Agents. Each Agent is responsible single role an agent under successful and exceptional scenarios. Aspect-oriented techniques are used, in our approach, to monitor control execution asynchronous test cases. We implementation top JADE platform, show how extended JUnit framework order execute
The adoption of a product line strategy can bring significant productivity and time to market improvements. However, evolving is risky because it might impact many products their users. So when introduce new features or improve its design, important make sure that the behavior existing not affected. In fact, preserve one usually has analyze different artifacts, like feature models, configuration knowledge core assets. To better understand this process, in paper we discover concrete evolution...
Software developers pursue a wide range of activities as part their work, and making sense what they did in given time frame is far from trivial evidenced by the large number awareness coordination tools that have been developed recent years. To inform tool design for information available about developer's activity, we conducted an empirical study with 156 GitHub users to investigate would expect summary development how measure factors influence such activity can be condensed into textual...
Continuous Integration (CI) is a software development practice that leads developers to integrate their work more frequently. Software projects have broadly adopted CI ship new releases frequently and improve code integration. The adoption of motivated by the allure delivering functionalities quickly. However, there little empirical evidence support such claim. Through analysis 162,653 pull requests (PRs) 87 GitHub are implemented in 5 different programming languages, we empirically...
This paper presents an empirical study whose goal was to investigate the exception handling strategies adopted by Java libraries and their potential impact on client applications. In this study, flow analysis used in combination with manual inspections order: (i) characterize of existing from perspective users; (ii) identify anti-patterns. We extended static tool reason about flows handler actions 656 selected 145 categories Maven Central Repository. The findings suggest a current trend high...
Abstractions to express architectural connection play a central role in architecture design, especially Architecture Description Languages (ADLs). With the emergence of aspect-oriented software development (AOSD), there is need understand adequacy ADLs' conventional abstractions capture crosscutting nature concerns. This paper reflects on seven issues pertaining interplay concerns and abstractions. We review assess design existing (AO) non-AO ADLs with respect these issues. A case study used...
Productivity as a result of individual developers' contributions is an important aspect for software companies to maintain their competitiveness in the market. However, there no consensus literature on how measure productivity or developer contribution. While some repository mining-based metrics have been proposed, they lack validation terms applicability and usefulness from individuals who will use them assess contribution: team project leaders. In this paper, we propose design suite...