UML est un moyen d'exprimer des modèles objet en faisant abstraction de leur
implémentation, c'est-à-dire que le modèle fourni par UML est
valable pour n'importe quel langage de programmation. UML est un langage qui s'appuie
sur un métamodèle, un modèle de plus haut niveau qui définit
les éléments d'UML (les concepts utilisables) et leur sémantique
(leur signification et leur mode d'utilisation).
Le métamodèle permet de se placer à un niveau d'abstraction supérieur
car il est étudié pour être plus générique que le modèle
qu'il permet de construire.
Le méta-modèle d'UML en fait un langage formel possèdant
les caractéristiques suivantes:
- un langage sans ambiguités
- un langage universel pouvant servir de support pour tout langage orienté objet
- un moyen de définir la structure d'un programme
- une représentation visuelle permettant la communication entre les acteurs d'un même projet
- une notation graphique simple, compréhensible même par des non informaticiens
Le métamodèle permet de donner des bases solides et rigoureuses à ce langage
graphique, dont les représentations graphiques ne sont là que pour véhiculer
des concepts de réalisation.
UML offre une manière élégante de représenter le système
selon différentes vues complémentaires grâce aux diagrammes.
Lorsqu'une entreprise désire un logiciel, elle le réalise parfois en interne,
mais le fait plus généralement réaliser par une société
de services.
Dans un cas comme dans l'autre il est nécessaire de définir l'ensemble des
fonctionnalités que le logiciel doit possèder. Le demandeur du logiciel n'a
parfois pas de compétences particulières en informatique
et exprime donc ses souhaits sous forme d'un CdCF (Cahier des Charges Fonctionnelles),
c'est-à-dire un document décrivant sous forme textuelle l'ensemble des particularités
que le logiciel doit possèder, les conditions qu'il doit remplir (système(s) d'exploitation visé(s)), les écueils
à éviter, ainsi que les délais impartis, éventuellement des clauses sur
le coût, les langages à utiliser, ...
Le CdCF est ainsi distribué à différentes sociétés de services (dans le cas
d'une sous-traitance) sous forme d'un appel d'offre, auquel les sociétés vont répondre
par un coût, un délai, ...
Lorsqu'une société obtient le marché et qu'elle décide (si elle a le choix)
d'opter pour un langage orienté objet, il lui faut dans un premier temps créer un modèle
(c'est là qu'intervient UML) afin:
- de présenter au client la façon suivant laquelle elle compte développer le logiciel
- d'accorder tous les acteurs du projet (une application de grande envergure est
généralement réalisée par modules développés par différentes équipes)
Ainsi, si le modèle ne convient pas au client, il sera "simple" à modifier,
contrairement à une application directement implémentée (qui aurait mobilisé
beaucoup plus de personnel, pendant une période plus longue), ce qui signifie une perte d'argent beaucoup moins importante pour la
société de services, ainsi qu'une meilleure probabilité de rendre dans les temps
(on parle généralement de dead line) une application conforme aux exigences du client
(si l'application se conforme au modèle présenté au client, celui-ci peut difficilement
contester la validité du logiciel).
|