Américo Sampaio
Lancaster University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Américo Sampaio.
automated software engineering | 2005
Américo Sampaio; Ruzanna Chitchyan; Awais Rashid; Paul Rayson
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.
empirical software engineering and measurement | 2007
Américo Sampaio; Phil Greenwood; Alessandro Garcia; Awais Rashid
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.
model driven engineering languages and systems | 2005
Neil Loughran; Américo Sampaio; Awais Rashid
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.
ieee international conference on cloud computing technology and science | 2011
Américo Sampaio; Nabor C. Mendonça
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.
aspect-oriented software development | 2009
Ruzanna Chitchyan; Phil Greenwood; Américo Sampaio; Awais Rashid; Alessandro Garcia; Lyrene Fernandes da Silva
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 semantics based 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 (AORE). 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.
international conference on requirements engineering | 2005
Américo Sampaio; Awais Rashid; Paul Rayson
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.
Scientific Programming | 2006
Ruzanna Chitchyan; Américo Sampaio; Awais Rashid; Paul Rayson
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.
international conference on software engineering | 2008
Américo Sampaio; Awais Rashid
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.
Journal of the Brazilian Computer Society | 2004
Américo Sampaio; Alexandre Vasconcelos; Pedro Sampaio
Agile software processes emerged to address the issue of building software on time and within the planned budget. To adopt an agile process, it is imperative to analyze and evaluate its effectiveness in supporting high quality software development while complying with stringent time constraints. In this paper we describe an agile method for Web-based application development (XWebProcess) and an experiment conducted with a group of forty senior undergraduate students to assess the quality/speed effectiveness of the proposed method vis-à-vis the effectiveness of Extreme Programming (XP). The results have shown that the process proposed is equally agile when compared to XP, moreover, surveys conducted as part of the experiment pointed out that XWebProcess is more suitable to Web development in dimensions such as requirements gathering, user interface and navigation design, and software testing, therefore leading to better quality software.
international conference on cloud computing | 2015
Marcelo Gonçalves; Matheus Cunha; Nabor C. Mendonça; Américo Sampaio
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 applications performance under certain resource configurations and workloads, based upon the applications 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.