scispace - formally typeset
Search or ask a question

Showing papers by "Gregor Kiczales published in 2005"


Proceedings ArticleDOI
15 May 2005
TL;DR: Using aspect- oriented programming enables modular reasoning in the presence of crosscutting concerns, and using aspect-oriented programming enables modules in the absence of such concerns.
Abstract: Aspects cut new interfaces through the primary decomposition of a system. This implies that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent property of crosscutting concerns, and using aspect-oriented programming enables modular reasoning in the presence of such concerns.

302 citations


Proceedings ArticleDOI
15 May 2005
TL;DR: In this article, the concept of general purpose aspect is introduced where an aspect transparently forces cross-cutting behavior on object classes and other software entities, and a reusable aspect is further described for use as part of an aspect library.
Abstract: The concept of a general purpose aspect is introduced where an aspect transparently forces cross-cutting behavior on object classes and other software entities. A reusable aspect is further described for use as part of an aspect library.

105 citations


Proceedings ArticleDOI
14 Mar 2005
TL;DR: A role-based refactoring approach and tool is introduced to aid developers in re-structuring the implementation of crosscutting concerns using aspect-oriented programming.
Abstract: Improving the structure of code can help developers work with a software system more efficiently and more consistently. To aid developers in re-structuring the implementation of crosscutting concerns using aspect-oriented programming, we introduce a role-based refactoring approach and tool. Crosscutting concerns (CCCs) are described in terms of abstract roles, and instructions for refactoring crosscutting concerns are written in terms of those roles. To apply a refactoring, a developer maps a subset of the roles to concrete program elements; a tool can then help complete the mapping of roles to the existing program. Refactoring instructors are then applied to manipulate and modularize the concrete elements corresponding to the crosscutting concern. Evaluation of the prototype tool on a graphical editing framework suggests that the approach helps planning and executing complex CCC refactorings.

98 citations


Journal Article
TL;DR: In this paper, three mechanisms for separation of concerns at the source code level are modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points, pointcuts bind sets of points to various descriptions of those sets, named pointcuts and advice bind the implementation of an operation to set of points.
Abstract: There are numerous mechanisms for separation of concerns at the source code level. Three mechanisms that are the focus of recent attention -metadata annotations, pointcuts and advice - can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points; pointcuts bind sets of points to various descriptions of those sets; named pointcuts bind attributes to sets of points; and advice bind the implementation of an operation to sets of points. This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.

96 citations


Book ChapterDOI
25 Jul 2005
TL;DR: This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.
Abstract: There are numerous mechanisms for separation of concerns at the source code level. Three mechanisms that are the focus of recent attention – metadata annotations, pointcuts and advice – can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points; pointcuts bind sets of points to various descriptions of those sets; named pointcuts bind attributes to sets of points; and advice bind the implementation of an operation to sets of points. This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.

88 citations


Book ChapterDOI
02 Oct 2005
TL;DR: Bottom-up support for modeling crosscutting structure in UML is proposed by adding a simple join point model to the meta-model that facilitates adding new kinds of crosscutting modeling constructs such as role bindings, inter-type declarations, and advice.
Abstract: We propose bottom-up support for modeling crosscutting structure in UML by adding a simple join point model to the meta-model. This supports built-in crosscutting modeling constructs such as sequence diagrams. It also facilitates adding new kinds of crosscutting modeling constructs such as role bindings, inter-type declarations, and advice. A simple weaver produces a uniform representation of the crosscutting structure, which can then be displayed or analyzed in a variety of ways.

16 citations


Proceedings ArticleDOI
16 Oct 2005
TL;DR: The panel will explore the appropriate position and awareness of aspect-orientation amidst other advances in software engineering; how to prepare organizations for adoption; and what additional research and development is necessary.
Abstract: Aspect-oriented software development (AOSD) has a lot of interest in the research community. It has also found early adopters in application development and middleware. This panel discusses the potential expansion and use of AOP into mainstream software development.This question is not just directed to the aspect research community, but also to practicing software development teams and organizations. The panel will explore the appropriate position and awareness of aspect-orientation amidst other advances in software engineering; how to prepare organizations for adoption; and what additional research and development is necessary. The panel discussion will help the OO community to understand the appropriate use of aspect-orientation. It will also highlight areas where additional efforts by AOSD researchers and professionals are required.

3 citations