Nouvelle version pour Doxygen

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa.
36
6
sept.
2011
Doc

Doxygen est un générateur de documentation à partir du code source de différents langages. Il est disponible pour les langages suivants : C, C++, C#, Fortran, Java, Objective-C, PHP, Python, IDL, VHDL, TCL et D. Les formats de sorties sont : HTML, LaTeX, RTF, PostScript, PDF (avec les hyperliens), HTML compressé et les pages de manuel Unix.

La liste des utilisateurs est grande, on retrouve KDE, Drupal, DotClear, LLVM, OpenTTD…

Doxygen est compatible avec les conventions de JavaDoc et celles de Qt. Il permet aussi de générer des graphes d’utilisation et d’héritage. Il s’utilise de la manière suivante (exemple en C++) :

/*! Classe d'exemple 
 * @author Xavier Claude
*/
public class Exemple {
    
    protected:
        /*! la description d'un attribut */
        std::string s;
    public:
        /*! La description d'une classe
         * @param newS la nouvelle valeur de s
         * @return true en cas de succès
         */
         bool setS(std::string newS);
}

Comme cela fait longtemps que les nouvelles versions de Doxygen n’ont pas été évoquées sur LinuxFr.org, un résumé des nouveautés des dernières versions est disponible en deuxième partie. Il y a bien sûr eu, en plus, beaucoup de corrections de bogues et quelques changements de comportement.

Petit éventail des outils de construction (« builder ») libres

Posté par . Modéré par patrick_g. Licence CC by-sa.
44
5
sept.
2011
Ligne de commande

Je vous propose dans cette dépêche de revenir sur la panoplie d'outils de construction qui s'offre à nous (c'est à dire les outils permettant d'automatiser les étapes de préprocessing, compilation, éditions des liens, etc).
Je ne cherche pas à faire un comparatif, mais juste à les décrire pour en faire ressortir les avantages et inconvénients ainsi que les cas d'utilisation. Cette dépêche peut être vue comme un état de l'art allégé des outils de construction libres.

Je tiens à remercier les contributeurs de cette dépêche :

  • GeneralZod
  • tiennou
  • NedFlanders
  • claudex

Ce sont eux qui ont écrit la majeure partie de cette dépêche et qui l'ont améliorée et complétée grâce à leurs connaissances et au temps qu'ils y ont consacré.

Cette dépêche a pour objectif de faire découvrir ou redécouvrir des outils de constructions. Si vous en connaissez d'autres n'hésitez pas à en parler en commentaire.

Sortie de la version 2.10 de Sonar

Posté par . Modéré par Lucas Bonnet. Licence CC by-sa.
19
3
sept.
2011
Java

Sonar est une plate‐forme libre (sous licence LGPL v3) permettant de gérer la qualité du code source. Elle agrège et présente d’une manière digeste et utile les résultats de différents outils de qualité logicielle. D’abord limité à Java en utilisant les outils classiques (Findbugs, Cobertura, PMD, etc.), Sonar peut maintenant gérer la qualité de projets utilisant d’autres langages : PHP, C# et autres, grâce à des greffons libres ou propriétaires pour certains, comme Brrrr…, Cobol, VB6, C, PL/SQL, ou encore ABAP.

La version 2.10 de Sonar vient de sortir, et puisqu’il n’y a pas eu de dépêche depuis la 2.4, il y a pas mal de nouveautés à présenter (voir la seconde partie de la dépêche). À noter que la version 2.11 devrait voir la fonctionnalité que j’attends depuis longtemps : la détection du code dupliqué à travers différents projets. Précédemment, cette fonctionnalité était limitée à rechercher du code dupliqué à l’intérieur de chaque projet.

N’hésitez pas à tester la version live de Sonar, prénommée Nemo, qui recueille les informations de qualité pour différents projets open source. En outre, elle est maintenant en français si votre navigateur est paramétré pour privilégier le français face à l’anglais :). Je vous encourage à l’essayer, ce projet est vraiment prometteur.

Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa.
45
2
sept.
2011
C et C++

Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". grep ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet.

