Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Américo Sampaio

dblp:61/5350 · also Américo Falcone Sampaio · DBLP profile ↗
← Back
12ranked-venue papers
5as first author
1since 2021 · last 2021
0000-0003-0267-268XORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 4 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 4 · 1 first-authorSystems, architecture and hardware · 1Databases, data management, data science and information retrieval · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Requirements engineering and software design · 75% Software maintenance and evolution · 25%

Topics — the 4 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › reverse engineering
aspect mining
0.112005
EA-Miner: a tool for automating aspect-oriented requirements identification · ASE 2005
Requirements engineering and software design › requirements engineering
aspect-oriented requirements engineering
0.112005
EA-Miner: a tool for automating aspect-oriented requirements identification · ASE 2005
Requirements engineering and software design
requirements analysis
0.112005
EA-Miner: a tool for automating aspect-oriented requirements identification · ASE 2005
Requirements engineering and software design
separation of concerns
0.112005
EA-Miner: a tool for automating aspect-oriented requirements identification · ASE 2005

Methods — techniques the papers use, named apart from their topics

natural language processing · 0.1
YearPublicationVenuePosition
2021 Migrating production monolithic systems to microservices using aspect oriented programming
abstract
Abstract Several organizations need to address the challenge to migrate current traditional monolithic applications in production to microservices, preferably, without having to schedule maintenances to take the application offline. This article presents an approach for migrating to microservices with almost zero downtime and minimal changes in the monolithic code. The approach is based on the concepts of aspect‐oriented programming (AOP) and reflection to enable to intercept calls inside the monolith and transform them into service requests invoking the newly built microservices using the concept of around advices. The aspects do the “dirty work” of decoupling what will be refactored and which service to call and practically “zero” code changes need to be done in the original monolithic code. This enables one key novel contribution of our migration approach which is the ability to revert code and data changes without having to take the system offline. Two applications are used as proofs of concept to demonstrate that the proposed approach enables to go “forward” or “backward” among different versions of the application with minimal code or data changes. An evaluation performed in the cloud demonstrates that this work does not introduce significant performance or cost overhead when compared to the current state of the art and to the original monolith.
Augusto Flávio A. A. Freire, Américo Sampaio, Luis Heustakio L. Carvalho, Otávio Medeiros, Nabor das Chagas Mendonça
Softw. Pract. Exp.2
2018 Cloud application architecture appraiser (CA3): A multicriteria approach and tool for assessing cloud deployment options based on nonfunctional requirements
abstract
Summary Cloud computing is an emerging computing paradigm that is changing software engineering. It offers scalable virtual compute resources at low prices, thus attracting many software developers interested in reducing their infrastructure and operational costs. Even though acquiring and using cloud solutions can be simple, a common difficulty developers face is how to best configure their applications at the architectural level, given a myriad of cloud services and resource types available, specially when considering different attributes such as cost, scalability, and performance. An inappropriate architectural decision can lead to a significant cost increase or a deployment option that does not meet the minimum required performance. This paper focuses on the problem of finding the best cloud deployment options for a given application that meet a given set of well‐known nonfunctional requirements. To address this problem, the paper presents Cloud Application Architecture Appraiser (CA3), a multicriteria optimization approach and tool that relies on nonfunctional requirements as key drivers for assessing and selecting the best architectural options for deploying applications in the cloud. Results from the assessment of a real web application (WordPress), deployed using several different architectural options in a popular cloud provider (Amazon), are also presented to illustrate the use and benefits of the proposed method and tool.
Ronaldo Gonçalves Junior, Américo Sampaio, Tiago Rolim, Nabor das Chagas Mendonça
Softw. Pract. Exp.2
2017 Cloud Crawler: a declarative performance evaluation environment for infrastructure-as-a-service clouds
abstract
Summary As the number of infrastructure‐as‐a‐service (IaaS) cloud offers in the market increases, selecting an appropriate configuration of cloud resources for a given application becomes a non‐trivial task even for experienced developers. Because cloud resources are relatively cheap, usually charged by the hour, developers could systematically evaluate the performance of their application using different resource types from different cloud providers, thus allowing them to accurately identify the best providers and resource types for their application. However, conducting systematic performance tests in multiple IaaS clouds may require a significant amount of planning and configuration effort from application developers. This paper presents Cloud Crawler, a declarative environment for specifying and conducting application performance tests in IaaS clouds. The environment includes a novel declarative domain‐specific language, Crawl, by means of which cloud users can describe, at a high abstraction level, a large variety of performance evaluation scenarios for a given application, and a scenario execution engine, Crawler, which automatically configures, executes, and collects the results of the scenarios described in Crawl. The paper also reports on how Cloud Crawler has been successfully used to systematically test the performance of two open‐source web applications in public IaaS clouds. Copyright © 2016 John Wiley & Sons, Ltd.
Matheus Cunha, Nabor das Chagas Mendonça, Américo Sampaio
Concurr. Comput. Pract. Exp.3
2016 An Approach for Evaluating Cloud Application Topologies Based on TOSCA
abstract
Provisioning cloud applications usually is a complex task as it involves the deployment and configuration of several components (e.g., load balancer, application server, database) and cloud services (computing, storage, CDN, etc.) also known as application blueprints or topologies. The Topology and Orchestration Specification for Cloud Applications (TOSCA) is a recent standard that has focused on standardizing the way cloud applications are structured and managed to favor interoperability. In this paper we describe an approach that facilitates the evaluation of different application topologies by enabling cloud users to easily provision and evaluate different TOSCA topology options based on performance and cost metrics. We show the technical feasibility of the approach based on a case study with the WordPress blogging application where various topologies were automatically provisioned and evaluated in order to gain insights into the best (w.r.t. performance) options.
Américo Sampaio, Tiago Rolim, Nabor das Chagas Mendonça, Matheus Cunha
CLOUD1
2015 Performance Inference: A Novel Approach for Planning the Capacity of IaaS Cloud Applications
abstract
This work presents a novel approach to support application capacity planning in infrastructure-as-a-service (IaaS) clouds. The approach, called performance inference, relies on the assumption that it is possible to establish a capacity relation between different resource configurations offered by a given IaaS provider, enabling one to infer an application's performance under certain resource configurations and workloads, based upon the application's actual performance as observed for other related resource configurations and workloads. Preliminary evaluation results, obtained from testing the performance of a well-known blogging application (Word Press) in a public IaaS cloud (Amazon EC2), show that the best performance inference strategies can significantly reduce (over 80%) the total number of application deployment scenarios that need to be actually tested in the cloud, with a high (over 98%) inference accuracy.
Marcelo Gonçalves, Matheus Cunha, Nabor das Chagas Mendonça, Américo Sampaio
CLOUD4
2013 A Declarative Environment for Automatic Performance Evaluation in IaaS Clouds
abstract
One of the main challenges faced by users of infrastructure-as-a-service (IaaS) clouds is the difficulty to adequately estimate the virtual resources necessary for their applications. Although many cloud providers offer programatic ways to rapidly acquire and release resources, it is important that users have a prior understanding of the impact that each virtual resource type offered by the provider may impose on application performance. This paper presents Cloud Crawler, a new declarative environment aimed at supporting users in describing and automatically executing application performance tests in IaaS clouds. To this end, the environment provides a novel declarative domain-specific language, called Crawl, which supports the description of a variety of performance evaluation scenarios in multiple IaaS clouds, and an extensible Java-based cloud execution engine, called Crawler, which automatically configures, executes and collects the results of each performance evaluation scenario described in Crawl. To illustrate Cloud Crawler's potential benefits, the paper reports on an experimental evaluation of a social network application in two public IaaS cloud providers, in which the proposed environment has successfully been used to investigate the application performance for different virtual machine configurations and under different demand levels.
Matheus Cunha, Nabor das Chagas Mendonça, Américo Sampaio
IEEE CLOUD3
2013 TREXCLOUD: Java EE IaaS Cloud Deployment Made Easy
abstract
Cloud computing is becoming mainstream in software development, with many organizations now considering migrating their applications to the cloud. However, the task of deploying Java Enterprise Edition (JEE) applications in infrastructure-as-a-service (IaaS) clouds is generally daunting due to a number of manual steps necessary to configure all application components as a set of virtual machine images. This work presents a tool, TREXCLOUD, which supports the task of deploying a fully functional Java Enterprise application in IaaS clouds with a few clicks. TREX Cloud enables users to easily upload a set of files that contain the application components (e.g.,. war files, database back up, context files) so that the tool automatically deploys and configures the whole application stack in an IaaS provider selected by the user. An empirical study shows how TREXCLOUD enables users, independently of their level of expertise, to quickly deploy a complete JEE application in the Amazon cloud when compared to two different approaches: Amazon EC2 dashboard and Amazon Elastic Beanstalk.
Roberto Costa Lima, Ricardo Hollanda Filho, Américo Sampaio, Nabor das Chagas Mendonça
IEEE CLOUD3
2011 Investigating the Impact of Deployment Configuration and User Demand on a Social Network Application in the Amazon EC2 Cloud
abstract
One of the main challenges faced by current users of infrastructure-as-a-service (IaaS) clouds are the difficulties to estimate cloud resources according to their application needs. Even though cloud platforms are elastic and provide fast means to acquire or release resources it is important to understand the best ways to do that considering a diversity of providers with many different resource types and prices. This work reports on an experimental investigation conducted on a popular cloud benchmark based on a social network application running on top of the Amazon EC2 cloud. Our experiments aim at finding cost-effective ways to select the different EC2 resource types and deployment configurations based on the demand imposed to the application (measured in number of simultaneous users) and identify the configuration that gives the best return in terms of its cost per user.
Matheus Cunha, Nabor das Chagas Mendonça, Américo Sampaio
CloudCom3
2007 A Comparative Study of Aspect-Oriented Requirements Engineering Approaches
abstract
Aspect-Oriented Requirements Engineering (AORE) aims at improving separation of concerns in the problem space by offering new ways of modularising requirements. Over recent years several AORE approaches have emerged by evolving contemporary requirements approaches such as viewpoints-, scenarios- and goal-based models. Due to the novelty of these techniques, there is a lack of systematic comparative studies analyzing the benefits and drawbacks they can offer to the requirements engineering practice. This paper presents a case study contrasting four eminent AORE approaches in terms of time effectiveness and accuracy of their produced outcome. We address challenges related to the heterogeneous definitions for AORE model concepts as well as the fact that they perform similar general requirements process activities in different ways. In order to address these challenges, we provide a mapping of the AORE approaches onto general RE activities and provide a common naming scheme. The case study results show that specification of aspect compositions in AORE presents an effort bottleneck that has to be carefully weighed against the added benefits of modularity and analysis of systemic properties offered by AORE. Consequently, our study provides an initial yet significant stepping stone towards improving the evaluation of AORE approaches and understanding their contribution to requirements engineering.
Américo Sampaio, Phil Greenwood, Alessandro F. Garcia 0001, Awais Rashid
ESEM1
2005 EA-Miner: a tool for automating aspect-oriented requirements identification
abstract
Aspect-Oriented requirements engineering helps to achieve early separation of concerns by supporting systematic analysis of broadly-scoped properties such as security, real-time constraints, etc. The early identification and separation of aspects and base abstractions crosscut by them helps to avoid costly refactorings at later stages such as design and code. However, if not handled effectively, the aspect identification task can become a bottleneck requiring a significant effort due to the large amount of, often poorly structured or imprecise, information available to a requirements engineer. In this paper, we describe a tool, EA-Miner, that provides effective automated support for identifying and separating aspectual and non-aspectual concerns as well as their crosscutting relationships at the requirements level. The tool utilises natural language processing techniques to reason about the properties of the concerns and model their structure and relationships.
Américo Sampaio, Ruzanna Chitchyan, Paul Rayson
ASE1
2005 Early-AIM: An Approach for Identifying Aspects in Requirements
abstract
Identifying aspects at an early stage helps to achieve separation of crosscutting concerns in the initial system analysis, instead of deferring such decisions to later stages of design and code, and thus, having to perform costly refactorings. This paper describes the early-AIM (early aspects identification method) approach that utilises corpus-based natural language processing (NLP) techniques to effectively enable the identification and modelling of early aspects in a semi-automated way.
Américo Sampaio, Awais Rashid, Paul Rayson
RE1
2004 XWebProcess: Agile Software Development for Web Applications
Américo Sampaio, Alexandre M. L. de Vasconcelos, Pedro R. Falcone Sampaio
ICWE1