myGroup > myProject
 

Spécification

UML – la démarche “Unified Process”

La démarche d'analyse et de conception détaillée sera effectuée avec le langage UML. L'objectif global est d'analyser et de concevoir une application orientée objet en suivant trois étapes successives d'analyse et une étape de test.

Nous développerons dans les paragraphes suivants l'analyse et les éléments supplémentaires nécessaires à notre projet.

Trois étapes successives d'analyse

  • La phase d'inception

    Cette phase permet de cerner le domaine d'études, l'ordre de priorité et d'identifier les grandes fonctionnalités du programme à développer.

    Elle prouve la faisabilité du problème à traiter.

    Ainsi divers éléments de l'application doivent être découverts et selon le cahier des charges, il faut :

    – lister les exigences du système c'est à dire recencer les taches élémentaires – lister les acteurs

    – associer les exigences aux acteurs pour effectuer des diagrammes de contexte – regrouper des tâches élémentaires pour déduire les intentions des acteurs

    ainsi on en déduit les cas d'utilisations qu'il faut définir et décrire textuellement.

  • La phase itérative ou d'analyse

    Cette phase sert à construire l'architecture de base selon chaque cas d'utilisation déterminé dans la phase d'inception.

    Cette analyse va détailler les fonctionnalités par les diagrammes suivants en itérant :

    - une description de bas niveau pour mettre en évidence la notion de scénario

    - un diagramme d'activité s'il y a plusieurs scénarios

    - description dans un diagramme de séquence "boîte noire" pour se focaliser sur les aspects fonctionnels c'est à dire les opérations effectuées dans chaque scénario

    - un diagramme de classe d'analyse pour le use case donne une petite vision pour chaque use case

    - faire des contrats d'opérations découvertes dans les étapes précédentes

    – faire des diagrammes de séquence "boîte blanche" pour chaque fonctionnalité.

  • La phase de design

    Cette phase va permettre de détailler les aspects de conception pour aboutir à l'implémentation par le codage des classes en faisant les diagrammes suivants :

    – le diagramme d'état transition pour chaque classe métier importante : qui sont le coeur de l'application à développer

    – le diagramme de collaboration est effectué à partir des diagrammes de séquence "boîte blanche" par opération

    – le diagramme de classe de conception qui est une synthèse finale et représente les objets ainsi que leurs interactions

    - on peut également rajouter des diagrammes de composants.

La phase de transition ou de tests

Cette dernière phase correspond à l'intégration et aux divers tests nécessaires pour contrôler le bon fonctionnement d'une application orientée objet.

Les éléments supplémentaires

Bien que cette analyse semble complète, elle ne traite que les aspects objects d'une application.

Hors, actuellement, la majorité des applications développées sont construites autour du modèle MVC et donc avec utilisation de base de données pour stocker les informations collectées ou dites persistantes.

Il faut donc dans la phase de design rajouter l'étude du modèle de données MCD qui répond à la question suivante :

“Parmi les objets créés, quelles sont les données persistantes qui doivent être conservées ou qui sont réutilisées?”.

Notre étude UML pour l'élaboration d'une application web de surveillance réseau

Sachant que les diagrammes proposés par UML sont plus ou moins répétitifs, on peut donc sélectionner les diagrammes qui résument chaque fonctionnalité de l'application à développer. Ainsi, pour la phase d'inception, nous avons traités les cas d'utilisations et les scénarios associés.

Pour la phase d'analyse, nous avons réalisé pour chaque scénario, les diagrammes de séquence “boîte noire” associés.

Pour la phase de design conception, nous avons réalisé :

– les diagrammes d'état-transition des classes principales : "Collecte", "Agent", "Equipement", "Reseau"

– l'analyse OCL des diverses classes déterminées

– l'étude du modèle de données et définition des accès en base de données. En conclusion, ces étapes ont permis le découpage en package de l'application ainsi que la définition des interactions entre packages.

Introduction

Contexte du projet

Pour mener à bien toutes les tâches d'administration d'un réseau un administrateur a besoin de données fiables, précises et à jour sur tous les éléments du réseau.

Pour cela IPFRED se veut être l'outil qui lui permettra de collecter ces données et de les stocker.

IPFRED permettra de sonder le réseau afin d'en obtenir sa topographie.

