Model Driven Engineering for Designing Large Scale Applications

Model driven engineering applied to video surveillance

Developing complex industrial software systems is a time-consuming and error-prone activity. Software Engineering proposes concepts, methods, and tools to reduce the time to market and the risk of errors. Among these we can mention reusable component frameworks to deal with code complexity and model-based approaches where pervasive models are used as starting point to (semi-)automatic transformations leading to executable code.

In the Pulsar team, we have developed a C++ component framework implementing a variety of algorithms and modules to cover all the aspects of video surveillance processing chains. However, directly using this framework is difficult, even for experienced designers. We are now exploring a model-driven approach to assist the developers. Our final goal, starting from a model of a video surveillance application and from a model of the software components, is to obtain executable code through a series of model transformations. For this, we rely on software engineering approaches known as Model Driven Engineering (MDE) and Software Product Line (SPL).

Our approach is to apply modeling techniques to the specification (describing the video surveillance task and its context) as well as to the implementation (assembling the software components). We propose two  models: a generic model of video surveillance applications (specification model) and a model of video processing components and chains (component model).  The task model describes the relevant concepts and features from the stakeholder point of view, in a way that is natural in the video surveillance domain: characteristics and position of sensors, context of use (day/night, in/outdoors, target task)... It includes also notions of quality of service (performance, response time, detection robustness, configuration cost...).  The component model describes the different software components of the framework, their parameters and their assembly constraints (ordering, alternative algorithms...). Both models contain many possible variants, mandatory or optional elements, alternatives, parameters to tune, etc.  One of  the challenges is then to cope with these many causes of variability on both sides.

Moreover, inside the models, the features are not independent. A decision in the task model (e.g., selecting or removing an element) may impact both the task model itself and the component model. Therefore, we need to introduce constraints among the elements of a model and transformation rules to pass from the specification model to the component one.

Current status

At this time, with the help of video surveillance experts, we have conducted a domain engineering work to identify the important concepts in both models. Then we have expressed the models using feature diagrams, a simple and convenient way of dealing with variability.  We are presently developing a generic feature diagram editor using Eclipse meta-modeling facilities (EMF, Ecore, GMF...) as well as other Eclipse-based tools such as Kermeta. However, we still need a formal representation of constraints and transformation rules.

Post-doctoral assignment

The proposed work presents several aspects,  involving model elaboration, constraints and rules formalization, and tool development. The candidate will interact with experts to improve and complete the models, so that automatic transformations may be possible. In particular, some features and many rules and constraints are missing from the current models. A more theoretical aspect is to formalize the expression of constraints and rules: define a language and its semantics, integrate it into Eclipse,  and interface with (yet to be chosen) verification and transformation tools.  Finally, the candidate should develop and demonstrate a prototype of a graphic tool to assist designers.

The final objective is to provide a graphic tool to assist the full specification and design of complete video surveillance processing chains. The tool should allow a video surveillance application expert to perform the following operations: (i) select the needed features from the task model, (ii) enforce validity constraints, (iii) automatically propose a specialized component model corresponding to the expert's specifications, (iv) instantiate this component model under expert's control to obtain the final processing chain, (v) automatically generate the glue code put components together.

Expected background

Practical information


One or two years.


This work will take place in a long-standing collaboration with video surveillance experts (from the Pulsar team itself and from a start up company named Keeneo) and model-driven engineering experts (from other INRIA teams, the university of Nice, and from Oslo).


Sabine Moisan, Researcher in Pulsar team: