| AspectJ
AspectJ is a simple aspect-oriented extension to the Java programming
language that enables the clean modularization of crosscutting concerns
such as: design patterns, error checking and handling, synchronization
constraints and performance optimizations.
|
||
| Aspect-Oriented
Programming (AOP)
AOP introduces a new unit of modularity, called an aspect, that is not present
in other types of programming. Aspects are suited for modularizing crosscutting
concerns, which are difficult to address in OO and procedural languages.
|
| Open
Implementation
Open implementation is a software design technique that helps write modules
that are both reusable and efficient for a wide range of clients. In
this approach, the client can tailor a module's implementation strategy to
better suit their needs, effectively making the module more reusable and
the client code more simple.
|
||
| Metaobject
Protocols
The metaobject protocol approach is based on the idea that one can and should
allow users to adjust the design and implementation of a language in order
to suit their particular needs. In a language based upon metaobject
protocols, the language implementation itself is structured as an object-oriented
program, permitting the power of object-oriented programming techniques to
be exploited in order to make the language more flexible.
|
||
| Hyperbolic
Browser
Browsing a large hierarchy, like an organization chart or a directory structure,
is difficult because the hierarchies typically grow exponentially.
However, hyperbolic geometry affords an exponentially growing space,
and as such is better suited to displaying hierarchical information.
|
||
| Specification
in OO Programs
The design and specification of OO programs is challenging because extensibility
comes from allowing the user to override parts of the implementation. This
raises issues in both how the programs are designed and how their specification
is written. The related papers are: Issues In the Design and
Specification of Class Libraries, Typing the Specialization
Interface, and Methods as Assertions.
|