|
m |
| (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.'' |
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.