[Main Page]

Research Projects

(Difference between revisions)

Main Page | Recent changes | View source | Page history | Log in / create account |

Printable version | Disclaimers | Privacy policy | Current revision

(Applications)
Current revision (13:45, 29 July 2010) (edit) (undo)
m (Reverted edits by Jameskerry486 (Talk); changed back to last version by Andrew)
 
(62 intermediate revisions not shown.)
Line 1: Line 1:
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.
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.
-
A bibliography of AOSD-related publications is available in [[aosd-bib|bib]] format.
+
Robert Filman maintains a bibliography of papers on AOSD available both in [http://home.comcast.net/~refilman/text/oif/aosd-bibliography.pdf pdf]
 +
and
 +
[http://home.comcast.net/~refilman/text/oif/aosd-bibliography.bib bibtex]. Please send additions, corrections, etc to him as user "filman" in domain "computer.org"
The [http://www.springeronline.com/sgw/cda/frontpage/0,10735,5-164-2-109318-0,00.html Transactions on Aspect-Oriented Software Development] journal publishes papers on all facets of AOSD.
The [http://www.springeronline.com/sgw/cda/frontpage/0,10735,5-164-2-109318-0,00.html Transactions on Aspect-Oriented Software Development] journal publishes papers on all facets of AOSD.
Line 7: Line 9:
The [http://www.early-aspects.net/ Early Aspects] site is a collection of links to research on managing aspects at the early development stages of requirements engineering and architecture design.
The [http://www.early-aspects.net/ Early Aspects] site is a collection of links to research on managing aspects at the early development stages of requirements engineering and architecture design.
-
=Supported Systems=
+
=[[Supported Systems]]=
-
[http://angie.d-s-t-g.com/ ANGIE Generation Now!] provides a new frame processor language to implement generators, e.g., aspect weavers.
+
=[[Research Prototypes]]=
-
[http://www.aophp.net/ AOPHP] is an aspect-oriented extension to PHP aimed at helping web developers with logging, security and data validation.
+
=[[Applications]]=
-
 
+
-
[http://eclipse.org/aspectj AspectJ] is a seamless aspect-oriented extension to Java that enables the modular implementation of a wide range of crosscutting concerns.
+
-
 
+
-
[http://search.cpan.org/~marcel/Aspect-0.08/lib/Aspect/README.pod Aspect-Oriented Perl] is a Perl module for writing dynamic aspects in Perl.
+
-
 
+
-
[http://aspectr.sourceforge.net/ AspectR] is aspect-oriented programming for Ruby that allows you to wrap code around existing methods in your classes.
+
-
 
+
-
[http://www.prakinf.tu-ilmenau.de/~hirsch/Projects/Squeak/AspectS/ AspectS] is an early prototype that enables aspect-oriented programming in the Squeak/Smalltalk environment.
+
-
 
+
-
[http://www.logilab.org/projects/aspects/ Aspects] is a Python module that enables aspect oriented programming in Python.
+
-
 
+
-
[http://planet.plt-scheme.org/#aspect-scheme.plt1.0 AspectScheme] is a PLT Scheme language module that enables dynamic and lexical aspects.
+
-
 
+
-
[http://www.aspectxml.org/ AspectXML] is an attempt to sound out, brainstorm, and generally try out the aspect oriented approach in relation to XML.
+
-
 
+
-
[https://atrack.dev.java.net/ 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.
+
-
 
+
-
[http://aspectwerkz.codehaus.org/index.html AspectWerkz] is a dynamic, lightweight and high-performant AOP/AOSD framework for Java.
+
-
 
+
-
[http://www.gray-area.org/Research/C-SAW/ C-SAW] is a modeling tool plug-in that provides two-level aspect weaving to support model-driven program transformation.
+
-
 
+
-
[http://caesarj.org/ Caesar] is an aspect-oriented programming language that focusses on multi-view decomposition and aspect reusability.
+
-
 
+
-
[http://www.eclipse.org/cme/ 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.
+
-
 
+
-
[http://www.ccs.neu.edu/research/demeter/DemeterJava/ DemeterJ] and DJ facilitate the structure-shy encapsulation of traversal-related behavioral concerns.
+
-
 
+
-
[http://www.cs.virginia.edu/~eos Eos] is an aspect-oriented extension to C# for .NET Framework. It supports a very simple and unified model of AOP.
+
-
 
+
-
[http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/ FeatureC++] supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.
+
-
 
+
-
[http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm Hyper/J] supports "multi-dimensional" separation and integration of concerns in standard Java software.
+
-
 
+
-
[http://ssel.vub.ac.be/jasco JAsCo] is an aspect-oriented programming language tailored for component based software development.
+
-
 
+
-
[http://javalab.cs.uni-bonn.de/research/jmangler JMangler] is a tool for load-time transformation of Java programs that partly supports automatic, conflict-free composition of independently developed aspects.
+
-
 
+
-
[http://staff.aist.go.jp/y-ichisugi/mj/ MixJuice] is an extension to Java, based on the difference-based module mechanism.
+
-
 
+
-
[http://www.mozart-oz.org/ Mozart Programming System] is an advanced development platform for intelligent, distributed applications.
+
-
 
+
-
[http://www.object-everywhere.com/OBJECT-EVERYWHERE/articles/AOPFramework.htm Object Everywhere] - An article describing an AOP Framework based on COM with Delphi.
+
-
 
+
-
[http://www.objectteams.org/ 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.
+
-
 
+
-
[http://prose.ethz.ch/ PROSE] is an AOP platform based on the Java Virtual Machine that allows dynamic weaving and un-weaving.
+
-
 
+
-
[http://dependex.dc.uba.ar/setpoint/ SetPoint!] is an aspect-oriented tool based on semantic pointcuts, developed using Microsoft's .NET framework.
+
-
 
+
-
[http://www-sop.inria.fr/oasis/SmartTools/ SmartTools] is an Aspect- and XML-oriented Semantic Framework Generator.
+
-
 
+
-
[http://www.springframework.org/ Spring Framework] is a J2EE application framework.
+
-
 
+
-
[http://www.irisa.fr/UMLAUT UMLAUT] is a framework that weaves multi-dimensional high level UML design models into detailed design models suitable for either implementation, simulation or validation.
+
-
 
+
-
[http://www.xlinkit.com/ 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=
+
-
 
+
-
[http://www.geocities.com/m_mesalem/aop.html AopDotNetAddIn] is a visual studio AddIn that provides the aspect oriented capabilities to the .Net languages (C#,VB.Net,J#)
+
-
 
+
-
[http://www.cs.ubc.ca/labs/spl/projects/apostle/ Apostle] is an AspectJ-like aspect-oriented extension to Smalltalk.
+
-
 
+
-
[http://www.emn.fr/x-info/arachne/ 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.
+
-
 
+
-
[http://www.cs.washington.edu/homes/jonal/archjava/ ArchJava] extends Java with explicit software architecture constructs, separating out structural concerns that would otherwise crosscut the system.
+
-
 
+
-
[http://www-cse.ucsd.edu/users/wgg/Software/AB/ Aspect Browser] is a graphical tool that uses the map metaphor to assist finding, exploring, and manipulating crosscutting concerns in software.
+
-
 
+
-
[http://www.cs.ubc.ca/~jan/amt/ Aspect Mining Tool (AMT)] is a tool for identification and exploring latent concerns in software systems.
+
-
 
+
-
[http://www.cs.ubc.ca/labs/spl/projects/aspectc.html AspectC] is a simple AspectJ-like AOP extension to C.
+
-
 
+
-
[http://www.dsg.cs.tcd.ie/index.php?category_id=169 AspectC#] explores adding AspectJ-style aspect support to C#.
+
-
 
+
-
[http://www.angelfire.com/ri2/aspectos/ Aspectos] shows the results of several AOP research projects, including implementation and design issues.
+
-
 
+
-
[http://search.cpan.org/author/MARCEL/Aspect-0.08/ Aspect.pm] is a set of Perl libraries for aspect-oriented programming.
+
-
 
+
-
[http://www.cs.toronto.edu/~yijun/aspectPHP AspectPHP] is an aspect implementation for a PHP interpretor.
+
-
 
+
-
[http://trese.cs.utwente.nl/prototypes/composeJ/ ComposeJ] is an extension of the java language that adds composition filters to Java classes through inlining.
+
-
 
+
-
[http://www.cs.ubc.ca/labs/se/projects/index.html#ConcernGraphs Concern Graphs] are a manipulable representation of concerns that can be extracted from an existing code base.
+
-
 
+
-
[http://trese.cs.utwente.nl/prototypes/concernJ 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.
+
-
 
+
-
[http://www.emn.fr/x-info/eaop/tool.html EAOP] is an approach to AOP for Java with expressive crosscuts, explicit aspect composition, aspects of aspects, and dynamic aspect management.
+
-
 
+
-
[http://www.cs.ubc.ca/labs/spl/projects/feat/ FEAT] is an Eclipse plug-in allowing developers to find, document, and analyze the implementation of aspects in Java source code.
+
-
 
+
-
[http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/ FeatureC++] supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.
+
-
 
+
-
[http://www.essi.fr/~rainbow ISL] is an aspect-oriented service which allows to dynamically express non-functional properties in terms of "interactions".
+
-
 
+
-
[http://www.st.informatik.tu-darmstadt.de/projects/IOP/ JADE] is an extension to Java that allows for noninvasive composition.
+
-
 
+
-
[http://bodden.de/publications J-LO], the Java Logical Observer, is a LTL-based Runtime Verification tool for Java. It generates AspectJ code using the [[Tools_for_Developers#Other_Development_Quality_Tools|abc]] framework to check temporal interdependencies at runtime. The tool is still under development. A prototype will soon be available.
+
-
 
+
-
[http://www.cs.utwente.nl/~bakkerj/jmunger JMunger] is a tool to insert Java code into existing classes at load time.
+
-
 
+
-
[http://jquery.cs.ubc.ca/ JQuery] is a query-based code browser for Java, written as an Eclipse plugin.
+
-
 
+
-
[http://www.lasagnej.org/ Lasagne/J] is an extension of the Java programming language that makes dynamic evolution of collaborating objects possible.
+
-
 
+
-
[http://csl.ensm-douai.fr/MetaclassTalk MetaclassTalk] is a reflective extension of Smalltalk that provides a MOP which can be used for AOP.
+
-
 
+
-
[http://pythius.sourceforge.net/ Pythius] is an open-source project to support aspect-oriented programming techniques in Python.
+
-
 
+
-
[http://prog.vub.ac.be/poolresearch/aop/qsoulaop.html QSOUL/Aop] is an Aspect Oriented Logic Meta Programming tool in Squeak/Smalltalk.
+
-
 
+
-
[http://rtjac.sf.net/ 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.
+
-
 
+
-
[http://www.graco.c.u-tokyo.ac.jp/ppp/projects/scope/ SCoPE] is an AspectJ compatible compiler that can statically evaluate if-pointcuts.
+
-
 
+
-
[http://www.st.informatik.tu-darmstadt.de/static/pages/projects/AORTA/Steamloom.jsp Steamloom] is a Java VM with dedicated support for aspect-orientation at VM level.
+
-
 
+
-
[http://www.dsg.cs.tcd.ie/index.php?category_id=194 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.
+
-
 
+
-
=Applications=
+
-
 
+
-
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.
+
-
 
+
-
[http://ssel.vub.ac.be/wsml 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==
+
-
 
+
-
[http://www.fit.ac.jp/~zhao/staplab/afanti-home.html 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.
+
-
 
+
-
[http://www.cin.ufpe.br/~scbs/phd/ AOPim] is a method for the progressive implementation of persistent, distributed, and concurrent applications using aspect-oriented programming.
+
-
 
+
-
[http://aopmetrics.tigris.org 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 model is 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.
+
-
 
+
-
[http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/ 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.
+
-
 
+
-
[http://www.fit.ac.jp/~zhao/staplab/jinghu-home.html 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.
+
-
 
+
-
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.
+
 +
=[[Methods & Foundations]]=
''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.''

Current revision

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

Research Prototypes

Applications

Methods & Foundations

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


Wiki

Instant Feedback

Edited by the AOSD Steering Committee.  Maintained by the webmaster