IPFRED permettra d'obtenir des informations sur chacun de ces éléments sondés.

IPFRED fournira également un journal des évènements survenant sur le réseau.

Objectif du document

Ce document présente la spécification de l'application WEB IPFRED.

Cas d'utilisation

Partie collecte - Les scénarios

Paramétrage de la collecte

Le paramétrage de la collecte permet de définir 3 grandes fonctionnalités :

  1. Définir la stratégie de collecte: Cas d'utilisation "Définir_Collecte"

  2. Sonder le réseau pour construire la topographie: Cas d'utilisation "Sonder_Réseau".

De plus le système stocke les informations de paramétrage dans la base de données: Cas d'utilisation "Sonder le réseau".

D'où le cas d'utilisation Paramétrage de collecte suivant:

Scénario: Paramétrage de collecte

L'administrateur sélectionne s'il veut :

- Définir une stratégie de collecte,

- Sonder le réseau

Chaque fonctionnalité sera développée dans les parties suivantes.

Définir la stratégie de collecte

Dans cette partie, il y a 4 fonctionnalités principales:

  1. Définir le type de filtre

    Il est possible de:

    • Définir un filtre : par équipement ou par adresse IP

    Cas d'utilisation : Choix du filtre

    Scénario:

    L'administrateur, lors de la définition de stratégie de collecte, sélectionne un type de filtre dans la liste qui lui est proposé (par équipement ou adresse IP). Il valide ou annule son action.

    Le système vérifie le filtre sélectionné, trie les données selon le filtre sinon il émet un message d'erreur.

    * Cas1: L'administrateur a choisi un filtre par équipement

    - Il coche parmi la liste d'équipements qui lui sont proposés les équipements dont il veut obtenir des mesures.

    - Il valide ou annule son action.

    * Cas2: L'administrateur a choisi un filtre par plage d'adresses IP

    - Il coche parmi la liste d'adresses IP qui lui sont proposées l'adresses IP débutant la plage d'adresses.

    - Il coche parmi la liste d'adresses IP qui lui sont proposées l'adresses IP terminant la plage d'adresses.

    - Il valide ou annule son action.

    • Supprimer un filtre

    Cas d'utilisation : supprimer un filtre existant

    Scénario :

    L'administrateur , sélectionne la suppression d'une collecte.

    Le système vérifie que le filtre existe et supprime le filtre associé à la collecte sinon il émet un message d'erreur.

  2. Associer des mesures à un type d' équipement

    Il est possible de:

    • Créer une nouvelle association

    Cas d'utilisation : Créer une nouvelle association

    Scénario:

    Le système, dès le choix du filtre, crée une association mesure-équipement si le choix de filtre est par équipement.

    • Supprimer une association existante

    Cas d'utilisation : supprimer une association existante

    Scénario:

    Le système supprime une Association Mesure-équipement lors de la suppression d'une stratégie de collecte.

    Il sélectionne la ou les association(s) à supprimer puis valide.

    Le système vérifie que l'association existe et la supprime sinon il émet un message d'erreur.

  3. Définir les mesures à collecter

    Après définition du type de filtre, l'administrateur sélectionne les mesures qu'il souhaite collecter.

    Il est possible de:

    • sélectionner une ou plusieurs mesures

    Cas d'utilisation : Choix des mesures

    Scénario:

    Le système a initialement fait un tri des données selon le filtre et l'association des mesures par équipement.

    L'administrateur sélectionne un équipement dans une liste.

    Le système affiche la liste des mesures associées à l'équipement.

    L'administrateur décoche les mesures qu'il ne souhaite pas collecter pour cet équipement.

    Il valide ou annule son action. Et il a la possibilité de réitérer l'opération pour d'autres équipements s'il le désire.

    • Supprimer une mesure existante

    Cas d'utilisation : Supprimer une mesure existante

    Scénario:

    L'administrateur sélectionne la suppression d'une collecte.

    Le système vérifie que la stratégie existe.

    Le système supprime les mesures associées à cette collecte sinon il émet un message d'erreur.

La collecte

Un administrateur définit initialement une stratégie de collecte: cette étape comprend la définition du type de filtre, association mesures-équipement, et sélection des mesures à collecter (Cf partie 2. La Stratégie de collecte).

