projet module uml - e

Transcription

projet module uml - e
Formation continue
MOD24
PROJET MODULE UML
Projet tuteuré
UVSQ
SUJET
Introduction.
Comme vu dans le cours, le langage UML est extensible et peut s'adapter à d'autres contextes et
paradigmes que celui stricto sensu de l'orienté objet. La formation que vous avez suivie est
traversée par trois axes majeurs. Le système Linux, les bases de données relationnelles et le langage
JAVA dans ses orientations technologiques pour applications d'entreprise (JAVA EE).
La frontière entre ces axes est très fine et perméable. Notamment dans le cadre de la
correspondance Objet-Relationnel (object-relational mapping) où la double compétence objet et
relationnelle est nécessaire pour avoir la maîtrise de cette technologie.
Ainsi dans les cahiers des charges des projets qui mettent en œuvre les solutions de mapping objet
relationnel, les concepteurs doivent être en mesure de modéliser l'un et l'autre de ces paradigmes
avec le langage UML. Cela est possible grâce à la notion de profil UML (voir les ressources
documentaires dans l'espace e-campus). Le travail que vous devez produire est une analyse d'un cas
d'étude avec une partie qui concerne les applications et une autre les données correspondantes
stockées dans une base de données relationnelle.
Mission à réaliser.
L'étude porte sur le cas décrit ci-dessous. Le travail consiste à en faire l'analyse et à en modéliser
d'un côté les classes des applications qui représentent les concepts métier et de l'autre les données
stockées dans la base de données qui représentent ces mêmes concepts.
SI
niveau abstrait
(système d'information)
applications
tables métier
classes métier
base de données
Les trois contextes peuvent être modélisés avec UML ; le niveau abstrait encore appelé diagramme
de domaine, le niveau applicatif avec le diagramme de classes et le niveau base de données avec le
diagramme de classes UML augmenté par un profil UML adapté.
JJLC
1/4
FC-UVSQ
Le cas TCR partie 1.
Vous faites votre stage dans la société de services du numérique Open&Free Software. Vous êtes
incorporé dans l'équipe projet qui est chargée de développer une application pour un des clients
d'Open&Free Software.
Ce client est l'entreprise TCR chargée des transports en commun d'une grande ville française.
L'application a pour nom « gestion des parcours des autobus ». Une première ébauche a été
réalisée par l'équipe projet. Et notamment le schéma relationnel de la base de données qui permet le
stockage du système d'information (SI) de l'application.
La gestion des parcours des autobus comprend deux fonctionnalités. La première est la gestion du
personnel. Cette dernière porte en particulier sur la gestion des conducteurs d'autobus.
La seconde fonctionnalité est la gestion de l'entretien. Elle porte sur l'entretien du parc d'autobus. Le
parc est constitué d'environ deux cents autobus. Cette fonctionnalité est importante puisque c'est
elle qui permet de déterminer les autobus disponibles (non en panne) afin de les affecter aux
parcours à venir.
Ces deux fonctions ont déjà fait l'objet d'une étude et une base de données a été implémentée. Voici
ci-dessus les relations qui composent la base de données relationnelle.
L'attribut HORAIRE_DEPART est sous la forme AAAAMMJJHHmm. Il notifie l'année, le mois,
le jour, l'heure et les minutes auxquels un conducteur doit se présenter à l'arrêt départ pour prendre
son service.
Les services sont entrecoupés de temps de repos, si bien que le même jour deux parcours peuvent
concerner le même conducteur, la même ligne et le même autobus.
JJLC
2/4
FC-UVSQ
Travail.
1. Votre chef de projet vous demande de réaliser la rétro-conception (reverse engineering) de
la base de données sous la forme d'un modèle de domaine avec le diagramme de classe
UML débarrassé de toute orientation (relationnelle et objet). Il vous précise qu'il ne
désire voir que le nom des entités du domaine et leurs relations avec leurs cardinalités.
Le cas TCR partie 2.
Votre chef de projet vous demande de réfléchir à la prise en compte des nouveaux besoins qu'ont
fait remontés les décideurs de la TCR.
Ils souhaitent pouvoir stocker le moment d'arrivée (même format que HORAIRE_DEPART) d'un
autobus à son terminus. Ainsi ils pourront réaliser des statistiques sur les temps de transport par
ligne.
Ils souhaitent également que le personnel qui pilote la gestion des parcours soit en capacité de
connaître la liste de tous les arrêts par ligne, du départ jusqu'au terminus. En sachant qu'à une ligne
correspondent plusieurs arrêts et qu'à un arrêt peut correspondre plusieurs lignes (arrêts communs).
De plus ils souhaitent également pouvoir stocker dans la base de données tout ce qui concerne les
événements graves arrivés lors des parcours. La TCR enregistre statistiquement trois cents accidents
par an et une cinquantaine d'incidents (accident voyageur, agression, insultes, etc.). Vous devez
réfléchir à l'intégration de la gestion de ces événements dans le système d'information existant.
Un événement est caractérisé par une date (même format que HORAIRE_DEPART), un type
(accident de la route, accident voyageur, agression, vol, insultes, etc.) et correspond à un parcours.
L'événement s'est passé soit à une station soit entre deux stations.
Travail.
1. Votre chef de projet vous demande de modifier le système d'information stocké dans la base
de données pour tenir compte de ces nouvelles règles de gestion. La solution doit être
représentée par un diagramme de classe UML avec injection d'un profil relationnel.
Le cas TCR partie 3.
Votre chef de projet vous confie la tâche de faire évoluer le modèle en tenant compte des nouvelles
spécifications fournies par les représentants de la compagnie de transport en commun TCR.
En, effet les responsables de la TCR souhaitent que le système d'information offre la possibilité de
gérer précisément la situation géographique et urbaine des arrêts d'autobus. Vous devez travailler
avec eux, analyser leurs explications et rédiger le cahier des charges des spécifications
fonctionnelles de ce nouveau besoin exprimé par la TCR.
Pour la TCR, un arrêt correspond à une voie et une voie correspond à un ou plusieurs arrêts. Une
voie est caractérisée par un type voie (rue, avenue, boulevard), un nom et un secteur géographique
dans la ville.
JJLC
3/4
FC-UVSQ
Travail.
1. Votre chef de projet vous demande de modifier le diagramme de la partie 2 afin que soient
prises en compte les nouvelles spécifications.
Le cas TCR partie 4.
Votre chef de projet vous confie la tâche de faire évoluer le modèle en tenant compte des nouvelles
spécifications fournies par les représentants de la compagnie de transport en commun TCR.
En, effet les responsables de la TCR souhaitent que le système d'information offre la possibilité de
gérer les accidents. Vous devez travailler avec eux, analyser leurs explications et rédiger le cahier
des charges des spécifications fonctionnelles de ce nouveau besoin exprimé par la TCR.
Pour la TCR, un accident est caractérisé par l'heure (HHMM) à laquelle il est survenu. Un accident
concerne un parcours. Un parcours est caractérisé par zéro ou un accident. Car lorsqu'un accident
arrive à un autobus, celui-ci rentre directement au dépôt (donc pas de possibilité de second
accident).
Un accident est soit un accident de la route soit un accident de passager. Un accident de la route est
caractérisé par le résumé du constat d'accident et également par l'immatriculation du véhicule avec
lequel l'autobus a eu l'accident.
Un accident passager est caractérisé par le nom du passager accidenté et la description des blessures
occasionnées par cet accident.
Travail.
1. Votre chef de projet vous demande de réaliser le diagramme UML des classe métier du
sujet afin que soient prises en compte les anciennes et les nouvelles spécifications.
Références.
Le document : profilUMLv3
Le document : JPA en image
Le lien: http://www.uml.org.cn/umlapplication/pdf/tp185.pdf
Le lien:
http://www.ibm.com/developerworks/rational/library/content/03July/1000/1392/1392_naiburg7.pdf
Le lien : http://www.uml.org.cn/oobject/tp180.pdf
Le lien : http://databaserefactoring.com/
Le lien : http://martinfowler.com/articles/evodb.html
JJLC
4/4
FC-UVSQ