IDE
Spyder est un environnement de développement Python (et C/C++/Fortran) qui présente les fonctionnalités suivantes :
- éditeur de code avec coloration syntaxique, complétion de code, analyse de code temps-réel et explorateur de fonctions et de classes ;
- console interactive (interne) et console externe (exécutée dans un processus séparé) avec les caractéristiques suivantes :
- completion de code contextuelle,
- espace de travail (similaire au "Workspace" de MATLAB) pour lister et modifier via une interface graphique les variables globales (nombres réels, chaînes de caractères, tableaux, listes, etc.),
- aide automatique et dynamique sur les objets utilisés (dont les modules, fonctions, classes, méthodes, etc.),
- historique.
Ce qui distingue Spyder des autres environnements de développement, c'est l'intégration parfaite des bibliothèques scientifiques Python telles que NumPy (calcul numérique, algèbre linéaire), SciPy (traitement du signal et de l'image) ou encore matplotlib (visualisation de données 2D/3D) dans un environnement très proche de celui de MATLAB. Ainsi, il est possible dans Spyder d'importer/d'exporter des données de/vers MATLAB (fichiers .mat) - d'autres formats sont également pris en charge (avec, par exemple, l'importation de fichiers texte sous la forme de tableaux).
Enfin, Spyder intègre également les fonctionnalités suivantes :
- éditeur de variables d'environnement ;
- gestion de chemins d'accès (PYTHONPATH) ;
- analyse de code approfondie avec pylint ;
- recherche avancée (expressions régulières) dans des répertoires contenant des fichiers texte (sources Python ou autres).
Import/export dans l'espace de travail :
- échanges avec MATLAB : import/export de fichiers .mat ;
- autres formats pris en charge : import de fichiers texte .txt, .asc, .csv et d'images aux formats .png, .jpg, etc.
Editeur de code :
- sources Python : .py, .pyw
- sources C/C++/Fortran : .c, .cpp, .h, .hpp, .f, .for, .f90
- autres formats pris en charge : .bat, .properties, .ini
- n'importe quel autre type de fichier texte, mais sans coloration syntaxique
Spyder (avec Python) est utilisé :
- en remplacement de MATLAB,
- pour le traitement interactif de données et pour le développement de scripts Python pour le calcul scientifique.
Piklab est un environnement de développement intégré (EDI), pour les applications à base de micro contrôleurs du fabricant Microchip (PIC et DSPIC). Grâce à ses fonctions intégrées et à l'intégration de nombreux outils externes, Piklab permet :
- la gestion de projets,
- l'édition des fichiers sources constituant le projet, avec coloration syntaxique,
- la compilation avec notamment SDCC et GPUTILS(d'autres outils sont supportés),
- la simulation des micro contrôleurs avec GPSIM (quelques circuits sont supportés seulement),
- la programmation avec la plupart des programmateurs//bootloaders : série, parallèle, ICD2, Pickit2, PicStart+ // Tiny, Pickit2, et PicdemFSUSB,
- le débuggage avec l'outil ICD2.
Plusieurs compilateurs peuvent être intégrés à Piklab :
- GNU PIC Utilities and Small Device C Compiler
- MPLAB C30
- PICC (PICC-Lite, PICC, and PICC-18)
- MPLAB C18
- JAL and JALV2
- BoostC, BoostC++, and BoostBasic
- CCS
- MPC
- CC5X
Je possède l'ICD2 et je programme de temps en temps des PIC18F4550. J'ai pu tester les différentes fonctionnalités de Piklab avec succès autour de ce circuit et notamment le debuggage. La version des logiciels que j'utilise : Kubuntu 8.04LTS ; Piklab 0.15.4 ; SDCC 2.9 ; gputils 0.13.7 beta ; exécutif de debuggage ICD2 celui de la version 8.3 de MPLAB (important pour que le débuggage fonctionne correctement)
Piklab est un logiciel en développement, il contient probablement des bugs.
Tous les circuits de Microchip ne sont pas supportés, voir la liste : http://piklab.sourceforge.net/devices.php
Netbeans est l'environnement de Développement Intégré (EDI) supporté par SUN. Il est particulièrement bien adapté pour le développement d'applications WEB. Il remplace l'IDE Java Studio Creator.
C'est un IDE moderne offrant un éditeur avec des codes couleurs et un ensemble de signes, des modèles de projets multi-langage et de différents types (application indépendante, distribuée, plugin, mobiles, ...), le refactoring, l'éditeur graphique d'interfaces et de pages web pour supporter le programmeur dans son travail. Il permet d'accéder rapidement à la documentation détaillée, de naviguer dans les sources et de faire des recherches d'usage des classes, méthodes et propriétés. Netbeans indique à l'utilisateur les erreurs et fait des propositions pour y remédier. Un déboggeur permet l'exécution pas à pas. Un suivi des ressources utilisées (cpu, mémoire) par le logiciel développé peut être fait via un profiler. Un framework de test unitaire tel que Junit peut être utilisé ( http://www.projet-plume.org/fiche/junit ).
L'EDI NetBeans fournit des outils pour construire tous les composants Java EE, ce qui inclut les Enterprise Java Beans (EJBs), les pages web, les servlets, et les services web.
Il intégre le serveur d'application Glassfish, ce qui permet de facilement développer des EJB et de les déployer.
Il intégre la norme WebService JAX-WS. Il est aisé de lier un WS avec un EJB pour faire son implémentation.
Pour plus d'information, vous pouvez consulter la présentation de Netbeans lors de l'école ENVOL2008 ( http://www.projet-plume.org/ecole-envol2008 ) décomposée en 3 parties :
http://www.projet-plume.org/files/ENVOL_EnvDev_III...
http://www.projet-plume.org/files/ENVOL_EnvDev_III...
http://www.projet-plume.org/files/ENVOL_EnvDev_III...
Pour faire des applications, des éditeurs visuels sont disponibles pour construire rapidement des applications web basées sur des standards utilisant Ajax, CSS, JavaScript, et JSF.
D'autres langages que Java sont possibles tels que C/C++, Ruby, SOA (WSDL, XML), UML, PHP, JavaFX (environnement de développement basé sur java pour faire des applications RIA).
L'environnement de développement peut être étendu par un ensemble de plugins que la communauté des contributeurs développe. Par suite, il est possible d'étendre l'EDI à tout langage ( http://plugins.netbeans.org/PluginPortal/faces/Mai... )
Par exemple, le plugin Subversion permet de transformer l'IDE en environnement de développement collaboratif.
Netbeans est également un moteur graphique servant de base logicielle pour le développement de RAD (Rich Application Desktop). Il offre un framework RCP (Rich Client Programming) pour développer tout type d'application graphique en utilisant l'environnement graphique Swing de Java ( http://platform.netbeans.org/, http://www.javapassion.com/netbeans/masterindex.ht... ).
Il est possible d'importer des projets Eclipse vers Netbeans avec NetBeans IDE 4.1 ou supérieur. Il suffit d'installer "Eclipse Project Importer" : http://www.netbeans.org/kb/articles/import-eclipse...
Netbeans nous a permis d'implémenter les services web multimédias du projet européen KPLAB respectant la norme JAX-WS. Les EJB permettent l'implémentation de WS à état pour la mise en oeuvre de services collaboratifs. Le serveur d'application J2EE Glassfish facilite le déploiement en local lors du développement ou sur un serveur ad hoc pour l'exploitation.
L'utilisation de Netbeans pour le développement d'IHM Javax pose un certain nombre de problèmes :
-
le code généré ne doit pas être édité manuellement car le parser de code risque de ne pas reconnaître les modifications. Le code est placé dans des blocs non éditables.
-
le code généré est complexe et donc difficile à comprendre en dehors de NetBeans.
-
pour le développement d'IHM dans de grands projets on peut se poser la question des interopérabilités dans le temps avec les différentes versions de NetBeans. C'est un risque à prendre en compte.
Présentations ENVOL 2008 (Formation pour le dEveloppemeNt et la ValOrisation des Logiciels en environnement de recherche)
Cette école ENVOL (Formation pour le dEveloppemeNt et la ValOrisation des Logiciels en environnement de recherche) a été financée par le CNRS. Elle a eu lieu du 19 au 24 octobre 2008, près d'Annecy avec 90 participants (stagiaires et intervenants), développeurs ou responsables de projets de développements de différents laboratoires ou services CNRS, INRA, INRIA, universités...
L'objectif était de présenter des méthodes et outils de développement, l'ensemble du cycle de vie du logiciel (empaquetage, diffusion, gestion de communautés, maintenance, sécurité...), les valorisations possibles et les licences, ceci avec des retours d'expérience, en se focalisant sur l'environnement de laboratoires de recherche et les logiciels libres.
Plus d'informations sur l'école...
ENVOL, PLUME, RELIER
- ENVOL : qu'est-ce ? : Jean-Luc Archimbaud (UREC)
- Ecole ENVOL : objectifs et programme : Violaine Louvet (ICJ)
- PLUME : Jean-Luc Archimbaud (UREC)
- RELIER : Violaine Louvet (ICJ)
Méthodes de développement
- Unified Modeling Langage (UML) - Concepts et Modèles : Laurent Perochon (INRA)
Cf aussi
- Ingénierie dirigée par les modèles - Model Driven Architecture (MDA) : Laurent Perochon (INRA)
- PARIS (PAsture-Ruminant Interaction Simulator) : Laurent Perochon (INRA)
Un exemple d'utilisation d'UML - eXtreme Programming - vers plus d'agilité : François Miller (INPG formation permanente)
Outils de développement
- Environnements de développement : Véronique Baudin (LAAS) et Pascal Dayre (ENSEEIHT-IRIT)
Chapitres : un - deux - trois (3.1 - 3.2 - 3.3) - quatre - cinq - références
Quelques mots clés, logiciels présentés : IDE, cycle de vie, processus unifié, Netbeans (en détail), documentation, Papyrus, Javadocs, Visual Editor, Junit, SVN, forge, COMPIL - Systèmes de gestion de code source : Matthieu Herrb (LAAS)
Quelques logiciels présentés : CVS, OpenCVS, Subversion, Perforce, BitKeeper, git, Mercurial, Baazar - Développer en logiciel libre : empaquetage et diffusion : François Pellegrini (LABRI)
Quelques mots clés, logiciels présentés : auteurs, ayant-droit, licences, diff, patch, rpm
Sécurité
- Traitement des incidents de sécurité dans le logiciel libre : Matthieu Herrb (LAAS)
Quelques mots clés : vendor-sec, oCERT
Assurance qualité logiciel (bonnes pratiques)
- Validation, qualification, tests : Christophe Durand (EDF)
Quel code développe-t-on ?
Quelle organisation pour développer ?
Comment s’assurer de la qualité ?
Quelques mots clés : code_ASTER, eXtreme Programming, REX
- QSOS : Christophe Caron (INRA)
Cf aussi
Valorisation, licences, contexte juridique, services dédiés
- Licences, logiciels libres et administration : Thierry Aimé (ministère de l’Économie, de l’Industrie et de l’Emploi)
Quelques mots clés : CeCILL, marché public - La valorisation des logiciels au CNRS : Pascaline Toutois (CNRS DR7)
- La Valorisation des logiciels dans l ’enseignement supérieur : aspects pratiques vus d’un laboratoire : Cédric Beucher (IRIT)
Eco-système
- Kerrighed : une étude de cas de développement et valorisation de logiciels en environnement de recherche : Christine Morin (IRISA Rennes)
Quelques mots clés : partenariat, jeune pousse, cercle vertueux - Logiciels libres : modèles économiques - ouvert, simple et innovant : Arnaud Laprevote (Mandriva)
Vie du logiciel
- Cycle de vie des logiciels : maintenance évolutive et corrective, gestion des contributions : Christian Bayle (Orange Labs R&D - OW2)
Quelques mots clés : forge - The Social Factor: FLOSS Communities, Organizations and Business Ecosystems : Cédric Thomas (OW2)
Retours d'expériences
- Kerrighed : un système d’exploitation SSI pour grappes : Christine Morin (IRISA Rennes)
- Valorisation d'un logiciel libre à l'ENAC : Paparazzi : Nathalie Foutel (ENAC)
- AVAMIP : conseil, accompagnement et financement de projets innovants issus de la recherche de Midi-Pyrénées : Jean-Marie Rigaud (AVAMIP)
Le projet KDevelop a démarré en 1988 et fait partie des EDI (environnement de développement intégré en français ou IDE en anglais) pour KDE (K Desktop Environment, environnement de bureau libre), permettant le développement de projets en divers langages de programmation tels que C, C++, Java, Pascal, PHP, Perl, Python, Ruby, Ada…
Il a été développé avec le toolkit graphique Qt, conçu par la société Trolltech : cf la fiche PLUME.
Très bon environnement de développement sous Linux, KDevelop est devenu depuis la version 2 multiplateforme : Windows (via cygwin) et Mac OSX ( http://www.kdevelop.org/index.html?filename=3.0/sc... ).
Il permet l’utilisation de systèmes de gestion de projets tels que Automake (outils GNU), Qmake (librairie Qt/Trolltech), ANT (projets JAVA) avec la possibilité de les configurer de manière graphique. Il permet aussi de gérer son propre makefile “à la main”.
Il est doté de tous les outils classiques d’un IDE moderne tels que la complétion de code, browsers de classes ou de fichiers du projet, un debugger, une liaison à un SVG (Système de Gestion de Version) et également à un CMS (Configuration Management System), une aide à la création d’une documentation ou encore une aide au développement d’interfaces utilisateur …
KDevelop facilite la création de la documentation Doxygen à tout moment du développement d'un projet. Il intégre des outils de debug comme gdb ou le debugger java utilisable graphiquement, avec notamment la possibilité de mettre des points d'arrêt, de visualiser le contenu de variables, de faire du pas à pas ou encore de suivre la pile d'appel (backtrace).
Son éditeur de code par défaut est Kate, mais on peut le changer en utilisant celui de Qt par exemple ou tout éditeur qui utilise l'interface KTextEditor de KDE.
Il intégre valgrind (sous licence GPL), suite d'outils de profilage et de débuggage mémoire pour C / C++. Les 3 outils principaux de valgrind sont Memcheck (un détecteur de fuites mémoires), Cachegrind (un simulateur de caches) et Callgrind (un profileur). De plus, l'utilisation de KCachegrind (intégré dans KDevelop) permet de visualiser de manière conviviale les données produites par ces outils : cartes, graphes d'appels, nombre d'appels, coût de chaque appel, ...
KDevelop supporte plusieurs systèmes de contrôle de version tels que CVS ou Subversion et également un CMS (Configuration Management System) tel que Perforce ou Clearcase.
KDevelop est muni de nombreux modèles (template) permettant aux développeurs de construire leur application à partir d'une trame. On peut aussi trouver de nombreux templates écrit dans la communauté du logiciel libre et qui peuvent enrichir KDevelop sous forme de plugin.
Enfin, Il intègre également les outils Qt-Designer pour la création d'interface graphique et Qt-Linguist pour la gestion de l'internationalisation.
Dans le laboratoire LASMEA nous avons utilisé cet IDE pour développer un logiciel pour la navigation visuelle en robotique (c++,Qt et Mysql). L'idée générale de ce logiciel est de découper le trajet d'un véhicule intelligent en une somme d'arcs auxquels on associe une mémoire visuelle sous forme d'images, de points2D et points3D. A partir de cette base de données topologiques acquise par apprentissage, le véhicule muni d'un algorithme de commande complexe fait en sorte de suivre ce trajet.
Cf aussi la liste des applications créées avec KDevelop : http://www.kdevelop.org/index.html?filename=users....
L'objectif de Topcased est de couvrir l'ensemble des besoins de développement logiciel et système (la branche descendante du cycle en V), ainsi que les besoins transverses comme la gestion de configuration, la gestion des changements ou l'ingénierie des exigences.
L'atelier suit une approche de type MDE (Model Driven Engineering, ou Ingénierie dirigée par les modèles) au niveau de ses fonctionnalités et de ses méthodes de développement.
Les différents composants sont regroupés sous la forme de 2 paquets :
● Toolkit (composants Topcased à vocation industrielle, et respectant les niveaux de qualité définis par le projet) :
http://gforge.enseeiht.fr/frs/?group_id=52
● Fonctionnalités expérimentales (prototypes, maquettes et composants en incubation) :
http://gforge.enseeiht.fr/frs/?group_id=52.
Ils peuvent aussi être téléchargés séparément :
● Editeur ADELE (pour le langage AADL - Architecture Analysis and Design Language) : http://gforge.enseeiht.fr/frs/?group_id=73
● Editeur SAM (Structured Analysis Model, langage dédié au découpage fonctionnel système et logiciel) : http://gforge.enseeiht.fr/frs/?group_id=33
● Editeur UML (basé sur le modèle Eclipse d'UML) : http://gforge.enseeiht.fr/frs/?group_id=34
● Editeur SysML : http://gforge.enseeiht.fr/frs/?group_id=20.
● etc.
○ Tramway (outil de traçabilité) : http://gforge.enseeiht.fr/frs/?group_id=7 et http://gforge.enseeiht.fr/frs/?group_id=47
○ gPM: méta-outil de gestion de tickets (une sorte de bugzilla entièrement configurable en fonction des types de tickets et de processus) : http://gforge.enseeiht.fr/frs/?group_id=63
Vous pouvez aussi installer ces fonctionnalités à partir de : http://topcased-mm.gforge.enseeiht.fr/release/upda...
Ce logiciel est conçu afin d'accompagner le développement de systèmes et applications critiques (avionique embarquée, application des systèmes aérospatiaux, logiciel automobile, etc.).
Il met à la disposition des utilisateurs un ensemble de composants couvrant tout le cycle de développement (spécification, conception, codage / réalisation). Ces composants peuvent bien sûr être utilisés séparément, ou en sous-ensemble répondant à vos besoins. Dans bien des cas, les éléments génériques de l'atelier (générateurs de texte, outils de transformation de modèle, etc.) vous permettront de les adapter facilement à vos besoins.
Comme indiqué plus haut, le toolkit TOPCASED regroupe les outils considérés comme stables et matures.
Mais de nouveaux composants expérimentaux apparaissent fréquemment. Leur niveau de maturité et de documentation est en général faible : contacter directement leur développeurs (voir la page de ces projets sur la forge TOPCASED) si vous souhaitez les mettre en oeuvre.

182 Ressources
190 Dév Ens Sup - Recherche
290 Logiciels validés
Home