L'administrateur a accès à 3 fonctionnalités: le démarrage, l'arrêt ou la modification et la suppression de collecte.

********************************************************** NOTE ***********************************************************************

Avant toute définition de collecte, il faut que préalablement, il y ait eu une découverte de réseau et une définition des types d'équipement présents dans celui-ci. Une collecte d'informations n'étant effectuée que sur les équipements "Ordinateur", il faut donc que préalablement ils aient été définis.

*****************************************************************************************************************************************

  1. Démarrer la collecte

    Cas d'utilisation : Démarrer une collecte

    Scénario:

    L'administrateur sélectionne Démarrer une collecte, après avoir sélectionné et défini une collecte par:

    - Définir le filtre

    - Définir les mesures à collecter

    - puis valide.

    Le système vérifie que la collecte n'existe pas,

    la crée,

    et enregistre les informations dans la base de données,

    sinon il émet un message d'erreur.

    L'administrateur démarre donc la collecte d'informations.

  2. Arrêter une collecte existante

    Cas d'utilisation : Arrêter une collecte existante

    Scénario:

    L'administrateur sélectionne une collecte existante.

    Le système vérifie que la collecte est en cours, sinon il émet un message pour confirmer l'arrêt de la collecte.

    La collecte est interrompue et pourra être redémarrer plus tard car le paramétrage est enregistré en base de données.

  3. Supprimer une collecte existante

    Cas d'utilisation : Supprimer une collecte existante

    Scénario:

    L'administrateur sélectionne Supprimer une collecte et valide.

    L'administrateur sélectionne une collecte existante.

    Le système vérifie que la collecte n'est pas en cours, sinon il émet un message pour demander d'arrêter la collecte avant de la supprimer.

    La collecte étant interrompue, le système redemande la confirmation de la suppression, l'administrateur valide la suppression.

    Le système va donc:

    - Supprimer le filtre

    - Supprimer les associations mesures-collecte de la collecte

    - Supprimer les mesures à collecter

    - Supprimer les informations relatives à la collecte contenues dans la base de données.

Sonder le réseau pour construire la topographie

Cas d'utilisation : Sonder le réseau

Scénario :

L'administrateur choisit de Sonder le réseau.

L'administrateur a la possibilité de sélectionner de sonder :

- tout le réseau

- un sous réseau

- d'une adresse 1 à une adresse 2.

Cela permet de récupérer une topographie du réseau sélectionné.

Ensuite, il peut visualiser, imprimer ou extraire et enregistrer un fichier lui donnant la topographie du réseau à l'instant "T" et stocker le résultat dans la base de données.

Conclusion

On ne demande pas à l'administrateur de s'identifier avant chaque traitement car il ne s'identifie qu'une seule fois dès le lancement de l'IHM.

L'administrateur doit valider chaque traitement avant le stockage dans la base de données. Si le traitement n'a pu être effectué, un rapport d'erreur doit être produit afin d'en informer l'administrateur.

A tout moment avant la validation, l'Administrateur peut abandonner ce qu'il est en train de faire.

Lors de la vérification des données saisies, si elles ne correspondent pas ou sont erronées, le système demande la ressaisie de la partie erronée.

Exploitation

On peut distinguer 2 grandes familles de fonctionnalités dans l'exploitation :

  • Le paramétrage du système

  • L'affichage (consultation) des données (brutes ou calculées)

