Americo Sampaio | Universidade de Fortaleza (original) (raw)
Uploads
Papers by Americo Sampaio
One of the main challenges faced by current users of infrastructure-as-a-service (IaaS) clouds ar... more 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.
Cloud computing is changing the way applications are being developed, deployed and managed. Appli... more Cloud computing is changing the way applications are being developed, deployed and managed. Application developers can focus on business and functionality and leverage infrastructure clouds (IaaS) to provide them low cost resources (e.g., computation, storage, and networking) that can be controlled based on application needs. However, current IaaS cloud developers have to deal with daunting tasks to configure and deploy their applications in different cloud providers. This paper presents the Uni4Cloud approach that facilitates to model, deploy and configure complex applications in multiple infrastructure clouds. We demonstrate through an enterprise application case study how Uni4Cloud facilitates to deploy components (e.g., application server, database, load balancer) in multiple clouds using a model-based approach that helps to automatically configure and deploy applications independent of IaaS cloud provider. Moreover, the approach is based on cloud computing standards such as the Open Virtualization Format (OVF) and Open Cloud Computing Interface (OCCI) to favor interoperability and to avoid being locked in to specific cloud providers.
Identifying aspects at an early stage helps to achieve separation of crosscutting concerns in the... more 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 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.
The early identification and documentation of crosscutting concerns enables better change managem... more The early identification and documentation of crosscutting concerns enables better change management and traceability of requirements. Moreover, this also improves the early identification of candidate aspects in the design and implementation stages. Current techniques for identifying aspects in requirements are ineffective when requirements are complex or unstructured. This paper describes an approach that utilises corpus-based natural language processing (NLP) techniques to effectively enable the identification of aspects in a semi-automated way. The technique proposed here describes how unstructured sources of requirements (e.g., interviews, natural language description of the system) or requirements documents can be automatically mined to help the requirements engineer quickly identify and build a structured aspect-oriented model of the requirements.
Software product line engineering has emerged as an approach to developing software which targets... more Software product line engineering has emerged as an approach to developing software which targets a given domain. However, the processes involved in developing a software product line can be time consuming and error prone without adequate lifecycle tool support. In this paper we describe our approach, NAPLES, which uses natural language processing and aspect-oriented techniques to facilitate requirements analysis, commonality and variability analysis, concern identification to derive suitable feature oriented models for implementation.
Aspect-Oriented Requirements Engineering (AORE) aims at bringing the benefits achieved by separat... more Aspect-Oriented Requirements Engineering (AORE) aims at bringing the benefits achieved by separation of concerns (e.g., improved modularity, reusability and maintainability) to requirements engineering. In order to cope with costly tasks performed during AORE such as identifying concerns and structuring requirements in different models, tool support is vital to effectively reduce the burden of performing these various tasks. This demonstration describes how the EA-Miner tool provides automated support, based on natural language processing techniques, for mining various types of concerns from a variety of early stage requirements documents. The tool is implemented as an Eclipse plug-in and enables several features such as visualizing and editing the models and generating specification documents.
Aspect-Oriented Requirements Engineering (AORE) supports identification of crosscutting, aspectua... more Aspect-Oriented Requirements Engineering (AORE) supports identification of crosscutting, aspectual requirements as well as analysis of their influence on other requirements of the system. Identifying and analyzing aspectual requirements manually is very resource intensive due to their broadly scoped nature and the large volumes and ambiguity of input information from the stakeholders. In this paper we present a tool suite to support AORE in a scalable fashion. The tools support identification of aspectual requirements and their influences on other requirements, conflict detection and resolution between aspectual requirements, as well as requirements representation and requirements document structuring. A number of case studies, including two in an industrial setting, demonstrate the scalability and efficiency of the tool suite. They also show that its output is comparable to that of a requirements engineer carrying out the same tasks manually.
Aspect-Oriented Requirements Engineering (AORE) aims at improving separation of concerns in the p... more 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.
Aspect-Oriented requirements engineering helps to achieve early separation of concerns by support... more 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 dealt with in an effective way, 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 (part-of-speech and semantic tagging, word frequencies, etc.) to reason about the properties of the concerns and model their structure and relationships. The quality of the tool's output is comparable to that of an experienced requirements engineer carrying out the task manually while the performance is significantly better.
Aspect-oriented requirements engineering (AORE) provides separation of concerns at the requiremen... more Aspect-oriented requirements engineering (AORE) provides separation of concerns at the requirements level. In order to cope with concern identification and structuring into different requirements models, tool support is vital to effectively reduce the burden of performing various AORE tasks. This paper describes how the EA-Miner tool-based approach provides automated support for mining various types of concerns from a variety of early stage requirements documents and how these concepts can be structured into specific aspect-oriented requirements models (e.g., viewpoints-based, use-case-based). The key insight for early-stage requirements automation is the use of natural language processing to reason about properties of the requirements as well as the utilization of semantics revealed by the natural language analysis in building the models. Evaluation of EA-Miner shows promising results concerning time-effectiveness and accuracy of undertaking AORE activities and building requirements models. Moreover, an industrial case study conducted at Siemens AG investigated how the tool performs in a real-world setting by analysing what benefits it brings and challenges it faces during AORE analysis. The EA-Miner analysis enabled to find concerns that were considered relevant by a research team at Siemens that is re-implementing the investigated system with aspect-oriented languages. Moreover, the exposure of the tool to industrial requirements written by different developers also revealed some challenges imposed by the structure of the documentation and the different use of vocabulary terms hence providing new paths to explore and improve the tool in the future such as better pre-processing support, “domain synonym” identification and detection of poorly written requirements.
Most current aspect composition mechanisms rely on syntactic references to the base modules or wi... more Most current aspect composition mechanisms rely on syntactic references to the base modules or wildcard mechanisms quantifying over such syntactic references in pointcut expressions. This leads to the well-known problem of pointcut fragility. Semantics-based composition mechanisms aim to alleviate such fragility by focusing on the meaning and intention of the composition hence avoiding strong syntactic dependencies on the base modules. However, to date, there are no empirical studies validating whether semanticsbased composition mechanisms are indeed more expressive and less fragile compared to their syntax-based counterparts. In this paper we present a first study comparing semantics-and syntax-based composition mechanisms in aspect-oriented requirements engineering. In our empirical study the semantics-based compositions examined were found to be indeed more expressive and less fragile. The semantics-based compositions in the study also required one to reason about composition interdependencies early on hence potentially reducing the overhead of revisions arising from later trade-off analysis and stakeholder negotiations. However, this added to the overhead of specifying the compositions themselves. Furthermore, since the semantics-based compositions considered in the study were based on natural language analysis, they required initial effort investment into lexicon building as well as strongly depended on advanced tool support to expose the natural language semantics. Source: Transactionality 2 pointcut P15.2.1: include(Specifiy[complaint]) and include(Update[complaint]) and include(Register[ health unit]) and include(Register[speciality]) and include(Register[employee]) and include( Register[disease]) and include(Register[symptom]) and inlcude(Request[sanitary license]) and include (Update[state of the sanitary license]) 3 pointcut P15.2.2: include(Detect[persistence expception ] and include(Detect[robustness exception]) 4 advice around: P15.2.1 5 Commit 6 Roll back 7 advice after: P15.2.2 8 Roll back
Aspect-Oriented Requirements Engineering (AORE) aims at improving separation of concerns in the p... more 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.
One of the main challenges faced by current users of infrastructure-as-a-service (IaaS) clouds ar... more 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.
Cloud computing is changing the way applications are being developed, deployed and managed. Appli... more Cloud computing is changing the way applications are being developed, deployed and managed. Application developers can focus on business and functionality and leverage infrastructure clouds (IaaS) to provide them low cost resources (e.g., computation, storage, and networking) that can be controlled based on application needs. However, current IaaS cloud developers have to deal with daunting tasks to configure and deploy their applications in different cloud providers. This paper presents the Uni4Cloud approach that facilitates to model, deploy and configure complex applications in multiple infrastructure clouds. We demonstrate through an enterprise application case study how Uni4Cloud facilitates to deploy components (e.g., application server, database, load balancer) in multiple clouds using a model-based approach that helps to automatically configure and deploy applications independent of IaaS cloud provider. Moreover, the approach is based on cloud computing standards such as the Open Virtualization Format (OVF) and Open Cloud Computing Interface (OCCI) to favor interoperability and to avoid being locked in to specific cloud providers.
Identifying aspects at an early stage helps to achieve separation of crosscutting concerns in the... more 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 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.
The early identification and documentation of crosscutting concerns enables better change managem... more The early identification and documentation of crosscutting concerns enables better change management and traceability of requirements. Moreover, this also improves the early identification of candidate aspects in the design and implementation stages. Current techniques for identifying aspects in requirements are ineffective when requirements are complex or unstructured. This paper describes an approach that utilises corpus-based natural language processing (NLP) techniques to effectively enable the identification of aspects in a semi-automated way. The technique proposed here describes how unstructured sources of requirements (e.g., interviews, natural language description of the system) or requirements documents can be automatically mined to help the requirements engineer quickly identify and build a structured aspect-oriented model of the requirements.
Software product line engineering has emerged as an approach to developing software which targets... more Software product line engineering has emerged as an approach to developing software which targets a given domain. However, the processes involved in developing a software product line can be time consuming and error prone without adequate lifecycle tool support. In this paper we describe our approach, NAPLES, which uses natural language processing and aspect-oriented techniques to facilitate requirements analysis, commonality and variability analysis, concern identification to derive suitable feature oriented models for implementation.
Aspect-Oriented Requirements Engineering (AORE) aims at bringing the benefits achieved by separat... more Aspect-Oriented Requirements Engineering (AORE) aims at bringing the benefits achieved by separation of concerns (e.g., improved modularity, reusability and maintainability) to requirements engineering. In order to cope with costly tasks performed during AORE such as identifying concerns and structuring requirements in different models, tool support is vital to effectively reduce the burden of performing these various tasks. This demonstration describes how the EA-Miner tool provides automated support, based on natural language processing techniques, for mining various types of concerns from a variety of early stage requirements documents. The tool is implemented as an Eclipse plug-in and enables several features such as visualizing and editing the models and generating specification documents.
Aspect-Oriented Requirements Engineering (AORE) supports identification of crosscutting, aspectua... more Aspect-Oriented Requirements Engineering (AORE) supports identification of crosscutting, aspectual requirements as well as analysis of their influence on other requirements of the system. Identifying and analyzing aspectual requirements manually is very resource intensive due to their broadly scoped nature and the large volumes and ambiguity of input information from the stakeholders. In this paper we present a tool suite to support AORE in a scalable fashion. The tools support identification of aspectual requirements and their influences on other requirements, conflict detection and resolution between aspectual requirements, as well as requirements representation and requirements document structuring. A number of case studies, including two in an industrial setting, demonstrate the scalability and efficiency of the tool suite. They also show that its output is comparable to that of a requirements engineer carrying out the same tasks manually.
Aspect-Oriented Requirements Engineering (AORE) aims at improving separation of concerns in the p... more 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.
Aspect-Oriented requirements engineering helps to achieve early separation of concerns by support... more 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 dealt with in an effective way, 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 (part-of-speech and semantic tagging, word frequencies, etc.) to reason about the properties of the concerns and model their structure and relationships. The quality of the tool's output is comparable to that of an experienced requirements engineer carrying out the task manually while the performance is significantly better.
Aspect-oriented requirements engineering (AORE) provides separation of concerns at the requiremen... more Aspect-oriented requirements engineering (AORE) provides separation of concerns at the requirements level. In order to cope with concern identification and structuring into different requirements models, tool support is vital to effectively reduce the burden of performing various AORE tasks. This paper describes how the EA-Miner tool-based approach provides automated support for mining various types of concerns from a variety of early stage requirements documents and how these concepts can be structured into specific aspect-oriented requirements models (e.g., viewpoints-based, use-case-based). The key insight for early-stage requirements automation is the use of natural language processing to reason about properties of the requirements as well as the utilization of semantics revealed by the natural language analysis in building the models. Evaluation of EA-Miner shows promising results concerning time-effectiveness and accuracy of undertaking AORE activities and building requirements models. Moreover, an industrial case study conducted at Siemens AG investigated how the tool performs in a real-world setting by analysing what benefits it brings and challenges it faces during AORE analysis. The EA-Miner analysis enabled to find concerns that were considered relevant by a research team at Siemens that is re-implementing the investigated system with aspect-oriented languages. Moreover, the exposure of the tool to industrial requirements written by different developers also revealed some challenges imposed by the structure of the documentation and the different use of vocabulary terms hence providing new paths to explore and improve the tool in the future such as better pre-processing support, “domain synonym” identification and detection of poorly written requirements.
Most current aspect composition mechanisms rely on syntactic references to the base modules or wi... more Most current aspect composition mechanisms rely on syntactic references to the base modules or wildcard mechanisms quantifying over such syntactic references in pointcut expressions. This leads to the well-known problem of pointcut fragility. Semantics-based composition mechanisms aim to alleviate such fragility by focusing on the meaning and intention of the composition hence avoiding strong syntactic dependencies on the base modules. However, to date, there are no empirical studies validating whether semanticsbased composition mechanisms are indeed more expressive and less fragile compared to their syntax-based counterparts. In this paper we present a first study comparing semantics-and syntax-based composition mechanisms in aspect-oriented requirements engineering. In our empirical study the semantics-based compositions examined were found to be indeed more expressive and less fragile. The semantics-based compositions in the study also required one to reason about composition interdependencies early on hence potentially reducing the overhead of revisions arising from later trade-off analysis and stakeholder negotiations. However, this added to the overhead of specifying the compositions themselves. Furthermore, since the semantics-based compositions considered in the study were based on natural language analysis, they required initial effort investment into lexicon building as well as strongly depended on advanced tool support to expose the natural language semantics. Source: Transactionality 2 pointcut P15.2.1: include(Specifiy[complaint]) and include(Update[complaint]) and include(Register[ health unit]) and include(Register[speciality]) and include(Register[employee]) and include( Register[disease]) and include(Register[symptom]) and inlcude(Request[sanitary license]) and include (Update[state of the sanitary license]) 3 pointcut P15.2.2: include(Detect[persistence expception ] and include(Detect[robustness exception]) 4 advice around: P15.2.1 5 Commit 6 Roll back 7 advice after: P15.2.2 8 Roll back
Aspect-Oriented Requirements Engineering (AORE) aims at improving separation of concerns in the p... more 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.