coccigrep, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur.

Fusionforge 5.1 & sa communauté

Posté par (page perso) . Modéré par tuiu pol. Licence CC by-sa.
28
11
juil.
2011
Technologie

Fusionforge, anciennement Gforge, anciennement Sourceforge, publie sa version 5.1, résultat de un an de développement et près de 3000 commits. Cette version est une consolidation des efforts réalisés pour relancer la vitalité de ce projet trop méconnu ou oublié.

La version 5.1 est dédiée à Alexandre Neymann, contributeur gforge puis fusionforge, décédé il y a peu.

Un point historique des forges, des nouveautés de fusionforge ainsi que de sa communauté est contenu dans le corps de cette dépêche.

Journal The Architecture of Open Source Applications

Posté par . Licence CC by-sa.
38
30
mai
2011

Un livre qui n'a pas l'air trop mal vient de sortir sous le titre "The Architecture of Open Source Applications". Il est composé de 25 chapitres et chaque chapitre détaille un logiciel libre, souvent par un de ses contributeurs majeurs. Chaque application est ainsi décortiqué pour nous en montrer les entrailles. Bref, un excellent voyage du côté obscur du code, ce qu'on a rarement l'occasion de voir.

En prime, le livre est lui-même libre (CC-BY), il est disponible sur Lulu (...)

PlantUML, un nouvel outil de génération UML

Posté par . Modéré par Bruno Michel.
22
19
déc.
2010
Doc
PlantUML est un outil Java permettant d'écrire très rapidement des diagrammes UML en utilisant un langage texte simple et intuitif. Il supporte actuellement sept types de diagrammes : séquence, cas d'utilisation, classe, activité, composant, état et objet qui peuvent être générés au format PNG ou SVG.

Ainsi, par exemple le texte

@startuml
Alice -> Bob: synchronous call
Alice ->> Bob: asynchronous call
@enduml

génère le diagramme de séquence suivant :

Diagramme de séquence généré par PlantUML où Alice appelle Bob de manière synchrone, puis de manière asynchrone

Il est également possible de changer l'aspect visuel grâce à des paramètres de skin.

Grâce au soutien de la communauté open source, un écosystème de greffons a pu voir le jour : intégration Word / Open Office, intégration Eclipse, intégraton Emacs, intégration Javadoc / Doxygen, intégration MediaWiki / DokuWiki / Confluence, etc.

Des éditeurs graphiques ont également été développés comme PlantUML editor ou EasyUmlEditor et le projet PlantUML dependency permet la génération de la description PlantUML à partir d'un code source Java.

Sortie de la version 2.4 de Sonar

Posté par (page perso) . Modéré par Benoît Sibaud.
10
16
déc.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.4 de Sonar vient de sortir. Parmi les améliorations et corrections de bogues se trouvent également plusieurs fonctionnalités majeures qui viennent enrichir la plate-forme :
  • Possibilité de personnaliser les dashboards de projets

  • Ajout d'un centre de mise à jour des greffons

  • Ajout d'un moteur de règles d'architecture

  • Support de Maven 3


NdM : comme dit par Francesco dans les commentaires de la dépêche précédente « Par défaut, Sonar permet de gérer la qualité de codes écrits en Java. D'autres langages peuvent être ajoutés via des greffons (libres et / ou commerciaux). »

Entretien avec Stefano Zacchiroli, Responsable du Projet Debian

Posté par (page perso) . Modéré par patrick_g.
44
22
août
2010
Debian
Stefano Zacchiroli (Zack) a été élu Responsable du Projet Debian en avril dernier. Il est actuellement en post-doctorat au laboratoire "Preuves, Programmes et Systèmes" de l'université Paris 7 (où travaille également Roberto Di Cosmo). Son travail s'inscrit au sein du projet européen de recherche Mancoosi qui vise à améliorer les gestionnaires de paquets des distributions.