Affichage

  1. Afficher l'état global du réseau

    Cas d'utilisation : afficher état global du réseau
    • Scénario

      • L'utilisateur clique sur le menu "Etat global du réseau"

      • Le système vérifie s'il a des données à afficher

      • Le système affiche le résultat de sa recherche

  2. Définir une plage d'adresses IP pour l'affichage

    Cas d'utilisation : afficher une plage d'adresses IP pour l'affichage
    • Scénario

      • L'utilisateur définit une plage d'adresses dont il désire afficher l'état (du réseau)

      • Le sytème récupère les infos

      • Le système affiche les résultats

  3. Afficher le détail d'un élément du réseau

    Cas d'utilisation : afficher une plage d'adresses IP pour l'affichage
    • Scénario

      • L'utilisateur sélectionne un élément dont il désire obtenir des renseignements

      • Le sytème vérifie si il a des données à afficher pour cette machine

      • Le système affiche le résultat de sa recherche

  4. Imprimer l'état global du réseau

    Cas d'utilisation : imprimer état global du réseau
    • Scénario

      • L'utilisateur est sur la page d'affichage de l'état global du réseau, il clique sur un bouton d'impression

      • Le système ouvre une nouvelle fenêtre prête à l'impression, purgée de tout élément superflu

      • L'utilisateur choisit d'imprimer la page grâce aux fonctionnalités du navigateur.

  5. Afficher un journal des évènements

    Cas d'utilisation : afficher journal des évènements
    • Scénario

      • L'utilisateur choisit dans un menu d'afficher le journal des évènements

      • Le système affiche les évènements "en temps réel" qui surviennent sur le réseau

    • Liste des évènements pouvant intervenir

      • Connexion, déconnexion d'un utilisateur

      • Système de fichier plein

      • Charge système de fichier > seuil

      • Charge CPU Moyen > seuil

      • Durée maximum d'un processus dépassée

Paramétrage

  1. Paramétrage

    Cas d'utilisation : paramétrer le système
    • Scénario

      • L'utilisateur clique sur le menu paramétrage du système

      • Le système récupère les différents éléments paramétrables

      • Le système affiche le résultat de sa recherche

      • L'utilisateur modifie un paramètre

      • Le système enregistre les modifications

    • Elements paramètrables du système

      • Base de données :

        • Adresse

        • Utilisateur unique pour l'accès en base de données : "postgres"

        • Mot de passe

      • Données personnelles

        • Login

        • Mot de passe

  2. Modifier le modèle de données

    Cas d'utilisation : Ajouter ou supprimer une propriété d'un équipement du réseau
    • Scénario

      • L'utilisateur choisit un élément de réseau dans une liste

      • Le système récupère les propriétés définies pour cet équipement

      • Le système affiche le résultat ainsi que la liste des propriétés prédéfinies

      • L'utilisateur sélectionne les propriétés à ajouter ou supprimer

      • Ls sytème enregistre les modifications

Stockage

On peut distinguer 3 cas d'utilisation pour le stockage :

  • L'ajout de données en base

  • La modification de données

  • La suppression d'une donnée

Modèle statique

Modèle dynamique

Diagrammes de Sequence

La Stratégie de collecte

  • Diagramme de Séquence Créer une nouvelle Stratégie de Collecte

Le "3: NouveauFiltre" correspond au diagramme de séquence de "NouveauFiltre" suivant :

Le "4: NouveauMesureCollecte" correspond au diagramme de séquence de "NouveauMesureCollecte" suivant :

  • Diagramme de Séquence Supprimer une Stratégie de Collecte

Le "6: ArreterCollecte" correspond au diagramme de séquence de "ArreterCollecte" suivant :

Le "7: SupprimerFiltre" correspond au diagramme de séquence de "SupprimerFiltre" suivant :

Le "8: SupprimerMesureCollecte" correspond au diagramme de séquence de "SupprimerMesureCollecte" suivant :

La Collecte

  • Démarrer une collecte de données

  • Arrêter une collecte de données

Sonder le réseau

L'exploitation

  • Etat Global Du Reseau

  • Afficher une plage d'adresses IP du Reseau

  • Afficher 1 Adresse IP

  • Imprimer l'état global du Reseau

  • Afficher le journal des évènements

  • Parametrer le systeme

  • Ajouter ou supprimer une propriété à un équipement reseau

Le Stokage

Remarque: Chacune des fonctionnalités est exécutée de manière indépendante.

Conclusion

Ces diagrammes permettent de voir les enchainements nécessaires lors de la programmation pour garantir l'intégrité des données.

Diagramme d'état

Collecte

Agent

Equipement

Reseau

Description OCL

Contexte OS

NOTE : Il faut déterminer le type d'OS pour pouvoir effectuer une collecte d'information. La méthode "demarreMesure()" démarre la recherche d'Os.

Def: nom.os: string

Def: version.os: string

Def: type.os: string[Windows, Unix, Autre]

Def : GetNom.Os() : string Post :GetNom.Os ( ) = Windows or Unix or Autre

Def : GetVersion.Os() : string

