Professional Documents
Culture Documents
Je ddie ce mmoire mon pre et ma mre pour leur soutien tout au long de mes tudes Un coucou Selma et Sofiane mon grand pre Ba tous mes oncles, tantes, cousins et cousines : nabil, djamil, zakia, dounia, nayla, amel et salim, malik, lamia, arselane, chakib, farid, karim, lina, rachida, mustafa, malik 2, ines, salim, linda A tout mes amis et amies et tous ceux qui mont encourag A la mmoire de mes oncles Lotfi et Amine, que leurs mes reposent en paix Bassim
Je ddie ce mmoire A ma chre mre pour son soutien tout au long de mes tudes A mes surs et frres : nadjia, mohamed, toufik, choumicha, chahrazed ainsi qu mes belles surs et beaux frres : amine, hicham, khalil, sihem, lela sans oublier mes nices et mes neveux : chahinez, wafaa, farah, walid, sarah, ryadh, marouane et mouhcine A tous mes amis et toute mes amies et tous ceux qui mont encourag Zaki
Page 2
Remerciements
On remercie Monsieur Ziani Cherif Salim pour laide quil nous a apport Aussi, on remercie Hakim (Kimz) pour laide quil nous a apport afin de rendre notre rapport meilleur, et Zakia et Nadia pour le temps quils ont pass corriger le mmoire
Page 3
Rsum :
Nous proposons dans le cadre de ce projet de fin dtudes, dappliquer la mthode 2TUP au problme de la gestion des enseignements LMD luniversit de Tlemcen. La gestion dun cycle de vie de logiciel requit un grand sens de la rigueur et de ladaptation aux changements continuels imposs au monde de lentreprise. Cest pour a que nous avons choisi daxer notre travail sur une mthode de dveloppement qui est ne de travaux pousss vers la standardisation et la flexibilit, et ce pour rpondre aux contraintes actuelles de gestion des dveloppements. Le mmoire sera dcoup en 5 grands chapitres : 1. Introduction : nous parlerons dans ce chapitre des objectifs que nous voudrions atteindre, ainsi quun aperu des diffrentes mthodes existantes. 2. La mthode 2TUP : ce chapitre contient les dfinitions des diffrents concepts utiliss dans ce document. 3. Conception du logiciel : cest ici que nous allons appliquer la mthode 2TUP au problme de la gestion des enseignements en suivant les phases suivantes : ltude prliminaire, capture des besoins fonctionnels, analyse, conception et codage. 4. Bilan de la mthode 2TUP : nous allons donner un bref aperu de ce que pourrait tre un ajout dun nouveau besoin fonctionnel. 5. Conclusion gnrale
Page 4
LA METHODE 2TUP............................................................................................................................................... 10 1. 2. 3. 4. DEFINITION DUN PROCESSUS DE DEVELOPPEMENT LOGICIEL .............................................................................. 11 LE PROCESSUS UNIFI ...................................................................................................................................... 11 LE PROCESSUS 2TUP ......................................................................................................................................... 12 UN PROCESSUS DE MODELISATION AVEC UML ...................................................................................................... 14
CONCEPTION DU LOGICIEL ................................................................................................................................... 16 1. ETUDE PRLIMINAIRE ................................................................................................................................... 16 1.1. Prsentation du projet raliser ............................................................................................................ 16 1.2. Recueil des besoins fonctionnels ............................................................................................................ 16 1.3. Choix techniques..................................................................................................................................... 18 1.4. Identification des acteurs ....................................................................................................................... 19 1.5. Identification des messages ................................................................................................................... 20 1.6. Modlisation du contexte ....................................................................................................................... 21 CAPTURE DES BESOINS FONCTIONNELS ........................................................................................................... 22 2.1. Dterminer les cas dutilisations............................................................................................................. 22 2.2. Description prliminaire des cas dutilisations ....................................................................................... 25 2.3. Description dtaille des cas dutilisations ............................................................................................. 26 2.4. Structuration des cas dutilisations dans des packages ......................................................................... 43 2.5. Identification des classes candidates ..................................................................................................... 44 ANALYSE ........................................................................................................................................................ 50 3.1. Dcoupage en catgories ....................................................................................................................... 50 3.2. Dpendances entre catgories ............................................................................................................... 51 3.3. Diagramme de packages danalyse ........................................................................................................ 54 3.4. Dveloppement du modle statique ...................................................................................................... 55 3.5. Dveloppement du modle dynamique .................................................................................................. 62 CONCEPTION ................................................................................................................................................. 79 4.1. Architecture de lapplication .................................................................................................................. 79 4.2. Les Design Patterns ................................................................................................................................ 80 CODAGE .......................................................................................................................................................... 89 5.1. La gnration de code avec NetBeans 5.5: ............................................................................................ 89 5.2. Lapplication JStudent ....................................................................................................................... 89
2.
3.
4.
5.
Page 5
BIBLIOGRAPHIE ...................................................................................................................................................104 ANNEXE : .............................................................................................................................................................105 LAPPROCHE ORIENTEE OBJET ............................................................................................................................... 105 UML ....................................................................................................................................................................... 106 LE LANGAGE JAVA .................................................................................................................................................... 108 DIFFERENCE ENTRE LARCHITECTURE 3-TIERS ET LE MODELE MVC ........................................................................... 109
Page 6
Introduction
1. LE CONTEXTE DE TRAVAIL
2. OBJECTIFS
Notre but est dappliquer une mthode rigoureuse de conduite dun projet rel. Le
projet en question concerne la gestion des enseignements. Ce projet a pour objectif principal de proposer une solution un problme concret, et ceci en partant dune dfinition des besoins. Nous esprons travers celui-ci, dmontrer limportance de lapplication dune mthodologie de dveloppement, et aussi permettre par la suite que ce produit puisse tre volutif et facilement maintenable par des intervenants tiers.
Page 7
Conduite de projet
Au dbut, le cycle en cascade (ex : le cycle en V) tait trs utilis. Mais on a vite constat son incapacit sadapter aux diffrents changements. Une mthode semi-itrative est apparut (RAD) pour pallier aux carences de ce dernier. Litratif sest ensuite impos, parce quil rduit la complexit de ralisation des phases, en travaillant par approches successives et incrmentales. Une mthode fortement axe sur litratif et le modle UML est alors apparut, il sagit de UP (Unified Process). Cette mthode comme son nom lindique, a t le fruit de travail de plusieurs personnes voulants unifier les diffrentes mthodes objets existantes ce moment comme Booch, OMT et OOSE. On constate aujourdhui, lmergence dune nouvelle approche : les mthodes agiles (Agile Modeling). Cest des mthodes itratives planification souple qui leur permettent de sadapter la fois aux changements du contexte et de spcifications du projet. (Chromatic, 2005)
Page 8
De nos jours, une des tendances les plus en vue et qui concerne tout les secteurs
de dveloppement, est linformatisation. Depuis lapparition de linformatique et son introduction dans le monde conomique, les entreprises et entits publiques aspirent optimiser et rendre fiable la gestion de leur structure interne. Luniversit de Tlemcen possde quelques milliers dtudiants quil est difficile de grer en continu. Avec la mise en place rcente du systme LMD, la situation sest davantage complique et la tche de gestion est devenue plus complexe. Le projet que nous proposons nous permettra de faciliter la gestion des enseignements, travers la conception dun logiciel avec une mthode que nous allons prsenter.
Page 9
La mthode 2TUP
Devant le nombre de mthodes disponibles, le choix parmi elles devient difficile,
beaucoup de questions peuvent se poser un chef de projet lors dun dmarrage de projet : Comment vais-je organiser les quipes de dveloppement ; Quelles tches attribuer qui ; Quel temps faudrait-il pour livrer le produit ; Comment faire participer le client au dveloppement afin de capter les besoins de celui-ci ; Comment viter des drives et de mauvaises estimations qui vont allonger les cots et le temps de dveloppement. Comment vais-je procder pour que le produit soit volutif et facilement maintenable. Nous pouvons citer ce propos les mthodes de dveloppement objet suivantes : 2TUP, RUP, XP, AUP et OpenUP. Notre choix sest port vers la mthode 2TUP, du fait de son approche nouvelle, originale. Notre projet est bas sur un processus de dveloppement bien dfini qui va de la dtermination des besoins fonctionnels attendus du systme jusqu la conception et le codage final. Ce processus se base lui-mme sur le Processus Unifi (Unified Process) qui est devenu un standard gnral runissant les meilleures pratiques de dveloppement. Cette mthode ne se base aucunement sur un processus linaire mais bien, sur un dveloppement itratif et incrmental. Nous allons dabord dfinir les diffrents concepts qui vont tre utiliss dans ce document.
Page 10
2. LE PROCESSUS UNIFI
Le Processus Unifi (PU ou UP en anglais pour Unified Process) est une mthode
de dveloppement logiciel construite sur UML ; elle est itrative et incrmentale, centre sur larchitecture, conduite par les cas dutilisation et pilote par les risques. itrative et incrmentale : la mthode est itrative dans le sens o elle propose de faire des itrations lors de ses diffrentes phases, ceci garantit que le modle construit chaque phase ou tape soit affin et amlior. Chaque itration peut servir aussi ajouter de nouveaux incrments. conduite par les cas dutilisation : elle est oriente utilisateur pour rpondre aux besoins de celui-ci. centre sur larchitecture : les modles dfinit tout au long du processus de dveloppement vont contribuer tablir une architecture cohrente et solide. pilote par les risques : en dfinissant des priorits pour chaque fonctionnalit, on peut minimiser les risques dchec du projet. La gestion dun tel processus est organise daprs les 4 phases suivantes : 1. Pretude(Inception) : cest ici quon value la valeur ajoute du dveloppement et la capacit technique le raliser (tude de faisabilit). 2. Elaboration : sert confirmer ladquation du systme aux besoins des utilisateurs et livrer larchitecture de base.
Page 11
3. Construction : sert livrer progressivement toutes les fonctions du systme. 4. Transition : dployer le systme sur des sites oprationnels. Chaque phase est elle-mme dcompose squentiellement en itrations limites dans le temps (entre 2 et 4 semaines). Le rsultat de chacune delles est un systme test, intgr et excutable. Lapproche itrative est fonde sur la croissance et l'affinement successifs dun systme par le biais ditrations multiples. Le systme crot avec le temps de faon incrmentale, itration par itration, et cest pourquoi cette mthode porte galement le nom de dveloppement itratif et incrmental. Il sagit l du principe le plus important du Processus Unifi.
Ces activits de dveloppement sont dfinies par 6 disciplines fondamentales qui dcrivent la capture des besoins, la modlisation mtier, lanalyse et la conception, limplmentation, le test et le dploiement. Notons que ces diffrentes tapes (ou disciplines) peuvent se drouler travers plusieurs phases. Le processus unifi doit donc tre compris comme une trame commune des meilleures pratiques de dveloppement.
3. LE PROCESSUS 2TUP
2TUP
signifie 2 Track Unified Process .Cest un processus qui rpond aux caractristiques du Processus Unifi. Le processus 2TUP apporte une rponse aux contraintes de changement continuel imposes aux systmes dinformation de lentreprise. En ce sens, il renforce le contrle sur les capacits dvolution et de correction de tels systmes. 2 Track signifie littralement que le processus suit deux chemins. Il sagit des chemins fonctionnels et darchitecture technique , qui correspondent aux deux axes de changement imposs au systme dinformation.
Page 12
La branche gauche (fonctionnelle) : capitalise la connaissance du mtier de lentreprise. Elle constitue gnralement un investissement pour le moyen et le long terme. Les fonctions du systme dinformation sont en effet indpendantes des technologies utilises. Cette branche comporte les tapes suivantes : La capture des besoins fonctionnels, qui produit un modle des besoins focalis sur le mtier des utilisateurs. Lanalyse.
La branche droite (architecture technique) : capitalise un savoir-faire technique. Elle constitue un investissement pour le court et moyen terme. Les techniques dveloppes pour le systme peuvent ltre en effet indpendamment des fonctions raliser. Cette branche comporte les tapes suivantes : La capture des besoins techniques. La conception gnrique. La branche du milieu : lissue des volutions du modle fonctionnel et de larchitecture technique, la ralisation du systme consiste fusionner les rsultats des 2 branches. Cette fusion conduit lobtention dun processus en forme de Y. Cette branche comporte les tapes suivantes : La conception prliminaire. La conception dtaille. Le codage. Lintgration.
Page 13
Page 14
UML unifie galement les notations ncessaires aux diffrentes activits dun processus de dveloppement et offre, par ce biais, le moyen dtablir le suivi des dcisions prises, depuis la dfinition des besoins jusquau codage. (Roques, 2006) Voici une prsentation rapide des diffrents diagrammes UML qui vont tre utiliss tout au long du projet : Le diagramme des cas dutilisation : reprsente la structure des fonctionnalits ncessaires aux utilisateurs du systme. Il est normalement utilis lors des tapes de capture des besoins fonctionnels et techniques. Le diagramme dactivits : reprsente les rgles denchanement des activits et actions dans le systme. Il peut tre assimil comme un algorithme mais schmatis. Le diagramme de packages : prsent depuis UML 2.0, ce diagramme modlise des catgories cohrentes entre elles, pour un souci de partage des rles. Correspond ltape de modlisation des diffrents scnarios dun cas dutilisation. Le diagramme de classes : srement lun des diagrammes les plus importants dans un dveloppement orient objet. Sur la branche fonctionnelle, ce diagramme est prvu pour dvelopper la structure des entits manipules par les utilisateurs. En conception, le diagramme de classes reprsente la structure dun code orient objet. Le diagramme de squence : reprsente les changes de messages entre objets, dans le cadre dun fonctionnement particulier du systme. Le diagramme dtats : reprsente le cycle de vie dun objet. Il spcifie les tats possibles dune classe et leur enchainement. Ce diagramme est utilis lors des tapes danalyse et de conception.
Page 15
Conception du logiciel
1. ETUDE PRLIMINAIRE Ltude prliminaire (ou Pretude) est la toute premire tape du processus 2TUP. Elle consiste effectuer un premier reprage des besoins fonctionnels et oprationnels, en utilisant principalement le texte, ou diagrammes trs simples. Elle prpare les activits plus formelles de capture des besoins fonctionnels et de capture techniques.
1.1. Prsentation du projet raliser
Cest un logiciel qui doit grer le cursus universitaire des tudiants dans le systme LMD en gnral. Il doit permettre de suivre les tudiants depuis leur inscription luniversit jusqu lobtention du diplme de Licence.
1.2.
Nous avons effectu plusieurs recherches pour identifier au mieux les besoins de lapplication, et ceci afin de rpondre aux attentes des utilisateurs. Nous sommes alls chercher les informations au sein de ladministration de la Facult. Cette phase correspond une recherche sur le terrain pour bien dfinir le cadre de notre systme. Nous nous sommes aussi procur quelques documents, qui expliquent le mode de fonctionnement du systme LMD, et a nous a permis dtablir le cahier des charges prliminaire suivant :
Page 16
Une universit se compose de plusieurs dpartements (informatique, physique, maths, chimie ), dont chacun est dirig par un chef de dpartement. Chaque dpartement voit son parcours de formation structur en 3 paliers : Le premier palier doit tre compos au plus de 2 semestres. Le deuxime palier dau moins 2 semestres. Le troisime palier est une tape de spcialisation.
La formation en vue de lobtention du diplme de licence est rpartie en 6 semestres, la diffrence dune formation classique. Les parcours sont organiss en units denseignements(UE) articules entre elles. Une UE est constitue dune ou de plusieurs matires dispenss par toute forme denseignements (Cours, Travaux Dirigs, Travaux Pratiques, projets). Chaque UE et chacune de ses matires constitutives sont affectes dune valeur en crdits. La valeur totale de ces crdits est fixe 30 par semestre. Une UE est considre comme acquise si la moyenne de lensemble des notes obtenues dans les matires qui la constituent, affectes de leurs coefficients respectifs, est gale ou suprieur 10. Pour chaque semestre denseignement, deux sessions de contrle sont organises.la deuxime session est une session de rattrapage. Le semestre est acquis pour tout tudiant ayant obtenu lensemble des UEs qui le composent. Le semestre peut tre galement acquis par compensation entres les diffrentes UEs. La moyenne gnrale est calcule sur la base des moyennes obtenues aux UEs composant le semestre pondres par leurs coefficients respectifs. Le semestre est alors acquis si cette moyenne est gale ou suprieure 10. En cas dchec la premire session, ltudiant se prsente aux examens de rattrapage pour les UEs non acquises. Ltudiant garde le bnfice des matires de lUE pour lesquelles il a obtenu une moyenne gale ou suprieure 10.
Progression : _____________________________________________________________________
La progression du premier au second semestre dune mme anne universitaire est de droit pour tout tudiant inscrit dans le mme parcours.
Page 17
La progression de la premire la deuxime anne de la Licence, est de droit si ltudiant a acquis les deux premiers semestres du cursus de formation. Cependant, elle peut tre autorise pour tout tudiant ayant acquis au moins 30 crdits. La progression de la deuxime la troisime anne est de droit si ltudiant a acquis les 4 premiers semestres du cursus de formation. Mais elle peut tre autorise si ltudiant a valid 80% des crdits relatifs aux 4 premiers semestres, et si ltudiant a valid aussi les units denseignements fondamentales. Lacquisition du diplme de Licence est effective si ltudiant a valid les 6 semestres du cursus de formation.
Gestion des promotions : _____________________________________________________________________
Pour chaque dpartement et chaque anne dtudes, une promotion doit tre cre. La promotion contient un certain nombre dtudiants encadrs par des enseignants.
Gestion des tudiants : _____________________________________________________________________
Un tudiant ds son inscription luniversit, peut tre affect une promotion selon la filire quil a choisie.
1.3.
Choix techniques
Voici les choix techniques qui ont t adopts pour le projet : La modlisation avec UML. Adoption dune architecture 3 couches. Utilisation du langage Java. Omission dune base de donnes au profit de la srialisation (Java). Utilisation des Design Patterns (MVC, Etat, Faade ). Utilisation de lEDI NetBeans et de son plugin UML.
Remarque : la branche droite qui dsigne ltude de larchitecture technique va tre ignore, du fait du manque de temps notre disposition et de la complexit de la chose.
Page 18
1.4.
Nous allons maintenant numrer les acteurs susceptibles dinteragir avec le systme, mais dabord nous donnons une dfinition de ce que cest un acteur. Dfinition : un acteur reprsente l'abstraction d'un rle jou par des entits externes (utilisateur, dispositif matriel ou autre systme) qui interagissent directement avec le systme tudi. Les acteurs du systme identifis dans un premier temps sont :
Etudiant : Un tudiant peut consulter ses relevs de notes, son emploi du
temps.
Chef de dpartement : le chef de dpartement tablit le cursus de son
dpartement, il cre les promotions et suit leur volution. Il choisit les enseignants responsables des cours.
Scolarit : la scolarit introduit les notes des tudiants. Enseignant : lenseignant affecte les notes des tudiants de son module. Administrateur : cre les profils utilisateurs et attribue les droits daccs.
Page 19
1.5.
On va dtailler les diffrents messages changs entre le systme et lextrieur. Dfinition : un message reprsente la spcification dune communication unidirectionnelle entre les objets qui transporte de linformation avec lintention de dclencher une activit chez le rcepteur.
Le systme met les messages suivants : Les relevs de notes des tudiants. Ltat davancement dune promotion. Le cursus dun tudiant. Les emplois du temps dune promotion. Les modules dun dpartement. Les fiches des tudiants. Les fiches des enseignants. Lorganisation dun dpartement. La liste des tudiants passs et recals la fin dun semestre. La liste des tudiants ayant acquis leur diplme.
Le systme reoit les messages suivants : Les crations, modifications, suppressions de fiches des tudiants/enseignants. Les crations, modifications, de promotions. Le lancement/bouclage dune promotion. Laffectation des tudiants/enseignants une promotion. Les ajouts, suppressions, modifications des filires pour un dpartement. Les crations, modifications, suppressions des emplois du temps dune promotion. Les crations, modifications, suppressions de profils utilisateurs. Les crations, modifications de spcialits pour un dpartement.
Page 20
1.6.
Modlisation du contexte
A partir des informations obtenues lors des deux prcdentes tapes, nous allons modliser le contexte de notre application. Ceci va nous permettre dans un premier temps, de dfinir le rle de chaque acteur dans le systme :
Utilisateurs finaux
Description des besoins fonctionnels Lapplication doit permettre au chef de dpartement de : Sauthentifier Crer son dpartement Crer une promotion Crer les spcialits/options Crer les UE et les Modules Suivre les promotions en cours Affecter les tudiants/enseignants une promotion Lapplication doit permettre la Scolarit de : Sauthentifier Crer/modifier les fiches des tudiants Affecter les notes des tudiants Lapplication doit permettre lenseignant de : Sauthentifier Affecter les notes des tudiants pour son module Lapplication doit permettre ltudiant de : Sauthentifier Consulter son relev de notes Consulter son emploi du temps Consulter ses modules en dettes Lapplication doit permettre ladministrateur de : Sauthentifier Crer les profils utilisateurs Donner des droits daccs
Chef de dpartement
Scolarit
Enseignant
Etudiant
Administrateur
Page 21
2. CAPTURE DES BESOINS FONCTIONNELS Cette phase reprsente un point de vue fonctionnel de larchitecture systme. Par
le biais des cas dutilisation, nous serons en contact permanent avec les acteurs du systme en vue de dfinir les limites de celui-ci, et ainsi viter de trop sloigner des besoins rels de lutilisateur final.
2.1.
Dfinition : un cas dutilisation reprsente un ensemble de squences dactions ralises par le systme et produisant un rsultat observable intressant pour un acteur particulier. Un cas dutilisation modlise un service rendu par le systme. Il exprime les interactions acteurs/systme et apporte une valeur ajoute notable lacteur concern.
1 2
Peut tre tlcharg ladresse suivante : http://argouml.tigris.org/ Peut tre tlcharg ladresse suivante : http://bouml.free.fr/ 3 Le site de NetBeans : http://www.netbeans.org/
Page 22
Messages mis/reus par les acteurs Cas dutilisation Acteur principal, acteurs secondaires
Emet : Crer son dpartement, Crer/modifier les spcialits/options, Crer les UE et les Modules.
Organiser un dpartement
Chef de dpartement
Chef de dpartement
Emet : Crer une promotion, Affecter les tudiants une promotion Emet : Commencer la promotion, slectionner les enseignants/semestre, commencer/terminer un semestre, passer au prochain semestre, orienter les tudiants vers les spcialits, Reoit : liste des tudiants endetts, Liste des tudiants non endetts. Emet : Crer/modifier les fiches des tudiants. Emet : Affecter les notes aux tudiants, grer les rattrapages, grer les modules en dettes. Reoit : relev de notes
Chef de dpartement
Scolarit
Scolarit, Enseignant
Etudiant
Page 23
Grer les emplois du temps Consulter les emplois du temps Grer les profils
Emet : Crer/modifier les emplois du temps Reoit : consulter les emplois du temps. Emet : Cration, modification, suppression de profils.
Administrateur
Remarque : Du fait quelle ne rentre pas dans le cadre de notre projet, la gestion des salles a t dlibrment omise. Remarque 2: Ce premier tableau n'est pas dfinitif, un processus de dveloppement avec UML est itratif, il se peut qu'il change au fur et mesure de l'avancement du projet.
Page 24
2.2.
Voici une description prliminaire des cas dutilisations numrs prcdemment : Organiser les dpartements :
Intention : grer les dpartements. Actions : crer un nouveau domaine, une nouvelle spcialit, une nouvelle
annuler la promotion.
Page 25
2.3.
Nous allons maintenant dtailler chaque cas dutilisation qui doit faire lobjet dune dfinition a priori qui dcrit lintention de lacteur lorsquil utilise le systme et les squences dactions principales quil est susceptible deffectuer. Ces dfinitions servent fixer les ides et nont pas pour but de spcifier un fonctionnement complet et irrversible. Remarque : les descriptions vont tre organises de la faon suivante : Un sommaire didentification : va rsumer les proprits du cas dutilisation. Une description dtaille : des Prconditions au dclenchement du cas dutilisation doivent tre spcifies, un scnario nominal dcrivant celui-ci additionn des scnarios alternatifs et dexceptions. Les diagrammes (optionnelle): plusieurs diagrammes vont apparaitre (mais pas ncessairement) pour apporter une comprhension additive au cas dutilisation.
Page 26
Prconditions :
Le chef de dpartement est authentifi.
Scnario nominal :
Ce cas dutilisation commence lorsque le chef de dpartement demande au systme de crer un nouveau domaine. Enchanement (a) : Crer un domaine en construction
Le chef de dpartement choisit un nom pour le dpartement.
Page 27
Enchanements alternatifs :
Enchanement (e) : crer les UE
Le chef de dpartement cre une UE, et choisit le type de cette UE (fondamentale, complmentaire, mthodologique, optionnelle, transversale, dcouverte). Il cre les modules pour cette UE, spcifie un nom, le nombre dheures enseigner, un coefficient, et un crdit pour chaque module. Il valide le module, si Code existe dj dclencher : [Exception2 : ModuleExistant] Il valide lUE, si Code existe dj dclencher : [Exception3 : UEExistante]
Exceptions :
[Exception1 : DomaineExistant] : le domaine est marqu en anomalie tant que le code na pas t chang. [Exception2 : UEExistante] : lUE est marqu en anomalie tant que le code na pas t chang. LUE ne peut plus tre valide. [Exception3 : ModuleExistant] : le module est marqu en anomalie tant que le code na pas t chang. Le module ne peut plus tre valid. [Exception4 : DomaineUtilise] : un message est affich lcran avisant lutilisateur que le domaine ne peut pas tre supprim. [Exception5 : UEUtilisee] : un message est affich lcran avisant lutilisateur que lUE ne pas tre supprime.
Page 28
Prconditions :
1- Le chef de dpartement est authentifi. 2- Au moins un enseignant existe dans la base. 3- Au moins un domaine existe.
Scnario nominal :
Ce cas dutilisation commence lorsque le chef de dpartement demande au systme de crer une nouvelle promotion. Enchanement (a) : Crer une promotion en construction
Le chef de dpartement choisit un code/nom et lanne de cration pour la promotion.
Page 29
Le chef de dpartement fixe les dates des examens. Il fixe les dates de dbut/fin, il cre les groupes
Enchanements alternatifs :
Enchanement (h) : Modifier une promotion en construction ou valide
Le chef de dpartement peut changer en cours dtudes, lenseignant en charge dun module.
Exceptions :
[Exception1 : NoUECree] : la promotion est marqu en anomalie tant quune UE na pas t cre. La promotion ne peut plus tre valide. [Exception2 : EtudiantDejaAffecte] : un message derreur est affich sur lcran avisant lutilisateur que ltudiant appartient dj la promotion.
Page 30
Titre : Suivre une promotion But : permettre le suivi du cursus des tudiants. Rsum : commencer les tudes, affecter des enseignants chaque semestre Acteurs : Chef de dpartement
Prconditions :
1234Le chef de dpartement est authentifi. Au moins un enseignant existe dans la base. Au moins un domaine existe. Au moins une promotion existe.
Scnario nominal :
Ce cas dutilisation commence lorsque le chef de dpartement demande au systme de commencer les tudes dans une promotion. Enchanement (a) : commencer les tudes
Il slectionne les enseignants chargs de donner des cours, et attribue pour chacun deux un ou plusieurs modules enseigner. Si le module est dj attribu dclencher : [Exception1 : ModuleDejaAttribue ] Il spcifie les caractristiques du module TD/TP/Projet/Sminaire/confrence. Commencer le 1er semestre et la promotion.
Page 31
Si tous les relevs de notes sont remplis terminer le semestre, sinon dclencher : [Exception2 : SemestreIncomplet ]
Enchanement (d) : passer au prochain semestre Si cest le premier semestre de lanne, le passage est automatique pour tous les tudiants, sinon si cest le deuxime, alors une session de rattrapage est prvu pour l es tudiants qui nont pas tous les crdits requis. Les rsultats la suite des rattrapages vont dterminer :
Les tudiants aptes passer au palier suprieur. Les tudiants recals. Si le dernier semestre est termin, remise des diplmes aux tudiants ayants russis. Si une spcialisation se prsente, orienter les tudiants vers les spcialits choisies. Enchanements alternatifs :
Voici un diagramme dactivits reprsentant lenchainement des vnements pour le cas dutilisation : Suivre une promotion.
Page 32
Page 33
Prconditions :
1- Le chef de dpartement est authentifi. 2- Au moins une promotion a t cre.
Scnario nominal : Ce cas dutilisation commence lorsque le chef de dpartement demande au systme de crer un nouvel emploi du temps.
Enchanement (a) : Crer un emploi du temps en construction
Le chef de dpartement choisit une promotion pour qui lemploi du temps est destine. Il slectionne un semestre pour lanne en cours. Il slectionne une plage horaire.
Page 34
Enchanements alternatifs :
Enchanement (d) : Modifier un emploi du temps en construction ou valid
Le chef de dpartement dsaffecte une charge pour une plage horaire.
Exceptions :
[Exception1 : moduleErreur] : un message derreur reste affich sur lcran tant que le module na pas t enlev de lemploi du temps. [Exception2 : enseignantErreur] : un message derreur reste affich sur lcran tant que lenseignant na pas t enlev de lemploi du temps.
Diagramme dactivits
Page 35
Prconditions :
Lutilisateur est authentifi.
Scnario nominal : Ce cas dutilisation commence lorsque lutilisateur demande consulter lemploi du temps.
Enchanement (a) : Consulter un emploi du temps
Lutilisateur slectionne une promotion. Lutilisateur slectionne ensuite un semestre pour lanne en cours. Il affiche ensuite lemploi du temps correspondant.
Page 36
Prconditions :
La Scolarit est authentifie.
Scnario nominal : Ce cas dutilisation commence lorsque le chef de dpartement/Scolarit demande au systme de crer un nouveau/modifier un dossier tudiant.
Enchanement (a) : Crer un dossier tudiant en construction
Le chef de dpartement choisit un nom/prnom/date et lieu de naissance. Il remplit le numro dinscription. Il peut choisir ventuellement lanne dinscription. Remplir les informations sur ltat civil.
Enchanements alternatifs :
Enchanement (c) : Modifier un dossier tudiant en construction ou valid
Le chef de dpartement met jour ce dossier quand cela est ncessaire. Si ltudiant est dj inscrit, spcifier la nouvelle anne dinscription.
Page 37
Ce cas dutilisation se termine lorsque le chef de dpartement a valid un dossier tudiant. Diagrammes dactivits : ______________________________________________________________
Diagramme dactivits
Page 38
Prconditions :
1. Le responsable de la scolarit ou lenseignant est authentifi. 2. Au moins une promotion existe. 3. Au moins un dossier tudiant est cre.
Scnario nominal : Ce cas dutilisation commence lorsque le responsable de la scolarit affiche le relev de notes.
Enchanement (a) : remplir le relev de notes
Le responsable de la scolarit ou lenseignant choisit une promotion. Il choisit un tudiant et affiche son relev de notes. Choisir un module et affecter une note celui-ci.
Enchanements alternatifs :
Enchanement (c) : modifier une fiche notes en construction/valide
La scolarit peut modifier une note dun module.
Exceptions :
Page 39
[Exception1 : FicheNotesDejaExistante] : un message derreur saffiche lcran avisant lutilisateur que la fiche existe dj pour ce semestre. [Exception2 : ModuleDejaNot] : Si lacteur est lenseignant alors il ne peut plus modifier la note, sinon un message dinformation reste affich sur lcran demandant la confirmati on du changement de la note et de la raison.
Ce cas dutilisation se termine lorsque le chef de dpartement a valid la fiche de notes de ltudiant.
Diagramme dactivits
Remarque : cet algorithme, ne correspondant pas assez aux besoins du langage choisi et lIHM, va tre sensiblement chang.
Page 40
Prconditions :
1. Lutilisateur est authentifi. 2. Au moins un dossier tudiant est cre.
Scnario nominal :
Ce cas dutilisation commence lorsque ltudiant se connecte son compte. Enchanement (a) : Slectionner un tudiant
Le responsable choisit une promotion. Il choisit un tudiant.
Page 41
Prconditions :
Aucunes.
Scnario nominal :
Ce cas dutilisation commence lorsque ladministrateur lance le logiciel. Enchanement (a) : Crer un profil en construction
Ladministrateur choisit un nom / mot de passe pour le compte. Il choisit le type de ce compte.
Page 42
2.4.
Cette phase va permettre de structurer les cas dutilisations en groupes fortement cohrents, ceci afin de prparer le terrain pour la prochaine phase qui est le dcoupage en catgories . Dfinition : un package reprsente un espace de nommage qui peut contenir : 1. Des lments dun modle. 2. Des diagrammes qui reprsentent les lments du modle. 3. Dautres packages. La structuration des cas dutilisations se fait par domaine dexpertise mtier c..d. les lments contenus dans un package doivent reprsenter un ensemble fortement cohrent et sont gnralement de mme nature et de mme niveau smantique.
Cas dutilisation
Acteurs
Package
Organiser un dpartement
Chef de dpartement
Chef de dpartement Gestion des promotions Chef de dpartement Scolarit, Enseignant Gestion des notes
Page 43
Administrateur
2.5.
Cette phase va prparer la modlisation oriente objet en aidant trouver les classes principales du futur modle statique danalyse. La technique utilise pour identifier les classes candidates est la suivante : Chercher les noms communs importants dans les descriptions textuelles des cas dutilisation. Vrifier les proprits objet de chaque concept (identit, proprits, comportement), puis dfinir ses responsabilits.
Dfinition : une responsabilit est une sorte de contrat, ou dobligation, pour une classe. Elle se place un niveau dabstraction plus lev que les attributs ou les oprations. On formalise ensuite ces concepts mtier sous forme de classes et dassociations rassembles dans un diagramme statique pour chaque cas dutilisation. Ces diagrammes prliminaires sont appels diagramme des classes participantes , nont pas pour objectif dtre complet. Ils servent uniquement dmarrer la dcouverte des classes du modle danalyse. Exemple :
Page 44
Page 45
Page 46
Page 47
Diagramme des classes participantes du cas dutilisation Etablir les emplois du temps :
Les classes candidates sont tires de la description textuelle du cas dutilisation et des diagrammes dynamiques reprsentant celui-ci :
Emploi du temps, Plage horaire, UE, Module, Enseignant.
Page 48
Diagramme des classes participantes du cas dutilisation Maintenir les notes tudiants :
Les classes candidates sont tires de la description textuelle du cas dutilisation et des diagrammes dynamiques reprsentant celui-ci :
Fiche notes, Note, Module, Etudiant.
Page 49
3. ANALYSE
3.1. Dcoupage en catgories
Cette phase marque le dmarrage de lanalyse objet du systme raliser. Elle utilise la notion de package pour dfinir des catgories de classes danalyse et dcouper le modle UML en blocs logiques les plus indpendants possibles. Le dcoupage en catgories constitue la premire activit de ltape danalyse et elle va saffiner de manire itrative au cours du dveloppement du projet. Elle se situe sur la branche gauche du cycle en Y et succde la capture des besoins fonctionnels. Pour passer lanalyse, il faut se baser sur les principes de lApproche Oriente Objet, notamment celle de lencapsulation. cet effet, il faut passer dune structuration fonctionnelle via les cas dutilisations, une structuration objet via les classes et les catgories. Dfinition : une catgorie consiste en un regroupement logique de classes forte cohrence interne et faible couplage externe. Le dcoupage en catgories de notre projet a donn le rsultat suivant :
Page 50
Dcoupage en catgories
3.2.
Page 51
Page 52
Page 53
3.3.
Remarque : ce diagramme a t obtenu aprs plusieurs itrations. Remarque 2: cette phase peut tre utilise par un chef de projet pour constituer les quipes. Chaque quipe pourra se concentrer sur le dveloppement dune seule catgorie/package.
Page 54
3.4.
Le dveloppement du modle statique constitue la deuxime tape danalyse. Les diagrammes de classes tablis sommairement dans les diagrammes de classes participantes, puis rorganiss lors du dcoupage en catgories, vont tre, complts, et optimiss. Il sagit dune activit itrative, fortement couple avec la modlisation dynamique.
Catgorie Etudes :
Voici le diagramme de classe de la catgorie Etudes.
Diagramme de classe
Page 55
Catgorie Promotions :
Voici le diagramme de classe de la catgorie Promotion et aussi Etudiants.
Page 56
Page 57
Page 58
Page 59
Catgorie Enseignants :
Voici le diagramme de classe de la catgorie Enseignants.
Diagramme de classe
Page 60
Catgorie Etudiant :
Page 61
3.5.
Le dveloppement du modle dynamique constitue la troisime activit de ltape danalyse. Il sagit dune activit itrative, fortement couple avec la modlisation statique.
Nominaux : ils ralisent les post conditions du cas dutilisation, dune faon naturelle et frquente ; Alternatifs : ils remplissent les post conditions du cas dutilisation, mais en empruntant des voies dtournes ou rares ; Aux limites : ils ralisent les post conditions du cas dutilisation, mais modifient le systme de telle sorte que la prochaine excution du cas dutilisation provoquera une erreur ; Derreur : ne ralisent pas les post conditions du cas dutilisation.
Il faut signaler que tous les scnarios possibles ne peuvent tre numrs et dcrits du fait quils en existent beaucoup. Cest pour cette raison que nous allons faire une description des scnarios les plus pertinents.
Page 62
Scnarios alternatifs : OL_A1 : modifier un domaine par ajout dune spcialit. OL_A2 : modifier un domaine par ajout dune option. OL_A3 : modifier un domaine par cration dUE et modules. OL_A4 : modifier un domaine par suppression dune UE. Scnarios dexception : OL_E1 : non validation de la cration de domaine pour cause de nom existant dj. OL_E2 : non validation de la modification du domaine par suppression dune UE pour cause dexistence dune promotion utilisant lUE.
Description dtaille des scnarios : La description dtaille va permettre de, mettre en vidence les interactions entre les diffrents objets. Cependant, du fait de lexistence de nombreux scnarios, nous allons dtailler seulement quelques uns dentre eux.
Scnarios nominaux : OL_N1 : crer un nouveau domaine. Le chef de dpartement donne un nom/mot de passe didentification. Il choisit un code/nom pour le domaine. Un tronc commun est cr. Le chef de dpartement fixe la dure en semestres de celui-ci. Il cre les spcialits du domaine, en choisissant pour chacune delle la dure. Pour dcrire ce scnario, nous allons faire intervenir les instances suivantes : o Un acteur Chef de dpartement.
Page 63
o Un objet Domaine cre au cours du scnario. o Un objet Tronc_Commun cre au cours du scnario. o Un objet Specialite cre au cours du scnario.
Page 64
Page 65
Scnarios alternatifs : EP _A1 : modifier une promotion par ajout dun enseignant. EP _A2 : modifier une promotion par attribution dun module un enseignant non encore attribu. EP _A3 : modifier une promotion par libration dun enseignant charg dun module. EP _A4 : modifier une promotion par ajout dun tudiant. EP _A5 : modifier une promotion par enlvement dun tudiant. Scnarios dexception : EP _E1 : EP _E2 :
Page 66
o Un multi-objet reprsentant lensemble des instances de Enseignant qui vont tre affects la nouvelle promotion. o Un multi-objet reprsentant lensemble des instances de Etudiant qui vont tre rattachs la nouvelle promotion.
Page 67
Diagramme de squence du scnario modifier une promotion par ajout dun enseignant
EP _A2 : modifier une promotion par attribution dun module un enseignant non
encore attribu. Le chef de dpartement donne un nom/mot de passe didentification. Il slectionne une promotion.
Page 68
Il slectionne un module. Il attribue le module un enseignant. Le chef de dpartement valide la promotion. Pour dcrire ce scnario, nous allons faire intervenir les instances suivantes : o o o o Un acteur Chef de dpartement. Une Promotion cre au cours du scnario. Un objet Enseignant qui va est affect la promotion. Un objet Module qui va tre affect un enseignant.
Diagramme de squence du scnario modifier une promotion par attribution dun module un enseignant non encore attribu
EP _A3 : modifier une promotion par libration dun enseignant charg dun
module. Le chef de dpartement donne un nom/mot de passe didentification.
Page 69
Il slectionne une promotion. Il slectionne un enseignant faisant parti de la promotion. Il dsaffecte lenseignant de son module. Le chef de dpartement valide la promotion. Pour dcrire ce scnario, nous allons faire intervenir les instances suivantes : o o o o Un acteur Chef de dpartement. Une Promotion cre au cours du scnario. Un objet Enseignant qui va tre affect la promotion. Un objet Module qui va tre affect un Enseignant.
Diagramme de squence du scnario modifier une promotion par libration dun enseignant charg dun module
Page 70
Il slectionne une promotion. Il slectionne un tudiant. Il dsaffecte ltudiant de la promotion. Le chef de dpartement valide la promotion. Pour dcrire ce scnario, nous allons faire intervenir les instances suivantes : o Un acteur Chef de dpartement. o Une Promotion cre au cours du scnario. o Un objet Etudiant qui va tre affect la promotion.
Page 71
Page 72
Page 73
Page 74
Pour chaque module, elle affecte une note (examen, TD, TP, Devoir). Le calcul de la moyenne se fait automatiquement. Pour dcrire ce scnario, nous allons faire intervenir les instances suivantes : o o o o Un acteur Scolarit. Un tudiant cre au cours du scnario. Un objet Promotion cre au cours du scnario. Un objet Note.
Remarque : Du fait des contraintes du langage, ces diagrammes sont difficilement implmentables en ltat. Cependant, ils servent faire surgir les interactions possibles entres les diffrents objets.
Page 75
Il satisfait une certaine condition ; Il excute une certaine activit ; Ou bien il attend un certain vnement.
Un objet passe par une succession dtats durant son existence. Un tat a une dure finie, variable selon la vie de lobjet, en particulier en fonction des vnements qui lui arrivent. Diagramme dtats de la classe Promotion :
En attente : de la cration dune instance de Promotion sa validation, cet tat inclut toutes les oprations de rattachement un domaine, de rattachements denseignants, de rattachements dtudiants. Valide (cre) : il reprsente une Promotion cre et valide. En cours : cet tat reprsente une Promotion en cours denseignement. Aucun tudiant ne peut tre ajout ce moment et aucun changement de Module ou dUE ne peut tre autoris. Cependant, un enseignant peut tre remplac. Termine : cet tat survient aprs la fin des dlibrations de la dernire session dexamen.
Page 76
Nouvellement inscrit : cet tat reprsente un tudiant qui vient dtre inscrit luniversit.il se produit lorsque ltudiant est introduit la premire fois dans la base et que cest sa premire anne la facult. Rattach : cet tat reprsente un tudiant qui est attach une promotion. En cours dtudes : cet tat reprsente un tudiant qui est entrain dtudier. En cours de passage : cet tat survient aprs quun tudiant ait russi le passage au niveau suprieur. Au cours de cet tat, ltudiant fait le choix de la prochaine branche. Recal : cet tat survient aprs quun tudiant ait chou le passage au niveau suprieur. Etudes termines : cet tat survient aprs quun tudiant ait termin ses tudes suprieures.
Page 77
Page 78
4. CONCEPTION
La conception prliminaire est ltape o seffectue la fusion des tudes fonctionnelles et techniques. La conception dtaille qui vient juste aprs est une activit qui sinscrit dans lorganisation dfinie par la conception prliminaire. Le modle logique y est particulirement important dans la mesure o cest dans cette tape quon gnre le plus grand nombre dinformations. Il est ainsi possible de confier les catgories des personnes diffrentes, qui pourront travailler indpendamment les unes des autres. Les concepteurs dans cette phase construisent les classes, les vue dIHM, les interfaces, les tables et les mthodes qui vont donner une image prte coder de la solution.
4.1.
Architecture de lapplication
La technologie Objet requiert une architecture. C'est cette architecture qui organise les interactions entre objets. On a l'habitude de regrouper ces objets en classes, ces classes en domaines, et ces domaines en couches. Les couches permettent de prsenter l'architecture de l'application. Les quipes de ralisation s'attribuent alors des responsabilits sur le dveloppement de chaque couche. Aussi, si modliser est indispensable, construire une architecture couche est un critre de qualit dans le cadre d'un dveloppement Objet. Reste choisir le nombre de couches et dfinir leur contenu.
Architecture 3-Tiers :
Pour avoir une architecture robuste, modulable et volutive, il nous faut utiliser le principe de couche . Nous allons donc sparer au maximum les diffrents types de traitement de lapplication (Dao, Mtier, Prsentation). Ceci correspond une architecture 3-Tiers :
Page 79
Architecture 3-Tiers
4.2.
De nombreuses mthodes existent pour simplifier la phase de conception des logiciels. Parmi les plus connues, considrons Merise et UML. Mais une autre mthode existe, plus proche de l'implmentation. Lors de la conception d'une application de nombreux problmes peuvent survenir. Le systme des Design Patterns, ou motifs de conception, reprsente un systme objet destin la rsolution de problmes techniques. (Eric Freeman, 2005) Un Design Pattern constitue un petit ensemble de classes apte offrir la solution la plus efficace un problme. La dfinition d'un motif de conception repose donc sur trois critres. Premirement, le problme rsoudre est classique et bien connu. Ensuite, l'ensemble des classes employes porte un nom unique (on parle par exemple du motif "Decorator"). Enfin, la solution que propose ce motif correspond la rsolution la plus optimale du problme. (Guy)
Page 80
Les Designs Patterns proviennent du travail de nombreux dveloppeurs qui se sont tour tour penchs sur les mmes problmes. En mettant en corrlation ces travaux on a pu dsigner les meilleures solutions dcouvertes sous le terme de motifs de conception. La connaissance de ces motifs permet au programmeur de trouver rapidement des implmentations pour ses programmes. La principale difficult rside dans l'identification du problme et dans sa mise en relation avec des motifs connus. Pour nous, les Design Pattern nous ont aid trouver une solution lgante un problme conceptuel. En fait, ils vont nous aider coder les diffrents concepts qui se dgagent dans la phase de conception. Donc on peut dire que les Design Pattern interviennent aussi dans la phase de codage.
Remarque : les diagrammes qui vont suivre ont t cre avec loutil UML de NetBeans 5.5 Voici les diffrents diagrammes Etats que nous avons conus :
Page 81
La Classe Promotion :
Page 82
La classe Promotion dlgue la gestion de ses tats linterface EtatPromotion et ses diffrentes implmentations (EtatEnCreation, EtatValide, EtatEnCours, EtatTerminee)
Page 83
La Classe Etudiant :
Page 84
Page 85
Page 86
Le Modle : reprsente le comportement de l'application : traitements des donnes, interactions avec la base de donnes, etc. Il dcrit les donnes manipules par l'application et dfinit les mthodes d'accs. la Vue : correspond l'interface avec laquelle l'utilisateur interagit. Les rsultats renvoys par le modle sont dnus de toute prsentation mais sont prsents par les vues. Plusieurs vues peuvent afficher les informations d'un mme modle. Elle peut tre conue en html, ou tout autre langage de
Page 87
prsentation. La vue n'effectue aucun traitement, elle se contente d'afficher les rsultats des traitements effectus par le modle, et de permettre l'utilisateur d'interagir avec elles. le Contrleur : prend en charge la gestion des vnements de synchronisation pour mettre jour la vue ou le modle. Il n'effectue aucun traitement, ne modifie aucune donne, il analyse la requte du client et se contente d'appeler le modle adquat et de renvoyer la vue correspondant la demande.
En rsum, lorsqu'un client envoie une requte l'application, celle-ci est analyse par le contrleur, qui demande au modle appropri d'effectuer les traitements, puis renvoie la vue adapte au navigateur, si le modle ne l'a pas dj fait. Un avantage apport par ce modle est la clart de l'architecture qu'il impose. Cela simplifie la tche du dveloppeur qui tenterait d'effectuer une maintenance ou une amlioration sur le projet. En effet, la modification des traitements ne change en rien la vue. Par exemple on peut passer d'une base de donnes de type SQL XML en changeant simplement les traitements d'interaction avec la base, et les vues ne s'en trouvent pas affectes. (Wikipedia) Comme exemple, Swing la bibliothque graphique de Java pour la cration dinterfaces graphiques, est base sur le modle MVC. (Cornell)
Page 88
5. CODAGE
Le choix du langage sest port vers Java, qui tant Orient Objet la base, nous facilitera la transformation de notre modle objet vers le code. La programmation peut se faire pour des exemples simples avec le compilateur javac, mais pour avoir plus de confort il est prfrable d'utiliser un environnement de dveloppement intgr ou IDE. Notre choix sest port vers lEDI NetBeans, qui nous fournit le confort et la simplicit ncessaires un dveloppement propre et rapide.
5.1.
Grace au plugin UML intgr NetBeans, nous avons pu crer les diffrents diagrammes UML dfinis lors de la phase de conception. Mais aussi, nous allons lutiliser pour la gnration du code partir des diagrammes de classes. Nous bnficierons dans ce cas dun gain de temps non ngligeable, du fait quil peut gnrer aussi les diffrents packages avec leurs classes respectives.
5.2.
Lapplication JStudent
Page 89
Page 90
La couche Mtier :
Voici quelques figures reprsentants un chantillon du code source de cette couche :
Page 91
Page 92
Page 93
La couche Prsentation :
Voici quelques figures reprsentants linterface du logiciel :
La fentre principale
Page 94
Page 95
Page 96
Page 97
Page 98
Le stockage de donnes :
La technique choisie pour persister les donnes est : la srialisation. Une technique plus aboutie aurait t un meilleur choix comme : le mapping Objet/Relationnel avec un outil comme Hibernate. Cependant, lapprentissage de cet outil demande un temps supplmentaire. Mais la solution de la srialisation rponds largement nos besoins pour ce projet, cest pour a que nous avons jug pertinent de la garder.
Page 99
Bilan de la mthode
Du fait de notre manque dexprience dans le domaine et, du cadre limit (humain et matriel) dans lequel nous avons men notre projet, on ne va pas tirer de conclusion dfinitive sur la mthode. Mais en ce qui concerne la prise en compte dune volution possible de lapplication, on va alors donner un cas concret de ce que pourrait tre un ajout dun nouveau besoin fonctionnel.
Identification du besoin :
On suppose que la gestion de salles se trouve finalement, tre un besoin rel pour les utilisateurs de notre application. Nous allons dabord identifier les acteurs du systme devant interagir avec le systme travers cette nouvelle fonctionnalit : Il sagit de la scolarit qui devra pour chaque promotion, chercher une salle libre afin que les cours puissent y tre enseigns.
Page 100
On peut la suite de cration dune promotion, lui affecter une salle. De ce fait, le cas dutilisation grer les salles pourra tendre le cas dutilisation tablir les promotions . La gestion des salles pourra aussi tre comprise comme une spcification de chaque dpartement. Ce qui nous amne lintroduire au package Gestion des dpartements .
Page 101
Ceci ne devrait pas affecter le codage en gnral, du fait que les responsabilits des diffrentes classes et packages ont t bien spares.
Conclusion
Nous pouvons constater que lajout de nouvelles fonctionnalits peut tre simplifi, pour peu quon respecte bien les tapes dfinies par 2TUP. a demande de faire une itration complte ou partielle selon le besoin, du cycle Y, et ne pas succomber la tentation de toucher rapidement au code.
Page 102
Conclusion gnrale
Nous avons tent travers ce projet de dmontrer limportance de lapplication dune mthode de dveloppement. Nous pensons aussi que 2TUP pourra tre utilise dans des projets de moyenne grande envergure. A titre personnel, le bnfice quon en a tir est lapprentissage de concepts la pointe de la technologie et des tendances actuelles dans le monde professionnel. Une recherche profonde a t indispensable pour essayer de comprendre ces concepts l. Nous pouvons citer ce propos, un excellent livre traitant ce sujet qui sappelle : UML 2 En Action. Ce projet nous a permis denrichir nos connaissances dans des domaines trs varis comme : LOrient Objet, UML, 2TUP, le langage JAVA, les Design Patterns, Swing En termes dvolution, lapplication pourra par la suite tre adapte une utilisation luniversit. Par exemple, une base de donnes pourra tre utilise soit par le biais dun pont JDBC, ou par le biais dune solution de Mapping Objet/ Relationnel comme Hibernate. Aussi, un dploiement sur un rseau pourra tre fait grce au framework J2EE. Nous esprons que la lecture de ce mmoire a t agrable et claire.
Page 103
Bibliographie
Chromatic. (2005). Extreme programming. O'Reilly. Cornell, G. Au Coeur de Java. Campus Press. Eric Freeman, E. F.-C. (2005). Design Patterns Tte la premire. O'Reilly. Florian GRISONI, N. G. (s.d.). Rcupr sur http://www.cyber06.com/article/mvc.php Guy, R. (s.d.). Rcupr sur http://www.progx.org Meyer, B. (2000). Conception et Programmation orientes objet. Eyrolles. Pitman, N. (2006). UML 2 en concentr. O'Reilly. Rocques, P., & Valle, F. (2004). UML 2 En Action (De l'analyse des besoins la conception J2EE). Eyrolles. Roques, P. (2006). UML 2 en pratique. Eyrolles. Wikipedia. (s.d.). Rcupr sur Wikipedia: http://fr.wikipedia.org/
Page 104
Annexe :
LAPPROCHE ORIENTEE OBJET
Notion de classe
Tout dabord, introduisons la notion de classe. Une classe est un type de donnes abstrait, caractris. Par des proprits (attributs et mthodes) communes toute une famille dobjets et permettant de crer (instancier) des objets possdant ces proprits. Les autres concepts importants quil nous faut maintenant introduire sont lencapsulation, lhritage et lagrgation.
Encapsulation
Lencapsulation consiste masquer les dtails dimplmentation dun objet, en dfinissant une interface. Linterface est la vue externe dun objet, elle dfinit les services accessibles (offerts) aux utilisateurs de lobjet. Lencapsulation facilite lvolution dune application car elle stabilise lutilisation des objets: on peut modifier limplmentation des attributs dun objet sans modifier son interface, et donc la faon dont Lobjet est utilis. Lencapsulation garantit lintgrit des donnes, car elle permet dinterdire, ou de restreindre, laccs direct aux attributs des objets.
Page 105
Ainsi, la spcialisation et la gnralisation permettent de construire des hirarchies de classes. Lhritage peut tre simple ou multiple. Lhritage vite la duplication et encourage la rutilisation. Le polymorphisme reprsente la facult dune mthode pouvoir sappliquer des objets de classes diffrentes. Le polymorphisme augmente la gnricit, et donc la qualit, du code.
LAgrgation
Il sagit dune relation entre deux classes, spcifiant que les objets dune classe sont des composants de lautre classe. Une relation dagrgation permet donc de dfinir des objets composs dautres objets. Lagrgation permet donc dassembler des objets de base, afin de construire des objets plus complexes. (Meyer, 2000)
UML
Introduction
La description de la programmation par objets a fait ressortir ltendue du travail conceptuel ncessaire: dfinition des classes, de leurs relations, des attributs et mthodes, des interfaces etc. Pour programmer une application, il ne convient pas de se lancer tte baisse dans lcriture du code : Il faut dabord organiser ses ides, les documenter, puis organiser la ralisation en dfinissant les modules et tapes de la ralisation. Cest cette dmarche antrieure lcriture que lon appelle modlisation; son produit est un modle. Les spcifications fournies par la matrise douvrage en programmation imprative taient souvent floues: les articulations conceptuelles (structures de donnes, algorithmes de traitement) sexprimant dans le vocabulaire de linformatique, le modle devait souvent tre labor par celle-ci. Lapproche objet permet en principe la matrise douvrage des exprimer de faon prcise selon un vocabulaire qui, tout en transcrivant les besoins du mtier,
Page 106
pourra tre immdiatement compris par les informaticiens. En principe seulement, car la modlisation demande aux matrises douvrage une comptence, un professionnalisme qui ne sont pas aujourdhui rpandus.
UML en uvre
UML nest pas une mthode (i.e. une description normative des tapes de la modlisation): ses auteurs ont en effet estim quil ntait pas opportun de dfinir une mthode en raison de la diversit des cas particuliers. Ils ont prfr se borner dfinir un langage graphique qui permet de reprsenter, de communiquer les divers aspects dun systme dinformation (aux graphiques sont bien sr associs des textes qui expliquent leur contenu). UML est donc un mta-langage car il fournit les lments permettant de construire le modle qui, lui, sera le langage du projet. Il est impossible de donner une reprsentation graphique complte dun logiciel, ou de tout autre systme complexe, de mme quil est impossible de reprsenter entirement une statue ( trois dimensions) par des photographies ( deux dimensions). Mais il est possible de donner sur un tel systme des vues partielles, analogues chacune une photographie dune statue, et dont la juxtaposition donnera une ide utilisable en pratique sans risque derreur grave.
Page 107
diagramme dtats-transitions (State machine diagram) diagrammes dinteraction(Interactiondiagram) diagramme de squence (Sequence diagram) diagramme de communication (Communication diagram) diagramme global dinteraction (Interaction overview diagram) diagramme de temps (Timing diagram)
Ces diagrammes, dune utilit variable selon les cas, ne sont pas ncessairement tous produits loccasion dune modlisation. Les plus utiles pour la matrise douvrage sont les diagrammes dactivits, de cas dutilisation, de classes, dobjets, de squence et dtats-transitions. Les diagrammes de composants, de dploiement et de communication sont surtout utiles pour la matrise duvre qui ils permettent de formaliser les contraintes de la ralisation et la solution technique.
LE LANGAGE JAVA
Java est la fois un langage de programmation et un environnement dexcution. Le langage Java a la particularit principale d'tre portable sur plusieurs systmes dexploitation. C'est la plateforme qui garantit la portabilit des applications dveloppes en Java. (Cornell) Lors de la cration du langage Java, il avait t dcid que ce langage devait rpondre 5 objectifs : 1. utiliser une mthode oriente objet, 2. permettre un mme programme d'tre excut sur plusieurs systmes d'exploitation diffrents, 3. pouvoir utiliser de manire native les rseaux informatiques, 4. pouvoir excuter du code distant de manire sre, 5. tre facile utiliser et possder les points forts des langages de programmation orients objet comme le C++. Le systme Java est bas sur le langage Java, la machine virtuelle java, et l'API JAVA (ces deux derniers composants forment l'environnement d'excution, ou JRE, pour Java Runtime Environment).
Page 108
L'architecture MVC
Model View Controller (Modle Vue Contrleur) est souvent dcrit comme un simple design pattern (motif de conception) mais c'est plus un architectural pattern (motif d'architecture) qui donne le ton la forme gnrale d'une solution logiciel plutt qu' une partie restreinte. Les trois parties du pattern MVC sont les suivantes :
1. Model : Le modle dfini les donnes de l'application et les mthodes d'accs. Tout les traitements sont effectus dans cette couche. 2. View : La vue prend les informations en provenance du modle et les prsente l'utilisateur. 3. Controller : Le contrleur rpond aux vnements de l'utilisateur et commande les actions sur le modle. Cela peut entrainer une mise jour de la vue.
L'architecture 3-Tiers
L'architecture 3-Tiers spare, tout comme MVC, l'application en trois parties bien distinctes :
1. User interface : La partie prsentation de l'application. 2. Buisness logic : La couche mtier qui s'occupe du traitement de l'information. 3. Data access : La partie accs et stockage des donnes
Page 109
Inversement pour qu'une application 3-Tiers respecte MVC il faut lui ajouter une couche de contrle entre User interface et Buisness logic. Loin d'tre antagonistes, ces deux pratiques se combinent et sont la fondation de la plupart des frameworks de cration d'applications Web.
Page 110