Journal "Développer sans bug" avec FindBugs?

Posté par  (site web personnel) .
Étiquettes :
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  (site web personnel) . 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  (site web personnel, Mastodon) . Modéré par Xavier Teyssier.
Étiquettes :
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  (site web personnel) .
Étiquettes :
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  (site web personnel) . 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.

Sortie de la version 2.0 de Sonar

Posté par  (site web personnel) . Modéré par Florent Zara.
Étiquettes :
18
18
mar.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java

La version 2.0 amène dans Sonar la gestion du septième axe d'analyse de la qualité du code source. Pour rappel, les six axes déjà présents dans Sonar sont : couverture de code par les tests unitaires, vérification du respect des règles de codage, recherche de bugs potentiels, distribution de la complexité du code, recherche du code dupliqué et insuffisance de commentaires.

Le septième axe consiste à analyser le Design et l'Architecture d'une application ainsi qu'à faire ressortir des métriques orientées objet. Les fonctionnalités principales disponibles sont :
  • Identifier les dépendances indésirables afin de couper les cycles entre packages ;
  • Navigation dans les dépendances entre composants à l'aide d'une DSL (Dependency System Matrix) ;
  • Permettre la chasse aux classes qui portent plusieurs responsabilités.
En plus de ces nouvelles fonctionnalités, la nouvelle version contient près de cinquante améliorations et corrections.

Journal Des outils d'audit de code Java

Posté par  (site web personnel) .
Étiquettes :
10
17
fév.
2010
Le langage Java n'est pas un langage qui s'exprime avec juste un éditeur de texte et un compilateur... Les IDE et outils d'aide au développement sont légion et pour cause, il serait dangereux de s'en passer. C'est particulièrement vrai pour les outils d'audit de code dont voici deux exemples.

UCDetector (prononcer "You See Detector") est un plugin Eclipse qui comme son nom l'indique se propose de détecter le code mort (Un-needed Code Detector) dans les sources Java.

Premier avantage : (…)

Journal Sikuli, ou comment programmer avec des images écrans.

Posté par  (site web personnel) .
18
27
jan.
2010
Le projet Sikuli

http://groups.csail.mit.edu/uid/sikuli/

permet de programmer à partir d'images écrans

je cite
Sikuli is a visual technology to search and automate graphical user interfaces (GUI) using images (screenshots)

regardez les 9 exemples
http://sikuli.org/documentation.shtml

J'aime bien celui-là
http://sikuli.org/documentation.shtml#examples/find-boston.s(...)

la vidéo sur Youtube
http://www.youtube.com/v/FxDOlhysFcM&fs=1&rel=0&hd=1&iframe=(...)
qui explique comment automatiser une action comme indiquer une adresse IP

Sikuli permet aussi de faire du Unit testing pour GUI
http://sikuli.org/documentation.shtml#/trac/wiki/UnitTesting
et
http://sikuli.org/examples/TestJEdit.sikuli/TestJEdit.html

cet outil étant en Jython, il implique juste d'avoir Java installé.

Traduction complète de Maven - The definitive guide

Posté par  (site web personnel) . Modéré par j.
Étiquettes :
6
4
déc.
2009
Java
Ça y est (ou presque), la traduction complète des 430 pages du livre « Maven - The definitive guide » est terminée. Plus besoin de comprendre l'anglais pour avoir accès aux arcanes de Maven.

Venez nombreux lire et relire le texte et nous faire part de vos remarques pour le rendre plus lisible. Un grand merci à eux qui ont déjà relu la première partie suite à l'annonce précédente sur LinuxFr.

Pour information : Maven est un outil de "build", de gestion de projet, un conteneur abstrait où s'exécutent les différentes étapes de construction du projet. C'est un outil qui s'est révélé indispensable pour les projets qui deviennent complexes et qui ont besoin de construire et de gérer de manière cohérente de nombreux modules et bibliothèques interdépendants, eux-même utilisant des dizaines voire des centaines de composants tiers. C'est un outil qui a fortement allégé le fardeau quotidien de la gestion des dépendances vers les bibliothèques tierces pour des millions d'ingénieurs et a permis à de nombreuses organisations de se sortir de l'ornière de la gestion du build du projet pour atteindre un monde où l'effort requis pour construire et maintenir un logiciel n'est plus le facteur limitant dans sa conception.

