I
Introduction :
La vision de l’université qui offre en plus du support théorique, une base technique et pratique se renforce de plus en plus au sein de la communauté scientifique. Sur cet esprit on vous présente notre projet qui porte sur la réalisation d’une application qui gère une bibliothèque universitaire.
II
Objectifs :
Notre principal objectif était l’application concrète des notions théoriques acquises de Unified Modelisation Language (UML) dans un travail pratique. De ce fait on a saisies cette occasion pour nous essayer à la réalisation d’un travail professionnel et organisé, cela nous a mené à attribuer un nom a notre équipe ‘BEESOFT’ , et à la lui affilier un logo, de plus pour valoriser l’esprit de travail d’équipe, on a crée un groupe virtuel, pour que le membres de l’équipe interagisses et coopères entre eux et c’échanges les ides et la documentation, pour organise notre travail le contenue de nos réunions était transcrit dans des rapports qui nous on beaucoup servie en fin de projet.
III Choix du thème : Les membres de l‘équipe ce sont vue à attribuer à chaque un d’entre eux la responsabilité d’effectuer des recherche concernant chaque thème proposé par l’enseignant. Après concertation des membre de l’équipe, le choix de gestion de bibliothèque c’est imposé par :
La disponibilité des ressources.
Une connaissance non négligeable du domaine.
Facilité pour interagir avec le bibliothécaire.
Proximité de la bibliothèque pour économiser le temps de déplacement.
IV Choix de la méthode : Nous avons adopté la méthode 2tup, qui se base sur un modèle de cycle de vie en Y, d’après les critères suivant :
adaptabilité de la méthode aux spécificités de l’équipe (compétences, taille de l’équipe).
Disponibilité des ressources documentaires.
Exigence de la méthode sur la disponibilité et d’implication de l’équipe (estimé à 52%).
IV.1 LE PROCESSUS UNIFIÉ Le Processus Unifié (PU ou UP en anglais pour Unified Process) est une méthode de développement logiciel construite sur UML ; elle est itérative et incrémentale, centrée sur l’architecture, conduite par les cas d’utilisations.
BAHETH®
Gestion de Bibliothèque
2TUP signifie « 2 Track Unified Process» .C’est un processus qui répond aux caractéristiques du Processus Unifié. Le processus 2TUP apporte une réponse aux contraintes de changement continuel imposées aux systèmes d’information de l’entreprise. En ce sens, il renforce le contrôle sur les capacités d’évolution et de correction de tels systèmes. « 2 Track» signifie littéralement que le processus suit deux chemins. Il s’agit des « chemins fonctionnels » et « d’architecture technique », qui correspondent aux deux axes de changement imposés au système d’information.
1 IV.2 UN PROCESSUS DE MODELISATION AVEC UML Le processus 2TUP s’appuie sur UML tout au long du cycle de développement, car les différents diagrammes de ce dernier permettent de part leur facilité et clarté, de bien modéliser le système à chaque étape. « Unified Modeling Language » : UML se définit comme un langage de modélisation graphique et textuel destiné à comprendre et décrire des besoins, spécifier, concevoir des solutions et communiquer des points de vue. (Pitman, 2006) UML unifie à la fois les notations et les concepts orientés objet.il ne s’agit pas d’une simple notation, mais les concepts transmis par un diagramme ont une sémantique précise et sont porteurs de sens au même titre que les mots d’un langage, c’est pour ça qu’UML est présenté parfois comme une méthode alors qu’il ne l’est absolument pas. UML unifie également les notations nécessaires aux différentes activités d’un processus de développement et offre, par ce biais, le moyen d’établir le suivi des décisions prises, depuis la définition des besoins jusqu’au codage. (Roques, 2006)
Page 2 sur 30
BAHETH®
Gestion de Bibliothèque
V
Capture initiale des besoins
L’étude préliminaire (ou Pré-étude) est la toute première étape du processus 2TUP. Elle consiste à effectuer un premier repérage des besoins fonctionnels et opérationnels, en utilisant principalement le texte, ou diagrammes très simples. Elle prépare les activités plus formelles de capture des besoins fonctionnels et de capture des besoins techniques. V.1
Rédiger le cahier de charge préliminaire : V.1.i
Présentation du projet :
Ce projet consiste à informatiser le système d’information de la bibliothèque de la faculté des sciences de l’ingénieur afin d’offrir aux étudiants la possibilité de naviguer dans la base des ouvrages et de maîtriser le prêt des ouvrages. La durée de vie de cette application est estimée à 5 ans. V.1.ii
Grands choix techniques:
•
Modélisation en UML 2, méthode utilisée 2TUP.
•
BOUML pour la dessin des diagrammes.
•
SGBD utilisé : MySQL.
•
Plateforme utilisée : JAVA (IDE : NetBeans).
•
Adobe Photoshop pour les images et les icônes.
•
Architecture à deux niveaux :
V.1.iii Besoins fonctionnels:
V.1.iii.a Gestion des prêts : L’étudiant effectue la recherche d’un ouvrage. S’il est disponible l’étudiant soumet la cote à l’agent. Ce dernier vérifie les informations sur l’étudiant, met à jour l’état de disponibilité du livre et répond à la demande de l’étudiant. Cette fonctionnalité prend en compte le renouvellement des prêts et les pénalités de retard.
Page 3 sur 30
BAHETH®
Gestion de Bibliothèque
V.1.iii.b Mise à jour des ouvrages : Elle porte sur l’ajout des livres.
V.1.iii.c Gestion des dossiers : Elle porte sur la création, l’ajout ou la modification des dossiers étudiant.
V.1.iii.d Administrateur : L’application doit permettre à l’administrateur d’avoir la possibilité de créer des comptes utilisateurs et de gérer leurs droits d’accès. V.1.iv Besoins opérationnels: •
Sécurité : o
L’application 1 est publique (celle de l’étudiant).
o
L’application 2 possède deux niveaux de sécurité : Niveau agent
•
Niveau administrateur Volume des données :
Type de données
Volume unitaire (Ko)
Quantité
Volume total (Mo)
Livre
2048
50 000
100 000
Etudiant
20
30 000
600
Employé
20
50
1
Données statiques
100 601 Tableau de volume de données de la base
V.2
Identification des acteurs V.2.i
Etudiant :
C’est une personne exploitant la base. V.2.ii
Agent 1 :
C’est la personne effectuant les mises à jour des dossiers et des ouvrage. V.2.iii Agent 2 : Concerné par la création des dossiers / ouvrages V.2.iv Administrateur : Gère les dossiers employés.
Page 4 sur 30
BAHETH®
Gestion de Bibliothèque V.3
Identifier les messages V.3.i
Emis par le système :
V.3.i.a Résultats sur le livre : Fournit des informations sur le livre selon l’identifiant entré par l’étudiant.
V.3.i.b Confirmation : Fournit des informations sur l’existence d’un dossier.
V.3.i.c Résultat de vérification : Conformité aux règles. V.3.ii
Reçus par le système :
V.3.ii.a Formuler des recherches : Effectuer des recherches à partir de l’interface étudiant selon les critères qui définissent un ouvrage.
V.3.ii.b Ajouter/archiver un dossier / ouvrage : •
Inscrire les nouveaux étudiants.
•
Archiver les étudiants diplômés.
•
Ajout d’un nouveau ouvrage.
V.3.ii.c Vérifier dossier / ouvrage : •
Demande de vérification de conformité aux règles.
•
Vérification de la disponibilité d’un ouvrage.
V.3.ii.d Mise à jour des dossiers / ouvrages : •
Les modifications qui portent sur les réinscriptions et le prêt des ouvrages.
V.3.ii.e Modifier les accès : •
Ajout, suppression ou modification des droits d’accès.
Page 5 sur 30
BAHETH®
Gestion de Bibliothèque
V.4
Modéliser le contexte: V.4.i
Diagramme du contexte dynamique : Agent 2
Ajouter /archiver / modifier Confirmation
un dossier / ouvrage
: Agent 1
: Etudiant Résultats sur le livre
Résultat de vérification - Vérifier dossier / ouvrage - Mise à jour des dossiers / ouvrages
Recherche d’un livre
Baheth
Gérer les dossiers employé
: Administrateur
V.4.ii
Diagramme du contexte statique : Agent 2
: Agent 1
0..*
0..*
: Etudiant
0..*
Baheth
0..1
: Administrateur
Page 6 sur 30
BAHETH®
Gestion de Bibliothèque
VI Capture des besoins fonctionnels VI.1 Identifier les cas d’utilisations : VI.1.i Liste préliminaire de cas d’utilisations : Cas d’utilisation
Acteur principal
Acteurs
Message(s) émis / reçus par les acteurs
secondaires Chercher un ouvrage
Acquisition d’un
Etudiant
Agent 1
Emet : lancer une recherche
Agent 2
Reçu : résultats sur la recherche
Agent 2
Emet : ajouter/archiver/modifier un
ouvrage
ouvrage Reçu : confirmation
Gestion des dossiers
Agent 2
Emet : ajouter/modifier un dossier Reçu : confirmation
Gestion des Prêts
Agent 1
Emet : vérifier/mettre à jour d’un ouvrage Reçu : résultats
Gérer les dossiers
administrateur
Emet : ajouter /archiver un compte
employés
employé Reçu : confirmation
VI.1.ii Diagramme de cas d’utilisations
Page 7 sur 30
BAHETH®
Gestion de Bibliothèque VI.1.iii Décrire les cas d’utilisation :
VI.1.iii.aCas Un :
Sommaire d’identification : Titre : Chercher un ouvrage. But : Chercher un ouvrage. Acteurs : étudiant, agent 1, agent 2.
Description des enchaînements : Pré conditions : -
L’existence des ouvrages. Scénario nominal :
-
Taper les mots clés : L’étudiant saisie les mots clés (titre, auteur, cote, ISBN, éditeur)
-
Choisir le mode de recherche : L’étudiant peut chercher suivant deux modes : Le mode simple qui fait la recherche selon les mots clés saisis, Le mode avancé fait la recherche selon les options choisies (et, ou, sans, recherche dans les sommaires, recherche dans les résumés).
-
afficher les résultats : Après terminer la recherche le système affiche la liste des ouvrages trouvés (titre, auteur).
VI.1.iii.bCas Deux :
Sommaire d’identification : Titre : Acquisition d’un ouvrage But : ajouter et modifier un ouvrage. Acteur : agent 2.
Description des enchaînements : Pré conditions : -
L’agent 2 est authentifié.
-
L’existence de livre dans la base dans le cas de suppression.
-
L’existence de livre dans la base dans le cas de modification. Scénario nominal :
-
Ajouter un ouvrage :
Page 8 sur 30
BAHETH®
Gestion de Bibliothèque
L’agent 2 saisie les informations sur l’ouvrage (cote , ISBN , langue, titre , auteur, nombre d’exemplaire, nombre de pages , sommaire, photo , mots clés , résumé , disponible,emprunte) [Exception 1]. Enfin il sauvegarde les informations. -
Modifier un ouvrage : L’agent 2 peut modifier les informations suivantes : Nombre d’exemplaires. Exceptions : Exception 1 : Existence d’un ouvrage. Dans le cas de l’existence de l’ouvrage qu’on veut ajouter (ISBN identique), on passe au mode modification.
VI.1.iii.cCas Trois : Sommaire d’identification : Titre : Gestion des dossiers (inscriptions). But : ajouter, archiver et modifier un dossier d’étudiant. Acteur : agent 2. Description des enchaînements : Pré conditions : -
L’agent 2 est authentifié.
-
L’existence du dossier dans la base dans le cas d’archivage, modification ou mise à jour. Scénario nominal :
-
Ajouter un dossier : L’agent 2 saisie les informations suivantes : numéro carte, nom, prénom, date de naissance, adresse, E-mail, année courante, filière, photo. [Exception1].
-
Archiver un dossier : L’agent 2 entre le n° de la carte d’étudiant à archiver, une recherche s’est faite automatiquement pour trouver l’étudiant, l’agent 2 appuie sur le bouton Archiver, une fenêtre de confirmation s’affiche, l’agent confirme ou non l’archivage.
-
Modifier un dossier : L’agent 2 peut modifier les informations suivantes : l’année courante, l’adresse, n° téléphone, filière.
-
Vérifier un dossier : Après que l’étudiant ramène la cote et le titre à l’agent 1, ce dernier vérifie l’existence du dossier.[ Exception 1]
-
Mettre à jour un dossier : Page 9 sur 30
BAHETH®
Gestion de Bibliothèque
Une fois l’ouvrage est emprunté, les opérations suivantes seront apportées : Les ouvrages empruntés, les délais pour retourner ces ouvrages et le nombre d’exemplaires sortants. Exceptions : Exception 1 :l’existence du dossier. Dans le cas de l’existence d’un dossier qu’on veut ajouter (n° de la carte d’étudiant identique) une fenêtre apparaît indiquant que le dossier existe déjà.
VI.1.iii.dCas Quatre : Sommaire d’identification : Titre : Gestion des Prêts But : vérifier ou mettre à jour l’état de disponibilité d’un ouvrage. Acteurs : agent 1. Description des enchaînements : Pré conditions : -
L’agent 1 est authentifié.
-
L’étudiant est inscrit. Scénario nominal :
-
Vérifier un ouvrage : Après que l’étudiant ramène la cote et le titre à l’agent 1, ce dernier vérifie la disponibilité de l’ouvrage.
-
Mettre à jour un ouvrage : Une fois l’ouvrage est emprunté ou retourné par un étudiant, les opérations suivantes seront apportées : nombre d’exemplaire et ouvrages empruntés.
VI.1.iii.eCas Cinq: Sommaire d’identification : Titre : Gérer les dossiers employés But : Accorder les droits d’accès. Acteur : Administrateur.
Page 10 sur 30
BAHETH®
Gestion de Bibliothèque Description des enchaînements : Pré conditions : -
L’administrateur est authentifié. Scénario nominal :
-
Créer, supprimer ou modifier une session : L’administrateur a la possibilité de créer, modifier ou supprimer une session.
-
Modifier les droits d’accès : L’administrateur a la possibilité d’ajouter, modifier ou supprimer un droit d’accès. VI.1.iv Diagrammes de Séquences :
VI.1.iv.aCas Un :
Page 11 sur 30
BAHETH®
Gestion de Bibliothèque
VI.1.iv.bCas Deux :
VI.1.iv.cCas Trois :
Page 12 sur 30
BAHETH®
Gestion de Bibliothèque
VI.1.iv.dCas Quatre :
VI.1.iv.eCas Cinq :
Page 13 sur 30
BAHETH®
Gestion de Bibliothèque VI.1.v Diagramme de classes participantes :
VI.1.vi Diagramme de classes affiné : Après plusieurs itérations on a obtenu le diagramme de classes affiné :
Page 14 sur 30
BAHETH®
Gestion de Bibliothèque
VII ANALYSE VII.1 Découpage en catégories Cette phase marque le démarrage de l’analyse objet du système à réaliser. Elle utilise la notion de package pour définir des catégories de classes d’analyse et découper le modèle UML en blocs logiques les plus indépendants possibles. Le découpage en catégories constitue la première activité de l’étape d’analyse et elle va s’affiner de manière itérative au cours du développement du projet. Elle se situe sur la branche gauche du cycle en Y et succède à la capture des besoins fonctionnels. Une catégorie consiste en un regroupement logique de classes à forte cohérence interne et faible couplage externe. Le découpage en catégories de notre projet a donné le résultat suivant :
Découpage en catégories
Page 15 sur 30
BAHETH®
Gestion de Bibliothèque VII.2 Diagramme de packages d’analyse
Ce diagramme va représenter les différentes dépendances entre les packages d’analyse
Diagramme de package d’analyse
Cette phase a été utilisée par le chef de projet pour distribuer le travail de développement entre les membres de l’équipe. VII.3 Développement du modèle statique : Personne # Nom : String ; # Prenom : String ; # Date_de_naissance : String ; # Adresse : String ; # e-mail : String ; + Personne() : void ; + Enregistrer() : void ;
Pret extends JPanel - Date : String ; + Pret() : void ; + Ajouter() : void ; + Supprimer() : void ; + Sanctionner() : void ;
Page 16 sur 30
BAHETH®
Gestion de Bibliothèque
Etudiant extends Personne - Num_carte : String ; - Annee_courante : String ; - Filière : String ; + Etudiant() : void ; + Existe(Num_carte) : bool ; + Chercher(Num_carte) : bool ; + Enregistrer() : void ; + Modifier() : void ; + Archiver() : void ;
Employe extends Personne - Num_employe : String ; - Mot_passe : String ; - Droits : String ; - Num_tel : String ; - Etat_civile : String ; + Employe() : void ; + Existe(Num_employe) : bool ; + Chercher(Num_employe) : bool ; + Enregistrer() : void ; + Modifier() : void ; + Archiver() : void ;
Pret extends JPanel - Date : String ; + Pret() : void ; + Ajouter() : void ; + Supprimer() : void ; + Sanctionner() : void ;
Administration extends JPanel
+ Administration() : void ; + Ajouter_compte() : void ; + Modifier_compte() : void ; + Enregistrer_compte() : void ; + Archiver_compte() : void ;
Page 17 sur 30
BAHETH®
Gestion de Bibliothèque
Ouvrage - ISBN : String ; - Cote : String ; - Titre : String ; - Auteur : String ; - Editeur : String ; - Langue : String ; - Format : String ; - Nbr_page : int ; - Mots_cles : String; - Resume : String ; - Nbr_exemplaire : int ; - Disponible : int ; - Emprunte : int ; + Ouvrage() : void ; + Existe(Cote) : bool ; + Chercher(Cote) : bool ; + Disponible(Cote) : bool ; + Enregistrer() : void ; + Modifier() : void ;
Inscription extends JPanel
+ Inscription() : void ; + Inscrire() : void ; + Reinscrire() : void ; + Enregistrer() : void ; + Archiver() : void ;
Acquisition extends JPanel - Sommaire : String ; - Couvert : String ; + Acquisition() : void ; + Ajouter_ouvrage() : void ; + Modifier_ouvrage() : void ; + Enregistrer_ouvrage() : void ;
Page 18 sur 30
BAHETH®
Gestion de Bibliothèque
Recherche extends JPanel - Cote : String ; - Titre : String ; - Auteur : String ; - Mot_cle : String ; - Editeur : String ; - ET : bool ; - OU : bool ; - SANS : bool ; - Chercher_resume : bool ; - Chercher_sommaire : bool ; + Recherche() : void ; + Chercher() : ResultSet ;
VII.4 Développement du modèle dynamique : VII.4.i Acquisition :
Scénario « Ajouter un ouvrage »
Page 19 sur 30
BAHETH®
Gestion de Bibliothèque
Scénario « Modifier un ouvrage »
Page 20 sur 30
BAHETH®
Gestion de Bibliothèque
VII.4.ii Prêt
Scénario « Prêter un ouvrage »
Page 21 sur 30
BAHETH®
Gestion de Bibliothèque
Scénario « Rendre un ouvrage »
Page 22 sur 30
BAHETH®
Gestion de Bibliothèque VII.4.iii Inscription
Scénario « Inscrire un étudiant »
Page 23 sur 30
BAHETH®
Gestion de Bibliothèque
Scénario « Réinscrire un étudiant »
Page 24 sur 30
BAHETH®
Gestion de Bibliothèque
Scénario « Archiver dossier étudiant »
VII.4.iv Administration
Scénario « Créer un compte »
Page 25 sur 30
BAHETH®
Gestion de Bibliothèque
Scénario « Modifier un compte »
Page 26 sur 30
BAHETH®
Gestion de Bibliothèque Scénario « Archiver un compte »
VII.4.v Recherche
Scénario « Chercher un ouvrage »
VIII CONCEPTION La conception préliminaire est l’étape où s’effectue la fusion des études fonctionnelles et techniques. La conception détaillée qui vient juste après est une activité qui s’inscrit dans l’organisation définie par la conception préliminaire. Le modèle logique y est particulièrement important dans la mesure où c’est dans cette étape qu’on génère le plus grand nombre d’informations. Il est ainsi possible de confier les catégories à des personnes différentes, qui pourront travailler indépendamment les unes des autres. Les concepteurs dans cette phase construisent les classes, les interfaces, les tables et les méthodes qui vont donner une image « prête à coder » de la solution.
Page 27 sur 30
BAHETH®
Gestion de Bibliothèque
IX CODAGE
Packages du projet
Interface utilisateur
Page 28 sur 30
BAHETH®
Gestion de Bibliothèque
Interface du prêt
X
Conclusion
Nous soulignons l’importance du choix de la méthode avant l’entame de la réalisation du projet, cela facilite la tache de développement et permet la réalisation structurée et organisée du projet. Sur le plan personnel nous estimons avoir aboutie à concrétiser la majorité des objectifs fixés à l’entame de notre projet. .
Page 29 sur 30
BAHETH®
Gestion de Bibliothèque
Bibliographie Ouvrages : [ EYROLLES 2007 ] :
UML 2 en action de l’analyse des besoins à la conception J2EE. Pascal Roques, Frank Vallée.
[ Edition PAGES BLEU 2007 ] :
Outils de genie logiciel UML 2.
[ DUNOD 2000 ] :
Penser objet avec UML et JAVA Loi Michel
Ouvrages électroniques : [ Developpez.com 2006 ] :
Développons en JAVA. Jean Michel Doudoux.
[ Developpez.com 2009 ] :
FAQ JAVA. Equipe JAVA.
[ O’Reilly 1998 ] :
JAVA Swing. Robert Eckstein, Mark Loy & Dave Wood.
[ SUN microsystems 2009 ] :
MySQL 5.0 Reference Manual.
Site web : www.Developpez.com www.Edition-eyrolles.com Thèse : [ Ingeniorat 2007 ]
Suivie des enseignements du LMD par application de la méthode 2TUP
Page 30 sur 30