développeur

Logiciels (logiciels libres en majorité) ou ressources (liées aux logiciels) utiles aux développeurs ou aux activités liés au développement de code informatique
Mots-clés

Formation ENVOL 2014 : Tests et validation de logiciels

Malgré la situation difficile et pour le moment incertaine de PLUME, la formation permanente de la DR5 du CNRS, DevLOG, la DSI et des laboratoires du CNRS, avec le soutien par l'INRA, VetAgro-Sup et Inria, proposent une nouvelle édition de la formation ENVOL sur le thème "Méthodes de test et validation des logiciels" qui avait encore été initiée sous l'égide de PLUME.

Cette quatrième édition est la suite de celles qui ont été organisées :

  • en 2008 portant sur la valorisation de ces développements,
  • en 2010 amenant une vision plus concrète des outils et pratiques de développement et
  • dernièrement en 2012/2013 sur les aspects coopératifs du développement pour le logiciel libre.

Cette formation ENVOL 2014 aura lieu du 18 au 21 novembre 2014 à la Londe les Maures dans le Var.

Toutes les informations pratiques, ainsi que le contenu du programme sont en ligne.

L'inscription se fait sur formulaire électronique et est ouverte à tous les agents CNRS et INRA ainsi que ceux d'autres organismes qui s'intéressent aux spécificités de l'environnement enseignement supérieur et recherche (ESR).

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 08/01/14
  • Correction mineure : 08/01/14
  • Auteur de la fiche : Julien Deantoni (AOSTE UNS/I3S/INRIA)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

TimeSquare : simulation de temps logique et physique en CCSL (Clock Constraint Specification Language)

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.

 

Fonctionnalités générales du logiciel

Timesquare est un solver de contraintes écrites en CCSL, un langage permettant de manipuler le temps logique polychrone. La résolution des contraintes fournit une trace sur laquelle il est possible de brancher des "back-end". Les "back-end" permettent de s'abonner aux différents événements de la spécification dans le but de faire un traitement spécifique. Timesquare fournit un ensemble de back-ends existants dont :

  • création d'un timing-diagram (VCD)
  • animation d'un diagramme UML Papyrus
  • exécution de code java
  • analyse de power
  • ...

Interopérabilité

Le format d'entrée est spécifique (CCSL). Il y a de fortes corrélations avec le profil MARTE et en particulier le modèle de temps (CCSL ayant été introduit en annexe de la spécification officielle de MARTE). Le format de la trace de sortie a été utilisé dans le projet RT-Simex. Il permet de générer une trace en VCD (IEEE Standard 1364-1995). Il existe également des travaux qui décrivent la traduction d'une spécification CCSL en logique temporelle et vers le langage polychrone Signal.

Environnement du logiciel

Le logiciel tourne dans le RCP Eclipse (version Indigo).

Autres logiciels aux fonctionnalités équivalentes

Il existe des liens avec signal polychrony.

Documentation utilisateur

Voir sur http://timesquare.inria.fr

Contributions

Un projet existe sur gforge.inria.fr mais il n'est pour l'instant pas public et les contributions se font sur demande.

Contexte d’utilisation du logiciel

Le logiciel a été utilisé pour diverses applications telles que la spécification de modèles de calcul, la réalisation d'analyse temporelle sur EAST-ADL, encoder formellement la notion de tâche périodique, le déploiement d'applications, etc.

CCSL et Timesquare sont également utilisés pour décrire les aspects concurrents et temporels de la sémantique de langage dans un but de composition au sein du projet GEMOC (http://gemoc.org/sle13/).

Pour plus de détails, voir liste des publications sur le site timeSquare ci-dessous.

Publications liées au logiciel
Mots-clés

Journée LoOPS - 19 décembre 2013 - Saclay

Le réseau LoOPS organise une quatrième journées de rencontre et d'échanges. Cette journée aura lieu le jeudi 19 décembre 2013 à l'INRIA Saclay (bâtiment Turing).

Mots-clés

Formation Android - 28 novembre 2013 - Villeurbanne

Le réseau ARAMIS organise une journée de formation au développement sur Android le jeudi 28 novembre de 9h00 à 17h00 à Villeurbanne (laboratoire LIRIS).

Mots-clés

Journée commune aux réseaux RAISIN et CEPAGE - 14 novembre 2013 - Pessac

Les réseaux locaux Cépage et Raisin organisent une journée d'échange le 14/11/2013 à Pessac (33). Matinée réservée aux membres de Cépage et Raisin et après-midi dédiée à des présentations (Firebug et débogage natif des navigateurs, Joan Luc Laborda, introduction aux outils de gestions de code SVN et GIT, Damien Martin-Guillerez et futures actions).

Mots-clés

Création du groupe de développeurs du Languedoc-Roussillon DEV@LR

Suite aux JDEV2013, la création d'un réseau régional de développeurs en Languedoc-Roussillon a été lancée : DEV@LR. Pour plus d'information, s'inscrire à la liste dev_lr [at] services [dot] cnrs [dot] fr (en envoyant un mail à sympa [at] services [dot] cnrs [dot] fr
avec comme sujet "subscribe dev_lr [at] services [dot] cnrs [dot] fr").