Def : Gettype.Os() : string If (GetType.Os = =Windows) Post :Nom.Os = Windows 95 or Windows 98 or Windows NT or Windows 2000 or Windows XP Else If ( GetType.Os == Linux ) Post : Nom.Os = Mandrake or Suse or Redhat Else Post: Nom.Os = Autre

Def : demarreMesure.Os ( )

Processeur

NOTE : Le processeur est un élément d'ordinateur qui est déterminé s'il est sélectionné dans le paramétrage de collecte et découvert lors de la recherche de données synchrones sur un ordinateur.

Def : Marque.Processeur : string [AMD, Intel, Autre]

Def : Modele.Processeur : string [Pentium, Celeron, Xeon, Athlon, Duron, Autre]

Def : Frequence.Processeur : String

Def : Charge.Processeur : String

Def : ChargeMoyenne.Processeur : String

Def : index.Processeur : int

Def : GetMarque.Processeur ( ) : string Post : GetMarque.Processeur ( ) = AMD or Intel or Autre

Def : GetModele.Processeur ( ) : string Post : GetModele.Processeur ( ) = Pentium or Celeron or Xeon or Athlon or Duron or Autre

Def : GetFrequence.Frocesseur ( ) : String

Def : GetCharge.Processeur ( ) : String

Def : GetChargeMoyenne.Processeur ( ) : String

Mémoire

NOTE : La mémoire est un élément d'ordinateur qui est déterminée s'il est sélectionné dans le paramétrage de collecte et découvert lors de la recherche de données synchrones sur un ordinateur. La méthode "demarreMesure()" démarre la recherche de mémoire sur l'ordinateur.

Def : TailleMemoire.Memoire : String

Def : GetTailleMemoire.Memoire ( ) : String

Def : demarreMesure.Memoire ( )

Service

NOTE : Si nous avons le temps, nous traiterons la recherche de services associés à un serveur par la recherche de port.

Def : Nom.Service : string

Def : Port.Service : int

Def : GetNom.Service ( ) : string

Def: GetListePort.Service ( ) : int Post : 1 < GetListePort.Service ( ) < 40000

Serveur

NOTE : Le serveur sera détecté comme un ordinateur et sera plus développé si nous avons le temps.

Def : ListeService.Seveur : Vector

Pre : GetlisteService.Serveur ( ) : NombreDeService (serveur ) > 0

Def : GetlisteService.Serveur ( ) : Vector

Routeur

NOTE : Si nous avons le temps, nous traiterons la recherche de services associés à un routeur par la recherche de port.

Def : ListePort.Routeur ( ) : int [48 ]

Def : TableRoutage.Routeur ( ) : Vector

Def : GetTableRoutage.Routeur ( ) : Vector Def : GetListePort.Routeur (int [] ) : int

Imprimante

NOTE : Si nous avons le temps, nous traiterons la recherche de services associés à une imprimante.

Def : Type.Imprimante : String

Def : GetType.Imprimante ( ) : String

Def : Spool.Imprimante ( ) : Void -> Spool.txt

Switch

NOTE : Si nous avons le temps, nous traiterons la recherche de services associés à un switch.

Def : ListPort.Switch : int [48]

Def : GetListePort.Switch (int [] ) : int

Disque

NOTE : Le disque est un élément d'ordinateur qui est déterminé s'il est sélectionné dans le paramétrage de collecte et découvert lors de la recherche de données synchrones sur un ordinateur. La méthode "GetNbrPartition.Disque()" est initialisée à 1 et ne peut être que égal ou supérieure à 1.

Def: index.Disque : int

Def : Taille.Disque : String

Def : EspaceLibre.Disque : String

Def : NbrPartition.Disque : String

Def : nomDisque.Disque : String

Init : GetNbrPartition.Disque = 1

Def : GetTaille.Disque ( ) : String

Def : GetEspaceLibre.Disque ( ) : String

Def : GetnomDisque.Disque ( ) : String

Ordinateur

NOTE : L'ordinateur est l'équipement sur lequel la recherche de données synchrones est effectué. Il est composé d'une liste d'Os, d'une liste de processeur, un nombre de processeur ainsi qu'une description. Il spécialise un Equipement et donc possède en plus les attributs d'un équipement.

Def : ListeOs.Ordinateur : Vector

Def : listeDisque.Ordinateur : Vector

