Proj-2013-2014-Open DynDNS/UML

From air
Jump to navigation Jump to search

Cahier des charges

Lien vers document SRS -> Software Requirements Specification (SRS)


Review sur argoUML

ArgoUML est un logiciel libre de création de diagrammes UML. Programmé en Java, il est édité sous licence EPL 1.0. Il est multilingue, supporte la génération de code et l'ingénierie inverse. Les interfaces sont plus ou moins clairs et compréhensible par les utilisateurs soit normal ou soit développeur. La construction d’un diagramme se faire par la méthode drag-and-drop et on peut facilement ajouter, supprimer et modifier des composants dans un modèle existante. Il existe aussi un fonction d’export pour exporter le diagramme en format image(PNG, JPG etc), ce qui est pratique pour les intégrer dans un rapport ou présentation.

Une des avantages de ce programme est la différenciation des types de diagrammes par des boutons spécifiques. Par exemple si on veut générer un diagramme de classe, en appuyant sur le bouton, on peut avoir tous les interfaces nécessaires pour le faire et les fonctionnalités non-concernées sont omises.

La génération de code est supportée pour plusieurs langages comme C++, Csharp, JAVA, PHP, SQL etc. Etant des débutants dans la conception des diagrammes UML, nous avons trouvé que argoUML est un bon outil pour s’y lancer grâce à son interface ergonomique et facile. La seul inconvénient que nous avons constaté pendant le DM est la manque de support pour le type diagramme d’objet et nous avons dû utiliser un autre outil (googleDoc) pour faire cela.


Diagramme de contexte

RICM4-2014-GL-DM-G11-Context.png


Diagramme de cas d'utilisation

RICM4-2014-GL-DM-G11-UseCase.png


Diagramme de class

RICM4-2014-GL-DM-G11-Class.png


Diagramme d'objets

RICM4-2014-GL-DM-G11-objets.png


Diagramme de séquence

  • on se place sur le client qui vient de d'arriver sur un réseau public et a lancé le démon sur sa tablette

RICM4-2014-GL-DM-G11-State.png

Diagramme d'états

  • l'état du client(démon)

RICM4-2014-GL-DM-G11-Sequence.png


Quelsques expressions OCL

  • 1)

context Domain

inv : nbHosts > 0

  • 2)

context Host

inv : self.ipAddr == checkIPFormat()

  • 3)

context ServeurREST

inv : self.nbDNSserver == 1

  • 4)

//nb de host doivent rester le même après modifications

context ServeurREST :: modification(hostname, address)

pre : x = self.domain.nbhosts

post : self.domain.nbhosts == x