background preloader

MOP

Facebook Twitter

Aspect-oriented software development. Traditional software development focuses on decomposing systems into units of primary functionality, while recognizing that there are other issues of concern that do not fit well into the primary decomposition.

Aspect-oriented software development

The traditional development process leaves it to the programmers to code modules corresponding to the primary functionality and to make sure that all other issues of concern are addressed in the code wherever appropriate. Programmers need to keep in mind all the things that need to be done, how to deal with each issue, the problems associated with the possible interactions, and the execution of the right behavior at the right time. These concerns span multiple primary functional units within the application, and often result in serious problems faced during application development and maintenance.

History[edit] Currently, several aspect-oriented programming languages are available for a variety of languages and platforms. Motivation[edit] Crosscutting concerns[edit] Overview[edit] Aspect-oriented programming using reflection and metaobject protocols. Aspect-oriented programming using reflection and metaobject protocols. Bibliography. ECA Publications. Meta Object Protocol. The essence of a Metaobject Protocol is simple: every aspect of a program's mapping down onto the lower level substrate (i.e. its compilation and runtime support) is controlled by some object or set of objects following a well-defined protocol.

Meta Object Protocol

These objects are called metaobjects, because they are about the mapping of the program, rather than objects in the program's primary subject domain. Client programmers can replace one or more of these objects with specialized ones to affect specific aspects of the implementation of specific parts of their program. Also see Andreas Paepcke, "User-Level Language Crafting": How about: make your interpreter (or compiler) available in your program, so that you can change rules for method lookup, variable scoping or whatever else you want in your program. This makes sense, sometimes -- for instance, a better stack tracer that elides calls to the standard library. Let me take my stab, having (tried to) read the book: -- PaulHudson. Object technologies for advanced software: first JSSST international ... - Shōjirō Nishio, Akinori Yonezawa, Nihon Sofutowea Kagakkai. Inc Products: The Meta-Object Protocol and Knowledge-Based Systems.

December 1997 This is the latest in a series of articles on developing Knowledge-Based Applications with Dynamic Objects technology.

Inc Products: The Meta-Object Protocol and Knowledge-Based Systems

The first of these articles, Knowledge-Based Application Development with Dynamic Objects Technology (October 1997), discussed what kind of applications are included in this category, how they are being integrated into multi-tier client-server computing architectures, and how Allegro CL has become the "tool of choice" for development of knowledge-based systems. The article Dynamic Objects Features Make Allegro CL Ideal for Knowledge-Based Applications (November 1997) focused on one of the Dynamic Objects features of Allegro CL which makes it ideal for this kind of development: the capability of Allegro CL to runtime-extend and reconfigure knowledge very efficiently.

Allegro CL's runtime extensibility is one of the primary reasons why this development system remains pre-eminent in advanced knowledge-based application development today. Note: Uniform Syntax.