Def : listeMesure.Ordinateur : Vector

Def : listeMesureAsync.Ordinateur : Vector

Def : Description.Ordinateur : String

Def : Processeur.Ordinateur : Processeur

Def : NbrProcesseur : int Def : ListeDisque.Ordinateur : Vector

Def : GetNbrProcesseur.Disque ( ) : int Post : GetNbrProcesseur.Disque ( ) < 5

Def : ListeOs.Disque ( ) : Vector

Def : Processeur.Ordinateur ( ) : Vector

Def : GetListeDisque.Ordinateur ( ) : Vector

Def : GetDescritption.ordinateur ( ) : String

Equipement

NOTE : Il est déterminé à la suite d'un "scan" réseau pour déterminer son type.

Def : NomReseau.Equipement : String

Def : AdresseIP.Equipement : String

Def : ListeMemoire.Equipement : Vector

Def : Type.Equipement : String

Def : GetNomReseau.Equipement ( ) : String

Def : GetAdresseIP.Equipement ( ) : String

Def : GetListeMemoire.Equiepement ( ) : Vector

Def : GetType.Equipement ( ) : String

Réseau

NOTE : C'est l'élément initial de l'application car s'il n'est pas déterminé, les équipements qui le composent ne le seront pas. Le réseau "scan" initialement toutes les adresses IP d'un réseau puis un second "scan" permet de déterminer les équipements qui ont une os et leur type.

Def : ListeAdresseIP.Reseau : String

Def : ListeSousReseau.Reseau : Vector

Def : MasqueSousReseau.Reseau : String

Def : ListeAdresseIp.Reseau ( ) : String

Def : ListeSousReseau.Reseau ( ) : Vector

Def : MasqueSousReseau.Reseau ( ) : String

Evènement

NOTE : Ce sont les mesures asynchrones collectées.

Def : Type.Evenement : String

Def : Date.Evenement : Date

Def : Descritption : String

Def : GetDate.Evenement ( ): Date

Def : GetDescription.Evenement ( ) : String

Def : GetType.Evenement ( ) : String

Collecte

NOTE : Une collecte ne peut être déterminée qu'après détermination du réseau et des équipements qui le composent. De plus, une collecte ne peut être déterminée que pour un équipement de type "Ordinateur"

Def : Nom.Collecte : String

Def : GetNom.Collecte ( ) : String

Def : GetMesure.Collecte ( ) : Void

Pre : DemarrerCollecte.Collecte ( ) : ( Nom.Collecte and Frequence.Collecte ) != 0

Def : DemarrerCollecte.Collecte ( ) : Void Post : DemarrerCollecte.Collecte ( ) < 1 minute

Journal

Def : Afficher.Journal ( ) : Void

Agent

Def : ListeMesure.Agent : Vector

Def : Frequence.Agent : int

Def : GetFrequence.agent ( ) : int Post : 1 / heure < GetFrequence.Agent ( ) < 2 / minutes

Def : GetListeMesure.Agent ( ) :Vector

Annexe A : Dictionnaire des classes

Agent

  1. Définition

    Les agents sont chargés de collecter des informations synchrones et asynchrones sur un ordinateur.

  2. Attributs

    ordinateur : Ordinateur

  3. Méthodes

    getEquipement(ordinateur : Ordinateur) : Ordinateur

    getMesureAsync( ordinateur : Ordinateur) : Ordinateur

Collecte

  1. Définition

    Représente la collecte d'information sur les équipements réseaux "Ordinateur"

  2. Attributs

    nom : String adresseIp1 : String adresseIp2 : String dateC : java.util.Date continuerCollecte : boolean osType : boolean osVersion : boolean memoireTaille : boolean processusNombre : boolean cpuCharge : boolean cpuChargeMoyenne : boolean cpuFrequence : boolean cpuMarque : boolean cpuType : boolean cpuNombre : boolean disqueNombre : boolean disqueTaille : boolean listeOrdinateur : Vector listeMesure : Vector resCol : Vector resEvt : Vector

  3. Méthodes

    Méthodes get et set pour chaques attributs + methodes add pour chaque attribut de type "Vector"

    retourneListOrdi()

    demarrerCollecte(String ip)

    demarrerCollecte(String adresseIp1,String adresseIp2)

    arreterCollecte()

    reprendreCollecte()

    resultatCollecte(String nom) : boolean

    enregistrerCollecte() : boolean

    retourneListMes()

    recupererCollecte()

