dimanche 31 mai 2009

Sonar

J'ai entendu tout récemment parlé de Sonar, édité par le bien connu CodeHaus. 

Il semble que l'outil ait les mêmes objectifs que nous avions avec CodeSquale il y a maintenant 2 ans. Je suis heureux de constater que ces démarches sont de plus en plus développées dans le monde Java

Par contre, avec CodeSquale, nous ambitionnions de mettre en place un outil d'audit de code multi language (objet). Est ce que Sonar pourrait permettre de s'adapter à du PHP ou du .NET ? 

J'avais toujours pour projet de reprendre CodeSquale pour en faire, à minima, un premier livrable stable  et ensuite l'améliorer. Il est évident qu'il faudra au préablable que j'évalue cette nouvelle découverte. 
Mon premier avis sur la question est qu'il ne semble avoir aucun intérêt à dupliquer ces initiatives. De toute façon, Sonar est connu du marché, apparemment très avancé, contrairement à CodeSquale qui n'en est (était) qu'à ses débuts. 

J'essaierai de faire un retour la dessus prochainement. 

jeudi 26 avril 2007

XML Way of Life


Après à la sortie du premier livrable, l'équipe s'est penchée sur l'utilisation du couple XML / XSLT pour la seconde itération. L'utilisation de ces technologies va notamment permettre de réduire considérablement les temps de développement du projet.

Le premier changement apporté par ce choix, est une segmentation plus visible des différents processus d'analyse du code source à auditer :

1. Parsing des fichiers sources et l'enregistrement sous forme d'arbre syntaxique
- Analyse des fichiers sources et de l'arborescence du projet
- Extraction de la structure des classes sous forme d'AST


2. Tranformation de ces arbres syntaxiques dans un format maitrisable par l'équipe
- Transformation des classes générés au format Antlr vers le format CodeSquale
- Validation des fichiers XML CodeSquale à l'aide de schéma


3. Calcul des métrics à l'aide des fichiers produits par la transformation
- Execution des requetes XQuery permettant le calcul des différentes métriques grace aux fichier XML CodeSquale

Le second changement apporté est le stockage de toutes les informations de sorties au format XML. Lors de la première itération, les données receuillies par le processus de parsing étaient stockées sous la forme d'un fichier texte vaguement formaté. Pour cette seconde itération, tous les résultats produits le seront au format XML ce qui facilitera le cheminement des processus.

Pour assurer le bon déroulement du process métier mais également faciliter le déploiement, l'équipe a choisi d'intégrer le framework Apache-Ant au projet codesquale. Ant sera donc responsable du cheminement entre les process.

Voila pour les changements majeurs à venir pour la prochaine itération, nous vous préparons également une petite surprise sur l'interface :).

En attendant que le livrable soit disponible voici un rapide aperçu de la nouvelle architecture technique :


jeudi 5 avril 2007

Captures d'écran de la version 0.1


Invite de commande


Fichier de résultat

vendredi 16 mars 2007

Construction de la plateforme de développement

Afin d'harmoniser nos outils de travail et nos méthodes, l'équipe a choisi de baser sa plateforme de développement sur un système d'exploitation virtualisé (WMWare).
Ce choix est motivé par le fait que nous avons des profils itinérants et voulons éviter de gaspiller du temps à la réinstallation de la plateforme CodeSquale.
Vous pourrez retrouvez le détail des spécifications de notre plateforme et des outils que nous utilisons sur le site CodeSquale hébergé par GoogleCode.
Suivre le lien des spécifications de la plateforme...

jeudi 15 mars 2007

Approche et organisation du projet

Dans la réalisation de CodeSquale, l'équipe de projet a pris le parti d'adopter une démarche itérative et incrémentale (Approche RUP). Les itérations sur le développement seront courtes (deux à trois semaines) pour permettre d'obtenir rapidement un produit fonctionnel. Ces itérations seront centrées sur des thématiques précises : fonctionnalité, architecture, performance, etc... selon les besoins du projet.

La première itération du projet (8 mars 2007 au 22 mars 2007 ) est orientée sur l'initialisation du projet (mise en place des outils de travail, première analyse fonctionnelle et technique, étude de composant logiciel de "lexing" et "parsing"). Cette itération a pour but de fournir à l'équipe de projet les moyens pour débuter un développement efficace.

jeudi 8 mars 2007

Lancement du projet

Ce jeudi 8 mars 2007, nous sommes heureux de vous annoncer la création du projet CodeSquale.

Ce projet a pour but de fournir une solution OpenSource d'audit de code statique.

Supporté par la société Ajilon, il s'agit de fournir un outil de suivi de qualité aidant à l'industrialisation du développement informatique.