This internship takes place into a collaboration between INRIA and the University of Nice. The objective is to apply model engineering techniques and model transformations to support the development of product lines in video surveillance. We rely on an existing software platform which provides basic components (image acquisition, segmentation, tracking...) to build video surveillance applications.
Our goal is to provide developers with a tool to assist development of video surveillance processing chains. Conforming with the model engineering approach, the tool will take a specification of the target video surveillance application as input and will produce the range of possible component assemblies that satisfy the specification as output. This requires both a generic model of video surveillance applications (business model) and a model of video processing components and chains (platform model). Moreover, we also need to model automatic (or semi-automatic) transformations from the first model to the second. A difficult issue is to handle variability factors both at application level (observation context, objects of interest, surveillance task, lighting conditions...) and at component assembly level (selection of algorithms, parameter tuning...).
Presently, we have defined a first version of both models using "feature diagrams"; this representation allows us to describe variability causes. We have also identified some transformation rules with the help of a video surveillance expert. Furthermore, we have developed a prototype of a generic feature diagram editor to enter the previous models.The objective of this internship is to complement the models, to precisely define the needed transformations, and to integrate this into a tool to assist video surveillance development. This tool will rely on the current feature diagram editor and will be implemented under Eclipse using this environment meta-modeling facilities (EMF, Ecore, GMF...); model transformations will be implemented owing to an existing tool available within Eclipse (such as Kermeta, ATL...).