Disque

  1. Définition

    Représente un disque dur d'un équipement réseau, un ordinateur peut avoir plusieurs disques.

  2. Attributs

    index : int

    nomDisque : String

    taille : String

    espaceLibre: String

    nbrPartition : String

  3. Méthodes

    Méthodes get et set

    demarreMesureDisque()

    demarreMesureSystemeFichier()

Equipement

  1. Définition

    Equipement composant le réseau dont on pourra obtenir des informations

  2. Attributs

    nomReseau : String

    adresseIp : String

    listeOs : Vector

    listeProcesseur : Vector

    listeMemoire: Vector

    etat : int

    type : String

  3. Méthodes

    Méthodes get et set pour chaques attributs + methodes add pour chaque attribut de type "Vector"

Evènement

  1. Définition

    La classe évènement représente les évènements asynchrones qui seront affichés sur le journal

  2. Attributs

    nom : String

    date : java.util.Date

    valeur : String

    adresseIp : String

  3. Méthodes

    Méthodes get et set pour chaque attribut

    enregistreEvenement()

Imprimante

  1. Définition

    Représente un imprimante réseau relier directement au réseau

  2. Attributs

    type : String

  3. Méthodes

    Méthodes get et set pour chaque attribut

Journal

  1. Définition

    Représente le journal des événements intervenant sur le réseau . Cette objet comporte une liste d'événement.

    Si une plage d'adresse IP est spécifiée seul les événement intervenants pour cette plage d'adresse sont listés.

    Si une liste d'équipement est spécifiée seul les événement intervenants pour ces équipements sont listés.

  2. Attributs

    listeAdresseIP : Vector seuilMemoireDepasser : boolean espaceDisquePlein : boolean systFichPlein: boolean chargeSystFichSupSeuil : boolean cpuchargemoysupseuil : boolean listeEvenement : Vector quantitee : int debut : int fin : int

  3. Méthodes

    Méthodes get et set pour chaques attributs + methodes add pour chaque attribut de type "Vector"

    setListeEvenement()

    setListeAdresseIp()

    enregistreEvenement(Ordinateur ordinateur)

Memoire

  1. Définition

    Représente la mémoire d'un équipement réseau

  2. Attributs

    tailleMemoire : String

  3. Méthodes

    Méthodes get et set pour chaques attributs

Ordinateur

  1. Définition

    Représente un ordinateur connecté sur le réseau

  2. Attributs

    listeDisque : Vector

    Description : String

  3. Méthodes

    Méthodes get et set pour chaques attributs

    demarreMesure()

Os

  1. Définition

    Représente un système d'exploitation

  2. Attributs

    nom : String

    type : String

    version : String

  3. Méthodes

    Méthodes get et set pour chaques attributs

    demarreMesure()

Processeur

  1. Définition

    Décrit les caractéristiques d'un processeur

  2. Attributs

    marque : String

    modele : String

    frequence : String

    charge : String

    chargeMoyenne : String

    index : int

  3. Méthodes

    Méthodes get et set pour chaques attributs

    demarreMesure()

    demarreMesureCharge()

Reseau

  1. Définition

    Repésente un réseau et ses sous réseau par une plage d'adresse IP

  2. Attributs

    nomReseau : String adresseIp1 : String adresseIp2 : String masqueSousReseau : String etat : String listeAdresseIP : Vector listeSousReseau : Vector

  3. Méthodes

    Méthodes get et set pour chaques attributs + methodes add pour chaque attribut de type "Vector"

    recordReseau() : boolean

    recupererReseau(String nomReseauS)

    demarrerScanReseau(String nomReseauS) : boolean

    decouverteReseau() : boolean

    arreterScanReseau(String nomReseau) : boolean

    enregistreAdresseIp() : int

    enregistreEquipement(Equipement equipement) : int

Routeur

  1. Définition

    Représente un routeur avec ces différents attributs

  2. Attributs

    tableRoutage : Vector

    listPort : int[]

  3. Méthodes

    Méthodes get et set pour chaques attributs