Au sein de Debian, Zack s'occupe des paquets liés au langage de programmation OCaml et il est aussi très impliqué dans tout ce qui touche l'assurance qualité. En septembre 2009, il a également lancé l'initiative "Release Critical Bugs of the Week" qui se propose de corriger chaque semaine des bugs bloquants du projet Debian.

En lisant ce qui précède, on comprend que Zack est quelqu'un de très occupé. Pour ajouter à son fardeau, j'ai essayé de collecter les questions se trouvant dans la proposition d'entretien initiée par Florent, j'en ai ajouté quelques-unes et j'ai envoyé le tout par mail. Il a eu la gentillesse d'accepter de répondre à cet entretien pour les lecteurs de LinuxFr. Qu'il en soit chaudement remercié.

Sortie de la version 2.2 de Sonar

Posté par (page perso) . Modéré par Nÿco.
13
22
juil.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.2 de Sonar vient de sortir. Parmi une soixantaine d'améliorations et corrections de bogues se trouvent également trois fonctionnalités majeures qui viennent enrichir l'outil ainsi que augmenter les possibilités de l'étendre par des greffons :
  • Filtres : les utilisateurs peuvent définir des filtres et créer des onglets afin d'obtenir une vue sur un sujet particulier. Par exemple : tous les projets, les tests unitaires dont l'exécution est la plus longue, les classes avec une couvertures par les tests unitaires < 50% et une complexité moyenne par méthode > 10...
  • Favoris : il est maintenant possible de marquer une ressource (projet, module, package, fichier) comme étant une ressource favorite ce qui permet de la retrouver par la suite dans un onglet dédié aux favoris.
  • Le chargeur de classe des greffons : chaque greffon est maintenant exécuté dans son propre classloader. Le principal avantage en est que les greffons peuvent maintenant déclarer leurs propres dépendances au lieu d'être limités aux bibliothèques fournies par Sonar.

Journal "Développer sans bug" avec FindBugs?

Posté par (page perso) .
5
12
juil.
2010
Il existe nombre d'outils d'audit de code dans l'univers du développement Java qui sont autant d'armes contre les faux-pas de développement. FindBugs (qui porte bien son nom...) propose de parcourir les applications java à la recherche de motifs à problèmes.

L'outil développé par l'Université du Maryland appartient à la famille des analyseurs statiques comme PMD ou CheckStyle. Il ne cherche pas à observer l'application en action mais plutôt à se plonger dans son code. Cependant FindBugs se différencie au sein (...)

Sortie de la version 2.1 de Sonar

Posté par (page perso) . Modéré par tuiu pol.
12
27
mai
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.1 de Sonar vient de sortir. Parmi une cinquantaine d'améliorations et corrections de bogues se trouvent également trois fonctionnalités majeures qui viennent enrichir l'analyse de la conception et de l'architecture :
  1. La cartographie des bibliothèques : qui utilise quelle bibliothèque et en quelle version ?
  2. Détection des appels aux méthodes obsolètes ;
  3. Détection du code mort.

Cette version améliore également la gestion des langages dans la plate-forme. L'analyse de nouveaux langages est apparue par l'intermédiaire de greffons open source (pour PHP, Flex, .Net) ainsi que commerciaux (pour Cobol, Visual Basic, PL/SQL).

Squale 6.0 est disponible

Posté par (page perso) . Modéré par Xavier Teyssier.
17
26
mai
2010
Java
Début avril est sortie la nouvelle version 6.0 de Squale. Squale est une solution (libre, licence LGPLv3) qui permet de gérer la qualité des développements logiciels. Il a pour objectifs de couvrir plusieurs langages et d'offrir une vision de la qualité logicielle adaptée à plusieurs profils, avec reportings détaillés et agrégés, génération de plan d'action, etc. Squale se focalise sur deux aspects principaux (voir la précédente dépêche de septembre 2009 pour plus de détails) :
  • L'élaboration de modèles évolués d'évaluation, de visualisation et d'interprétation des résultats issus des outils de mesure ;
  • Le développement d'une plate-forme logicielle mettant en œuvre les modèles ci-dessus et permettant ainsi de contrôler la qualité de son code.

