Page d'accueil Zone de recherche
Annuaire Campus Aide Plan du site English

Offres pour ingénieurs associés /
Opération de Développement de Logiciel
 


> toutes les offres

Demande de développement de logiciel pour Syndex


Profil du poste

Le candidat devra être titulaire au moins d'un diplôme d'ingénieur ou d'un DEA ou DESS, il devra avoir une très bonne connaissance du langage Caml, avec une bonne expérience du développement logiciel avec ce langage. Une connaissance du domaine du temps réel et/ou du distribué sera appréciée.

Fonctions et public

SynDEx est un logiciel de CAO niveau système pour le prototypage rapide et l'optimisation d'applications distribuées temps réel embarquées complexes (www.syndex.org). Il permet de spécifier des fonctionnalités ou de les importer à partir d'un langage orienté métier tel que Scilab/Scicos, de spécifier des architectures matérielles distribuées, et d'explorer manuellement ou automatiquement à l'aide d'heuristiques d'optimisation, des implantations en tenant compte de contraintes temps réel et d'embarquabilité. Il faut noter ici que l’interface Scilab/Scicos/SynDEx testée actuellement par PSA constitue une avancée par rapport à Matlab/Simulink/Real-timeWorkshop car contrairement à ce dernier elle est capable de faire de l’implantation temps réel sur architectures distribuées plutôt que monoprocesseur.

SynDEx vise principalement les domaines de l'avionique, les transports publics ou privés, le spatial, la robotique et les télécommunications, pour lesquelles les applications complexes nécessitent une conception et une implantation sûre alors que les contraintes temps réel sont souvent critiques et que les architectures matérielles sont très complexes car hétérogènes (processeurs, circuits intégrés spécifiques, média de communication, tous de différents types). Ces applications étant la plupart du temps embarquées demandent à ce que leurs ressources soient minimisées (nombre de processeurs et de moyens de communication, mémoire, consommation, surface, etc.).

Etat actuel

Le logiciel SynDEx en est actuellement à sa version V6.7.5. Chaque version majeure, depuis la V0, a été déposée à l'APP. Il est téléchargeable gratuitement à l'URL (www.syndex.org) sous copyright INRIA, avec nécessité d'établir un contrat avec l'INRIA lorsqu'un usage commercial est souhaité.

Après avoir été utilisé dans le cadre d'évaluations ponctuelles par les principaux industriels des domaines cités plus haut, par exemple par Thomson (maintenant Thales), Dassault, Aerospatiale, etc…, ou dans le cadre de projets nationaux (RNRT, RNTL) : PROMPT (System on Chip pour les télécommunications), ACOTRIS (contrôle commande et traitement du signal), ECLIPSE et AEE (automobile), ou européens (ITEA) : EAST (automobile), P2I (télécommunications), nous devons faire face depuis quelques années à des demandes d'industriels qui souhaitent utiliser SynDEx dans un cadre opérationnel, pour le développement de nouveaux produits.

Par exemple la société Robosoft réalise depuis plusieurs années ses nouvelles applications de robotique mobile avec SynDEx. La société MBDA conçoit avec SynDEx depuis deux ans une nouvelle génération de système de navigation. Mitsubishi-Electric ITE utilise SynDEx depuis deux ans pour proposer en interne de la société une plateforme de développement d'applications de "software radio" pour concevoir leurs nouveaux produits UMTS.

Les utilisateurs industriels de SynDEx s'accordent pour dire que le logiciel a une qualité proche d'un produit commercial, sachant tout de même qu'il n'y a aucun produit commercial équivalent sur le marché. Cependant il reste deux points importants qu'ils souhaiteraient que nous améliorions. C'est ce que nous proposons faire dans le cadre de cette ODL.

Le premier concerne la coopération entre d’une part l'interface homme machine (IHM) qui permet de spécifier les fonctionnalités et les architecture matérielles et de visualiser les résultats des explorations, et d’autre part l'adéquation qui permet d’effectuer les explorations d'implantations manuelles ou automatiques. Ce point est important pour les industriels pour qui l'IHM est fondamentale - c'est à la limite la seule chose qui les intéresse, et ceci a juste titre - mais dont l’efficacité est fortement dépendante de l'adéquation avec laquelle elle est intimement liée.

Actuellement les deux modules IHM et adéquation utilisent des structures de données séparées ce qui conduit d'une part à une diminution de l’efficacité et d'autre part à compliquer les vérifications qui sont effectuées sur la spécifications des fonctionnalités et des architectures matérielles essentiellement car elles sont hiérarchiques. Pour ces dernières la spécification actuelle doit être améliorée. Cela est d'autant plus vrai que les structures de contrôle utilisées pour spécifier les fonctionnalités - équivalent des "IF THEN ELSE" et des "FOR I DO" - sont fondées elles aussi sur la hiérarchie.

En parallèle et de manière complémentaire les heuristiques d'optimisation de l’adéquation doivent être étendues pour prendre en compte les nouveaux besoins des industriels dans ce domaine. Ces extensions concernent principalement la prise en compte de contraintes temps réelle multiples de périodicité et de latence et d’embarquabilité.

Le second concerne la génération de code. SynDEx génère automatiquement un macro-code indépendant de l'architecture matérielle cible - ce qui on l'imagine a beaucoup d'intérêt - qui doit être macro-processé à l'aide de noyaux (bibliothèques de fonctions écrites dans un code source compilable) dépendants eux de l'architecture matérielle cible.

Actuellement la phase de spécification des fonctionnalités et des architectures matérielles, d'exploration d'implantations, et de génération de macro-code est indépendante de la phase de compilation conduisant aux différents codes exécutables en temps réel, ce qui conduit à manipuler plusieurs outils en plus de SynDEx comme le macro-processeur M4, compilateur C, etc.

Nous proposons afin d'augmenter la productivité pour les industriels d'intégrer le plus possible les deux phases en donnant à l'utilisateur un outil unique pour spécifier, compiler et exécuter en temps réel. En particulier cela conduira aussi à interfacer SynDEx à un éditeur de texte standard guidé par la spécification des fonctionnalités et des architectures pour que l'utilisateur puisse écrire facilement les différents noyaux correspondant aux différentes cibles utilisées, et aussi à intégrer dans SynDEx l’appel à divers compilateurs.


Objectifs et plan de travail

2 mois : Etude des structures de données existantes
2 mois : Amélioration de la spécification d’architecture
4 mois : Fusion des deux structures de données en une seule
4 mois : Etude et réalisation de la vérification des fonctionnalités et des architectures
6 mois : Etude et intégration de nouvelles heuristiques d'optimisation
1 mois : Etude de l'extension de l'IHM pour édition guidée des noyaux
3 mois : Réalisation de l'extension
2 mois : Etude et réalisation de l'intégration de quelques compilateurs

Chercheur du projet à contacter :

Yves Sorel

> toutes les offres

 
   
Intranet Nouveautés / Actualités La recherche Transfert technologique Connaître l'Inria Rocquencourt Pôle documentaire Page d'accueil