Serveur

  1. Définition

    Représente un seveur avec sa liste de service

  2. Attributs

    type: String

    listeService : Vector

  3. Méthodes

    Méthodes get et set pour chaques attributs

Service

  1. Définition

    Représente un service rendu par un équipement réseau

  2. Attributs

    nom : String

    port : int

  3. Méthodes

    Méthodes get et set pour chaques attributs

Switch

  1. Définition

    Représente un switch avec ces différents attributs

  2. Attributs

    listPort : int []

  3. Méthodes

    Méthodes get et set pour chaques attributs

Annexe B : Règle de nommage

Cette convention de nommage est inspirée de ce site pour respecter les conventions de nommage java : http://www.loribel.com/java/normes/nommage.html

Packages

  • le nom de package n'est constitué que de minuscules

  • Utiliser seulement [a-z], [0-9] et le point Ne pas utiliser de tiret '-', d'underscore '_', d'espace, ou d'autres caractères ($, *, accents, ...).

  • La convention de Sun indique que tout package doit avoir comme root un des packages suivants: com, edu, gov, mil, net, org ou les deux lettres identifiants un pays (ISO Standard 3166, 1981)

  • ex : fr.cnam.ipfred.element

Classes

  • La première lettre doit être en majuscule

  • Mélange de minuscules, majuscules avec la première lettre de chaque mot en majuscule

  • Donner des noms simples et descriptifs

  • N'utiliser que les lettres [a-z] et [A-Z] et [0-9] : Ne pas utiliser de tiret '-', d'underscore '_', ou d'autres caractères ($, *, accents, ...).

Interfaces

Même convention que pour les classes

Variables

  • La première lettre doit être en minuscule

  • Mélange de minuscules, majuscules avec la première lettre de chaque mot en majuscule

  • Donner des noms simples et descriptifs

  • Ne pas commencer les noms avec '$' ou '_' bien que ce soit possible

  • Variable d'une seule lettre (pour un usage local)

    • int : i, j, k, m, et n

    • char : c, d, et e

    • boolean : b

  • N'utiliser que les lettres [a-z] et [A-Z] et [0-9]

    Ne pas utiliser de tiret '-', d'underscore '_', ou d'autres caractères ($, *, accents, ...).

  • Pour les paramètres un préfixe a_<nom du pramètre> sera utilisé (non officiel)

  • Pour les variables locales à une méthode un préfixe l_<nom du pramètre> sera utilisé (non officiel)

Constantes

  • Les constantes doivent être composées seulement de majuscules

  • Séparer les mots par underscore '_'

  • N'utiliser que les lettres [A-Z], [0-9] et '_' : Ne pas utiliser de tiret '-' ou d'autres caractères ($, *, accents, ...).

  • Dans la mesure du possible les constantes seront regroupées dans des interfaces (non officiel)

Annexe C : Bibliographie

Ancien projet

UML

  • Documentation en français sur UML : http://uml.free.fr

  • Introduction à UML édition O'REILLY

  • Documentation AFPA (Pont de Claix) – Démarche d'analyse et de conception avec le langage UML basé sur : - le livre de Craig LARMAN « Applying UML and Patters » - Prentice Hall - Cours « Analyse et conception avec UML et les Patterns » de la société Valtech

Apache Forrest

XmlMindEditor

Poseidon

Programmation

  • Club d'entraide des développeurs francophones. Documentation, forum , bibilographie sur différents sujets relatifs à la programmation : http://www.developpez.com/

Java

  • Site de Sun où l'on peut trouver entre autres le jdk : http://java.sun.com/

  • [FAQ] fr.comp.lang.java - Questions les plus posées sur java

    contact : jmoliere@nerim.net (Jerome Moliere)

  • Divers sites selon les problèmes rencontrés : JDBC

    contact : jmoliere@nerim.net (Jerome Moliere)

PostGresql

  • Site de PostGres où l'on peut trouver l'executable de la version 8 et pour la mise en place d'un guide d'installation de la base de données :

    http://www.postgresql.org/

  • [FAQ] fr.comp.lang.java - Questions les plus posées sur java

    contact : jmoliere@nerim.net (Jerome Moliere)

  • Divers sites selon les problèmes rencontrés : JDBC

    contact : jmoliere@nerim.net (Jerome Moliere)