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
- Avi Bryant
- Andrew Catton
- Kris De Volder
- Gail Murphy