IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'architecture logicielle
Un billet de blog de demkada

Le , par demkada

0PARTAGES

Il y a plusieurs manifestations de l'architecture. Toute architecture est une construction, mais toute construction n'est pas de l'architecture. Pour qu'une construction, une construction mentale, matérielle, visuelle ou acoustique soit une architecture, il faut qu'elle remplisse certaines conditions.

Cette citation de Juan Gris, un artiste peintre montre la principale contrainte de toute architecture: le respect des principes liés au domaine d'application de la dite architecture.
Dans le cadre du développement logiciel, les conditions à remplir pour que votre conception soit considérée comme une architecture sont défini par la norme ISO/CEI 9126. Si le rôle d'un architecte logiciel est d'élaborer le plan de construction et de coder les grandes lignes d'architecture d'un système logiciel, sa phase de conception globale doit impérativement prendre en compte les indicateurs de qualité définis par cette norme. Ces indicateurs sont:

  • La capacité fonctionnelle : La conformité des fonctionnalités du logiciel avec celles décrites dans le cahier des charges.
  • La fiabilité : La faculté du logiciel à gérer correctement ses propres erreurs de fonctionnement en cours d'exécution.
  • La portabilité : La possibilité de porter le logiciel sur des plates-formes (machines, systèmes d'exploitation, environnements) différentes.
  • Le rendement / L'efficacité : La capacité du logiciel à exploiter au mieux les ressources offertes par la ou les machines hôtes.
  • La facilité d'utilisation : La facilité d'apprentissage et d'utilisation du logiciel par les usagers.
  • La maintenabilité : La simplicité de correction, de modification et d'extension du logiciel.

De ces six indicateurs, seuls les quatre premiers sont respectés par la plus part des architectes, et croyez moi, c'est uniquement la vision contractuelle du projet logiciel qui limite leur conception. En effet, il est clair qu'en appliquant ces quatre principes (Capacité fonctionnelle, Fiabilité, portabilité et Efficacité) au dépends des deux plus importants et plus compliqués à respecter, le contrat sera rempli, le client sera content, et même, il peut arrivé que l'utilisateur final soit aussi content après la recette (car ses cas d'utilisation marchent). En me basant sur la citation de Juan Gris suscité, je dirai que vous avez construit quelque chose qui marche, mais cette chose n'est pas de l'architecture. C'est le fameux Get It Done(GID) de la plus part des architectes.


Un architecte ne doit pas avoir comme référence le GID, mais plutôt le GIR (Get It Right). Le GIR passe par le respect inconditionnel des différents indicateurs de qualité définis par la norme ISO/CEI 9126 et par ricochet est le fruit d'une architecture basée sur l'humain. Il est évident que tout logiciel est conçu pour être utilisé et potentiellement évolué, L'utilisation et la maintenance (corrective et évolutive) sont en générale effectuées par des humains, autres que vous / votre équipe, d'où le concept de développement centré sur l'humain. Un projet de développement logiciel centré sur l'humain est un projet qui respecte les indicateurs de maintenabilité et de facilité d'utilisation et ne vous trompez pas, car pour réellement respecter ces indicateurs, il ne faut pas se limiter aux techniques de l'ingénieur classique qui vous mèneront directement au GID, il faut avoir le savoir faire, et le savoir être; et idéalement, il faut être un software craftsman.


Alors, vous me direz que tout ceci est beau, mais que la réalité reste le respect du contrat, et moi je vous dirai que vous avez raison. Et c'est tout là l'intérêt de ce post, maintenant que vous avez lu cet article, vous ferez désormais le lien entre qualité de code et conception logiciel, ce qui vous permettra de mieux penser vos estimations de budget.


Toutefois, vous devez savoir, qu'avec l’avènement de nouveaux paradigmes de programmation et principalement celui de la programmation orienté objet, des méthodes de conduite de projet par l'agilité, et de l'artisanat du logiciel, vous pouvez concevoir votre architecture GIR en respectant simplement les principes de bases du design objet. Ce qui fait qu'une bonne maitrise des trois types d'architecture: orientée objet, en couche et distribuée utilisés comme base de départ, peut faire le bonheur de tout architecte logiciel.

--------------------------------------------------
Source: http://blog.kadary.me

Une erreur dans cette actualité ? Signalez-nous-la !