December 22, 2014Presentation: Model-driven Development of Composite Content Applications
Room: Zi 2042Ferhat Erata

Composite content applications (CCA) is the term used to define frameworks and templates that are built on enterprise content management (ECM) and/or business process management (BPM) platforms. CCA describes  the orchestration of people, process and content based on repeatable solutions delivered by vendors and their domain expert partners in vertical and horizontal application development. Early examples of CCAs tend to have lower complexity and higher degrees of completeness because they address very common and often simple process problems such as invoice management, contracts and basic case management. But now it should blend content, process and domain expertise while considering the adaptation to changing requirements of enterprises resulting in reusable models and solutions. Traditional software development methodologies are difficult and cumbersome to deal with the structural complexity of the
system architecture of such CCAs. Thus, new domain engineering and software development techniques are required. One possible approach to cope with this complexity is to increase the abstraction level using domain specific models to define problem space, solution space and mappings between them. In this work, we present a model-driven software product line which enables a user to model a composite content application from various viewpoints, such as Form, Navigation, Content, and Workflow in order to automatically generate fully-functional architectural code. Each domain specific language (DSL) which models one aspect of problem space covers abstract syntax, concrete syntax, and operational semantics (including model-to-model and model-to-code transformations). In this work, we also introduce a tool to validate the consistency of the metamodel of each language against its feature model. By means of the integration with SAT and CSP solvers of the Clafer lightweight formal specification language which is also used as a component of the platform, the method has enabled the incremental
development of the platform itself. The proposed method can also be employed for the bounded verification of the abstract syntax of a DSL implemented in Eclipse Modeling Framework (EMF).