The crosscutting pattern : a conceptual framework for the analysis of modularity across software development phases

Repositorio Dspace/Manakin

español português english

The crosscutting pattern : a conceptual framework for the analysis of modularity across software development phases

Mostrar el registro completo del ítem

Título: The crosscutting pattern : a conceptual framework for the analysis of modularity across software development phases
Autor: Conejero Manzano, José María
Resumen: Mejorar el rendimiento del negocio en dominios contemporáneo exige sistemas cuyo tamaño y complejidad desafío la mayoría de los actuales métodos y herramientas de ingeniería de software. En esta configuración, un amplio espectro de metodologías, modelos, lenguajes y herramientas han sido adoptadas para hacer frente a la creciente complejidad de los sistemas de software. El Desarrollo de Software Orientado a Aspectos (AOSD) es una de estas metodologías que han surgido para abordar el diseño y desarrollo de sistemas de software complejos. Uno de los principios clave de AOSD es la separación de asuntos (Separation of Concerns) que lleva acarreado el problema conocido de la aparición de asuntos transversales (crosscutting concerns). El concepto de crosscutting es descrito normalmente en términos de otros dos conceptos, conocidos como scattering (esparcido) y tangling (mezclado). Sin embargo, normalmente la identificación y diferenciación de estos conceptos se ha basado en la propia experiencia e intuición del desarrollador, implicando, en muchas ocasiones, que estos conceptos sean confundidos. La utilización de definiciones precisas y formales es fundamental para ciertas áreas de investigación, como la identificación de asuntos transversales o la definición de métricas de software. En este sentido, en esta tesis se propone un marco de trabajo conceptual que permite la definición formal de los conceptos scattering, tangling y crosscutting. Este marco de trabajo conceptual está basado en lo que se ha denominado el patrón de crosscutting (crosscutting pattern). El patrón de crosscutting es un concepto utilizado para representar la situación en la que dos dominios identificados, denominados genéricamente como fuente (source) y destino (target), están unidos mediante algún tipo de relación de traza (traceability relation o mapping). Así, los conceptos de scattering, tangling y crosscutting se definen en base a casos especiales de esta relación de traza. La utilización de la definición formal presentada permite la identificación de situaciones de crosscutting en sistemas software. Incluso, dado que el patrón de crosscutting no ha sido definido en términos de entidades o artefactos de desarrollos específicos, éste puede ser aplicado en cualquier fase del desarrollo, permitiendo la identificación de situaciones de crosscutting a diferentes niveles de abstracción. Además, el patrón de crosscutting puede aplicarse a través de varios niveles de refinamiento, permitiendo la trazabilidad de crosscutting concerns a lo largo de las diferentes etapas del ciclo de vida. Para ilustrar la usabilidad del marco de trabajo definido, éste ha sido aplicado en diferentes áreas de investigación como la minería de aspectos, el análisis empírico de software, la identificación de características transversales en el dominio de las Líneas de Producto Software (SPL) o el análisis de características relacionadas con el mantenimiento del software. Como ya se ha comentado anteriormente, la utilización del patrón de crosscutting permite la identificación de crosscutting a diferentes niveles de abstracción. Las propuestas de minería de aspectos existentes en la literatura se han centrado tradicionalmente en la identificación de situaciones de crosscutting en fases de implementación, cuando las principales decisiones a nivel de arquitectura ya han sido tomadas. En este contexto, esta tesis presenta un proceso de minería de aspectos. Este proceso extiende el marco de trabajo presentado mediante la utilización de diferentes tipos de análisis, como análisis sintácticos o basados en dependencias. Mediante estos análisis, las relaciones de traza existentes entre los elementos de los dominios fuente y destino son identificadas de manera automática. Este proceso de minería de aspectos puede ser utilizado en cualquier fase del desarrollo. Sin embargo, en esta tesis se ha ilustrado su utilización aplicándolo a nivel de requisitos. La identificación de crosscutting concerns en fases tempranas del desarrollo permite incorporar los beneficios obtenidos por la orientación a aspectos desde el principio del proceso de desarrollo. En este sentido, en esta tesis se utiliza un proceso de refactorización orientado a aspectos para casos de uso UML, de modo que se mejora considerablemente la modularidad de los sistemas modelados. Además, esta refactorización permite evolucionar los sistemas de una manera muy sencilla, sin más que utilizar simples reglas que permiten la composición entre los concerns base y transversales. El patrón de crosscutting puede también utilizarse en la definición de un conjunto de métricas para los diferentes concerns del sistema. Estas métricas proporcionan medidas de la modularidad de un sistema, de modo que nuestro proceso de minería de aspectos se complementa con la utilización de estas métricas. En concreto, las métricas permiten realizar un análisis de la modularidad en fases tempranas proporcionando datos empíricos sobre el grado de crosscutting de los diferentes concerns de un sistema. De nuevo, las métricas definidas no dependen de ningún lenguaje concreto, de modo que no están ligadas a entidades concretas de las fases del desarrollo. En cualquier caso, en esta tesis se ilustra la utilización de las métricas mediante una instanciación concreta para casos de uso. Además, las métricas son validadas de manera teórica y empírica. Mediante la validación teórica, se demuestra la capacidad de las métricas para medir propiedades relacionadas con el crosscutting. Para realizar esta validación, los resultados obtenidos por las métricas son comparados con los obtenidos por otras métricas previamente presentadas en la literatura. Estos resultados muestran que nuestras métricas generalizan a las métricas orientadas a concenrs actuales y demuestran la necesidad de incoporar una métrica específica para crosscutting (médida no aportada por otras métricas). Por otro lado, la validación empírica de las métricas demuestra la utilidad de las mismas, en términos de su capacidad de predecir resultados relacionados con otras características o atributos del software. En esta tesis se muestra la utilidad de las métricas con respecto a dos características del mantenimiento software y definidas por la ISO/IEC 9126. Estos dos atributos son la estabilidad (stability) y la facilidad de ejecutar cambios (changeability). Los resultados obtenidos por este análisis demuestran que el grado de crosscutting en etapas tempranas afecta de manera negativa a las características mencionadas, dificultando, por tanto, la capacidad de mantenimiento de los sistemas. Estos resultados ayudan a justificar de manera empírica las ideas que propugna la comunidad de la orientación a aspectos desde hace ya varios años, demostrando que la presencia de crosscutting concerns es, normalmente, perjudicial para la calidad del software construido. La utilidad del patrón de crosscutting es ilustrada mediante la aplicación del proceso de minería de aspectos para identificar características transversales (crosscutting features) en el dominio de las Líneas de Producto Software (SPL). La existencia de crosscutting representa un tipo especial de dependencia entre las diferentes características de una línea de producto. Esta dependencia compromete y dificulta la composición y reutilización de dichas características en el domino de SPL. En este contexto, la utilización del proceso de identificación de crosscutting presentado permite automatizar la identificación de las crosscutting features, de modo que éstas pueden ser refactorizadas y aisladas. Además, las métricas de concerns presentadas han sido utilizadas también en el dominio SPL, mostrando que el análisis empírico de la modularidad en SPL puede aportar importantes beneficios, como la capacidad de anticipar el impacto de un cambio en una característica antes de que dicho cambio se produzca.Enhancing business performance in contemporary domains requires systems whose size and intricacy challenge most of the current software engineering methods and tools. In this setting, a wide spectrum of methodologies, models, languages and tools have been adopted to deal with the increasing complexity of software systems. Aspect-Oriented Software Development (AOSD) is one of these methodologies that have emerged to tackle the design and development of complex software systems. One of the key principles in AOSD is Separation of Concerns (SOC). Related with this principle is the problem of crosscutting concerns. Crosscutting is usually described in terms of scattering and tangling. However, the distinction between these concepts has been traditionally left to developers’ intuition, sometimes leading to ambiguous statements and confusion. In that sense, precise definitions are required for certain research areas, e.g. for the identification of crosscutting concerns or the definition of software metrics. This thesis proposes a conceptual framework that allows the formal definition of the terms of scattering, tangling and crosscutting. The conceptual framework is based on the concept of crosscutting pattern which denotes to the situation where two different domains, called source and target, are related by a traceability link or mapping. The terms of scattering, tangling and crosscutting are defined, thus, as special cases of this mapping. The utilization of this formal definition aims at identifying situations of crosscutting. Since the crosscutting pattern is not tied to any specific deployment artefact, it may be applied to any development phase, allowing the identification of crosscutting at any abstraction level (from requirements to implementation). Moreover, the crosscutting pattern can be applied across several refinement levels enabling traceability of crosscutting concerns. Usability of the framework is illustrated by means of applying it to several research areas such as aspect mining, software assessment, identification of crosscutting features in Software Product Lines (SPL) or maintainability analysis. As it is aforementioned, the utilization of the conceptual framework helps to identify crosscutting at any abstraction level. Aspect mining is its main application area. Aspect mining approaches have traditionally focused on the programming level, where architectural decisions have already been made. In this setting, in this thesis an aspect mining process to identify crosscutting is presented. The process extends the conceptual framework by using syntactical and dependency-based analyses to automatically identify trace relations between source and target elements. Although the process may be used at any development phase, its utilization is illustrated at the requirements level. The identification of crosscutting concerns at early stages of development aims at incorporating the benefits of aspect-orientation at the very beginning of the development process. Moreover, early aspect refactoring is given for UML use cases diagrams, improving modularity of the system. Using this refactoring, the system may be easily evolved just using simple composing rules which allow the weaving of base and crosscutting concerns. The conceptual framework also allows the definition of concern driven metrics. These metrics may be used at indications for modularity assessment. Then, using these metrics, the aspect mining process previously presented may be completed. In particular, the metrics enable the application of an empirical analysis of modularity measuring the degree of crosscutting in a system. Again, the metrics presented are language-agnostic so that they are not tied to any development artefact. However, in order to illustrate its applicability, canonical instantiations of the crosscutting metrics are given for use cases in this thesis. The metrics are theoretical and empirically validated. By the theoretical validation, its accuracy for measuring crosscutting properties is demonstrated. This validation is performed by comparing the results obtained by the metrics with those obtained by similar metrics previously introduced in the literature. The results show how the metrics presented generalises existing ones. They also provide evidences of the need of an specific metric for crosscutting that other metrics suites lack of. On the other hand, by the empirical validaton of the metrics, its utility is demonstated in terms of being related to other software quality attributes in expected ways. In this thesis, this utility has been demonstrated by relating them to two ISO/IEC 9126 maintainability attributes, namely stability and changeability. In particular, a first and original exploratory study is shown which investigates the correlation between early crosscutting metrics and stability or changeability. The results obtained empirically demonstrate how crosscutting negatively affects to software stability and changeability at early stages of development. These results empirically support the ideas introduced by the aspect community (through several years) claiming that crosscutting is usually harmful to software quality. The applicability of the conceptual framework is, finally, illustrated by applying the aspect mining process to identify crosscutting features in the Software Product Line (SPL) domain. Crosscutting is a special kind of dependency that compromises the composition and reutilization of SPL. Then, the identification of these dependencies helps to reduce them by refactoring these crosscutting features using aspect-oriented techniques. The need for introducing aspect-oriented techniques to model variable features in SPL has been introduced by several approaches in the literature. However, most of these approaches lack of a process to identify crosscutting features so that they consider as crosscutting features either all the variable features or the well-know crosscutting features widely identified in the literature. The utilization of the aspect mining process presented in this document automates the identification of the crosscutting features allowing their isolation and refactoring. The concern driven metrics proposed have been also applied to the SPL domain showing the benefits obtained by the assessment of crosscutting in SPL as well, e.g. anticipating the impact of a feature change before it occurs.
URI: http://hdl.handle.net/10662/343
Fecha: 2010


Ficheros en el ítem

Ficheros Tamaño Formato Ver
TDUEX_9788469343074.pdf 7.665Mb PDF Thumbnail

El ítem tiene asociados los siguientes ficheros de licencia:

Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro completo del ítem

Creative Commons Attribution- NonCommercial-NoDerivs 3.0 License Excepto si se señala otra cosa, la licencia del ítem se describe como Creative Commons Attribution- NonCommercial-NoDerivs 3.0 License

Buscar en Mi Dehesa


Listar

Mi cuenta

Estadísticas

Ayuda

Redes sociales