Objets Numériques Libres

[30 min]

L'association ONL (Objets Numériques Libres) est une association de promotion des logiciels libres. Elle souhaite exposer sur un site Internet une liste de logiciels libres. Ce site sera adossé à une base de données relationnelle ou relationnel-objet. La première étape de sa démarche est de réaliser un modèle conceptuel représentant ce qu'elle souhaite faire.

  • La base de données permet de gérer des applications.

    Les applications sont identifiées par leur nom (LibreOffice, Gimp...) et leur version (1.0, 2.1), et comportent une description courte et une URL. Tous les attributs sont obligatoires. Chaque application a une URL unique.

  • La base de données permet de gérer des librairies.

    Les librairies sont des logiciels mais pas des applications. Elles ont les mêmes attributs que les applications (nom, version, description courte, URL), mais les URL ne sont pas nécessairement uniques. Les applications peuvent dépendre de librairies ou d'autres applications, et les librairies peuvent dépendre d'autres librairies (mais pas d'une application).

  • La base de données permet de gérer des composants.

    Les composants sont intégrés à une application ou librairie. Les composants ont un code interne à l'application ou la librairie qu'il servent, une version et une description courte, et une URL. Le code et le numéro de version permettent d'identifier localement le composant au sein de la librairie ou de l'application, la description courte et l'URL sont optionnelles.

  • La base de données permet de gérer des licences.

    Les applications, librairies et composants sont attachés à une ou plusieurs licences identifiées par leur nom (GPL, MPL...), leur version et leur langue, et comportant le texte intégral de la licence. Les versions des logiciels et licences sont de type "numéro de licence majeur point numéro de licence mineur", comme "1.0" ou "2.2".

  • La base de données permet de gérer des catégories.

    Chaque logiciel est rangé dans une catégorie principale, et plusieurs catégories secondaires. Exemple de catégories : bureautique, dessin, multimédia, physique...

Exemple (factice) de données

  • Applications :

    • Scenari 4.1, une chaîne éditoriale XML, http://scenari.org, dépend de Libreoffice 4.3 et de ImageMagick 6.8

    • Libreoffice 4.3, une suite bureautique WYSIWYG, http://libreoffice.org

  • Librairie :

    • ImageMagick 6.8, permet de créer, de convertir, de modifier et d'afficher des images, http:// imagemagick.org

  • Composant :

    • impng 0.2 est un composant de ImageMagick 6.8, permet de compresser une image au format PNG.

  • Toutes ces applications, librairies et composants sont disponibles sous une licence LGPL 3.0 et GPL 3.0 françaises.

  • Toutes ces applications et librairies sont rangées dans la catégorie principale "document". Scenari est rangé dans la catégorie secondaire "Édition WYSIWYM", Libreoffice dans la catégorie secondaire "Bureautique", ImageMagick dans la catégorie secondaire "Multimédia".

Question

Réaliser un MCD en UML.

Solution

Remarque

On aurait pu ajouter une classe abstraite ONL dont hériterait Logiciel et Composant et qui factoriserait version et URL. L'intérêt principal serait de faire apparaître la notion d'ONL.