Cette plate-forme logicielle que certains appelleront de « gouvernance de la qualité » ne ré-invente pas les outils de production de métrique mais se base sur ceux existants, par exemple Checkstyle, PMD, JDepend, etc. pour le monde Java, très fourni en outils libres. Pour l'analyse de code C/C++ et Cobol, Squale propose des connecteurs (plugins) libres, vers des outils du marché, pour le moment essentiellement propriétaires (ex : McCabe, RSM, etc.). Il est cependant tout à fait possible d'écrire son propre connecteur vers un autre outil de son choix.

La version 6.0 sortie récemment, outre son lot de corrections et d'améliorations variées, apporte principalement les fonctionnalités suivantes :
  • Ajout de commentaires sur les notes insérées manuellement ;
  • Nouveau profil auditeur pour la saisie de ces notes manuelles ;
  • Portage et test complet sur environnement Windows ;
  • Finalisation du support de l'analyse Cobol via l'outil McCabe ;
  • Meilleure caractérisation des applications dans Squale ;
  • Implémentation de la visualisation Distribution Map ;
  • Export de données anonymisées vers un référentiel mutualisé (permettant de comparer ses résultats à l'extérieur de son entreprise par exemple) et import des références générées pour comparaison des applications dans Squale.

Pour la suite, la feuille de route de Squale comprend pour l'instant :
  • L'amélioration du plan d'action généré par Squale ;
  • L'ajout d'autres visualisations résultant des recherches de l'INRIA ;
  • Une gestion plus fine des rôles utilisateur et de la sécurité ;
  • Une interface REST pour la consultation des résultats ;
  • Le support d'autres langages en plus de Java/C/C++/Cobol (PHP pour commencer).

N'hésitez pas à l'essayer : Squale propose à cet effet une version autonome (configurée par défaut pour Java) contenant une base de données embarquée.

Dans la suite de la dépêche, vous trouverez un entretien avec Fabrice Bellingard, le chef de projet de Squale.

Journal QML: le futur des interfaces graphiques

Posté par (page perso) .
32
13
mai
2010
Vous connaissez sans doute Qt ? Mais si... cette bibliothèque libre en C++ qui permet de faire des applications graphiques, utilisé par KDE. Vous aurez remarqué que les interfaces "classique" sont encore faites avec des widgets rectangulaires sans aucune imagination. Ce sont des interface des années 90-00.

Avec la future version de Qt (4.7), vient un nouveau langage permettant de faire des interface graphiques digne des années 10: QML

L'idée c'est de pouvoir faire des interfaces graphiques animées et de (...)

Sortie de Scub Foundation Socle Technique Java Open Source

Posté par . Modéré par tuiu pol.
6
16
avr.
2010
Java
Scub foundation est un socle technique (basé sur Maven) composé d’un ensemble de modèles de projets, de frameworks, de conventions, d’outils et de procédures qui structurent les développeurs et leurs développements.

Concrètement, ce socle technique offre au développeur un environnement de développement intégrant les meilleurs éléments Open Source (Eclipse, Maven, Spring, GWT…) ainsi que des modèles de projet.
Scub Foundation a été conçu avec les objectifs suivants :
  • Ne pas réinventer la roue (Intégration d’Eclipse et des frameworks populaires comme hibernate, spring, gwt, JUnit…).
  • Avoir des modèles de projets pour chaque type de projet mais avec des structures identiques.
  • Avoir des tâches automatisées pour l’ensemble du cycle de vie du projet (compilation, packaging, test…).
  • Développement SOA (intégration de la notion de noyau et du découplage Interface/implémentation).
  • Gestion automatique des dépendances / librairies.
  • Gestion des environnements de production, test, développement…
  • Une documentation complète pour rapidement mettre à niveau son équipe ou intégrer un nouveau membre.