[Main Page]

Research Projects

(Difference between revisions)

Main Page | Recent changes | Log in / create account |

Printable version | Disclaimers | Privacy policy | Current revision

m (Reverted edit of Alexxanderny, changed back to last version by Wcandillon)
Line 215: Line 215:
''A detailed description of how to edit can be found on the [[Help:Editing]] page.''
''A detailed description of how to edit can be found on the [[Help:Editing]] page.''
<div style="overflow: auto; height: 1px;">
[http://www.mp3.com/users/nokia-ringtone/profile.php free nokia ringtones]
[http://groups.yahoo.com/group/Gas-Powered-Scooter/ Gas Powered Scooter]
[http://groups.yahoo.com/group/Electric-Scooter/ Electric Scooter]
[http://groups.yahoo.com/group/Scooter-Store/ Scooter Store]
[http://groups.yahoo.com/group/Gas-Scooter/ Gas Scooter]
[http://white.prohosting.com/amoxil/paris-hilton-nude/ paris hilton nude]
[http://amoxil.white.prohosting.com Order amoxil online]

Revision as of 00:42, 25 December 2005

This is a broad list of research projects developing AOSD technologies, techniques, methods, foundations etc. If you have such a project, please add it to the list.

Robert Filman maintains a bibliography of papers on AOSD available both in pdf and bibtex. Please send additions, corrections, etc to him as user "filman" in domain "computer.org"

The Transactions on Aspect-Oriented Software Development journal publishes papers on all facets of AOSD.

The Early Aspects site is a collection of links to research on managing aspects at the early development stages of requirements engineering and architecture design.

Table of contents

Supported Systems

abc is a full implementation of the AspectJ programming language, with an emphasis on extensibility, static analysis and optimisations.

phpaspect is a PHP language extension which implements aspect-oriented programming for PHP 5.

ANGIE Generation Now! provides a new frame processor language to implement generators, e.g., aspect weavers.

AOPHP is an aspect-oriented extension to PHP aimed at helping web developers with logging, security and data validation.

AspectJ is a seamless aspect-oriented extension to Java that enables the modular implementation of a wide range of crosscutting concerns.

Aspect-Oriented Perl is a Perl module for writing dynamic aspects in Perl.

AspectR is aspect-oriented programming for Ruby that allows you to wrap code around existing methods in your classes.

AspectS is an early prototype that enables aspect-oriented programming in the Squeak/Smalltalk environment.

Aspects is a Python module that enables aspect oriented programming in Python.

AspectScheme is a PLT Scheme language module that enables dynamic and lexical aspects.

AspectXML is an attempt to sound out, brainstorm, and generally try out the aspect oriented approach in relation to XML.

aTrack is a an open source bug tracking application that demonstrates effective large-scale use of AspectJ, which also provides the ajee support library for AspectJ projects.

AspectWerkz is a dynamic, lightweight and high-performant AOP/AOSD framework for Java.

C-SAW is a modeling tool plug-in that provides two-level aspect weaving to support model-driven program transformation.

Caesar is an aspect-oriented programming language that focusses on multi-view decomposition and aspect reusability.

Concern Manipulation Environment (CME) provides an open set of components and frameworks on which to build AOSD tools and an initial set of such tools, towards support for AOSD across the software lifecycle.

DemeterJ and DJ facilitate the structure-shy encapsulation of traversal-related behavioral concerns.

Eos is an aspect-oriented extension to C# for .NET Framework. It supports a very simple and unified model of AOP.

FeatureC++ supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.

Hyper/J supports "multi-dimensional" separation and integration of concerns in standard Java software.

JAsCo is an aspect-oriented programming language tailored for component based software development.

JMangler is a tool for load-time transformation of Java programs that partly supports automatic, conflict-free composition of independently developed aspects.

MixJuice is an extension to Java, based on the difference-based module mechanism.

Mozart Programming System is an advanced development platform for intelligent, distributed applications.

Object Everywhere - An article describing an AOP Framework based on COM with Delphi.

Object Teams is a programming model that combines well explored concepts like role objects, collaborations, method interception, virtual types and dynamic aspect activation, introducing only a fairly small number of language constructs. The model is realized within the host languages Lua, Ruby and Java.

PROSE is an AOP platform based on the Java Virtual Machine that allows dynamic weaving and un-weaving.

SmartTools is an Aspect- and XML-oriented Semantic Framework Generator.

Spring Framework is a J2EE application framework.

UMLAUT is a framework that weaves multi-dimensional high level UML design models into detailed design models suitable for either implementation, simulation or validation.

xlinkit checks the consistency of, and generates links between, distributed documents; it builds on a long line of research into the management of consistency across multiple views.

Research Prototypes

AopDotNetAddIn is a visual studio AddIn that provides the aspect oriented capabilities to the .Net languages (C#,VB.Net,J#)

Apostle is an AspectJ-like aspect-oriented extension to Smalltalk.

Arachne is a dynamic weaver for C applications built to pragmatically explore the advantages and drawbacks of aspect-oriented solutions to software extensibility, software adaptability and software evolution issues on legacy applications.

ArchJava extends Java with explicit software architecture constructs, separating out structural concerns that would otherwise crosscut the system.

Aspect Browser is a graphical tool that uses the map metaphor to assist finding, exploring, and manipulating crosscutting concerns in software.

Aspect Mining Tool (AMT) is a tool for identification and exploring latent concerns in software systems.

AspectC is a simple AspectJ-like AOP extension to C.

AspectC# explores adding AspectJ-style aspect support to C#.

Aspectos shows the results of several AOP research projects, including implementation and design issues.

Aspect.pm is a set of Perl libraries for aspect-oriented programming.

AspectPHP is an aspect implementation for a PHP interpretor.

ComposeJ is an extension of the java language that adds composition filters to Java classes through inlining.

Concern Graphs are a manipulable representation of concerns that can be extracted from an existing code base.

ConcernJ integrates the concepts of aspects, classes and Composition Filters into 'concerns'; this prototype demonstrates the transformation of (language-independent) concern specifications and java classes into executable composition filters and java files.

DynamicAspects is an open source framework supporting dynamic aspect oriented programming relying on pure java and jdk 5.0 features only.

EAOP is an approach to AOP for Java with expressive crosscuts, explicit aspect composition, aspects of aspects, and dynamic aspect management.

FEAT is an Eclipse plug-in allowing developers to find, document, and analyze the implementation of aspects in Java source code.

FeatureC++ supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.

FuseJ provides a unified component architecture that eliminates the distinction between aspects and components by introducing a rich aspectual connector language.

ISL is an aspect-oriented service which allows to dynamically express non-functional properties in terms of "interactions".

JADE is an extension to Java that allows for noninvasive composition.

J-LO, the Java Logical Observer, is a linear temporal time(LTL)-based Runtime Verification tool for Java. It generates AspectJ code using the abc framework to check temporal interdependencies at runtime. The special feature about J-LO is that it can bind objects and match on them during evaluation of a formula over time.

JMunger is a tool to insert Java code into existing classes at load time.

JQuery is a query-based code browser for Java, written as an Eclipse plugin.

Lasagne/J is an extension of the Java programming language that makes dynamic evolution of collaborating objects possible.

MetaclassTalk is a reflective extension of Smalltalk that provides a MOP which can be used for AOP.

Pythius is an open-source project to support aspect-oriented programming techniques in Python.

QSOUL/Aop is an Aspect Oriented Logic Meta Programming tool in Squeak/Smalltalk.

RtJAC is a dynamic aspect oriented framework for Java based on JAC 0.11. It is a rewrite of the JAC core, performing aspect weaving through dynamic translation and hotswapping classes.

SCoPE is an AspectJ compatible compiler that can statically evaluate if-pointcuts.

Steamloom is a Java VM with dedicated support for aspect-orientation at VM level.

Weave.NET aims to provide a language independent mechanism for supporting the AspectJ notion of AOP that is also consistent with the component model of the .NET Framework.

DotSpect (.SPECT) is a .NET, Compile-time (Static-injection), Language-Independent Aspect Weaver. It provides a language similar to AspectJ with some additional syntactic elements. Advice code can be written in any language. By default, there is support for C# and VB.NET. It also provides an IDE for writing and testing aspects.


a-kernel is an effort to apply AOP techniques to operating system kernel code.

FACET is a framework for a customizable real-time event channel that uses aspects.

Lasagne is an aspect-oriented architecture for context-sensitive and run-time weaving of aspects--prototypes have been developed in Java and Correlate.

PacoSuite is a visual component composition environment which supports aspect oriented software development using the JAsCo programming language.

QuO is a middleware framework and toolkit which includes aspect-oriented languages for developing quality of service enabled, adaptive distributed object applications.

SoC+MAS is a research project whose main focus is the application of advanced separation of concerns techniques to handle the complexity of designing and implementing multi-agent OO software.

SADES is a customizable and extensible object database evolution system implemented using AOP techniques.

Web Services Management Layer (WSML) is a service oriented framework for the redirection, selection and client-side management of web services and service compositions using dynamic AOP.

Methods & Foundations

Afanti is a project aimed at developing techniques and tools to support testing and analysis of aspect-oriented software.

AIRPort is a portal offering a variety of information on the emerging research domains of aspect identification (a.k.a. aspect mining), aspect refactoring and aspect evolution.

AOPim is a method for the progressive implementation of persistent, distributed, and concurrent applications using aspect-oriented programming.

aopmetrics is a common metrics tool for the object-oriented and the aspect-oriented programming. It aims to provide an aspect-oriented extension of metrics suites proposed by Chidamber and Kemerer, Robert Martin, Henry and Li.

Aspect-Oriented Component Engineering uses the concept of horizontal slices through vertically-decomposed components called aspects to characterize crosscutting properties of components. Aspect-Oriented Frameworks is research on frameworks for aspect-oriented software development.

Aspect-Oriented Software Engineering aims to develop support for aspects throughout the development life cycle--specific application areas include middleware, component-based systems and databases.

Assessment: Does AOP Work? uses case study and experimental methods to evaluate AOP techniques and tools.

Composition Filters offer a modular extension to the object-oriented model that allows the modular specification of aspects in a composable way.

Cosmos is a concern-space modeling schema that supports the modeling of multidimensional concern spaces for purposes of software composition, decomposition, analysis, and understanding. D2AL provides a methodology, an aspect language and tools that support the development of robust and efficient distributed applications.

Demeter Aspects points to Demeter subprojects about the foundations of the separation of crosscutting concerns.

DisCo is a formal specification method that supports advanced separation of concerns for distributed reactive systems.

Dynamic Aspect-Oriented Platform defines a distributed platform that provides dynamic composition between components and aspects as plug-ins.

Event-based AOP is a formal framework for AOP featuring expressive crosscut definitions.

The FeatureC++ Project investigates weaknesses of feature-oriented and aspect-oriented languages. It proposes the integration of AOP concepts into FOP langugages in order to face the problems of FOP in crosscutting modularity.

Filter Objects Project is a project on first-class dynamically-pluggable filter objects and related modeling methods and notations.

Implicit Context is an approach to improving the reusability and evolvability of systems through the reduction of extraneous embedded knowledge.

Jinghu is a project that aims at developing software metrics and their support tools for aspect-oriented systems. Phoenix is an an Aspect-Oriented Approach for Software Reengineering using Transformations.

Prospects is a project aimed at investigating how aspect oriented components can be used to derive useful models of specific concerns.

Quality Controlled Component-based Software Development (QCCS) is a project that is developing a methodology and supporting tools for the creation of components with contracts and based on AOSD. Semantics of Aspect-Oriented Programming (SAOP) is an effort to study constructs for AOP (e.g. method call interception), in particular their language design, their formal semantics, and their relation to program transformation.

Synbad is an architecture design approach for identifying and composing architectural aspects.

Tarim is a project that develops automated tools for testing aspect-oriented programs.

Theme/UML is an aspect-oriented extension to the UML. Vanderbilt/ISIS is working in the area of applying core AOP principles toward domain-specific visual modeling languages. XBel is a framework for reasoning about compositions of concerns on the requirements level.

A detailed description of how to edit can be found on the Help:Editing page.


Instant Feedback

Edited by the AOSD Steering Committee.  Maintained by the webmaster