04.12.2012 Views

Chapter 4 Aspect-Oriented Requirements Analysis

Chapter 4 Aspect-Oriented Requirements Analysis

Chapter 4 Aspect-Oriented Requirements Analysis

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Isabel Sofia Sousa Brito<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong><br />

Dissertação apresentada para obtenção do<br />

Grau de Doutor em Informática pela<br />

Universidade Nova de Lisboa, Faculdade de<br />

Ciência e Tecnologia.<br />

Lisboa<br />

2008


<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong><br />

Post-Graduation student: Isabel Sofia Sousa Brito<br />

Post-Graduation Supervisor: PhD Professor Ana Maria Dinis Moreira<br />

Lisboa<br />

2008<br />

III


Acknowledgments<br />

I would like to express my appreciation to my supervisor, Ana Moreira, whose expertise,<br />

understanding, friendship and, more important, patience, added considerably to my knowledge. She<br />

provided me with direction, technical support and became more of a mentor and friend, than a<br />

supervisor. I would like to thank her son, Tomi, and her husband, José Braz, who have given up some<br />

time of his mother and his wife, respectively.<br />

A special word of appreciation goes to João Araújo for helpful discussions on previous versions of this<br />

PhD thesis and, more important, for his friendship.<br />

I must also thanks João Paulo Barros and Luís Domingues for help me in preparation of this thesis<br />

proposing greats reviews. Also, I would like to thank the reviewers of my publications for their very<br />

thorough comments and useful links that helped me improve this work.<br />

I wish to thank André Marques, Elisabete Soeiro, Filipe Vieira, José Magno, Marco Brasil, Marcos<br />

Larsen, Marta Tabares, Miguel Goulão, Nuno Ferreira, Rita Ribeiro and Sérgio Agostinho for<br />

contributing on the validation of some of the techniques proposed here. These contributions have been<br />

partially supported by Fundação para a Ciência e a Tecnologia (project SOFTAS<br />

POSC/EIA/60189/2004). Thanks to Fundação para a Ciência e a Tecnologia for this opportunity.<br />

Very special thanks goes to João Paulo Barros, João Paulo Trindade, Maria Basilio and Miguel<br />

Tavares for our “philosophical” debates, exchanges of knowledge, and, some times, supporting my<br />

frustration during our work in Conselho Directivo at ESTIG. Also, to my colleagues Elsa Rodrigues,<br />

Luís Garcia, Luís Bruno, Sofia Soares, Roberto Espenica, Carlos Pimental and Ludovina Pereira for<br />

supporting my “discussions” and “crazy” ideas. You have an extraordinary level of professionalism!<br />

I would also like to thank my oldest friends, Alcobia family and Ruizinho, Milú, Rosario, Ana and<br />

Sebastião family, Fatinha and family, who suffered with my absence on "farras".<br />

I must also acknowledge my dogs, Fofinho, Luna and Inis that, with “abanadelas de rabo” and<br />

“lambidelas”, had always comforted me.<br />

Finally, and most important, I wish to thank my family because they are “responsible” for what I am<br />

now: my father Ezequiel and his girl-friend Mariela; my uncles, Dina and Toino, Lita and Oliveira,<br />

Lisete and Valdemar, Vital and Felisberto; cousins Manú, Erica and Lourenço, Valentina and sons,<br />

Jorge and Cristina; Luís; my grand-grandparents Mami and Papi; my grandparents Joaquim and<br />

V


Lucília. I wish to thank Adriana, Carlos and Filipe that are part of this family a long time a go. I would<br />

also like to thank my boy-friend Luís for the support and understanding he provided me during these<br />

three years of common life. I must thank my mother, Odilia, for the encouragement and support she<br />

provided me through my entire life.<br />

Muitos beijinhos e obrigada a todos!<br />

VI


Abstract<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development (AOSD) aims at providing means to identify, modularise,<br />

specify and compose crosscutting concerns. Crosscutting concerns are responsible for producing<br />

scattered and tangled representations that are difficult to maintain and evolve. AOSD was introduced<br />

first at programming level, with <strong>Aspect</strong>-<strong>Oriented</strong> Programming, where crosscutting concerns, known<br />

as aspects, are handled in code. <strong>Aspect</strong>-oriented concepts have been propagated up the software<br />

development lifecycle, to software design, software architecture and requirements engineering. The<br />

primary aim of this PhD thesis was to address crosscutting concerns at the requirements level. The end<br />

result is the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA) approach. AORA, with associated<br />

process model, techniques and tool, supports separation, specification, conflict resolution and<br />

composition of crosscutting and non-crosscutting concerns at the requirements level.<br />

The AORA process model is composed of three plans, each one divided in tasks. The first two plans<br />

contribute to identify crosscutting concerns in requirements documents and to minimize the tyranny of<br />

dominant decomposition. This is achieved by handling all concerns in the same fashion using a unique<br />

template. This template supports a complete and consistent set of descriptions and representations of<br />

concerns, be them crosscutting or non-crosscutting. The third and final plan contributes with the<br />

ability to compose crosscutting and non-crosscutting concerns to clearly understand the system<br />

requirements and to identify and analyse critical trade-offs between concerns.<br />

The AORA conflict management technique is applied during the composition activity. The Analytical<br />

Hierarchical Process and Weighted Average multi-criteria analysis methods are used to find, given a<br />

set of alternatives and a set of decision criteria, the best alternative for a given problem. It is important<br />

to understand well each concern, study the level of impact that each one may have on others and<br />

decide on their relative importance before any solution decision is made.<br />

A set of guidelines are proposed to support concern horizontal forward traceability. Tool’s<br />

functionalities are developed to support horizontal backward traceability as well as vertical<br />

traceability. Thanks to these guidelines and the tool, our approach promotes better understanding of<br />

concerns, and supports validation of specifications and compositions of concerns for the stakeholders<br />

through functionalities that guarantees consistency of the concerns’ specification and their<br />

composition rules.<br />

AORA has been assessed through independent case studies and users, as well as empirical<br />

comparisons with respect to other <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering approaches.<br />

VII


VIII


Sumário<br />

O desenvolvimento de software orientado pelos aspectos propõe meios para identificar, modularizar,<br />

especificar e compor assuntos transversais. Estes assuntos são responsáveis por produzir<br />

representações dispersas e emaranhadas. O resultado são representações difíceis de compreender,<br />

manter e fazer evoluir. Os aspectos surgiram primeiro com a programação orientada pelos aspectos,<br />

onde os assuntos transversais, ou “aspectos”, são tratados ao nível do código. Os conceitos da<br />

programação orientada pelos aspectos foram depois sendo propagados para as fases anteriores do<br />

processo de desenvolvimento, por exemplo, desenho e engenharia de requisitos.<br />

O objectivo desta tese de doutoramento foi criar uma abordagem para tratar assuntos transversais e não<br />

transversais para a engenharia de requisitos. No final, os conceitos sobre orientação pelos aspectos,<br />

requisitos não-funcionais e engenharia de requisitos foram articuladas numa abordagem denominada<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA). O AORA, através do seu modelo do processo,<br />

técnicas e ferramenta, suporta separação, especificação, gestão de conflitos e composição dos assuntos<br />

transversais e não transversais.<br />

O processo é composto por três planos principais, cada um composto por actividades. Os dois<br />

primeiros planos contribuem para identificar e especificar assuntos transversais e ainda para minimizar<br />

a tirania da decomposição dominante. Isto é conseguido através da definição de uma tabela onde cada<br />

assunto é especificado de forma completa, consistente e uniforme, independentemente da sua natureza<br />

transversal. O terceiro plano contribui para a composição de assuntos transversais e não transversais,<br />

facilitando, por um lado, a compreensão de todo o sistema e, por outro, a identificação e análise de<br />

situações de conflito.<br />

A gestão de conflitos do AORA realiza-se durante a composição de assuntos. Métodos multi-critério,<br />

como o Analytical Hierarchical Process ou o Weighted Average usam-se para encontrar, dado um<br />

conjunto de alternativas e critérios de decisão, a melhor opção para um dado problema. Torna-se assim<br />

importante compreender cada assunto, estudar o impacto de cada um nos restantes e decidir acerca da<br />

sua importância relativa antes de se avançar para uma solução.<br />

Um conjunto de directrizes ajuda a gerir as relações entre assuntos e artefactos do desenho de software<br />

para a garantir forward traceability. A ferramenta do AORA possui funcionalidades que permitem<br />

garantir backward e vertical traceability. Estas directrizes e a ferramenta garantem a validação e a<br />

consistência das especificações e composições dos assuntos.<br />

IX


O AORA foi avaliado com casos de estudo, por vários utilizadores e, ainda, através de comparações<br />

empíricas com outras abordagens da área de engenharia de requisitos orientadas pelos aspectos.<br />

X


Acronyms<br />

This section contains a list of acronyms used in the thesis.<br />

ACRONYM EXPANSION<br />

AHP Analytical Hierarchical Process<br />

AORA <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong><br />

AORE <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering<br />

AOSD <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

ARCaDE <strong>Aspect</strong>ual <strong>Requirements</strong> Composition and Decision Support<br />

ASSD <strong>Aspect</strong>s Specification for the Space Domain<br />

CORE Concern <strong>Oriented</strong> <strong>Requirements</strong> Engineering<br />

MCDM Multiple Criteria Decision Making<br />

MDD Model-Driven Development<br />

MDSOC Multi-Dimensional Separation of Concerns<br />

MRAT Multi-Dimensional <strong>Requirements</strong> <strong>Analysis</strong> Tool<br />

NFR Non-Functional <strong>Requirements</strong><br />

OMG Object Management Group<br />

PREView Process and <strong>Requirements</strong> Engineering Viewpoints<br />

RDL <strong>Requirements</strong> Description Language<br />

SIG Softgoal Interdependency Graph<br />

SOFTAS Software Development with <strong>Aspect</strong>s<br />

TAO Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development project<br />

UML Unified Modelling Language<br />

XML Extensible Markup Language<br />

XI


XII


List of Contents<br />

<strong>Chapter</strong> 1 Introduction .............................................................................................................................1<br />

1.1 Motivation...............................................................................................................................2<br />

1.2 Objectives of this PhD thesis..................................................................................................4<br />

1.3 Validation of the results..........................................................................................................5<br />

1.4 Contribution of the thesis........................................................................................................6<br />

1.5 Structure of the thesis ...........................................................................................................10<br />

<strong>Chapter</strong> 2 <strong>Requirements</strong> Engineering ....................................................................................................13<br />

2.1 What is a requirement? .........................................................................................................14<br />

2.2 What is requirements engineering?.......................................................................................15<br />

2.3 An overview of requirements engineering approaches.........................................................19<br />

2.3.1 The use case approach..................................................................................................19<br />

2.3.2 Goal-oriented approaches.............................................................................................22<br />

2.3.3 Viewpoint-oriented approaches ...................................................................................26<br />

2.4 Summary...............................................................................................................................30<br />

<strong>Chapter</strong> 3 <strong>Aspect</strong>-<strong>Oriented</strong> Software Development...............................................................................31<br />

3.1 Separation of concerns..........................................................................................................32<br />

3.2 What is a concern?................................................................................................................32<br />

3.3 A new step towards improved separation of concerns..........................................................33<br />

3.4 A brief introduction to aspect-orientation.............................................................................34<br />

3.4.1 Symmetric versus asymmetric approaches ..................................................................35<br />

3.4.2 <strong>Aspect</strong>-<strong>Oriented</strong> Programming ....................................................................................36<br />

3.5 <strong>Aspect</strong>-oriented requirements engineering approaches ........................................................38<br />

3.5.1 <strong>Aspect</strong>-oriented component requirements engineering................................................39<br />

3.5.2 <strong>Aspect</strong>-oriented software development with use cases................................................40<br />

3.5.3 Cosmos.........................................................................................................................42<br />

3.5.4 <strong>Aspect</strong>-oriented requirements engineering with ARCaDE ..........................................44<br />

3.5.5 Concern oriented requirements engineering ................................................................46<br />

3.5.6 <strong>Aspect</strong>-oriented scenario modelling.............................................................................47<br />

3.5.7 Theme...........................................................................................................................48<br />

3.5.8 <strong>Requirements</strong> description language .............................................................................50<br />

3.5.9 AOV-Graph..................................................................................................................51<br />

3.6 Conclusions...........................................................................................................................52<br />

<strong>Chapter</strong> 4 <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong>...............................................................................55<br />

4.1 The AORA approach ............................................................................................................56<br />

4.1.1 Identify concerns..........................................................................................................58<br />

4.1.2 Specify concerns ..........................................................................................................63<br />

4.1.3 Compose concerns .......................................................................................................65<br />

4.2 The AORA metamodel .........................................................................................................69<br />

4.3 Illustrating AORA with an example .....................................................................................74<br />

4.3.1 Identify concerns..........................................................................................................75<br />

4.3.2 Specify concerns ..........................................................................................................77<br />

4.3.3 Compose concerns .......................................................................................................80<br />

4.4 Conclusions...........................................................................................................................83<br />

<strong>Chapter</strong> 5 AORA Traceability and Tool Support...................................................................................85<br />

5.1 Traceability support ..............................................................................................................86<br />

5.1.1 Horizontal traceability..................................................................................................87<br />

5.1.2 Vertical traceability......................................................................................................96<br />

5.2 The AORA tool support........................................................................................................96<br />

5.2.1 The tool architecture ....................................................................................................97<br />

5.2.2 The tool specification features ...................................................................................105<br />

5.2.3 The tool generic management features.......................................................................108<br />

XIII


5.2.4 Related work.............................................................................................................. 110<br />

5.3 Conclusions........................................................................................................................ 111<br />

<strong>Chapter</strong> 6 Handling Conflicts in AORA.............................................................................................. 113<br />

6.1 Multi-Criteria Decision Making: an overview................................................................... 114<br />

6.2 An introduction to the AHP method .................................................................................. 117<br />

6.3 Applying AHP to the AORA approach.............................................................................. 120<br />

6.3.1 Exploring the use of AHP.......................................................................................... 120<br />

6.3.2 Applying the AHP method ........................................................................................ 121<br />

6.3.3 Discussion of the results............................................................................................ 126<br />

6.3.4 A summary of our initial experiments with AHP...................................................... 127<br />

6.4 AHP versus Weighted Average ......................................................................................... 128<br />

6.5 Related work ...................................................................................................................... 130<br />

6.6 Summary ............................................................................................................................ 134<br />

<strong>Chapter</strong> 7 Evaluation of the AORA Approach.................................................................................... 135<br />

7.1 A Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Project........................................ 136<br />

7.2 A quantitative analysis of AORE....................................................................................... 137<br />

7.2.1 Applying AORE metrics to the TAO requirements documents ................................ 139<br />

7.2.2 Conclusions ............................................................................................................... 148<br />

7.3 A qualitative analysis of AORE......................................................................................... 149<br />

7.3.1 Traceability................................................................................................................ 151<br />

7.3.2 Modularization of crosscutting requirements............................................................ 152<br />

7.3.3 Identification of crosscutting requirements ............................................................... 153<br />

7.3.4 Composition of crosscutting requirements................................................................ 153<br />

7.3.5 Conflict management ................................................................................................ 154<br />

7.3.6 Tool support .............................................................................................................. 155<br />

7.3.7 Validation .................................................................................................................. 155<br />

7.3.8 Mapping crosscutting requirements to later development stages.............................. 156<br />

7.3.9 Maturity..................................................................................................................... 156<br />

7.3.10 Summary ................................................................................................................... 157<br />

7.4 AORA Tested in Projects................................................................................................... 158<br />

7.4.1 The role of AORA in the SOFTAS Project............................................................... 158<br />

7.4.2 The role of AORA in ASSD Project ......................................................................... 163<br />

7.5 Conclusions........................................................................................................................ 165<br />

<strong>Chapter</strong> 8 The AORA Refinement for MDD ...................................................................................... 167<br />

8.1 An introduction to Model-Driven Development................................................................ 169<br />

8.2 AORA refinement with MDD............................................................................................ 170<br />

8.3 AORA refinement example................................................................................................ 176<br />

8.4 Problems and limitations.................................................................................................... 177<br />

8.5 Conclusions and future work ............................................................................................. 177<br />

<strong>Chapter</strong> 9 The AORA Design Rationale ............................................................................................. 181<br />

9.1 AORA first version ............................................................................................................ 182<br />

9.2 AORA second version........................................................................................................ 185<br />

9.3 AORA third version........................................................................................................... 189<br />

9.3.1 The XML schema for concern specification ............................................................. 191<br />

9.3.2 The XML Schema for Composition Specifications .................................................. 192<br />

9.4 Major problems and their resolution.................................................................................. 194<br />

9.5 Conclusions........................................................................................................................ 197<br />

<strong>Chapter</strong> 10 Conclusions and Future Work .......................................................................................... 199<br />

10.1 Summarising the goals of the thesis................................................................................... 199<br />

10.2 Results of the thesis............................................................................................................ 200<br />

10.3 Future work on AORA....................................................................................................... 202<br />

10.4 Final remarks...................................................................................................................... 203<br />

References ........................................................................................................................................... 205<br />

XIV


List of Figures<br />

Figure 2.1 The requirements engineering process..................................................................................16<br />

Figure 2.2 An use case model for HMS.................................................................................................21<br />

Figure 2.3 Representations for the three types of softgoals ...................................................................24<br />

Figure 2.4 Representations for softgoal contributions ...........................................................................24<br />

Figure 2.5 NFR framework process .......................................................................................................25<br />

Figure 2.6 Decomposing security softgoal.............................................................................................26<br />

Figure 2.7 Preview process ....................................................................................................................29<br />

Figure 3.1 Separation of crosscutting concerns......................................................................................34<br />

Figure 3.2 <strong>Aspect</strong> weaver.......................................................................................................................37<br />

Figure 3.3 Use case slice........................................................................................................................41<br />

Figure 3.4 UML elements for each use case slice..................................................................................41<br />

Figure 3.5 Logical concerns from GPS cache........................................................................................43<br />

Figure 3.6 Logical concerns from GPS cache........................................................................................43<br />

Figure 3.7 AORE with ARCaDe............................................................................................................44<br />

Figure 3.8 Concern oriented requirements engineering process ............................................................46<br />

Figure 3.9 Scenario modelling with aspects...........................................................................................48<br />

Figure 3.10 Theme/Doc Views ..............................................................................................................49<br />

Figure 4.1 AORA model ........................................................................................................................57<br />

Figure 4.2 AORA main tasks process described using an activity diagram ..........................................58<br />

Figure 4.3 Identify concerns process......................................................................................................59<br />

Figure 4.4 Specify concern process........................................................................................................63<br />

Figure 4.5 Compose concerns process ...................................................................................................65<br />

Figure 4.6 Composition rules between concerns....................................................................................68<br />

Figure 4.7 A four-layered architecture...................................................................................................70<br />

Figure 4.8 AORA metamodel packages.................................................................................................70<br />

Figure 4.9 ConcernSpecification of the AORA metamodel...................................................................71<br />

Figure 4.10 Concern composition of the AORA metamodel.................................................................72<br />

Figure 4.11 AORA UML profile............................................................................................................74<br />

Figure 4.12 Security SIG applied to enter subway.................................................................................76<br />

Figure 5.1 The traceability schema ........................................................................................................86<br />

Figure 5.2 Use case diagram for Enter Subway .....................................................................................90<br />

Figure 5.3 Sequence diagram for EnterSubway.....................................................................................91<br />

Figure 5.4 Resulting composition of Enter Subway sequence diagram (Figure 5.3) with its required<br />

concerns on MPES ..........................................................................................................................93<br />

Figure 5.5 Database_API architecture....................................................................................................97<br />

Figure 5.6 Packages of the tool architecture ..........................................................................................98<br />

Figure 5.7 Composition rule validation architecture..............................................................................99<br />

Figure 5.8 Overall AORA architecture ................................................................................................100<br />

Figure 5.9 Project XML tag.................................................................................................................101<br />

Figure 5.10 Stakeholders XML tag......................................................................................................101<br />

Figure 5.11 Concern XML tag.............................................................................................................103<br />

Figure 5.12 Matchpoint XML tag ........................................................................................................104<br />

Figure 5.13 History XML tag...............................................................................................................104<br />

Figure 5.14 Operators XML tag ..........................................................................................................105<br />

Figure 5.15 Tool three main views (left) and concern specification window (right)...........................106<br />

Figure 5.16 MatchPoints window ........................................................................................................107<br />

Figure 5.17 "Composition rule editor” window...................................................................................107<br />

Figure 5.18 History window.................................................................................................................109<br />

Figure 5.19 Decomposition and Contribution graph............................................................................109<br />

XV


Figure 6.1 AHP hierarchical tree......................................................................................................... 117<br />

Figure 6.2 Graphical representation of the enter subway match point ................................................ 122<br />

Figure 7.1 Number of Concern Diffusion over Artefacts per approach .............................................. 141<br />

Figure 7.2 Number of Concern Diffusion over Operations per approach ........................................... 142<br />

Figure 7.3 Number of Concern Diffusion over LOC per approach..................................................... 144<br />

Figure 7.4 Number of Coupling Between Artefacts per approach ...................................................... 145<br />

Figure 7.5 Number of Lack of Cohesion in Operations per approach................................................. 146<br />

Figure 7.6 Number of Artefacts per approach..................................................................................... 146<br />

Figure 7.7 Number of Vocabulary Size per approach ......................................................................... 147<br />

Figure 7.8 Number of Weighted Operations per Artefact per approach ............................................. 148<br />

Figure 8.1 MDD transformation.......................................................................................................... 170<br />

Figure 8.2 AORA refinement metamodel packages............................................................................ 171<br />

Figure 8.3 Responsibility specification package of the AORA refinement metamodel...................... 172<br />

Figure 8.4 Responsibility composition of the AORA refinement metamodel .................................... 174<br />

Figure 8.5 AORA refinement UML profile......................................................................................... 175<br />

Figure 8.6 Responsibility composition rule for responsibility match point of EnterSubway concern 176<br />

Figure 9.1 A requirements model for quality attributes ...................................................................... 184<br />

Figure 9.2 A model for advanced separation of concern..................................................................... 186<br />

Figure 9.3 XML Schema of the definition of a concern...................................................................... 191<br />

Figure 9.4 XML schema for composition in a match point................................................................. 192<br />

XVI


List of Tables<br />

Table 2.1 Reserve room use case specification......................................................................................21<br />

Table 4.1 A template to specify concerns ..............................................................................................62<br />

Table 4.2 Match point identification......................................................................................................66<br />

Table 4.3 Relating stakeholders with match points................................................................................66<br />

Table 4.4 Contributions for non-functional concerns ............................................................................77<br />

Table 4.5 Template for Enter Subway concern......................................................................................78<br />

Table 4.6 Template for Response Time concern....................................................................................79<br />

Table 4.7 Template for Validate Card concern ......................................................................................80<br />

Table 4.8 Match points identification ....................................................................................................81<br />

Table 4.9 Match points table in a stakeholder point of view..................................................................82<br />

Table 5.1 A guideline to derive a use case model from a set of concern templates...............................89<br />

Table 5.2 A guideline to derive an activity diagram from a use case ....................................................90<br />

Table 5.3 A guideline to derive a sequence diagram from a use case....................................................91<br />

Table 5.4 Possible mapping of composition operators to sequence diagram fragments........................92<br />

Table 5.5 Traceability matrix between concern and use cases and SIG ................................................94<br />

Table 5.6 Traceability matrix between stakeholders and actors from use-cases diagrams ....................94<br />

Table 5.7 Traceability matrix between concerns and their responsibility and sequence diagrams and<br />

their messages................................................................................................................................95<br />

Table 5.8 Traceability matrix between composition rules and sequence diagrams ...............................95<br />

Table 6.1 Decision matrix ....................................................................................................................116<br />

Table 6.2 Example of AHP pairwise classification of alternatives for a criterion ...............................118<br />

Table 6.3 Example of AHP pairwise assignment of weights (importance) between two criteria........118<br />

Table 6.4 Pairwise comparison matrix for criterion Contribution (4th level of tree)...........................122<br />

Table 6.5 Pairwise comparison matrix for importance of stakeholder Passenger (4th level of tree)...123<br />

Table 6.6 Pairwise comparison matrix for importance of stakeholder System Owner (4th level).......123<br />

Table 6.7 Pairwise comparison matrix for importance of stakeholder Developer (4th level)..............123<br />

Table 6.8 Pairwise comparison matrix for Stakeholders Importance criterion (3rd level of tree) and<br />

respective Priority Vector (calculated)........................................................................................123<br />

Table 6.9 Paiwise comparison of criteria weights (2nd level of tree) and respective Priority Vector<br />

(calculated) ..................................................................................................................................124<br />

Table 6.10 Priority matrix for level 3 plus final Vector.......................................................................125<br />

Table 6.11 Final Ranking (synthesis)...................................................................................................125<br />

Table 6.12 Final consistency ratio for all pairwise matrices................................................................126<br />

Table 6.13 Criteria weights ..................................................................................................................128<br />

Table 6.14 Alternatives classification, final priorities and ranking for Enter Subway match point.....129<br />

Table 7.1 A set of AOSD metrics ........................................................................................................138<br />

Table 7.2 A set of AORE metrics ........................................................................................................139<br />

Table 7.3 Mapping of AORE metrics notions into AORE approaches elements.................................140<br />

Table 7.4 The metrics results for AORE approaches...........................................................................141<br />

Table 7.5 A summary of approaches that support backward traceability ............................................151<br />

Table 7.6 A summary of approaches that support forward traceability ...............................................151<br />

Table 7.7 A summary of approaches that support vertical traceability................................................152<br />

Table 7.8 A summary of approaches that support modularization of crosscutting requirements ........152<br />

Table 7.9 A summary of approaches that support identification of crosscutting requirements ...........153<br />

Table 7.10 A summary of approaches that support composition of crosscutting requirements...........154<br />

Table 7.11 A summary of approaches that support conflict management ...........................................154<br />

Table 7.12 A summary of approaches that have tool support..............................................................155<br />

Table 7.13 A summary of approaches that support requirements validation.......................................155<br />

Table 7.14 A summary of how each of the selected approaches supports crosscutting requirements<br />

mapping .......................................................................................................................................156<br />

XVII


Table 7.15 A summary of the projects in which AORE approaches were used.................................. 156<br />

Table 7.16 Short summary of AORE approaches and the features that their support......................... 157<br />

Table 7.17 Retrieval concern template................................................................................................ 161<br />

Table 7.18 Match point identification ................................................................................................. 161<br />

Table 7.19 Contributions between concerns........................................................................................ 162<br />

Table 8.1 A guideline to refine a responsibility .................................................................................. 172<br />

Table 9.1 Template for quality attributes ............................................................................................ 184<br />

Table 9.2 Template to describe concern.............................................................................................. 186<br />

Table 9.3 A template to specify concerns............................................................................................ 190<br />

XVIII


1<br />

<strong>Chapter</strong> 1<br />

Introduction<br />

The general focus of the work developed for this PhD thesis is separation of concerns. In his book “A<br />

Discipline of Programming”, Dijkstra introduces the term “separation of concerns” to refer the ability<br />

of identifying, encapsulating and manipulating parts of software that are crucial to a particular goal or<br />

purpose (Dijkstra, 1976). Separation of concerns helps managing software complexity, enhancing<br />

understandability and traceability throughout the development process. It minimizes the impact of<br />

change by proposing encapsulation of different concerns in separate modules. Existing approaches to<br />

software development, such as those based on structured and object-oriented paradigms, were<br />

proposed with this principle in mind. However, these approaches are unable to modularize properties<br />

that cut across several other properties that compose the system. The code that implements each of<br />

these properties cannot be encapsulated in a single module, a class for example, and is typically spread<br />

along several modules. These properties, known as crosscutting concerns, are responsible for<br />

producing scattered code, where the implementation of a given property is not localized in a single<br />

module, and tangled code, where each module contains information about several distinct properties.<br />

Therefore, the final implementation is more difficult to understand, maintain and evolve.<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development (ACM, 2001) is another step towards achieving improved<br />

modularity during software development. <strong>Aspect</strong>-<strong>Oriented</strong> Software Development focuses on<br />

crosscutting concerns by providing means for their systematic identification, separation, representation<br />

and composition (Rashid, 2003). Crosscutting concerns are encapsulated in separate modules, known


as aspects, and composition mechanisms are later used to weave them back with other core modules,<br />

at loading time, compilation time, or run-time (Baniassad, 2006).<br />

Historically, most new software development approaches are introduced at the programming level and<br />

their concepts later move up the software lifecycle to be applied at the earlier phases, such as<br />

requirements engineering, architecture design and modelling. We have seen this evolution tendency, in<br />

the 70’s, with structured techniques and, in the late 80’s and early 90’s, with object-oriented<br />

techniques. Similarly to previous software development approaches, <strong>Aspect</strong>-<strong>Oriented</strong> Software<br />

Development was introduced first at programming level, with <strong>Aspect</strong>-<strong>Oriented</strong> Programming, where<br />

aspects are handled in code. A number of <strong>Aspect</strong>-<strong>Oriented</strong> Programming approaches have been<br />

proposed. These range from language mechanisms (<strong>Aspect</strong>J Project, 2007) to filter-based techniques<br />

(Bergmans, 2000) through traversal-oriented (Lieberherr, 2001) and multi-dimensional approaches<br />

(Tarr, 1999). Work has also been carried out to incorporate aspects, and hence separation of<br />

crosscutting concerns, at the design level mainly through extensions to the UML metamodel e.g.<br />

(Suzuki, 1999; Clarke, 2001; France, 2004; Clarke, 2005). However, crosscutting concerns are often<br />

present before the solution domain, such as in <strong>Requirements</strong> Engineering (Moreira, 2002; Sutton Jr,<br />

2002c; Rashid, 2003; Brito, 2003b; 2004; Clarke, 2005; Moreira, 2005a).<br />

The purpose of this PhD work is to create an approach, with associated process, techniques and<br />

supporting tools, to handle crosscutting and non-crosscutting concerns at the requirements level.<br />

The remaining of this chapter presents the motivation for our work, our main objectives, the validation<br />

of the results strategy, the contributions that resulted from our research and, finally, the structure of<br />

this document.<br />

1.1 Motivation<br />

Software development is a discipline in constant evolution. Its main focus has always been on<br />

improving the “separation of concerns” (Dijkstra, 1976) principle, by promoting abstraction,<br />

modularisation and composition techniques. In the past decades several software development<br />

paradigms, such as structured and object-oriented, have been proposed with this principle in mind.<br />

While these paradigms represent a large step towards improved abstraction, modularization and<br />

composition, there are still some concerns that do not align well with their decomposition criteria, and<br />

are therefore difficult to modularise. The final result is that the specification and implementation of<br />

those concerns are typically scattered along several core (base) modules, producing tangled<br />

representations that are difficult to maintain, reuse and evolve. Such concerns are known as<br />

2


crosscutting concerns, of which, logging, tracing, security and persistence are classical examples<br />

(Kiczales, 1997).<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development (AOSD) (ACM, 2001) aims at providing improved<br />

modularisation and composition mechanisms to handle crosscutting concerns. Crosscutting concerns<br />

are encapsulated in separate modules, known as aspects, and composition, or weaving, mechanisms<br />

are later used to weave them back to the base modules in compilation, loading or execution time<br />

(Baniassad, 2006).<br />

An interesting phenomenon in software development is that the concepts are usually experimented in<br />

the implementation phase and later tend to be abstracted and propagated to the earlier phases of the<br />

software lifecycle. We witnessed this evolution tendency before with structured programming and<br />

object-orientation, for example. A similar trend has been also happening to aspect-orientation. <strong>Aspect</strong>-<br />

oriented concepts have been propagated up the software development lifecycle, to Software Design<br />

(Herrero, 2000; Stein, 2002; France, 2004; Jacobson, 2004; Clarke, 2005), Software Architecture<br />

(Pinto, 2003; Barais, 2004) and <strong>Requirements</strong> Engineering (Moreira, 2002; Sutton Jr, 2002a; Rashid,<br />

2003; Baniassad, 2004; Brito, 2004; Baniassad, 2004a; Moreira, 2005a).<br />

The focus of our work is exactly on handling crosscutting concerns during <strong>Requirements</strong> Engineering.<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering (AORE) seeks to improve the modular representation of<br />

crosscutting concerns at requirements level. AORE should describe crosscutting concerns in separate<br />

modules and special composition rules are defined to support their influence on each other. In fact,<br />

early composition expresses projections among different concerns, allowing the identification of<br />

possible conflicting situations whenever a concern contributes negatively to others (Brito, 2004;<br />

Moreira, 2005a). This offers the opportunity to establish critical trade-offs even before the architecture<br />

design is derived, supporting the necessary negotiations among stakeholders (Rashid, 2003).<br />

Composition can also be used to allow developers to grasp the full picture of a broader part of the<br />

system.<br />

Existing techniques to <strong>Requirements</strong> Engineering provide good support for identification and<br />

treatment of requirements. However, these requirements approaches do not explicitly support, in an<br />

integrated fashion, all kinds of requirements, particularly crosscutting concerns. Moreover, these<br />

approaches suffer from the “tyranny of the dominant decomposition” (Tarr, 1999), as separation and<br />

representation of requirements is achieved through a single decomposition criterion, such as use case<br />

(Jacobson, 1992; Schneider, 1998), viewpoints (Finkelstein, 1996) and goals (Mylopoulos, 1992;<br />

Chung, 2000). <strong>Aspect</strong>s allow the modularization of crosscutting concerns that cannot be encapsulated<br />

using those typical requirements artefacts, and are typically spread across several of them. Common<br />

3


examples of crosscutting concerns are some non-functional requirements such as distribution,<br />

synchronization and security. However, functional concerns can also be crosscutting as demonstrated<br />

and discussed in (Baniassad, 2006) and (Rashid, 2006b). Therefore, if crosscutting functional or non-<br />

functional requirements are hard to isolate within individual modules, and not effectively modularised,<br />

it is not possible to reason about their effect on the system or on each other. Yet, neither the non-<br />

crosscutting requirements approaches reflect the separation of the crosscutting requirements, nor do<br />

they present mechanisms to compose such requirements in a successful manner without losing<br />

abstraction.<br />

According to Rashid et al., “an effective <strong>Requirements</strong> Engineering approach should reconcile the<br />

need to integrate functional and non-functional concerns with the need to modularize those that are<br />

crosscutting” (Rashid, 2003). Thus, effective <strong>Requirements</strong> Engineering approaches also remove any<br />

distinction about whether a concern is functional or non-functional hence facilitating uniform<br />

modelling of concerns and their crosscutting influences. Therefore, the difficulty in requirements<br />

engineering classical approaches is, on the one side, the modularization of certain types of concerns<br />

and, on the other side, composition mechanisms to reason about the impact crosscutting concerns have<br />

on others.<br />

The discussion above illustrates the need for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering (AORE)<br />

approaches. <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering fills the gap left by the traditional<br />

<strong>Requirements</strong> Engineering approaches by providing systematic means for the identification,<br />

modularization, representation and composition of crosscutting requirements, both functional and non-<br />

functional. <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA) is the approach we developed during the<br />

course of our research to handle crosscutting and non-crosscutting concerns at the requirements level.<br />

1.2 Objectives of this PhD thesis<br />

The objective of this PhD work is to create an approach, with associated process, techniques and<br />

supporting tools, to handle crosscutting and non-crosscutting concerns at the requirements level. To<br />

achieve this goal, we have created the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA) approach.<br />

Thus, AORA:<br />

• Supports the identification and modularization of crosscutting concerns.<br />

• Offers a technique to specify crosscutting and non-crosscutting concerns.<br />

• Offers a systematic method to identify and resolve conflicts.<br />

4


• Offers mechanisms for specifying concern compositions, crosscutting and non-<br />

crosscutting, to reason about the impact any of them can have on others.<br />

• Prevents the tyranny of the dominant decomposition symptoms.<br />

• Proposes a list of mappings to transform concerns, crosscutting and non-crosscutting, into<br />

artefacts at later development stages.<br />

• Explores mechanisms for forward and backward traceability.<br />

• Implements tool support for specification and composition of concerns.<br />

1.3 Validation of the results<br />

The ideal validation strategy we had in mind in the beginning required the AORA assessment in a real<br />

setting, performed by independent users. During the period in which this PhD work was developed,<br />

many other researchers started to investigate in “our” topic. The increased importance of the topic,<br />

even if worrying at times, since this PhD author worked as a full time lecturer during the whole period<br />

under evaluation, ended up contributing for an alternative, more interesting, validation strategy. So,<br />

the validation we adopted required the AORA assessment according to four perspectives:<br />

• Have different users applying the approach. AORA has been submitted to the<br />

assessment of five postgraduate students: one PhD student, José Magno; four master<br />

students, André Marques, Elisabete Soeiro, Filipe Vieira and Sérgio Agostinho; and three<br />

undergraduate students, Marcos Brasil, Marcus Larsen and Nuno Ferreira. In spite of their<br />

different backgrounds and maturity, they were able to apply the approach to different case<br />

studies and use AORA for different purposes.<br />

• Test the method and tools in different, if possible, independent, projects. AORA was<br />

applied in two real case studies: the space domain ground segment software in the context<br />

of the <strong>Aspect</strong> Specification for the Space Domain (ASSD) project funded by the European<br />

Space Agency (ESA) (Agostinho, 2006) and the Flight Plan Tower Interface system in the<br />

context of the Software Development with <strong>Aspect</strong>s (SOFTAS) project funded by the<br />

Fundação para a Ciência e a Tecnologia (SOFTAS, 2007).<br />

• Identify comparison criteria to evaluate AORA against other recent methods. A set<br />

of criteria was selected to compare several aspect-oriented requirements approaches,<br />

including AORA. The comparison criteria chosen were inspired by those proposed in the<br />

AOSD-Europe network (AOSD-European Network of Excellence, 2007).<br />

5


• Define a set of metrics for producing an empirical validation. Metrics for measuring<br />

some quality attributes in aspect-oriented software development (Sant’Anna, 2003;<br />

Garcia, 2005) were adapted to help us performing a quantitative evaluation of AORA. The<br />

adapted metrics were used to measure the results obtained by a selected set of aspect-<br />

oriented requirements engineering methods in the context of a Testbed for <strong>Aspect</strong><br />

<strong>Oriented</strong> Software Development (TAO Project, 2007).<br />

1.4 Contribution of the thesis<br />

This PhD work contributes to a seamless approach for aspect-orientation, supporting separation,<br />

specification, conflict resolution and composition of crosscutting and non-crosscutting concerns at the<br />

requirements level. The resulting artefacts are:<br />

• A model to identify, specify and compose crosscutting and non-crosscutting concerns.<br />

• A metamodel to define the involved concepts and their relationships rigorously.<br />

• A rigorous technique to identify and resolve conflicts.<br />

• A set of guidelines to support forward traceability and tool functionalities to support<br />

backward traceability.<br />

• A tool to support the approach.<br />

• A first step towards exploring the use of AORA in the Model-Driven Development<br />

paradigm.<br />

The <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> model is composed of plans and, each one, in tasks.<br />

Each plan is related to the approach goals, i.e., identify, specify and compose concerns. The first two<br />

plans (Identify and Specify concerns) contribute to offer effective means to identify crosscutting<br />

concerns in requirements documents and to minimize the tyranny of dominant decomposition. This is<br />

achieved by handling all concerns in the same fashion using a unique template. This template supports<br />

a complete and consistent set of descriptions and representations of concerns, be them crosscutting or<br />

non-crosscutting. The third and final plan (Compose concerns) contributes with the ability to compose<br />

crosscutting and non-crosscutting concerns to clearly understand the system requirements and to<br />

identify and analyse critical trade-offs between concerns.<br />

6


A metamodel defines the main AORA concepts as an extension of the Unified Modelling Language<br />

metamodel, allowing a language designer or methodologist to better capture, analyze and understand<br />

our approach.<br />

The AORA rigorous conflict management technique uses Multi-Criteria Decision Making methods,<br />

in particular the Weighted Average (Dong, 1987) and the Analytical Hierarchical Process (Saaty,<br />

1980), to rank conflicting concerns. Conflict identification and resolution is handled during<br />

composition. It is important to understand well each concern, study the level of impact that each one<br />

may have on others and decide on their relative importance before any solution decision is made.<br />

A set of guidelines to support traceability is also offered. These guidelines offer a seamless transition<br />

of concerns to concrete UML artefacts (UML, 2004). A set of functionalities of AORA tool supports<br />

backward horizontal and vertical traceability. These mechanisms promote better understanding of<br />

concerns and supports stakeholders’ validation of specifications and compositions.<br />

Tool support was developed to facilitate the specification of concerns, the identification of<br />

crosscutting concerns and the composition of concerns. The tool guarantees consistency of the<br />

concerns’ specifications and their compositions, minimizing error occurrence and requirements<br />

omissions.<br />

Model-Driven Development was used to refine AORA. The definition of a metamodel that<br />

describes the refinement of the approach is the first step towards exploring the use of AORA in the<br />

Model-Driven Development paradigm. This is a modest contribute towards obtaining the first model<br />

from where successive transformations can then be applied to evolve the requirements models into<br />

architecture design models, for example (Sanchez, 2006).<br />

We started working officially in aspect-oriented requirements engineering in 2002. We may securely<br />

say that ours was the very first work in the area back then. Since then, we contributed to the Early<br />

<strong>Aspect</strong>s community (http://www.early-aspects.net/) by submitting the results of our investigation. We<br />

have published only in events with peer-review. These range from international workshops, to<br />

conferences and to journals. Our current list of publications in this area is:<br />

International Journals:<br />

• I. Brito, F. Vieira, A. Moreira and R. Ribeiro, Handling Conflicts in <strong>Aspect</strong>ual<br />

<strong>Requirements</strong> Compositions, Transaction on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

Journal, Special Issue on Early <strong>Aspect</strong>s, LNCS, Springer, pp. 144-166, 4620, November<br />

2007.<br />

7


International Conferences:<br />

• I. Brito, A. Moreira, J. Araújo, “Tool Support for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong>”, 10th<br />

International Conference on Software Engineering and Applications (SEA’06), Texas,<br />

USA. November 13-15, 2006.<br />

• I. Brito, A. Moreira, “Towards an Integrated Approach for <strong>Aspect</strong>ual <strong>Requirements</strong>”, 14th<br />

IEEE International <strong>Requirements</strong> Engineering Conference (RE’06), IEEE Computer<br />

Society, pp. 341-342, Minneapolis, USA. September 11-15, 2006.<br />

• E. Soeiro, I. Brito, A. Moreira, “A XML-Based Language for Specification and<br />

Composition of <strong>Aspect</strong>ual Concerns”, 8th International Conference on Enterprise<br />

Information Systems (ICEIS’06), pp. 410-419, Paphos, Cyprus. May 23-27, 2006.<br />

• I. Brito, A. Moreira, “Advanced Separation of Concerns for <strong>Requirements</strong> Engineering”,<br />

VIII Jornadas de Ingenieria del Software y Bases de Datos (JISBD’03), pp. 47-56,<br />

Alicante, Spain. November 12-14, 2003.<br />

• I. Brito, A. Moreira, “<strong>Aspect</strong>-<strong>Oriented</strong> Software Development: an Overview”, 5th<br />

International Conference on Enterprise Information Systems (ICEIS’03), pp. 531-534,<br />

Angers, France. April 23-26, 2003.<br />

• A. Moreira, J. Araújo, I. Brito, “Crosscutting Quality Attributes for <strong>Requirements</strong><br />

Engineering”, 14th International Conference on Software Engineering And Knowledge<br />

Engineering (SEKE’02), ACM, pp. 167-174, Ischia, Italy. July 15-19, 2002.<br />

Workshops (one national):<br />

• P. Greenwood, A. Garcia, A. Rashid, E. Figueiredo, C. Sant’Anna, N. Cacho, A. Sampaio,<br />

S. Soares, P. Borba, M. Dosea, R. Ramos, U. Kulesza, L. Fernandes, T. Bartolomei, M.<br />

Pinto, L. Fuentes, N. Gamez, A. Moreira, J. Araujo, T. Batista, A. Medeiros, F. Dantas, A.<br />

Medeiros, J. Wloka, C. Chavez, R. France, I. Brito, “On the Contributions of an End-to-<br />

End AOSD Testbed”, Early <strong>Aspect</strong>s Workshop in <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong><br />

Engineering and Architecture Design, 29th International Conference on Software<br />

Engineering (ICSE’07), Minnesota, USA. May 20-26, 2007.<br />

• F. Vieira, I. Brito, A. Moreira, “Using Multi-criteria <strong>Analysis</strong> to Handle Conflicts During<br />

Composition”, Early <strong>Aspect</strong>s Workshop in Traceability of <strong>Aspect</strong>s in the Early Life<br />

Cycle, 5th International Conference on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

(AOSD’06), Bonn, Germany. March 20, 2006.<br />

8


• I. Brito, “A Framework for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering”, Student<br />

Extravaganza, 4th International Conference on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

(AOSD’05), Chicago, USA. March 14-18, 2005.<br />

• I. Brito, “<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering”, Doctoral Symposium, 7th<br />

Conference on Unified Modeling Language (UML’04), Lisboa, Portugal. October 10,<br />

2004.<br />

• I. Brito, “Engenharia de Requisitos Orientada pelos <strong>Aspect</strong>os”, Simpósio para Estudantes<br />

de Doutoramento em Engenharia de Software (SEDES’2004), Coimbra, Portugal. April 6,<br />

2004.<br />

• I. Brito, A. Moreira, “Integrating the NFR Framework in a RE Model”, Early <strong>Aspect</strong>s<br />

Workshop in <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture Design, 3rd<br />

International Conference on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development, Lancaster, UK.<br />

March 22-26, 2004.<br />

• I. Brito, A. Moreira, “Towards a Composition Process for <strong>Aspect</strong>-<strong>Oriented</strong><br />

<strong>Requirements</strong>”, Early <strong>Aspect</strong>s Workshop in <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering<br />

and Architecture Design, 2nd International Conference on <strong>Aspect</strong>-<strong>Oriented</strong> Software<br />

Development (AOSD’03), Boston, USA. March 17-21, 2003.<br />

• J. Araújo, A. Moreira, I. Brito, A. Rashid, “<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> with UML”,<br />

2nd International Workshop on <strong>Aspect</strong>-<strong>Oriented</strong> Modeling with UML, 5th Conference on<br />

Unified Modeling Language (UML’02), Dresden, Germany. September 30 to October 4,<br />

2002.<br />

• I. Brito, A. Moreira e J. Araújo, “A <strong>Requirements</strong> Model to Quality Attributes”, Early<br />

<strong>Aspect</strong>s Workshop in <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture<br />

Design, 1st International Conference on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

(AOSD’02), Enschede, The Netherlands. April 22 – 26, 2002.<br />

International Technical Report:<br />

• R. Chitchyan, A. Rashid, R. Waters, I. Brito, A. Moreira, J. Araújo, “<strong>Requirements</strong>-Level<br />

<strong>Aspect</strong>ual Trade-Off <strong>Analysis</strong> Approach”, AOSD-Europe-ULANC-28 Technical Report,<br />

February 2007. http://www.aosd-europe.net/deliverables/d74.pdf .<br />

9


1.5 Structure of the thesis<br />

This thesis has ten chapters and three appendices. <strong>Chapter</strong> 1 is this introduction. The other nine<br />

chapters and appendices are briefly presented below.<br />

<strong>Chapter</strong> 2. <strong>Requirements</strong> Engineering. This chapter gives a background on <strong>Requirements</strong> Engineering,<br />

contributing to help the reader understand some core key terms. The chapter starts with requirements<br />

definitions and then follows with a brief introduction to the requirements engineering process. It<br />

finishes with an overview of some relevant requirements engineering approaches.<br />

<strong>Chapter</strong> 3. <strong>Aspect</strong>-<strong>Oriented</strong> Software Development. This chapter introduces a set of software<br />

development notions and problems that motivate the need for aspect-oriented software development. It<br />

starts with the notion of separation of concerns and why this principle is not successfully supported by<br />

existing software development paradigms, such as object-orientation. It introduces the notion of<br />

crosscutting concerns, explaining the need for improved modularization and composition mechanisms.<br />

It follows by discussing <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering, introducing the context of this<br />

thesis. The chapter finishes with an overview of some relevant <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong><br />

Engineering approaches that were developed in parallel with later versions of AORA.<br />

<strong>Chapter</strong> 4. The <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> Approach. This chapter explains AORA,<br />

discussing the adopted development model. The core part of this chapter describes each AORA plan<br />

with its major tasks. Each plan is closely related to the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> goals,<br />

i.e., identification, specification and composition of concerns. The main AORA concepts are defined<br />

as an extension of the Unified Modelling Language metamodel, allowing a language designer or<br />

methodologist to better capture, analyze and understand our approach. The chapter finishes with an<br />

illustration of the approach by means of a case study.<br />

<strong>Chapter</strong> 5. AORA Traceability and Tool Support. This chapter describes the AORA support for<br />

traceability needed to help tracing between concerns, and between concerns and other artefacts of the<br />

software lifecycle. It starts with the description of a set of guidelines proposed to explore horizontal<br />

forward traceability and follows by describing the AORA tool, its architecture and main features. This<br />

tool helps tracing concerns from requirements to the specification and composition rules through the<br />

History feature and the Source attribute, as well, as tracing concern relationships. The various topics<br />

and guidelines discussed in this chapter are illustrated with an example case study.<br />

<strong>Chapter</strong> 6. Handling Conflicts in AORA. This chapter describes a rigorous technique to support<br />

conflict management, as adopted by AORA. It describes two Multi-Criteria Decision Making<br />

methods, the Weighted Average and the Analytical Hierarchical Process, which AORA uses to resolve<br />

10


conflicts between concerns. The application of both methods is exemplified in the context of AORA<br />

and the obtained results are discussed. The chapter finishes with a related work section and summary<br />

conclusions.<br />

<strong>Chapter</strong> 7. Evaluation of the AORA Approach. This chapter presents an AORA evaluation according to<br />

two dimensions: qualitative and quantitative. AORA has been applied to several examples in the<br />

context of our work and also to some case studies undergone outside this author’s control. In<br />

particular, AORA has been used by several PhD, MSc and undergraduate students. It has also been<br />

used in three research projects: SOFTAS 1 , funded by the Portuguese Fundação para a Ciência e a<br />

Tecnologia, ASSD 2 , funded by the European Space Agency, and finally TAO 3 , a Testbed for <strong>Aspect</strong>-<br />

<strong>Oriented</strong> Software Development. TAO made available a case study and invited several authors of<br />

aspect-oriented methods, including us, to contribute with the results of applying their own method to<br />

that case study. The various aspect-oriented requirements specifications available on the project<br />

website were used for a quantitative evaluation of AORA using a set of metrics. A qualitative<br />

evaluation was also performed comparing several aspect-oriented requirements engineering<br />

approaches, including AORA. The chapter finishes with a discussion of AORA strengths and<br />

weakness.<br />

<strong>Chapter</strong> 8. The AORA Refinement for MDD. This chapter explores Model-Driven Development<br />

technologies to refine AORA concern specifications and compositions. It starts with a brief<br />

introduction to the Model-Driven Development and follows by using the source and target models<br />

based on a UML metamodel, to refine AORA. This refinement has been validated by deriving<br />

instantiations of AORA models using a case study.<br />

<strong>Chapter</strong> 9. The AORA Design Rationale. This chapter gives an historical overview of the AORA<br />

evolution. It discusses the problems we found and the solutions tried during the AORA development,<br />

justifying the solutions we adopted and discussing the reasons why we discarded some of the<br />

intermediate solutions.<br />

<strong>Chapter</strong> 10. Conclusions and Future Work. This chapter states the conclusions of this work and<br />

suggests directions for future work. It recalls the initial goals of this work and discusses how these<br />

goals were pursued and achieved. It finishes with a final remarks section.<br />

1 (SOFTAS, 2007), where this author participated<br />

2 (ASSD, 2006), without this author participation<br />

3 (TAO Project, 2007), where this author contributed with the results of applying AORA to the Health Watcher System<br />

11


Appendix A. The Subway System Specification. This appendix presents the report specification<br />

generated by the AORA tool of the case study Subway system.<br />

Appendix B. The Health Watcher System Specification. This appendix presents the Health watcher<br />

system case study used in the context of the TAO project, as well as the report specification generated<br />

by the AORA tool.<br />

Appendix C. SOFTAS Report. This appendix presents the report specification of the case study Flight<br />

Plan Tower Interface.<br />

12


13<br />

<strong>Chapter</strong> 2<br />

<strong>Requirements</strong> Engineering<br />

Lack of user input, incomplete requirements, and changing requirements are the major reasons why so<br />

many software development projects fail to deliver what the clients need on time and within the<br />

budget (Sommerville, 1997b; Nuseibeh, 2000; Dusire, 2002). <strong>Requirements</strong> Engineering appeared to<br />

overcome this situation. <strong>Requirements</strong> Engineering is a discipline composed of a set of activities that<br />

support the description of what to develop and why it should be developed. This process contributes to<br />

the solution of some real world problem. Once described, one needs to manage changes in these<br />

descriptions and ensure a complete, consistent and correct set of requirements. The goal of<br />

<strong>Requirements</strong> Engineering is to handle requirements that are good enough to allow the requirements<br />

engineer to proceed with design and implementation of the software and deliver what the clients needs<br />

(Sommerville, 1997b; Wiegers, 2003).<br />

This chapter sets the context and the background for the work developed for this PhD work,<br />

contributing to help understand some core key terms. It is organized into four sections. The first one<br />

illustrates requirements definitions, the second explains the requirements engineering process, the<br />

third summarizes some relevant existing approaches and, finally, the fourth concludes the chapter.


2.1 What is a requirement?<br />

The literature provides many requirements’ definitions. For example, IEEE 610.12 standard defines a<br />

requirement as (IEEE 610.12, 1990):<br />

“A condition or capability needed by a user to solve a problem or achieve an objective.”<br />

“A condition or capability that must be met or possessed by a system or system component to satisfy a<br />

contract, standard, specification, or other formally imposed documents.”<br />

“A documented representation of a condition or capability as in (1) or (2)”.<br />

These definitions encompass both users and developers’ view, which in the perspective of this PhD<br />

work are the stakeholders’ view. Stakeholders represent all the people that have a direct or indirect<br />

influence on the project. They may be users, clients, owners, managers, developers, etc.<br />

Another requirement definition proposed by Sommerville states that:<br />

<strong>Requirements</strong> for the system are “The descriptions of the services and constraints …”. The same<br />

author, this time with Sawyer, defines requirements as “… a specification of what should be<br />

implemented. They are descriptions of how the system should behave, or they are a system property or<br />

attribute. They may be constraints on the development process of the system” (Sommerville, 1997b).<br />

Clearly, there is no universal definition of what a requirement is. There are, however, different kinds<br />

of requirements. For example, Wiegers classifies requirements into five types (Wiegers, 2003):<br />

• Business requirements: describe high-level goals of the organization or client who requests the<br />

software.<br />

• User requirements: describe required activities needed to achieve the users’ goals.<br />

• System requirements: describe the top-level product requirements that can include software<br />

and hardware.<br />

• Functional requirements: describe the software functionality from the developer’s perspective.<br />

• Non-functional requirements: describe global properties that affect affect the whole, or a large<br />

part of, the system; they are quality characteristics such as performance, usability and<br />

efficiency.<br />

14


Sommerville proposes a clearly separation between different levels of description by using two terms:<br />

(i) user requirements (high-level of requirements) and (ii) system requirements (detailed description of<br />

the behaviour of the system) (Sommerville, 2004). Furthermore, Sommerville proposes that system<br />

requirements are classified as functional or non-functional or domain requirements. They are defined<br />

as follows:<br />

• “Functional requirements are statements of services the system should provide, how the<br />

system should react to particular inputs and how the system should behave in particular<br />

situations.”<br />

• “Non-functional requirements are constraints on the services or functions offered by the<br />

system. They include timing constraints, constraints on the development process, standards,<br />

etc.”<br />

• “Domain requirements come from the application domain of the system and that reflect<br />

characteristics of that domain. They may be functional or non-functional.”<br />

In the last few years, the requirements engineer community has been dedicating some attention to non-<br />

functional requirements that are defined as global requirements (Chung, 2000). To this community,<br />

non-functional requirements are also quality attributes and constraints, and play a critical role during<br />

software development, since they are very difficult to test and they are usually evaluated subjectively.<br />

Chung proposes a framework to treat non-functional requirements based on a process-oriented<br />

approach and on qualitative techniques. The goal is to build techniques for justifying design decisions<br />

during the developments process, adopting ideas from qualitative reasoning.<br />

Based on the classifications given above, we can synthesise by suggesting that there is a consensus<br />

around the existence of two large classes of requirements, non-functional and functional requirements.<br />

2.2 What is requirements engineering?<br />

There is not a consensual definition of <strong>Requirements</strong> Engineering. We have analysed the existing<br />

relevant definitions, looking for a definition that establishes exactly what is <strong>Requirements</strong><br />

Engineering.<br />

Considerer Zave’s definition (Zave, 1997):<br />

15


“<strong>Requirements</strong> engineering is the branch of software engineering concerned with the real-world goals<br />

for, function of, and constraint on software systems. It is also concerned with the relationship of these<br />

factors to precise specifications of software behaviour, and their evolution over time and cross<br />

software families.”<br />

While Zave’s definition considerer <strong>Requirements</strong> Engineering as part of the software development<br />

process, the Sommerville definition is concerned with the activities to establish exactly what the<br />

system should do (Sommerville, 2004):<br />

“The descriptions of the services and constraints are the requirements for the system and the process of<br />

finding out, analysing, documenting and checking these services and constraint is called requirements<br />

engineering”.<br />

At the end of the requirements engineering process, we obtain the system requirement documentation.<br />

This documentation consists of requirements models, specifications and traceability policies.<br />

Sommerville proposes four generic activities, as depicted in Figure 2.1, to build such documents<br />

specification (Sommerville, 2004).<br />

Figure 2.1 The requirements engineering process, taken from (Sommerville, 2004)<br />

But there are many other definitions. For example, Wiegers says that (Wiegers, 2003): “<strong>Requirements</strong><br />

engineering is a discipline based on requirements development and requirements management.<br />

<strong>Requirements</strong> development is related to elicitation, analysis, specification and validation. The goals of<br />

these activities are gathering, evaluating and documenting the requirements for the software.<br />

16


<strong>Requirements</strong> management goal is establish and maintaining an agreement with the customer on the<br />

requirements for the software.”<br />

And Pressman, a very respected author in software engineering states that (Pressman, 2005):<br />

“<strong>Requirements</strong> engineering helps software engineers to better understand the problem they will work<br />

to solve. It encompasses the set of tasks that lead to an understanding of what the business impact of<br />

the software will be, what the customer wants, and how end-users will interact with the software.<br />

<strong>Requirements</strong> engineering begins with inception – a task that defines the scope and the nature of the<br />

problem to be solved. It moves onward to elicitation – a task that helps the customer to define what is<br />

required, and then elaboration – where basic requirements are refined and modified. As the customer<br />

defines the problem, negotiation occurs – what are the priorities, what is essential? Finally, the<br />

problem is specified and reviewed or validated to ensure that the customers’ and your understanding<br />

of the problem coincide.” At the same time, requirements management activities are needed to<br />

guarantee trace and changes of requirements.<br />

These above presented definitions reveal requirements engineering process activities that are required<br />

to allow before proceeding to the software design and its implementation. Inspired on these<br />

definitions, the activities that are tackled in this PhD thesis are requirements elicitation and analysis,<br />

specification, validation, and requirements management planning.<br />

The requirements elicitation activity offers means for the identification and analysis of all<br />

requirements. The requirements engineer might use information-gathering techniques to obtain and<br />

analyze the requirements, to capture derived requirements that are a logical consequence of what the<br />

users and clients requested (Nuseibeh, 2000). While some techniques emphasize the main functions<br />

that the future system should implement (e.g. use cases proposed by (Jacobson, 1992)), others<br />

emphasize constraints and certain properties that affect the whole system, for example the Quality<br />

Attribute Workshop (Nord, 2004). The Quality Attribute Workshop provides a way to identify<br />

important quality attributes and the scenarios associated with them as well as to clarify system<br />

requirements before the software architecture has been created. The Quality Attribute Workshop<br />

elicits, collects, and organizes software quality attribute requirements in the form of scenarios. The<br />

results of the Workshop are intended to be followed by an analysis and planning activity to determine<br />

further steps, such as applying the Attribute-Driven Design method (Nord, 2004). This information has<br />

to be specified and validated.<br />

The specification activity goal is to obtain the descriptions and representations of all gathered<br />

requirements. The requirements engineer might use standard templates, such as proposed by<br />

(Jacobson, 1992), (Sommerville, 1997a) and (Volere <strong>Requirements</strong> Resources, 2007), graphical<br />

17


models, such as proposed by (Jacobson, 1992) and (VanLamsweerde, 2001), mathematical equations<br />

and prototypes (Jacobson, 1992; VanLamsweerde, 2001).<br />

The requirements validation activity is to ensure that the “requirements and models elicited provide an<br />

accurate account of stakeholder requirements” (Nuseibeh, 2000). This activity can be accomplished by<br />

checking if the requirements in the document do not diverge (contributing to ensure consistency) and<br />

if the documents include all the stakeholders planned requirements (helping completeness). To achieve<br />

this, the requirements engineer can use review techniques, such as program inspections (Gilb, 1993).<br />

Conflict management, including identification and resolution of conflicts between requirements or<br />

stakeholders’, can be included in the requirements validation activity (Karlsson, 1997; Boehm, 1998;<br />

VanLamsweerde, 1998; Alves, 2003).<br />

The requirements management activity facilitates communication among different stakeholders<br />

supporting the sometimes difficult task of negotiation to obtain “agreement” in difficult, conflicting<br />

situations. This agreement, in which requirements are documented, plays an important role in ensuring<br />

that the requirements can be read, analysed, (re-)written, and validated (Nuseibeh, 2000). During the<br />

requirements management activity we need to define the relationships between requirements and<br />

between requirements and the architectural/design artefacts, to support traceability.<br />

According to Nuseibeh, requirements traceability “lies at the heart of requirements management<br />

practice in that it can provide a rationale for requirements and is the basis for tools that analyse the<br />

consequences and impact of change” (Nuseibeh, 2000). Providing support for requirements<br />

traceability is a way to achieve integrity and completeness of the end product. It is Gotel and<br />

Finkelstein’s definition of traceability that is the one commonly used in <strong>Requirements</strong> Engineering<br />

(Gotel, 1994). They define requirements traceability as the ability to describe and follow the life of a<br />

requirement in both a forward and backward direction. Forward traceability assists with tracking the<br />

artefact conversion from one representation and lifecycle stage to another. Backward traceability helps<br />

to understand where an artefact or a change comes from. Pleeger and Bohner propose the definition of<br />

horizontal and vertical traceability (Pleeger, 1990). Horizontal traceability is the possibility to trace a<br />

requirement throughout the work products, i.e. from requirements throughout the design to its<br />

implementation in the code. Vertical traceability, on the other hand, is the possibility to trace<br />

dependencies within a work-product. Vertical traceability applied on requirements expresses the<br />

relations between requirements on different levels.<br />

Also, the requirements management task needs tool to storage and maintains large amounts of<br />

requirements information to achieve its goals.<br />

18


Many requirements engineering approaches have been created to handle all kinds of requirements. The<br />

next section describes requirements approaches that are relevant in the context of this work.<br />

2.3 An overview of requirements engineering approaches<br />

This section presents some of the better known requirements engineering approaches in the literature,<br />

in particular, uses cases (Jacobson, 1992), goals (Mylopoulos, 1992) and viewpoints (Finkelstein,<br />

1996).<br />

2.3.1 The use case approach<br />

The use case approach, first proposed by Jacobson, has emerged as the most popular means of eliciting<br />

system stakeholders or actors’ needs and capture requirements in industry (Jacobson, 1992). An actor<br />

is an external entity, a person, another system or anything that interacts with the system under study. A<br />

use case defines a set of interactions between an actor and the system to accomplish a goal. Each use<br />

case focuses on describing how an actor achieves a goal or task.<br />

In summary, the benefits of the use case approach are:<br />

• Use case is generally regarded as an excellent technique for capturing the functional<br />

requirements of a system.<br />

• Use case alternative paths capture additional behaviour that can improve system robustness.<br />

• Use cases have proved to be easily understood by business users and are excellent bridges<br />

between software developers and end users.<br />

• Use cases help stakeholders to understand the nature and scope of the business area or the<br />

system under development.<br />

• Use cases can be recorded using UML and maintained within widely available computer-aided<br />

software engineering tools.<br />

Use cases have, nonetheless, several limitations:<br />

• Use cases are not well suited to capture non-functional requirements.<br />

19


• Use cases do not handle conflicts.<br />

• Use cases do not offer a means to reflect commonality/variability across products in a product<br />

line or family.<br />

The use case eliciting process starts by identifying the actors who will be using the system. This can<br />

be done, for instance, by interviewing the relevant stakeholders of the project. Then, for each actor, we<br />

collect the set of required functionalities for the system. Each major functionality is mapped onto one<br />

use case which is triggered by the actor that requires that functionality. The set of use cases form the<br />

use case model. The following step is to describe each use case. There are several techniques that can<br />

be sued to achieve this, from free text to some formal technique. Scenarios are, perhaps, the most<br />

common and simpler technique. Each use case is usually composed of one primary scenario that<br />

describes the normal or basic flow of interactions and several alternative or secondary scenarios, each<br />

one describing an error or unusual execution.<br />

In addition, use cases can be related through include, generalization and extend relationships and<br />

actors can be related through inherits relationships.<br />

The include relationship allows us to “factor out” common behaviours between use cases. So, instead<br />

of describing such behaviours repeatedly, we only need to define them once. The generalization<br />

relationship between use cases has a similar meaning as that between classes, and is used when the<br />

sequence of actions of one concrete use case (the child) is similar to but refines those of the other<br />

abstract use case (the parent). The extend relationship allows us to add behaviour to a base use case at<br />

a set of extension points without changing the base use case. The added behaviour is specified in the<br />

extending use case which will be inserted into the base use case.<br />

The set of use cases, actors and relationships among them composes the use case model.<br />

This approach becomes a fundamental element of the Unified Modelling Language (UML) notation<br />

(Jacobson, 1998). UML is a general-purpose modeling language that includes a graphical notation<br />

used to create an abstract model of a system that drive the software development process and was<br />

proposed by Object Management Group (OMG). In UML, actors are represented as stick figures and<br />

use cases are represented by ellipses. Lines indicate which actors are involved in which use cases.<br />

Figure 2.2 illustrates the notation used for use case models, as proposed by the UML language. The<br />

example is based on the Hotel Management System (HMS) taken from (Jacobson, 2004).<br />

20


Hotel Counter<br />

Staff<br />

Check- In Customer<br />

Check-OutCustomer<br />

21<br />

Reserve Room<br />

Customer<br />

Figure 2.2 An use case model for HMS, taken from (Jacobson, 2004)<br />

It is a common practice to document a use case fully through a template, where primary and<br />

alternative scenarios are added as fundamental pieces of the document. There are a number of<br />

schemes, however, but typical sections are:<br />

• Name that provides a unique identifier for the use case and should be written in a verb-noun<br />

format.<br />

• Description is used to capture the essence of the use case.<br />

• Preconditions are used to convey any conditions that must be true when a user initiates a use<br />

case.<br />

• Primary scenario is the description of the basic flow.<br />

• Alternative scenarios are variations of the primary scenario.<br />

• Post-conditions summarize the state of affairs after the scenario is complete.<br />

Table 2.1 shows an example of use case specification for the Reserve room use case illustrated in<br />

Figure 2.2.<br />

Brief Description<br />

Table 2.1 Reserve room use case specification, taken from (Jacobson, 2004)<br />

This use case describes how the customer reserves the room.<br />

Basic Flows<br />

B1. Reserve Room<br />

The use case begins when a customer wants to reserve a room(s).<br />

The customer selects to reserve a room.<br />

The system displays the types of rooms the hotel has and their rates.<br />

The customer Check Room Cost.


The customer makes the reservation for the chosen rooms.<br />

The system deducts the number of rooms available for reservation for the specified room type.<br />

The system creates a new reservation with the given details.<br />

The system displays the reservation confirmation number and check in instructions.<br />

The use case terminates.<br />

Sub Flows<br />

S1. Check Room Cost<br />

The customer selects his desired room type, indicates his period of stay.<br />

The system computes the cost for the specified period.<br />

Pre-Conditions<br />

The customer has logged in the system.<br />

Post Conditions<br />

Upon successful reservation, a new reservation record is created and the number of rooms available for<br />

the specified dates is decreased. If reservation is unsuccessful, there is no change in the database.<br />

Special <strong>Requirements</strong><br />

The system must handle 5 concurrent reservations. Each reservation should not take more than 20<br />

seconds.<br />

Finally, the description of each use case is reviewed against the descriptions of the other use cases.<br />

Further processing of the use case approach, related to use case realisations is considered during the<br />

architecture and design stages of software development lifecycle.<br />

2.3.2 Goal-oriented approaches<br />

Goals have long been recognized to be essential components in requirements engineering. A goal is<br />

defined as an objective the system under consideration should achieve (VanLamsweerde, 2001). Goals<br />

must be specified precisely to support requirements elaboration, verification/validation, conflict<br />

management, negotiation, explanation and evolution.<br />

The benefits of the goal-oriented approaches are (VanLamsweerde, 2001):<br />

• Goals provide a precise criterion for sufficient completeness of a requirements specification.<br />

So, the specification is complete with respect to a set of goals if all the goals can be proved to<br />

be achieved from the specification and the properties known about the domain considered.<br />

• Goals provide the rationale for requirements change, so a requirement appears because of<br />

some underlying goal which provides a base for it. This is motivated by the more dynamic<br />

22


usiness and organizational environments, where systems are increasingly used to<br />

fundamentally change business processes.<br />

• Goals refinement provide a natural mechanism for structuring complex requirements<br />

documents for increased readability and provide traceability links from high-level strategic<br />

objectives to low-level requirements.<br />

• Goals provide techniques to manage conflicts among multiple viewpoints. Goals have been<br />

recognized to provide the roots for detecting conflicts among requirements and for resolving<br />

them eventually.<br />

• Goals are a substantial promise in supporting the requirements elicitation and elaboration.<br />

Goals drive the identification of requirements to support them.<br />

The Non-Functional <strong>Requirements</strong> Framework, NFR, proposed by (Chung, 2000), i* framework,<br />

proposed by (Yu, 1997), and Knowledge Acquisition in Automated Specification, KAOS, proposed by<br />

(Dardenne, 1993) are representative and complementary goal-based approaches. The KAOS<br />

methodology uses goals as the central concept in requirements acquisition and as the main guiding<br />

concept in developing formal specifications that integrate goals and goals refinements in requirements<br />

models. The NFR framework provides knowledge structures about the non-functional goals based on a<br />

qualitative framework for integrating goals and goal refinements in requirements models. The i*<br />

framework is an agent-oriented knowledge approach for explicit modelling and analysis of multiple<br />

actor relationships, introducing social analysis into the requirement analysis and facilitating the<br />

dialogue with stakeholders during requirement elicitation. Beyond the importance that each of them<br />

has in the context of the requirements engineering, the NFR framework is described in more detail<br />

next to introduce some central concepts used for this PhD work.<br />

The NFR Framework is first used to represent and analyse non-functional requirements and later uses<br />

non-functional requirements, such as performance and security, to drive the overall design process<br />

(Chung, 2000). This framework uses the central concept softgoal, which represents a non-functional<br />

requirement. There are three types of softgoals: NFR softgoals, operationalizing softgoals, and claim<br />

softgoals. The NFR softgoals act as overall constraints on the system. They are satisfied through<br />

operationalizing softgoals that represent the design alternatives available for the given non-functional<br />

requirement solution. Claim softgoals provide the rationale for design and development decisions.<br />

Through claims certain characteristics can be reflected in the decision making process, some choices<br />

explained, support for prioritising certain softgoals over others provided, etc. Figure 2.3 shows the<br />

23


notation for the three types of softgoals, where operationalizing softgoals are represented by dark<br />

clouds and claim softgoals are represented by dashed clouds.<br />

Figure 2.3 Representations for the three types of softgoals, taken from (Chung, 2000)<br />

These softgoals are systematically decomposed into more specific softgoals or sub-goals. When all the<br />

sub-goals are needed together to meet the (parent) goal, an AND link is represented. A situation where<br />

not all the sub-goals are necessary to achieve the goal is represented through and OR link. Figure 2.4<br />

shows the notation for softgoal decompositions. When all sub-goals of a given goal are needed to<br />

achieve that goal, an AND relationship is defined with an arc connecting the lines. A situation where<br />

not all the sub-goals are necessary to achieve the goal, an OR relationship, is defined with two arcs<br />

linking the decomposition lines.<br />

Figure 2.4 Representations for softgoal contributions, taken from (Chung, 2000)<br />

The framework provides others refinement methods: (i) operationalization methods assist in<br />

operationalizing a softgoal, and (ii) augmentation methods help to represent additional information<br />

about a softgoal.<br />

When the softgoals are sufficiently refined, development techniques (i.e., operationalizations) for<br />

achieve the softgoal are identified. When softgoals are refined, offspring softgoals are created to<br />

represent the contribution to their parents either partially positive or surely positive or partially<br />

negative or surely negative that are represented by ‘+’, ‘++’, ‘—‘ and ‘— —‘ respectively (see Figure<br />

2.4). In the case of a positive contribution, satisfying the offspring leads to satisfaction of the parent<br />

too, while in the case of negative contribution it leads to dissatisfying the parent. In order to focus on<br />

what is important, priority softgoals are identified. All these elements are used to support design<br />

decisions and to record a design rationale through a claim softgoal. This allows us to select<br />

operationalizations based on design rationale.<br />

24


The NFR framework provides an iterative process that is composed of the six major steps, as depicted<br />

in Figure 2.5.<br />

The framework process starts by acquiring domain knowledge and identifying non-functional<br />

requirements that are treated as softgoals.<br />

Decompose non -functional<br />

requirements<br />

Identify operationalizations<br />

ActivityInitial<br />

Identify non -functional<br />

requirements<br />

Select operationalizations<br />

based on design rationale<br />

Evaluate the impact of the<br />

decisions<br />

25<br />

Identify priorities and<br />

define tradeoffs<br />

Figure 2.5 NFR framework process, adapted from (Chung, 1995; 2000)<br />

All the above information is collected and represented in a Softgoal Interdependency Graph (SIG).<br />

Nodes of a SIG are non-functional requirements, and are represented by clouds, and the lines represent<br />

decompositions. Figure 2.6 shows an example of a SIG for the security softgoal where parent goals are<br />

connected to their sub-softgoals, or sub-goals, with AND relationships.


Figure 2.6 Decomposing security softgoal, taken from (Chung, 2000)<br />

The security softgoal is decomposed into Integrity, Confidentiality and Availability through an AND<br />

relationship. The softgoals also have a subject matter or topics, in the case illustrate by Figure 2.6 is<br />

[Account].<br />

The evaluation procedure is applied to the SIG to determine the degree to which the initial NFR<br />

softgoal is satisfied with the given set of decisions. After NFR requirements have been decomposed,<br />

operationalised and evaluated, the NFR SIG is related to the appropriate functional requirement via<br />

design decision links and the operationalisations are related to the specifications (design decisions) via<br />

operationalisation links. Thus, when turning to the design stage, the functional requirements have clear<br />

links to their related non-functional ones.<br />

In the NFR framework, the identified softgoals need to be catalogued and arranged into types, and<br />

hierarchies of IsA relationships that refine the initial softgoal. These catalogues are intended for future<br />

reuse and to guard against omitting important concerns.<br />

The approach does not clarify how exactly the non-functional requirements are identified, only<br />

suggesting that they should be obtained by gathering knowledge about the domain for which a system<br />

will be built. The NFR focuses on clarifying the meaning of non-functional requirements and<br />

providing alternatives for satisfying them to the highest possible level, considering the conflicts<br />

between them, their interrelationships (assisted by correlation catalogues), as well as the developers’<br />

preferences.<br />

2.3.3 Viewpoint-oriented approaches<br />

According to Sommerville, the viewpoint-oriented requirements engineering approaches aim at<br />

improving (i) the requirements engineering process and (ii) the organisation and presentation of the<br />

26


specification itself (Sommerville, 1997a). The requirements engineer collects and analyses the<br />

requirements for a system from different perspectives or viewpoints. Viewpoints are entities which<br />

may be used to structure the process of requirements elicitation and to structure the requirements<br />

specification.<br />

The main arguments in favour of a viewpoint-oriented approach to requirements engineering are:<br />

• Viewpoints organise system requirements from different types of users and stakeholders.<br />

• Viewpoints are used to collect and classify different types of information, for example,<br />

information about the application domain, information about the system’s environment and<br />

engineering information about the system’s development.<br />

• Viewpoints may be used as a means for structuring the process of requirements elicitation.<br />

• Viewpoints may be used to identify conflicts between different requirements.<br />

PREView (Process and <strong>Requirements</strong> Engineering Viewpoints) is a viewpoint-oriented approach that<br />

improves the processes of requirements discovery, analysis and negotiation of the requirements<br />

process (Sommerville, 1997a).<br />

PREView uses concerns as drivers in requirement discovery and these concerns reflect the critical<br />

non-functional characteristics of the system. While using viewpoints for actual requirements<br />

discovery, the concerns (that are identified at the very start of the <strong>Requirements</strong> Engineering process<br />

and are decomposed into questions, constraints, or requirements) should be addressed by the<br />

viewpoints. Thus, the concerns may cut across all viewpoints and the questions associated with<br />

concerns must be linked to all viewpoints and posed to viewpoint sources as part of the analysis<br />

process.<br />

PREView provides templates for concerns and viewpoints. The viewpoint template includes the<br />

following information:<br />

• The viewpoint name. This is used to identify and refer to the viewpoint; it should normally be<br />

chosen to reflect the focus of the viewpoint. The name may reflect a role in the organisation or<br />

a part of the system or process to which the analysis is restricted.<br />

• The viewpoint focus. A viewpoint's focus defines the scope of the viewpoint. It is expressed as<br />

a statement of the perspective adopted by that viewpoint.<br />

27


• The viewpoint concerns. The viewpoint concerns reflect the organisational goals, business<br />

objectives and constraints which drive the analysis process.<br />

• The viewpoint sources. Viewpoint sources are explicit identifications of the sources of the<br />

information associated with the viewpoint.<br />

• The viewpoint requirements. This is the set of requirements arising from analysis of the<br />

system from the viewpoint's focus. The requirements may be expressed in terms of system<br />

functionality, user needs or constraints arising from application domain or organisational<br />

considerations.<br />

• The viewpoint history. This records changes to the viewpoint as an aid to traceability. It<br />

includes changes to the focus, the sources and the requirements encapsulated in the viewpoint.<br />

Each concern is also defined via a template, which includes the following information:<br />

• The concern’s name and description.<br />

• The external requirements contain references to requirements that represent the concern<br />

elaborations that exert a direct influence on the requirements process.<br />

The PREView process is composed of four main steps: (i) requirements discovery; (ii) requirements<br />

analysis; (iii) requirements negotiation and (iv) requirements definition Figure 2.7 illustrates the whole<br />

process.<br />

The requirements discovery step starts with founding and describing concerns that are the base for<br />

identify viewpoints and requirements. This step is broken down into four activities namely:<br />

• Identify concerns.<br />

• Elaborate concerns as external requirements and questions.<br />

• Identify viewpoints.<br />

• Discovery of the requirements for each viewpoint.<br />

28


Figure 2.7 Preview process, taken from (Sommerville, 1997a)<br />

The purpose of the requirements analysis step is to identify those requirements which are inconsistent<br />

with concern questions, external requirements, or other viewpoints’ requirements. The objective is to<br />

discover internal viewpoint conflicts and external inconsistencies where requirements from different<br />

viewpoints are in conflict. To accomplish this, PREView uses decision tables, based on Quality<br />

Function Deployment proposed by Zultner, to cross-check requirements against overlapping,<br />

conflicting, or being independent of external requirements (Zultner, 1992). The result of this activity is<br />

the input to the requirements negotiation activity where the inconsistencies should be resolved. So, the<br />

inputs to the requirements negotiation step are the sets of conflicting and overlapping requirements.<br />

PREView does not prescribe how conflicts are resolved or how overlapping requirements are<br />

rationalised as this will necessitate trade-offs and negotiation.<br />

Some of the outstanding problems in PREView are:<br />

• Only a small number of concerns can be effectively addressed in each project. A larger<br />

number of concerns make the amount of generated information unmanageable.<br />

• Similarly, only a small number of viewpoints should be used.<br />

• Lack of clear guidelines for concern decomposition.<br />

29


• Lack of a mechanism for inconsistency management, trade-off analysis and decision support.<br />

• Lack of relationships between viewpoints.<br />

PREView is a well-know viewpoint-oriented approach, but there are others such as the Viewpoint-<br />

<strong>Oriented</strong> <strong>Requirements</strong> Definition (VORD) proposed in (Kotonya, 1999).<br />

2.4 Summary<br />

While contemporary requirements engineering approaches, e.g., viewpoints, use cases, and goals<br />

provide good support for identification and treatment of most kinds of requirements, they do not<br />

explicitly support all kinds of requirements (Jacobson, 1992; Sommerville, 1997a; VanLamsweerde,<br />

2001).<br />

For example, use cases and viewpoint-oriented provide subjective perspectives on a system, but they<br />

do not treat non-functional requirements, in a systematic, integrated way. While use cases simple<br />

ignores them, viewpoints addresses them transversally to the whole set of viewpoint without further<br />

refinement or relationships among them. That is, these approaches do not clearly capture how non-<br />

functional requirements constrain or influence certain viewpoints or uses cases. In other words, they<br />

do not specify the compositional relationships between broadly-scoped, non-functional properties and<br />

the stakeholder requirements affected by them.<br />

Goal-oriented approaches, on the other hand, drive the requirements engineering process from the<br />

perspective of systemic goals, which are often non-functional in nature. Consequently, they do not<br />

effectively capture the influence of highly functional properties on other requirements in the system. If<br />

goal concepts indeed have such fundamental significance in <strong>Requirements</strong> Engineering, then it would<br />

be desirable to seek some coherent view of the various notions of goal within the field.<br />

30


31<br />

<strong>Chapter</strong> 3<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software<br />

Development<br />

The goal of this chapter is to introduce a set of notions and problems that motivates the need for the<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Requirement <strong>Analysis</strong> approach proposed in this document. The origin of <strong>Aspect</strong>-<br />

<strong>Oriented</strong> Software Development is explained by remembering the notion of separation of concerns.<br />

Separation of concerns aims at identifying and modularizing those parts of software that are relevant to<br />

a particular concept, goal or purpose.<br />

Existing approaches do not consider the crosscutting nature of some of functional and non-functional<br />

requirements. The result is that the implementation of these crosscutting concerns are spread among<br />

several modules, producing tangled representations that are invasive to implement, and therefore<br />

difficult to understand, maintain and evolve.<br />

Since these crosscutting concerns are often present in requirements, this chapter follows by describing<br />

a set of selected <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering approaches, presenting their main steps<br />

and characteristics. These approaches, together with AORA, will then be compared in the evaluation<br />

chapter (<strong>Chapter</strong> 7). This chapter finishes with a summary of the main open issues that need to be<br />

addressed by the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> approaches.


3.1 Separation of concerns<br />

The term separation of concerns was first discussed by Dijkstra in his classic book A Discipline of<br />

Programming (Dijkstra, 1976). The following exert from page 211, clearly explains the concept<br />

(Dijkstra, 1976):<br />

“To my taste the main characteristic of intelligent thinking is that one is willing and able to study in<br />

depth an aspect of one's subject matter in isolation, for the sake of its own consistency, all the time<br />

knowing that one is occupying oneself with only one of the aspects. The others aspects have to wait<br />

their turn, because our heads are so small that we cannot deal with them simultaneously without<br />

getting confused. This is what I mean by "focussing one's attention upon a certain aspect"; it does not<br />

mean completely ignoring the other ones, but temporarily forgetting them to the extent that they are<br />

irrelevant for the current topic. Such separation, even if not perfectly possible, is yet the only available<br />

technique for effective ordering of one’s thoughts that I know of. I usually refer to it as “a separation<br />

of concerns”, because one tries to deal with the difficulties, the obligations, the desires and the<br />

constraints one by one. When this can be achieved successfully, we have more or less partitioned the<br />

reasoning that had to be done – and this partitioning may find its reflection in the resulting partitioning<br />

of the program into “modules” – but I would like to point out that this partitioning of the reasoning to<br />

be done is only the result, and not the purpose”.<br />

According to this, separation of concerns means that a large problem is easier to manage if it can be<br />

broken down into pieces, i.e., modules, particularly if the solutions to the sub-problems can be<br />

combined to form a solution to the large problem. So, separation of concerns aims at identifying and<br />

modularizing parts of software which are relevant to a particular concept, goal or purpose. This is a<br />

fundamental principle in software engineering as it reduces software development complexity and<br />

increases understandability and helps supporting traceability throughout the development process. It<br />

minimizes the impact of change, by proposing encapsulation of different concerns in separate<br />

modules.<br />

3.2 What is a concern?<br />

The software literature provides many definitions of concerns, many of them focusing on code. For<br />

example, the Wikipedia defines a concern as “any particular piece of interest or focus in a program”.<br />

However, the concept can be used across all the software development phases.<br />

32


The Oxford English Reference Dictionary defines concern as “a matter of interest or importance to<br />

one”. Another general definition given by Filman, a well-known author in aspect-orientation, states<br />

that “a concern is any matter of interest in a software system” (Filman, 2005). Such definitions are,<br />

however, too general to be useful, since almost everything can be seen as a concern. A more specific<br />

definition is given in the IEEE standard for architecture: “a concern is those interests which pertain to<br />

the system’s development, its operation or any other characteristics that are critical or otherwise<br />

important to one or more stakeholders” (IEEE 1471, 2000).<br />

In the context of this thesis, a concern will refer to a property which addresses a certain problem that is<br />

of interest to one or more stakeholders and which can be defined by a set of coherent requirements.<br />

Therefore, each concern defines a property that the future system must provide.<br />

3.3 A new step towards improved separation of concerns<br />

Once software systems reach a certain complexity, the good old principles of Software Engineering, as<br />

defined by Ross et al., become more and more relevant, in particular, modularization, abstraction and<br />

encapsulation (Ross, 1975). These principles play a fundamental role in achieving separation of<br />

concerns. Traditional Software Engineering methods, such as structured and object-oriented ones,<br />

have been developed with those principles in mind. Nonetheless, the modularization techniques they<br />

provided cannot separate all interrelated complex concerns. Certain broadly-scoped properties, such as<br />

response time, accuracy, security, persistence and several other functional requirements are very<br />

difficult to modularize and its implementation is typically spread along several different modules. This<br />

is because existing approaches generally follow a dominant decomposition criterion that is not suitable<br />

to capture and represent all kinds of concerns that can be found in a software application (Kiczales,<br />

1997). This problem is identified by Tarr et al. as the tyranny of the dominant decomposition and is the<br />

source of deficient modularization: the system can be modularized in only one way at a time and as a<br />

consequence the many concerns that do not align with that decomposition criteria end up scattered<br />

across many modules and even tangled with modules that addresses other concerns (Tarr, 1999).<br />

These two symptoms, known as scattering and tangling, are responsible for producing systems that are<br />

hard to understand and very difficult to evolve. Such crosscutting concerns span traditional module<br />

boundaries (for example, classes in an object-oriented decomposition), hindering understandability,<br />

maintainability and evolution.<br />

Figure 3.1 illustrates that Security, Logging and Persistence concerns are scattered along several<br />

implementation modules, obliging each module to address more than one property, or concern.<br />

33


<strong>Aspect</strong><br />

Module<br />

34<br />

<strong>Aspect</strong>s<br />

Modules<br />

Figure 3.1 Separation of crosscutting concerns, taken from (Laddad, 2002)<br />

<strong>Aspect</strong>-orientation is a new software development approach that addresses the above mentioned<br />

limitations inherent in other approaches, including object-oriented programming. It aims to create<br />

techniques, methods and tools to address crosscutting concerns.<br />

3.4 A brief introduction to aspect-orientation<br />

“Software Engineering is a continuously evolving discipline, searching for better and more efficient<br />

techniques, methods and tools to determine the way we modularise and compose software systems. An<br />

interesting characteristic of this continuously evolving discipline is the reverse introduction of the<br />

techniques” (Rashid, 2004). Historically, most new development techniques are introduced at the<br />

programming level and their concepts subsequently travel up the development lifecycle to be applied<br />

at the earlier stages, for example, design, analysis and requirements engineering. We have seen this<br />

evolution tendency, in the 70’s, with structured techniques and, in the late 80’s and early 90’s, with<br />

object-oriented techniques. For example, object-oriented concepts were initially introduced by the<br />

programming language SIMULA-67 and are now applied throughout the software lifecycle with<br />

standard notations, such as the Unified Modelling Language, available for modelling, analysis and<br />

design (Jacobson, 1998).<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development (AOSD) is another step towards achieving improved<br />

modularity during software development to assist developers in the separation of concerns, or the<br />

breaking down of the system into distinct parts that overlap in functionality as little as possible (ACM,<br />

2001). AOSD aims at addressing crosscutting concerns by providing means for their systematic<br />

identification, separation, representation and composition (Rashid, 2003). In particular, AOSD focuses<br />

on the modularization and encapsulation of crosscutting concerns. The term crosscutting concerns


efers to properties of software that cannot be effectively modularized using traditional software<br />

development techniques, such as object-oriented methods. Notice that “crosscutting” is a relationship<br />

between concerns. When we say that a concern is crosscutting we are implicitly acknowledging some<br />

dominant decomposition that offers the base over which the crosscutting concern cuts across. This<br />

relationship highly depends on the representation chosen to model, specify, or implement concerns.<br />

This means that what is crosscutting in requirements may not be crosscutting in design, for example,<br />

or what is crosscutting in an object-oriented representation may not be crosscutting in a functional<br />

representation, and vice versa (Berg, 2005). Typical examples of crosscutting concerns are non-<br />

functional requirements, such as security, fault tolerance, persistency. However, crosscutting concerns<br />

can also be functional requirements, such as auditing, or validation (Moreira, 2002; Rashid, 2006b).<br />

Crosscutting concerns are encapsulated in separate modules, known as aspects, and composition<br />

mechanisms are later used to weave them back with other core modules, at loading time, compilation<br />

time, or run-time (Baniassad, 2006).<br />

Similarly to what happened to previous software development approaches, <strong>Aspect</strong>-oriented software<br />

development, was introduced first at the programming level, with <strong>Aspect</strong>-<strong>Oriented</strong> Programming,<br />

where aspects are identified and captured mainly in code (Kiczales, 1997; Bergmans, 2000),<br />

(Lieberherr, 2001) and (Tarr, 1999). Several <strong>Aspect</strong>-<strong>Oriented</strong> Programming languages exist, but<br />

<strong>Aspect</strong>J has played a key role in its early adoption by researchers and practitioners (<strong>Aspect</strong>J Project,<br />

2007). The notion of aspect-orientation is based on earlier work on Composition Filters (Composition<br />

Filters Project, 2007) and Adaptive Programming (Lieberherr, 2001). The concepts have been moving<br />

beyond programming and are now being applied at earlier development stages. For example, work has<br />

been carried out to incorporate aspects at the design (Suzuki, 1999; Herrero, 2000; Clarke, 2001) and<br />

architecture levels (Pinto, 2003; Tekinerdogan, 2004) and requirements engineering (Moreira, 2002;<br />

Sutton Jr, 2002c; Rashid, 2003; Brito, 2003b; 2004; Sutton Jr, 2004; Clarke, 2005; Moreira, 2005a;<br />

Rashid, 2006a).<br />

3.4.1 Symmetric versus asymmetric approaches<br />

There are two levels of separation of concerns supported by existing aspect-oriented approaches,<br />

symmetric and asymmetric (Harrison, 2002). In general, the distinction relates to whether an approach<br />

includes a means to separate all kinds of concerns, both crosscutting and non-crosscutting (symmetric)<br />

or includes a means to just separate crosscutting concerns from the rest of the system (asymmetric).<br />

Some of the existing aspect-oriented requirements engineering approaches are asymmetric, where<br />

functional requirements, or the dominant level, serve as the base decomposition and the crosscutting<br />

35


equirements, or early aspects, that cross cut the base (Rashid, 2002). These asymmetric approaches<br />

suffer from the tyranny of dominant decomposition. A symmetric <strong>Requirements</strong> Engineering approach<br />

that eliminates the dominant decomposition through uniform treatment of the various types of<br />

concerns in a system is proposed in Moreira et al. where the requirements are partitioned in a uniform<br />

fashion, so there is one type of concern (Moreira, 2005b). In this work, a multi-dimensional view is<br />

proposed to handle all concerns in an effective fashion.<br />

3.4.2 <strong>Aspect</strong>-<strong>Oriented</strong> Programming<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Programming is a recent programming methodology that increases separation of<br />

concerns by introducing a new modular unit, called aspect, for the modularization of crosscutting<br />

concerns. <strong>Aspect</strong>-<strong>Oriented</strong> Programming enhances code abstraction, understandability and<br />

adaptability. It minimizes the impact of change, by proposing encapsulation of different concerns in<br />

separate modules.<br />

This process is normally denominated aspectual decomposition, which identifies core functionality<br />

and crosscutting concerns (or aspects). Afterwards, a composition process is needed to weave the<br />

aspects back later on, at loading time, compilation time, or run-time (Baniassad, 2006). <strong>Aspect</strong>-<br />

<strong>Oriented</strong> Programming allows the description of the relationships that exist between the different<br />

concerns of a system and the mechanisms to compose them together into a coherent program. This<br />

action is normally denominated as weaving, which expresses how the system intertwines the execution<br />

of the base code and aspects. Figure 3.2 illustrates how the DisplayUpdating aspect (top left in the<br />

figure) is weaved is the setX(), setY() and moveBy() elements from Point and Line class.<br />

Although <strong>Aspect</strong>-<strong>Oriented</strong> Programming is a recent paradigm, numerous aspect-oriented programming<br />

approaches have already been proposed such as <strong>Aspect</strong>J (<strong>Aspect</strong>J Project, 2007) , Adaptive<br />

Programming (Lieberherr, 2001), Composition Filters (Composition Filters Project, 2007), JBoss AOP<br />

(JBoss Project, 2007), JAsCo (JAsCo Project, 2007), HyperJ (HyperJ, 2007), Caesar (CAESAR,<br />

2007), among others. <strong>Aspect</strong>-<strong>Oriented</strong> Programming extensions to other languages have also been<br />

developed, for example, <strong>Aspect</strong>C (<strong>Aspect</strong>C Project, 2007), and <strong>Aspect</strong>C++ (Spinczyk, 2005) are<br />

aspect-oriented extensions to C and C++, respectively.<br />

36


after(): call(void<br />

FigureElement+.set*(..))<br />

|| call(void<br />

FigureElement.moveBy(int, int))<br />

{<br />

Display.update();<br />

}<br />

Point<br />

getX()<br />

getY()<br />

setX(int)<br />

setY(int)<br />

moveBy(int,int)<br />

draw()<br />

FigureElement<br />

moveBy(int,int)<br />

refresh()<br />

2<br />

Line<br />

Weaver<br />

getP1()<br />

getP2()<br />

setP1(Point)<br />

setP2(Point)<br />

moveBy(int,int)<br />

draw()<br />

37<br />

Point<br />

getX()<br />

getY()<br />

setX(int)<br />

setY(int)<br />

moveBy(int, int)<br />

draw()<br />

DisplayUpdating<br />

FigureElement<br />

moveBy(int, int)<br />

refresh()<br />

Figure 3.2 <strong>Aspect</strong> weaver, taken from (Kiczales, 2003)<br />

2<br />

Line<br />

getP1()<br />

getP2()<br />

setP1(Point)<br />

setP2(Point)<br />

moveBy(int, int)<br />

draw()<br />

<strong>Aspect</strong>J is probably the most mature, and therefore reliable, <strong>Aspect</strong>-<strong>Oriented</strong> Programming language.<br />

<strong>Aspect</strong>J is a general purpose programming language and is an extension to java to support the concept<br />

of aspect at the implementation level. To achieve this, <strong>Aspect</strong>J offers a special constructs called<br />

aspect. <strong>Aspect</strong>s can contain several entities unavailable to standard classes such as pointcuts,<br />

joinpoints and advices. Join points are points in a program where additional behavior can be usefully<br />

joined. An advice is a program element that defines additional code to run at a join point, and can run<br />

before, after, and around join points. A pointcut is a program element that identifies join points.<br />

An aspect can alter the behaviour of the base code (the non-aspect part of a program) by applying<br />

advice (additional behaviour) at various join points (points in a program) specified in a quantification<br />

or query called a pointcut (that detects whether a given join point matches).<br />

These new concepts are needed to weave aspects with the base application. Traditionally, weaving<br />

takes place at compile time, which means that the advices are inserted into the target application at the<br />

source or byte-code level. However, more flexible approaches allow weaving to occur at runtime, such<br />

as Jasco (JAsCo Project, 2007).<br />

<strong>Aspect</strong>J includes a compiler (ajc), a debugger (ajdb), a documentation generator (ajdoc), a program<br />

structure browser (ajbrowser); it is integrated with Eclipse, Sun-ONE/Netbeans, GNU<br />

Emacs/XEmacs, JBuilder, and Ant (<strong>Aspect</strong>J Project, 2007).


A radically different programming language is Hyper/J (Tarr, 1999; MDSoC, 2007). Hyper/J supports<br />

“multi-dimensional” separation and integration of concerns in Java. The goal is to avoid the tyranny of<br />

the dominant decomposition. This is achieved using hyperslices to encapsulate concerns in<br />

dimensions. The HyperJ tool manages the interactions across different decompositions and provides a<br />

powerful composition capability, which can be used to integrate separated concerns into a component.<br />

3.5 <strong>Aspect</strong>-oriented requirements engineering approaches<br />

As described in <strong>Chapter</strong> 2, contemporary requirements engineering approaches, such as viewpoints<br />

(Sommerville, 1997b), use cases (Jacobson, 1992), and goals (VanLamsweerde, 2001) provide good<br />

support for identification and treatment of some kinds of requirements. However, these requirements<br />

approaches do not explicitly support well broadly-scoped requirements, such as crosscutting concerns,<br />

and do not explicitly support their composition. Moreover, they all suffer from the “tyranny of the<br />

dominant decomposition”.<br />

The dominant decomposition for requirements is the organization of the requirements document into<br />

elements on the basis of stakeholders’ perspectives, for example, use cases, viewpoints, and goal<br />

descriptions. So, aspects allow the modularization of crosscutting concerns that cannot be<br />

encapsulated using use cases or viewpoints, for example, and are typically spread across several of<br />

them (Jacobson, 1992; Finkelstein, 1996). Composition, on the other hand, apart from allowing the<br />

developers to picture a broader part of the system, allows them to identify conflicting situations<br />

whenever a concern contributes negatively to others. This offers the opportunity to establish critical<br />

trade-offs before the architecture design is derived, supporting the necessary negotiations among the<br />

stakeholders (Rashid, 2003).<br />

In summary, if crosscutting requirements, functional or non-functional, are hard to isolate within<br />

individual modules and not effectively modularised, it is not possible to reason about their effect on<br />

the system or on each other. Yet, neither the non-crosscutting requirements approaches reflect the<br />

separation of the crosscutting requirements, nor do they present mechanisms to compose such<br />

requirements in a successful manner without losing abstraction. This fact motivates the work on<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering (AORE).<br />

The AORE approaches fill the gap left by the traditional requirements engineering approaches, by<br />

providing systematic means for the identification, modularization, representation and composition of<br />

crosscutting requirements.<br />

38


AORE approaches, similarly to other requirements approaches, consist of elicitation, analysis and<br />

specification, validation, conflict resolution and management of requirements. The fundamental<br />

difference between AORE and classic requirements engineering approaches is that AORE handles all<br />

kinds of requirements, including crosscutting requirements. To achieve this, AORE requires:<br />

• The existence of effective means to identify aspectual requirements in requirements<br />

documents.<br />

• The ability to modularize aspectual requirements.<br />

• The facilities to obtain a complete and consistent set of descriptions and representations of all<br />

requirements.<br />

• The ability to compose aspectual and non-aspectual requirements to clearly understand the<br />

system and to identify and analyse critical trade-offs between requirements.<br />

• The procedure to identify and resolve conflicts between requirements or stakeholders.<br />

• The facilities to trace aspectual requirements to latter development stages or to their source.<br />

• A set of tools to facilitate aspectual requirements management.<br />

From the large list of AORE approaches that currently exist, we have chosen the better-know ones;<br />

some of these are extensions of well-established requirements engineering techniques and the others<br />

are newly created to support AORE.<br />

3.5.1 <strong>Aspect</strong>-oriented component requirements engineering<br />

The <strong>Aspect</strong>-<strong>Oriented</strong> Component <strong>Requirements</strong> Engineering approach was one of the first to be<br />

proposed. This approach is an extension of component based software development, offering a<br />

characterization of diverse aspects of a system that each component provides to end users or other<br />

components (Grundy, 1999). When building an application, a developer needs to identify all the<br />

components, using “functional decomposition”, and use the term “aspects” in to ways: (i) to describe<br />

features that crosscutting many different components and (ii) to provide “multiple perspectives” on<br />

software components using aspect information of the component specification and design (Filman,<br />

2005).<br />

39


The <strong>Aspect</strong>-<strong>Oriented</strong> Component <strong>Requirements</strong> Engineering approach is complementary to design and<br />

implementation component-based approaches. It extends components and their interactions to support<br />

overlapping aspects between components. Also, promoting the isolation of aspects into reusable<br />

components is another important issue of the approach. According to this, <strong>Aspect</strong>-<strong>Oriented</strong><br />

Component <strong>Requirements</strong> Engineering is an asymmetric approach since it includes means to just<br />

separate aspects that crosscut the components.<br />

This approach is too specific for component development, not showing evidence of its use in software<br />

development in general. Besides, the identification of aspects for each component is not clearly<br />

defined and lacks tool support.<br />

3.5.2 <strong>Aspect</strong>-oriented software development with use cases<br />

The <strong>Aspect</strong>-<strong>Oriented</strong> Software Development with Use Cases approach model crosscutting concerns<br />

with use cases (Jacobson, 2004). According to the author, one should design use cases in terms of<br />

overlays on top of classes – overlays refer to use cases slices and use case modules. Later, aspect<br />

technology is used to compose use cases slices/modules to form the complete system. More<br />

specifically, <strong>Aspect</strong>-<strong>Oriented</strong> Software Development with Use Cases proposes a technique to identify<br />

and keep crosscutting concerns separate and a composition mechanism to compose these concerns to<br />

form the desired system. This is achieved with the concepts of a use-case slice and a use-case module.<br />

Use-case slices employ aspects to compose the different parts of a model together. A use-case module<br />

contains the specifics of a use case over all models of the system. Another important concept used in<br />

this approach is the extension use case. This is a special kind of use case that allows us to keep<br />

additional functionality separate from an existing use case. The realization of extension use cases<br />

requires additional behaviour to be defined into existing operations and the use-case slices keep these<br />

operation extensions separate from the existing operations. They are subsequently executed at<br />

designated points specified by pointcuts during compilation or execution.<br />

A system is built use case by use case. First, we must identify the use cases that form the system.<br />

Secondly, we specify each use case, to analyze it, to design and implement it. As each use case<br />

progresses through the various models, the corresponding use case slice is updated in the respective<br />

models. These slices are shown shaded in Figure 3.3.<br />

40


Specify<br />

Use Case<br />

updates<br />

use case model<br />

Analyze<br />

Use Case<br />

updates<br />

analysis model<br />

41<br />

Design and Implement<br />

Use Case<br />

design model<br />

updates<br />

implementation<br />

model<br />

Figure 3.3 Use case slice, taken from (Jacobson, 2004)<br />

Figure 3.4 shows an example of use case progress through the UML models. For example, Withdraw<br />

Cash use case has Interface, Cash Withdrawal and Cash components in the Use Case design model<br />

and Component design & implementation model. Furthermore, the Interface and Cash from the<br />

Component design & implementation model are also components of Transfer Funds and Deposit<br />

Funds use cases.<br />

Use case<br />

Specification<br />

Withdraw Cash<br />

Transfer Funds<br />

Deposit Funds<br />

Interface Cash<br />

Withdrawal<br />

Interface<br />

Use case<br />

design<br />

Transfer<br />

Funds<br />

Interface Deposit<br />

Funds<br />

Cash<br />

Cash<br />

Component design &<br />

implementation<br />

Interface<br />

Cash<br />

Withdrawal<br />

Transfer<br />

Funds<br />

Deposit<br />

Funds<br />

Figure 3.4 UML elements for each use case slice, taken from (Jacobson, 2004)<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development with Use Cases approach is based on the original Uses Case<br />

approach from the same author and adapts the concept of use cases to support crosscutting concerns.<br />

Also, it introduces new concepts, such as use-case slices and pointcuts to handle composition. These<br />

notions are strongly influenced by the <strong>Aspect</strong>J-style linguistic constructs (e.g., pointcut) and HyperJ-<br />

type decomposition modules (e.g., slice).<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development with Use Cases is an approach strongly related to UML;<br />

currently, it does not support conflicts management. At requirements level, this approach handles all<br />

Cash


concerns in a uniform fashion using use cases, use case slices and use case modules, so it is a<br />

symmetric approach.<br />

3.5.3 Cosmos<br />

Cosmos is a general purpose schema for modelling multidimensional concern-spaces (Sutton Jr,<br />

2002c; MDSoC, 2007). A concern-space is an organised representation of concerns and their<br />

relationships and predicates. The relationships and predicates are also classified as concerns to<br />

guarantee completeness and consistency with a multi-dimensional perspective. The authors use the<br />

term “Multi-Dimensional Separation of Concerns” (MDSoC) to refer to flexible and incremental<br />

separation, modularization, and integration of software artefacts based on any number of concerns. Its<br />

mechanisms allow clean separation of multiple, potentially overlapping and interacting concerns<br />

simultaneously, with support for on-demand remodularization to encapsulate new concerns at any<br />

time. Considering this multi-dimensional perspective, Cosmos handles all concerns in a uniform<br />

fashion, so it is a symmetric approach.<br />

Based on this schema it is possible to modularize concerns but not to identify them. Using mapping<br />

association and physical implementation relationships’ elements it is possible to map concerns into<br />

artefacts of the next development process stages. Also, using the interpretative contribution<br />

relationship element, it is possible to identify conflicts between concerns, but not to solve them.<br />

Finally, the schema does not have enough information about how concerns can be composed.<br />

To illustrate this approach, a general-purpose software cache example is used in (Filman, 2005). “It<br />

supports the usual functionality associated with a cache and it has some less common features such<br />

object dependencies, logging, and statistics collection. It is also highly configurable, both statically<br />

and dynamically.” In particular, a cache has to be specified in terms of a particular set of desired<br />

concerns, and then to enable a cache that addressed those concerns to be composed from reusable,<br />

concern specific fragments of Java code. Examples of high-level concerns in the implementation of the<br />

GPS cache are illustrated in Figure 3.5 and Figure 3.6. In these figures the concerns are organized as<br />

classes of logical concerns or other categories of logical concerns. The logical concerns classes is<br />

composed of implementation object classes, functionality, behaviour, state, properties, and Java units.<br />

42


Figure 3.5 Logical concerns from GPS cache, taken from (Filman, 2005)<br />

The logical concerns other categories is composed of instances, properties, and topics.<br />

Figure 3.6 Logical concerns from GPS cache, taken from (Filman, 2005)<br />

The authors of this approach affirm that Cosmos supports the modelling of multidimensional concern<br />

spaces, and concerns in the cache can indeed be described multidimensional, i.e., many elements in the<br />

cache can be assigned to concerns in multiple classifications.<br />

43


3.5.4 <strong>Aspect</strong>-oriented requirements engineering with ARCaDE<br />

The aspect-oriented requirements engineering with ARCaDE (<strong>Aspect</strong>ual <strong>Requirements</strong> Composition<br />

and Decision Support) approach proposes a model that supports separation of aspects at the<br />

requirements level based on treating PREView concerns as aspects (Rashid, 2002). Due to the<br />

broadly-scoped characteristic of PREView concerns, as they refer to non-functional requirements, they<br />

basically crosscut the requirements emerging from viewpoints (Rashid, 2002; 2003). This approach<br />

proposes techniques to:<br />

• Identify and specify concerns and candidate aspects.<br />

• Compose candidate aspects with the viewpoints that they cut across.<br />

• Handle conflicts.<br />

Figure 3.7, taken from Rashid et al., shows the process for ARCaDE process model (Rashid, 2003).<br />

Identify and<br />

specify concerns<br />

Identify coarse-grained<br />

concern/stakeholders’<br />

requirements relationships<br />

Identify candidate<br />

aspects<br />

Compose<br />

Define composition<br />

rules<br />

Compose aspects<br />

and stakeholders’<br />

requirements<br />

Identify & Specify<br />

Identify and specify<br />

stakeholders’ requirements<br />

Build<br />

contribution<br />

table<br />

Handle conflicts<br />

Attribute weights<br />

to conflicting<br />

aspects<br />

44<br />

Revise<br />

requirements<br />

specification<br />

Resolve<br />

conflicts<br />

Figure 3.7 AORE with ARCaDe, taken from (Rashid, 2003)<br />

Specify aspect<br />

dimensions<br />

The model starts by identifying and specifying both concerns and stakeholders’ requirements. Using a<br />

matrix, the concerns that crosscut the viewpoints are identified and qualified as candidate aspects.<br />

Once the coarse-grained relationships between concerns and stakeholders’ requirements have been<br />

established and the candidate aspects identified, the next step is to compose candidate aspects with<br />

viewpoints. Composition rules between aspectual requirements and viewpoint requirements are then<br />

defined using composition operators. A set of composition rules is defined for each candidate aspect.


The rules are written at the requirements’ aspect and viewpoint granularity level, showing the effect of<br />

the aspect on the base requirements. After the composition step, conflicts are identified and handled.<br />

First, due to the ability to compose aspectual and non-aspectual requirements at fine granularity level,<br />

the need for analysing possible conflicts is eliminated when different concerns affect different<br />

requirements within the same viewpoint. Secondly, a mechanism for conflict assessment and<br />

resolution is provided when concerns do affect the same requirement. In this case, the model proposes<br />

three steps:<br />

• Built a contribution matrix with only negative contributions presenting a real problem.<br />

• Allocate weights to conflicting aspects based on fuzzy intervals to prioritise the conflicting<br />

requirements.<br />

• If the weights are assigned to conflicting requirements are equal, initiate a negotiation between<br />

stakeholders.<br />

The process concludes by identifying candidate aspects’ mapping and influence on later development<br />

stages. A candidate aspect might map onto a system feature/function, decision, design and aspect. A<br />

concern might influence different points in a development cycle, e.g., availability influences the<br />

system architecture while mobility influences specification, architecture, design and implementation.<br />

The approach supports separation and specification of aspectual and non-aspectual requirements in<br />

modules representing coherent abstractions, and described using XML. The XML composition rules<br />

use a list of constraint actions and operators, with well-defined semantics. They are used to specify<br />

how aspectual requirements affect or advise the behaviour of a set of non-aspectual requirements. The<br />

approach is supported by a tool called ARCaDe. This tool supports the validation of composition<br />

relationships and the identification of conflicts. Once detected, this approach supports conflicts<br />

resolution using fuzzy value assignment.<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering is an extension of PREView requirements engineering<br />

approach, proposing means to separate candidate aspects from view points, so according to this, the<br />

approach is asymmetric. Also, it does not present a systematic technique to identify concerns and the<br />

composition rules are defined based on the candidate aspect, i.e., the approach only proposes<br />

composition rules that define how an identified crosscutting concern is composed with viewpoints. So,<br />

the composition of the viewpoints themselves is not specified.<br />

45


3.5.5 Concern oriented requirements engineering<br />

Moreira et al. propose a multi-dimensional approach to separation of concerns in requirements<br />

engineering as well as trade-off analysis of the requirements specification from such a multi-<br />

dimensional perspective (Moreira, 2005a; 2005b). The basic ideas are: (i) to address the so-called<br />

tyranny of dominant decomposition, promoting a uniform treatment of the various types of concerns;<br />

(ii) to take advantage of the observation that concerns in a system are, in fact, a subset, and concrete<br />

realisations, of abstract concerns in a meta concern space; and (iii) to provide a rigorous analysis of<br />

requirements-level trade-offs as well as important insights into architectural choices.<br />

Figure 3.8 shows the Concern-<strong>Oriented</strong> requirements Engineering (CORE) process model, taken from<br />

(Moreira, 2005b).<br />

Figure 3.8 Concern oriented requirements engineering process, taken from (Moreira, 2005b)<br />

The process starts by identifying concerns using existing requirements elicitation mechanisms. The<br />

identified concerns are specified using well-defined templates. The second step is to identify coarse-<br />

grained relationships among concerns by relating concerns to each other through a matrix. The third<br />

step is to specify the possible projections of each concern on other concerns using composition rules.<br />

These rules operate at fine granularity, i.e., at individual requirements level and not just at concerns<br />

level. After specifying the various projections with the aid of composition rules, identification and<br />

resolution of conflicts among the concerns is carried out. This is accomplished by:<br />

• Building a contribution matrix where each concern may contribute negatively (-) or positively<br />

(+) to the others (empty cells represent “don’t care” contributions).<br />

• Providing a folded table to “reflected projections”.<br />

46


• Allocating priorities, i.e. weights in the interval [0…1], to those concerns or requirements that<br />

contribute negatively to each other in relation to a particular concern.<br />

• Solving the conflicts with the stakeholders, using the above prioritisation approach to help<br />

negotiation and decision-making.<br />

Conflict resolution might lead to a revision of the requirements specification, which is repeated until<br />

all conflicts have been resolved through effective negotiations. The last activity in the model is<br />

identification of the dimensions of a concern using two notions: mapping and influence, as in <strong>Aspect</strong>-<br />

oriented requirements with ARCaDE (Rashid, 2003).<br />

The discussion above demonstrates that this approach supports multi-dimensional separation of<br />

concerns at the requirements level, eliminating the dominant decomposition through uniform treatment<br />

of the various types of requirements in the system, so it is symmetric. This multi-dimensionality is<br />

achieved through a uniform treatment of both functional and non-functional properties that enhance<br />

the support of crosscutting functional properties. The multi-dimensional approach provides an<br />

effective support for establishing early trade-offs and negotiations among stakeholders. A<br />

Multidimensional <strong>Requirements</strong> <strong>Analysis</strong> Tool (MRAT) is the tool that supports this approach<br />

(Chitchyan, 2007a).<br />

3.5.6 <strong>Aspect</strong>-oriented scenario modelling<br />

Whittle et al. and Araújo et al. present an aspect-oriented scenario modelling approach to be used at<br />

the requirements level (Araújo, 2004; Whittle, 2004). The motivation for this approach is to eliminate<br />

the need to repeatedly deal with the same crosscutting, i.e. aspectual scenarios (e.g., failures,<br />

exceptions, etc.), which occur along with many scenarios. The non-aspectual and aspectual scenarios<br />

are modelled separately from each other then merged as required, producing the complete scenarios.<br />

<strong>Aspect</strong>ual scenarios are modelled using Interaction Pattern Specifications described in France et al.<br />

and composed with non-aspectual scenarios (France, 2004). The process model presented also<br />

includes the generation of state machines from composed scenarios (represented by sequence<br />

diagrams), to be used to create prototypes for stakeholder’s requirements validation, as implemented<br />

by Whittle (Whittle, 2004). Figure 3.9, shows the main steps of the Scenario Modelling with <strong>Aspect</strong>s<br />

approach.<br />

47


Figure 3.9 Scenario modelling with aspects, taken from (Whittle, 2004)<br />

The process starts with requirements identification and definition using use cases to identify functional<br />

requirements and templates for non-functional ones. This is followed by use case refinement and<br />

scenario identification. The non-functional requirements are likely to result in aspectual scenarios, and<br />

other aspectual scenarios may be identified for some functional requirements. Thereafter, the non-<br />

aspectual scenarios are modelled as UML sequence and state machines diagrams. As mentioned<br />

before, aspectual scenarios are modelled as Interaction Pattern Specifications, which are then<br />

translated into State Machine Pattern Specifications using a state machine synthesis algorithm. These<br />

aspectual state machines are composed with non-aspectual ones using State Machine Binding<br />

Specification, which provides a correspondence between relevant states of each of the state machine.<br />

Finally, the composed state machine can be simulated using existing simulation tool.<br />

The approach does not propose a systematic technique to aspectual scenario identification, merely<br />

stating that scenarios that represent use cases which affect other use cases are aspectual. The approach<br />

also suggests that the non-functional requirements will result in aspectual scenarios. Nevertheless,<br />

once identified, the non-aspectual and aspectual scenarios are specified and compose using UML<br />

models. Also, aspectual scenarios is an asymmetric approach, since it proposes means to define and<br />

modularize functional, non functional and crosscutting requirements through different elements, such<br />

as use cases, templates and aspectual scenarios.<br />

3.5.7 Theme<br />

The Theme approach provides a model and tool support for identification of aspects in requirements<br />

specifications (Theme/Doc), design level modelling of aspects and their composition, at design level<br />

only (Theme/UML) and, checking design decisions in the context of the requirements (Baniassad,<br />

2004; Baniassad, 2004a; Clarke, 2005). This is accomplishing by Theme/Doc and Theme/UML. At<br />

the requirements level, Theme/Doc provides four views for requirements engineering to identity<br />

aspects in requirements and map them to design. Figure 3.10, taken from Chitchyan et al., shows these<br />

views: (i) action; (ii) clipped; (iii) theme and (iv) augment the theme (Chitchyan, 2005). Theme/Doc<br />

allows the developer to first identify a set of actions in the requirements documentation, i.e. views, and<br />

secondly, to refine and link views of the requirements to reveal which functionality in the system is<br />

48


crosscutting, and where in the system it crosscuts. The requirements engineer checks-up the links, re-<br />

groups the words and requirements and clips the links between action words and requirements. This<br />

process, the clipped view, leads to grouping of requirements around main (base) and secondary<br />

(aspectual) functionalities called themes. A theme is a collection of structures and behaviours that<br />

represent one feature. According to this, Theme is a symmetric approach since any concern, whether<br />

crosscutting or not, may be encapsulated in a theme.<br />

The themes are then organised in accordance with the order of composition that is reflected by the<br />

levels of themes in clipped view. The augment view is used to verify design decisions with<br />

requirements.<br />

Figure 3.10 Theme/Doc Views, taken from (Chitchyan, 2005)<br />

At the design level, Theme/UML allows a developer to model features and aspects of a system, and<br />

specifies how they should be combined (Clarke, 2005).<br />

The Theme approach provides support to:<br />

• Identify aspects by examining shared requirements at action view.<br />

• Verify design decisions with requirements at augmented view.<br />

• Traceability from requirements to design since requirements map directly to Theme/Doc<br />

views, which map directly to Theme/UML models.<br />

A tool is provided to create graphs of the relationships between concerns and the requirements that<br />

mentioned those concerns.<br />

Theme/Doc is useful to aspect-oriented analysis at requirements engineering, but does not propose any<br />

technique to aspectual specification and composition in a systematic fashion. Also, Theme/Doc does<br />

49


not provide enough support for requirements of large scale systems. Nevertheless, in Baniassad et al.<br />

initial research is discussed about using several latent clues in requirements documentation to help<br />

scale document concern-views (Baniassad, 2004a). In Theme/Doc, composition is delayed until design<br />

with Theme/UML.<br />

3.5.8 <strong>Requirements</strong> description language<br />

<strong>Requirements</strong> Description Language (RDL) modularises the requirements in terms of concerns and<br />

describes the relationships and constraints upon these concerns in terms of their requirements<br />

semantics (Chitchyan, 2006; 2007a). RDL is a symmetric AORE approach, i.e., all concerns (whether<br />

functional or non-functional, crosscutting or non-crosscutting) are represented using the same<br />

abstraction. The requirements specified using RDL are annotated natural language sentences. Each<br />

sentence may contain one or several clauses that contain sub-elements for subject, relationship and<br />

optionally for object(s). A subject is the entity that undertakes actions described within the<br />

requirement clause; same as the grammatical subject in the clause. An object is the entity which is<br />

affected by the actions of the subject of that clause, or in respect with which the actions are<br />

undertaken. Object in RDL also corresponds to the grammatical object of the clause. Relationship<br />

depicts the action performed by the subject on or with regards to its object(s). Thus, the RDL, in<br />

essence, is a language designed to capture the meaning of natural language requirements via the<br />

elements that realize certain grammatical functions (i.e., subject, verb phrase, and object) and relate to<br />

certain semantic categories (e.g., verb classes). This language allows description of requirements<br />

interrelationships (via compositions) based on their semantics.<br />

RDL provides mechanisms for composition specification based on natural language grammar and<br />

semantics (using mainly Natural Language Processing techniques) as well as some notions of AOSD,<br />

such as joinpoints and pointcuts. RDL joinpoint is any point/element of the annotated text where<br />

interaction may occur, and pointcuts are query expressions that select sets of joinpoints.<br />

RDL composition is a process of requirements analysis and aggregation into a coherent set of<br />

elements. Through composition we are able to expose the influences of concerns, detect conflicts and<br />

inconsistencies between them, and solve these conflicts and inconsistencies. The composition in RDL<br />

contains three elements: Constraint, Base and Outcome. Each of these elements has an operator<br />

attribute (defines the way in which the pointcut integrates with the other composition elements) and a<br />

semantic query expression, i.e., a pointcut expression.<br />

50


RDL is based on XML constructs to define all its elements. Since the RDL is XML-based, it makes<br />

sense to use the XML-supporting technologies, such as XPath and XQuery for the pointcut definition.<br />

Multi-Dimensional <strong>Requirements</strong> <strong>Analysis</strong> Tool (MRAT) can also be used by RDL to support analysis<br />

of crosscutting requirements. MRAT is an ECLIPSE plug-in that supports composition specification<br />

and conflict identification and resolution of some of the temporal conflicts by ordering the<br />

compositions based on the composition operator semantics (Chitchyan, 2007a). To accomplish this, an<br />

analysis algorithm was developed to compose concerns and finds temporal problems, revealing the<br />

cause and resolution for temporal conflicts.<br />

This approach claims that current <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering composition<br />

mechanisms are still undeveloped because they do not handle efficiently the complexity of large<br />

systems. So, using description of requirements compositions based on their semantics, RDL handles<br />

efficiently this complexity. However, the approach requires a good and complete requirements<br />

document, which we cannot expect to have unless some work on requirements elicitation and analysis<br />

has already been done. Also, more work pertaining to requirement refinement as well as conflict and<br />

trade-off resolution with this approach is required to make it more useful.<br />

3.5.9 AOV-Graph<br />

AOV-graph is an extension to V-graph models to avoid the tangling and scattering of crosscutting<br />

concerns in requirements models (Fernandes, 2005). This approach uses goal models and the concepts<br />

defined in aspect-oriented languages to provide separation, composition and visualization of<br />

crosscutting concerns to facilitate their modelling. AOV-Graph goals are used to model sets of<br />

requirements separately and to offer a way to model the relationships between them. According to this,<br />

AOV-Graph is a symmetric approach since any concern, whether crosscutting or not, may be<br />

encapsulated in a goal. Furthermore, AOV-Graph offers different views originating from the<br />

composite model.<br />

AOV-graph consists of:<br />

• Goals, which represent concrete objectives to be achieved for the system.<br />

• Softgoals, which represent abstract objectives, frequently associated to non-functional<br />

requirements.<br />

51


• Tasks, which represent actions (or functional requirements) to be performed to achieve<br />

goals/softgoals.<br />

The AOV-graph model also contains the following relationships:<br />

• Correlations, which are used to make explicit the negative and positive influences between<br />

goals and softgoals, or softgoals and softgoals.<br />

• Contributions are used to show how goals/softgoals can be operationalized by tasks,<br />

goals/softgoals.<br />

• Crosscutting relationships are used to register how softgoals/goals are scattered and tangled<br />

through their operationalizations.<br />

This approach does not explicitly support the identification of crosscutting concerns. According to<br />

Fernandes, identifying crosscutting concerns is not AOV-Graph focus because they naturally appear<br />

during modelling (Fernandes, 2005). However, crosscutting relationships are identified, either because<br />

a requirement impacts on many points, or because it is important to keep one requirement separate<br />

from the others. Based on the crosscutting relationships, the compositions are specified using pointcuts<br />

and operators, advices and intertype declarations. Using correlations relationships, conflicting<br />

situations are identified. However, AOV-Graph does not support their resolution.<br />

3.6 Conclusions<br />

Crosscutting concerns are responsible for producing scattered and tangled representations (e.g.,<br />

specifications and code) that are invasive to implement and difficult to understand and to evolve.<br />

AOSD aims at providing means for their systematic identification, separation, representation and<br />

composition, throughout the software lifecycle. AOSD emerges to address the crosscutting concerns,<br />

or to properties of software that cannot be effectively modularized using traditional software<br />

development techniques, such as object-oriented methods.<br />

Similarly to what happened to previous software development approaches, AOSD was introduced first<br />

at the programming level, with <strong>Aspect</strong>-<strong>Oriented</strong> Programming, where aspects are handled in code. The<br />

AOSD concepts have been moving beyond programming and are now being applied at earlier<br />

development stages, i.e., at the design, architectural and requirements level.<br />

52


The AORE approaches fill the gap left by the traditional requirements engineering approaches, in<br />

particular offering a uniform and integrated treatment of crosscutting concerns, as well as improved<br />

composition techniques. As mentioned before, several methods have been proposed for AORE, each<br />

one addressing specific issues of AORE (Rashid, 2003; Sutton Jr, 2004; Clarke, 2005; Moreira, 2005a;<br />

Chitchyan, 2007a). In general AORE approaches propose techniques for elicitation, analysis and<br />

specification, validation, conflict resolution and management of all types of requirements, including<br />

crosscutting requirements. At the end of these activities, a complete and consistent set of requirements<br />

specification, models and composition rules is obtained.<br />

These approaches are too young and are still being validated to demonstrate that they can be<br />

successfully applied to real case studies, when compared with more traditional <strong>Requirements</strong><br />

Engineering approaches. In particular, most AORE approaches still need to:<br />

• Improve the ability to identify crosscutting functional concerns.<br />

• Enhance the support for composition at a finer level of granularity.<br />

• Improve the link between composed requirements and architectural units.<br />

• Avoid the tyranny of dominant decomposition. Some of the AORE approaches are extensions<br />

of existing <strong>Requirements</strong> Engineering approaches, consequently they “suffer” the symptoms<br />

of this situation (scattering and tangling).<br />

• Develop systematic techniques to identify and solve all kinds of conflicts that could emerge at<br />

<strong>Requirements</strong> Engineering level.<br />

• Propose facilities to trace aspectual requirements.<br />

• Improve a tool to manage aspectual requirements.<br />

53


55<br />

<strong>Chapter</strong> 4<br />

<strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong><br />

<strong>Analysis</strong><br />

This chapter describes the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA) approach for analyzing<br />

concerns, focusing specially on crosscutting concerns, or aspects, during requirements engineering.<br />

Similarly to the approaches described in <strong>Chapter</strong> 3, AORA proposes techniques for elicitation,<br />

analysis, specification and composition of all types of concerns, crosscutting and non-crosscutting<br />

concerns. In particular, AORA focuses on:<br />

• Support for identification of crosscutting concerns, functional or non-functional.<br />

• Support for modularization and encapsulation of crosscutting concerns to avoid the tyranny of<br />

the dominant decomposition symptoms. This is achieved by handling all concerns in the same<br />

fashion.<br />

• Support for composition of crosscutting and non-crosscutting concerns.<br />

• Support for conflict identification and resolution that could emerge at <strong>Requirements</strong><br />

Engineering level.


The AORA concepts and relationships are defined more rigorously in a metamodel. So, this<br />

metamodel, which is an extension of the UML metamodel (UML, 2004), defines concerns and their<br />

elements, and composition rules and their operators.<br />

This chapter consists of four sections. The first section presents the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong><br />

<strong>Analysis</strong> approach. It is composed of three main tasks: identify concerns, specify concerns, and<br />

compose concerns. Identification of concerns is accomplished by undertaking a complete and<br />

exhaustive analysis of the problem under study documentation, existing reusable catalogues and any<br />

other information provided by the stakeholders. All the identified concerns are specified using an<br />

unique template that describes all types of concerns, be crosscutting and non-crosscutting concerns.<br />

For the composition of concerns, the match point and composition rule, including composition<br />

operators, concepts are proposed. Apart from allowing the developers to picture a broader part of the<br />

system, this activity allows them to identify conflicting situations whenever concerns contribute<br />

negatively among them. The following section, Section 4.2, presents the AORA metamodel and an<br />

AORA Profile. The AORA metamodel is organized in two parts: specification and composition.<br />

Section 4.3 illustrates AORA by means of an example case study. The chapter finishes with some<br />

conclusions.<br />

4.1 The AORA approach<br />

A general model for the AORA approach is shown in Figure 4.1. The figure uses the graphical<br />

notation from Hierarchical Task <strong>Analysis</strong> (HTA) in which activities are represented in hierarchical<br />

order (Annett, 2004). Each numbered box represents an activity that can be refined using a plan. Each<br />

plan represents a flow diagram describing the activities’ sequence.<br />

The AORA model is refined using Plan 0 that describes the three main tasks of the model: identify,<br />

specify and compose concerns. Each of these tasks is refined using Plan 1, 2 and 3 to identify, specify<br />

and compose concerns respectively. In Plan 1, Identify Concerns is refined into six subtasks (1.1)<br />

Identify stakeholders, (1.2) Identify sources, (1.3) Elicit concerns, (1.4) Reuse of catalogues (1.5)<br />

Decompose concerns and (1.6) Classify concerns. In Plan 2, Specify Concerns is refined into (2.1)<br />

Identify responsibilities, (2.2) Identify contributions, (2.3) Identify required concerns and (2.4) Identify<br />

stakeholders priorities. In Plan 3, Compose Concern is refined into (3.1) Identify match points, (3.2)<br />

Identify crosscutting concerns, (3.3) Handle conflicts and (3.4) Define composition rules.<br />

56


Plan 0:<br />

Identify<br />

Concerns<br />

Plan 1:<br />

Identify<br />

stakeholders<br />

(0.1) (0.2)<br />

(0.3)<br />

Plan 2:<br />

AORA Model<br />

Specify<br />

Concerns<br />

Identify<br />

responsibilities<br />

(1.1) Identify (1.2)<br />

sources<br />

Plan 3:<br />

Compose<br />

Concerns<br />

Identify<br />

match points<br />

Identify<br />

contributions<br />

Elicit<br />

concerns<br />

(3.1) (3.2) (3.3) (3.4)<br />

57<br />

Identify<br />

crosscutting<br />

concerns<br />

Reuse of<br />

catalogues<br />

Identify<br />

required<br />

concerns<br />

Handle<br />

conflicts<br />

(2.1) (2.2) (2.3)<br />

(2.4)<br />

(1.4)<br />

(1.5)<br />

(1.3) Decompose<br />

Figure 4.1 The AORA model<br />

concerns<br />

Identify<br />

stakeholders<br />

priorities<br />

Define<br />

composition<br />

rules<br />

(1.6)<br />

Classify<br />

concerns<br />

The AORA process can be described in more detail using several techniques. Here, and for simplicity,<br />

we decided to use UML activity diagrams. Figure 4.2 shows the activity diagram corresponding to the<br />

tasks listed in Plan 0. Each task is modelled as an activity state and more important decision points are<br />

marked using choices. Whenever a new concern is identified, the process restarts at the identify<br />

concerns task. Plan 0 is finished when all the concerns have a template and the match points have a<br />

composition rule as well as a list of their ranked concerns. The diagram also uses the note element to<br />

make explicit the major deliverables between tasks: concern templates, match points, crosscutting<br />

concerns, composition rules and ranked concerns.


Plan 0<br />

Identify Concerns<br />

Specify Concerns<br />

other concerns?<br />

Compose Concerns<br />

other concerns?<br />

End<br />

[yes]<br />

[yes]<br />

58<br />

Output :<br />

Concern Templates<br />

Output :<br />

Concern Templates<br />

Output :<br />

Concern Templates<br />

Composition rules<br />

Ranked concerns<br />

Crosscutting concerns<br />

Match points<br />

Figure 4.2 Plan 0: AORA main tasks described using an activity diagram<br />

The following subsections present the remaining plans (1-3) with their respective subtasks.<br />

4.1.1 Identify concerns<br />

Intensive and deep concern identification is, per se, out of the scope of this work. It is not our aim to<br />

propose new elicitation techniques and methods. Many techniques already exist in the literature and<br />

we explored its use (Nuseibeh, 2000). Nonetheless, aspect-orientation brings an interesting new<br />

dimension to the early requirements techniques and some authors are focusing on this. Currently, they<br />

are exploring the use of Natural Language Processing techniques and tools to help mining aspects in<br />

requirements documents (Sampaio, 2005).<br />

For our work, and being one of the first in the field, we felt the need to divide our effort between the<br />

three activities we still believe are fundamental in AOSD: identification, specification and<br />

composition. In particular, specification and composition were the activities that, back to five years<br />

ago, we believed were the fundamental tasks to help us understand the impact of aspects in the early<br />

activities of the development lifecycle.<br />

For the identification technique we have explored existing traditional elicitation techniques. Our main<br />

contribution in this regard was to explore the relationships between work on non-functional<br />

requirements, such as the NFR Framework described in (Chung, 2000).


This task consists of identifying all the concerns of a system. As described in Section 3.2 a concern<br />

refers to a property which addresses a certain problem that is of interest to one or more stakeholders<br />

and which can be defined as a set of coherent requirements. Each concern defines a property that the<br />

future system must provide.<br />

This task is divided into six subtasks: (i) identify stakeholders, (ii) identify sources, (iii) elicit<br />

concerns, (iv) reuse the information available in existing catalogues, (v) decompose concerns and (vi)<br />

classify the concerns. Figure 4.3 suggests a process that can be used to accomplish these subtasks.<br />

Plan 1<br />

Identify Stakeholders Identify Sources<br />

Elicit Concerns<br />

more concerns?<br />

Reuse of<br />

Catalogues<br />

Classify Concerns<br />

End<br />

[no]<br />

59<br />

Decompose<br />

concerns<br />

Output :<br />

Concern Templates<br />

Figure 4.3 Plan 1: identify concerns process<br />

As we can see in the Figure 4.3, the subtasks can be accomplished iteratively, incrementally and some<br />

of them in parallel. At the end of this task we have concern templates partially filled for all the<br />

identified concerns.<br />

Identify Stakeholders. Because the requirements engineering process focuses on the stakeholders’<br />

needs, our goal here is to identify all the persons, organizations and other systems that have a direct or<br />

indirect interest on the system under study. Therefore, stakeholders are persons, including customers<br />

or clients (that pay for the system), developers (those that design, construct and maintain the system),<br />

and users (those that interact with the system to get their work done), other systems or organisations<br />

(that need to collaborate with our system). To identify stakeholders, we should look for persons or<br />

organizations who (Glinz, 2007):


• Must manage, introduce, operate, or maintain the system after its deployment.<br />

• Are involved in developing the system as an architect, developer, tester, quality engineer, or<br />

project manager.<br />

• Are responsible for the business or process that the system supports.<br />

• Have a financial interest, for example, they paid for it or are responsible for its sale.<br />

• Constrain the system as regulators, for example, law.<br />

• Can be affected by the system.<br />

From the list of stakeholders identified, we must select representative individuals or groups with<br />

whom we can elicit requirements, solve conflicts and validate concerns.<br />

Identify Sources. The goal of this task is to collect all of existing documentation such as<br />

organisational charts, process models or standards, catalogues and user or other manuals of existing<br />

systems that helps the identification and maintenance of (raw) requirements and concerns.<br />

Elicit Concerns. “The choice of elicitation technique depends on the time and resources available to<br />

the requirements engineer, and of course, the kind of information that needs to be elicited” (Nuseibeh,<br />

2000). Nuseibeh presents a number of classes of elicitation technique:<br />

• Traditional techniques to data collect that include the use of questionnaires and surveys,<br />

interviews, and analysis of existing documentation such as organisational charts, process<br />

models or standards, and user or other manuals of existing systems.<br />

• Group elicitation techniques to obtain stakeholder needs and include brainstorming as well as<br />

workshops based on different techniques.<br />

• Prototyping techniques to deal with uncertainty about the requirements, or where early<br />

feedback from stakeholders is needed.<br />

• Model driven techniques that provide a specific model of the type of information to be<br />

gathered, and use this model to drive the elicitation process, for example, NFR framework or<br />

Use Cases approaches.<br />

• Cognitive techniques that include a series of techniques originally developed for knowledge<br />

acquisition for knowledge-based systems.<br />

60


• Ethnographic techniques aimed to ethnomethodogy.<br />

In order to elicit concerns, we start by analysing the documents collected during the task Identify<br />

Sources, including stakeholders’ interview transcripts, to understand the system domain. To<br />

accomplish this, we look for verbs and nouns in the documents that express properties or tasks that the<br />

system must provide. Further interviews with the stakeholders might be required (these general ideas<br />

are common used by the object-oriented community, for example). Other techniques such as<br />

ethnographic studies described in (Dusire, 2002), concern mining described in (Sampaio, 2005), model<br />

oriented described in (Jacobson, 1992) may be required to obtain a more complete set of concerns.<br />

Reuse of Catalogues. To lighten the concern identification task we propose to use existing catalogues,<br />

such as those developed by Chung (Chung, 2000) and Wiegers (Wiegers, 2003). These catalogues are<br />

a source of interesting information about concepts and terminology of non-functional requirements,<br />

and at the same time promote reusability. For each entry in the catalogue, we must decide, taking also<br />

into consideration the stakeholders’ opinion, whether each concept (from a non-functional requirement<br />

to an operationalization of it) would be useful in our system, or not.<br />

These “non-functional concerns” are described using Softgoal Interdependency Graphs (SIGs). A SIG<br />

is a hierarchy graph that shows the interdependencies between softgoals (or concerns).<br />

Decompose Concerns. Concern decomposition is not a mandatory task and is achieved based on the<br />

interdependencies of SIG. Many different types of interdependencies have been introduced in the<br />

literature to relate softgoals, for example, (a) where goals positively (+) or negatively (-) support other<br />

goals and (b) AND/OR refinement links relate a goal to a set of subgoals.<br />

AND-refinement links mean that satisfying all subgoals in the refinement is sufficient for satisfying<br />

the parent goal. OR-refinement links mean that satisfying one of the refinements is sufficient for<br />

satisfying the parent goal. On the basis of these links, we identify concerns that can be decomposed<br />

into simpler ones. It should be noted that, besides the concern decomposition, SIGs illustrate a<br />

possible design solution to satisfy the concern. This is known as operationalization and is to guarantee<br />

attainment of the final goals in the decomposition process.<br />

Here, as well as in the Reuse Catalogues task, for each concern identified, we must decide whether it<br />

would be useful in our system, and therefore keep it, or discard it.<br />

Classify Concerns. AORA proposes that all types of concerns are important and should be treated in<br />

equal terms. Nonetheless, the concerns classification is important since it can provide some help in the<br />

selection of the most appropriated approach to specify concerns.<br />

61


<strong>Requirements</strong> classifications have been proposed in the software engineering literature, for example,<br />

the one proposed by (Sommerville, 2004). Inspired on this classification, our approach defines two<br />

types of concerns: functional and non-functional. Functional concerns underline services that the<br />

system is expected to deliver and are, therefore, related to satisfying stakeholders’ requests, whereas<br />

non-functional concerns refer to expected system qualities such as security, safety, performance,<br />

usability, flexibility, customizability, interoperability, and in a general way identified using catalogues<br />

(see reuse catalogues subtask).<br />

We have developed a template, depicted in Table 4.1, where relevant information about each concern<br />

should be registered.<br />

Table 4.1 A template to specify concerns<br />

Template Element Definition<br />

Name Concern designation.<br />

Sources Source of information, e.g. stakeholders, documents, system’s information, catalogues<br />

and business process.<br />

Stakeholders Entities (persons, other systems or organizations) that have an interest in a particular<br />

decision. This includes people who influence a decision, or can influence it, as well as<br />

those affected by it.<br />

Description Short description of the intended behaviour of the concern.<br />

Decomposition Concerns can be decomposed into simpler ones based on AND and OR relationships.<br />

When all (sub) concerns are needed to achieve the concern, we have an AND<br />

relationship. If not all the sub concerns are necessary to achieve the concern, we have<br />

an OR relationship.<br />

Classification For example: functional, non-functional. Helps the selection of the most appropriate<br />

approach to specify the concern.<br />

List of Responsibilities<br />

Responsibility # List of what the concern must perform, or the knowledge that the concern must<br />

maintain and offer.<br />

List of Contributions<br />

Contribution # List of concerns that contribute or affect this concern. This contribution can be positive<br />

(+) or negative (-).<br />

List of Priorities<br />

Stakeholder<br />

Priorities#<br />

List of Required Concerns<br />

Expresses the importance of the concern for a given stakeholder. It can take the values:<br />

Very Important, Important, Medium, Low, Very Low and Don’t Care.<br />

Required Concerns# List of concerns needed or requested by the concern being described.<br />

One template for each concern will be filled iteratively, and incrementally, using the process proposed<br />

in Figure 4.3. Based on the tasks described above, we fulfil the rows Name, Sources, Stakeholders,<br />

Description, Decomposition and Classification of the template for each identified concern. The<br />

remaining rows are filled during the task Specify Concerns.<br />

62


4.1.2 Specify concerns<br />

This task is divided into four subtasks: (i) identify responsibilities; (ii) identify contributions between<br />

concerns; (iii) identify required concerns and (iv) identify stakeholders’ priorities. These subtasks can<br />

be applied in parallel for each identified concern (see Figure 4.4). This task finishes when all the<br />

concerns have a complete template.<br />

Plan 2<br />

Identify<br />

Responsibilities<br />

Identify Contributions<br />

Identify Required<br />

Concerns<br />

Identify Stakeholders<br />

Priorities<br />

63<br />

[no]<br />

end?<br />

Output :<br />

Concern<br />

Templates<br />

Figure 4.4 Plan 2: specify concern process<br />

Identify Responsibilities. This provides the list of the responsibilities that the concern must perform.<br />

According to Wirfs-Brock, “a responsibility is an obligation to perform a task, or know certain<br />

information” (Wirfs-Brock, 1999). Because a concern can be defined as a set of coherent<br />

requirements, these requirements are considered as responsibilities. A concern without responsibilities<br />

is an indication that something is missing or that the concern does not make sense, so we need to<br />

restart the process at the Identification Concern task, precisely at Elicit Concern subtask. This<br />

information is added to the Responsibility row in Table 4.1.<br />

Identify Contributions. A contribution relationship between two concerns defines the way in which<br />

one concern affects the other. This contribution can be collaborative (or positive, helping the affected<br />

concern) and is represented by a “+” sign, or damage (or negative, obstructing the affected concern)<br />

and is represented by a “-” sign. These relationships are unidirectional, meaning that if a concern A has<br />

a positive contribution to concern B, the inverse is no mandatory, as we can observe in contribution<br />

table presented in (Wiegers, 2003). For example, increasing testability has a positive effect on<br />

usability because if we increase the number of tests, we can improve the usability of the system.<br />

However, increasing usability has a negative effect on testability because if we want to guarantee more<br />

usability we need more and complex tests.<br />

End


While contribution relationships between some concerns can be found in catalogues such as those in<br />

Chung et al. and Wiegers, others might be difficult to identify and require experts in several domains,<br />

such as security and real time systems (Chung, 2000; Wiegers, 2003). The process of reusing domain<br />

knowledge and catalogues in the production of new software is the key concept of domain<br />

engineering. “Domain engineering addresses the systematic creation of domain models and<br />

architectures for building reusable components. The emphasis is on reuse and product lines” (SEI,<br />

2007).<br />

These relationships are added to the Contribution row of the concern template in Table 4.1. If this<br />

concern is not affected by other concerns, the keyword is used.<br />

Identify Required Concerns. This gives the list of concerns that the concern under study needs to<br />

accomplish its own responsibilities. This step identifies concern relations for all concerns, including<br />

functional and non-functional, crosscutting and non-crosscutting. For example, the Update concern<br />

needs the ValidateInformation concern to accomplish its responsibilities. If this concern does not<br />

require any other concern, the keyword is used. This list is recorded in the row Required<br />

Concerns in Table 4.1. Notice that the Required Concerns relation is different from the Decomposition<br />

relation, where the concern is decomposed into simpler ones (see decomposition task).<br />

Identify Stakeholders Priorities. Not all concerns are equally important, so we must prioritize them.<br />

A priority gives the degree of importance of a concern for a given stakeholder. The priority of a<br />

concern is context dependent, i.e., the same stakeholder can classify the same concern differently for<br />

different business domains.<br />

In requirements engineering, prioritization methods group requirements into different categories. For<br />

example, Brackett proposes dividing the requirements into three groups: mandatory, desirable, and<br />

inessential (Brackett, 1990). According to Karlsson’s method, participants assign each requirement a<br />

number on a scale from 1 to 5 to indicate the importance of those requirements, where 1: does not<br />

matter (the customer does not need it) , 2: not important (the customer would accept its absence) , 3:<br />

rather important (the customer would appreciate it) , 4: very important (the customer does not want to<br />

be without it) and 5: mandatory (the customer cannot do without it) (Karlsson, 1995).<br />

Inspired on these approaches, we use a qualitative scale Very Important (the stakeholder cannot do<br />

without it), Important (the stakeholder does not want to be without it), Medium (the stakeholder would<br />

appreciate it), Low (the stakeholder would accept its absence), Very Low (the stakeholder accepts its<br />

absence) and Don’t Care (the stakeholder does not need it). So, this information defines the priority of<br />

64


the concern for a given stakeholder in the scope of the system. This information is added to the row<br />

Stakeholder Priorities in Table 4.1, one for each stakeholder that revealed interest for the concern.<br />

4.1.3 Compose concerns<br />

The goal of this task is to compose the concerns to give the developer a view of the whole system and<br />

to identify and manage conflicts between concerns that might result from the context-dependent<br />

compositions. To guide the composition, we propose four subtasks: (i) identify match points; (ii)<br />

identify crosscutting concerns; (iii) handle conflicts and (iv) define composition rules for each match<br />

point. Similarly to what we have done in the previous tasks, Figure 4.5 illustrates a process to apply<br />

these subtasks, which, once more, can be applied incrementally and iteratively. Moreover, we support<br />

incremental composition, independently of the concern nature. This means that we can potentially<br />

compose crosscutting with crosscutting concerns, in addition to crosscutting with non-crosscutting<br />

concerns. This task finishes when all the match points have a composition rule. At the end of this task<br />

we have a complete set of concern templates, match points, crosscutting concerns, ranked concerns<br />

and composition rules.<br />

Identify Crosscutting<br />

Concerns<br />

Output :<br />

Concern Templates<br />

Match points<br />

Crosscutting concerns<br />

Ranked concerns<br />

Composition rules<br />

Plan 3<br />

Identify Match Points<br />

Handle Conflicts Define Composition<br />

Rules<br />

end?<br />

End<br />

65<br />

[no]<br />

Figure 4.5 Plan 3: compose concerns process<br />

Identify Match Points. Based on the Required Concerns row in Table 4.1, we identify the points<br />

where compositions will take place. We call those special places match points. A match point is a<br />

point in which one or more required concerns may need to be composed together. It is composed of a<br />

set of concerns that need to be collected together. One of the concerns plays the role of the base


concern on which the behaviour of the remaining concerns needs to be weaved in. This can be better<br />

demonstrated with a bi-dimensional table of “Concerns X Required Concerns” as illustrated in Table<br />

4.2.<br />

Table 4.2 Match point identification<br />

Required Concerns (Ci , i=1,…,n)<br />

Concerns (Ci,i=1,…,n) C1 C2 C3 … Cn<br />

66<br />

Match Points (MPi, i=1,…,n)<br />

C1 √ √ MPC1<br />

C2 √ MPC2<br />

… … …<br />

Cn √ MPCn<br />

A cell is filled with a “√” if a given concern at the column “Required Concerns” is required by the<br />

concern at the row “Concerns”. So, the match point for concern C1 (MPC1) lists the set of concerns<br />

that must be composed with C1. For example, MPC1= {C1, C2, C3}.<br />

Since composition rules are defined for each match point, identifying stakeholders with an interest on<br />

the concerns that compose each match point is useful to help solving conflicts. Table 4.3 relates<br />

stakeholders with match points, where each cell lists the concerns of interest for a given stakeholder<br />

and match point.<br />

Table 4.3 Relating stakeholders with match points<br />

MatchPoints (MPCi,i=1,…,n)<br />

Stakeholders (Si,i=1,…,m) MPC1 MPC2 … MPCm<br />

S1 C2, C3 C2, C4<br />

S2 C2<br />

… … …<br />

Sm C3, Ck C3, C4<br />

Identify Crosscutting Concerns. A crosscutting concern is a concern, which cannot be modularly<br />

represented within the selected decomposition.<br />

In AORA, a concern is crosscutting if it is required by two or more other concerns. Note that a<br />

concern that is required by one other concern can be a crosscutting concern at the responsibility level<br />

if it is required by two or more concern’s responsibilities. This kind of crosscutting is not treated in<br />

this activity. Identify crosscutting concerns task is accomplished by taking into account the<br />

information in the column “Required Concerns” Table 4.2, i.e., if more than one cell is filled with a


“√” in a given concern at the column “Required Concerns”, it is a crosscutting concern. For example,<br />

C2 is a crosscutting concern because it is required by C1 and Cn.<br />

Handle Conflicts. This subtask supports the identification and resolution of conflicting situations<br />

between concerns. Conflicting situations are identified by the developer and may emerge in a given<br />

match point. A match point identifies specific locations in the concerns where other concerns’<br />

behaviour (crosscutting or non-crosscutting) should be satisfied. In this context, a conflict occurs any<br />

time two or more concerns that contribute negatively to each other (see Contribution row in Table<br />

4.1.), and have the same priority, need to be composed in the same match point. For example, consider<br />

the case where a given module, that was conceived to model or implement a given functionality of a<br />

system, needs to be secure and to react in a very short period of time. It is well-known that security<br />

and response time contribute negatively to each other, i.e. the more secure we want our module to be,<br />

the less fast it will become, and vice-versa. This means that the system may not be able to satisfy both<br />

with the same degree of importance. Therefore, we need to look to the Stakeholder Priorities row in<br />

Table 4.1. If the priority allocated to each concern is different, the problem is not too difficult to solve.<br />

However, if at least two concerns have the same priority, a trade-off must be negotiated with the<br />

stakeholder. It is now when Table 4.3, where each cell lists the concerns of interest for a given<br />

stakeholder and match point may be of help.<br />

At the beginning of the AORA approach, we propose the identification of the concern with higher<br />

priority between them all, i.e., the dominant concern. Next we need to identify the second concern<br />

among the remaining concerns, and so forth until we have a dependency hierarchy between all the<br />

concerns. Because this process has limitations, for example, a conflict handling is based on one<br />

criterion, the priority, <strong>Chapter</strong> 6 proposes the use of multi-criteria decision methods to aid decision<br />

makers to solve conflicting situations. This process finds, given a set of alternatives and a set of<br />

decision criteria, the best alternative for a given problem, i.e., the ranking of the concerns in a given<br />

match point.<br />

Define Composition Rules. A composition rule defines the order and how in which concerns will be<br />

applied in a particular match point. Composition rules need to be handled from two different<br />

perspectives: the order in which required concerns will be composed with the (base) concern that<br />

defines the match point and, for each particular required concern, how its behaviour will be integrated<br />

into the base concern.<br />

Composition rules can be built from simpler composition rules and brackets, “(” and “)”, are used to<br />

allocate priorities to the operators (see Figure 4.6).<br />

67


(1) Composition � Term Operator Term<br />

| (Composition)<br />

(2) Term � Composition<br />

| Concern<br />

(3) Operator � ’||’<br />

|’>>’<br />

|’[>’<br />

|’[]’<br />

Figure 4.6 Composition rules between concerns<br />

Figure 4.6 illustrates that a Term can be a concern or a sub-composition (which is another composition<br />

rule) and the Operator represents the order of composition between terms, which will be defined using<br />

a simple set of operators.<br />

The operators we have chosen (enable, disable, parallel and choice), were inspired in the LOTOS<br />

operators, where (Brinksma, 1988) 4 :<br />

• Enable (denoted by T1>>T2): refers to a sequential composition and means that the behaviour<br />

of T2 begins if and only if T1 terminates successfully.<br />

• Disable (denoted by T1[>T2): means that T2 interrupts the behaviour of T1 when it starts its<br />

own behaviour. In this paper it will be used to mean that the behaviour of T1 is substituted by<br />

the behaviour of T2.<br />

• Parallel (denoted by T1||T2): refers to the parallel operator and means that the behaviour of T1<br />

must be synchronized with the behaviour of T2. It represents concurrent composition of<br />

concerns.<br />

• Choice (denoted by T1[]T2): refers to the choice operator and means that only one of the<br />

concerns will be satisfied (T1 or T2).<br />

These rules allow compositions to be performed at a higher abstraction level, where each concern is<br />

simply represented by its name and related with other concerns by using the above composition rules.<br />

Moreover, we support incremental composition, independently of the concern nature. This means that<br />

4 The interested reader can find in Brinksma, E. (1988). Information Processing Systems -- Open Systems Interconnection --<br />

LOTOS: A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour. ISO 8807. the<br />

formal semantics of each of these operators.<br />

68


we can potentially compose one crosscutting with other crosscutting concerns, in addition to<br />

crosscutting with non-crosscutting concerns.<br />

4.2 The AORA metamodel<br />

“A metamodel is a precise definition of the constructs and rules needed for creating semantic models”<br />

(UML, 2004). Metamodels can serve several purposes:<br />

• To define a schema for semantic data that needs to be stored.<br />

• To define a language that supports a particular methodology or process (which was the<br />

original purpose of the UML metamodel).<br />

• To define a language to express additional semantics on existing information.<br />

• To allow a language designer or methodologist to better capture, analyze and understand new<br />

approaches.<br />

• To serve as a basis to define an automatic supporting tool.<br />

OMG has defined four architecture layers (M0 – M3) as described in Figure 4.7 (Bézivin, 2005). M0,<br />

the user object layer, is where the actual runtime objects reside. This layer is composed of the<br />

information that we wish to describe. M1, the user model layer, is the layer where the UML models<br />

live. This is the level at which modelling of problems, solutions, or systems occur. M2, the metamodel<br />

layer, is the level where the UML metamodel is defined. The concepts used by a UML modeller, such<br />

as Class, Attribute, Message, etc., are defined at this level. M3, the meta-metamodel layer, is the top<br />

level and is an instance of itself. It consists of the basic elements on which the UML is based. It also<br />

defines the language for specifying metamodels. This layer is called Meta-Object Facility (MOF) in<br />

the OMG terminology. A model element on every layer is strictly an instance of a model element of<br />

the layer above.<br />

69


ar<br />

«metamodel»<br />

MOF Meta-metamodel<br />

«instanceOf»<br />

«metamodel»<br />

UML Metamodel<br />

User Model<br />

«instanceOf»<br />

«instanceOf» «instanceOf»<br />

foo<br />

70<br />

M3 Layer<br />

M2 Layer<br />

M1 Layer<br />

M0 Layer<br />

Figure 4.7 A four-layered architecture, taken from (Bézivin, 2005)<br />

The AORA metamodel is defined at the M2 layer and its package structure is shown in Figure 4.8. The<br />

AORA metamodel is composed by the sub-packages ConcernSpecification and ConcernComposition.<br />

The ConcernComposition package merges with the ConcernSpecification package to link the<br />

composition rules elements to the specification elements.<br />

ConcernSpecification<br />

«merge»<br />

ConcernComposition<br />

Figure 4.8 AORA metamodel packages<br />

The template concern elements described in Table 4.1 are defined in the ConcernSpecification<br />

package of the AORA metamodel as illustrated in Figure 4.9.


Figure 4.9 ConcernSpecification of the AORA metamodel<br />

The meta-class Concern is composed of: a Name, a Description, a Classification (of functional or non-<br />

functional kind, defined by ClassificationKind enumeration), a Source list (with at least one Source)<br />

and a Responsibility list (with at least one Responsibility).<br />

A Concern can have a Contribution list (of “+” or “–“ kind, defined by ContributionKind<br />

enumeration).<br />

A Concern can have a Decomposition list (of “AND” or an “OR” operator, defined by<br />

DecompositionKind enumeration). It can also have a Stakeholder list that gives one Priority (of kind<br />

“veryImportant”, “important”, “medium”, “low”, “veryLow” or “dontCare”, defined by PriorityKind<br />

enumeration) per Concern.<br />

There is a special type of Concern designated by CrosscuttingConcern.<br />

A Concern can have a RequiredBy list. A MatchPoint joins one or more required concerns. Based on<br />

the MatchPoint and the required concern the CompositionRule is build. The AORA composition rule<br />

elements are defined in the ConcernComposition package metamodel as illustrated in Figure 4.10.<br />

71


Figure 4.10 Concern composition of the AORA metamodel<br />

A MatchPoint is defined by a CompositionRule. The CompositionRule is composed into two<br />

operands. A CompositionRule can be an Operand of other CompositionRule. An Operand also can be<br />

an ElementarOperand, and a Concern can be an ElementarOperand. Finally, the composition rule has<br />

an operator defined by CompositionOperator enumeration (disable, enable, choice and parallel<br />

operators).<br />

To provide all the AORA relevant characteristics, we propose the following well-formedness rules:<br />

• A minimum of one Concern and one Stakeholder are needed to accomplish all the tasks of the<br />

approach.<br />

• A minimum of one Responsibility per Concern is needed to accomplish all the tasks of the<br />

approach.<br />

• A Decomposition has a non repeated subconcern (other than the decomposed concern).<br />

• A Concern cannot be decomposed by itself.<br />

• A Concern cannot be RequiredBy by itself.<br />

• A RequiredBy has a non repeated required concern (other than the requester concern).<br />

• A Concern cannot have a Contribution to itself.<br />

• A Contribution has a non repeated contributed concern (other than the contributor concern).<br />

72


• A CompositeRule can always be defined for a MatchPoint.<br />

• A Composition Rule may be empty.<br />

• Composition rules are acyclic, i.e. a composition resulting from a composition rule must not<br />

trigger itself.<br />

• A CrosscuttingConcern or a Concern cannot inherit from itself.<br />

• A Concern might be prioritized more than one time but one per Stakeholder.<br />

This metamodel helps the development of the tool. Based on Figure 4.7, we develop a model that is an<br />

the metamodel and after that develop the objects that are the model. In our<br />

case, the model elements are intuitively converted in Java objects (Java was the chosen programming<br />

language). For example, and in a bottom-up perspective of Figure 4.7, the system has the objects that<br />

are instances of Concern class in the model, and this class is an instance of Classifier element in the<br />

UML metamodel.<br />

As described before, UML is a standard modelling language with many tools available that facilitate<br />

its use. Since the AORA instance models can be represented as class diagrams, the learning curve can<br />

be decreased. Therefore, to represent the instance of the AORA metamodel in UML, a UML profile<br />

needs to be defined (OMG, 2007). Figure 4.11 illustrates the UML profile of the AORA metamodel to<br />

specify the AORA metamodel concepts (described by meta-classes and enumerations) in terms of<br />

stereotype hierarchy extensions of UML meta-classes.<br />

The AORA UML profile shows that the Classifier meta-class extensions are considered as first level<br />

entities. The entities are defined by the following stereotypes: Concern and its derivate<br />

CrosscuttingConcern, Stakeholder and CompositionRule (with an operator attribute of<br />

CompositionOperator enumeration type).<br />

The next entities of the AORA UML profile are the Association meta-class extensions defined by the<br />

following stereotypes: Contribution (with the kind attribute of ContributionKind enumeration type),<br />

Priority (with the kind attribute of PriorityKind enumeration type), Decompositon (with the kind<br />

attribute of DecompositionOperator enumeration type), RequiredBy and finally the MatchPoint.<br />

73


Figure 4.11 AORA UML profile<br />

The other entities of the AORA UML profile are the StructuralFeatures metaclass extensions defined<br />

by the following stereotypes: Classification (with the kind attribute of ClassificationKind enumeration<br />

type), Description, Name, Responsibility and Source.<br />

4.3 Illustrating AORA with an example<br />

The example chosen to illustrate our approach is based on the Washington subway system. A briefly<br />

description is as follows:<br />

“To use the subway, a passenger has to own a card that must have been credited with some amount of<br />

money. A card is bought and credited in special buying machines available in any subway station. Its<br />

owner uses this card in an entering machine to initiate her/his trip. When s/he reaches the destination,<br />

the card is inserted in an exit machine that debits it with an amount that depends on the distance<br />

travelled. If the card has not enough credit the gates will not open. The passenger can ask for a refund<br />

of the amount in the card by giving it back to a buying machine.”<br />

74


4.3.1 Identify concerns<br />

This task consists of identifying all the concerns of a system and is divided into six subtasks (please<br />

see Plan 1 in Figure 4.1).<br />

Identify stakeholders (Task 1.1). The idea is to identify stakeholders and select representative<br />

individuals or groups with whom we can elicit requirements. For example, the passenger is the person<br />

that can be affected by the system. The other stakeholders are the system owner and the developer.<br />

Identify sources (Task 1.2). The identified sources are two catalogues proposed by Chung et al. and<br />

Wiegers, requirements documents and knowledge of the system provided by the stakeholders (Chung,<br />

2000; Wiegers, 2003).<br />

Elicit requirements (Task 1.3). The idea is to collect the requirements we can find about the system,<br />

adding to them those that the stakeholders may give. To accomplish this, we look for verbs and nouns<br />

in the documents that express tasks/behaviour or properties that the system must provide. For example,<br />

“A card is bought” the concern identified is BuyCard. Other concerns that we identified in the first<br />

iteration from the description of the example were EnterSubway, ExitSubway, RefundCard and<br />

CreditCard. Also, the text “special buying machines available in any subway station”, suggests that<br />

Availability can be of interest.<br />

In a second iteration, during a more refined analysis of the templates, we noticed that it would make<br />

sense to factor out the common behaviour ValidateCard from EnterSubway, ExitSubway, CreditCard<br />

and RefundCard.<br />

Reuse of catalogues (Task 1.4). Other concerns can be identified based on the NFR catalogue, for<br />

example (Chung, 2000). For each entry in the catalogue, we must decide whether it would be useful in<br />

our system. For example, the system can be used by many passengers at the same time, then Multi-<br />

access is an issue that the system needs to address. As a consequence, one can think that the system<br />

needs to react in a short amount of time to avoid delaying passengers. This suggests the Response<br />

Time concern. Other concerns identified based on this catalogue are: Accuracy; Security;<br />

Compatibility and Fault Tolerance.<br />

Decompose concerns (1.5). During the identification task, we felt that while some concerns described<br />

very concrete issues, e.g. EnterSubway, others represent complex and coarse-grained issues, e.g.<br />

security. Whenever possible, high-level concerns should be decomposed. Currently we adopt SIGs to<br />

represent this decomposition. Some concern decompositions can be found in the literature and,<br />

75


therefore, can be reused. For example, the NFR Framework offers a catalogue for security (see Figure<br />

4.12).<br />

Integrity<br />

[Card Data]<br />

Security<br />

EnterSubway<br />

Availability<br />

[Entering Machine]<br />

Figure 4.12 Security SIG applied to enter subway<br />

The nodes of a SIG are non-functional concerns and are represented by clouds. The lines represent<br />

decompositions (of a given concern into its sub-concerns). When all sub-concerns of a parent concern<br />

are needed to achieve that concern, an AND relationship is defined with an arc connecting the lines. (If<br />

not all the sub-concerns are necessary to achieve the parent concern an OR relationship is defined with<br />

two arcs linking the decomposition lines.)<br />

In this context, this means that Integrity and Availability are both needed to achieve Security, and<br />

therefore an AND relationship is required. Each sub-element can be identified using the “.” notation,<br />

for example Security.Integrity or Security.Availability 5 . Notice that a subject matter is added under the<br />

concern name. A subject matter is the topic addressed by the non-functional concern. This means that<br />

in Figure 4.12, Security is being handled for EnterSubway, Integrity must be guaranteed for card data<br />

and Availability needs to be guaranteed for the entering machine.<br />

Classify concerns (Task 1.6). Functional concerns underline services that the system is expected to<br />

deliver and are, therefore, related to satisfying stakeholders’ requests, for example, EnterSubway,<br />

ValidateCard, ExitSubway, CreditCard, BuyCard and RefundCard. Non-functional concerns refer to<br />

expected system qualities such as Security, ResponseTime, Integrity, Availability, Accuracy,<br />

Compatibility and Fault Tolerance.<br />

The information identified is stored in the corresponding concern template.<br />

5 For simplicity we will use Integrity and Availability instead of Security.Integrity and Security.Availability.<br />

76


4.3.2 Specify concerns<br />

To illustrate our approach we chose the concerns EnterSubway, ValidateCard and ResponseTime.<br />

Note that the templates will only be completed at the end of this task.<br />

Identify responsibilities (Task 2.1). List the services or knowledge of each concern (and fill in the<br />

Responsibilities row). These are taken from the requirements collected in Task 1.1. For each identified<br />

concern, at least one responsibility needs to be collected. For example, to achieve the EnterSubway<br />

objective the system needs to, for example, check the card data and register an entrance.<br />

Identify contributions (Task 2.2). A contribution relationship between two concerns defines the way<br />

in which one concern affects the other. As described in Section 4.1.2 this contribution can be<br />

collaborative or damage. For each concern we must identify its contribution to other concerns and fill<br />

the Contribution row in the template. Identifying contributions may be a difficult task; it requires<br />

expertise in specific domain areas that may not always exist in a project team. For certain cases,<br />

existing catalogues are a good source of information, but there are still many situations where<br />

catalogues are not available. Chung et al. and Wiegers propose catalogues for some non-functional<br />

concerns (Chung, 2000; Wiegers, 2003).<br />

Contributions among concerns should be studied at the sub-concern level, as it may happen that sub-<br />

concerns of a given parent concern contribute differently to another concern. For example, while<br />

Response Time contributes positively (+) to Availability, it contributes negatively (-) to Integrity. The<br />

contribution table for our example is illustrated in Table 4.4, where empty cells represent don’t care<br />

contributions.<br />

NF Concerns<br />

NF Concerns<br />

Table 4.4 Contributions for non-functional concerns<br />

Accuracy Compatibility<br />

Response-<br />

Time<br />

77<br />

Fault-<br />

Tolerance<br />

Availabi-<br />

lity<br />

Integrity<br />

Accuracy + – – +<br />

Compatibility + – +<br />

ResponseTime – + – –<br />

FaultTolerance – +<br />

Availability +<br />

Integrity<br />

MultiAccess<br />

Multi-<br />

Access


Identify required concerns (Task 2.3). This expresses if one concern requires other(s) concern(s) to<br />

accomplish its own behaviour, or if one concern is restricted by any other concern. This information is<br />

added to the Required Concerns row in the template. For example, EnterSubway concern requires the<br />

Response Time concern, because the system needs to react in-time when a passenger enters the<br />

subway.<br />

Identify stakeholders priorities (Task 2.4). In this task we identify the importance of each concern<br />

in the system for each stakeholder and fill in the Stakeholder Priorities row. For example, the<br />

EnterSubway concern is very important to the system owner stakeholder.<br />

At the end of this task a template for each concern is complete. Table 4.5 shows the template for<br />

EnterSubway concern.<br />

Table 4.5 Template for Enter Subway concern<br />

Name EnterSubway<br />

Sources Stakeholders, set of initial requirements, knowledge of the system<br />

Stakeholders Passenger, System owner, Developer<br />

Description It is responsible for handling the beginning of a trip<br />

Decomposition <br />

Classification Functional<br />

List of Responsibilities<br />

1. Checks the card data<br />

2. Registers an entrance<br />

3. Returns the card to the passenger<br />

List of Contributions<br />

<br />

List of Priorities<br />

1. Passenger: Very Important<br />

2. System owner: Very Important<br />

3. Developer: Important<br />

List of Required Concerns<br />

1. ResponseTime<br />

2. Accuracy<br />

3. Integrity<br />

4. Availability<br />

5. ValidateCard<br />

6. Multi-access<br />

7. Fault Tolerance<br />

Table 4.6 shows the template for ResponseTime concern. Note that the contribution relationships<br />

between ResponseTime concern and other concerns are found in catalogues (Chung, 2000; Wiegers,<br />

78


2003). For example, the Accuracy concern affects negatively to ResponseTime concern. This<br />

information is added to the List of Contributions row.<br />

Name ResponseTime<br />

Table 4.6 Template for Response Time concern<br />

Sources Stakeholders, initial requirements, NFR catalogue, knowledge of the system<br />

Stakeholders System Owner, Passenger, Developer<br />

Description The machine has to react in time when passengers use the system with a<br />

Decomposition <br />

Classification Non-functional<br />

List of Responsibilities<br />

card in entering, exiting and buying machines<br />

1. Reacts in-time (


Name ValidateCard<br />

Table 4.7 Template for Validate Card concern<br />

Source Stakeholders, set of initial requirements, knowledge of the system<br />

Stakeholders System Owner, Developer<br />

Description The card needs to be authenticating to allow the passenger to use the system<br />

Decomposition <br />

Classification Functional<br />

List of Responsibilities<br />

1. Reads the card data<br />

2. Checks credits of the card<br />

3. Checks card expiry date<br />

List of Contributions<br />

<br />

List of Priorities<br />

1. System Owner: Very Important<br />

2. Developer: Important<br />

List of Required Concerns<br />

1. Accuracy<br />

4.3.3 Compose concerns<br />

The goal of this task is twofold: to obtain a broader picture of the system and to handle possible<br />

conflicting situations. The early identification of conflicts helps both stakeholder negotiations and the<br />

establishment of trade-offs before the architecture design is derived.<br />

Identify match points (Task 3.1). This is accomplished by building the match points table, as<br />

explained earlier in Section 4.1.3. This table is automatically generated by our AORA tool (more<br />

information on the tool can be found in <strong>Chapter</strong> 5). Table 4.8 illustrates the resulting table for our case<br />

study.<br />

80


Required Concerns<br />

Concerns ValidateCard<br />

Table 4.8 Match points identification<br />

Integrity<br />

Availability<br />

BuyCard √ √ √ √ √ √ MPBC<br />

EnterSubway √ √ √ √ √ √ √ MPES<br />

ExitSubway √ √ √ √ √ √ √ MPExS<br />

RefundCard √ √ √ √ √ √ MPRC<br />

CreditCard √ √ √ √ √ √ √ MPCC<br />

ValidateCard √ MPValC<br />

Identify crosscutting concerns (Task 3.2). As described in Section 4.1.3, crosscutting concerns are<br />

those that are required by two or more other concerns. According to Table 4.8 all the required<br />

concerns with exception of Compatibility are crosscutting. Note that Validate Card is a functional<br />

concern that is crosscutting since it is required by ExitSubway, EnterSubway, RefundCard and<br />

CreditCard.<br />

Handle conflicts (Task 3.3). For each row (match point) in Table 4.8 we must identify contributions<br />

between the concerns that compose it. In our example, most match points have more than one concern.<br />

The match point MPES, for example, needs to handle seven crosscutting concerns. A graph showing<br />

the contribution on this match point is given in by the tool (see <strong>Chapter</strong> 5).<br />

Let’s simplify this situation and consider that only Response Time and Integrity were applied in this<br />

match point. These two crosscutting concerns contribute negatively to each other. Depending on the<br />

priority, we may have identified a conflicting situation. To help on the identification of the match<br />

points with conflicting concerns, we build Table 4.9. The stakeholders listed for each match point are<br />

those that can help us resolving the conflict.<br />

For our example, since Response Time and Integrity have the same priority to the passenger,<br />

developer and system owner stakeholders, a negotiation is required so that the concerns can be ranked.<br />

This negotiation is accomplished using Multi-Criteria Decision Making approaches to obtain match<br />

point ranking. The use of these methods to solve conflicts is illustrated in <strong>Chapter</strong> 6.<br />

81<br />

ResponseTime<br />

Accuracy<br />

Compatibility<br />

FaultTolerance<br />

Multi-Access<br />

Match Points


Table 4.9 Match points table in a stakeholder point of view (Acc: Accuracy; Comp: Compatibility; RT:<br />

ResponseTime; FT: Fault Tolerance; Avail: Availability; Int: Integrity; MA: Multiaccess; VCard= ValidateCard)<br />

MatchPoints<br />

Stakeholder<br />

Passenger<br />

System Owner<br />

Developer<br />

MPBC MPES MPExS MPRC MPCC MPVal<br />

Int, Avail,<br />

RT, Acc,<br />

Comp, FT<br />

Int, Avail,<br />

RT, Acc,<br />

Comp, FT<br />

Int, Avail,<br />

RT, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

Int, Avail,<br />

RT, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

82<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, FT<br />

Int, Avail,<br />

RT, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

VCard, Int,<br />

Avail, RT,<br />

Acc, MA, FT<br />

Supposing that all the stakeholders agree to decrease the priority of Response Time, Integrity becomes<br />

the dominant concern in MPES and the conflict is potentially solved. This means that we can now<br />

choose an architecture solution that primarily satisfies the dominant concern. Notice however, that this<br />

does not mean to discard the less important concern.<br />

Define composition rules (Task 3.4). Using the information obtained on the three previous steps, a<br />

composition rule for each match point can be defined. For example, the composition rule for MPES,<br />

which composes together Enter Subway with all its required concerns, is as follows:<br />

( (Availability || Multi-access)<br />

>> ( (ValidateCard >> EnterSubway)<br />

||<br />

||<br />

ResponseTime<br />

Accuracy<br />

) >> Integrity<br />

) [>Fault Tolerance<br />

This composition rule expresses the order in which each concern must be satisfied. After the<br />

successfully satisfaction of Availability and Multi-access, ResponseTime, EnterSubway and Accuracy<br />

are satisfied in parallel, and only after their successful satisfaction will Integrity be satisfied. Notice<br />

however, that EnterSubway can only be satisfied after the successful satisfaction of ValidateCard. If<br />

something goes wrong with any of the above concerns, the Fault Tolerance concern takes care of the<br />

situation by starting its own behaviour.<br />

Acc<br />

Acc


4.4 Conclusions<br />

This chapter discusses the <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (AORA) approach to handle<br />

separation, modularization, representation and composition of concerns, specially crosscutting<br />

concerns. To accomplish this, each plan of the AORA model has a set of tasks. Identify and specify<br />

concerns plans support the identification and modularization of concerns. The identification of<br />

concerns are supported by a set of activities that allows the identification of all concern and collect<br />

information that is important to validate the concerns, for example, the identification of stakeholders<br />

and the sources. All the identified concerns, crosscutting and non-crosscutting, are specified using a<br />

unique template that describes concerns in a consistency and completeness way. Moreover, the<br />

template has information about the concern that is very important to support the compose concern task<br />

(required concerns), to handle conflicts (contributions and priorities) and to guarantee track changes<br />

(source), which is explained in more detail at <strong>Chapter</strong> 5.<br />

The compose concerns plan supports the identification of crosscutting concerns and then the<br />

composition of crosscutting and non-crosscutting concerns. This plan also supports the identification<br />

and resolution of conflicts, which is explained in more detail at <strong>Chapter</strong> 6.<br />

The main concepts AORA were defined as an extension of the UML metamodel, allowing a language<br />

designer or methodologist to better capture, analyze and understand our approach. To facilitate the use<br />

of the AORA concepts, a UML profile for AORA was also defined.<br />

The Subway system was used to illustrate the AORA approach.<br />

83


85<br />

<strong>Chapter</strong> 5<br />

AORA Traceability and Tool<br />

Support<br />

This chapter describes the AORA traceability and tool support that are needed to track the changes of<br />

concerns, concerns traceability between the artefacts of the software lifecycle and establish an<br />

agreement with the stakeholders on the software’s concerns.<br />

Traceability between the artefacts of the software lifecycle is an important quality required for<br />

understandable and maintainable software. The complexity of a software system demands a<br />

requirements traceability mechanism to guarantee the completeness and consistency of the software<br />

artefacts throughout the development process. Moreover, existing research has been concerned with<br />

the study and definition of different types of traceability relations and support for generating and<br />

maintaining these relations in software and requirements engineering tools. So to guarantee<br />

traceability, during the AORA process, three types of traceability relationships are defined:<br />

• Between concerns and other elements of the approach and their source of origin.<br />

• Between concerns and other concerns.<br />

• Between concerns and other elements of the approach and their architectural/design artefacts.<br />

The AORA approach facilitates communication among different stakeholders supporting the<br />

sometimes difficult task of negotiation to obtain “agreement” in difficult and conflicting situations.


This agreement, in which requirements are documented, plays an important role in ensuring that the<br />

requirements can be read, analysed, (re-)written, and validated (Nuseibeh, 2000). To achieve these<br />

goals, an AORA tool was developed to storage and maintains large amounts of information. Three<br />

undergraduate students, Marcos Brasil, Marcus Larsen and Nelson Ferreira, were supervised under<br />

this PhD work and they refined the implementation of some AORA functionalities.<br />

This chapter is organized in three sections. Section one presents the AORA traceability support to<br />

facilitate a smooth transition between aspect-oriented requirement engineering and design and to help<br />

stakeholders understand where a concern, including its suffered changes, comes from. Section two<br />

describes the AORA tool, its features and architecture. Finally, a conclusion of the chapter is shown in<br />

Section three.<br />

5.1 Traceability support<br />

According to the definitions of traceability at requirements engineering level described in <strong>Chapter</strong> 2,<br />

we propose an AORA traceability schema as depicted Figure 5.1.<br />

Figure 5.1 The traceability schema<br />

86


This schema illustrates two dimensions: horizontal traceability and vertical traceability. The horizontal<br />

traceability is also defined in backward and forward: (i) backward describes the relationship between<br />

the concerns and their origin or source, e.g. stakeholder, business rule, or documentation; (ii) forward<br />

which relates the concern to the design artefacts, e.g., sequence diagrams.<br />

The following sections illustrate how AORA supports these two types of dimensions.<br />

5.1.1 Horizontal traceability<br />

As described before (see <strong>Chapter</strong> 2), horizontal traceability can be defined as backward and forward<br />

traceability. Horizontal backward traceability is achieved by keeping track of concern specification<br />

and composition from its origins by recording:<br />

• The information in Source and Stakeholder Priorities rows of the concern template (as<br />

decribed in <strong>Chapter</strong> 4). These rows are an explicit record of where the information associated<br />

to the concern comes from.<br />

• All the actions performed by the stakeholders that provide information changes is registered,<br />

as well as their rationale. This is accomplished through the History functionality supported by<br />

the tool (see Section 5.2.3). With this functionality, we follow the lifecycle of a concern<br />

specification from the date that it was first created, throughout all its changes, including<br />

rationale and decision information on its changes. This is accomplished by recording: (i) the<br />

action (update, delete or insertion) that affects the concern specification, (ii) the information<br />

that is affected by the action, (iii) the date when the action occurs and (iv) the stakeholders<br />

who perform the action as well as the reason they do it.<br />

Through the tool and the rows of the template (Source and Stakeholders Priorities), our approach<br />

promotes better understanding of the concerns manipulated by stakeholders, as well as supporting<br />

validation of specifications and compositions of concerns given by the stakeholders. Furthermore, all<br />

this information and the tool (together with the resulting completeness of concern specification and<br />

composition) guarantee the consistency of the information handled by the approach.<br />

Horizontal forward traceability is achieved by relating the concern specifications and the composition<br />

rules to design artefacts. The design models are built using specific guidelines that map requirements-<br />

level artefacts into design-level artefacts. This information is kept in traceability matrices. Each<br />

element of concern template is mapped on one or more elements of UML diagrams. UML diagrams<br />

are used due to five main reasons:<br />

87


• It is a standard and a general-purpose language.<br />

• It offers extension mechanisms that allow the representation of new concepts that are not part<br />

of the core of UML, in this case to support all kinds of concerns and compositions.<br />

• It supports sequence diagrams that help us in expressing concerns responsibilities and<br />

composition rules in order to provide a more rigorous level of refinement.<br />

• It offers a seamless transition of concerns to the next level of the development process.<br />

• It promotes reuse of behaviour by offering interaction occurrences.<br />

Therefore, the concerns and their relationships will be represented using UML models (such as use<br />

cases, sequence diagrams). While these techniques emphasize the main functions that the future<br />

system should implement, others emphasize constraints and certain properties that affect the whole<br />

system. In order to specify these constraints and properties, we propose the use of Softgoal<br />

Interdependency Graph (SIG) from NFR framework. The graph records the developer’s consideration<br />

of softgoals, which are concerns as we said before in task Decompose concerns (see <strong>Chapter</strong> 4).<br />

Based on the information of the templates, we can build an extended use case and sequence diagrams.<br />

Based on sequence diagrams, class diagrams are then derived. To build each UML diagram, we can<br />

offer a set of simple rules, which help the requirements engineer to derive the necessary models.<br />

For example, a use case diagram can be derived from a set of templates by using the guidelines given<br />

in Table 5.1. Before applying these rules, however, we need to refine the RequiredBy relationship (row<br />

Required Concerns in the template) to make it reflect some kind of relationships between use cases.<br />

Therefore, some of these relationships will be mapped into relationships while others<br />

into relationships. The include relationship is inspired in use cases dependencies and<br />

denotes the inclusion of the behaviour described by another concern. The best way to think of an<br />

include relationship is that it is the invocation of a concern by another one. Also, the extend<br />

relationship is inspired in use cases dependencies. An extending concern is an alternate course of the<br />

extended use case. In fact, a good rule of thumb is to introduce an extending concern whenever the<br />

logic for an alternate course of action is at a complexity level similar to that of your extended course of<br />

action. The relationships reflecting an association between non-functional and functional concerns is<br />

better represented through a new stereotype .<br />

88


For each concern C<br />

Table 5.1 A guideline to derive a use case model from a set of concern templates<br />

AORA Templates Use Case Model<br />

If C is functional, create a new use case corresponding to C.<br />

If C is non-functional, create a new use case corresponding to C by prefixing its name by<br />

If a Required Concern<br />

relationship R exists<br />

between C and C’,<br />

If C is decomposed into<br />

other concerns C1..Ci,<br />

For each stakeholder S<br />

that triggers the newly<br />

created use case,<br />

“Handle”.<br />

create a relationship between the use cases corresponding to C and C’.<br />

R is mapped into a , or <br />

relationship.<br />

create a relationship between the use case corresponding to C<br />

and those corresponding to C1..Ci.<br />

create an actor corresponding to S and an association between it and the<br />

new use case.<br />

The use case diagram that results from the application of these simple guidelines may be too large to<br />

handle. Therefore we suggest that instead of creating a unique use case model illustrating the whole<br />

system, we create different use case models views, where each use case model represents a “view” of<br />

the system from the perspective of a given concern.<br />

For example, using the example in <strong>Chapter</strong> 4 and the guidelines in Table 5.1, Figure 5.2 shows a use<br />

case model view for EnterSubway concern with all the other concerns that are directly related to it (see<br />

EnterSubway template in Section 4.3). The Passenger actor corresponds to Passenger stakeholder. The<br />

EnterSubway functional concern corresponds to a use case. A non-functional concern corresponds to a<br />

use case with a prefix, for example, the Security concern corresponds to the HandleSecurity use case.<br />

The required concern relationship between EnterSubway and Security concerns corresponds to a<br />

relationship between EnterSubway and HandleSecurity use cases. The required<br />

concern relationship between EnterSubway and ValidateCard concerns corresponds to a <br />

relationship between EnterSubway and ValidateCard use cases. The decomposition relationship<br />

between Security and Integrity concerns corresponds to a relationship between<br />

HandleSecurity and HandleIntegrity use cases.<br />

89


Handle Accuracy<br />

Handle Multiaccess<br />

<br />

<br />

ValidateCard<br />

<br />

Handle ResponseTime<br />

<br />

<br />

<br />

EnterSubway<br />

Handle Security<br />

<br />

Passenger<br />

90<br />

Handle Integrity<br />

<br />

Handle Availability<br />

Handle FaultTolerance<br />

Figure 5.2 Use case diagram for Enter Subway<br />

Use cases can be described using several techniques, such as scenarios and activity diagrams. We use<br />

scenarios, where each step corresponds to a responsibility or a set of responsibilities already identified<br />

in the concern template. The complete set of use case scenarios can be easily put together in an activity<br />

diagram. The advantage of the activity diagram is that a single description can illustrate the whole<br />

behaviour of a use case. Table 5.2 gives a set of guidelines to derive such activity diagrams; there were<br />

inspired in (Moreira, 2006).<br />

Table 5.2 A guideline to derive an activity diagram from a use case<br />

Use Case and its Scenarios Activity Diagram<br />

For a use case U and its primary create a new activity diagram.<br />

scenario S1,<br />

For each step in the primary scenario create an activity in the activity diagram.<br />

S1 corresponding to a responsibility<br />

in C,<br />

create appropriate transition to connect each activity in the activity<br />

diagram.<br />

For each secondary scenario create a new activity diagram.<br />

S2 … Sn,<br />

From either these scenarios or these activity diagrams, we can then build sequence diagrams, one per<br />

use case, according to the guideline in Table 5.3. A sequence diagram expresses the responsibilities as<br />

messages or message’s parameters exchanged between objects that compose the problem domain. The<br />

message that is being sent to the receiving object represents an operation/method that the receiving<br />

object's class implements.


Table 5.3 A guideline to derive a sequence diagram from a use case<br />

Use Case and its Scenarios Sequence Diagram<br />

For a use case U and its primary create a new sequence diagram.<br />

scenario S1,<br />

identify interface, control and entity objects for the life lines of the<br />

sequence diagram.<br />

For each step in the primary create a message or a message’s parameters in the sequence diagram.<br />

scenario S1 corresponding to a<br />

responsibility in C,<br />

each message is originated by a sender object and is received by a receiver<br />

object. These objects must be identified.<br />

For each secondary scenario<br />

S2 … Sn,<br />

use alt, opt and loop frames if needed to add new messages to the existing<br />

ones.<br />

create an alt or opt frame in the sequence diagram.<br />

identify the messages in the sequence diagram affected.<br />

By using the example in <strong>Chapter</strong> 4, Figure 5.3 illustrates the sequence diagram for EnterSubway,<br />

according to the guideline in Table 5.3. The responsibility register an entrance (see Section 4.3)<br />

corresponds to addJourney(idCard,idEntrance) message. This message is originated by a sender<br />

object (:CtrEnterSubway) and is received by a receiver object (:Journey)<br />

sd EnterSubway<br />

Passenger :EnterMachine :CtrEnterSubway :Card :Journey<br />

ejectCard<br />

openGate<br />

91<br />

addJourney(idCard, idEntrance)<br />

Figure 5.3 Sequence diagram for EnterSubway<br />

While some concerns are easily described as a sequence diagram, for example ValidateCard, others<br />

may not be easy to describe, for example HandleAvailability. The Availability could map onto a<br />

decision for an architectural choice, for example, backup servers or/and high stability network<br />

connections. At the same time, it will also refine into concrete solution domain aspects realising<br />

replication, session management, etc.<br />

For the difficult cases, one could follow a decomposition approach similar to that of Chung et al. and<br />

define sequence diagrams for the operationalizations (Chung, 2000). However, we prefer to leave the<br />

sequence diagrams at a very high level of abstraction and leave operationalizations until the solution<br />

domain is tackled.<br />

The new elements introduced for the construction of sequence diagrams in UML 2.0 help constructing<br />

behavioural models in a more systematic and incremental fashion (UML, 2004). In particular, the


interaction occurrences will be used for incremental development while notation elements will be of<br />

major help during composition to help us mapping our composition operators into UML.<br />

These composition operators can be mapped into UML 2.0 sequence diagrams fragments, as shown in<br />

Table 5.4 (UML, 2004). So, the composition rule is mapped into UML 2.0 using the sequence diagram<br />

of the base concern and the sequence diagrams fragments of the required concern with the notation<br />

elements. Note that as described in Section 4.1.3 a Term is a concern.<br />

Table 5.4 Possible mapping of composition operators to sequence diagram fragments<br />

Operator Map Example Representation<br />

||<br />

>><br />

[ ]<br />

[><br />

Par<br />

Sequence<br />

Alt<br />

Break<br />

Term1||Term2<br />

Term1>>Term2<br />

Term1[]Term2<br />

Term1[>Term2<br />

92<br />

<br />

par<br />

ref<br />

ref<br />

Term 1<br />

Term 2<br />

<br />

alt<br />

Term 1<br />

Term 2<br />

<br />

Term 1<br />

Term 2<br />

<br />

ref Term 1<br />

break Term2<br />

This is achieved using the “frame”, “ref”, “alt” “break” and “par” notation elements of UML 2.0<br />

sequence diagrams (Bell, 2004; UML, 2004). The “frame” element is used to identify the boundaries<br />

for the diagram. The “ref” notation element is an “interaction occurrence” that allow us to compose<br />

primitive sequence diagrams into complex interactions. This is very important since it allows the reuse<br />

of existing sequence diagrams. The “alt” notation element allows the representation of alternative<br />

interactions based on a choice. The “break” element can be used to represent situations where a<br />

sequence of events needs to be interrupted. This element is used to represent the “disable” operator<br />

and is commonly used to model exceptions. The “par” element is used to show parallelism in a<br />

sequence diagram and is used here to represent the “full synchronization” operator.


By using the example in <strong>Chapter</strong> 4, Figure 5.4 shows the composed sequence diagram for match point<br />

EnterSubway MPES. This figure illustrates, for example, that HandleAvailability and<br />

HandleMultiAccess interactions occurrences are composed in parallel.<br />

break<br />

par<br />

par<br />

Passenger<br />

[incorrectUse]<br />

:EnterMachine<br />

ref Handle Availability<br />

ref Handle MultiAccess<br />

ref<br />

ref<br />

ref<br />

ref<br />

ejectCard ()<br />

openGate ()<br />

:CtrlEnterSubway :Card :Journey<br />

ValidateCard<br />

Handle ResponseTime<br />

Handle Accuracy<br />

Handle Integrity<br />

ref Handle FaultTolerance<br />

93<br />

addJourney(idCard, idEntrance)<br />

Figure 5.4 Resulting composition of Enter Subway sequence diagram (Figure 5.3) with its required concerns on<br />

MPES<br />

During the application of the guidelines, the traceability links between AORA elements and the design<br />

artefacts are recorded. To accomplish this, four traceability matrices are used:<br />

• Traceability matrix between concerns and use cases and SIG.<br />

• Traceability matrix between stakeholders and actors from use-cases diagrams.<br />

• Traceability matrix between concerns and their responsibility and sequence diagrams and their<br />

messages.<br />

• Traceability matrix between composition rules and sequence diagrams.<br />

Table 5.5 shows a traceability matrix between concerns and use-cases and SIG (softgoal) artefacts. A<br />

cell is filled with a “√” if a given concern at the row “Concerns” is mapped into Use Case and/or SIG<br />

at the column “Use Cases and SIG diagrams”. Notice that some concerns can be mapped into use case<br />

and SIG. For example, C1 (concern) is mapped into UC1 (use case diagram) and SIG2 (Softgoal graph).


Table 5.5 Traceability matrix between concern and use cases and SIG<br />

Concerns (Ck,<br />

k=1,..,N)<br />

Use Cases (UCi, i=1,..,M) and SIG diagrams<br />

(SIGj, j=1,..,2)<br />

UC1 UC2 … SIG1 SIG2<br />

C1 √ √<br />

C2 √<br />

…<br />

CN √<br />

Table 5.6 shows traceability matrix between stakeholders and actors from use-cases diagrams. A cell<br />

is filled with a “√” if a given stakeholder at the row “Stakeholders” is mapped into actor at the column<br />

“Use Cases Actors”. For example, S1 (stakeholder) is mapped into A1 (actor).<br />

Table 5.6 Traceability matrix between stakeholders and actors from use-cases diagrams<br />

Stakeholders<br />

(Sj, j=1,..,N)<br />

S1 √<br />

Use Cases Actors (Ai, i=1,..,M)<br />

A1 A2 …. AM<br />

S2 √<br />

…<br />

SN √<br />

Table 5.7 shows a traceability matrix between concerns and their responsibility and sequence diagrams<br />

and their messages or parameters. A cell is filled with a “√” if a given responsibility at the row<br />

“Concern’s responsibilities” is mapped into a message or a parameter of a sequence diagram at the<br />

column “Messages or message’s parameters of sequence diagrams”. Note that some responsibilities<br />

could be mapped into more than one message of the sequence diagrams, because the responsibility<br />

needs more than one message in order to achieve its goal. For example, C1.R1 (responsibility of<br />

concern) is mapped into SD1.M1 and SD1.M2 (messages of the same sequence diagram) and SD1.M1.P1<br />

(parameter of message of sequence diagram).<br />

As we said before, some concerns and their responsibilities can’t be mapped onto a sequence diagram<br />

because they influence architectural and detailed design of the system (Rashid, 2003). For this reason<br />

a concern might map onto a design decision (e.g. an architectural choice) and this information needs to<br />

be recorded for the designer.<br />

94


Table 5.7 Traceability matrix between concerns and their responsibility and sequence diagrams and their<br />

messages<br />

Concerns’<br />

responsibilities<br />

(Ci.Rj, i=1,..,N;<br />

j=1,…M)<br />

Messages (SDi.Mj, i=1,..,P; j=1,…N) or message’s parameters<br />

of sequence diagrams Messages (SDi.Mj.Pk, k=1,.., Z)<br />

SD1.M1 SD1.M2 SD2.M1 … SD1.M1.P1 SD3.M1<br />

C1.R1 √ √ √<br />

C1.R2 √<br />

…<br />

CN.Rj √<br />

Table 5.8 shows traceability matrix between composition rules and sequence diagrams. A cell is filled<br />

with a “√” if given composition rule at the row “Composition Rules” is mapped into sequence<br />

diagrams at the column “Sequence Diagrams”. For example, the composition rule CR1 is mapped into<br />

the sequence diagram SD1.<br />

Table 5.8 Traceability matrix between composition rules and sequence diagrams<br />

Composition<br />

Rules (CRj,<br />

j=1,..N)<br />

CR1 √<br />

Sequence Diagrams (SDi, i=1,..,M)<br />

SD1 SD2 …. SDM<br />

CR2 √<br />

…<br />

CRN √<br />

Recording mapping information between AORA elements and UML diagrams using these matrices<br />

promotes the consistency and completeness of mapping information and has the following benefits:<br />

• The relationship between specification and composition concern elements and UML elements<br />

is described explicitly.<br />

• The effect of concern specification and composition change on UML diagrams can be<br />

identified by examining the recorded relationships.<br />

• Because a concern might also be mapped into a design decision, the justification for choosing<br />

alternatives can be reviewed to ensure they are the most appropriate in the context of the<br />

change.<br />

95


The artefacts produced by the application of the forward traceability guidelines can be created by any<br />

tool that supports UML, such as MagicDraw 6 or RationalRose 7 .<br />

5.1.2 Vertical traceability<br />

Vertical traceability is supported by the tool (see Section 5.2.3). This is accomplished by the<br />

identification of concern specification or composition that could be affected by a concern specification<br />

or composition change. For example, if a composition rule is based on the Required Concern<br />

associations (row of the template) and these associations were changed, the tool would send a message<br />

with all the steps required to maintain the consistency of the composition rule and the associations.<br />

Thanks to these guidelines and the traceability matrices, our approach promotes better understanding<br />

of concerns, as well as supporting validation of specifications and compositions of concerns for the<br />

stakeholders.<br />

5.2 The AORA tool support<br />

The AORA tool handles each concern as defined by the specification template, helps identifying<br />

match points, generates the list of crosscutting concerns, locates possible conflicting situations and<br />

supports the definition of composition rules.<br />

The tool was developed in Java and the information is stored in eXist, an open source native XML<br />

database featuring efficient, index-based XQuery processing, XUpdate support and tight integration<br />

with existing XML development tools (eXist, 2005; Sun, 2005). Figure 5.5 illustrates how these<br />

technologies interact with each other.<br />

6 http://www.magicdraw.com/<br />

7 http://www-306.ibm.com/software/awdtools/developer/rose/index.html<br />

96


Database_Handler<br />

XQuery<br />

XUpdate<br />

eXist_API JDOM_API<br />

Database<br />

Figure 5.5 Database_API architecture<br />

The Database_Handler is the interface between all the features of the tool and the data. It is<br />

responsible for managing eXist and dealing with the insert, remove, update and query operations.<br />

XQuery provides the means to extract and manipulate data from XML documents and XUpdate is a<br />

simple XML update language and can be used to modify XML content by simply declaring what<br />

changes should be made in XML syntax. To accomplish their goals, XQuery and XUpdate access to<br />

the data through eXist_API. For accessing, manipulating, and outputting XML data from Java code is<br />

JDOM API is used (Hunter, 2005). All these functionalities are part of Database_API package of the<br />

tool (see Section 5.2.1).<br />

5.2.1 The tool architecture<br />

The AORA tool architecture is mainly composed of ten packages, illustrated in Figure 5.6, which<br />

support four views (see Section 5.2.2 for details). Concerns, History, Matchpoints, Projects,<br />

Stakeholders, Visualizer, Composition Rule and Administrator packages depended on Core package.<br />

The Core package depends on Database API package.<br />

97


Concerns<br />

+ CertifyConcern<br />

+ GetRepositoryConcern<br />

+ NewConcern<br />

+ RemoveConcern<br />

+ UpdateConcern<br />

(from Packages)<br />

Visualizer<br />

+ CompositionRuleGraph<br />

History<br />

+ ConcernsContributionsGraph<br />

+ form_view_history<br />

(from Packages)<br />

+ ConcernsDependenciesNDecompositionsGraph<br />

+ EventHandler<br />

+ form_change_port<br />

+ Graph<br />

+ Node<br />

+ Port<br />

+ ViewController<br />

+ Visualize<br />

+ VisualizeCompositionRule<br />

+ VisualizeConcernsContributions<br />

+ VisualizeConcernsDependenciesNDecompositions<br />

(from Packages)<br />

AORE<br />

Matchpoints<br />

+ form_concerns_matchpoints<br />

+ MatchpointTable<br />

Core<br />

+ AORE<br />

(from Packages)<br />

(from Packages)<br />

+ concern<br />

+ history<br />

+ matchpoint<br />

+ operator<br />

+ Project<br />

+ stakeholder<br />

(from Packages)<br />

Database_API<br />

+ APIs<br />

+ Database_Handler<br />

(from Packages)<br />

98<br />

Proj ects<br />

+ CloseProject<br />

+ ImportExportReportProject<br />

+ NewProject<br />

+ OpenProject<br />

+ RemoveProject<br />

(from Packages)<br />

Figure 5.6 Packages of the tool architecture<br />

Composition Rule<br />

Stakeholders<br />

+ NewStakeholder<br />

+ RemoveStakeholder<br />

+ UpdateStakeholder<br />

(from Packages)<br />

+ EditCompositionRuleFrame<br />

+ Interpreter<br />

+ Parser<br />

Administration<br />

(from Packages)<br />

+ form_administration<br />

+ form_login<br />

(from Packages)<br />

The Concerns package manages the concern specifications, being composed of the classes that<br />

accomplish the Concern View features (see more about Views in Section 5.2.2) including Certify<br />

Concern and GetRepository Concern from Repository. The History package supports the History<br />

feature and offers its own interface. The MatchPoints package supports the MatchPoint View and has<br />

two interface classes. The Projects package deals with the project elements as we described in Handle<br />

Project, Import and Export Project features (see Section 5.2.3 for details). The Stakeholders package<br />

supports the Stakeholder View features. The Composition Rule package supports the Composition<br />

View including the Validation rule feature that is supported by the Interpreter, the Parser, the<br />

EditCompositionRule interface, the Grammar and the information in the database. This is illustrated in<br />

Figure 5.7.


Figure 5.7 Composition rule validation architecture<br />

The composition rule is edited using EditCompositionRule interface. An Interpreter is developed to<br />

“clean” the composition rule from non-useful characters, for example extra “/r”, “/n” “/t”. Then, a<br />

Parser is used to receive and validate the composition rule according to the composition grammar<br />

(GrammarAORE) described in Section 4.1.3. In summary, the Composition Rule package interacts<br />

with the composition rule validation elements to authenticate the composition rule according to the<br />

grammar.<br />

The Administration package is responsible for maintaining the information in the database. For<br />

example, it updates the composition rule operators. The Visualizer package supports the Visualize<br />

graphics representation feature (see Section 5.2.3 for details).<br />

The Database_API package interacts with database handler elements to access the data in the<br />

database. The DataBase_API package has functionalities to handle the data to and from the database<br />

and the APIs, as described in Section 5.2.<br />

Figure 5.8 illustrates how AORA packages (Figure 5.6), composition validation (Figure 5.7) and<br />

database handler (Figure 5.5) elements interact with each other.<br />

99


AORA<br />

Packages<br />

Database<br />

Handler<br />

Concerns History<br />

Matchpoints Projects<br />

Stakeholders Visualizer<br />

Administration<br />

Core<br />

Database_API<br />

XQuery XUpdate<br />

eXist_API JDOM_API<br />

Database<br />

Figure 5.8 Overall AORA architecture<br />

100<br />

CompositionRule<br />

EditCompositionRule<br />

Interpreter<br />

Parser<br />

Grammar<br />

Composition<br />

Validation<br />

The AORA concepts are defined in XML and an open source, native XML database: eXist. According<br />

to this the AORA template for concern representation will be mapped into a XML Schema, creating a<br />

standard representation. The resulting XML Schema is compliant with the information present in the<br />

AORA template. Other elements are defined to support all the features of the tool, for example, project<br />

and history.<br />

The construction of the XML Schema has been done in a modular way, factoring out common<br />

definitions for better understanding. Figure 5.9 illustrates the XML schema of the tool. Project is the<br />

core element of the database and is needed to relate all the elements to a particular system that are<br />

developed. It is composed of: name, stakeholders, concerns, matchpoints, history and operators. An id<br />

attribute identifies the project element.


Figure 5.9 Project XML tag<br />

The stakeholders element defines all stakeholders that participated in the development process (see<br />

Figure 5.10). This element is described by name, role, description and responsibilities elements and an<br />

id attribute that identify the stakeholder element.<br />

Figure 5.10 Stakeholders XML tag<br />

101


The concern element defines all concerns identified (see Figure 5.11). This element is described by<br />

name, description, classification, sources, responsibilities, stakeholders_priorities,<br />

concerns_contribution, required_concerns and decomposition elements; and id attribute that<br />

characterize the concern element according with the template. The concern has one description and<br />

classification, and a list of (i) source, (ii) responsibility, (iii) stakeholder_priority, (iv)<br />

concern_contribution, (v) required_concern and (vi) child. The stakeholder_priority element is also<br />

composed into the stakeholder_id and the priority attributes to aggregate one stakeholder together<br />

with his/her priority for the concern. The priority attribute can take the values “Very Important”,<br />

“Important”, “Medium”, “Low” “Very Low” and “Don’t Care” (PriorityType). The<br />

concern_contribution element is also composed into the concern_id and contribution to define the<br />

contribution relationship between the concern under study and other concerns. The contribution<br />

attribute can be positive (+) or negative (-) (ContributionType). The required_concern element has a<br />

concern_id attribute to define the concerns from which the current concern depends upon, i.e. the<br />

concerns required by the concern under study. The child element is composed into the concern_id and<br />

type to define the decomposition relationship between the concern under study and its children. The<br />

type attribute can be “And” or “Or” (DecompositionType).<br />

102


Figure 5.11 Concern XML tag<br />

The matchpoint element has the composition rules for a given match point (see Figure 5.12). This<br />

element is composed into name, owner, rule, associated_concerns elements, and id attribute. The<br />

owner element defines the base concern of the match point, the rule defines the composition rule of<br />

103


the match point and the associated_concerns defines the list of concern, with at least one concern, and<br />

their rank that are required in the match point.<br />

Figure 5.12 Matchpoint XML tag<br />

The history element is needed to manage the update information of a concern (see Figure 5.13). This<br />

element is composed into date, concern_id, action, stakeholder_reasons and before. These elements<br />

are required to save the information about an update or delete actions realized to the concern<br />

information in a given date. The stakeholders’ reasons can be recorded. The before element has the<br />

concern information before the action was performed.<br />

Figure 5.13 History XML tag<br />

104


The operators element describes the composition rule operators (see Figure 5.14). This element is<br />

composed into a name, symbol and commutative attribute. The symbol attribute can be “||”, “>>”, “[>”<br />

“[]”, as described in <strong>Chapter</strong> 4.<br />

5.2.2 The tool specification features<br />

Figure 5.14 Operators XML tag<br />

The AORA tool is composed of four views: Concern View, Stakeholder View, MatchPoint View and<br />

Composition View. A snapshot of these views is illustrated in Figure 5.15. (The examples used to<br />

illustrate the tool are part of a case study in <strong>Chapter</strong> 4).<br />

The Concern View manages the information of the concerns being specified, and offers information<br />

regarding the crosscutting nature of the concerns. This view allows the user to:<br />

• Specify Concern. This requires the users to complete a form, based on the template (see<br />

<strong>Chapter</strong> 4). Figure 5.15 illustrates part of the views (left hand-side) supported by the tool,<br />

together with the concern specification template (right hand-side). In particular, the concern<br />

view shows the list of concerns of the subway system. The icon offers this functionality.<br />

• Update Concern. This allows the user to change the fields of a concern specification. The icon<br />

offers this functionality.<br />

• Remove Concern. This allows the user to remove a concern. The icon offers this<br />

functionality.<br />

• Crosscutting concerns. This information is visualized in the concern specification windows<br />

(button “Crosscutting” at the concern specification window in Figure 5.15) and gives the list<br />

of concerns that the concern cuts across.<br />

105


Figure 5.15 Tool three main views (left) and concern specification window (right)<br />

The Stakeholder View allows the definition of responsibilities and roles for each concern. More<br />

precisely, this view allows the user to specify, update and remove a stakeholder (icons similar to those<br />

used for the concern view are also available).<br />

The MatchPoint View supports the definition of composition rules for each match point, being able to<br />

generate a list of both match points and crosscutting concerns. This list is generated by clicking on the<br />

button (see Figure 5.15). This view allows the user to update the list of concerns with Required<br />

Concern associations in a given match point. To accomplish this, the user can check or uncheck the<br />

buttons that represents the associations. Moreover, a concern is crosscutting if more than one check<br />

button appear in the concern’s column. For example, by using the example described in <strong>Chapter</strong> 4, in<br />

Figure 5.16, Fault Tolerance, Response Time, Availability, Validate Card, Multi Access, Accuracy<br />

and Integrity are crosscutting concerns.<br />

106


Figure 5.16 MatchPoints window<br />

Finally, Composition View allows the user to create and modify existing composition rules. A<br />

composition rule is defined for a match point and specifies how the concerns in that match point<br />

interact. The upper area of the window in Figure 5.17 shows the list of possible concerns and tokens<br />

(i.e., composition operators). A rule is built by either editing directly on the Composing Rule edition<br />

box or by double clicking on an element of the lists Concerns and Tokens. The Validate button<br />

validates whether the composition rule is well-formed, i.e. it is conformant with the composition<br />

grammar (see <strong>Chapter</strong> 4).<br />

Figure 5.17 "Composition rule editor” window<br />

107


If the composition rule is correctly built, a message appears at the bottom area of the window and the<br />

Save button becomes active to allow the composition rule to be saved in the database. If the<br />

composition rule is not correctly built, an error message appears, highlighting the cause of the error.<br />

Figure 5.17 illustrates the error “concerns are duplicated”, as a concern can occur only once in a<br />

composition. Other possible errors are: concern does not exist; missing bracket; missing operator;<br />

operator does not exist.<br />

5.2.3 The tool generic management features<br />

Besides the features described above, the tool provides other features, such as:<br />

• Handle Project: to create, open and close projects. A project is created to relate all the AORA<br />

elements to particular software that is developed.<br />

• Consistency and logical integrity checking: to validate consistency and logical integrity of the<br />

information. For example, if you have a composition rule based on the Required Concern<br />

associations and these associations were changed, the tool would raise an error and not allow<br />

the action, to maintain the consistency of the Required Concern associations.<br />

• Generate reports: to provide reports in HTML and PDF format.<br />

• Certify Concern: to save the concern specification in a repository making it available for reuse<br />

in other projects. This action is triggered when the user chooses a concern and clicks on (see<br />

Figure 5.15).<br />

• Import Concern from Repository: to reuse a concern description from the repository. This<br />

action is triggered when the user chooses a certified concern and clicks on (see Figure<br />

5.15).<br />

• History Entry: to log all the important actions (and corresponding states) that the concern has<br />

gone through during its life. To each log is associated the stakeholder name, reason for<br />

change, and date and time (see Figure 5.18).<br />

108


Figure 5.18 History window<br />

• Visualize graphics representation: offers four graphical representations: a match point<br />

composition rule, concerns Required concern relationships, concerns contribution<br />

relationships and concerns decomposition relationships (see Figure 5.19). This feature has the<br />

following functionalities: save visible area to a .png file, zoom in, zoom out, show selected<br />

concern and snap to grid. Also, crosscutting concerns are represented by red circles (Figure<br />

5.19). For example, Integrity and Availability are crosscutting concerns. Security is<br />

decomposed into Integrity and Availability with an and operator.<br />

Figure 5.19 Decomposition and Contribution graph<br />

109


• Export Project to XML: to export the project data (Concerns, Matchpoints, Rules, etc.) into<br />

XML format. This action creates an XML file with the concern specification (Export) and is<br />

accomplished by clicking on the button in Figure 5.15.<br />

• Import Project from XML: to import the project data (Concerns, Rules, etc.) that is in XML<br />

format to the tool database. This is accomplished by clicking on (Figure 5.15).<br />

• The import and export features play an important role, since they offer the possibility to<br />

integrate the models and documentation produced by our tool with other tools.<br />

5.2.4 Related work<br />

A metadata driven approach for the creation of a repository for aspects is discussed in (Ferreira, 2005).<br />

A XML schema is used to represent this structure in order to guarantee information independent from<br />

representation, traceability of aspects through the development phases and versioning control. Our<br />

goal is not the creation of a general repository for aspects. Our repository only offers minimal support<br />

to store sets of concerns. The concerns in a given project and in the repository are stored in eXist, a<br />

XML native database.<br />

The approach in Moreira et al. and Rashid et al. is based on separating the specification of aspectual<br />

requirements, non-aspectual requirements and composition rules in modules representing coherent<br />

abstractions and following well-defined templates (Moreira, 2003; Rashid, 2003). The approach is<br />

supported by a tool called ARCaDe. Our approach differs from the above by offering a set of operators<br />

that are simpler than those in (Rashid, 2003). Also, our tool has a composition rule editor and a parser<br />

to validate its grammar. Moreover, our concern template offers a complete set of information that is<br />

not offered by other existing AORE methods.<br />

The Theme approach provides support for aspect-oriented development at analysis and design levels<br />

(Clarke, 2005). At the analysis level, Theme/Doc is carried out by first identifying a set of actions in<br />

the requirements list which are, in turn, used to identify crosscutting behaviours. The approach is<br />

supported by a tool that creates graph relationships between concerns and the requirements that<br />

mentioned those concerns. Theme does not offer a well-defined concern specification language neither<br />

does it offer the possibility of composing themes together. Moreover, our tool has import and export<br />

interfaces to XML to easily exchange concerns’ information with other applications.<br />

EA-Miner is a web-based tool that uses natural language processing techniques to identify base<br />

concerns, early aspects and crosscutting relationships between them at the requirements level<br />

110


(Sampaio, 2005). EA-Miner supports the identification activity by helping the requirements engineer<br />

to focus on the input documents. Therefore, EA-Miner gets the input files provided by the engineer<br />

and sends them to WMATRIX that is a natural language processing tool, developed at Lancaster<br />

University. WMATRIX then generates an XML file that consists of the input file with part-of-speech<br />

and semantic annotations. EA-Miner uses this file to produce an internal representation of the file as<br />

Java objects, which is created for a specific requirements engineering approach (e.g., viewpoint,<br />

scenario based, etc.) selected previously by the user. In summary, EA-Miner provides automated<br />

support for the identification of early aspects from various requirements’ documents and also helps to<br />

structure the identified early aspects and other concepts such as viewpoints into a specific AORE<br />

technique. This tool can be integrated with other AORE tools, for example, Multi-Dimensional<br />

<strong>Requirements</strong> <strong>Analysis</strong> Tool.<br />

Multi-Dimensional <strong>Requirements</strong> <strong>Analysis</strong> Tool (MRAT) is an ECLIPSE plug-in that supports<br />

composition specification and conflict identification and resolution of some of the temporal conflicts<br />

by ordering the compositions based on the composition operator semantics (Chitchyan, 2007b). To<br />

accomplish this, an analysis algorithm was developed to compose concerns and finds temporal<br />

problems, revealing the cause and resolution for temporal conflicts. Moreover, MRAT can be used by<br />

RDL approach to support analysis of crosscutting requirements.<br />

In general, our tool differs from the tools described above since it offers features that help tracing the<br />

concerns from requirements to the specification, composition of concerns, management of changes of<br />

concern specifications and compositions, and a concern repository within a project.<br />

5.3 Conclusions<br />

This chapter described the AORA tool. This tool facilitates the specification of concerns, identification<br />

of crosscutting concerns, generation of the match point table and definition of composition rules. The<br />

tool guarantees consistency of the concerns specifications and the composition rules in order to<br />

minimize error occurrence and omissions in the systems’ requirements. It also offers import and<br />

export interfaces to XML to exchange concerns’ data with other applications. Furthermore, the<br />

multiple views facilitate the navigation within the approach.<br />

A set of guidelines are proposed to support concern forward horizontal traceability. Forward<br />

traceability is supported through requirements specifications for software design models and<br />

architectural decisions. Our purpose is to be able to perform an impact analysis before the<br />

implementation of a requested change. This is possible because the requirements impacted by the<br />

111


change can be detected since the links between these requirements and design’s artefacts can be traced<br />

using traceability matrices. Hence, software quality can be improved since we can check if all<br />

stakeholders’ requirements are addressed by the system using vertical and horizontal backward<br />

traceability mechanisms supported by the tool. The tool helps tracing concerns from requirements to<br />

the specification and composition of concerns, through the History feature and Source attribute.<br />

Thanks to the guidelines and the tool, our approach promotes better understanding of concerns, as well<br />

as supporting validation of specifications and compositions of concerns.<br />

For future work, we plan an extension of the AORA tool to incorporate a parser to integrate a<br />

reference model to support forward traceability with the method.<br />

112


113<br />

<strong>Chapter</strong> 6<br />

Handling Conflicts in AORA<br />

Managing conflicts among multiple viewpoints or stakeholders is another Requirement Engineering<br />

objective because their identification during implementation may become more expensive, since it is<br />

during the requirements phase that a more direct contact is maintained with the stakeholders<br />

(Nuseibeh, 2000). In the context of <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering, it is also important to<br />

identify conflicting situations as early as possible to facilitate negotiation and decision-making among<br />

stakeholders, as these situations might lead to a revision of the aspectual and non-aspectual<br />

specifications, as well as the compositions.<br />

In the AORA approach, the conflict management problem is handled during the composition activity,<br />

where conflicting situations may emerge in a given match point. A match point identifies specific<br />

locations in the base concerns where other concerns’ behaviour (crosscutting or non-crosscutting)<br />

should be composed, or satisfied (see <strong>Chapter</strong> 4). In this context, a conflict occurs any time two or<br />

more concerns that contribute negatively to each other, and have the same priority, need to be<br />

composed in the same match point. For example, consider the case where a given module, that was<br />

conceived to model or implement a given functionality of a system, needs to be secure and to react in a<br />

very short period of time. It is well-known that security and response time contribute negatively to<br />

each other, i.e., the more secure we want our module to be, the less fast it will become, and vice-versa.<br />

This means that the system may not be able to satisfy both with the same degree of importance.<br />

Therefore, this also means that each of these concerns lead to a number of architecture choices that<br />

would serve their needs with varying levels of stakeholder satisfaction. A discussion about the side


effects of this problem can be found in (Moreira, 2005a). For this reason, it is important to understand<br />

well each concern, study the level of impact that each one may have on others and decide on their<br />

relative importance before any solution decision is made.<br />

Considering that Multi-Criteria Decision Making (MCDM) techniques offer the possibility to find,<br />

given a set of alternatives and a set of decision criteria, the best alternative, the contribution of this<br />

chapter is, therefore, to propose the use of a MCDM method to support conflict management<br />

resolution. Weighted average and Analytical Hierarchical Process (AHP) are MCDM methods widely<br />

used (Saaty, 1980; Dong, 1987). The selected method was the AHP with a simpler aggregation process<br />

(Williams, 2000). The main reason why this simplified AHP method was selected is that it is well<br />

suited to handle the kind of problems in hand and it helps guarantee the logical consistency of many<br />

human-based judgments, as well as synthesizing a wide-range of data in a single solution. The end<br />

result is a list of concerns ranked according to a set of criteria. This list of ranked concerns will lead<br />

the choice of the system’s architecture design, as previously mentioned. Direct scoring techniques are<br />

widely used, particularly the weighted scoring method described in Dong et al. (also called weighted<br />

average method), and this is the reason why we compare it with the approach selected for our work,<br />

the AHP (Dong, 1987). During the development of the work contained in this chapter, the student,<br />

Filipe Vieira, developed his MSc dissertation, therefore helping to validate the results achieved<br />

(Vieira, 2007).<br />

This chapter gives an overview on MCDM, describes the AHP technique and applies AHP to handle<br />

conflicts in AORA, illustrates the main ideas with an example, compares AHP with Weighted average<br />

technique and discusses the obtained results. Finally, a related work and a summary are presented.<br />

6.1 Multi-Criteria Decision Making: an overview<br />

Multi-Criteria Decision Making (MCDM) techniques aim at supporting decision makers to solve<br />

conflicting situations (Triantaphyllou, 2000). It is one of the most well know branches of decision<br />

making. The MCDM field is usually divided into Multi-Objective Decision Making and Multi-<br />

Attribute Decision Making (Zimmerman, 1991; Chen, 1992). Multi-Objective Decision Making<br />

analyses a subset of a continuous vector space, usually restricted by constraints, by locating all<br />

efficient solutions, before determining the optimum dependent on the user's preferences. Therefore,<br />

Multi-Objective Decision Making offers feasible methods for operational planning, e.g. goal<br />

programming. For the comparison of several particular alternatives or in strategic planning, when a<br />

certain number of recycling techniques are to be pre-selected for further investigation, the approaches<br />

114


of Multi-Attribute Decision Making should be used, because Multi-Attribute Decision Making<br />

investigates a finite set of alternatives. Basically, Multi-Attribute Decision Making comprises two<br />

steps: (i) the aggregation of the judgements with regard to each criterion and each alternative, and (ii)<br />

the ranking of the alternatives according to the aggregation rules (Geldermann, 2000).<br />

In our work we focus on Multi-Attribute Decision Making, and we will use the more general notation<br />

of criteria instead of attribute, i.e., MCDM. MCDM methods use mathematical techniques to help<br />

decision makers in choosing among a discrete set of alternative decisions. These methods do not try to<br />

compute an optimal solution, but they try to determine, via various ranking procedures, either a<br />

ranking of the relevant actions (decision alternatives) that is “optimal” with respect to several criteria,<br />

or the “optimal” actions amongst the existing solutions (decisions alternatives) (Triantaphyllou, 2000).<br />

Triantaphyllou warns that there may never be a single MCDM method that guaranties that a solution<br />

(derived ranking of alternatives) is the correct one because of the subjective assignment of alternative<br />

classifications and weights for criteria. The problem of determining the best alternative is an ill<br />

defined one by its own nature. It is hard to know the best solution even under perfect knowledge of the<br />

input data of a MCDM problem.<br />

Although MCDM methods may be widely diverse, many of then have certain notions in common,<br />

such as:<br />

• Alternatives represent the different choices of action available to the decision maker. In the<br />

context of this thesis the set of alternatives is assumed to be finite, and they are the elements to<br />

be ranked or prioritized.<br />

• Criteria are also referred to as goals and represent the different dimensions from which the<br />

alternatives can be viewed. In cases in which the number of criteria is large, criteria may be<br />

arranged hierarchically.<br />

• Weights of importance are assigned to the criteria. Usually, these weights are normalized.<br />

Based on the definitions above, there are three parameters in a MCDM problem:<br />

• The set of alternatives to be ranked.<br />

• The set of criteria that will be used for classifying (rating) each alternative.<br />

• The weights (importance) attributed to each criterion.<br />

115


The weights represent the relative importance of that criterion in relation to others in a decision<br />

scenario. The higher the weight, the higher the importance of the criteria is for the decision maker.<br />

Usually, decision problems are represented in a decision matrix, as depicted in Table 6.1.<br />

Table 6.1 Decision matrix<br />

Weight 1 Weight 2 … Weight j<br />

Criteria1 Criteria 2 … Criteria j<br />

Alternative 1 x11 x12 … x1j<br />

… … … … …<br />

Alternative i xi1 xi2 ... xij<br />

The normalized mathematical formulation of a MCDM problem is:<br />

⎡ ⎤<br />

D ( Ai<br />

) = ⎢⊕(<br />

xij<br />

⊗ w j ) ⎥ / ∑ w j<br />

(1)<br />

⎣ j ⎦ j<br />

j where w ij<br />

is the relative importance of criteria, x is the rating of the alternative for the respective<br />

criteria and ⊕, ⊗ are appropriate (to be selected) aggregation operators. When we are dealing with a<br />

simple weighted average aggregation, the ⊗ is the operator multiplication and ⊕ is the summation.<br />

The best alternative Ai is the one with the highest priority in the ranking.<br />

To solve MCDM problems many aggregation methods have been proposed in Chen et al. direct<br />

scoring and outranking methods, trade-off schemes, distance based methods, value and utility<br />

functions, interactive methods (Chen, 1992). Direct scoring techniques are widely used, particularly<br />

the weighted scoring method as described in Dong et al. (also called weighted average method), and<br />

this is the reason why we compare it with the approach selected for our work, the AHP (Dong, 1987).<br />

The AHP method was selected because it uses pairwise comparisons for its weighting process, which<br />

allows a direct match for solving our problem, i.e. our conflicts are between each pair of concerns<br />

(Saaty, 1980; Triantaphyllou, 2000).<br />

There are three steps in utilizing any decision making technique involving direct scoring:<br />

• Determine the relevant criteria and alternatives.<br />

• Attach numerical measures to the weights importance of the criteria and to the impacts of the<br />

alternatives on these criteria.<br />

• Process the numerical values to determine a ranking of each alternative.<br />

116


6.2 An introduction to the AHP method<br />

AHP is a decision analysis method that ranks alternatives based on a number of criteria (Saaty, 1980).<br />

This method provides a mathematically rigorous process for prioritization and decision-making, by<br />

reducing complex decisions to a series of pairwise comparisons and then synthesizing the results,<br />

decision-makers arrive at the best decision based on a clear rationale. Based on specific conflict<br />

handling characteristics, the AHP is a valid option because:<br />

• It offers an interpretation/analysis of the problem with low complexity.<br />

• It uses deductible and systematic procedures for reducing complexity.<br />

• It permits tradeoffs in conflicting situations.<br />

• It provides a way to express preferences (pairwise) between all criteria and between all<br />

alternatives.<br />

• It calculates the judgements logical consistency.<br />

• Its final result is based in the synthesis of the different judgements.<br />

The AHP method can be described in five steps, each one described below.<br />

Step 1: Problem definition. In this step we define the problem goal.<br />

Step 2: Graphical representation of the problem. This step is divided into three sub-steps: state the<br />

objective (according to goal encountered in step 1), define the criteria and choose the alternatives.<br />

Figure 6.1 illustrates an example of a hierarchical tree.<br />

Alternative 1<br />

Objective<br />

Criteria1 Criteria2 Criteriai<br />

...<br />

...<br />

Alternative j<br />

Figure 6.1 AHP hierarchical tree<br />

117<br />

Level 1: Overall goal<br />

Level 2: Criteria<br />

Level 3: Decision Alternatives


Step 3: Establish priorities. Pairwise comparisons are used to define the preferences for alternatives<br />

over each criterion, as well as the weights of each criterion. To accomplish this, Satty uses the scale<br />

[1..9] to rate the relative importance/preference of one criterion over another, and constructs a matrix<br />

of the pairwise comparison ratings. The same process applies to the definition of the importance of<br />

criteria. If a criterion is less important that other, then the inverse preference is rated in the scale 1, 1/2,<br />

1/3, …, 1/9.<br />

The reason for Satty´s scale is based in psychological theories and experiments that points to the use<br />

of 9 unit scales as a reasonable set that allows humans to perform discrimination between preferences<br />

for two items. Each value of the scale can be given a different interpretation allowing a numerical,<br />

verbal or graphical interpretation of the values (Saaty, 1980). An example of pairwise priorities<br />

assignment for a problem with three alternatives is depicted in Table 6.2. An example of pairwise<br />

comparison to express the relative importance (weights) between two criteria is depicted in Table 6.3.<br />

Table 6.2 Example of AHP pairwise classification of alternatives for a criterion<br />

Criterion Alternative 1 Alternative 2 Alternative 3<br />

Alternative 1 1 3 9<br />

Alternative 2 1/3 1 5<br />

Alternative 3 1/9 1/5 1<br />

The comparative matrices are reciprocal, hence they have to satisfy the property: aji=1/aij.<br />

Table 6.3 Example of AHP pairwise assignment of weights (importance) between two criteria<br />

Weights Criterion 1 Criterion 2<br />

Criterion 1 1 5<br />

Criterion 2 1/5 1<br />

The interpretation of the matrix in Table 6.2 is: Alternative 1 is weakly more important than<br />

Alternative 2 and absolutely more important than Alternative 3; Alternative 2 is moderately more<br />

important than Alternative 3. The interpretation for Table 6.3 is: the weight (importance) of Criterion<br />

1 is moderately more important than Criterion 2. Note that the ratios on both matrices (Table 6.2 and<br />

Table 6.3) represent the inverse of the mentioned interpretations, the diagonal is always 1 to express<br />

neutrality between the same alternative or criterion, and the complete matrices are denoted as<br />

reciprocal matrices (Saaty, 1980).<br />

Step 4. Synthesis. In this step we calculate the priority of each alternative solutions and criteria being<br />

compared. Several mathematical procedures can be used for synthesization, for example eigenvalues<br />

and eigenvectors (Saaty, 1980). However, here, as mentioned before, we use a simple averaging<br />

118


solution, which provides similar results and is much simpler to apply (Williams, 2000). The synthesis<br />

is determined in 2 phases:<br />

1. The process for synthesis follows a bottom-up approach. Hence, starting from the bottom of the<br />

hierarchical tree and using the reciprocal matrices as shown in Table 6.2 they are normalized per<br />

column and then we calculate the average per line to obtain a priority vector for each matrix<br />

corresponding to each criterion. The same process is done for the pairwise matrices corresponding<br />

to the criteria relative importance (Table 6.3).<br />

2. Next, the vectors per criterion are combined into a single matrix and this new matrix is multiplied<br />

by the priority vector obtained from the criteria importance matrix to obtain the overall objective<br />

(i.e., ranking of alternatives).<br />

This process is repeated as many times as needed until the tree root is reached.<br />

Step 5. Consistency. The logical quality of the decisions is guaranteed through a measure of<br />

consistency of pairwise comparison judgments by computing a consistency ratio (CR):<br />

CR =<br />

CI<br />

RCI<br />

where CI represents the consistency index and RCI gives the random consistency index. RCI is a pre-<br />

defined average random index derived from a sample of size 500 of randomly generated reciprocal<br />

matrices, and depends on the number of elements being compared (Triantaphyllou, 2000). CI is<br />

calculated using:<br />

CI = λ − n)<br />

/( n −1)<br />

( max<br />

where n is the number of items being compared and λmax is calculated using:<br />

AW = A * W<br />

λ<br />

max<br />

n<br />

= ( ∑ AW / W ) / n<br />

i<br />

i<br />

i<br />

where A is the pairwise reciprocal matrix, W is the weights vector, index i corresponds to each value<br />

in the AW vector and n is again the number of elements.<br />

CR is designed in such a way that values of the ratio exceeding 10% are indicative of inconsistent<br />

judgement; in such cases, the decision maker should revise the original values in the respective<br />

pairwise comparison matrix (Williams, 2000). It should be noted that this consistency ratio ensures<br />

119<br />

(2)<br />

(3)<br />

(4)


that the transitive property (if a> b and b>c then a>c) is guaranteed, which means the user pairwise<br />

judgements, are logical.<br />

In summary, we have chosen the AHP proposed in Saaty with the simplified aggregation method<br />

proposed in Williams et al. because: it is a well-known and accepted method; it is appropriate for<br />

handling conflicting concerns problems; it has the ability to quantify subjective judgements; it is<br />

capable of comparing alternatives in relation to established criteria; it provides the means to establish<br />

preferences (pairwise) between all criteria and between alternatives in relation to each criterion; and it<br />

provides means to guarantee the logical consistency of the judgements (Saaty, 1980; Williams, 2000).<br />

As stated in Zimmerman, choosing a perfect method is an elusive goal and such selection can be based<br />

on criteria such as consistency, empirical adequacy, adaptability, numerical efficiency, the range of<br />

membership degrees of the results, the aggregation behaviour or the required scale for the membership<br />

functions (Zimmerman, 1991).<br />

6.3 Applying AHP to the AORA approach<br />

This section starts with a brief background on our preliminary attempts to use the AHP for conflict<br />

resolution and then introduces an example to illustrate the proposed application of the AHP method to<br />

the selected AORA approach (Brito, 2003b; 2004).<br />

6.3.1 Exploring the use of AHP<br />

For small problems, a simple approach for conflict resolution may be reasonable. However, for large<br />

and complex problems, where the number of comparisons and possible alternatives are very high, a<br />

correct intuitive evaluation might be too difficult to achieve. As a system grows, it is common to find<br />

many concerns with the same priority resulting in more conflicts, each one dealing with more complex<br />

situations.<br />

In our first attempt to handle conflicts in the AORA approach using the AHP method, we tried to<br />

handle all the concerns in the whole system (Vieira, 2006). However, we soon realised that we needed<br />

to first resolve conflicts with respect to particular match points. The very first problem we had to solve<br />

was to identify the set of alternatives (based on the problem under study) as well as the list of criteria<br />

(from the template in <strong>Chapter</strong> 4) that could bring useful information to the conflict resolution process.<br />

120


While the alternatives are the required concerns in a given match point, the criteria are a subset of the<br />

fields in the template.<br />

Initially, the fields selected were source, classification and priority (at that time, priority was<br />

stakeholder independent). The required concern field has also been used indirectly through the type<br />

alternative. The type criterion basically holds the information about the crosscutting nature of a<br />

concern. These experiments, led us to change priority to be stakeholder dependent, because we were<br />

unable to differentiate stakeholders’ interest on each alternative. Another decision that is worth noting<br />

is that source has been identified as having no effect in the solutions obtained, which, by its nature,<br />

should have been a reasonable expectation. During the refinement of the process we detected that the<br />

contribution field was included in the process in a fashion that quantifies the negative contributions.<br />

The chosen criteria are then used by the AHP method to rank the list of concerns in a given match<br />

point. This ranking is therefore used as a means for solving conflicts and can also be used as a guide to<br />

define the composition rule.<br />

6.3.2 Applying the AHP method<br />

As described above, the AHP method is composed of five main steps. The result is a list of concerns,<br />

ordered by degree of importance in a match point. It should be noted that we developed the whole<br />

application in excel, which shows how easy it is to implement this approach.<br />

Step 1: Problem definition<br />

The goal is to rank the concerns required in a given match point. In our case, as mentioned before, the<br />

match point selected is “Enter subway”. The alternatives are the different concerns identified in the<br />

Enter Subway match point:<br />

A = {Accuracy, Response time, Availability, Integrity, Multi-Access, Validate Card, Fault Tolerance}<br />

The criteria, also referred to as decision criteria, represent the different dimensions from which the<br />

alternatives can be analysed. For our problem, we have two major criteria:<br />

C = {Contribution, Stakeholders_Importance}<br />

By dividing the Stakeholders_Importance criterion into sub-criteria it is possible to use individual<br />

stakeholder judgments as part of the decision problem. The main reason for the division is that the<br />

relation between concerns and its importance is dependent of the judgement of each stakeholder<br />

121


egarding the variables that are influent in her/his perspective of the system. Therefore, the identified<br />

Stakeholders_Importance sub-criteria are:<br />

Cstakeholder_importance= {Passenger, System owner, Developer}<br />

Step 2: Graphical representation of the problem<br />

With the identified objective, criteria and alternatives we can now build the hierarchical tree for our<br />

match point, as depicted in Figure 6.2.<br />

Validate<br />

card<br />

Contribution<br />

Step 3: Establish priorities<br />

Enter Subway MatchPoint<br />

Concerns ranking<br />

Importance<br />

Dev eloper<br />

Availability Response<br />

...<br />

time<br />

Stakeholder<br />

Importance<br />

Importance<br />

System Owner<br />

122<br />

Importance<br />

Passenger<br />

Figure 6.2 Graphical representation of the enter subway match point<br />

Objective<br />

Criteria<br />

Alternatives<br />

As mentioned, AHP uses a pairwise comparison matrix to determine the ratings of judgements and<br />

comparisons are quantified by using the AHP [1..9] scale. In our example, the pairwise matrices are<br />

shown in Table 6.4 to Table 6.9.<br />

Table 6.4 Pairwise comparison matrix for criterion Contribution (4th level of tree)<br />

Response<br />

Multi- Validate Fault<br />

Contribution Accuracy Time Availability Integrity Access Card Tolerance<br />

Accuracy 1.000 1.000 0.500 1.000 0.333 0.250 0.333<br />

Response Time 1.000 1.000 0.500 0.333 0.333 0.250 0.333<br />

Availability 2.000 2.000 1.000 0.500 0.500 0.333 0.500<br />

Integrity 1.000 3.000 2.000 1.000 1.000 0.500 1.000<br />

Multi-Access 3.000 3.000 2.000 1.000 1.000 0.500 1.000<br />

Validate Card 4.000 4.000 3.000 2.000 2.000 1.000 2.000<br />

Fault Tolerance 3.000 3.000 2.000 1.000 1.000 0.500 1.000<br />

Table 6.4 to Table 6.7 show pairwise priority assignments for the alternatives based on Contribution,<br />

Passenger Importance, System Owner Importance, and Developer Importance criteria, respectively.<br />

The assigned values are subjective and based on the authors’ experience.


Table 6.5 Pairwise comparison matrix for importance of stakeholder Passenger (4th level of tree)<br />

Passenger<br />

Response<br />

Multi- Validate Fault<br />

Importance Accuracy Time Availability Integrity Access Card Tolerance<br />

Accuracy 1.000 0.143 1.000 1.000 0.500 1.000 5.000<br />

Response Time 7.000 1.000 6.000 6.000 6.000 6.000 7.000<br />

Availability 1.000 0.167 1.000 1.000 2.000 2.000 3.000<br />

Integrity 1.000 0.167 1.000 1.000 0.333 0.333 2.000<br />

Multi-Access 2.000 0.167 0.500 3.000 1.000 2.000 3.000<br />

Validate Card 1.000 0.167 0.500 3.000 0.500 1.000 2.000<br />

Fault Tolerance 0.200 0.143 0.333 0.500 0.333 0.500 1.000<br />

Table 6.6 Pairwise comparison matrix for importance of stakeholder System Owner (4 th level)<br />

System Owner<br />

Response<br />

Multi- Validate Fault<br />

Importance Accuracy Time Availability Integrity Access Card Tolerance<br />

Accuracy 1.000 1.000 2.000 2.000 1.000 1.000 2.000<br />

Response Time 1.000 1.000 2.000 2.000 1.000 2.000 2.000<br />

Availability 0.500 0.500 1.000 2.000 0.500 2.000 3.000<br />

Integrity 0.500 0.500 0.500 1.000 0.500 0.500 2.000<br />

Multi-Access 1.000 1.000 2.000 2.000 1.000 1.000 2.000<br />

Validate Card 1.000 0.500 0.500 2.000 1.000 1.000 2.000<br />

Fault Tolerance 0.500 0.500 0.333 0.500 0.500 0.500 1.000<br />

Table 6.7 Pairwise comparison matrix for importance of stakeholder Developer (4th level)<br />

Developer<br />

Response<br />

Multi- Validate Fault<br />

Importance Accuracy Time Availability Integrity Access Card Tolerance<br />

Accuracy 1.000 1.000 1.000 1.000 1.000 1.000 2.000<br />

Response Time 1.000 1.000 0.500 3.000 0.500 0.500 3.000<br />

Availability 1.000 2.000 1.000 2.000 1.000 1.000 3.000<br />

Integrity 1.000 0.333 0.500 1.000 1.000 1.000 1.000<br />

Multi-Access 1.000 2.000 1.000 1.000 1.000 1.000 3.000<br />

Validate Card 1.000 2.000 1.000 1.000 1.000 1.000 3.000<br />

Fault Tolerance 0.500 0.333 0.333 1.000 0.333 0.333 1.000<br />

Now, we need to establish the relative importance of each stakeholder (level 3 of the tree) as well as<br />

the relative importance between the two criteria (level 2 of the tree). Table 6.8 and Table 6.9 show the<br />

relative importance (preferences) of each criterion for both levels of the tree, again attributed by<br />

experience.<br />

Table 6.8 Pairwise comparison matrix for Stakeholders Importance criterion (3rd level of tree) and respective<br />

Priority Vector (calculated)<br />

Passenger System Owner Developer<br />

Stakeholders Importance Importance Importance Importance Priority Vector<br />

Passenger 1.000 0.333 0.500 0.163<br />

System Owner 3.000 1.000 2.000 0.538<br />

Developer 2.000 0.500 1.000 0.297<br />

123


Table 6.9 Paiwise comparison of criteria weights (2nd level of tree) and respective Priority Vector (calculated)<br />

Criteria Weights Contribution<br />

Stakeholders<br />

Importance Priority Vector<br />

Contribution 1.000 0.500 0.333<br />

Stakeholder Importance 2.000 1.000 0.667<br />

It should be noted that for large problems the total number of required comparisons is quite time<br />

consuming. Nevertheless, there are ways to avoid deriving priorities for alternatives by means of<br />

pairwise comparisons, for example by deriving relative weights from different comparisons. This<br />

would reduce the number of comparisons to n-1; however, if an error is introduced in this process, a<br />

strong negative impact can be felt in the final result (Triantaphyllou, 2000). Fortunately, there are<br />

commercial tools, such as Expert Choice, Rank Master and Descriptor, to support the AHP process,<br />

facilitating its use and speeding up the calculations.<br />

Step 4: Synthesis<br />

After creating all pairwise comparisons it is now possible to calculate the priority of each alternative in<br />

terms of each criterion. First we calculate the normalized pairwise comparison matrix by dividing each<br />

element of the comparison matrix by the sum of each column. Then we find the estimated relative<br />

priorities by calculating the average of each row of the normalized matrix. At the end of this step we<br />

have the priority vectors for each pairwise matrix. Second, we collect the priority vectors for the third<br />

level of matrix in one matrix and using the importance priority vector (Table 6.8) we calculate the<br />

synthesized value for level 3. Table 6.9 shows the intermediate collected vectors and the final priority<br />

vector for level 2.<br />

Now, to calculate the final ranking, we need to combine, into a single matrix, the final priority vector<br />

determined in Table 6.10 with the final vector resulting from Table 6.4, and then multiply it by the<br />

criteria weights priority vector of level 2 (Table 6.9). The results are shown in Table 6.11.<br />

Observe that, in our example, we only have two major criteria at level 2 and three sub-criteria at level<br />

3 (Figure 6.2); hence, the final ranking was obtained by first synthesizing level 3 (Table 6.10) and then<br />

synthesizing level 2 (Table 6.11). As mentioned before, the AHP works with a bottom-up approach.<br />

124


Table 6.10 Priority matrix for level 3 plus final Vector<br />

Passenger<br />

Importance<br />

System Owner<br />

Importance<br />

125<br />

Developer<br />

Importance Priority Vector<br />

Accuracy 0.093 0.178 0.146 0.155<br />

Response Time 0.478 0.196 0.146 0.227<br />

Availability 0.114 0.149 0.186 0.154<br />

Integrity 0.067 0.091 0.113 0.093<br />

Multi-Access 0.123 0.178 0.172 0.167<br />

Validate Card 0.088 0.138 0.172 0.1408<br />

Fault Tolerance 0.038 0.071 0.065 0.064<br />

Table 6.11 Final Ranking (synthesis)<br />

Contribution<br />

Stakeholders<br />

Importance<br />

Final<br />

Priorities Ranking<br />

Accuracy 0.071 0.155 0.127 5 th<br />

Response Time 0.058 0.227 0.171 2 nd<br />

Availability 0.097 0.154 0.135 4 th<br />

Integrity 0.149 0.093 0.112 6 th<br />

Multi-Access 0.168 0.167 0.168 3 rd<br />

Validate Card 0.288 0.140 0.189 1 st<br />

Fault Tolerance 0.168 0.064 0.099 7 th<br />

Let us now interpret the final ranking in Table 6.11 in the context of our Enter Subway match point,<br />

where negative contributions were found between several concerns (see templates in <strong>Chapter</strong> 4). The<br />

system can only be used with a valid card, therefore, it is not a surprise that the concern Validate Card<br />

appears raked first. Response Time come next in the ranking because we need to do our best to avoid<br />

long queues. Third ranking is Multi-Access because it is important to guarantee the use of the system<br />

by thousands of passengers at the same moment. Furthermore, Availability needs to be accomplished<br />

first than Accuracy and Integrity 8 in order to guarantee that the system is accessible for the passengers<br />

and helps Multi-Access and Response Time (this is possible because Availability has positive<br />

contribution to Response Time and Multi-Access). Accuracy appears in fifth place because this<br />

concern contributes negatively to Response Time and Availability, which have higher preferences for<br />

the stakeholders, so Accuracy priority needs to be lower in order to help guaranteeing the stakeholders<br />

preferences. Integrity is ranked sixth and Fault Tolerance comes later, in the seventh position. Fault<br />

Tolerance contributes positively to Accuracy and Availability so its composition helps the others.<br />

Notice that the resulting raking can also be used to guide an incremental development and even to<br />

define the composition rule, but this issue in not the focus of this section.<br />

8 As we said before, Security has been decomposed into Integrity and Availability.


Step 5: Consistency<br />

The AHP method provides means to evaluate the consistency of the judgements that the decision<br />

maker demonstrated during the pairwise comparisons. This reduces any possible error that might have<br />

been introduced during the judgement process. Since our example was small we decided to check the<br />

consistency for all pairwise matrices instead of just obtaining a final consistency ratio. The results<br />

using equations (2), (3) and (4) of Section 6.2 are shown in Table 6.12.<br />

Table 6.12 Final consistency ratio for all pairwise matrices<br />

Pairwise matrices Consistency<br />

Index (CR)<br />

Table 6.1 (Contribution) 0.02<br />

Table 6.2 (Passenger) 0.07<br />

Table 6.3 (System Owner) 0.04<br />

Table 6.4 (Developer) 0.05<br />

Table 6.5 (Stakeholders Importance) 0.01<br />

Table 6.6 (Criteria Weights) 0.00<br />

The consistency indexes obtained are a good indication that logical consistent judgments were made<br />

on all pairwise comparisons, because they are well below the required 10% threshold, as explained in<br />

Section 6.2.<br />

6.3.3 Discussion of the results<br />

Based on the results obtained by applying the AHP method, it is possible to use ranking methods to<br />

help solving conflicting situations that might occur in a match point. Having the concerns ranked by<br />

order of importance, permits one to select the architectural design that will optimise the attainment of<br />

various objectives by their order of importance. Based on the obtained rankings, decisions can be<br />

taken to handle unresolved conflicts (see discussion in Step 4).<br />

To ensure that the method is applied correctly we must guarantee that the questions below are<br />

answered during the initial activities of the AORA approach: Have all the concerns been identified?<br />

Were all the stakeholders considered? How correct is the stakeholder knowledge about the problem?<br />

At what level of decomposition should AHP be applied?<br />

In what concerns the AHP method we should remember that human judgements are not error free,<br />

even if the consistency level is below 10%, judgements are always subjective. Consistency only tells<br />

that the judgements are valid in a logical perspective. However, the reasoning used to achieve those<br />

values is subjective and may not reflect the best alternatives.<br />

126


As the reader can appreciate, the application of the method can be time consuming and certainly error<br />

prone, if all the calculations are done by hand. This technique has been proved useful in all the case<br />

studies we have solved so far. However, automatic tools should be used to reduce the overhead<br />

introduced in the AORA approach.<br />

We use the Expert Choice tool as a means to validate our final concern ranking. The comparison has<br />

not been done in detail, since Expert Choice uses a combination of techniques to obtain the final<br />

raking. However, we could already confirm that the final rakings do not present a significant variation<br />

from those obtained using AHP.<br />

6.3.4 A summary of our initial experiments with AHP<br />

In our first attempt to use the AHP method to manage conflicts within the AORA approach, we tried<br />

to handle all the concerns in the whole system at once (Brito, 2004; Vieira, 2006). However, we soon<br />

realised that we needed to first resolve conflicts with respect to particular match points. The very first<br />

problem we had to solve was to identify the set of alternatives (based on the problem under study) as<br />

well as the list of criteria (from the template in <strong>Chapter</strong> 4) that could bring useful information to the<br />

conflict resolution process. While the alternatives are the required concerns in a given match point, the<br />

criteria are a subset of the fields in the template.<br />

Initially, the fields selected were Sources, Type, Contribution, Classification and Importance (at that<br />

time, Importance was stakeholder independent). These experiments led us to change the “Importance”<br />

element to be stakeholder dependent, since different stakeholders may have different interests on each<br />

concern. This allowed us to be able to differentiate stakeholders’ interest on each alternative. Another<br />

decision that is worth noting is that Sources, Type and Classification have been identified as having no<br />

effect in the solutions obtained. While Sources is a string and it is virtually impossible to associate a<br />

degree of trust to it, Type and Classification ranges are crisp binary values and therefore there is no<br />

indecision associated with them.<br />

During the process refinement, we realised that the Contribution field, which initially also looked like<br />

a binary crisp type, could have an impact on the results obtained. The explanation is that we could<br />

“quantify” the strength of the negative contributions. For example, considering two concerns A and B,<br />

contributing negatively to each other, we can associate a degree of strength to this relationship of the<br />

kind “highly negative”, “negative”, “not too negative”, for example.<br />

After several experiments, the criteria chosen were Importance (one value for each stakeholder) and<br />

Contribution.<br />

127


6.4 AHP versus Weighted Average<br />

The AHP method proved to produce useful information and since it ensures logical consistency,<br />

contributes to the developers trust on the results. Moreover, the AHP pairwise structure provides the<br />

means to express, easily, preferences between criteria (e.g. passenger is less important than system<br />

owner) and as well as between alternatives for each criterion (e.g. response time is much more<br />

important than accuracy for passenger). Nevertheless, it is rather cumbersome in terms of requiring<br />

pairwise comparisons for all levels of the decision tree and, within each level, to obtain weights for<br />

criteria. This makes its application time consuming. In addition, AHP does not deal with the problem<br />

of dependencies between more than two concerns because of its pairwise structure.<br />

Hence, we decided to compare the AHP method with a widely known direct scoring method such as<br />

the classical weighted average, using the same illustrative example. Obviously, with this method we<br />

lose the possibility of using pairwise judgment and checking the logical consistency of the judgements<br />

made, but we gain in terms of time spent. In addition, with the simple weighted average we can neither<br />

compare the intermediate values nor use direct pairwise judgements to express our preferences<br />

between each pair of concerns, since in the classical weighted average method the assigned<br />

importance are direct (it is a direct scoring method).<br />

In spite of the drawbacks of using a simple weighted average method for our type of problem, it is a<br />

widely used method and a good candidate for comparison purposes. Furthermore, we will use a<br />

classification scale within the interval [0, 1] to enable a direct comparison with the final results of the<br />

AHP method. To allow some interpretation of the classification of alternatives we will use a discrete<br />

set of values from the interval scale, such as: {Very important: 0.9, Important: 0.75, Medium: 0.5,<br />

Low: 0.3, Very low: 0.1}. This classification is based on discrete fuzzy sets, as described in (Chen,<br />

1992). Table 6.13 shows the weights (i.e., the relative importance of criteria).<br />

Table 6.13 Criteria weights<br />

Criteria Criteria Weights<br />

Contribution 0.33<br />

Developer Importance 0.35<br />

Passenger Importance 0.50<br />

System Owner Importance 0.75<br />

Table 6.14 shows the classifications for each alternative per criterion, the final priority obtained with<br />

equation (1) in Section 6.1, and the respective final ranking.<br />

128


Table 6.14 Alternatives classification, final priorities and ranking for Enter Subway match point<br />

EnterSubway<br />

Developer Passenger<br />

System<br />

Owner Final<br />

Match Point Contribution Importance Importance Importance Priorities Ranking<br />

Accuracy 0.1 0.50 0.50 0.75 0.529 6 th<br />

Response Time 0.9 0.75 0.75 0.30 0.601 3 rd<br />

Availability 0.9 0.30 0.75 0.50 0.597 4 th<br />

Integrity 0.9 0.50 0.50 0.50 0.570 5 th<br />

Multi-Access 0.1 0.30 0.75 0.90 0.623 2 nd<br />

Validate Card 0.0 0.90 0.50 0.90 0.635 1 st<br />

Fault Tolerance 0.1 0.50 0.50 0.30 0.350 7 th<br />

Comparing the results just obtained (depicted in Table 6.14) with those obtained by applying the AHP<br />

ranking (in Table 6.11) we can observe that both methods agree in the first concern ranking, Validate<br />

Card. The 2nd ranking for AHP is given to Response Time and third to Multi-Access, while classical<br />

WA considers Multi-access the 2nd and Response Time the 3rd priority. The two concerns have a high<br />

ranking but Response time seems more essential in a system that deals with the public. The 4th place<br />

is the same for both approaches. There is an inversion regarding Accuracy and Integrity, respectively<br />

5th and 6th for AHP, versus 6th and 5th for classical weighted average. Again the results of the AHP<br />

seem more appropriate because we need to ensure Accuracy before being worried with Integrity. Fault<br />

Tolerance occupies the last position in both methods.<br />

Obviously, the classical weighted average method is much simpler and provides good enough results;<br />

however, it does not allow: using sound logical pairwise comparisons (expressing different actors’<br />

preferences); consistency checks; and an easy interpretable hierarchical representation with various<br />

levels (Figure 6.2). Hence, the choice between using this method or the AHP requires a decision<br />

between using a faster and simpler method (although with direct classifications) versus using AHP,<br />

which ensures pairwise psychological robustness, logical consistency and interpretability.<br />

To conclude, we should remember that since all MCDM problems are always ill-defined as described<br />

in Triantaphyllou one should ensure that the classifications and weights of criteria reflect, as much as<br />

possible, the users and developers opinions (Triantaphyllou, 2000). Another problem, common to all<br />

MCDM methods, is that big changes in the assigned classifications (both, pairwise or direct) may<br />

result in different rankings. Hence, the selection of a “good” MCDM method should be done having in<br />

mind: the type of problem; the subjective nature of classifications and their dependencies; the need to<br />

express preferences between criteria and alternatives; check trade-offs between the<br />

advantages/disadvantages of each method for the problem at hand. In this thesis we compared two<br />

well-known methods and discussed their results and respective advantages and drawbacks.<br />

129


In summary, we can say that within subjective contexts, as is the case of resolving conflicts in AORA<br />

in general, MCDM methods, despite their limitations, are a suitable approach. Moreover, it seems that<br />

for resolving conflicts between concerns the AHP method provides more robust and logical sound<br />

results, but with an overhead of being a more time consuming method.<br />

6.5 Related work<br />

Handling conflicts at <strong>Requirements</strong> Engineering level depends of what is a “conflict” at this level.<br />

Therefore, this section presents some definitions and solutions proposals used in requirements<br />

engineering field.<br />

Chung et al. propose a reasoning schema to detect and solve conflicting situations between non-<br />

functional requirements (Chung, 2000). A contribution link between two goals is introduced when the<br />

satisfaction of one of them may prevent the other from being satisfied (Chung, 2000). According to<br />

this, the identification of conflicts is based on positive and negative contributions. Our conflict<br />

analysis takes inspiration from these notions of positive and negative contributions. However, this<br />

process does not support means for a rigorous consistency checking neither does it offer a systematic<br />

trade-off analysis technique.<br />

Yen et al. present a formal framework that facilitates the identification and the trade-off analysis of<br />

conflicting requirements (Yen, 1997). This framework describes a systematic approach for analyzing<br />

the tradeoffs between conflicting requirements using techniques based on fuzzy sets. However, again,<br />

there is no check of consistency of priorities in order to minimize the errors during the decision<br />

process.<br />

Goal-oriented approaches detect priorities as the base attribute to handle conflicting goals. Formal<br />

techniques and heuristics are proposed for detecting conflicts and divergences from specifications of<br />

goals/requirements and of domain properties (VanLamsweerde, 1998). In VanLamsweerde a<br />

divergence is a weak form of conflict that occurs frequently in practice (VanLamsweerde, 1998). A<br />

conflict is a divergence between goals when there is a feasible boundary condition that makes the<br />

goals inconsistent. The major difference with respect to the proposal presented in this chapter is that<br />

consistency of judgements is not guaranteed. In VanLamsweerde et al. goals have been recognized to<br />

provide the roots for detecting conflicts among requirements and for resolving them eventually<br />

(VanLamsweerde, 2001). The authors first review the main types of inconsistency that can arise<br />

during requirements specification, defining them in an integrated framework and exploring their<br />

interrelationships. They then concentrate on the specific case of conflicting formulations of goals and<br />

130


equirements among different stakeholder viewpoints or within a single viewpoint. Secondly, they<br />

propose formal techniques and heuristics for identifying conflicts from specifications of<br />

goals/requirements and from known properties about the domain. Thirdly, they present formal<br />

techniques and heuristics for conflict resolution by specification transformation. Special emphasis is<br />

put on a weak form of conflict that has received no attention so far in the literature although frequently<br />

encountered in practice. In this case, a divergence between goals or requirements corresponds to<br />

situations where some particular combination of circumstances can be found that makes the<br />

goals/requirements conflicting. Such a particular combination of circumstances will be called a<br />

boundary condition.<br />

Robinson et al. propose two definitions to describe a “conflict” (Robinson, 1999). First, requirement<br />

inconsistency often refers to the technical nature of constructing a requirements document—“any<br />

situation in which two parts of a requirements specification do not obey some relationship that should<br />

hold between them”. Second, requirement conflict often refers to the stakeholders of a requirements<br />

document— “a conflict requirements held by two or more stakeholders that cause an inconsistency”.<br />

Based on these definitions, Robinson et al. present a reasoning about potential inconsistencies that<br />

requires techniques for representing overlapping descriptions and inconsistency relationships<br />

(Robinson, 2003). To accomplish these Robinson proposes two structures: goals and viewpoints. Goal<br />

refinement links and binary conflict links have both been introduced in goal structures to capture<br />

situations where the satisfaction of one goal may influence the satisfaction of another. Mechanisms<br />

have also been proposed to record independent descriptions into modular structures called viewpoints<br />

(Finkelstein, 1996). These structures are linked by consistency rules and associated with specific<br />

stakeholders involved in the elicitation process.<br />

Alves et al. propose a goal-oriented approach to manage conflicts in Commercial Off-The-Shelf based<br />

development (Alves, 2003). Here the authors define two kinds of conflict: intra and inter. Intra<br />

conflicts are originated between goals when there is a negative interaction between them. In this case,<br />

decision- makers have to solve intra conflicts through negotiation. Inter conflicts are those found<br />

between goals and product features. This type of conflict occurs in cases of mismatch of goals and<br />

product features. According to these definitions, this work aims at developing a selection process of<br />

how to identify and manage conflicting interests between costumers and vendors to support<br />

Commercial Off-The-Shelf decision-making. This process demonstrated that conflicts may arise when<br />

there is a mismatch between requirements and features. So, they have proposed a set of matching<br />

patterns to support the evaluation of how features match requirements. This works differs from ours<br />

because it proposes a set of alternative solutions at design level and we propose a ranking of<br />

alternatives (concerns) at requirements level.<br />

131


Conflict-<strong>Oriented</strong> <strong>Requirements</strong> <strong>Analysis</strong> (CORA) incorporates requirement ontology and strategies<br />

for restructuring requirements transformations as a mean to reduce or remove conflicts (Robinson,<br />

1999). This work deals with technical inconsistency and stakeholders conflicts, and ours deals with<br />

technical conflicts.<br />

In Karlsson et al., AHP is used to compare requirements pairwise according to relative value and cost<br />

where stakeholders are considered as having equal relevance (Karlsson, 1997). In our case a ranking<br />

process is used to establish stakeholders’ degree of importance using the AHP and then we compare<br />

this method with the classical weighted average method.<br />

Win-Win Spiral Model proposes an iterative 3-step process model for goal-based negotiation of<br />

requirements in order to conflict resolution (Boehm, 1994; 1998). At each iteration of a spiral model<br />

for requirements elaboration, (i) all stakeholders involved are identified together with their wished<br />

goals (called win conditions); (ii) conflicts between these goals are captured together with their<br />

associated risks and uncertainties; (iii) goals are reconciled through negotiation to reach a mutually<br />

agreed set of goals, constraints, and alternatives for the next iteration, and the software process is<br />

managed and measured to ensure that all the win conditions are satisfied, through negotiation among<br />

the stakeholders.<br />

The Quality Attribute Risk and Conflict Consultant (QARCC) is an exploratory knowledge-based tool<br />

that identifies and analyses the quality attributes’ tradeoffs involved in software architecture (Boehm,<br />

1996). This tool identifies potential quality attribute conflicts, flagging them for affected stakeholders<br />

and suggesting options to resolve the conflicts. The Win Win system is used to help on the<br />

identification and negotiation of the quality attributes conflicts. The QARCC tool operates on the win<br />

conditions to diagnose potential quality conflicts and tradeoffs. For each win condition that identifies a<br />

quality attribute, the QARCC tool uses a knowledge-base to identify software architecture and<br />

strategies for achieving the quality attribute. Based on the strategies and the knowledge-base, it<br />

identifies potential conflicts. Then, QARCC tool provides suggestions for resolve these potential<br />

conflicts. QARCC diverges from ours, e.g.: (i) instead of a knowledge-based tools, we present a<br />

mathematical technique; (ii) QARCC fails to provide a method to evaluate quality of stakeholders’<br />

judgements. In our case, a consistency index is used to identify inconsistent judgement thus suggesting<br />

to the decision maker judgement revision; (iii) QARCC is based on key stakeholders identification; we<br />

use stakeholder ranking, for priority criteria, to identify different degrees of importance among them.<br />

Fewer stakeholders may result in less overhead and inconsistencies but erratic judgements may have<br />

more impact in the system.<br />

132


In “Early <strong>Aspect</strong>s: The current landscape”, a conflict captures the situation of semantical interference:<br />

one aspect that works correct in isolation does not work correctly anymore when it is composed with<br />

other aspects. Hence, an aspect influences the correct working of another aspect negatively, often<br />

because different (sub-)concerns will have conflicting requirements (Araújo, 2005).<br />

Several AORE approaches handle conflicts mostly based on intuitive and very simple reasoning<br />

methods that are error prone and do not allow a rigorous engineering approach to the problem (Rashid,<br />

2003; Brito, 2003b; 2004; Moreira, 2005a).<br />

In Brito et al. conflict solving is based on the principle of iteratively identifying the dominant<br />

candidate aspect (i.e. a crosscutting concern) (Brito, 2004). This is achieved by priority comparison,<br />

which may involve trade-off negotiations with stakeholders. For example, suppose we have four<br />

concerns with priority “Very Important” to all stakeholders; a negotiation is required so that the<br />

concerns can be ranked. The process starts by analysing two concerns to identify the dominant one,<br />

then take this and analyse it with a third concern and so forth until we have taken into consideration all<br />

the concerns. The result is the concern with higher priority between them all. Next the process is<br />

repeated to identify the second dominant concern among the remaining concerns, and so forth until we<br />

have a dependency hierarchy between all the concerns. The major difference with respect to the<br />

proposal presented in this chapter is that conflict resolution is based on more than one criterion.<br />

Moreira et al. and Rashid et al. use a similar idea, by assign weights to those aspects that contribute<br />

negatively to each other in relation to a set of stakeholders’ requirements (Rashid, 2003; Moreira,<br />

2005a). Weighting allows them to describe the extent to which an aspect may constrain a base module.<br />

The scales used are based on ideas from fuzzy logic. Again, concerns contributing negatively to each<br />

other and with the same weight with respect to a given base module require explicit, but informal,<br />

negotiation among stakeholders. The main limitations of these approaches are:<br />

• Each concern must be allocated one single different importance using intuition.<br />

• Conflict handling is based on one criterion, the importance, not considering other parameters<br />

that may have an impact on the decision.<br />

• Different stakeholders may have different interests on the same concern, and the relative<br />

importance/power of each one might be different (so their relative position might have to be<br />

taken into account).<br />

• Trade-offs must be negotiated informally with the stakeholders without any rigorous and<br />

systematic analysis technique or tool.<br />

133


It was with these limitations in mind that we started exploring rigorous alternatives that could be used<br />

effectively without having to rely so strongly on a single criterion (importance), taking into<br />

consideration other possible useful information collected during the application of the methods.<br />

6.6 Summary<br />

It is worth pointing out that conflict management is a real problem, regardless of whether or not one<br />

uses AOSD to handle it. The difference is that in traditional software development methods, such as<br />

object-oriented methods, the base module would need to include security and response time<br />

behaviours, while in AOSD, both security and response time behaviours are modularized and each one<br />

implemented as a separate aspect.<br />

A rigorous technique to support conflict management at the aspect-oriented requirements engineering<br />

level has been presented. The technique uses a particular multi-criteria analysis method, the AHP, to<br />

find, given a set of alternatives and a set of decision criteria, the best alternative for a given problem.<br />

Such a technique is not only useful in the context we have described here, but it looks very promising<br />

as a tool to support architectural choices during the software architecture design.<br />

We also compared the AHP with a classical weighted average method and the results proved that<br />

selecting the appropriate MCDM is always a question of trade-offs between advantages of each<br />

method. In this work we noticed that AHP ensures more psychological robustness in classifying the<br />

concerns, logical consistency and better interpretability at the expense of longer time to formulate and<br />

calculate the results.<br />

We plan to explore the use of the AORA template responsibilities given that most of the existing<br />

aspect-oriented requirements engineering approaches use a similar concept. Finally, we also need to<br />

study how the level of granularity and dependency of/between concerns can influence the decision<br />

process.<br />

134


135<br />

<strong>Chapter</strong> 7<br />

Evaluation of the AORA<br />

Approach<br />

This chapter evaluates the AORA approach in two different dimensions: quantitative and qualitative.<br />

The quantitative evaluation is performed by applying a set of metrics to several aspect-oriented<br />

requirements specifications obtained from several different AORE approaches, including AORA. The<br />

results obtained for the chosen approaches are then compared. The requirements specifications that<br />

serve as input for this study were obtained in the context of the Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software<br />

Development project (TAO), whose main goal was to define an infrastructure to test aspect-oriented<br />

development techniques, from requirements to implementation (TAO Project, 2007). As part of the<br />

project, various AORE approaches were applied to the same case study.<br />

The qualitative evaluation is achieved by selecting a set of criteria to compare the AORE approaches<br />

used in the quantitative evaluation. Furthermore, the evaluation is also performed by applying the<br />

AORA approach to two real case studies: the space domain ground segment software in the context of<br />

the <strong>Aspect</strong> Specification for the Space Domain (ASSD) project funded by the European Space Agency<br />

and the Flight Plan Tower Interface system in the context of the Software Development with <strong>Aspect</strong>s<br />

(SOFTAS) project funded by the Fundação da Ciência e Tecnologia (FCT) (Agostinho, 2006;<br />

SOFTAS, 2007).<br />

This chapter consists of five sections. The first section presents the TAO project. Section two presents<br />

a quantitative evaluation of AORE approaches used in the TAO project. Section three presents a


qualitative analysis of the same AORE approaches, based on a set of specific criteria. The approach<br />

with its process and concepts is assessed by several developers, and used to develop projects in a real<br />

setting. This information is shown in Section four and presents the maturity level of the approach.<br />

Finally, Section five concludes the chapter.<br />

7.1 A Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Project<br />

The TAO 9 project, a Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development, is a collaborative research<br />

project among several researchers around the world that was set up at Lancaster University for the<br />

assessment of AOSD (TAO Project, 2007). The main goal of this project is to assess and compare<br />

AOSD techniques in terms of modularity, maintainability and reusability. The specific aims are (TAO<br />

Project, 2007):<br />

• “To design the testbed to identify assessment issues to be explored in the software<br />

development phases, such as requirements engineering, architecture design, implementation,<br />

and quality assurance.<br />

• To perform an end-to-end realisation of a major case study, to form part of the testbed suite of<br />

studies.<br />

• To exploit the case study to identify candidate points of integration between AOSD<br />

techniques.<br />

• To evaluate the testbed using AOSD techniques developed at Lancaster and gathering of<br />

empirical data based on the end-to-end case study. “<br />

This chapter uses the resulting artefacts provided by the application of aspect-oriented requirements<br />

approaches in the TAO context, to the same case study, the Health Watcher system (Soares, 2006).<br />

The Health Watcher is a real-life web based system aimed at improving the quality of health care<br />

services that manages health-related complaints. The system allows members of the public to register<br />

complaints against restaurants or pets. These complaints can then be investigated by health care<br />

personnel and appropriate action taken. The complaints are registered via a web-based front-end and<br />

Remote Method Invocation is then used to allow the web-server to interact with the application server.<br />

9 http://www.comp.lancs.ac.uk/research/projects/project.php?pid=215<br />

136


An initial use-case document was created and offered as part of the specification of the Health<br />

Watcher system behaviour. This document also identified some useful non-functional requirements.<br />

The AORE approaches that have been involved in the study, through their authors, were AOV-Graph<br />

(Fernandes, 2005), MultiDimensional Separation of Concern 10 (Moreira, 2005a), Viewpoint-based<br />

AORE with EA-Miner 11 (Rashid, 2003; Sampaio, 2005) and our own approach, AORA (Brito, 2006a;<br />

2006b). The resulting artefacts provided by the application of these AORE approaches were shared<br />

among all the authors. This is, therefore, the source that we used to compare AORA with other AORE<br />

approaches and to quantitatively measure the quality of the artefacts obtained. Appendix B shows the<br />

Health Watcher document specification produced by AORA tool.<br />

7.2 A quantitative analysis of AORE<br />

This section presents a quantitative evaluation of AORE approaches in the TAO project. The metrics<br />

used were originally proposed to RE for Object-<strong>Oriented</strong> approaches and then were adapted to AOSD.<br />

The results are analysed to verify if the following software quality attributes are achieved successfully:<br />

separation of concerns, coupling, cohesion and size. These attributes are the base for the definition of<br />

metrics.<br />

Metrics are used in Software Engineering to quantify software artefacts (the product), characteristics<br />

of the software development (the process) and characteristics of resource project (personal skills)<br />

(Ebert, 2005). Traditional RE metrics are used to quantify the product, such as the size of<br />

requirements, requirements completeness and requirements volatility (Costello, 1995). Since AORE<br />

introduces new abstractions to the software development process, for example new composition<br />

techniques and new concepts to the product, such as, crosscutting relationships, some of the existing<br />

RE metrics cannot be applied directly. Therefore, these metrics had to be extended for AORE and new<br />

ones had to be created (Mehner, 2006).<br />

A few AOSD metrics have been proposed, such as (Sant’Anna, 2003; Garcia, 2005; Mussbacher,<br />

2007). Table 7.1 presents a brief definition of AOSD metrics taken from Garcia et al., and associates<br />

them with the software quality attributes (Garcia, 2005). Coupling Between Components (CBC) and<br />

Depth Inheritance Tree (DIT) metrics for coupling, Lack of Cohesion in Operations (LCOO) for<br />

cohesion and Lines of Code (LOC), Number of Attributes (NOA) and Weighted Operations per<br />

10 From now on this approach is referred simply as “Multi-Dimensional CORE”<br />

11 From now on this approach is referred simply as “EA-Miner” for simplification<br />

137


Component (WOC) for size are extensions of Object-<strong>Oriented</strong> metrics to support aspects. Concern<br />

Diffusion over Components (CDC), Concern Diffusion over Operations (CDO) and Concern<br />

Diffusions over LOC (CDLOC) metrics are defined to allow assessment of separation of concerns that<br />

is an objective of AOSD.<br />

Table 7.1 A set of AOSD metrics, taken from (Garcia, 2005)<br />

Attributes Metrics Definition<br />

Separation<br />

of<br />

Concerns<br />

(SoC)<br />

Concern Diffusion over<br />

Components (CDC)<br />

Concern Diffusion over<br />

Operations (CDO)<br />

Concern Diffusions over<br />

LOC (CDLOC)<br />

Counts the number of classes and aspects whose main purpose is to<br />

contribute to the implementation of a concern and the number of<br />

other classes and aspects that access them.<br />

Counts the number of methods and advices whose main purpose is<br />

to contribute to the implementation of a concern and the number of<br />

other methods and advices that access them.<br />

Counts the number of transition points for each concern through the<br />

lines of code. Transition points are points in the code where there is<br />

a “concern switch”.<br />

Counts the number of other classes and aspects to which a class or<br />

an aspect is coupled.<br />

Counts how far down in the inheritance hierarchy a class or aspect<br />

Coupling Coupling Between<br />

Components (CBC)<br />

Depth Inheritance Tree<br />

(DIT)<br />

is declared.<br />

Cohesion Lack of Cohesion in Measures the lack of cohesion of a class or an aspect in terms of the<br />

Operations (LCOO) amount of method and advice pairs that do not access the same<br />

instance variable.<br />

Size Lines of Code (LOC) Counts the lines of code.<br />

Number of Attributes<br />

(NOA)<br />

Counts the number of attributes of each class or aspect.<br />

Weighted Operations per Counts the number of methods and advices of each class or aspect<br />

Component (WOC) and the number of its parameters.<br />

These AOSD metrics are used as a base for the AORE metrics definition. The AOSD metrics inspire<br />

the new AORE metrics because:<br />

• They have already been used in different studies, for example in (Garcia, 2004).<br />

• They are refinements of classical and object-oriented metrics.<br />

• They encompass new metrics for measuring separation of concerns to be applied to AO<br />

paradigm.<br />

However, these metrics are much related to specific artefacts, for example classes, which cannot assess<br />

accurately the AORE artefacts of the different approaches. So, the evaluation of the AORE approaches<br />

in TAO project is carried out based on the metrics described in Table 7.2 that are a generalization of<br />

AOSD metrics described in (Garcia, 2005; Mussbacher, 2007).<br />

138


Table 7.2 A set of AORE metrics<br />

Attributes Metrics Definition<br />

SoC Concern Diffusion over Counts the number of artefacts (main decomposition structures)<br />

Artefacts (CDA) whose main purpose is to contribute to the specification of a<br />

concern.<br />

Concern Diffusion over Counts the number of methods and operations whose main purpose<br />

Operations (CDO) is to contribute to the specification of a concern.<br />

Concern Diffusions over Counts the number of transition points for concern through the<br />

LOC (CDLOC)<br />

specification. Transition points are points in the specification where<br />

there is a “concern switch”, i.e., when a concern switches to any<br />

other concern.<br />

Coupling Coupling Between<br />

Artefacts (CBA)<br />

Counts the number of other artefacts to which a concern is coupled.<br />

Cohesion Lack of Cohesion in Counts the number of methods and operations of an artefact that do<br />

Operations (LCOO) not contribute to the concern.<br />

Size Artefacts (Artefacts) Counts the number of artefacts.<br />

Vocabulary Size (VS) Counts the number of elements used to specify primary artefacts.<br />

Weighted Operations per Calculates the average number of methods and operations of each<br />

Artefact (WOA) artefact.<br />

These AORE metrics evaluate requirements artefacts instead of classes and aspects like in AOSD<br />

metrics. Moreover, Number Of Attributes and Line Of Code AOSD metrics are replaced by<br />

Vocabulary Size and Artefacts metrics because the first ones (Number Of Attributes and Line Of<br />

Code) are related to design and implementation phase and it was necessary to transform these metrics<br />

to be applied to the requirements phase. Depth Inheritance Tree metric is removed for the same reason.<br />

7.2.1 Applying AORE metrics to the TAO requirements documents<br />

As stated in Section 7.1, the EA-Miner, AORA, AOV-Graph and Multi-Dimensional CORE<br />

approaches were applied to a requirements document that contains the information of functional and<br />

non-functional requirements of the Health Watcher medium-sized software system. Considering each<br />

functional and non-functional requirement of the Health Watcher requirements document as a concern,<br />

the list of concerns are: “query information”, “complaint specification”, “login”, “register table”,<br />

“update complaint”, “register new employee”, “update employee”, “update health unit”, “change<br />

logged employee”, “usability”, “availability”, “performance”, “security”, “standards”, “hardware and<br />

software”, “distribution”, “storage medium” and “user interface”.<br />

Since the AORE approaches used in TAO deal with different kinds of elements and structures, the<br />

metrics are adapted by mapping some of the metrics notions into the elements of each AORE approach<br />

as described in Table 7.3.<br />

139


Table 7.3 Mapping of AORE metrics notions into AORE approaches elements<br />

Metrics notions<br />

AORE approaches<br />

EA-Miner<br />

Multi-Dimensional CORE<br />

Artefact Method and operation Transition points<br />

Viewpoint and early Requirement Crosscutting<br />

aspect<br />

relationships<br />

Concern Requirement Composition rules<br />

AORA Concern Responsibility Match points<br />

AOV-Graph Goal and softgoal Task Pointcuts in crosscutting<br />

relationships<br />

The notion of “artefact” is mapped into: “concern” in the context of Multi-Dimensional CORE and<br />

AORA; “goal” and “softgoal” in the context of AOV-Graph; and “viewpoint” and “early aspect” in the<br />

context of EA-Miner. These mappings are defined based on the identification of primary artefacts for<br />

each approach.<br />

The notions of “method” and “operation” are mapped into: “responsibility” in the context of AORA;<br />

“task” in the context of AOV-Graph; and “requirement” in the context of Multi-Dimensional CORE<br />

and EA-Miner. These mappings are defined based on the identification of elements that contribute to<br />

the specification of the primary artefact for each approach.<br />

The notion of “transition points” or points in the specification where there is a concern switch to any<br />

other concern (concern switch) is mapped into: “match points” in the AORA context; “composition<br />

rules” in the context of Multi-Dimensional CORE; pointcuts in crosscutting relationships for AOV-<br />

Graph and “crosscutting relationships” in the context of EA-Miner. These mappings are defined based<br />

on the identification of “places” where a “concern switch” occurs.<br />

Table 7.4 shows the results of the application of the metrics (listed in Table 7.2), considering the<br />

mappings shown in Table 7.3 and the TAO AORE approaches requirements documents.<br />

Analysing the results in Table 7.4 and considering the artefacts mapping in Table 7.3, the Concern<br />

Diffusion over Artefacts row shows the highest number of artefacts whose main purpose is to<br />

contribute to the specification of a concern.<br />

140


Table 7.4 The metrics results for AORE approaches<br />

Attributes Metrics AORA EA-Miner Multi- AOV-<br />

Dimensional<br />

CORE<br />

Graph<br />

SoC Concern Diffusion over Artefacts<br />

(CDA)<br />

1 3 1 2<br />

Concern Diffusion over Operations<br />

(CDO)<br />

7 23 11 12<br />

Concern Diffusions over LOC<br />

(CDLOC)<br />

9 11 14 10<br />

Coupling Coupling Between Artefacts (CBA) 6 3 10 3<br />

Cohesion Lack of Cohesion in Operations<br />

(LCOO)<br />

0 23 0 24<br />

Size Artefacts (Artefacts) 22 15 18 22<br />

Vocabulary Size (VS)<br />

Weighted Operations per Artefact<br />

9 3 2 6<br />

(WOA)<br />

Average: 3 Average: 6 Average:4.4 Average:8.3<br />

The value for AORA and Multi-Dimensional CORE is one and they have the lowest value of Concern<br />

Diffusion over Artefacts when compared with the other two approaches, as their primary artefacts are<br />

concerns (see Figure 7.1).<br />

3<br />

2,5<br />

2<br />

1,5<br />

1<br />

0,5<br />

0<br />

1<br />

Concern Diffusion over Artefacts<br />

3<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

AOV-Graph<br />

Figure 7.1 Number of Concern Diffusion over Artefacts per approach<br />

The value for AOV-Graph is two since “Make [information on health service] available” and<br />

“Authentication” goals contribute to the specification of “login” concern. In the case of EA-Miner, the<br />

Concern Diffusion over Artefacts value is three since “Complaint”, “SSVS” and “Citizen” viewpoints<br />

contribute to the specification of “complaint specification” concern as is illustrated by the underlined<br />

text extracted from EA-Miner requirements document:<br />

141<br />

1<br />

2


Viewpoint: Citizen<br />

<strong>Requirements</strong>:<br />

..<br />

2. A citizen can interact with the system to query information and to<br />

specify<br />

(register) a complaint.<br />

…<br />

Viewpoint: Sanitary Surveillance (SSVS) System<br />

<strong>Requirements</strong>:<br />

…<br />

1.2. Subsequently, when the SSVS has the Complaint Control module deployed,<br />

Sanitary Surveillance complaints will be exchanged between the two systems.<br />

…<br />

Viewpoint: Complaint<br />

<strong>Requirements</strong>:<br />

…<br />

3. Citizens can register a complaint while employees can register and update<br />

them.<br />

…<br />

The Concern Diffusion over Operations row in Table 7.4 presents the highest number of operations<br />

and methods whose main purpose is to contribute to the specification of a concern. Figure 7.2 shows<br />

that AORA has the lowest value of Concern Diffusion over Operations (seven) when compared with<br />

the other three approaches.<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

7<br />

Concern Diffusion over Operations<br />

23<br />

11<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

142<br />

12<br />

AOV-Graph<br />

Figure 7.2 Number of Concern Diffusion over Operations per approach<br />

This value is given by “query information” concern’s responsibilities, taken from AORA requirements<br />

document:


1. The system receives the type of query<br />

2.1 In the case of a query on specialties grouped by health units, the citizen<br />

selects the unit to be queried.<br />

2.2 In the case of a query on health units grouped by specialties, the citizen<br />

selects the specialty to be queried.<br />

2.3 In the case of a query on complaints, the citizen provides the complaint<br />

code.<br />

2.4 In the case of a query on diseases, the citizen selects the disease to be<br />

queried.<br />

2.5 The system receives the data for the query<br />

3. The system shows the query result.<br />

The value of Concern Diffusion over Operations for AOV-Graph is given by the number of tasks in<br />

“Manage [complaints] and [notifications]” goal that contribute to the “complaint specification”<br />

concern specification, i.e., twelve. The Multi-Dimensional CORE value of Concern Diffusion over<br />

Operations is eleven since “RegisterComplaint” concern requirements have the highest number of<br />

methods that contribute to the “complaint specification” concern. EA-Miner has the highest value of<br />

Concern Diffusion over Operations (twenty three), given by “SSVS”, “Complaint”, “Persistence” and<br />

“Citizen” viewpoints requirements that contribute to “complaint specification” concern. Notice that<br />

this value is very high when compared with the AORA, AOV-graph and Multi-Dimensional CORE<br />

Concern Diffusion over Operations values (seven, twelve and eleven respectively), because the<br />

“complaint specification” concern is spread over the requirements of four viewpoints.<br />

The Concern Diffusion over LOC row presents the number of transition points where there is a<br />

“concern switch”. The Concern Diffusion over LOC value for EA-Miner is eleven since this is the<br />

number of crosscutting relationships as illustrates in Table 2.1 of Section 2.3 of EA-Miner<br />

requirements document. In the case of Multi-Dimensional CORE, the Concern Diffusion over LOC<br />

value is fourteen and is the number of composition rules. In the case of AORA the Concern Diffusion<br />

over LOC value is nine since this is the number of match points. The AOV-Graph Concern Diffusion<br />

over LOC value is ten since crosscutting relationships have ten pointcuts where a concern switches. As<br />

shown in Figure 7.3, AORA has the lowest value of Concern Diffusion over LOC (nine) when<br />

compared with the other three approaches.<br />

143


14<br />

12<br />

10<br />

8<br />

6<br />

4<br />

2<br />

0<br />

9<br />

Concern Diffusion over LOC<br />

11<br />

14<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

144<br />

10<br />

AOV-Graph<br />

Figure 7.3 Number of Concern Diffusion over LOC per approach<br />

The Coupling Between Artefacts row presents the highest number of artefacts to which a concern is<br />

coupled. The Coupling Between Artefacts value for EA-Miner is three since it is the number of<br />

viewpoints (Employee, Citizen and SSVS) that are coupled to the “security” concern, as illustrates in<br />

Table 2.1 of Section 2.3 of EA-Miner requirements document. In the case of AOV-Graph, the<br />

Coupling Between Artefacts metric is three since it is the number of goals (Persistence, Availability<br />

and Authentications) that “error handling” concern is coupled. The EA-Miner and AOV-Graph<br />

approaches have the lowest Coupling Between Artefacts values when compared with the other two<br />

approaches since they have a lowest number of artefacts to which a concern is coupled, i.e., four<br />

viewpoints to EA-Miner and twelve goals to AOV-Graph, while AORA has 22 concerns and Multi-<br />

Dimensional CORE has eighteen concerns. In the case of AORA, Coupling Between Artefacts value is<br />

six since the “integrity” concern is coupled to six other concerns (RegisterTables, UpdateComplaint,<br />

RegisternewEmployee, UpdateEmployee, UpdateHealthUnit and ChangeLogged). The Coupling<br />

Between Artefacts value for Multi-Dimensional CORE is ten since “storage medium” concern is<br />

coupled to ten other concerns (Availability, Performance, Security, QueryInformation, RegisterTables,<br />

UpdateComplaint, RegisterNewEmployee, UpdateEmployee, UpdateHealthUnit, RegisterComplaint).<br />

This value for Multi-Dimensional CORE approach has the highest number of coupled concerns for a<br />

specific concern, when compared with the other three approaches (see Figure 7.4) due the<br />

multidimensional characteristic of the approach, i.e., the number of other concerns to which a concern<br />

is coupled could be all the concerns minus one (itself).


10<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

6<br />

Coupling Between Artefacts<br />

3<br />

145<br />

10<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

3<br />

AOV-Graph<br />

Figure 7.4 Number of Coupling Between Artefacts per approach<br />

The Lack of Cohesion in Operations row shows the highest number of operations in an artefact that<br />

does not contribute to the concern. According to the mappings notions, in the case of EA-Miner the<br />

value is 23 since employee viewpoint’s requirements has 23 requirements that do not contribute to the<br />

“login” concern. AOV-Graph Lack of Cohesion in Operations value is 24 since “Make [information<br />

on health service] available” goal has 24 tasks that do not contribute to “storage medium” concern.<br />

These two approaches lack cohesion because their primary artefact aggregated more than one concern,<br />

so some of the operations in an artefact do not contribute to a concern specification. The other two<br />

approaches, AORA and Multi-Dimensional CORE, have zero value for this metric (see Figure 7.5).<br />

This situation occurs because the primary artefact of these two approaches is a concern.


25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

0<br />

Lack of Cohesion in Operations<br />

23<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

0<br />

146<br />

24<br />

AOV-Graph<br />

Figure 7.5 Number of Lack of Cohesion in Operations per approach<br />

Artefacts row shows the number of artefacts. The value of this metric for EA-Miner is fifteen. This is<br />

the lowest number of artefacts, as shown in Figure 7.6, because some concerns are encapsulated in a<br />

viewpoint.<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

22<br />

15<br />

Artefacts<br />

18<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

22<br />

AOV-Graph<br />

Figure 7.6 Number of Artefacts per approach<br />

The value of Artefacts metric for AORA is 22 since it is the number of concerns, as shown in Figure<br />

7.6. This value is highest when compared with the values of Multi-Dimensional CORE (eighteen) and<br />

EA-Miner (fifteen) because AORA approach uses the NFR Framework to decompose concerns. For


example, Performance is decomposed of Throughput and Response Time concerns. In the case of<br />

AOV-Graph, the Artefacts value is 22.<br />

Vocabulary Size row value is nine for AORA and these elements are: name, description, concerns<br />

contributions, required by and decompositions relationships, classification, sources, responsibilities,<br />

stakeholders’ priorities. As shown in Figure 7.7, AORA has the highest value of Vocabulary Size<br />

(nine) when compared with the other three approaches.<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

9<br />

Vocabulary Size<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

3<br />

147<br />

2<br />

6<br />

AOV-Graph<br />

Figure 7.7 Number of Vocabulary Size per approach<br />

The value for Multi-Dimensional CORE is two and these elements are the concerns’ name and<br />

requirements. The value for EA-Miner is three and these elements are the viewpoints’ name,<br />

viewpoint’s requirements and early aspects elements. The Vocabulary Size value for AOV-Graph is<br />

six and these elements are: softgoal, goal, task, contribution links, correlations links and crosscutting<br />

relationships.<br />

The Weighted Operations per Artefact row shows the highest number of the average of operations of<br />

each artefact. The Weighted Operations per Artefact average value for AORA is three; this is the<br />

lowest average (see Figure 7.8) when compared with the other three approaches because the operations<br />

are placed based on artefacts that are concerns.


9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

3<br />

Weighted Operations per Artefact<br />

6<br />

4,4<br />

AORA EA-Miner Multi-<br />

Dimensional<br />

CORE<br />

148<br />

8,3<br />

AOV-Graph<br />

Figure 7.8 Number of Weighted Operations per Artefact per approach<br />

In the case of Multi-Dimensional CORE, the Weighted Operations per Artefact average value is 4,4<br />

and for EA-Miner is six. AOV-Graph has the highest average 8,3 when compared with the other three<br />

approaches. This situation occurs since the primary artefact, for example goals, aggregate a high<br />

number of tasks.<br />

7.2.2 Conclusions<br />

EA-Miner, Multi-Dimensional CORE, AOV-Graph and AORA were applied to the Health Watcher<br />

medium-sized requirements system specification document in the context of TAO project to produce<br />

an AORE document specification for each approach. These documents were used to apply the AORE<br />

metrics to evaluate if they are reusable, complete, traceable and maintainable AORE solutions.<br />

Since AORE introduces new abstractions to the software development process, some of the existing<br />

RE metrics had to be extended for AORE and new ones had to be created. Based on the metrics<br />

results, AORA achieves separation of concerns better than the other three AORE approaches since it<br />

has the lowest values for Concern Diffusion over Artefacts, Concern Diffusion over Operations and<br />

Concern Diffusion over LOC metrics. Therefore, these results suggest that AORA decreases the<br />

scattering problem and improves modularization.


Coupling Between Artefacts shows a slight advantage for AOV-Graph and EA-Miner approaches<br />

since they have the lowest value. These values mean that the resulting document specification of these<br />

approaches is easier to maintain and reuse than the other two (Multi-Dimensional CORE and AORA).<br />

The Lack of Cohesion in Operations metric row presents better values for AORA and Multi-<br />

Dimensional CORE than EA-Miner and AOV-Graph. So, AORA and Multi-Dimensional CORE may<br />

be simpler to maintain.<br />

The Artefacts and Vocabulary Size metrics for the size attribute show a disadvantage in the use of<br />

AORA approach since the values are highest than the values of the other three approaches, 22 and 9,<br />

respectively. However, these values claim that the AORA requirements document is more complete<br />

than the others improving qualities like maintainability and traceability.<br />

The Weighted Operations per Artefact metric presents better results (lowest average) for AORA<br />

approach when compared with the other approaches avoiding tangled specifications that improve<br />

reusability and maintainability qualities. The Weighted Operations per Artefact AOV-Graph value is<br />

highest since the artefacts of this approach aggregate an elevated number of operations.<br />

According with the information above, AORA is the best approach because it improves separation of<br />

concerns, modularization and understandability, and consequently to promote maintainability. Also,<br />

the AORA is the most complete approach considering the number of information in the AORA<br />

requirements documentation. These characteristics promote traceability and improve<br />

understandability.<br />

7.3 A qualitative analysis of AORE<br />

Based on the specific criteria for assessing requirements engineering approaches proposed in<br />

Chitchyan et al., such as, homogeneity of requirements treatment, trade-off resolution and decision<br />

support, verification and validation, identification and handling functional and non-functional<br />

crosscutting requirements, mapping requirements to later stages, the following criteria for assessing<br />

the aspect-oriented requirements engineering approaches are used (Chitchyan, 2005):<br />

• Traceability. This criterion relates to the existence of facilities to trace aspectual requirements<br />

to their source of origin and to map requirements to architectural design artefacts, i.e.,<br />

horizontal backward traceability, vertical traceability and horizontal forward traceability,<br />

149


espectively (see <strong>Chapter</strong> 2). Being able to trace artefacts along the software lifecycle is one of<br />

the crucial qualities required for software evolution, understandability and maintainability.<br />

• Modularization of crosscutting requirements. The ability to modularize crosscutting<br />

requirements is related to define requirements artefacts that represent all types of crosscutting<br />

requirements (functional and non-functional). This criterion is important to support<br />

understandability and management of requirements change.<br />

• Identification of crosscutting requirements. This criterion is related to the existence of<br />

effective means to identify crosscutting requirements (be they functional or non-functional) in<br />

requirements documents descriptions or/and any other means to identify the stakeholders<br />

needs. This criterion guarantees completeness of the requirements documents and is the base<br />

for the other activities of the requirements engineering process.<br />

• Composition of crosscutting requirements. The ability to compose crosscutting and non-<br />

crosscutting requirements and, consequently, to analyse their interrelationships and, if needed,<br />

to obtain a more complete view of the requirements artefacts. This criterion is also desirable to<br />

support the identification of conflicts very early in the development, even before the<br />

architecture design is derived.<br />

• Conflict management. Conflicts can arise because different stakeholders have incompatible<br />

needs or because certain concerns impact negatively on others. Conflict identification is<br />

important at this level of abstraction so that agreements between stakeholders are negotiated.<br />

Such agreements cover the balancing of conflicting interests between stakeholders, deciding<br />

on their relative importance before any solution decision is made. Therefore, this requires<br />

trade-off decisions to be recorded and communicated to the other system developers.<br />

• Tool support. This criterion is related to the existence of a tool to support the automation of<br />

the aspect-oriented requirements process. This is desirable to manage large amounts of<br />

requirements information produced by the approach.<br />

• Validation. This criterion is concerned with showing that the identified and specified<br />

requirements actually define what the stakeholder wants. This activity can be accomplished by<br />

checking whether the requirements in the document do not diverge (consistency) and whether<br />

the documents include all requirements planned by the stakeholders (completeness).<br />

• Mapping crosscutting requirements to later development stages. Most current RE<br />

approaches recognise that not all identified requirements will progress into formal<br />

150


architectural or design artefacts: some will map onto decisions, trade-offs, or similar (Rashid,<br />

2003). This criterion indicates that an AORE approach provides support for decisions on<br />

mapping (especially for crosscutting concerns) that facilitate informed solution choices.<br />

• Maturity. AORE approaches are very recent and are still being validated to demonstrate that<br />

they can be successfully applied to real case studies. This criterion indicates if an AORE<br />

approach was used to develop projects in a real setting, i.e., indicates the maturity level.<br />

The AORE approaches chosen in the TAO project are used now for a comparison based on each<br />

criterion described above.<br />

7.3.1 Traceability<br />

Backward traceability of crosscutting requirements is not supported by all the approaches. In fact, as<br />

shown in Table 7.5, two of the AORE approaches do not support traceability of requirements back to<br />

their sources of origin, Multi-Dimensional CORE and AOV-Graph. EA-Miner uses the information<br />

given by the viewpoints. AORA differs from the others approaches by providing a concern template to<br />

record all the valuable information found, such as the source of the requirements, stakeholder<br />

information, information obtained from stakeholders regarding importance of the requirements, etc.<br />

EA-Miner and AORA use their tool to record the change to their sources of origin.<br />

Table 7.5 A summary of approaches that support backward traceability<br />

Approach Traceability from requirements back to their sources of origin<br />

EA-Miner Source row of the view points template<br />

Multi-Dimensional<br />

CORE<br />

Not considered<br />

AOV-Graph Not considered<br />

AORA Source and stakeholder row of the concern template<br />

Forward traceability of crosscutting requirements is not supported by all the approaches. In fact, as<br />

shown in Table 7.6, two of the AORE approaches do not support traceability from requirements to<br />

artefacts along the software development, Multi-Dimensional CORE and EA-Miner.<br />

Table 7.6 A summary of approaches that support forward traceability<br />

Approach Traceability from requirements to architecture or design artefacts<br />

EA-Miner Not considered<br />

Multi-Dimensional<br />

CORE<br />

Not considered<br />

AOV-Graph Rules to transform AOV-graph information into scenarios, object-oriented<br />

models and entity-relationship diagrams<br />

AORA Guidelines to UML artefacts<br />

151


AORA and AOV-Graph approaches support traceability to UML artefacts. These approaches use<br />

UML because it is a well-known standard.<br />

Vertical traceability of crosscutting requirements is supported by all the approaches. Support for this<br />

dimension of traceability is summarized in Table 7.7.<br />

Table 7.7 A summary of approaches that support vertical traceability<br />

Approach Traceability within requirements<br />

EA-Miner Crosscutting relationships<br />

Multi-Dimensional Concern relationships<br />

CORE<br />

AOV-Graph Crosscutting and contributions relationships<br />

AORA Required by relationships<br />

EA-Miner approach support vertical traceability using “crosscutting relationships”. AOV-Graph<br />

approach support vertical traceability using “crosscutting and contributions relationships”. AORA<br />

approach supports this type of traceability using “required by” relationship and Multidimensional<br />

CORE using “concern relationship”. Concern and required by relationships represent all kind of<br />

relationships between the artefacts of Multidimensional CORE and AORA, respectively. In opposite,<br />

the crosscutting relationship only represents one type of relationship between approaches’ artefacts,<br />

i.e., the crosscutting relationship.<br />

7.3.2 Modularization of crosscutting requirements<br />

Modularization of crosscutting requirements is supported by most of the approaches. In fact, each<br />

approach uses different concepts, such as goals, softgoals, early aspects and concerns. Table 7.8<br />

summarizes how the AORE approaches under study support modularization.<br />

Table 7.8 A summary of approaches that support modularization of crosscutting requirements<br />

Approach Modularization of crosscutting requirement into artefacts<br />

EA-miner Crosscutting concerns are represented as early aspects<br />

Multi-Dimensional<br />

CORE<br />

No distinction between crosscutting and non-crosscutting, due to its<br />

multidimensionality. The general term used is “concern”<br />

AOV-Graph Crosscutting concerns are not represented. Goals, softgoals and tasks can have<br />

crosscutting relationships<br />

AORA Crosscutting concerns are represented as concerns’ templates, and so are the<br />

non-crosscutting ones<br />

AOV-Graph does not explicitly support the modularization of crosscutting concerns. Modularize<br />

crosscutting concerns is not the AOV-Graph focus because they naturally appear during modelling.<br />

The newly created approaches AORA and Multi-Dimensional CORE use new artefacts, such as<br />

152


concern, to modularize crosscutting requirements. Notice that Multi-Dimensional CORE does not<br />

make any distinction between crosscutting and non-crosscutting. The AORA approach uses the same<br />

template to specify crosscutting and non-crosscutting concerns, however, information about the<br />

concerns transversatility can be derived (and the AORA tool offers that functionality). AORA differs<br />

from the others approaches by providing a complete concern template, offering more information that<br />

will be useful to achieve successfully other criteria, such as conflict management, for example the<br />

stakeholder priorities row. Also, since many concerns appear once and again in different applications,<br />

it is important to collect, for each concern, all relevant information we may be able to find at this<br />

stage.<br />

7.3.3 Identification of crosscutting requirements<br />

Identification of crosscutting requirements is supported by most of the approaches. In fact, and as<br />

shown in Table 7.9, only Multi-Dimensional CORE approach does not offer support for identification<br />

of crosscutting concerns, due to its multidimensionality.<br />

Table 7.9 A summary of approaches that support identification of crosscutting requirements<br />

Approach Identification of crosscutting requirements<br />

EA-Miner EA-Miner tool uses NLP techniques for mining relevant concepts. A matrix is<br />

built to mark which early aspect affects which viewpoints. If an early aspect<br />

Multi-Dimensional<br />

CORE<br />

affects several viewpoints in the matrix it is considered a candidate aspect.<br />

Not considered<br />

AOV-Graph Through transversal or crosscutting relationships. If any goal, softgoal or task<br />

affects several elements of the goals models it is considered a crosscutting<br />

requirement<br />

AORA AORA tool analysis information in the concerns’ templates, based mainly on the<br />

“required by” relationship, to identify crosscutting concerns. A crosscutting<br />

concern is required by more than one other concern.<br />

The other approaches identify crosscutting requirements based on a special kind of relationship, i.e.,<br />

crosscutting relationship for EA-Miner, AOV-Graph and required by relationship for AORA. EA-<br />

Miner differs from the other approaches as it uses a NLP technique (Natural Language Processing) to<br />

identify all kinds of artefacts in a requirements document.<br />

7.3.4 Composition of crosscutting requirements<br />

Composition of crosscutting requirements is supported by all the approaches, as Table 7.10 shows.<br />

Generally speaking, all the approaches propose a technique based on the specification of crosscutting<br />

relationships or projections using composition rules with operators.<br />

153


Table 7.10 A summary of approaches that support composition of crosscutting requirements<br />

Approach Composition of crosscutting requirements<br />

EA-Miner Uses composition rules based on operators. A set of composition rules is<br />

defined for each candidate aspect, i.e., the approach only proposes composition<br />

rules that defines how an identified crosscutting concern is composed with<br />

Multi-Dimensional<br />

CORE<br />

viewpoints<br />

Concern projections specify the influence of a given concern on other<br />

concerns. The materialisation of these projections is accomplished by defining<br />

a set of composition rules (compositional intersections help reduce the number<br />

of required compositions), one for each projection<br />

AOV-Graph Crosscutting relationships are specified using pointcuts and operators, advices<br />

and intertype declarations<br />

AORA AORA uses the concept of match point to drive the composition. Compositions<br />

are done in two different granularity levels: treating concerns as black boxes<br />

and treating concerns as white boxes, using description elements of the<br />

concerns. Composition rules are based on operators<br />

AORA differs from the other approaches by offering a set of high-level composition operators that are<br />

easy to understand and that give the order of satisfaction between concerns.<br />

7.3.5 Conflict management<br />

Support for conflict management is mentioned by all the approaches. While EA-miner and Multi-<br />

Dimensional CORE support conflict identification and simple resolution, AOV-Graph only supports<br />

conflict identification. AORA supports conflict identification and resolution using contribution<br />

relationships and multi-criteria analysis, respectively, based on the information given in the concern<br />

template. All this information and analysis is important to obtain a more accurate conflict<br />

management. Table 7.11 presents a summary.<br />

Table 7.11 A summary of approaches that support conflict management<br />

Approach Conflict management<br />

EA-Miner Detects conflicting situations emerging during composition based on negative<br />

contributions. Then weight attribution based on fuzzy intervals is used to<br />

Multi-Dimensional<br />

CORE<br />

prioritise the conflicting requirements based on stakeholders’ negotiations.<br />

Detects conflicting situations emerging during composition, using contribution<br />

tables, weights assignment, stakeholders negotiations and folded tables to study<br />

composition intersection<br />

AOV-Graph Identifies conflicts based on correlation relationships. Resolution is not<br />

considered<br />

AORA Detects conflicting situations emerging during composition and based on<br />

negative contributions. Uses Multi Criteria Decision Making to solve the<br />

conflicts based on pairwise matrices or weighted average and stakeholders’<br />

priorities<br />

154


7.3.6 Tool support<br />

Tool support is needed to record and manage the approaches’ information. Because some approaches<br />

are extensions of other existing approaches, they do not provide their own tool, for example, AOV-<br />

Graph. This is not the case for Multi-Dimensional CORE that has no tool support. Table 7.12 shows a<br />

summary of the AORE approaches with tool support.<br />

Table 7.12 A summary of approaches that have tool support<br />

Approach Crosscutting requirements management using a tool<br />

EA-Miner EA-Miner tool supports the identification, specification and composition of<br />

viewpoints and early aspects using XML. Identifies conflicting situations<br />

Multi-Dimensional<br />

CORE<br />

emerging during composition<br />

Not considered.<br />

AOV-Graph Not considered. Although, there are a set of XSLTs to generate views. These are<br />

not integrated and the transformation rules need to be improved<br />

AORA AORA tool supports the specification and composition of concerns using XML<br />

Schema. It identifies crosscutting concerns and conflicting situations emerging<br />

during composition. Allows concerns reuse based on a concern repository and<br />

records concerns’ changes<br />

The tools provide mechanisms to specify and compose crosscutting requirements, but only EA-Miner<br />

provides mechanisms to identify all kinds of requirements using text mining. Only two, AORA and<br />

EA-Miner, provide mechanism to identify conflicts and use other tools to solve them. AORA tool<br />

provides functionalities to manage changes; for example, it records all the concern specification<br />

changes during time. It also provides simple concern graphics. Traceability support is a feature lacking<br />

in all the tools.<br />

7.3.7 Validation<br />

Validation is not supported by any of the studied approaches, as shown in Table 7.13. Therefore, these<br />

approaches need a review process to guarantee requirements consistency and completeness.<br />

Table 7.13 A summary of approaches that support requirements validation<br />

Approach Features that support requirements validation<br />

EA-Miner Not considered<br />

Multi-Dimensional<br />

CORE<br />

Not considered<br />

AOV_Graph Not considered<br />

AORA Not considered<br />

155


7.3.8 Mapping crosscutting requirements to later development stages<br />

Support for mapping is mentioned by all the approaches, as Table 7.14 illustrates. EA-Miner and<br />

Multi-Dimensional CORE propose that a candidate aspect can be mapped to a function, decision or<br />

aspect at the later stages. AOV-Graph proposes that a goal can be mapped into operationalisations.<br />

AORA proposes that a concern can be mapped into different types of models or decisions at the later<br />

stages.<br />

Table 7.14 A summary of how each of the selected approaches supports crosscutting requirements mapping<br />

Approach Crosscutting requirements mapping<br />

EA-Miner The aspect should be mapped to a function, decision or aspect at the later<br />

Multi-Dimensional<br />

CORE<br />

stages<br />

Concerns have an impact on artefacts at later development stages that can be<br />

described in terms of two dimensions: mapping and influence. A concern<br />

might map onto a system feature/function, decision and design aspect. A<br />

concern might influence different points in a development cycle.<br />

AOV-Graph Goal decomposition relationships into operationalizations<br />

AORA The concern should be mapped to UML and SIG models or decision at the<br />

later stages<br />

7.3.9 Maturity<br />

Table 7.15 illustrates if an AORE approach was used to develop projects in a real setting, i.e., its<br />

maturity level. All the approaches were applied at least to one project. However, AORA is the most<br />

applied approach to development projects in a real setting (this is described in more detail in Section<br />

7.4).<br />

Table 7.15 A summary of the projects in which AORE approaches were used<br />

Approach Projects in a real setting<br />

EA-Miner Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development (TAO Project, 2007),<br />

AOSD-Europe, European Network of Excellence (AOSD-European Network<br />

Multi-Dimensional<br />

CORE<br />

of Excellence, 2007)<br />

Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development (TAO Project, 2007)<br />

AOV-Graph Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development (TAO Project, 2007)<br />

AORA Testbed for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development (TAO Project, 2007),<br />

Software Development with <strong>Aspect</strong>s (SOFTAS, 2007) and <strong>Aspect</strong><br />

Specification for the Space Domain (ASSD, 2006)<br />

156


7.3.10 Summary<br />

Table 7.16 summarizes the discussion on qualitative comparison and reveals that existing aspect-<br />

oriented approaches do not effectively address all the proposed criteria.<br />

Table 7.16 Short summary of AORE approaches and the features that their support<br />

(� completely satisfied; � no satisfied; � partially satisfied)<br />

APPROACH<br />

Backward traceability<br />

Forward traceability<br />

Modularization<br />

157<br />

Identification<br />

CRITERIA<br />

EA-Miner ���� ���� ���� ���� ���� ���� ���� ���� ���� ����<br />

MultiDimensional CORE ���� ���� ���� ���� ���� ���� ���� ���� ���� ����<br />

AOV-Graph ���� ���� ���� ���� ���� ���� ���� ���� ���� ����<br />

AORA ���� ���� ���� ���� ���� ���� ���� ���� ���� ����<br />

AORA supports more criteria than Multi-Dimensional CORE and AOV-Graph. This situation occurs<br />

because Multi-Dimensional CORE approach is too young and needs to improve traceability and<br />

validation techniques and develop a tool. It needs to be validated to demonstrate that it can be<br />

successfully applied in real projects. AOV-Graph, on the other hand, being an extension of goal-<br />

oriented approaches, it reuses some well-know features of goal-oriented approaches, such as forward<br />

traceability. It still needs to improve on traceability, conflict management and tool support.<br />

AORA and EA-Miner support almost the same number of criteria with exception the forward<br />

traceability criterion. They emerged at the same time and evolved in parallel during the last few years.<br />

EA-Miner is a viewpoint based approach so it suffers the symptoms of the tyranny of dominant<br />

decomposition (Tarr, 1999). On the other hand, EA-Miner reuses some well-know features of<br />

viewpoints, for example, backward traceability. EA-Miner needs to improve on traceability and<br />

validation. AORA is an approach inspired in some features of different <strong>Requirements</strong> Engineering<br />

approaches, which allows the reuse of activities and artefacts accepted by the <strong>Requirements</strong><br />

Engineering community, such as, requirements catalogues and UML diagrams.<br />

All the evaluated approaches need to be applied to more real case studies to demonstrate that they can<br />

be successfully applied in real, large, industrial projects. AORA was applied to two case studies in the<br />

Composition<br />

Conflicts<br />

Tool<br />

Validation<br />

Mapping<br />

Maturity


context of two real projects. Section 7.4 discusses the experiments. Although, AORA needs to<br />

improve mapping and validation features, it is the most applied approach to development projects in a<br />

real setting.<br />

7.4 AORA Tested in Projects<br />

The AORA approach with its process and concepts should be assessed by several developers, and<br />

ideally used to develop projects in a real setting. The approach has been submitted to the assessment of<br />

several users (one PhD student, four MSc students and three undergraduate students). In spite of their<br />

different background and maturity, they were able to apply the approach to different case studies<br />

(Soeiro, 2007; Vieira, 2007). The AORA approach was also used in Software Development with<br />

<strong>Aspect</strong>s and <strong>Aspect</strong> Specification for the Space Domain projects as is described in the next two<br />

sections.<br />

7.4.1 The role of AORA in the SOFTAS Project<br />

The SOFTAS project 12 (Software Development with <strong>Aspect</strong>s), funded by Fundação para a Ciência e a<br />

Tecnologia, aims at creating a seamless aspect-oriented software development methodology, so that<br />

crosscutting and non-crosscutting concerns can be traced during the lifecycle to produce efficient and<br />

high-quality software applications (SOFTAS, 2007). The research results will be instantiated in<br />

practice with real world examples from industry provided by Navegação Aérea de Portugal and<br />

Soluções Integradas para Sistemas de Informação. In summary, the two main objectives of the project<br />

are:<br />

• To propose a modelling and architecture design framework, which includes methodological<br />

and tool support, for the development of software applications that satisfy the principles of<br />

aspect-orientation.<br />

• To derive quantitative evidence on the improvement of the modularity of produced software<br />

and other quality attributes.<br />

12 http://aosd.di.fct.unl.pt/softas/<br />

158


The main contribution of this project will be a new, innovative aspect-oriented framework for analysis,<br />

architecture design and implementation of software. The proposed framework will include a<br />

quantitative evaluation scheme for AOSD. More specifically the framework will provide:<br />

• A language to model and specify requirements-level concerns and respective compositions.<br />

• A set of mappings to derive an architecture design from the analysis model.<br />

• A mechanism and guidelines to derive an implementation from the architecture design.<br />

• A quantitative evaluation model for the resulting aspect-oriented software.<br />

• A validation of the proposed methodology and tools by means of real case studies.<br />

The goals of this project are accomplished by seven tasks. The <strong>Requirements</strong> Modelling with <strong>Aspect</strong>s<br />

is one of these tasks and the expected results are:<br />

• A model to support the identification of concerns, facilitating the communication between<br />

stakeholders.<br />

• A language to specify concerns and define composition rules that allow the integration of all<br />

concerns.<br />

• A systematic method to handle conflicts that could emerge when two or more crosscutting<br />

concerns affect one another.<br />

The resulting methods and techniques produced by this task will be validated with case studies made<br />

available by the industry partners.<br />

The AORA approach is one of the methods used by <strong>Requirements</strong> Modelling with <strong>Aspect</strong>s. It was<br />

applied to “Flight Plan Tower Interface system” case study provided by Navegação Aérea de Portugal.<br />

The Flight Plan Tower Interface is the system responsible for the air control operators interface with<br />

Flight Data Processing System (FDPS). Flight Data Processing System is the system responsible for<br />

the flight data processing in Lisbon airport towers (Lisbon, Porto, Faro and Funchal Towers) of<br />

Navegação Aérea de Portugal Portugal’s aerodromes. This application implements the user friendly<br />

system being used by the tower operators for managing the following tower related information: local<br />

monitored aerodrome data and flight plan data relative to the arrival, departure and over- flights<br />

involving the aerodrome.<br />

159


A system requirement specification for the Flight Plan Tower Interface was elaborated in collaboration<br />

with two master students (André Marques and Sérgio Agostinho), and was based on the AORA three<br />

main tasks. The following concerns were identified using AORA identification task:<br />

• Retrieval and Visualization: since the Flight Plan system is essentially an interface system the<br />

Retrieval and Visualization are natural concerns.<br />

• Update and Refresh: as the operator needs to edit and update data, the Update and Refresh<br />

concerns are also required.<br />

• Parameter Validation: as the data are essentially parameters, it is important that these are<br />

valid.<br />

• Flight Strip Printing: tower operators involved in the system use paper strips as a fail-safe<br />

mechanism; therefore, there is a need for a Flight Strip Printing concern.<br />

• Logging: as the Flight Strip Printings need to be reprinted under certain circumstances.<br />

• Response Time, Error Handling and Fault-Tolerance: since the system is data-communication<br />

and data-insertion sensitive, Response Time, Error Handling and Fault-Tolerance are required<br />

concerns.<br />

• Portability, Interoperability and Modularity: were also identified as concerns, since, and as<br />

specified in the requirements and meetings hold with Navegação Aérea de Portugal experts,<br />

the Flight Plan system must be Portable, Interoperability and Modular.<br />

• Multi Access: in some situations, multiple operators may happen to be working on the same<br />

set of data. Therefore, the system needs to support multi access.<br />

• Correctness, Safety, Security: although not a critical system, it is an aid system that should<br />

work as specified (Correctness), even with abnormal internal events (Safety) or external<br />

events (Security).<br />

The AORA specification task helps to describe fully, and in detail, each of the identified concerns. The<br />

concern information found is collected in a concern template. Table 7.17 shows an example of such<br />

templates for the “Retrieval” concern. Similar templates were constructed for the remaining concerns.<br />

160


Table 7.17 Retrieval concern template<br />

Name Retrieval<br />

Description The operation of accessing data, either from memory or from a storage device<br />

Classification Functional<br />

FRS<br />

Sources NAV<br />

Retrieve aerodrome data from FDPS.<br />

Retrieve arrival flight data from FDPS.<br />

Retrieve data for the Flight Strip Printing from FDPS.<br />

Retrieve departure flight data from FDPS.<br />

Responsibilities Retrieve overflight data from FDPS.<br />

NAV: Very Important<br />

Stakeholders<br />

Priorities Operator: Very Important<br />

Concerns<br />

Contributions None<br />

Correctness<br />

Required Concerns Security<br />

The results of the AORA composition task are: (i) match points table to identify crosscutting concerns<br />

(ii) match points table to support composition rules, and (iii) contribution table to identify conflict<br />

situations.<br />

Based on the “Required Concerns” row on the concern specification templates, the points where the<br />

composition will take place, i.e. match points, are identified. The AORA tool collects the information<br />

from all the concern templates and it together in a matrix, as depicted in Table 7.18.<br />

Concerns vs.<br />

Concerns Retrieval<br />

Visualization<br />

Update<br />

Table 7.18 Match point identification<br />

Refresh<br />

Parameter Validity<br />

Logging<br />

Error Handling<br />

Retrieval √ √ MPRetrieval<br />

Visualization √ √ MPVisualization<br />

Update √ √ √ √ √ √ √ √ √ MPUpdate<br />

Refresh √ √ √ √ √ MPRefresh<br />

Parameter Validity √ MPParamValid<br />

Flight Strip Printing √ √ √ √ MPFlightStripPrint<br />

ErrorHandling √ √ MPErrorHandling<br />

For each identified match point a composition rule must be built. The composition rule for the<br />

“retrieval” match point, MPRetrieval, is:<br />

(Security || Correctness) >> Retrieval<br />

161<br />

Fault-Tolerance<br />

Response Time<br />

Multi Access<br />

Security<br />

Safety<br />

Correctness<br />

Match Points


This composition rule expresses the order in which each concern must be satisfied. Security and<br />

Correctness must synchronize so that both concerns are satisfied in parallel, and only after their<br />

successful satisfaction will Retrieval be satisfied.<br />

Table 7.19 shows the contributions between concerns based on the concerns’ templates contribution<br />

row.<br />

Concerns vs.<br />

Concerns<br />

Table 7.19 Contributions between concerns<br />

Error Handling<br />

Fault-Tolerance<br />

Error Handling +<br />

Fault-Tolerance +<br />

Response Time -<br />

Portability -<br />

Interoperability - +<br />

Modularity - +<br />

Multi Access +<br />

Security -<br />

Safety + -<br />

Correctness + + - + +<br />

The contribution table helps the identification of conflicting situations, based on the negative<br />

contributions. To find possible conflicts, it is necessary to analyse the contributions between concerns<br />

in the same match point. Two concerns with negative contribution that must be composed together in<br />

the same match point may raise a possible conflict. Looking Table 7.18 and 7.19, the situations found<br />

are: Response Time vs. Safety in MP Refresh, and Response Time vs. Security in MP Update.<br />

Response Time, Safety and Security have the same priority according to stakeholder priorities row of<br />

concerns template, so we identified a source of a potential conflict.<br />

The complete system requirement specification document for Flight Plan tower interface system is<br />

presented in Appendix C. The system requirement specification document is currently being validated<br />

by Navegação Aérea de Portugal.<br />

Analysing the results of the AORA application to Flight Plan Tower interface case study, it is possible<br />

to conclude that the identification of crosscutting concerns is very important in this stage of the<br />

development process since it can be used as the source for a concern impact analysis. This enables the<br />

developer to be aware of the possible trade-offs required later and therefore to be prepared to<br />

undertake better, informed decisions. Moreover, we realized that treating concerns as black boxes do<br />

not allow us to identify new crosscutting relationships that could appear at a finer level of granularity,<br />

Response Time<br />

162<br />

Portability<br />

Security<br />

Safety<br />

Correctness


i.e., at responsibility level. Currently, some of the concerns are too coarse grained (e.g. availability,<br />

response time) and it is possible that certain conflicting situations will disappear when handle at a<br />

lower abstraction, thus the refinement of concerns will play a fundamental role in AORA approach<br />

goals.<br />

7.4.2 The role of AORA in ASSD Project<br />

The ASSD project (<strong>Aspect</strong> Specification Space Domain), funded by the European Space Agency<br />

(ESA), aims at assessing the applicability and usefulness of aspect-orientation in Space Domain<br />

software development, as a way of reducing the complexity of software development, focusing on the<br />

early stages of the development process (ASSD, 2006). The research results will be instantiated in<br />

practice with real-world case studies that were provided by DEIMOS Space 13 and EADS Test &<br />

Services 14 partners.<br />

AORA has been used in this project, outside this author’s control. In summary, this project proposes<br />

an approach that is a refinement of the AORA approach. So, in a similar way, the <strong>Aspect</strong> Specification<br />

Space Domain approach addresses the identification, separation, representation and composition of<br />

crosscutting concerns at the requirements level. To accomplish these, the <strong>Aspect</strong> Specification Space<br />

Domain process model is composed by the following tasks: Identify Stakeholders and <strong>Requirements</strong>,<br />

Elicit System <strong>Requirements</strong>, Identify Concerns, Specify Concerns, Analyze Match Points, and<br />

Analyze <strong>Requirements</strong> Traceability. The resulting specification is stored in an XML-based Metadata<br />

Repository (Ferreira, 2007). XML was chosen as the document format since it provides flexibility to<br />

represent any kind of information.<br />

An architecture and client tools were developed to provide a concretization of the <strong>Aspect</strong> Specification<br />

Space Domain method and they are a refinement of previous work (Ferreira, 2005). The architecture<br />

of the system relies on a Metadata Repository described in (Ferreira, 2005), for: (i) supporting the<br />

approach definitions; (ii) automatically generate specific documentation; and (iii) provide the means<br />

for creating reusable catalogues such as (Chung, 2000).<br />

In terms of model <strong>Aspect</strong> Specification Space Domain differs on AORA regarding some extensions<br />

and changes:<br />

13 http://www.deimos-space.com/<br />

14 http://www.ts.eads.net/<br />

163


• <strong>Aspect</strong> Specification Space Domain added two new concepts to support requirements (System<br />

Requirement and Stakeholder Requirement).<br />

• <strong>Aspect</strong> Specification Space Domain added a new relationship (parent) to relate the new<br />

concepts (Stakeholder, Concern, and System), allowing to form hierarchies.<br />

• <strong>Aspect</strong> Specification Space Domain added a Review requirements step, in which is possible to<br />

analyse the requirements traceability.<br />

• In <strong>Aspect</strong> Specification Space Domain the concern contributions are unidirectional, instead of<br />

bidirectional as in AORA.<br />

• In <strong>Aspect</strong> Specification Space Domain the composition rule task was removed, so the<br />

specification of the composition order was not specified and limited to some conflicts<br />

identification, such as temporal conflicts.<br />

A System Requirement refers to a technical requirement that allows an efficient mapping between a<br />

possible non-technical Stakeholder Requirement to a requirement that is non-ambiguous in its<br />

interpretation and can be understood by the development team. Depending on the elicited Stakeholder<br />

<strong>Requirements</strong>, these may be collapsed in one, or expanded in multiple System <strong>Requirements</strong>. Both<br />

concepts contain prioritization attributes that classify the requirement’s importance within the devised<br />

System, an is similar to stakeholders priorities row in the AORA concern template<br />

A Stakeholder describes an entity (e.g. person, company, university) responsible for defining the main<br />

capabilities (Stakeholder <strong>Requirements</strong>) of a software application, usually during elicitation meetings.<br />

The concept’s metadata is mainly descriptive regarding the contacts of the entity, e.g. address(es) and<br />

email(s).<br />

The <strong>Aspect</strong> Specification Space Domain approach was successfully applied to real-world case studies<br />

that were provided by DEIMOS Space 15 and EADS Test & Services 16 partners. Analysing the results<br />

of the ASSD application to the case studies, it is possible to conclude that the identification of<br />

crosscutting concerns are very important in this stage of the development process since it helps to the<br />

identification of impacts or contribution between concerns. This enables the analyst to foresee that<br />

some trade-offs must be performed, in later steps of development. Also, the <strong>Aspect</strong> Specification<br />

Space Domain approach allows some consistency check on the analysis by issuing warnings (e.g.<br />

15 http://www.deimos-space.com/<br />

16 http://www.ts.eads.net/<br />

164


unused concerns or requirement mappings). Above all, the most important aspect about the approach<br />

is that it makes the analyst think about concerns and their impact on among each other, in an early<br />

stage of the development. However, since the case studies were nearly complete projects, it was not<br />

possible to integrate the approach in their full development cycle; a task would allow further<br />

validation of the approach. The use of a Metadata Repository solution for managing knowledge,<br />

ensuring its validation, consistency and providing querying mechanisms, is a major advantage<br />

comparing with traditional documentation supports.<br />

7.5 Conclusions<br />

Based on the quantitative and qualitative evaluation, AORA approach seems one of the most complete<br />

AORE approaches, when compared with other three AORE approaches.<br />

The analysis of the results of the applications of AORE metrics demonstrates that AORA achieves<br />

better separation of concerns than the other three approaches. Size quality attribute for AORA presents<br />

the worst results but, on other hand, these values indicate that AORA is a more complete approach,<br />

since the AORA elements support many of the AORE features.<br />

Besides the fact that Table 7.16 reveals that existing aspect-oriented approaches do not effectively<br />

address all the proposed criteria, AORA addresses more of those criteria.<br />

The application of AORA to real case studies using SOFTAS and ASSD projects, as presented in<br />

Section 7.4, indicates that this approach is achieving a certain maturity status.<br />

There are, however, some limitations that AORA needs to overcome. In particular, it would be nice to<br />

be able to:<br />

• Improve the ability to identify crosscutting functional concerns.<br />

• Improve the link between composed requirements and architectural units.<br />

• Propose features to validate crosscutting requirements.<br />

165


166


167<br />

<strong>Chapter</strong> 8<br />

The AORA Refinement for MDD<br />

During the AORA assessment, we confirmed that treating concerns as black boxes was not the best<br />

option. Being able to compose using requirements elements at a finer granularity level would<br />

contribute to balance concerns granularity.<br />

Currently, some of the concerns are too coarse grained (e.g. availability, response time) and, apart<br />

from the possibility of having different interpretations for different contexts, we believe that most of<br />

the benefits of refining concerns will be found at later stages of the development, like architecture or<br />

design level. This is so, because refinement is introducing another level of information that can help in<br />

deriving architectural and design models, supporting design decisions to solve possible trade-offs.<br />

Moreover, despite the crosscutting nature of certain concerns, this level of information shows that<br />

these concerns might not be crosscutting at later stages of the development process.<br />

It is our believe that the AORA refinement brings the following benefits:<br />

• Improves modularisation, as complex responsibilities can be further decomposed into<br />

finer-grained concerns, making the resulting concerns more balanced.<br />

• Promotes the reuse of responsibilities because they are well-encapsulated in modules.<br />

• May provide further support for conflict management in situations where the conflicting<br />

concerns are, after all, applied to different fine-grained concerns, instead of their<br />

originating coarse-grained one.


• Offers a step forward in taking us closer to the next development stage, therefore,<br />

contributing to help identifying concern mappings onto functions, aspects, architectural or<br />

design artefacts and decisions.<br />

The strategy to refine AORA was to find a way to automate the refinement process, or at least to make<br />

it as systematic and rigorous as possible. We are aware that even when a clear process is available, its<br />

manual application can be a repetitive, laborious and error-prone task. So, the obvious choice was to<br />

investigate how Model-Driven Development could support the automation of this process (France,<br />

2007; Kovacevic, 2007). The resulting elements of the refinement process, such as responsibilities<br />

composition rules, will benefit from the AOSD principles, since the AORA refinement supports<br />

modularization, separation and composition of responsibility, crosscutting and non-crosscutting.<br />

According to existing bibliography, the use of Model-Driven Development could bring the following<br />

benefits to the AORA refinement:<br />

• A raise in the level of abstraction at which developers create software, by formalising the<br />

AORA approach concepts and tasks (Hailpern, 2006).<br />

• The repetitive, laborious and error-prone tasks, required to create a model from another<br />

model, can be automated.<br />

• The refinement process is performed in a consistent manner, since it is automated.<br />

• New model elements, such as responsibility and responsibility composition rule, can be<br />

incorporated at the AORA model, and therefore defined in its metamodel, and consistently<br />

and automatically propagated to the refined model.<br />

This chapter describes the first step towards the AORA refinement with Model-Driven Development.<br />

A fully fledged validation of the goals we believe to find in the future is still to be proved, and will be<br />

part of the future work. Here, our intention was to offer a step forward in the AORA refinement.<br />

For the time being, the main idea is to refine concerns’ responsibilities and define composition rules at<br />

the responsibility level using the AORA metamodel and the AORA UML profile described in <strong>Chapter</strong><br />

4. This chapter starts introducing the main Model-Driven Development concepts. Section two<br />

presents the AORA refinement with MDD. Section three illustrates the AORA refinement using a case<br />

study. Section four shows the problems and limitations of this refinement process and, finally, Section<br />

five draws some specific conclusions.<br />

168


8.1 An introduction to Model-Driven Development<br />

The OMG is promoting the use of models in the software development lifecycle to support automation<br />

through model execution, model transformation and code generation techniques (OMG/MOF2.0,<br />

2002). This goal is achieved with Model-Driven Development (MDD) (Selic, 2003; Stahl, 2006).<br />

MDD is an approach that treats models as first-class primitives, with transformations as the primary<br />

operation on models, used to map information from one model to another (Kovacevic, 2007).<br />

According to this, MDD promotes (Hailpern, 2006):<br />

• Abstraction by allowing us to ignore implementation details and focus on the concepts.<br />

• Automation by automatically transform conceptual models into executable<br />

implementations.<br />

• Model portability to bridge a model between different metamodelling languages.<br />

• Control over both modelling environment and transformation to implementation given by<br />

modelling tools.<br />

• (Semi) automatic transformations of models, until the running application is derived<br />

(OMG, 2005).<br />

Metamodels are at the core of the techniques, tools, and languages that support MDD of complex<br />

software systems (OMG/MOF2.0, 2002). A metamodel is a precise definition of the constructs and<br />

rules needed for creating semantic models that allows a language designer or methodologist to better<br />

capture, analyze and understand their approaches (Metamodel.com, 2007). A model is an abstraction<br />

of the characteristics of the real world, and a metamodel is another abstraction, highlighting properties<br />

of the model itself, so a model is conformed to its metamodel.<br />

MDD promotes the use of abstract models that are systematically transformed to execute technology-<br />

specific implementations (Cornell, 2007). A transformation can define changes that are applied to a<br />

source model to produce a target model. Often referred as a model-to-model transformation, the source<br />

and target models can be based upon a metamodel like the UML, or else developer specific<br />

metamodels. Figure 8.1 illustrates, in a nutshell, the MDD transformation concept.<br />

169


Figure 8.1 MDD transformation, taken from (Kovacevic, 2007)<br />

Systematic support for model transformations is considered to be critical to the success of the MDD.<br />

To achieve this goal, OMG proposed a standard transformation language that supports rules between<br />

two MOF-compliant models. This standard is called "MOF 2.0 Query/Views/Transformations" (QVT)<br />

(OMG/MOF2.0, 2002). The main advantage of using a transformation language is that the<br />

transformation logic can be expressed at a high level of abstraction thus enhancing maintainability and<br />

understandability. To express a transformation in such a language, the user must specify mapping rules<br />

that describe how model elements from the source model can be mapped to elements in the target<br />

model.<br />

We have used metamodelling to refine rigorously the AORA approach, from AORA source (described<br />

in <strong>Chapter</strong> 4) to AORA target metamodel.<br />

8.2 AORA refinement with MDD<br />

As we said before, our aim is to refine AORA, preserving the information contained in the initial<br />

AORA approach. This is achieved through the AORA source metamodel packages described in<br />

<strong>Chapter</strong> 4 and applying to these packages a set of guidelines and grammar to obtain new metamodel<br />

elements that support the AORA target metamodel. Therefore, these guidelines and grammar support<br />

the source metamodel transformation to the target metamodel.<br />

170


An extension of the AORA UML profile is proposed to instantiate the metamodels and obtains AORA<br />

models that conform to AORA UML profile.<br />

Figure 8.2 illustrates the AORA target packages metamodels which includes the AORA source<br />

metamodel packages (ConcernSpecification and ConcernComposition), as well as the new<br />

metamodels to support the refinement (ResponsibilitySpecification and ResponsibilityComposition).<br />

As described before in <strong>Chapter</strong> 4, the package ConcernComposition merges with the package<br />

ConcernSpecification to link the composition rule elements to specification elements. The<br />

ResponsibilitySpecification merges with the package ConcernSpecification to link the concern and its<br />

responsibility elements to responsibility specification elements. The ResponsibilityComposition<br />

merges with both the package ConcernComposition to link the concern composition rule element to<br />

responsibility composition rule element and the package ResponsibilitySpecification to link the<br />

responsibility composition rule elements to responsibility specification elements.<br />

ConcernSpecification<br />

«merge»<br />

171<br />

ConcernComposition<br />

«merge» «merge»<br />

ResponsibilitySecification ResponsibilityComposition<br />

Figure 8.2 AORA refinement metamodel packages<br />

Let us start by refining ConcernSpecification package and then we will refine the<br />

ConcernComposition package. The refinement of ConcernSpecification AORA source metamodel is<br />

achieved through the ResponsibilitySpecification package. We use UML to represent our metamodel<br />

packages and to express concerns responsibilities, for example using UML sequence diagram<br />

elements. According to this, and inspired in Sanchez (Sanchez, 2006), we propose that each<br />

responsibility can be described using the following elements:<br />

• Entity, described by a name and a list of events associated with the entity.<br />

• Message described by a name, a sent event and a received event.<br />

• Event described by a name, a trigger time, an entity that handles the event and a message<br />

associated with the event.<br />

«merge»


• Time described by a name and an instantiation time.<br />

These elements result from the responsibility refinement. The refinement is achieved by following a<br />

set of simple guidelines to transform a responsibility into a consistent representation, as shown in<br />

Table 8.1.<br />

Table 8.1 A guideline to refine a responsibility<br />

AORA responsibility AORA responsibility refinement<br />

For each noun that expresses a property in the<br />

responsibility,<br />

create an Entity element<br />

For each verb that expresses a task in the responsibility create a Message element<br />

for each Message, create two Event elements<br />

for each Event, create a Time element<br />

The elements and the guidelines support the transformation of the responsibility into a more refined<br />

level.<br />

Figure 8.3 presents the ResponsibilitySpecification metamodel package.<br />

Contribution<br />

0..* +contributer<br />

Responsibility<br />

Concern<br />

1..*<br />

CrosscuttingResponsibility<br />

Time<br />

0..*<br />

+contributor<br />

1..*<br />

2..*<br />

ResponsibilityElement<br />

Message Event Entity<br />

2<br />

172<br />

+joins<br />

ResponsibilityMatchPoint<br />

Figure 8.3 Responsibility specification package of the AORA refinement metamodel<br />

The ResponsibilitySpecification metamodel presents a special type of Responsibility designated by<br />

CrosscuttingResponsibility. A CrosscuttingResponsibility is a Responsibility that is composed of two<br />

or more ResponsibilityMatchPoint. A ResponsibilityMatchPoint element joins two or more<br />

Responsibilities of a given Concern. A Responsibility can have a Contribution list (of “+” or “–“ kind,<br />

defined by ContributionKind enumeration described in ConcernSpecification metamodel presented in<br />

1..*


<strong>Chapter</strong> 4). The ResponsibilitySpecification package metamodel merges with the<br />

ConcernSpecification package metamodel to link the Responsibility, Concerns and Contribution.<br />

Using the Washington subway system case study described in <strong>Chapter</strong> 4, the responsibilities of the<br />

EnterSubway concern are refined using the elements described before in <strong>Chapter</strong> 4. For example, The<br />

“Checks the card data” responsibility is instantiated in terms of an Entity (Card data), a Message<br />

(Checks) and two Events one received event and the other a send event (E1, E2).<br />

During the refinement process investigation, we realized that some responsibilities cannot be naturally<br />

refined because they are out of the requirements scope, and may refine into architectural or design<br />

elements. For example, the Availability responsibilities “All the machines of the system need to be<br />

accessible” has an adjective (accessible) that is difficult to define using any of the responsibility’s<br />

elements presented before and it describes a very important quality of the system.<br />

The refinement of the AORA source metamodel ConcernComposition package is achieved through the<br />

ResponsibilityComposition package. Here, we propose a new “type” of composition rule<br />

(ResponsibilityCompositionRule) that composes responsibilities of a given concern. According to this,<br />

new elements need to be created, such as, Responsibility MatchPoint that is defined by a<br />

Responsibility CompositionRule. Therefore, the Responsibility MatchPoint of a concern C will be<br />

defined by a Responsibility CompositionRule. So, the Responsibility CompositionRule of a concern C<br />

can be defined by the grammar:<br />

:= (, )<br />

:= , | <br />

:= < Responsibility CompositionRule> | Responsibility<br />

:= enable | disable | choice | parallel<br />

This grammar supports the transformation of the composition task into a more refined level.<br />

Figure 8.4 illustrates the ResponsibilityComposition metamodel package. As described by the<br />

grammar above and the grammar for concern composition rule presented in <strong>Chapter</strong> 4, a composition<br />

rule has similar elements for concern and responsibilities match points. These elements are the<br />

CompositionOperator, CompositionRule and the Operand.<br />

173


ElementarOperand<br />

Responsibility<br />

Operand<br />

+operands<br />

2...*<br />

{ordered}<br />

CompositionRule<br />

ResponsibilityCompositionRule<br />

definedBy<br />

ResponsibilityMatchPoint<br />

174<br />

+operator<br />

«enumeration»<br />

CompositionOperator<br />

disable<br />

enable<br />

choice<br />

parallel<br />

Figure 8.4 Responsibility composition of the AORA refinement metamodel<br />

The Operand can be an ElementarOperand or a CompositionRule and they are ordered to express the<br />

way in which responsibilities are arranged in relation to one another, for example, the responsibility<br />

(R1) is needed before responsibility (R2), so R1 is the first operand and R2 is the second operand. The<br />

ElementarOperand can be a Responsibility (and also a Concern from ConcernComposition package).<br />

The CompositionRule can be a ResponsibilityCompositionRule that defines a<br />

ResponsibilityMatchPoint and the CompositionRule has an operator defined by CompositionOperator<br />

enumeration (the enumeration values are disable, enable, choice and parallel and represent the<br />

operators supported in AORA composition).<br />

The ResponsibilityComposition package metamodel merges with the ConcernComposition package<br />

metamodel to link the Operand and CompositionRule elements from both metamodels. Moreover, the<br />

ResponsibilityComposition package metamodel merges with the ResponsibilitySpecification package<br />

metamodel to link the Responsibility elements from both metamodels.<br />

As we described in <strong>Chapter</strong> 4, we defined a UML profile to represent an instance of the AORA<br />

metamodel in UML. Figure 8.5 illustrates the UML profile of the AORA target metamodel to specify<br />

its concepts (described by meta-classes and enumerations) in terms of stereotype hierarchy extensions<br />

of UML meta-classes. This profile extends the AORA source metamodel UML profile.


«stereotype»<br />

Responsibility<br />

«stereotype»<br />

Crosscutting<br />

Responsibility<br />

«stereotype»<br />

ResponsibilityCompositionRule<br />

operator: CompositionOperator<br />

«stereotype»<br />

Entity<br />

175<br />

«metaclass»<br />

Classifier<br />

«stereotype»<br />

Event<br />

«metaclass»<br />

Association<br />

«stereotype»<br />

ResponsibilityMatchPoint<br />

Figure 8.5 AORA refinement UML profile<br />

«stereotype»<br />

Message<br />

«stereotype»<br />

Time<br />

In the AORA target UML profile, the Classifier meta-class extensions are considered as first class<br />

entities. The entities are defined by the following stereotypes: Responsibility and its derivate<br />

Crosscutting Responsibility, ResponsibilityCompositionRule (with an operator attribute of<br />

CompositionOperator enumeration type) and Entity, Event, Message and Time. Note that to<br />

accomplish the refinement process, the Responsibility element is defined as a Classifier. The last<br />

entity of the AORA UML target profile is the Association meta-class extension defined by the<br />

ResponsibilityMatchPoint.<br />

To provide all the relevant aspects of AORA refinements, we propose the following well-formed<br />

rules:<br />

• A minimum of one ResponsibilityElement is needed to accomplish all the tasks of the<br />

framework.<br />

• A ResponsibilityCompositeRule can always be defined for a ResponsibilityMatchPoint.<br />

• A ResponsibilityCompositeRule is acyclic, i.e., a composition resulting from a<br />

composition rule must not trigger itself.<br />

• A CrosscuttingResponsibility or a Responsibility cannot inherit from itself.


8.3 AORA refinement example<br />

To illustrate the refinement let’s go back to the Washington subway system example and concentrate<br />

on the ResponsibilityMatchPoint for EnterSubway concern. This ResponsibilityMatchPoint joins the<br />

responsibilities: R1. Checks the card data, R2. Registers an entrance and R3. Returns the card to the<br />

passenger. Moreover, this ResponsibilityMatchPoint is defined by a ResponsibilityCompositionRule<br />

that is described as:<br />

Responsibility CompositionRule:= enable(R1, R2, R3)<br />

This responsibility composition rule for EnterSubway concern means that the all the responsibilities<br />

are composed in sequence. Looking to the other responsibility composition rules, for example<br />

ExitSubway, we observe that the responsibility R3 (“Returns the card to the passenger”) is involved in<br />

at least two ResponsibilityMatchPoints, so it is defined as a crosscutting responsibility.<br />

To better illustrate this example, Figure 8.6 shows the ResponsibilityCompositionRule instantiation of<br />

the AORA ResponsibilityComposition package metamodel.<br />

«Concern»<br />

EnterSubway<br />

+definedBy<br />

+responsibilityMatchPoint<br />

«ResponsibilityCompositionRule»<br />

enable: CompositionOperator<br />

+3operand<br />

«Crosccutting Responsibility»<br />

ReturnCard<br />

176<br />

«Responsibility»<br />

ChecksCard<br />

+1operand<br />

+2operand<br />

«Responsibility»<br />

RegisterEntrance<br />

Figure 8.6 Responsibility composition rule for responsibility match point of EnterSubway concern<br />

Identifying contributions between two responsibilities may be a difficult task; it requires expertise in<br />

specific domain areas that may not always exist in a project team. For certain cases, existing<br />

catalogues are a good source of information but there are still many situations where catalogues are<br />

not available. During the identification of conflicts between responsibilities, we realized that these


contributions can often only be detected when the composed system is analysed. So in AORA, we<br />

need to compose all the responsibilities of the concerns required in a given concern match point.<br />

Returning to the composition rule for EnterSubway match point (MPES) in <strong>Chapter</strong> 4 and the<br />

responsibility composition rule described above, Response Time defines the time that a machine has to<br />

react when passengers use the system with a card in entering, exiting and buying machines. If the<br />

system supports mechanisms to support this time, such as, Redundant Arrays of Inexpensive Disks<br />

(RAID) solutions, the Integrity, Accuracy and Multi-access concerns are improved. This means that<br />

RAID's levels balance two key goals: increased data management and increased I/O (input/output)<br />

actions. This proves that refining ResponseTime can help in deriving architecture, supporting design<br />

decisions to solve possible trade-offs. Moreover, despite crosscutting nature of this concern, this<br />

information shows that these concerns might not be a crosscutting concern at next stages of the<br />

development process.<br />

8.4 Problems and limitations<br />

The difficulties in obtaining the first model from where transformations can then be applied to evolve<br />

the models are well-acknowledged (Kovacevic, 2007). We believe we contributed with a modest step<br />

forward towards helping solving this problem defining an AORA metamodel and an UML profile.<br />

However, and to achieve our goals, there is still a lot of work to do:<br />

• Although AORA refinement works with OMG standards, it does not have a modelling<br />

tool to support the transformations, so the refinement process is not automatic.<br />

• Identify a tool that checks the consistency of a model with respect to a UML profile.<br />

• Define a rigours and systematic process to identify contributions between responsibilities<br />

to support conflicts management at this level of granularity.<br />

• Identify “false positive” conflicts between coarse-grained concerns that could potentially<br />

disappear when concerns are dealt with at a finer-grained level.<br />

8.5 Conclusions and future work<br />

The main motivation for applying MDD to AORA is to improve the mechanisms for the separation<br />

and composition of responsibilities, crosscutting and non-crosscutting, within each model. If all<br />

177


esponsibilities can be modelled separately at a certain level, that level will become more manageable,<br />

extensible and maintainable. Therefore, the concerns refinement improves modularisation and reuse of<br />

responsibilities, since crosscutting responsibilities are well-encapsulated in modules. Besides this,<br />

another benefit of refining concerns will be found at later stages of the development, since the<br />

refinement shows that some crosscutting concerns might not be crosscutting at the architecture or<br />

design stages, reducing the number of potential aspects in the final product.<br />

This chapter presents an initial step in our research towards the automation of the AORA refinement<br />

using MDD. From the AORA perspective only, the use of MDD brings value to our results, since:<br />

• The AORA concepts and their relationships are described more rigorously.<br />

• The approach is now prepared to be used in a seamless MDD development framework.<br />

The proposal has been validated by deriving instantiations for AORA models using the case study<br />

described in <strong>Chapter</strong> 4.<br />

To accomplish the benefits described in this chapter, a set of new elements were defined:<br />

• Responsibility is specified separately, so modularization and reuse can improve.<br />

• Responsibility match point defines the responsibility composition rule that specifies how<br />

and the order in which responsibilities will be applied in a particular match point.<br />

• Crosscutting responsibilities are specified to identify those that are composed in more than<br />

one responsibility match points.<br />

• Concerns refinement show that some crosscutting concerns might not be crosscutting at<br />

later stages of the development process.<br />

We know that this is just a small step towards a more adequate model-driven development approach in<br />

the context of AOSD. Therefore, there are still problems to be solved that constitute directions for<br />

future work. For example, we would like to investigate the conflicts, dependencies and interactions<br />

between responsibilities and between concerns and responsibilities and how to deal with<br />

responsibilities that cannot be naturally refined. Also, we expect that some conflicts initially identified<br />

between coarse-grained concerns are, in fact, false-positive conflicts, meaning that they could<br />

potentially disappear when concerns were dealt with at a more fine-grained level. Moreover, a set of<br />

rules are needed to transform instances of the AORA metamodel into instances of the refined AORA<br />

metamodel. The set of rules would be encapsulated in a model transformation, taking a source model<br />

and producing a target model. These transformations have not been tackled in this chapter and would<br />

require further investigation. The current trend in transformation is to use rule-based languages such as<br />

178


QVT to specify transformations between models to gradually obtain the system. QVT is chosen<br />

because it defines a standard way to transform source models into target models.<br />

179


180


181<br />

<strong>Chapter</strong> 9<br />

The AORA Design Rationale<br />

It is always important to know the history of something, its development and evolution path. Apart<br />

from giving the author the opportunity to remember his/her trials, failures and successes, it may help<br />

the reader to understand some of the constraints and design rationale that led the author to opt for that<br />

particular problem solution or take this or that decision. These are the two main reasons for this<br />

chapter. We will, therefore, describe some of the earlier versions of the AORA approach, discussing<br />

the main problems that led to the final version.<br />

The first version of the AORA approach was published in 2002 (Moreira, 2002), and during the<br />

following years it was influenced by several ideas and other approaches. <strong>Aspect</strong>-<strong>Oriented</strong> Software<br />

Development was certainly not as well-developed as it is nowadays. In our opinion, the “Special Issue<br />

on <strong>Aspect</strong>-<strong>Oriented</strong> Programming” was perhaps one of the first steps towards building the AOSD<br />

community (ACM, 2001). In fact, the first edition of the respective conference took place in March<br />

2002 and it addressed little more than <strong>Aspect</strong>-<strong>Oriented</strong> Programming. During the coming couple of<br />

years, the only three groups working on <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> were our group at<br />

Universidade Nova de Lisboa, a small group at Lancaster University and another one at IBM. The<br />

work developed by Universidade Nova de Lisboa and Lancaster University teams, which in that year<br />

joined researchers interested in software architecture (Paul Clements from SEI and Bedir<br />

Tekinerdogan from University of Twente), culminated with the internationally well-known movement<br />

on Early <strong>Aspect</strong>s (www.early-aspects.net).


We can state that AORA was the very first AORE approach in AOSD. It evolved within the Early<br />

<strong>Aspect</strong>s context, with the initial primary goal of integrating the functional and non-functional<br />

requirements. Since then, the approach has evolved in several ways that we will describe next. The<br />

later version has been applied as a starting point in research projects, such as SOFTAS and ASSD, as<br />

described in <strong>Chapter</strong> 7 (ASSD, 2006; SOFTAS, 2007).<br />

During the AORA development, we had the following objectives:<br />

• Identify and specify concerns, with particular emphasis on crosscutting concerns.<br />

• Identify and solve conflicting situations that we suspected could arise during composition.<br />

• Compose concerns, independently from their intrinsic nature (i.e., being functional or non-<br />

functional).<br />

• Development a tool to support the approach.<br />

This chapter is organized as follows. The first three sections present the three main versions of the<br />

AORA approach. Section four illustrates the most significant problems we had to solve during the<br />

AORA approach development. Section five presents some conclusions.<br />

9.1 AORA first version<br />

The first period of the AORA approach saw its beginning in 2001 and lasted until the end of 2002. The<br />

stepping stone for this first version published (Brito, 2002), which was later extended as a full paper in<br />

(Moreira, 2002), consisted of a model to identify and specify quality attributes, which we thought as<br />

strong crosscutting candidates. Back then we were not sure about which other types of crosscutting<br />

requirements would exist, but we were very sure about the crosscutting nature of quality attributes, or<br />

non-functional requirements. By then, the existing AOSD literature was not very rich in examples.<br />

Security and tracing were perhaps the most typical and recurrent ones. Therefore, the work on the<br />

NRF framework Chung et al. proposed by Mylopolous group from Toronto University seemed an<br />

ideal starting point for our research, with benefits for both communities (Chung, 2000). On the one<br />

hand, this would bring to AOSD several other examples of crosscutting concerns and, on the other<br />

hand, the NFR framework, and in fact other existing work on non-functional requirements, could<br />

benefit from a clear integration with functional requirements by using the AO composition<br />

mechanisms. In other words, AOSD could help us achieving such an integration and explore further<br />

crosscutting properties.<br />

182


Therefore, the AORA approach first version initially tried to integrate in a single approach quality<br />

attributes and functional requirements, which were handled separately in other existing approaches<br />

(Kazman, 2000; Malan, 2002). Quality attributes, such as response time, accuracy, security, and<br />

reliability, are properties that affect the system as a whole. Handling them separately from base<br />

software components may add extra risk and complexity to the software development process,<br />

impacting negatively on the quality of the final product. Traditionally, the integration is difficult to<br />

achieve and is usually accomplished only at the later stages of the software development process.<br />

Additionally, approaches of that time failed in addressing the crosscutting nature of some of those<br />

attributes explicitly and, in particular, it was difficult to represent clearly how these attributes can<br />

affect several requirements simultaneously. Since this was not supported from the requirements stage<br />

to the implementation stage, some of the software engineering principles, such as abstraction,<br />

localization, modularisation and reusability, could be compromised and, the resulting system would be<br />

more difficult to maintain and evolve.<br />

The above discussion highlights the need to include crosscutting quality attributes as fundamental<br />

modelling primitives at the requirements level. The motivation for this was essentially to provide<br />

improved support for separation of crosscutting quality attributes during requirements engineering,<br />

hence offering a better means to identify and manage conflicts arising due to tangled representations.<br />

Soon the main activities of the AORA first version approach were established as identify, specify and<br />

integrate quality attributes with functional requirements. The resulting model was UML 1.4 compliant,<br />

i.e., we used the UML standard and particular notations to specify functional requirements and<br />

integrate them with the quality attributes. This model was composed of three main activities: identify,<br />

specify and integrate requirements (see Figure 9.1).<br />

The first activity consists of identifying all the requirements of a system and selecting from those, the<br />

quality attributes relevant to the application domain and stakeholders. This was accomplished by<br />

Identify actors and use cases and Identify quality attributes.<br />

183


Identify<br />

Specify<br />

Integrate<br />

Identify actors<br />

and use cases<br />

Build a use case<br />

diagram<br />

Specify use cases<br />

Integrate crosscutting quality<br />

attributes with functional<br />

requirements<br />

184<br />

Identify quality<br />

attributes<br />

Specify quality<br />

attributes using<br />

templates<br />

Identify crosscutting<br />

quality attributes<br />

Figure 9.1 A requirements model for quality attributes<br />

The second activity was divided into two main parts: (i) specify functional requirements using a use<br />

case based approach, accomplished by Build a use case diagram and Specify use case tasks; (ii)<br />

describe quality attributes using special templates and identify those that cut across functional<br />

requirements (i.e. crosscutting quality attributes), accomplished by Specify quality attributes using<br />

templates and Identify crosscutting quality attributes tasks. The template we proposed to specify a<br />

quality attribute is depicted in Table 9.1. The influence from the NRF framework (Chung, 2000) and<br />

from the work described in (Malan, 2002) is noticeably in two respects: AND/OR decomposition<br />

relationships and +/- contributions.<br />

Table 9.1 Template for quality attributes<br />

Name The name of the quality attribute<br />

Description Executive description<br />

Focus A quality attribute can affect the system (i.e. the end product) or the development process<br />

Source Source of information (e.g. stakeholders, documents)<br />

Decomposition Quality attributes can be decomposed into simpler ones. When all (sub) quality attributes<br />

are needed to achieve the quality attribute, we have an AND relationship. If not all the sub<br />

quality attributes are necessary to achieve the quality attribute, we have an OR relationship<br />

Priority Expresses the importance of the quality attribute for the stakeholders. A priority can be<br />

MAX, HIGH, LOW and MIN<br />

Obligation Can be optional or mandatory<br />

Influence Activities of the software process affected by the quality attribute<br />

Where List of the actors influenced by the quality attribute and also a list of models (e.g. use cases<br />

and sequence diagrams) requiring the quality attribute<br />

<strong>Requirements</strong> <strong>Requirements</strong> describing the quality attribute<br />

Contribution Represents how a quality attribute can be affected by the other quality attributes. This<br />

contribution can be positive (+) or negative (-)


At the beginning we only considered quality attributes as crosscutting concerns because they can<br />

affect large parts of a system and, therefore, potentially several requirements simultaneously. So, in<br />

the second activity we identify quality attributes that cut across functional requirements.<br />

The third activity proposes a set of UML models to represent the integration of crosscutting quality<br />

attributes and functional requirements. Inspired on the concepts commonly used in various separation<br />

of concerns approaches, we adopted the operators overlapping, overriding and wrapping to define the<br />

integration part of the approach (ACM, 2001).<br />

By analyzing the AORA first version, we can easily notice the two-dimensional perspective of the<br />

approach, where functional and non-functional requirements were basically treated in parallel and<br />

joined at the end using “composition” (which we called back then “integration”).<br />

9.2 AORA second version<br />

This second period lasted from 2003 to 2004, approximately. By 2002 we had the AORA first version,<br />

but we were still unhappy with the integration activity and also the two separate parallel paths in the<br />

approach to handle functional and non-functional concerns, which makes the process more complex.<br />

This bi-dimensionality, even if consistent with many of the existing AOP languages, such as <strong>Aspect</strong>J,<br />

felt uncomfortable at the level of abstraction we were working on. To move from this stage to a more<br />

“muldimensional” or “symmetric” strategy was a simple step. AOSD claimed an improved Separation<br />

of Concerns, as set out by our dear late Dijkstra. So, it made sense to think only in terms of concerns,<br />

instead of kinds of requirements.<br />

During 2003 we realised that composition was, most probably, the main contribution that AOSD gave<br />

to the computer science community, since composition allows the developers to picture a broader part<br />

of the system and to identify conflicting situations that offers the opportunity to minimize the impact<br />

of these situations in later stages of the development process. From there, we decided to look more<br />

carefully at our “Integration” task. This was still very much in line with one of our main objectives<br />

“create a seamless approach to handle functional and non-functional requirements”. So, we dedicated<br />

some time to investigate composition mechanisms as proposed by several aspect-oriented<br />

programming languages. The stepping stone for a composition mechanisms was proposed in (Brito,<br />

2003a), which was later published as a full paper in (Brito, 2003b). This paper introduces several new<br />

notions to define composition rules: match point, dominant concern and LOTOS operators. In<br />

addition, we recommend the use of existing catalogues to alleviate both the identification and the<br />

specification tasks, as proposed in (Chung, 2000; Wiegers, 2003).<br />

185


Figure 9.2 presents a generic model to handle advanced separation of concerns during requirements<br />

engineering. It is composed of four main tasks: identify concerns, specify concerns, identify<br />

crosscutting concerns, and compose concerns.<br />

INPUT<br />

���<br />

�Task 1: Identify<br />

concerns<br />

CATALOGUES<br />

� �<br />

�Task 2: Specify<br />

concerns<br />

2.1: Using best<br />

approach<br />

2.2: Identify<br />

contributions<br />

2.3: Identify<br />

priorities and<br />

interrelationship<br />

�Task 3: Identify<br />

crosscutting concerns<br />

186<br />

OUTCOME<br />

�Task 4: Compose<br />

concerns<br />

4.1: Identify<br />

match points<br />

4.2: Identify<br />

conflicts<br />

4.3: Identify<br />

dominant<br />

4.4: Define<br />

composition<br />

rules<br />

� �<br />

Templates Rules Visual models<br />

Figure 9.2 A model for advanced separation of concern<br />

This model uses any of the existing techniques, such as use cases (Jacobson, 1992) and catalogues<br />

(Chung, 2000) to support concerns’ identification. Contrary to the AORA first version that proposes a<br />

template to specify quality attributes, this AORA second version proposes a template to specify all<br />

types of concerns. Table 9.2 illustrates the concern template.<br />

Table 9.2 Template to describe concern<br />

Name The name of the concern.<br />

Source Source of information, e.g. stakeholders, documents, domain, catalogues and business<br />

process.<br />

Stakeholders Users that need the concern in order to accomplish their job.<br />

Description Short description of the intended behaviour of the concern.<br />

Classification Helps the selection of the most appropriate approach to specify the concern. For<br />

example: functional, non-functional, goals.<br />

Contribution Represents how a concern can be affected by other concern. This contribution can be<br />

positive (+) or negative (-)<br />

Priority Expresses the importance of the concern for the stakeholders. It can take the values:<br />

Very Important, Important, Medium, Low and Very Low.<br />

Interrelationships List of concerns needed by this concern.<br />

The template was adapted to specify all types of concerns and differs from the Table 9.1 eliminating<br />

Focus, Obligation, Decomposition and Influence rows and adding Stakeholders, Classification and<br />

Interrelationships rows. The Stakeholders row registers the direct or indirect actors that have an


influence in the project and helps the identification of concerns, including concerns priorities. The<br />

Classification row helps the selection of the most appropriate approach to specify the concern. The<br />

Interrelationships row presents the list of concerns needed and allows the identification of crosscutting<br />

concerns, as well as, the identification of places where the composition will take place. This<br />

information is very important to accomplish the “Compose Concerns” task because they guide the<br />

composition task.<br />

The goal of the “Compose Concerns” task is to join together sets of concerns to obtain particular<br />

views of the system, or of the whole system, as well as to help us express the way a crosscutting or<br />

non-crosscutting concern affects the behaviour of other concerns. In the AORA second version, the<br />

composition task composes crosscutting concerns with other crosscutting or non-crosscutting<br />

concerns. To guide the composition, we proposed four subtasks:<br />

• Identify match points.<br />

• Identify conflicts.<br />

• Identify the dominant concern.<br />

• Define the composition rules.<br />

The identification of match points was accomplished based on the row Interrelationships (in Table<br />

9.2). A match point tells us which crosscutting concerns should be composed with a given concern, or<br />

also called base concern.<br />

The subtask “Identify conflicts” supports the identification of conflicting situations between concerns.<br />

For a given match point we need to analyse if any of the involved crosscutting concerns affects or<br />

contributes negatively to another concern (based on the Contribution row in Table 9.2). Concerns<br />

contributing positively to other concerns raise no problems.<br />

The subtask “Identify the dominant concern” was the strategy we found back then to help solving the<br />

concern conflicts. It works based on the Priority row in Table 9.2 and its main goal is to obtain an<br />

ordered ranking of the crosscutting concerns in a match point. Therefore, if the priority attributed to<br />

each concern is different, the problem is not too difficult to solve, and the dominant concern is that<br />

with higher priority. However, if at least two crosscutting concerns have the same priority, a trade-off<br />

must be negotiated with the user. The identification of the dominant crosscutting concern for a given<br />

match point was proposed to guide the negotiation among users. Therefore, if more than two<br />

crosscutting concerns exist in a given match point, with negative contribution and the same priority,<br />

we start by analysing two concerns first to identify the dominant, then take the dominant and analyse it<br />

with a third concern and so forth until we have taken into consideration all the crosscutting concerns.<br />

187


The result is the concern with higher priority between them all. Next we need to identify the second<br />

dominant crosscutting concern among the remaining concerns, and so forth until we have a<br />

dependency hierarchy between all the concerns.<br />

The following subtask builds composition rules. One composition rule must be defined for each match<br />

point. Therefore, the composition rule defines the order in which the concerns will be applied in a<br />

particular match point. It takes the form: . Knowing the<br />

importance of the composition task, we tried to define a rigorous composition language. Our goal was<br />

to reuse and adapt concepts already explored in formal specification languages. We liked the process<br />

part of LOTOS and ended up with the following subset of its main operators (Brinksma, 1988). In the<br />

descriptions below Ci denotes Concerni:<br />

• Enabling (denoted by C 1 >>C 2 ): This is a sequential composition and means that the<br />

behaviour of C 2 begins if and only if C 1 terminates successfully.<br />

• Disabling (denoted by C 1 [>C 2 ): This is the disabling composition and means that C 2<br />

interrupts the behaviour of C 1 when it starts its own behaviour. This allows the<br />

representation of interruptions.<br />

• Pure interleaving (denoted by C 1 |||C 2 ): This is a parallel operator and means that C 1<br />

evolves separately from C 2 . It represents concurrent composition without interaction.<br />

• Full synchronization (denoted by C 1 ||C 2 ): This is another parallel operator and means<br />

that the behaviour of C 1 must be synchronized with the behaviour of C 2 . It represents<br />

concurrent composition with interaction.<br />

A composition rule could then be defined based on simpler composition rules, separated by one of the<br />

above operators. Brackets (“(“ and “)”) were used to attribute priorities to the operators. This task is<br />

still very similar to the composition rule subtask of AORA final version.<br />

Therefore, how does the second version compares with the first one? This is described as follows:<br />

• The overlapping, overriding and wrapping operators were substituted with the LOTOS<br />

operators enabling, disabling, pure interleaving and full synchronization.<br />

• The concepts of composition rule and match point were introduced to systematize the<br />

composition task.<br />

• Conflict management was added. The first version approach does not propose any<br />

technique to solve conflicts. The second version proposes a process technique to solve<br />

conflicts using the dominant concern idea.<br />

188


• A unique template is used o specify all kinds of concerns, crosscutting and non-<br />

crosscutting, functional and non-functional.<br />

In summary, the novelties introduced in second version were:<br />

• A new composition process with the introduction of match points and composition rules<br />

using LOTOS-like operators.<br />

• A new conflict management support with the introduction of dominant crosscutting<br />

concerns notion.<br />

• A step towards a multidimensional or symmetric approach.<br />

• The use of existing catalogues to support the identification and specification tasks.<br />

9.3 AORA third version<br />

Around middle-2005, we were implementing the AORA tool and still trying to ameliorate the<br />

composition and specification techniques used. We were not after a formal specification and<br />

composition language, but we wanted to add more rigour to the specification as a whole and the<br />

composition in particular. We needed an infrastructure that could be easily integrated with the tool<br />

support we were planning. With the help of a master student, we started to explore the advantages of<br />

XML to be used to define the specification and composition languages. We have chosen XML because<br />

it is a widely used standard that allows the description of any kind of data. XML Schema is another<br />

standard that allows the definition of a full specification for a XML document, enabling the creation of<br />

a set of rules to structure and form that XML document, as well as rules for data types and integrity.<br />

Furthermore, XML provides a standard way to represent and manipulate source code, and represents<br />

meta-information that can be manipulated by another program.<br />

This work was performed in collaboration with an MSc student, Elisabete Soeiro (Soeiro, 2007). A<br />

first version of an XML-based language for specification and composition of aspectual concerns is<br />

proposed in (Soeiro, 2006), extending the work presented in (Brito, 2003b; 2004). This language<br />

proposes new elements for specification and composition of concerns, as well as, a new composition<br />

process.<br />

Therefore, the AORA third version offers a rigorous means to support and extend the specification and<br />

composition activities of the previous AORA approach versions. Our template for concern<br />

specification is mapped into an XML Schema, creating a meta-template that functions as a standard<br />

189


epresentation. Any instance that follows the meta-template must also be correctly validated with the<br />

defined XML Schema. The resulting XML Schema is compliant with the logic present in the concern<br />

specification template (see Table 9.3).<br />

Table 9.3 A template to specify concerns<br />

Concern Description<br />

Name The name of the concern.<br />

Description Short description of the intended behaviour of the concern.<br />

Sources Source of information, e.g. stakeholders, documents, domain, catalogues and<br />

business process.<br />

Classification Helps the selection of the most appropriate approach to specify the concern. For<br />

example: functional, non-functional, goals.<br />

Stakeholders Users that need the concern in order to accomplish their job.<br />

List of Responsibilities<br />

Responsibility # List of what the concern must perform; knowledge or proprieties the concern must<br />

offer.<br />

List of Contributions<br />

Contribution # List of concerns that contribute or affect this concern. This contribution can be<br />

positive (+) or negative (-).<br />

List of Priorities by Stakeholder<br />

Stakeholder # Expresses the importance of the concern for a given stakeholder. It can take the<br />

values: Very Important, Important, Medium, Low and Very Low.<br />

List of Required concerns<br />

Required Concern # List of concerns needed or requested by the concern being described.<br />

The concern specification template depicted in Table 9.3 was adapted from Table 9.2. A Responsibility<br />

row was added to the template to refine the concerns in terms of responsibilities, i.e., to be able to<br />

describe the concern’s behaviour.<br />

The ”Compose Concerns” task offers now the possibility to compose a set of concerns, incrementally,<br />

until the whole system is obtained. Each composition takes place in a match point in the form of a<br />

composition rule. As described in AORA second version, a match point tells us which crosscutting<br />

concerns should be composed with a given (base) concern. A composition rule shows how a set of<br />

concerns can be composed together by means of some pre-defined operators. Similarly, we defined a<br />

XML Schema to represent the structure of a composition rule. To do that, we first need to study all the<br />

possible logical forms that a composition rule can take.<br />

This AORA version was supported by a tool developed in Java, where concerns and composition rules<br />

can be handled as defined by the XML Schema. The modules encapsulating the various concerns and<br />

composition rules were stored in eXist, a native XML database (eXist, 2005). The tool facilitates the<br />

specification of concerns, identification of crosscutting concerns, generation of the match point table,<br />

definition of composition rules and locates possible conflicting situations (on match points).<br />

190


The following two subsections give an overview of the XML representations of concerns and of the<br />

XML composition rules, respectively.<br />

9.3.1 The XML schema for concern specification<br />

The XML schema for concern specification is depicted in Figure 9.3.<br />

Figure 9.3 XML Schema of the definition of a concern<br />

The structure of the complex type Concern that defines one concern illustrated in Figure 9.3 is:<br />

• Name defines a unique name for the concern. Since all names in our solution are seen as<br />

keys, uniqueness is required.<br />

• Description presents a summary description of the behaviour of concern.<br />

• Classification indicates if a concern is functional or not functional.<br />

• ListOfSources lists the information sources that contributed to the concern creation.<br />

• ListOfPrioritiesByStakeholder groups the Stakeholders and Stakeholder Priorities from the<br />

logic template. It is a list where each element aggregates one stakeholder together with<br />

his/her priority for the concern.<br />

• ListOfResponsibilities lists the information of what the concern must perform.<br />

• ListOfContributions defines the contribution relationship between the concern under study<br />

and other concerns.<br />

191


• ListOfRequiredConcerns defines a list of other concerns from which the current concern<br />

depends, i.e. the concerns required by the concern under study. This list can be empty,<br />

meaning that the concern does not need other concerns to fulfil its objectives.<br />

The system is represented as a list of all its concerns, together with a list of composition rules.<br />

9.3.2 The XML Schema for Composition Specifications<br />

The “composition rule” notion is similar to the notions defined in the AORA second version. To offer<br />

the possibility to compose a set of concerns, incrementally, until the whole system is obtained, a<br />

composition rule takes the form:<br />

<br />

where a Term can be a concern or a sub-composition (which is another composition rule) and the<br />

Operator represents the operator relating both terms. The operators are the same of the AORA second<br />

version.<br />

Similarly to what has been done to define the concern type, the XML schema was defined to represent<br />

composition rules. A composition rule is defined for each match point by using the MP tag that<br />

encapsulates all its simpler composition rules. The MP tag is composed of: Name, ListOfConcerns<br />

and ListOfCompositionRules (see Figure 9.4).<br />

Figure 9.4 XML schema for composition in a match point<br />

192


• Name element defines a unique name for the match point. Again, since all names in our<br />

solution are seen as keys, uniqueness is required.<br />

• ListOfConcerns lists the concerns that compose a given match point.<br />

• ListOfCompositionRules represents the set of all composition rules that take part in a<br />

match point. It is composed of CompositionRule element.<br />

The CompositionRule element is composed of:<br />

• A Term that can be a simpler CompositionRule or a ConcernName.<br />

• An Operator tag defining the operators.<br />

• An OutCome tag expressing the result of constraining the concerns’ responsibilities by<br />

means of the operators described before.<br />

In summary, the novelties introduced in this third version were:<br />

• It offers a rigorous means to support and extend the specification and composition<br />

activities using an XML-based language.<br />

• It offers a tool to support the AORA approach.<br />

• It uses an XML Schema to guarantee information independency between representations,<br />

promoting traceability of concerns through the software development phases.<br />

Looking at the AORA third version, we still have several parts to refine, extend and test. The<br />

following tasks needed to be done and were accomplished in the final version:<br />

• Define composition rules at a finer level of granularity, i.e. compose crosscutting actions<br />

or behaviour with the requirements it cuts across.<br />

• Define a visual integrated notation, probably based on UML.<br />

• Explore how fuzzy logic can be applied to help solving conflicts that can arise when<br />

concerns contribute negatively to each other need to coexist in the same match point.<br />

• Improve the tool to minimize error occurrence and omissions in the systems’<br />

requirements.<br />

• Define an AORA metamodel to add more rigour to the AORA basic notions.<br />

193


9.4 Major problems and their resolution<br />

During the AORA development it was important to keep in mind that we wanted to handle<br />

crosscutting and non-crosscutting concerns at the requirements level. During our work, we identified<br />

the following important issues for the approach:<br />

• Identification of crosscutting concerns.<br />

• Representation of crosscutting and non-crosscutting concerns.<br />

• Composition of crosscutting and non-crosscutting concerns.<br />

• Trade-off analysis technique to solve conflicts.<br />

• Tool support.<br />

This section summarizes the problems we faced during the development of the AORA approach to<br />

find solutions for the above issues and for the tasks that remained to do after the third version.<br />

Identify crosscutting and non-crosscutting concerns. In the AORA approach the identification of<br />

concerns is accomplished by analysing the documents available, including existing stakeholders’<br />

interview transcripts, to understand the system domain. Further interviews to the stakeholders might<br />

be required. These are common general ideas used by the object-oriented community, and help the<br />

identification of functional requirements. After the application of the AORA first version, we propose<br />

the use of existing catalogues, such as the ones developed by (Wiegers, 2003) and (Chung, 2000) to<br />

alleviate the onus of the identification of the broadly scoped requirements. These catalogues are a<br />

source of interesting information about concepts and terminology on non-functional requirements,<br />

promoting reusability and are used in the AORA final version (see <strong>Chapter</strong> 4).<br />

Typical examples of crosscutting concerns are non-functional requirements or quality attributes, such<br />

as security, fault tolerance and persistency, because they can affect several requirements<br />

simultaneously. However, crosscutting concerns can also be functional requirements, such as auditing,<br />

or validation, so we need a systematic process to identify crosscutting concern, functional or non-<br />

functional. So, in the AORA final version the identification of crosscutting concerns is accomplished<br />

by taking into account the information in the Required Concerns row of the AORA template (see<br />

<strong>Chapter</strong> 4). A concern is crosscutting if it is required by two or more other concerns.<br />

Specify concerns. Because existing techniques to specify requirements, such as use cases or<br />

viewpoints, cannot encapsulate crosscutting concerns, a technique is needed to specify all types of<br />

concerns (Jacobson, 1992; Finkelstein, 1996). At the beginning the AORA template was used only to<br />

194


specify a quality attributes; the functional concerns were specified using UML diagrams, such as<br />

sequence diagrams. However, a crosscutting concern can also be a functional one, so we needed an<br />

uniform treatment of the various types of concerns in a system. According to this, we moved to a more<br />

“multi-dimensional” strategy i.e., a unique template was proposed to treat all the concerns in a uniform<br />

fashion, independently of their crosscutting nature, as described in <strong>Chapter</strong> 4. So, it made sense to<br />

think in terms of concerns, instead of kinds of concerns and the information about each concern has<br />

been collected in that a unique template.<br />

At the beginning of the AORA approach, we could not write a valid expression to the concern’s<br />

behaviour. To solve this problem a Responsibility row was added to the template of the AORA final<br />

version to refine the concerns in terms of responsibilities, i.e., to be able to describe the concern’s<br />

behaviour.<br />

From the very beginning, we have chosen UML to model concerns. UML 2.0 was used in the AORA<br />

final version (see <strong>Chapter</strong> 5) for five main reasons:<br />

• It is a standard and a general-purpose language.<br />

• It offers extension mechanisms that allow the representation of new concepts that are not<br />

part of the core of UML.<br />

• It supports sequence diagrams that help us expressing concerns responsibilities to provide<br />

a more rigorous level of refinement.<br />

• It offers a seamless transition of concerns to the next level of the development process.<br />

• It promotes reuse of behaviour by offering interaction occurrences.<br />

Moreover, an extension of the UML metamodel was used to define the main specification concepts of<br />

the AORA final version, allowing a language designer or methodologist to better capture, analyze and<br />

understand our approach (see <strong>Chapter</strong> 4).<br />

Another modelling technique we adopted in the AORA final version is the Softgoal Interdependency<br />

Graphs (SIG). A SIG can be used to specify non-functional requirements Chung et al., complementing<br />

other the visual models (Chung, 2000). A SIG is a hierarchy graph that shows the interdependencies<br />

between softgoals (or non-functional requirements). Based on these interdependencies, we identify<br />

concerns that can be decomposed into simpler ones.<br />

Compose concern. Composition, apart from allowing the stakeholders, including developers, to<br />

picture the whole system, allows them to identify conflicting situations. This offers the opportunity to<br />

establish critical trade-offs before the architecture design is derived, supporting the necessary<br />

195


negotiations among the stakeholders. In the first version of the AORA approach, the composition is<br />

accomplished by “weaving” the quality attributes with the functional requirements in three different<br />

ways: overlapping, overriding and wrapping. We compose quality attributes with functional<br />

requirements by using both standard diagrammatic representations (e.g. use case diagram, interaction<br />

diagrams) and by new diagrams.<br />

In the second version of the AORA approach we introduced the notions of match point and<br />

composition rule to promote a more rigorous and systematic composition task. The identification of<br />

match points was accomplished based on row Interrelationships and tells us which crosscutting<br />

concerns should be composed with a given concern. This match point definition only allows the<br />

composition of crosscutting concerns, so this notion was substituted by another in the last AORA<br />

version: a match point tells us which concerns, non-crosscutting or crosscutting, should be composed.<br />

During the second version of AORA approach, we substituted the overlapping, overriding and<br />

wrapping concepts for the composition operators inspired on LOTOS: enabling, disabling, pure<br />

interleaving and full synchronization. The LOTOS operators inspire the composition between<br />

concerns used in AORA approach because they show the temporal order of the composition and<br />

because they are simpler to understand (Brinksma, 1988). However, at the AORA third version we<br />

cannot rigorously talk about a concern’s behaviour to be able to define composition rules at a finer<br />

level of granularity. This granularity will help us study how the concerns are mapped onto functions,<br />

aspects or a design decision.<br />

As well as in the specification concern task, UML 2.0 was used to model concern composition because<br />

it supports sequence diagrams that help us expressing composition rules to provide a more rigorous<br />

level of refinement.<br />

Trade-off analysis. These situations were initially handled based on intuitive and very simple<br />

reasoning methods that are error prone and do not allow a rigorous engineering approach to the<br />

problem. The main limitations of these reasoning methods are:<br />

• Each concern must be allocated one single different importance using intuition.<br />

• Conflict handling is based on one criterion, the importance, not considering other<br />

parameters that may have an impact on the decision.<br />

• Different stakeholders may have different interests on the same concern, and the relative<br />

importance/power of each one might be different (so their relative position might have to<br />

be taken into account).<br />

196


• Trade-offs must be negotiated informally with the stakeholders without any rigorous and<br />

systematic analysis technique or tool.<br />

• It was with these limitations in mind that we started exploring rigorous alternatives that<br />

could be used effectively without having to rely so strongly on a single criterion<br />

(importance), taking into consideration other possible useful information collected during<br />

the application of the methods.<br />

Because these processes may lead to wrong decisions, the last version of the AORA approach<br />

proposes Multiple Criteria Decision Making methods that help us deal with these type of problems as<br />

we described in more detail in <strong>Chapter</strong> 6 (Triantaphyllou, 2000).<br />

Tool support. The AORA tool described in <strong>Chapter</strong> 5 is an extension of the tool described in (Soeiro,<br />

2006). This new tool guarantees consistency and completeness of the concerns specifications and the<br />

composition rules to minimize error occurrence and omissions in the systems’ requirements. To<br />

accomplish this, a new XML Schema was created (for more details see <strong>Chapter</strong> 5).<br />

Moreover, this tool:<br />

• Traces concerns from requirements to the specification and composition of concerns,<br />

through the History feature and Source attribute.<br />

• Offers import and export interfaces to XML to exchange concerns’ data with other<br />

applications.<br />

• Helps requirements engineering and stakeholders to store and manage concern<br />

specifications and compositions.<br />

• Facilitates navigation through multiple views.<br />

9.5 Conclusions<br />

This chapter focused on the previous versions of the AORA approach. It presented the three main<br />

versions of the AORA since the beginning of this PhD. The chapter finishes by presenting the<br />

problems and the solutions we found during the AORA development, justifying our approach.<br />

197


198


199<br />

<strong>Chapter</strong> 10<br />

Conclusions and Future Work<br />

This chapter reviews the goals of this PhD thesis, discusses how these goals were pursued and<br />

achieved, and suggests possible future enhancements and developments.<br />

10.1 Summarising the goals of the thesis<br />

The purpose of this PhD thesis was to address crosscutting and non-crosscutting concerns at the<br />

requirements engineering level. To this end, ideas from aspect-orientation, non-functional<br />

requirements and requirements engineering were combined and the higher-level goal subdivided into<br />

eight sub-goals:<br />

• Identify crosscutting concerns, functional and non-functional, in requirements documents.<br />

• Encapsulate crosscutting concerns in separate modules, so that modularization is<br />

promoted.<br />

• Avoid the tyranny of the dominant decomposition symptoms by treating concerns<br />

uniformly, independently from their intrinsic nature.<br />

• Compose crosscutting and non-crosscutting concerns to clearly understand the<br />

relationships among them, supporting the identification analysis of critical trade-offs early<br />

in the development.


• Identify and rigorously resolve conflicts between concerns.<br />

• Offer minimal support for concerns traceability.<br />

• Develop tool support to manage concern specifications and compositions.<br />

• Assess the approach through independent case studies and users, as well as empirically<br />

evaluate and compare AORA with respect to other <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong><br />

Engineering approaches.<br />

10.2 Results of the thesis<br />

This PhD work contributes to a seamless approach for aspect-orientation, supporting separation,<br />

specification, conflict resolution and composition of crosscutting and non-crosscutting concerns at the<br />

requirements level. To accomplish these, the <strong>Aspect</strong>-<strong>Oriented</strong> Requirement <strong>Analysis</strong> (AORA)<br />

approach proposed process model, metamodel, techniques, guidelines and tools.<br />

The AORA process model is proposed to identify, specify and compose crosscutting and non-<br />

crosscutting concerns. This model is composed of three main plans: identification, specification and<br />

composition of concerns. The identification plan is supported by a set of tasks that allows the<br />

identification of concerns and the collection of information that is important to validate them, for<br />

example, the identification of stakeholders and the sources. This is accomplished by analysing the<br />

available documents, including existing stakeholders’ interview transcripts, to understand the system<br />

domain. Further interviews to the stakeholders might be required. We also propose the use of existing<br />

catalogues, such as the ones developed by (Wiegers, 2003) and (Chung, 2000) to alleviate the onus of<br />

the identification of the broadly scoped requirements. These catalogues are a source of interesting<br />

information about concepts and terminology particularly on non-functional requirements, promoting<br />

reusability.<br />

The specification plan, describes the identified concerns, as they are discovered, using a unique<br />

template to treat all the concerns in a uniform fashion, independently of their intrinsic nature. This<br />

template collects relevant information to identify conflicts and help in their resolution, through the<br />

contribution and priority rows. Moreover, the template supports some backward traceability by using<br />

source and stakeholder rows information. It also helps identifying crosscutting concerns, through an<br />

analysis of the Required Concerns row in the template.<br />

The composition plan, apart from allowing the system stakeholders, including developers, to picture<br />

the whole system, allows them to identify conflicting situations. This offers the opportunity to<br />

200


establish critical trade-offs before the architecture design is derived, supporting the necessary<br />

negotiations among the stakeholders. We introduced the notions of match point and composition rule<br />

to promote a more rigorous and systematic composition activity. The composition operators used in<br />

the composition rules were inspired on the LOTOS operators because they show the temporal order of<br />

the composition and because they are simple to understand (Brinksma, 1988).<br />

The main AORA concepts were defined as an extension of the UML metamodel in <strong>Chapter</strong> 4,<br />

allowing a language designer or methodologist to better capture, analyze and understand our approach.<br />

A UML profile was defined to represent an instance of the AORA metamodel.<br />

A tool to support AORA was developed, facilitating the specification of concerns, the identification of<br />

crosscutting concerns, the definition of composition rules and the generation of the match points table.<br />

The tool guarantees consistency of the concerns’ specifications and the composition rules, minimizing<br />

error occurrence and requirements omissions. It also offers import and export interfaces to XML to<br />

exchange concerns’ data with other applications. Finally, the multiple views facilitate the navigation<br />

within the approach.<br />

A set of guidelines were proposed to support horizontal forward traceability. Horizontal forward<br />

traceability is achieved by relating the concern specifications and the composition rules to design<br />

artefacts using guidelines to build UML models and record this information in traceability matrices.<br />

Each element of the concern template may be mapped onto one or more UML model elements. Tool<br />

functionalities were proposed to support backward horizontal traceability as well as vertical<br />

traceability. The tool helps tracing concerns from requirements to the specification and composition<br />

rules through the History feature and the Source attribute, as well, as tracing concern relationships.<br />

Thanks to these guidelines and the tool functionalities, our approach promotes better understanding of<br />

concerns and supports stakeholders’ validation of specifications and compositions.<br />

AORA conflict management is handled during composition, where conflicting situations may emerge<br />

in a given match point. In this context, a conflict occurs any time two or more concerns that contribute<br />

negatively to each other, and have the same priority, need to be composed in the same match point. It<br />

is important to understand well each concern, study the level of impact that each one may have on<br />

others and decide on their relative importance before any solution decision is made.<br />

The AORA conflict management method explained in <strong>Chapter</strong> 6 uses a particular multi-criteria<br />

analysis method, the Analytical Hierarchical Process proposed by Saaty, to find, given a set of<br />

alternatives and a set of decision criteria, the best alternative for a given problem (Saaty, 1980). Such a<br />

technique is not only useful in the context we have described here, but it looks very promising as a<br />

201


tool to support architectural choices during the software architecture design. We also compared<br />

Analytical Hierarchical Process with a classical weighted average method (Triantaphyllou, 2000) and<br />

the results proved that selecting the appropriate Multi-Criteria Decision Making is always a question<br />

of trade-offs between advantages of each method (Brito, 2007). In this work we noticed that the<br />

Analytical Hierarchical Process method ensures more psychological robustness in classifying the<br />

concerns, logical consistency and better interpretability at the expense of longer time to formulate and<br />

calculate the results (Brito, 2007).<br />

The evaluation strategy described in <strong>Chapter</strong> 7 highlights the strengths and weakness of AORA.<br />

According to the results of the evaluation, AORA seems one of the most complete AORE approaches,<br />

when compared with other four AORE approaches. The application of AORA approach to real case<br />

studies in the context of the SOFTAS and ASSD projects indicates that this approach reaching some<br />

maturity (ASSD, 2006; SOFTAS, 2007).<br />

Model-Driven Development (MDD) technologies are explored to refine AORA, preparing it for an<br />

integrated MDD development, in <strong>Chapter</strong> 8. The idea was to refine AORA according to the MDD<br />

principles so that transformations can later be used to derive new models for the following<br />

development stages. The difficulties in obtaining the first model from where transformations can then<br />

be applied to evolve the models are well-acknowledged (Kovacevic, 2007). This proposal contributed<br />

with a modest step forward towards helping solving this problem. From the AORA perspective only,<br />

the use of MDD also brings added value to our results, since: (i) the AORA concepts and their<br />

relationships are described more rigorously, and, finally (ii) the approach is now prepared to be used in<br />

a seamless MDD development framework. The AORA refinement is accomplished via the concerns’<br />

specification and composition source metamodel packages described in <strong>Chapter</strong> 4. A set of guidelines<br />

are applied to these source metamodel packages to obtain new metamodel elements that support the<br />

AORA target metamodel. An extension of the AORA UML profile is proposed to instantiate the<br />

metamodels and to obtain concrete AORA models.<br />

We illustrate the AORA approach, the guidelines for forward traceability, the tool and the application<br />

of the Analytical Hierarchical Process and weighted average methods by using the Subway system<br />

case study.<br />

10.3 Future work on AORA<br />

There is still room to improve AORA. On the one hand, the identification of concerns, which was<br />

never our goal to automate, could be improved by using natural language processing tools to mine<br />

202


frequently used terms and semantically meaningful relationships to support semantic-based<br />

composition, instead of syntactic composition. Consequently, this would help the identification of<br />

crosscutting concerns, in particular the ability to identify crosscutting functional concerns.<br />

Another area of further research is related to conflict management. Explore other methods from both<br />

the crisp and fuzzy multi-criteria domains to assess which method is more appropriate to solve other<br />

kinds of conflicts that could emerge at the requirements level. Moreover, we need to explore other<br />

methods to identify other kinds of conflicts that could emerge at requirements level. At this moment,<br />

<strong>Aspect</strong> <strong>Oriented</strong> <strong>Requirements</strong> approaches improve concerns composition though interactions and<br />

these interactions could be either about temporal dependencies between requirements (or concerns), or<br />

some kind of semantic interdependency (Chitchyan, 2007b). Once such dependencies are expressed,<br />

these interrelationships can be analyzed for identify temporal and semantic conflicts.<br />

In what concerns tool support, the AORA tool needs to be extended to incorporate a parser to integrate<br />

a reference model to support forward traceability. Adopting a reference traceability metamodel would<br />

greatly help this activity.<br />

Finally, we also need to study how the level of granularity and dependency between concerns can<br />

influence the decision process. The refinement of concerns will help us study the level of granularity at<br />

which a conflicting situation can be handled. We already started to tackle this problem by refining<br />

concerns and their responsibilities so that composition rules can be defined at a finer granularity level.<br />

Our first attempt at preparing AORA for a model-driven development approach is still to develop<br />

further. As pointed out in the future work listed in <strong>Chapter</strong> 8.<br />

10.4 Final remarks<br />

There are currently a significant number of aspect-oriented requirements approaches. The approach<br />

presented here undertakes some of the aspect-requirements engineering goals and principals, which<br />

have been neglected by some approaches, such as treating all kinds of requirements systematically.<br />

More needs to be done to improve identification, specification and composition of crosscutting<br />

concerns, as well as traceability to the next stages of the development process. AORA, with its<br />

associated process, techniques and tool, supports some of the identification, specification, composition<br />

and conflict management problems.<br />

203


We have shown that it is possible to bridge the gap left by the traditional requirements engineering<br />

approaches by providing systematic means for the identification, modularization, representation and<br />

composition of crosscutting requirements, both functional and non-functional.<br />

The idea for this PhD work was born in 2000 when I approached my supervisor in a conference<br />

requesting a topic for my PhD. <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering was then a novel idea and,<br />

as far as we knew, nobody else was addressing the topic yet. For a couple years, AORA was a hot and<br />

innovative topic. Later, around 2003, other researchers started working on the topic, giving birth to the<br />

Early-<strong>Aspect</strong>s movement (www.early-aspects.net), and many more joined the field in coming years.<br />

During all this time, I have done my research while being a full-time lecturer at Instituto Politécnico<br />

de Beja. Initially I thought I could count with one year leave from teaching and dedicate myself to this<br />

work. That period was later reduced to one semester. At the end, I couldn’t count with that semester<br />

either and ended up having to substitute a colleague that fell sick.<br />

So, knowing the difficulties in finding free time for this research, my supervisor suggested I should<br />

start working and register as a PhD student only later. I have followed her advice and submitted the<br />

PhD plan in 2002 and later registered as a PhD student in 2004.<br />

Personally, at the end of these five years of research, I realize that a thesis is never strictly finished.<br />

There are many things that are left to be done and the project could last forever. However, my personal<br />

goals are achieved. I have acquired new knowledge and gained new experiences through the projects<br />

related to AORA in which I was involved along the time. From the challenges that are still left to<br />

investigate in the near future, I would definitely choose to invest my energy on contributing to a<br />

seamless model-driven development from AORA and on conflict management.<br />

204


205<br />

References<br />

ACM (2001). "Special Issue on <strong>Aspect</strong>-<strong>Oriented</strong> Programming." Communications of the ACM.<br />

44(10).<br />

Agostinho, S. (2006). <strong>Aspect</strong> Specification for the Space Domain and <strong>Aspect</strong> Development Assistant<br />

Tools. Master dissertation. Faculdade de Ciências da Universidade Nova de Lisboa. Portugal.<br />

http://aosd.di.fct.unl.pt/sergioag/dissertation.html.<br />

Alves, C., Finkelstein, A. (2003). "Investigating Conflicts in COTS Decision-Making." International<br />

Journal of Software Engineering & Knowledge Engineering. 13(5): 1-21.<br />

Annett, J. (2004). Hierarchical Task <strong>Analysis</strong>: The Handbook of Task <strong>Analysis</strong> for Human-Computer<br />

Interaction. Diaper, D., Stanton, N. (eds). 67-82.<br />

AOSD-European Network of Excellence (2007). http://www.aosd-europe.net/.<br />

Araújo, J., Baniassad, E., Clements, P., Moreira, A., Rashid, A., Tekinerdogan, B. (2005). Early<br />

<strong>Aspect</strong>s: The Current Landscape. TR: CMU/SEI-2005-TN-xxx. http://trese.cs.utwente.nl/early-<br />

aspects-AOSD2005/Papers/Early<strong>Aspect</strong>s-LandscapePaper-FirstDraft-2005.pdf.<br />

Araújo, J., Whittle, J., Kim, D. (2004). Modeling and Composing Scenario-Based <strong>Requirements</strong> with<br />

<strong>Aspect</strong>s. In 12th <strong>Requirements</strong> Engineering Conference (RE'04), Kyoto, Japan, IEEE Computer<br />

Society. 58-67.<br />

<strong>Aspect</strong>C Project (2007). http://www.cs.ubc.ca/labs/spl/projects/aspectc.html.<br />

<strong>Aspect</strong>J Project (2007). http://www.eclipse.org/aspectj/.<br />

ASSD (2006). <strong>Aspect</strong> Specification for the Space Domain project.<br />

http://www2.uninova.pt/ca3/en/project_ASSD.htm.<br />

Baniassad, E., Clarke, S. (2004). Theme: An Aproach for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Analysis</strong> and Design. In<br />

26th International Conference on Software Engineering (ICSE'04), Edinburgh, Scotland, IEEE<br />

Computer Society. 158-167.


Baniassad, E., Clarke, S. (2004a). Finding <strong>Aspect</strong>s in <strong>Requirements</strong> with Theme/Doc. In Early<br />

<strong>Aspect</strong>s Workshop: <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture Design at 3rd<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development International Conference (AOSD'04), Lancaster, UK.<br />

http://trese.cs.utwente.nl/workshops/early-aspects-2004/Papers/Baniassad-Clarke.pdf.<br />

Baniassad, E., Clements, P., Araújo, J., Moreira, A., Rashid, A., Tekinerdogan, B. (2006).<br />

"Discovering Early <strong>Aspect</strong>s." IEEE Software Special Issue on <strong>Aspect</strong>-<strong>Oriented</strong> Programming. 23(1):<br />

61-70.<br />

Barais, O., Cariou, E., Duchien, L., Pessemier, N., Seinturier, L. (2004). TranSAT: A Framework for<br />

the Specifcation of Software Architecture Evolution. In Coordination and Adaptation Techniques for<br />

Software Entities Workshop at 18th European Conference on Object-<strong>Oriented</strong> Programming<br />

(ECOOP'04), Oslo, Norway.<br />

http://wcat04.unex.es/papers/04_barais_cariou_duchien_pessemier_seinturier.pdf.<br />

Bell, D. (2004). UML's Sequence Diagram, IBM. http://www-<br />

106.ibm.com/developerworks/rational/library/3101.html.<br />

Berg, K., Conejero, J. (2005). A Conceptual Formalization of Crosscutting in AOSD. In Workshop on<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development at X Jornadas de Ingenieria del Software y Bases de Datos<br />

(JISBD'05), Granada, Spain.<br />

http://trese.cs.utwente.nl/publications/files/0367VanDenBerg%20Conceptual%20Formalization%20Cr<br />

osscutting-Final.pdf.<br />

Bergmans, L., Aksit, M. (2000). Composing Software from Multiple Concerns: A Model and<br />

Composition Anomalies. In Multi-Dimensional Separation of Concerns in Software Engineering<br />

Workshop at 22nd International Conference on Software Engineering (ICSE'00), Limerick, Ireland,<br />

http://www.research.ibm.com/hyperspace/workshops/icse2000/papers-index.htm.<br />

Bézivin, J. (2005). Tutorial on Model Driven Engineering: Principels, Scope, Deployments and<br />

Applicability. International Summer School, Generative and Transformational Technique in Software<br />

Engineering, Braga, Portugal.<br />

Boehm, B., Bose, P., Horowitz, E., Ming-June, L. (1994). Software <strong>Requirements</strong> as Negotiated Win<br />

Conditions. In 1st <strong>Requirements</strong> Engineering Conference (RE'94), Colorado Springs, USA, IEEE<br />

Computer Society. 74-83.<br />

206


Boehm, B., Hoh, I. (1996). "Identifying Quality-Requirement Conflicts." IEEE Software Journal.<br />

IEEE Computer Society. 13(2): 25-35.<br />

Boehm, B., Madachy, R. (1998). "Using the WinWin Spiral Model: A Case Study." IEEE Computer<br />

Journal. IEEE Computer Society. 31(7): 33-44.<br />

Brackett, J. (1990). Software engineering. Software Engineering Institute, Carnegie Mellon<br />

University. TR: SEI-CM-19-1.2, ADA235642. http://gd.tuwien.ac.at/softeng/sei/sei.documents.pdf.<br />

Brinksma, E. (1988). Information Processing Systems -- Open Systems Interconnection -- LOTOS: A<br />

Formal Description Technique Based on the Temporal Ordering of Observational Behaviour. ISO<br />

8807.<br />

Brito, I., Moreira A. (2004). Integrating the NFR approach in a RE model. In Early <strong>Aspect</strong>s<br />

Workshop: <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture Design at 3rd <strong>Aspect</strong>-<br />

<strong>Oriented</strong> Software Development Conference (AOSD'04), Lancaster, UK.<br />

http://trese.cs.utwente.nl/workshops/early-aspects-2004/Papers/BritoMoreira.pdf.<br />

Brito, I., Moreira, A. (2003a). Towards a Composition Process for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong>. In<br />

Early <strong>Aspect</strong>s Workshop: <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture Design at 2nd<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development Conference (AOSD'03), Boston, USA.<br />

http://www.cs.bilkent.edu.tr/AOSD-Early<strong>Aspect</strong>s/Papers/BritoMoreira.pdf.<br />

Brito, I., Moreira, A. (2003b). Advanced Separation of Concerns for <strong>Requirements</strong> Engineering. In<br />

VIII Jornadas de Ingeniería del Software y Base de Datos (JISBD'03), Alicante, Spain. 47-56.<br />

Brito, I., Moreira, A., Araújo, J. (2002). A <strong>Requirements</strong> Model to Quality Attributes. In Early<br />

<strong>Aspect</strong>s Workshop: <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> Engineering and Architecture Design at 1st<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development Conference (AOSD'02), Enschede, The Netherlands.<br />

http://trese.cs.utwente.nl/AOSD-Early<strong>Aspect</strong>sWS/Papers/Brito.pdf.<br />

Brito, I., Moreira, A., Araújo, J. (2006a). Towards an Integrated Approach for <strong>Aspect</strong>ual<br />

<strong>Requirements</strong>. In 14th IEEE <strong>Requirements</strong> Engineering Conference (RE'06), Minneapolis, USA, IEEE<br />

Computer Society. 334 - 335.<br />

Brito, I., Moreira, A., Araújo, J. (2006b). Tool Support for <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong>. In 10th<br />

IASTED International Conference on Software Engineering and Applications (SEA'06), Dallas,<br />

Texas, USA, Acta Press. http://www.actapress.com/Abstract.aspx?paperId=28877.<br />

207


Brito, I., Vieira, F., Moreira, A., Ribeiro, R. (2007). "Handling Conflicts in <strong>Aspect</strong>ual <strong>Requirements</strong><br />

Compositions." Transaction on <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Special Issue on Early<br />

<strong>Aspect</strong>s, Lecture Notes in Computer Science, Springer. 4620: 144-166.<br />

CAESAR (2007). http://caesarj.org/.<br />

Chen, S., Hwang, C., Hwang, F. (1992). Fuzzy Multiple Attribute Decision Making: Methods and<br />

Application. 9780387549989. Springer-Verlag.<br />

Chitchyan, R., Rashid, A.,Waters, R., Brito, I., Moreira, A., Araújo, J. (2007b). <strong>Requirements</strong>-Level<br />

<strong>Aspect</strong>ual Trade-off <strong>Analysis</strong> Approach. TR:AOSD-Europe-ULANC-28. http://www.aosd-<br />

europe.net/deliverables/d74.pdf.<br />

Chitchyan, R., Rashid, A., Rayson, P.,Waters, R. (2007a). Semantics-Based Composition for <strong>Aspect</strong>-<br />

<strong>Oriented</strong> <strong>Requirements</strong> Engineering. In 6th <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Conference<br />

(AOSD'07), Vancouver, Canada, ACM Press. 36-48.<br />

Chitchyan, R., Rashid, A., Sawer, P., Garcia, A., Alarcon, M., Bakker, J., Tekinerdogan, B., Clarke,<br />

S., Jackson, A. (2005). Survey of <strong>Analysis</strong> and Design Approaches. TR: AOSD-Europe-ULANC-9.<br />

http://www.comp.lancs.ac.uk/computing/aose/papers/d11.pdf.<br />

Chitchyan, R., Sampaio, A., Rashid, A., Sawer, P., Khan, S. (2006). Initial Version of <strong>Aspect</strong>-<strong>Oriented</strong><br />

<strong>Requirements</strong> Engineering Model. TR: AOSD-Europe-ULANC-17. http://www.aosd-<br />

europe.net/deliverables/d36.pdf.<br />

Chung, L., Nixon, B. (1995). Dealing with Non -Functional <strong>Requirements</strong>: Three Experimental<br />

Studies of a Process-<strong>Oriented</strong> Approach. In 17th International Conference on Software Engineering<br />

(ICSE'95), Seattle, USA, ACM Press. 25-37.<br />

Chung, L., Nixon, B., Yu, E., Mylopoulos, J. (2000). Non-Functional <strong>Requirements</strong> in Software<br />

Engineering. 0-7923-8666-3. Kluwer Academic Publishers.<br />

Clarke, S., Baniassad, E. (2005). <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Analysis</strong> and Design: The Theme Approach. 978-<br />

0321246745. Addision-Wesley.<br />

Clarke, S., Walker, R. (2001). Composition Patterns: An Approach to Designing Reusable <strong>Aspect</strong>s. In<br />

23rd International Conference on Software Engineering, (ICSE'01), Ontario, Canada, ACM Press. 5-<br />

14.<br />

Composition Filters Project (2007). http://trese.cs.utwente.nl/oldhtml/composition_filters/.<br />

208


Cornell, K., Funk, E., Nguyen, D., Ruest, D. (2007). Dynamically Configurable Model-to-Model<br />

Transformation Engine, http://www.freshpatents.com/Dynamically-configurable-model-to-model-<br />

transformation-engine-dt20060615ptan20060130009.php.<br />

Costello, R., Liu, D. (1995). "Metrics for <strong>Requirements</strong> Engineering." Journal of Systems and<br />

Software. 29(1): 39-63.<br />

Dardenne, A., Van Lamsweerde, A., Fickas, S. (1993). "Goal-Directed <strong>Requirements</strong> Acquisition."<br />

Science of Computer Programming Journal. ACM Press. 20(1-2): 3-50.<br />

Dijkstra, E. (1976). A Discipline of Programming. 0-13-215871-X. Prentice-Hall.<br />

Dong, W., Wong, F. (1987). "Fuzzy Weighted Averages and Implementation of the Extension<br />

Principle." Fuzzy Sets and Systems. ACM Press. 21(2): 183-199.<br />

Dusire, S., Flynn, M., Dardenne, N. (2002). <strong>Requirements</strong> Engineering: Applying Theory to Reality.<br />

In 10th <strong>Requirements</strong> Engineering Conference (RE'02), Essen, Germany, IEEE Computer Society.<br />

300-302.<br />

Ebert, C., Dumke, R., Bundschuh, M., Schmietendorf, A. (2005). Best Practices in Software<br />

Measurement. How to Use Metrics to Improve Project and Process Performance. 3-540-20867-4.<br />

Springer.<br />

eXist (2005). http://exist.sourceforge.net/.<br />

Fernandes, L. (2005). An <strong>Aspect</strong>-<strong>Oriented</strong> Approach to Model <strong>Requirements</strong>. In 13th <strong>Requirements</strong><br />

Engineering Conference (RE'05), Doctoral Consortium, Paris, France. http://www.inf.puc-<br />

rio.br/~lyrene/silva_dc-re2005.pdf.<br />

Ferreira, R., Moura-Pires, J. (2007). Extensible Metadata Repository for Information Systems and<br />

Enterprise Applications. In 9th International Conference on Enterprise Information Systems<br />

(ICEIS'07), Funchal, Portugal. 344-350.<br />

Ferreira, R., Raminhos, R., Moreira, A. (2005). Metadata Driven <strong>Aspect</strong> Specification. In Workshop<br />

on <strong>Aspect</strong> <strong>Oriented</strong> Modeling at 8th Model Driven Engineering Languages and Systems Conference<br />

(MoDELS'05), Montego Bay, Jamaica. http://dawis2.icb.uni-<br />

due.de/events/AOM_MODELS2005/Ferreira.pdf.<br />

Filman, R., Elrad, T., Clarke, S., Aksit, M. (2005). <strong>Aspect</strong>-<strong>Oriented</strong> Software Development. 0.321-<br />

21976-7. Addison-Wesley.<br />

209


Finkelstein, A., Sommerville, I. (1996). "The Viewpoints FAQ." Software Engineering Journal:<br />

Special Issue on Viewpoints for Software Engineering. IEE/BCS. 11(1): 2-4.<br />

France, R., Ghosh, S. (2004). "A UML-Based Pattern Specification Technique." IEEE Transactions on<br />

Software Engineering. IEEE Computer Society. 30(3): 193-207.<br />

France, R., Rumpe, B. (2007). Model-Driven Development of Complex Software: A Research<br />

Roadmap. In Future of Software Engineering Conference, Minneapolis, USA, IEEE Computer<br />

Society. 37-54.<br />

Garcia, A., Sant'Anna, C., Chavez, C., Silva, V., Lucena, C., Von Staa, A. (2004). "Separation of<br />

Concerns in Multi-Agent Systems: An Empirical Study." Software Engineering for Multi-Agent<br />

Systems II. Lecture Notes in Computer Science, Springer. 2940: 49-72.<br />

Garcia, A., Sant'Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., Von Staa, A. (2005). Modularizing<br />

Design Patterns with <strong>Aspect</strong>s: a Quantitative Study. In 4th <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

Conference (AOSD'04), Chicago, USA, ACM Press. 3-14.<br />

Geldermann, J., Spengler, T., Rentz, O. (2000). "Fuzzy Outranking for Environmental Assessment.<br />

Case Study:Iron and Steel Making Industry." Fuzzy Sets and Systems Journal. Elsevier. 115(1): 45-65.<br />

Gilb, T., Graham, D. (1993). Software Inspection. 0-201-63181-4. Addison-Wesley.<br />

Glinz, M., Wieringa R. (2007). "Stakeholders in <strong>Requirements</strong> Engineering." IEEE Software. IEEE<br />

Computer Society. 24(2): 18-21.<br />

Gotel, O., Finkelstein, A. (1994). An <strong>Analysis</strong> of the <strong>Requirements</strong> Traceability Problem. In 1st<br />

<strong>Requirements</strong> Engineering Conference (RE'94), Colorado, USA. IEEE Computer Society. 94-102.<br />

Grundy, J. (1999). <strong>Aspect</strong>-oriented <strong>Requirements</strong> Engineering for Component-based Software<br />

Systems. In 4th <strong>Requirements</strong> Engineering Conference (RE'99), Limerick , Ireland, IEEE Computer<br />

Society. 84-91.<br />

Hailpern, B., Tarr, P. (2006). "Model-Driven Development: The Good, the Bad, and the Ugly." IBM<br />

System Journal. 45(3).<br />

Harrison, W., Ossher, H.,Tarr, P. (2002). Asymmetrically vs. Symmetrically Organized Paradigms for<br />

Software Composition. IBM Research Division. TR: RC22685.<br />

http://domino.watson.ibm.com/library/cyberdig.nsf/papers/2A4097E93456D0CF85256CA9006DAC2<br />

9/$File/RC22685.pdf.<br />

210


Herrero, J., Sánchez, F., Lucio, F., Toro, M. (2000). Introducing Separation of <strong>Aspect</strong>s At Design<br />

Time. In <strong>Aspect</strong>s and Dimensions of Concerns Workshop at 14th European Conference on Object-<br />

oriented Programming (ECOOP'00), Cannes, France.<br />

Hunter, J., McLaughlin, B. (2005). Easy Java/XML integration with JDOM.<br />

http://www.javaworld.com.<br />

HyperJ (2007). http://www.alphaworks.ibm.com/tech/hyperj.<br />

IEEE 610.12 (1990). IEEE Standard Glossary of Software Engineering Terminology. IEEE Computer<br />

Society.<br />

http://ieeexplore.ieee.org/iel1/2238/4148/00159342.pdf?isnumber=4148&prod=STD&arnumber=1593<br />

42&arSt=&ared=&arAuthor=.<br />

IEEE 1471 (2000). IEEE Recommended Practice for Architectural Description of Software-Intensive<br />

Systems. IEEE Computer Society. http://www.enterprise-<br />

architecture.info/Images/Documents/IEEE%201471-2000.pdf.<br />

Jacobson, I., Booch, G., Rumbaugh, J. (1998). The Unified Software Development Process. 0-201-<br />

57169-2. Addison Wesley.<br />

Jacobson, I., Chirsterson, M., Jonsson, P., Overgaard, G. (1992). Object-<strong>Oriented</strong> Software<br />

Engineering - a Use Case Driven Approach. 978-0201544350. Addison-Wesley.<br />

Jacobson, I., Ng, PW. (2004). <strong>Aspect</strong>-<strong>Oriented</strong> Software Development with Use Cases. 978-0-321-<br />

26888-4. Addison-Wesley.<br />

JAsCo Project (2007). http://ssel.vub.ac.be/jasco/.<br />

JBoss Project (2007). http://labs.jboss.com/jbossaop/.<br />

Karlsson, J. (1995). Towards a Strategy for Software <strong>Requirements</strong> Selection. PhD Thesis. Linköping<br />

University. Sweden.<br />

Karlsson, J., Ryan K. (1997). "A Cost-Value Approach for Prioritizing <strong>Requirements</strong>." IEEE<br />

Software. IEEE Computer Society. 14(5): 67-74.<br />

Kazman, R., Klein, M., Clements, P. (2000). ATAM: Method for Architecture Evaluation. Software<br />

Engineering Institute, Carnegie Mellon. CMU/SEI-2000-TR-004.<br />

http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr004.pdf.<br />

211


Kiczales, G. (2003). The Fun Has Just Begun. In 2nd <strong>Aspect</strong> <strong>Oriented</strong> Software Development<br />

Conference (AOSD'03), Boston, USA.<br />

http://www.nitrd.gov/subcommittee/sdp/vanderbilt/position_papers/gregor_kiczales_aspect_oriented_<br />

programming.pdf.<br />

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J. (1997).<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Programming. In 11th European Conference Object-<strong>Oriented</strong> Programming<br />

(ECOOP'97), Jyvaskyla, Finland, Lecture Notes on Computer Science 1241. Springer. 220-242.<br />

Kotonya, G. (1999). "Practical Experience with Viewpoint-<strong>Oriented</strong> <strong>Requirements</strong> Specification."<br />

<strong>Requirements</strong> Engineering Journal. Springer. 4(3): 115-133.<br />

Kovacevic, J., Aferez, M., Kulesza, U., Moreira, A., Araujo, J., Amaral, V., Alves, V., Rashid, A.,<br />

Chitchyan, R. (2007). Survey of the State-of-the-Art in <strong>Requirements</strong> Engineering for Software<br />

Product Line and Model-Driven <strong>Requirements</strong> Engineering. AMPLE Project. TR: AMPLED1.1.<br />

http://ample.holos.pt/gest_cnt_upload/editor/File/public/Deliverable%20D1.1.pdf.<br />

Laddad, R. (2002). I want my AOP!, JavaWorld. http://www.javaworld.com/javaworld/jw-01-<br />

2002/jw-0118-aspect.html?page=2.<br />

Lieberherr, K., Orleans, D., Ovlinger, J. (2001). "<strong>Aspect</strong>-<strong>Oriented</strong> Programming with Adaptive<br />

Methods." Comunication of the ACM. ACM Press. 44(10): 39-41.<br />

Malan, R., Bredemeyer, D. (2002). Functional <strong>Requirements</strong> and Use Cases,<br />

http://www.bredemeyer.com/papers.htm.<br />

MDSoC (2007). MDSOC: Software Engineering Using Hyperspaces, IBM Research.<br />

http://www.research.ibm.com/hyperspace/.<br />

Mehner, K. (2006). On Using Metrics in the Evaluation of <strong>Aspect</strong>-<strong>Oriented</strong> Programs and Designs. In<br />

Linking <strong>Aspect</strong> Technology and Evolution Workshop at 5th <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

Conference (AOSD'06), Bonn, Germany.<br />

http://www.aosd.net/workshops/late/2006/later/submissions/mehner.pdf.<br />

Metamodel.com (2007). What is a metamodeling?,<br />

http://www.metamodel.com/staticpages/index.php?page=20021010231056977.<br />

212


Moreira, A., Araújo, J., Brito, I. (2002). Crosscutting Quality Attributes for <strong>Requirements</strong><br />

Engineering. In 14th Software Engineering and Knowledge Engineering Conference (SEKE'02),<br />

Ischia, Italy, ACM Press. 167 - 174.<br />

Moreira, A., Araújo, J., Whittle, J. (2006). Modeling Volatile Concerns as <strong>Aspect</strong>s. In 18th Advanced<br />

Information Systems Engineering Conference (CAISE'06), Luxembourg, Luxembourg, Lecture Notes<br />

in Computer Science 4001. Springer. 544-558.<br />

Moreira, A., Fiadeiro, J., Andrade L. (2003). Evolving <strong>Requirements</strong> Through Coordination<br />

Contracts. In 15th Advanced Information Systems Engineering Conference (CAISE’03), Lecture<br />

Notes in Computer Science 2681. Springer. 633-646.<br />

Moreira, A., Rashid, A., Araújo, J. (2005a). Multi-dimensional Separation of Concerns in<br />

<strong>Requirements</strong> Engineering. In 13th <strong>Requirements</strong> Engineering Conference (RE'05), Paris, France,<br />

IEEE Computer Science. 285-296.<br />

Moreira, A., Rashid, A., Araújo, J. (2005b). Concern-<strong>Oriented</strong> <strong>Requirements</strong> Engineering Model. In<br />

17th Advanced Information Systems Engineering Conference (CAISE'05), Porto, Portugal, Lecture<br />

Notes in Computer Science 3520. Springer. 293-308.<br />

Mussbacher, G., Amyot, D., Araújo, J., Moreira, A., Weiss, M. (2007). Visualizing <strong>Aspect</strong>-<strong>Oriented</strong><br />

Goal Models with AoGRL. 2nd International Workshop on <strong>Requirements</strong> Engineering Visualization at<br />

15th <strong>Requirements</strong> Engineering Conference (RE'07), New Delhi, India.<br />

http://csis.pace.edu/~ogotel/professional/REV07.html.<br />

Mylopoulos, J., Chung, L., Nixon, B. (1992). "Representing and Using Non-Functional <strong>Requirements</strong><br />

Engineering: A Process-<strong>Oriented</strong> Approach." IEEE Transactions on Software Engineering. IEEE<br />

Computer Society. 18(6): 483-497.<br />

Nord, R., Wood, W., Clements, P. (2004). Integrating the Quality Attribute Workshop and the<br />

Attribute-Driven Design Method. Software Engineering Institute, Carnegie Mellon. CMU/SEI-2004-<br />

TN-017. http://stinet.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA443486.<br />

Nuseibeh, B., Easterbrook, S. (2000). <strong>Requirements</strong> Engineering: A Roadmap. In 22nd International<br />

Conference on Software Engineering (ICSE'00), Limerick, Ireland, ACM Press. 35-46.<br />

OMG (2005). UML Superstructure Specification v2.0, OMG Document number formal/05-07-04,<br />

http://www.omg.org/docs/formal/05-07-04.pdf.<br />

213


OMG, Catalog of UML Profile Specifications (2007).<br />

http://www.omg.org/technology/documents/profile_catalog.htm.<br />

OMG/MOF2.0 (2002). OMG document AD/2002-04-10, http://www.omg.org.<br />

Pinto, M., Fuentes, L., Troya, J. (2003). DAOP-ADL: An Architecture Description Language for<br />

Dynamic Component and <strong>Aspect</strong>-Based Development. In 2nd Generative Programming and<br />

Component Engineering Conference, Erfurt, Germany, Springer. 118-137.<br />

Pleeger, S., Bohner, S. (1990). A Framework for Software Maintenance Metrics. In Software<br />

Maintenance Conference, San Diego, USA, IEEE Computer Society. 320-327.<br />

Pressman, R. (2005). Software Engineering - A Practitioner's Approach. 6th Edition. 007-123840-9.<br />

McGraw Hill.<br />

Rashid, A., Moreira A. (2006b). Domain Models are NOT <strong>Aspect</strong> Free. In 9th Model Driven<br />

Engineering Languages and Systems Conference (MoDELS/UML'06). Genova, Italy, Lecture Notes in<br />

Computer Science 4199. Springer. 155-169.<br />

Rashid, A., Moreira, A., Araújo, J. (2003). Modularization and Composition of <strong>Aspect</strong>ual<br />

<strong>Requirements</strong>. In 2nd <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Conference (AOSD'03), Boston, USA,<br />

ACM Press. 11-20.<br />

Rashid, A., Moreira, A., Araújo, J., Tekinerdogan, B., Baniassad, E., Clements, P. (2006a). Early<br />

<strong>Aspect</strong>s.Net. http://www.early-aspects.net/.<br />

Rashid, A., Moreira, A., Tekinerdogan, B. (2004). "Editoral Early <strong>Aspect</strong>s: <strong>Aspect</strong>-<strong>Oriented</strong><br />

<strong>Requirements</strong> Engineering and Architecture Design." IEE - Proceedings Software. IEE. 151(4): 153-<br />

156.<br />

Rashid, A., Sawyer, P., Moreira, A., Araújo, J. (2002). Early <strong>Aspect</strong>s, A Model for <strong>Aspect</strong> <strong>Oriented</strong><br />

<strong>Requirements</strong> Engineering. In 10th <strong>Requirements</strong> Engineering Conference (RE'02), Essen, Germany,<br />

IEEE Computer Society. 199-202.<br />

Robinson, W., Pawlowski, S., Volkov, V. (2003). "<strong>Requirements</strong> Interaction Management." ACM<br />

Computing Surveys. 35(2): 132-190.<br />

Robinson, W., Volkov, S. (1999). Conflict-<strong>Oriented</strong> <strong>Requirements</strong> Restructuring. Georgia State<br />

University. TR: GSU CIS Working Paper 99-5. http://cis.gsu.edu/~wrobinso/papers/GSUwp99-5.pdf.<br />

214


Ross, D., Goodenough, J., Irvine, C. (1975). "Software Engineering: Processes, Principles, and Goals."<br />

IEEE Computer. IEEE Computer Society. 8(5): 17-27.<br />

Saaty, T. (1980). The Analytic Hierarchy Process. 0-07-054371-2. McGraw-Hill.<br />

Sampaio, A., Chitchyan, R., Rashid A. (2005). EA-Miner: A Tool for Automating <strong>Aspect</strong>-<strong>Oriented</strong><br />

<strong>Requirements</strong> Identification. In 20th Automated Software Engineering Conference (ASE'05), ACM<br />

Press. 352-355.<br />

Sanchez, P., Magno, J., Fuentes, L., Moreira, A., Araújo, J. (2006). Towards MDD transformations<br />

from <strong>Aspect</strong>-<strong>Oriented</strong> <strong>Requirements</strong> into <strong>Aspect</strong>-<strong>Oriented</strong> Architecture. In 3rd European Workshop on<br />

Software Architecture (EWSA'06), Nantes, France, Lecture Notes in Computer Science 4344. 159-<br />

174.<br />

Sant’Anna, C., Garcia, A., Chavez, C., Lucena, C., Von Staa, A. (2003). On the Reuse and<br />

Maintenance of <strong>Aspect</strong>-<strong>Oriented</strong> Software: An Assessment Framework. In XVII Brazilian Symposium<br />

on Software Engineering, Amazonas, Brasil. 19-34. ftp://ftp.inf.puc-<br />

rio.br/pub/docs/techreports/03_26_santanna.pdf.<br />

Schneider, G., Winters, J. (1998). Applying Use Cases – A Practical Guide. 978-0201309812.<br />

Addison-Wesley.<br />

SEI, Software Engineering Institute (2007). Domain Engineering: A Model-Based Approach,<br />

http://www.sei.cmu.edu/domain-engineering/domain_engineering.html.<br />

Selic, B. (2003). "The Pragmatics of Model-Driven Development." IEEE Software. IEEE Computer<br />

Society. 20(5): 19-25.<br />

Soares, S., Borba, P. , Laureano, E. (2006). "Distribution and Persistence as <strong>Aspect</strong>s." Software:<br />

Practice & Experience. 36(7): 711-759.<br />

Soeiro, E. (2007). Especificação e Composição de Requisitos <strong>Aspect</strong>uais. Master Thesis, Faculdade de<br />

Ciências da Universidade Nova de Lisboa. Portugal.<br />

Soeiro, E., Brito I., Moreira A. (2006). An XML-Based Language for Specification and Composition<br />

of <strong>Aspect</strong>ual Concerns. In 8th International Conference on Enterprise Information Systems<br />

(ICEIS'06). Paphos, Cyprus. 410-419.<br />

SOFTAS (2007). Software Development with <strong>Aspect</strong>s, http://aosd.di.fct.unl.pt/softas/.<br />

215


Sommerville, I. (2004). Software Engineering. 5th Edition. 0321210263. Pearson Education.<br />

Sommerville, I., Sawyer, P. (1997b). <strong>Requirements</strong> Engineering - A Good Practice Guide. 978-<br />

0471974444. John Wiley.<br />

Sommerville, I., Sawyer, P., Viller, S. (1997a). Viewpoints: Principles, Problems and a Practial<br />

Approach to <strong>Requirements</strong> Engineering. Lancaster University. TR: CSEG/15/1997. http://www.cs.st-<br />

andrews.ac.uk/~ifs/Research/Publications/Papers-PDF/1995-99/VPsAnnalsOfSE.pdf.<br />

Spinczyk, O., Lohmann, D., Urban, M. (2005). "<strong>Aspect</strong>C++: an AOP Extension for C++." Software<br />

Developer's Journal 1: 68-76.<br />

Stahl, T., Voelter, M. (2006). Model-Driven Software Development: Technology, Engineering,<br />

Management. 978-0470025703. John Wiley.<br />

Stein, D., Hanenberg, S., Unland, R. (2002). Designing <strong>Aspect</strong>-<strong>Oriented</strong> Crosscutting in UML. In<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Modeling with the UML Workshop at 1st <strong>Aspect</strong>-<strong>Oriented</strong> Software Development<br />

Conference (AOSD'02), Enschede, The Netherlands, http://lglwww.epfl.ch/workshops/aosd-<br />

uml/Allsubs/Dominik.pdf.<br />

Sun (2005). J2SE 1.5.0, http://java.sun.com/j2se/1.5.0/.<br />

Sutton Jr, S., Rouvellou, I. (2002c). Modeling of Software Concerns in Cosmos. In 1st <strong>Aspect</strong>-<br />

<strong>Oriented</strong> Software Development Conference (AOSD'02), Enschede, Netherlands, ACM. 127-133.<br />

Sutton Jr, S., Rouvellou, I. (2004). Concern Modeling for <strong>Aspect</strong>-<strong>Oriented</strong> Software Development.<br />

<strong>Chapter</strong> of <strong>Aspect</strong>-<strong>Oriented</strong> Software Development Book, Addison-Wesley.<br />

Sutton Jr, S., Tarr, P. (2002a). <strong>Aspect</strong>-<strong>Oriented</strong> Design Needs Concern Modeling. In <strong>Aspect</strong> <strong>Oriented</strong><br />

Design Workshop: Identifying, Separating & Verifying Concerns in the Design at 1st <strong>Aspect</strong>-<strong>Oriented</strong><br />

Software Development Conference (AOSD'02), Enschede, The Netherlands.<br />

http://www.iit.edu/~akkawif/workshops/AOSD2002/AOSD1.html.<br />

Suzuki, J., Yamamoto, Y. (1999). Extending UML with <strong>Aspect</strong>s: <strong>Aspect</strong> Support in the Design Phase.<br />

In Object-<strong>Oriented</strong> Technology Workshop at 13th European Conference on Object-<strong>Oriented</strong><br />

Programming (ECOOP'99), Lisbon, Portugal, Lecture Notes In Computer Science 1743. Springer.<br />

299-300. http://trese.cs.utwente.nl/aop-ecoop99/papers/suzuki.pdf.<br />

TAO Project (2007). TAO: A Testbed for <strong>Aspect</strong> <strong>Oriented</strong> Software Development.<br />

http://www.comp.lancs.ac.uk/research/projects/project.php?pid=215.<br />

216


Tarr, P., Ossher, H., Harrison, H., Sutton Jr, S. (1999). N Degrees of Separation: Multi-Dimensional<br />

Separation of Concerns. In 21th International Conference on Software Engineering (ICSE'99),<br />

Ontario, Canada, IEEE Computer Society. 107-119.<br />

Tekinerdogan, B. (2004). ASAAM: <strong>Aspect</strong>ual Software Architecture <strong>Analysis</strong> Method. In 4th<br />

Working IEEE/IFIP Conference on Software Architecture (WICSA'04), Oslo, Norway. 5-14.<br />

http://www.cs.bilkent.edu.tr/AOSD-Early<strong>Aspect</strong>s/Papers/Tekinerdogan.pdf.<br />

Triantaphyllou, E. (2000). Multi-Criteria Decision Making Methods: A Comparative Study. 978-<br />

0792366072. Kluwer Academic Publishers.<br />

UML (2004). Unified Modeling Language Specification v. 2.0 in Object Management Group,<br />

http://www.omg.org.<br />

VanLamsweerde, A. (2001). Goal-<strong>Oriented</strong> <strong>Requirements</strong> Engineering: A Guided Tour. In 5th<br />

<strong>Requirements</strong> Engineering Conference (RE'01), Toronto, Canada, IEEE Computer Society. 249 - 262.<br />

VanLamsweerde, A., Darimont, R., Letier, E. (1998). "Managing Conflicts in Goal-Driven<br />

<strong>Requirements</strong> Engineering." IEEE Transactions on Software Engineering. IEEE Computer Society.<br />

24(11): 908-926.<br />

Vieira, F. (2007). Um Modelo Multicritério para Gerir Conflitos na Composição de <strong>Aspect</strong>os. Master<br />

Thesis, Faculdade de Ciências da Universidade Nova de Lisboa. Portugal.<br />

Vieira, F., Brito, I., Moreira, A. (2006). Using Multi-criteria <strong>Analysis</strong> to Handle Conflicts During<br />

Composition. In Early <strong>Aspect</strong>s: Traceability of <strong>Aspect</strong>s in the Early Life Cycle Workshop at 5th<br />

<strong>Aspect</strong>-<strong>Oriented</strong> Software Development Conference (AOSD'06), Bonn, Germany.<br />

http://trese.cs.utwente.nl/workshops/early-aspects-Traceability-<br />

AOSD2006/Papers/Vieira_Brito_Moreira.pdf.<br />

Volere <strong>Requirements</strong> Resources (2007). Volere <strong>Requirements</strong> Resources,<br />

http://www.volere.co.uk/index.htm.<br />

Whittle, J., Araújo, J. (2004). "Scenario Modeling with <strong>Aspect</strong>s." IEE Proceedings Software. 151(4):<br />

157-172.<br />

Wiegers, K. (2003). Software <strong>Requirements</strong>. 978-0735606319. Microsoft Press.<br />

Williams, A., Sweeny, D., Williams,T. (2000). Quantitative Methods for Business. 0324184131.<br />

South-Western.<br />

217


Wirfs-Brock, R., Wilkerson, B., Wiener, L. (1999). Designing Object-<strong>Oriented</strong> Software. 0-13-<br />

629825-7. Prentice-Hall.<br />

Yen, J., Tiao, W. (1997). A Systematic Tradeoff <strong>Analysis</strong> for Conflicting Imprecise <strong>Requirements</strong>. In<br />

3rd <strong>Requirements</strong> Engineering Conference (RE'97), Annapolis, USA, IEEE Computer Society. 87-96.<br />

Yu, E. (1997). Towards Modelling and Reasoning Support for Early-Phase <strong>Requirements</strong> Engineering.<br />

In 3rd <strong>Requirements</strong> Engineering Conference (RE'97), Annapolis, USA, IEEE Computer Society. 226-<br />

235.<br />

Zave, P. (1997). "Classification of Research Efforts in <strong>Requirements</strong> Engineering." ACM Computing<br />

Surveys. ACM. 29(4): 315-321.<br />

Zimmerman, H. (1991). Fuzzy Sets Theory and Its Application. 978-0131011717. Kluwer Academic.<br />

Zultner, R. (1992). "Quality Function Deployment for Software: Satisfying the Customers." American<br />

Programmer 1: 28-41.<br />

218

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!