A Tree-Based, Domain-Oriented Software Architecture for Interactive Object-Oriented Applications
Model-View-Controller (MVC) is an established architectural design pattern for developing interactive, object-oriented applications. Numerous MVC-based application development approaches have been proposed in the literature, the more recent of which incorporate the domain-oriented design approach. From the architectural design view point, however, domain-oriented design has only been applied at the component level. It has not been used to model the architecture itself. In this paper, we propose a novel tree-based, domain-oriented architecture to fill this gap. Our architecture models an application as a set of modules, each of which is a structured class whose parts are of three M-V-C classes. The controller is a class template whose template parameter is bound to the domain class of the module. Complex modules are designed using containment tree that is defined directly on top of the domain class design model. The architecture has been implemented in a Java-based software framework which is being used in various software development projects.