Accueil
Solutions
Contact
Introduction
En détail
Politique de licences
Téléchargement
Références
En détail
   

Définition de l'architecture logique.

Avec SonarJ, vous contrôlez en temps réel la conformité de vos sources Java et de vos classes compilées à une architecture logique donnée. Pour cela, vous définissez cette architecture logique et vous l'introduisez dans SonarJ comme le plan de votre système.


SonarJ définit plusieurs éléments qui vous permettent de développer par incrément votre vision de la structure interne de votre système. Pour structurer votre système, vous commencez par le découper horizontalement en couches techniques (ie : interface utilisateur, logique métier, accès aux données). Ainsi, le premier élément d'architecture défini dans SonarJ est une "couche horizontale".

Dans l'étape suivante, vous utilisez des aspects fonctionnels du domaine pour découper votre système en "tranches verticales". Ainsi, "la tranche verticale" est le deuxième élément technique pour décrire votre architecture logique dans SonarJ.

Regardez maintenant la structure qui en résulte: elle ressemble à un damier. Les cases de ce damier sont ce que nous appelons des "sous-systèmes". Ils sont le troisième élément utilisé dans SonarJ. Chaque couche horizontale doit contenir au moins un sous-système. Chaque sous-système doit être affecté à exactement une couche horizontale. De plus, un sous-système peut aussi appartenir à une tranche verticale, s'il a le même nom que cette tranche. Donc l'affectation d'un sous-système à une tranche verticale se fait par convention de nommage.

Après avoir découpé votre système horizontalement et verticalement (optionnel) vous définissez maintenant les relations d'usage que vous autorisez entre vos couches horizontales. Une de vos règles sera par exemple "mon interface utilisateur peut utiliser ma logique métier". Ensuite, vous définissez les relations que vous autorisez entre vos tranches verticales, comme par exemple "ma tranche verticale Contrat peut utiliser ma tranche Client". En précisant les relations d'usage autorisées entre les couches et celles autorisées entre les tranches, vous réduisez considérablement les relations d'usage autorisées entre les sous-systèmes. En fait, il est facile de calculer les relations d'usage autorisées restantes à partir des règles définies sur les éléments de haut niveau "couche horizontale" et " tranche verticale".
SonarJ vous aide ensuite à définir encore plus finement votre architecture en limitant certaines relations d'usages au niveau des sous-systèmes.
Vous décrivez votre architecture logique en utilisant un éditeur graphique qui est basé sur la notation UML.

Mapping de l'architecture logique sur le code Java.

Dès que vous avez défini votre architecture jusqu'au niveau des sous-systèmes, vous pouvez la mapper sur votre code Java. Il vous suffit de placer chaque package dans un des sous-systèmes. Techniquement, vous pouvez voir un sous-système comme un ensemble de packages Java. Vous pouvez aussi décider d'ignorer certains packages ou certaines classes (par exemple du code de test ou java.lang ).
Grâce aux interfaces nommées de SonarJ, vous gérez l'accès à vos sous-système. Pour chaque sous-système, vous limitez les API accessibles à un sous-ensemble des classes publiques exportées par les packages qui s'y trouvent.

 

Vérifier les violations d'architecture et les dépendances cycliques.

Maintenant, vous avez une architecture logique et un mapping de cette architecture sur votre code Java. SonarJ analyse vos classes compilées et vos fichiers sources pour créer en mémoire un modèle de votre logiciel. Il analyse toutes les dépendances internes et vérifie qu'elles respectent les règles définies dans votre architecture logique. Chaque violation d'architecture est affichée immédiatement. De plus, SonarJ vous apporte suffisamment d'informations pour vous faciliter la résolution du problème.
Même sans architecture logique, SonarJ est capable de vous signaler toutes les dépendances cycliques entre packages (ou même entre unités de compilation le cas échéant). Le navigateur de cycles liste toutes les dépendances qui créent le cycle et vous aide à identifier le lien qui vous permettra de casser ce cycle avec le moindre effort.

Des métriques qui vous aident à surveiller votre qualité technique.

En plus de sa capacité à faire respecter une architecture logique et d'identifier les dépendances cycliques, SonarJ peut aussi calculer un ensemble de métriques utiles :

* ACD (average component dependency – niveau moyen de dépendances directes et indirectes : traduit le niveau de couplage interne )
* LOC (lines of code – nombre de lignes de code : où sont les masses de code ?)
* Complexité cyclomatique (où est la complexité ?)
* Utilisation des assertions
* Cohésion relationnelle
* Métriques de Robert C. Martin (abstraction, instabilité etc.)
*
etc.
Vous pouvez définir des seuils pour ces métriques. Par exemple, fixer la limite maximale pour la complexité cyclomatique à la valeur 15. Un développeur qui essaye de créer une méthode avec une complexité plus grande sera immédiatement averti. Il pourra alors découper sa méthode en plusieurs parties moins complexes.
SonarJ agrège toutes les métriques jusqu'au niveau le plus élevé. Vous pouvez donc facilement trouver la complexité cyclomatique d'une couche horizontale ou du code appartenant à une tranche verticale.

Tâches ANT pour les "nightly build".

SonarJ est utilisable sur vos serveurs via une tâche ANT. Appelée par votre automate de compilation nocturne, cette tâche ANT va créer un rapport au format XML qui contient toutes les statistiques et les métriques clés pour votre projet. Il contient aussi la liste de toutes les violations d'architectures et les dépassements de seuils qui sont restés dans le code de votre logiciel. Grâce au convertisseur XSLT fourni avec SonarJ, vous obtenez un rapport HMTL que vous pouvez lire facilement chaque matin. En conservant le rapport XML dans une base de donnée, vous pourrez voir sur le long terme les tendances et les changements de votre projet.
Démonstrations et informations complémentaires.
Pour plus de détails, vous pouvez consulter le Livre blanc .
Vous pouvez également télécharger SonarJ et l'essayer gratuitement.
Cette vidéo vous explique comment démarrer sur votre propre projet.
Nous serons aussi très heureux de vous faire une démonstration. Vous pouvez nous contacter pour cela.

 
©2007 pcMetric