Une demi-journée de présentation et formation sera organisée début 2014. D'ici là, le questionnaire https://intranet.lirmm.fr/limesurvey/index.php?sid... est disponible pour les personnes intéressées.

Fiche logiciel validé
  • Création ou MAJ importante : 04/11/13
  • Correction mineure : 04/11/13
  • Rédacteur de la fiche : Pascal Mietlicki - Service informatique vice-rectorat de Nouvelle-Calédonie (Ministère de l'éducation nationale)
  • Relecteur(s) : Stéphane Deraco (DSI CNRS)
  • Responsable thématique : David Rousse (CNRS DSI)
Mots-clés

Talend Open Studio : solution d’intégration de données open source

Description
Fonctionnalités générales

Talend Open Studio for Data Integration est une solution d’intégration de données open source flexible et puissante. C'est un ETL (Extract Transform Load) open source basé sur Eclipse.

Il permet d'interagir avec les données de votre Système d'Information, les intégrer, les mettre en forme, les transformer, ...

L'interface générale vous permet de créer des "jobs" qui contiendront le workflow voulu, un workflow étant un ensemble d'activités qui s’enchaînent via l'utilisation de "composants". Comme dans un système standard d'entrée / sortie, vous avez des composants en entrée (input) et en sortie (output) qui vous permettent d'obtenir le résultat voulu (export CSV, envoi d'email pour indiquer les erreurs le cas échéant, etc). Ces composants s'interfacent entre eux via un ensemble d'"interactions" (linéaire, en cas d'erreur, en parallèle).

Un exemple typique est le fait de vouloir alimenter une base de données à partir d'autres bases tout en adaptant les données à votre convenance. Pour ce faire, vous créez un ou plusieurs "jobs", puis des composants d'entrée de base de données (tMysqlInput par exemple), puis vous récupérez le contenu de la table désirée pour laquelle vous transformez vos données (par exemple, passer d'un champ texte vers un champ date) via un composant de type tMap dont le résultat en sortie alimentera une autre base de données (tPostgresqlOutput par exemple).

Une fois terminé, il ne vous reste plus qu'à exécuter le job soit en mode débogage soit en mode normal, ce dernier étant évidemment plus rapide, avec les variables d'entrée voulues (nom de la base, nom du serveur, autres paramètres) en utilisant des variables de "contextes". En effet, vos "jobs" peuvent être paramétrés, et vous pouvez également avoir différents types de "contextes" (par exemple dév, pré-prod, prod).

Une des fonctionnalités les plus intéressantes est le fait de pouvoir générer des scripts en Perl ou Java pour exécuter vos "jobs" directement sur vos serveurs. Ainsi vous pouvez les exporter et les planifier pour s'exécuter aux heures voulues. Vous pouvez même créer un "job" qui sera en écoute d'une modification (par exemple modification d'un fichier) et qui sera alors exécuté lorsque cet événement surviendra.

Autres fonctionnalités

Talend Open Studio vous permet de créer et de générer toute la documentation de votre projet. Il utilise, pour cela, le formalisme UML. Vous pouvez indiquer des commentaires, des informations sur chaque composant de votre projet.

Etant basé sur Eclipse, vous pouvez aussi intégrer votre propre code à votre projet. Vous pouvez également y intégrer des classes ou objets ce qui vous permet de les utiliser sur plusieurs jobs différents.

Talend Open Studio permet également de traiter des problématiques proches de l'intégration des données, comme des projets de MDM (Master Data Management) et de qualité de données.

Interopérabilité

Compatible avec quasiment tous les standards du marché, une liste est visible sur :
http://www.talendforge.org/components/

Si, toutefois, un composant n'existait pas, vous pouvez le créer vous-même et le proposer à la communauté (http://www.talendforge.org).

Contexte d'utilisation dans mon laboratoire/service
  • Nous l'utilisons comme un générateur de script. Le grand atout de Talend Open Studio est de pouvoir générer des scripts très facilement, son interface est intuitive et vous permet d'effectuer très rapidement ce que vous auriez mis des semaines à coder.
  • Exemple typique : alimentation d'une base de données à partir de plusieurs bases de données différentes, création de Web Services, export LDIF paramétré du LDAP, enchaînement de tâches, création d'une IHM Java pour alimenter une base depuis un fichier CSV, ...
Limitations, difficultés, fonctionnalités importantes non couvertes
  • En cas de difficultés, il y a pléthore d'informations sur le Web :
    http://www.talendforge.org
    https://help.talend.com

  • Talend étant une entreprise française, vous n'aurez donc pas de difficultés à trouver des informations dans la langue de Molière.

Environnement du logiciel
Plates-formes

Logiciel Java

Logiciels connexes

Eclipse

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Éditeur professionnel, communauté associée.

Eléments de pérennité

Basé sur Eclipse, forte communauté d'utilisateurs et de contributeurs. De plus, Talend est une entreprise en expansion et propose tout un ensemble de services tiers, autour de l'ESB en particulier (services qui, si cela vous intéresse, sont payants).

Références d'utilisateurs institutionnels

Entre autres utilisateurs institutionnels, on peut citer :
- L'Université Toulouse 1.
- L'INRA.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)
  • Une multitude de composants existent :
    http://www.talendforge.org/components/

  • Un projet intéressant à créer serait d'avoir un composant IHM qui permettrait d'exporter une fonctionnalité présente sur Talend Open Studio (lorsque le job est exécuté depuis Open Studio), mais actuellement non présente quand le job est exporté et exécuté, qui est de renseigner les paramètres d'entrée du job. Ce composant afficherait une IHM dynamique permettant à l'utilisateur de saisir ces paramètres (une fenêtre avec les différents types de variables en entrée tel qu'un calendrier pour les dates, une zone de saisie pour le texte, un champ adresse IP ou DNS pour le serveur, etc).

Contributions

Principalement via Talend Exchange (informations sur http://www.talendforge.org/) :
http://www.talendforge.org/exchange/

Mots-clés

ANF "Evolution des technologies de l’Internet" - 2 au 4 décembre 2013 - Paris

Une ANF intitulée "Évolution des technologies de l’Internet" est organisée (par la délégation régionale du CNRS Île de France Ouest et Nord) du lundi 2 au mercredi 4 décembre 2013 à Paris autour de Javascript, HTML 5 et CSS 3.

Pour en savoir plus : https://aresu.dsi.cnrs.fr/spip.php?article194
Pour se pré-inscrire (possible jusqu'au 6 novembre 2013) : https://sondage.projet-plume.org/index.php/332889/...

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 11/10/13
  • Correction mineure : 11/10/13
Mots-clés

Plade : plate-forme de recherche de similarité sur du code source

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : version en préparation
  • Licence(s) : GPL - Affero GPL v3
  • Etat : en développement
  • Concepteur(s) : Michel Chilowicz (LIGM)
  • Contact concepteur(s) : michel.chilowicz @ univ-mlv.fr
  • Laboratoire(s), service(s)... : LIGM

 

Fonctionnalités générales du logiciel

Plade est une plate-forme de recherche de correspondances de code source similaire développée en Java et Python. La recherche de similarité a des applications variées telles que la réorganisation du code au sein d'un projet par factorisation de redondances ou la mise en évidence d'opérations de copie légitime ou non entre différents projets. Dans l'hypothèse d'une copie non légitime, des opérations d'édition entre le code original et sa copie peuvent être présentes. Plade cherche à identifier les portions de code présentant une similarité exacte ou approchée suite à des opérations d'édition.

Trois axes sont actuellement développés par Plade :

  1. L'usage de représentations abstraites et transformées pour le code source. Il s'agit par cette première étape de gommer certaines opérations d'édition (modification de formatage, renommage d'identificateurs...). Plade propose des représentations par séquences de lexèmes ou arbres de syntaxe (avec intégration de graphe d'appel), ces représentations pouvant être caractérisées par des niveaux d'abstraction variables. Elles sont obtenues à partir d'analyseurs lexicaux et syntaxiques externes (Plade gère actuellement les langages C++ et Java).

  2. L'utilisation de méthodes algorithmiques pour localiser et caractériser des similarités sur ces représentations. Plade ne s'oriente pas vers des méthodes de comparaison extensive de paires déterminant des chemins d'édition entre séquences ou arbres. L'approche privilégiée s'oriente vers une technique d'indexation d'empreintes de séquences ou sous-arbres avec différents profils d'abstraction pour ensuite réaliser des requêtes sur ces bases constituées. Les éléments locaux quasi-similaires retrouvés peuvent ensuite être consolidés pour former des macro-similarités. Une approche permettant la recherche de facteurs similaires sur des séquences de lexèmes par indexation de suffixe est notamment employée : elle permet de lier des groupes de correspondances avec prise en compte des relations de chevauchement. Une application pratique est la factorisation de graphes d'appel d'un jeu de projets en un graphe d'appel commun ; ce graphe peut comprendre des fonctions factorisées issues de plusieurs projets ce qui révèle la copie de code.

  3. La présentation des résultats de similarité trouvés à destination d'un utilisateur humain. Plade permet d'évaluer et filtrer les correspondances trouvées selon différents critères structurels, contextuels et statistiques. Une interface graphique basique de visualisation est proposée permettant de replacer dans leur contexte les similarités. Un service web (Tartan) permet de transmettre des projets, soumettre des travaux d'indexation et de recherche de similarité et récupérer leur résultat.

Plade est architecturé autour des modules suivants :

  • Complade (companion for Plade) qui propose une bibliothèque Java implantant les structures et algorithmes afférents couramment utilisés par Plade (graphes génériques et plus spécifiquement graphes de facteurs répétés, tables d'indexation, etc.).
  • Plade-core qui implante les primitives de définition et manipulation des représentations issues du code source et de modélisation et d'évaluation des correspondances.
  • Plade-parsers proposant des exemples de représentations concrètes de code source sous la forme d'arbres de syntaxe (augmentés par des graphes d'appel de fonctions) et de séquences de lexèmes pour les langages Java et C++. Ce module peut être étendu afin de supporter facilement de nouveaux langages.
  • Plade-fact qui s'emploie à fusionner des graphes d'appel de projets en graphe commun avec factorisation des portions de code en fonctions partagées (outlining permissif).
  • Plade-fingertree qui se préoccupe des problématiques d'indexation adaptative et parcimonieuse des représentations (séquences et arbres) à plusieurs échelles et à l'aide de plusieurs niveaux d'abstraction.
  • Plade-cons qui s'intéresse à la consolidation de correspondances locales en macro-similarités.
  • Plade-gui qui propose une interface graphique Swing de visualisation et évaluation de jeux de correspondances.

Ces différents modules principalement développés en Java sont organisés autour de modules d'interfaçage en Python (Pyplade) permettant la réalisation rapide de scripts afin d'assurer l'indexation de code et la recherche de similarité en combinant les différentes approches proposées. Une implantation de service web (Tartan) reposant sur la plate-forme Plade est également en cours de développement.

Plade est encore actuellement en phase de développement interne ; une version sous licence libre Affero GPL sera prochainement accessible en ligne.

Contexte d’utilisation du logiciel

Plade a été initié pendant la thèse de doctorat de l'auteur, et a été principalement testé en interne pour retrouver des similarités sur du code source issu de projets soumis par des étudiants.

Publications liées au logiciel
Fiche logiciel à valider
  • Création ou MAJ importante : 09/10/13
  • Correction mineure : 21/11/13
Mots-clés
Pour aller plus loin
Fiche en recherche de relecteurs
Cette fiche est en recherche de relecteurs. Si vous êtes intéressé(e)s, contactez-nous !

Opam : gestionnaire de paquetages pour OCaml

Ce logiciel est en cours d'évaluation par la communauté PLUME. Si vous utilisez ce logiciel en production dans notre communauté, merci de déposer un commentaire.
  • Site web
  • Système : UNIX-like, MacOS X
  • Téléchargement
  • Version évaluée : 1
  • Langue(s) de l'interface : anglais
  • Licence : LGPL

    GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29/06/2007, avec exception statique. La base de données des paquetages est sous licence Creative Commons.

Description
Fonctionnalités générales

Gestionnaire de paquetages pour OCaml par compilation à partir du code source.

Ce système rend la fabrication et l'utilisation de logiciels ou bibliothèques écrits en OCaml plus facile.

Autres fonctionnalités

Gestion de plusieurs versions de compilateurs OCaml.

Interopérabilité
  • Opam est censé coopérer avec les systèmes de paquetages antérieurs, les différents systèmes de résolution de dépendances, d'autres outils développés par OCamlPro.

  • Opam lance des scripts shell, ce qui assure suffisamment de souplesse.

  • Opam est testé sous différents systèmes d'exploitations et différentes architectures de processeurs.

Contexte d'utilisation dans mon laboratoire/service

La version 0.4 de la bibliothèque ocamlmath existera sous forme de paquetage Opam.

Environnement du logiciel
Plates-formes

Archlinux, Debian, Ubuntu, Mac OS X.

Logiciels connexes
Environnement de développement
Type de structure associée au développement

Société OCamlPro.

Eléments de pérennité

Le financement de la société OCamlPro est assuré par différents intervenants publics ou privés :

Le projet Opam s'inscrit dans la plate-forme OCaml Labs de l'Université de Cambridge.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Ces ressources sont décrites sur la page github d'Opam : https://github.com/OCamlPro/opam, dans le paragraphe Community.

Documentation utilisateur
Contributions

Il est possible de contribuer à Opam via sa page github.

Syndiquer le contenu