Workshop on Aspect-Oriented Documentation
John Stamey |
Bryan Saunders |
This workshop will demonstrate and explain the creation of documentation for Aspect-Oriented programs written in Java and PHP. Fundamentals of Aspect-Oriented Programming, separation of concerns, motivation for Aspect-Oriented Programming, and principles of documenting Aspect-Oriented Programming will be presented.
Keywords: Documentation, Aspect-Oriented Programming, Aspect-Oriented Documentation, aoPHPunit, AJdoc, SubText, Java, PHP
Motivation
Aspect-Oriented Programming (AOP) has become a widely publicized part of the Object-Oriented paradigm over the past ten years. Similar to the familiar concept of modularization for core concerns, AOP recognizes separation of concerns for crosscutting concerns such as logging, synchronization, validation, and persistence.
The code to implement aspects is called advice, and is contained in a file separate from the regular source code of the application. At runtime, advice code is woven into the source code. When weaving is done at the byte-code level, such as the case with the AspectJ plugin for Eclipse Java development environment, the virtual code that is executed at runtime is not available for the programmer to view. When weaving is done at the source code level , such as the case of Aspect-Oriented PHP (aoPHP), a copy of the source code including advice is actually created. In both of these cases, documenting Aspect-Oriented code is not altogether a straightforward process.
Structure
Two programming aids are currently available to document Aspect-Oriented code in Java: AJdoc and SubText. Both of these are available as plugins for the Eclipse Development Environment, found at http://www.eclipse.org/. This workshop will present examples of AOP in Java, along with instruction and real-time examples of documentation created with AJdoc and SubText. One programming aid is currently available for documenting Aspect-oriented code in PHP, aoPHPunit. This testing and documentation tool is found at http://www.aophp.net/.
This workshop presentation will include the following topics:
- Early Aspects – a brief history of AOP and Separation of Concerns
- Introduction to AOP in Java
- Introduction to AOP in PHP
- Documenting AOP developed at the byte-code level (Java)
- Documenting AOP developed at the source code level (PHP)
- The workshop will include both code examples and
Material from the workshop will include example code, and resources to begin documenting Aspect-Oriented programs in Java and PHP. The workshop archive site will be www.aspectorientedprogramming.org/SIGDOC/.
Participants
All participants of SIGDOC 2005 conference are welcome to participate in the workshop. Familiarity with Java and/or PHP is helpful but not required. Knowledge of Aspect-Oriented Programming is not required, as a portion of the workshop will be devoted to that topic.
Note: Please remember that you must register for the main conference to attend the workshop sessions.
Organizers
John W. Stamey, Jr. is the project lead for Aspect-Oriented PHP (AOPHP). He has a number of publications in the field of Aspect-Oriented Programming, and has eight years experience developing enterprise web applications. Stamey currently teaches Computer Science at Coastal Carolina University in Conway, SC and is a member of SIGDOC. Stamey and Bryan Saunders were the recipients of an Academic Excellence Grant from Sun Microsystems (Spring 2005) for their work on AOPHP (www.aophp.net).
Bryan T. Saunders is the lead developer for Aspect-Oriented PHP (AOPHP). He is a student at Coastal Carolina University, and has a number of publications with John Stamey in the field of Aspect-Oriented Programming. Saunders and John Stamey were the recipients of an Academic Excellence Grant from Sun Microsystems (Spring 2005) for their work on AOPHP (www.aophp.net).