Ce travail est la première tentative d'un livre compréhensible sur Maven.

NdM : hélas, ce livre est sous licence propriétaire CC by-nc-nd (Creative Commons, Paternité-Pas d'Utilisation Commerciale-Pas de Modification).

Première relecture publique de la traduction de Maven - The definitive guide

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
5
30
sept.
2009
Java
Quelques mois après avoir lancé l'idée de traduire le livre « Maven - The DefinitiveGuide » en français, voici que la traduction de la première partie sort officiellement pour être relue par la communauté.

NdM : Maven est un « logiciel libre pour la gestion et l'automatisation de production des projets logiciels Java en général et Java EE en particulier. L'objectif recherché est comparable au système Make sous Unix : produire un logiciel à partir de ses sources, en optimisant les tâches réalisées à cette fin et en garantissant le bon ordre de fabrication. »

Le livre et sa traduction sont sous licence CC BY-NC-ND 3.0. Il s'agit d'un projet Maven qui produit, à partir de sources au format dockbook 4.5, un PDF et un site HTML. Ces deux projets sous hébergés sous Github.

N’hésitez pas à contacter l’un des membres de l’équipe (Erwan Alliaume, Jérôme Van Der Linden ou Emmanuel Hugonnet) pour toute question ou remarque. Les contributions, encouragements ou critiques seront les bienvenus.

Nouvelle version de Squale - Software QUALity Enhancement project

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
11
17
sept.
2009
Technologie
Squale est une solution libre, sous licence LGPL v3, permettant de gérer la qualité des développements logiciels, avec pour objectifs de couvrir plusieurs langages et d'offrir une vision de la qualité logicielle adaptée à plusieurs profils. Mais plus qu'une simple plate-forme logicielle, Squale est un projet du groupe thématique "Logiciel Libre" du pôle de compétitivité System@tic Paris-Région. Il se focalise sur deux aspects principaux (voir la seconde partie de la dépêche 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.
La version 5.2 sortie récemment permet de :
  • Faire l'analyse d'applications Java/J2EE en utilisant les outils libres (re)connus tels que Checkstyle, PMD, JDepend et autres ;
  • Faire l'analyse d'applications C/C++ et Cobol en utilisant un connecteur vers les outils commerciaux McCabe et RSM.
Squale est librement téléchargeable, mais si vous voulez vous faire rapidement une idée, l'équipe Squale vous propose une version complètement packagée (via IZpack) avec :
  • Un Tomcat embarqué ;
  • Une base de donnée embarquée (HSQL DB) ;
  • Des outils d'analyses libres pour Java pré-installés ;
  • Un modèle qualité de base à trois niveaux (facteurs, critères et pratiques qualité).
Cependant cette version n'est pas recommandée pour la production. Vous pouvez bien sûr déployer votre propre instance sur un Tomcat/JBoss/etc. couplé avec MySQL/Oracle/etc. Squale tourne déjà en production dans un certain nombre de grandes entreprises, notamment celles partenaires du projet System@tic.

Les prochaines versions de Squale s'orienteront, entre autres, vers :
  • La prise en charge d'autres langages (notamment PHP) via l'ajout de nouveaux connecteurs pour les outils d'analyse de ce langage ;
  • L'amélioration de l'interface via des visualisations avancées (au delà de simples répartitions ou diagrammes radars) ;
  • La proposition de plans d'action plus évolués.

Netbeans 6.7

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
14
30
juin
2009
Java
NetBeans est un projet qui consiste d'une part en une plate-forme de conception d'applications Java et d'autre part en un environnement de développement intégré - un IDE.

NetBeans a été racheté par Sun en 1999 et est développé en Java. Il est distribué sous double-licence CDDL et GPLv2.

Il est disponible dans de nombreuses langues - et en partie francisé - et prend en charge plusieurs langages de programmation parmi lesquels :
  • Java SE, Java EE, Java ME, JavaFX
  • C / C++
  • Javascript, AJAX...
  • XML
  • PHP
  • Ruby
  • Groovy
  • Python
  • ...

NetBeans dispose de fonctionnalités bien connues des utilisateurs d'IDE : coloration syntaxique, auto-complétion, gestion multi-projets, intégration des documents de référence, support de solutions de gestion de versions, intégration de débogueurs... Le logiciel a été conçu en prenant en compte le principe de la modularité. Il est ainsi proposé au téléchargement via des paquetages centrés sur les langages employés : PHP, C, JavaFX, Ruby, etc. mais rien n'empêche d'ajouter de nouvelles fonctionnalités via le système d'extensions.

Sortie de Sonar 1.9

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
5
13
juin
2009
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java (exécution de tests unitaires, analyse de la couverture du code par ces tests, vérification du respect des règles de codage, complexité du code, etc.).

La fonctionnalité phare de cette version est le remplacement du célèbre analyseur de code source JavaNCSS par un moteur maison : sonar-squid. L'intégration de sonar-squid permet à la fois de faire disparaître les problèmes de JavaNCSS à analyser le code utilisant les spécificités de Java 5, mais également de calculer un certain nombre de métriques de manière beaucoup plus précises (commentaires, lignes de code...) et surtout d'ouvrir de nouveaux axes d'analyse (documentation des API publiques, accesseurs...).

Sonar a pris le parti de séparer complètement les accesseurs (plus communément nommés getters et setters) des méthodes dans les mesures. Cela permet par exemple de réellement mesurer la complexité "fonctionnelle" en écartant le bruit généré par le code purement "technique" dans les applications.

Ceci a bien sûr un impact sur la manière dont doivent être interprétés les résultats ainsi que sur la continuité de l'historique des données et il est recommandé de lire l'article référencé ci-dessous "Pourquoi (ne) devriez-vous (pas) migrer à la version 1.9 ?" avant d'installer la nouvelle version. En plus de ces nouvelles fonctionnalités, la version 1.9 apporte une amélioration notable des performances ainsi qu'une compatibilité avec le moteur de base de données PostgreSQL.

La forge des plugins Sonar est opérationnelle

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
6
20
avr.
2009
Communauté
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java (exécution de tests unitaires, analyse de la couverture du code par ces tests, vérification du respect des règles de codage, etc.). Des plugins (greffons) permettent d'étendre l'utilisation de Sonar aux langages PHP et PL/SQL.

L'extensibilité est une qualité essentielle pour un logiciel open source qui a l'ambition d'être adopté massivement. En effet, cela permet à la communauté de contribuer en ajoutant de nouvelles fonctionnalités ou bien en améliorant l'existant et par conséquent de bénéficier d'un effet levier : c'est la magie de l'open source !

Sonar s'appuie sur un cœur qui est un mécanisme d'extension. Autour de ce cœur viennent se greffer des plugins qui contiennent les fonctionnalités de l'outil. Mais le fait d'avoir un tel mécanisme en place n'est pas suffisant pour se déclarer extensible. Il faut également répondre aux 4 points suivants :
  • Une API simple d'utilisation ;
  • Une forge ;
  • Une communauté active ;
  • Une documentation et des exemples permettant de mettre le pied à l'étrier.

Ces 4 conditions étant maintenant remplies par Sonar, tout un chacun peut se lancer dans l'écriture de plugins pour étendre l'outil.

NdM : la version 1.8 de Sonar est sortie il a 3 jours. Parmi les nouvelles fonctionnalités, on trouvera un récapitulatif des points chauds sur un projet, l'import/export des profils Findbugs et un changement concernant la publication des mesures sur les catégories ISO ; plus une ribambelle d'améliorations et de corrections par ailleurs.

Sortie de la version 1.7 de Sonar

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
4
31
mar.
2009
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java ou PHP (exécution de tests unitaires, analyse de la couverture du code par ces tests, vérifications du respect des règles de codage, etc.). La version 1.7 de Sonar vient de sortir. Cette version apporte de nouvelles fonctionnalités et notamment :
  • La possibilité d'exclure des classes ou des packages de l'analyse qualité ;
  • L'élargissement du champ d'utilisation, en permettant d'injecter le résultat de la couverture de code et des tests unitaires depuis un build ant ;
Cette version améliore également de manière sensible certaines fonctionnalités :
  • Extension du nuage de classes sur la couverture de code aux modules et packages ;
  • Meilleure compatibilité avec IE6 ;
  • Ajout d'une vue "résultats de tests unitaires" et d'une vue "code dupliqué" à l'outil de visualisation de code source.
Pour essayer ces nouvelles fonctionnalités, il suffit de télécharger la version 1.7 et de l'installer. Il existe un mode démo / test de Sonar permettant de l'essayer (suivre le "2 minutes tutorial").