Implementando Acceso Directo y Secuencial a Colecciones de Datos mediante Aspectos (Implementing Direct and Sequential Access to Data Collections using Aspects)

Jordi Marco Gómez (jmarco@lsi.upc.edu)1, Xavier Franch Gutiérrez (franch@lsi.upc.edu)1, Jordi Àlvarez Canal (jalvarezc@uoc.edu)2


1Departament de Llenguatges i Sistemes Informàtics, Universitat Politècnica de Catalunya (UPC), Barcelona, Spain
2Universitat Oberta de Catalunya (UOC), Barcelona, Spain

This paper appears in: Revista IEEE América Latina

Publication Date: March 2005
Volume: 3,   Issue: 1 
ISSN: 1548-0992


Abstract:
Data collection libraries play an important role in component-based software development. The collections contained in those libraries (JCF, STL, LEDA, etc.) implement a mathematical model that defines one or more access methods to the elements (access by key, access to the element stored last, etc.). In addition, most of these libraries allow a different, more efficient type of access, which can be direct access (e.g., by means of the position where the element is stored, that is obtained when it is inserted) or sequential access (usually by means of the iterator concept). This type of efficient access presents several risks with respect to criteria such as precision and suitability that are not solved appropriately in the current existing libraries. In this work, we present two design patterns that provide a generic solution to the problem together with their implementation using aspects. The patterns introduce new data types and new operations that provide the libraries with full uniformity and a high extensibility degree. The use ofaspects allows dissociating these types of access and the functionality of the collection, making aspects responsible of the position persistence management, modification monitoring during iterations, etc. The proposal is implemented using AspectJ.

Index Terms:
Aspect oriented software development, Design patterns, Component Based Software Engineering.   


Documents that cite this document
This function is not implemented yet.


[PDF Full-Text (137)]