développement
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).
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.
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).
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.
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.
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.
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).
- 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, ...
-
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.
"Information is beautiful" - L'information est belle, sur PLUME, parce qu'elle est utile et professionnelle. Mais parfois une image dit plus que des milliers de mots, comme cette infographique qui recense l'évolution impressionnante du nombre de lignes de codes utilisés, en commençant par Unix v1.0 (10000 lignes) pour finir avec Debian ou le code d'analyse du LHC, qui a permis de valider le prix Nobel de physique cette année (50 et 60 millions de lignes respectivement).
Quel rapport avec PLUME ? Nous y retrouvons quelques fiches : Firefox, OpenOffice. PLUME ne recense pas (encore ?) le nombre de lignes de code dans les fiches, car c'est un indicateur bien discutable pour décrire un logiciel, même si il pourrait ouvrir la porte aux recensements et donc à une visibilité plus grande. A cogiter pendant une minute libre, tout comme les détails de l'infographique ...
Le réseau MIn2RIEN (Métiers de l'Informatique Réunis en Réseau Inter-Etablissements du Nord) organise en collaboration le service formation permanente de la délégation Nord-Pas-De-Calais-Picardie du CNRS un cycle de formation sur le langage Python.
Ce cycle est prévu en 3 sessions de 2 journées, à Lille : les bases du langage (04 et 05 décembre 2013), les modules de calcul scientifique (23 et 24 janvier 2014, dates sous réserve) et le développement web (05 et 06 février 2014, dates sous réserve).
Plus d'information sur les modalités d'inscription à la 1° session, les bases du langage, ici : https://www.projet-plume.org/files/action_formatio...
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 :
-
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).
-
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.
-
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.
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.
Gestion de plusieurs versions de compilateurs OCaml.
-
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.
La version 0.4 de la bibliothèque ocamlmath existera sous forme de paquetage Opam.
La bibliothèque ocamlmath contient des programmes de calculs en mathématiques générales pour le langage OCaml, avec l'objectif de fabriquer des exemples de calculs à l'aide d'un automate.