1,661 research outputs found
Crosscutting, what is and what is not? A Formal definition based on a Crosscutting Pattern
Crosscutting is usually described in terms of scattering and tangling. However, the distinction between these concepts is vague, which could lead to ambiguous statements. Sometimes, precise definitions are required, e.g. for the formal identification of crosscutting concerns. We propose a conceptual framework for formalizing these concepts based on a crosscutting pattern that shows the mapping between elements at two levels, e.g. concerns and representations of concerns. The definitions of the concepts are formalized in terms of linear algebra, and visualized with matrices and matrix operations. In this way, crosscutting can be clearly distinguished from scattering and tangling. Using linear algebra, we demonstrate that our definition generalizes other definitions of crosscutting as described by Masuhara & Kiczales [21] and Tonella and Ceccato [28]. The framework can be applied across several refinement levels assuring traceability of crosscutting concerns. Usability of the framework is illustrated by means of applying it to several areas such as change impact analysis, identification of crosscutting at early phases of software development and in the area of model driven software development
Experiences In Migrating An Industrial Application To Aspects
Aspect-Oriented Software Development (AOSD) is a paradigm aiming to solve
problems of object-oriented programming (OOP). With normal OOP itās often
unlikely to accomplish fine system modularity due to crosscutting concerns being
scattered and tangled throughout the system. AOSD resolves this problem by its
capability to crosscut the regular code and as a consequence transfer the crosscutting
concerns to a single model called aspect. This thesis describes an experiment on
industrial application wherein the effectiveness of aspect-oriented techniques is
explained in migration the OOP application into aspects. The experiment goals at
first to identify the crosscutting concerns in source code of the industrial application
and transform these concerns to a functionally equivalent aspect-oriented version. In
addition to presenting experiences gained through the experiment, the thesis aims to
provide practical guidance of aspect solutions in a real application
Early aspects: aspect-oriented requirements engineering and architecture design
This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications
A Hierarchical Clustering Based Approach in Aspect Mining
A Hierarchical Clustering Based Approach in Aspect Mining Clustering is a division of data into groups of similar objects. Aspect mining is a process that tries to identify crosscutting concerns in existing software systems. The goal is to refactor the existing systems to use aspect oriented programming, in order to make them easier to maintain and to evolve. The aim of this paper is to present a new hierarchical clustering based approach in aspect mining. For this purpose we propose HAC algorithm (Hierarchical Agglomerative Clustering in aspect mining). Clustering is used in order to identify crosscutting concerns. We evaluate the obtained results from the aspect mining point of view, based on two quality measures that we have previously introduced and a newly defined one. The proposed approach is compared with other similar existing approaches in aspect mining and two case studies are also reported
Identifying Crosscutting Concerns Using Fan-in Analysis
Aspect mining is a reverse engineering process that aims at finding
crosscutting concerns in existing systems. This paper proposes an aspect mining
approach based on determining methods that are called from many different
places, and hence have a high fan-in, which can be seen as a symptom of
crosscutting functionality. The approach is semi-automatic, and consists of
three steps: metric calculation, method filtering, and call site analysis.
Carrying out these steps is an interactive process supported by an Eclipse
plug-in called FINT. Fan-in analysis has been applied to three open source Java
systems, totaling around 200,000 lines of code. The most interesting concerns
identified are discussed in detail, which includes several concerns not
previously discussed in the aspect-oriented literature. The results show that a
significant number of crosscutting concerns can be recognized using fan-in
analysis, and each of the three steps can be supported by tools.Comment: 34+4 pages; Extended version [Marin et al. 2004a
An overview of Mirjam and WeaveC
In this chapter, we elaborate on the design of an industrial-strength aspectoriented programming language and weaver for large-scale software development. First, we present an analysis on the requirements of a general purpose aspect-oriented language that can handle crosscutting concerns in ASML software. We also outline a strategy on working with aspects in large-scale software development processes. In our design, we both re-use existing aspect-oriented language abstractions and propose new ones to address the issues that we identified in our analysis. The quality of the code ensured by the realized language and weaver has a positive impact both on maintenance effort and lead-time in the first line software development process. As evidence, we present a short evaluation of the language and weaver as applied today in the software development process of ASML
- ā¦