[Main Page]

FAQ

(Difference between revisions)

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

Printable version | Disclaimers | Privacy policy | Current revision

m
Line 18: Line 18:
===What is the difference between AOSD (Aspect-Oriented Software Development) and AOP (Aspect-Oriented Programming)?===
===What is the difference between AOSD (Aspect-Oriented Software Development) and AOP (Aspect-Oriented Programming)?===
 +
 +
===What are ''orthogonal concerns''? Can aspects be used to encapsulate orthogonal conserns only?===
 +
 +
''Orthogonal conerns'' are separated from the base program in that the base program is ''oblivious'' to the concern's existance. This means that the concern can be added or removed without affecting the behavior of the base program (modulo the removed concern). An example of this is logging. The addition or removal of a logging aspect does not affect the behavior of the program except to add logging functionality. Therefore the logging concern is ''orthogonal''.
 +
 +
Of course, there are other ways that orthogonal concerns may indirectly affect program behavior. These include larger memory footprint, longer runtime, etc. Nonetheless, these concerns are still considered orthogonal.
 +
 +
In practice, many concerns are non-orthogonal and aspect-oriented programming languages have capabilities to encapsulate them as well.
''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.''

Revision as of 16:44, 10 June 2005

Table of contents

I don't know anything about AOSD, can you explain it succinctly?

Adrian Colyer has made this attempt to explain AOSD without resorting to specialized terminology.

Isn't AOSD/AOP just AspectJ and isn't that just a new programming language?

Why should I develop using aspects?

How should I introduce AOSD into my company?

What are the major commercial aspect frameworks?

Are there any success stories of large projects that have used an aspect-oriented methodology?

Don't aspects break the encapsulation that is assured by object-oriented and procedural programming?

What are the open areas of research in AOSD?

What is the difference between AOSD (Aspect-Oriented Software Development) and AOP (Aspect-Oriented Programming)?

What are orthogonal concerns? Can aspects be used to encapsulate orthogonal conserns only?

Orthogonal conerns are separated from the base program in that the base program is oblivious to the concern's existance. This means that the concern can be added or removed without affecting the behavior of the base program (modulo the removed concern). An example of this is logging. The addition or removal of a logging aspect does not affect the behavior of the program except to add logging functionality. Therefore the logging concern is orthogonal.

Of course, there are other ways that orthogonal concerns may indirectly affect program behavior. These include larger memory footprint, longer runtime, etc. Nonetheless, these concerns are still considered orthogonal.

In practice, many concerns are non-orthogonal and aspect-oriented programming languages have capabilities to encapsulate them as well.


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