Software Practices Lab Homepage
People
Publications
Papers
Theses
Projects
AO Design Patterns
AO Refactoring
Apostle
Aspect Mining Tool
Bug Triage
CBD
SD Coupling
Emergent Teams
Fishtail
JQuery
Logic AOP
Mylar
Pointcut Doctor
past projects...
Reading Group
SPL Wiki [local access]

Explicit Context/Elide

  

Many design concepts can be expressed only indirectly in source code. A single concept often results in a verbose amount of code scattered across the system structure. Explicit programming enables a developer to introduce newvocabulary into the source to capture a design concept explicitly. A vocabulary item introduced by a developer encapsulates the implementation details associated with a design concept, reducing the scattering of code needed to express the concept. A vocabulary item appears in the code where the conceptis needed; uses of the vocabulary may thus remain scattered through the code.

Explicit Programming provides a useful engineering point balancing modularization and separation in (at least) two cases. First, when a design concept is tightly coupled with particular constructs in a program, separation is unlikely to lead to any benefits of reusability or comprehensibility. Second,concepts that emerge as a system evolves can be encapsulated and recorded, paving the way for later separation when conditions warrant the separation.

We have implemented a tool, called ELIDE (Extension Language for Iterative Design Encoding) to support Explicit Programming in Java.

For more information visit our main Elide page

People

  • Avi Bryant
  • Andrew Catton
  • Kris De Volder
  • Gail Murphy

Publications

Avi Bryant, Andrew Catton, Kris De Volder and Gail C. Murphy. "Explicit Programming", AOSD 2002.

Demonstrations

Demonstration at OOPSLA 2001