Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Architecture logicielle
  3. Boîte à outils
Extrait - Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique (2e édition)
Extraits du livre
Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique (2e édition) Revenir à la page d'achat du livre

Boîte à outils

Métrologie

L’architecte maîtrise rarement la base de code sur laquelle il travaille. Il a donc besoin d’outils d’analyse lui permettant de mesurer de manière statistique la qualité interne du produit. Dans ce chapitre, nous allons aborder un certain nombre de métriques qui peuvent donner des indicateurs sur la qualité des modèles et du code produits. Ces métriques sont issues tant de l’expérimentation des ingénieurs en génie logiciel que de recherches fondamentales de la statistique appliquée au développement informatique.

1. Productivité

Les mesures classiques sur la structure du code sont à comparer dans un module homogène, elles permettent d’identifier des anomalies résultant de déviance du design ou d’une mauvaise implémentation. Ces mesures peuvent aussi servir à quantifier la productivité des équipes de développement en les analysant par unité de temps ou de production. On peut sur le long terme mesurer les variations de productivité.

a. Métriques d’ordre général

On peut comptabiliser le nombre de classes dans le module étudié, le nombre d’enfants directs d’une classe, le nombre d’interfaces dans le module étudié, le nombre d’opérations, le nombre d’attributs...

On peut surveiller la profondeur de spécialisation (DIT) qui est la distance d’une classe jusqu’à la classe de plus haut niveau (Object en Java). Cette métrique peut alerter sur un abus de spécialisation si on observe des valeurs supérieures à 6.

On regarde parfois aussi le nombre d’opérations surchargées (NORM) qui est le nombre total d’opérations dans le module étudié qui surchargent une classe ancêtre. Il faut veiller ici à ne pas comptabiliser les méthodes qu’on surcharge à coup sûr comme equals() ou toString().

b. Lignes de code (LOC)

La métrique la plus simple est le nombre de lignes de code (lignes contenant des instructions, évidemment). Par exemple, le système Mac OS X est constitué de près de 85 millions de lignes de code (LOC).

Cette métrique étant en très forte corrélation avec...

Outils CASE

CASE signifie Ingénierie logicielle assistée par ordinateur. Lorsque les outils CASE firent leur apparition, on aurait pu croire qu’ils allaient révolutionner le développement logiciel. Ce ne fut pas véritablement le cas, même s’ils s’avèrent très utiles. Parmi les grandes catégories d’outils CASE, les environnements de développement intégré (IDE) tels qu’Eclipse, Netbeans ou Visual Studio peuvent être considérés comme les plus basiques. Pour la plus grande majorité, ce sont des outils de modelage UML, plutôt inspirés d’une philosophie de développement spécifique. Certains sont indépendants d’une méthodologie, d’autres au contraire y sont très liés (les outils IBM par exemple).

D’autres outils CASE sont faits d’une panoplie d’outils d’aide au développement, comme des gestionnaires de bugs, de code, de planification ou de processus (et bien d’autres choses). L’offre est variée, elle comprend des suites fort onéreuses aussi bien que des outils open source. Parmi eux, on trouve de petits outils qui peuvent malgré tout rendre de fiers services.

En français, on parle d’AGL pour Atelier de Génie Logiciel.

1. Références

a. ArgoUML

ArgoUML est un outil open source qui permet de faire essentiellement de la modélisation UML. Il permet l’analyse et le design de systèmes orientés objet. À la différence des grands noms du marché, cet outil est gratuit. Il supporte l’intégralité des standards (UML, XMI, SVG (Scalable Vector Graphics), OCL…). C’est une application 100 % Java donc indépendante de la plateforme. Il permet la capture et la gestion des exigences ainsi que la génération et la reverse engineering du code source (synchronisation code/modèle).

C’est un outil sérieux pour une organisation au budget serré qui n’est pas dépendante d’une méthodologie précise et qui développe en Java de préférence.

b. Rational software

Rational software est une impressionnante suite de produits IBM dédiée au design, au développement, à la livraison de logiciels...

Traité d’esthétisme

Pour clore cet ouvrage, élargir le propos et laisser le lecteur dans un état méditatif, voici quelques éléments de réflexion sur l’esthétisme architectural.

La notion de beauté est éminemment subjective, c’est un jugement de valeur totalement dépendant de la culture du regard qui l’éprouve. Seulement, on peut éprouver le sentiment du beau même au sein de structures aussi abstraites que les logiciels. Comme en mathématiques où on peut être touché par une belle démonstration, en architecture logicielle on peut s’extasier sur la simplicité d’un pattern, l’efficacité d’un algorithme ou la pureté d’une structure de données. Si on considère l’architecture comme un art, la notion d’esthétisme lui est donc intrinsèque. Il y aurait une utilité au beau, comme le croit Christopher Alexander : les créations de toute nature ne font que révéler des formes existantes. L’art ne servirait qu’à exprimer ce qui existe déjà.

1. Théorie constructale

En 1996, Adrian Bejan, éminent chercheur de l’université Duke en génie mécanique, promulgue sa « loi constructale » qui dit en substance ceci : «...