Академический Документы
Профессиональный Документы
Культура Документы
Candidat
Prnom :
Nom :
Barme
Les barmes indiqus sont donns pour information et pourront tre modifis au moment de la
correction.
Partie Barme Note Page
1 Analyse et conception logicielle 7 5
2 Base de donnes 6 8
3 Programmation 7 11
Restrictions
Tous les documents papiers sont autoriss. Lusage doutils informatiques est interdit, lusage des
tlphones portables est interdit y compris pour la simple consultation de lheure.
Consignes
Vos rponses aux questions poses dans cet examen doivent tre justifies, prcises et courtes. Vous
n'hsiterez pas utiliser des schmas pour illustrer vos propos, ceux-ci permettent souvent de
clarifier. Merci de rpondre directement sur le sujet dans les cases prvues. Ces dernires sont
suffisantes pour vos rponses.
Si vous avez besoin d'une feuille supplmentaire, faites figurer la date, vos noms et prnoms et la
rfrence du contrle, c'est dire : INF 301, UV1 sur chaque feuille. Rfrencez sur cette feuille les
questions auxquelles vous rpondez. Aucun brouillon joint la copie ne sera corrig.
Pour les questions choix multiple, noter quon peut trouver 0, 1 ou plusieurs rponses
slectionner.
Attention lcriture des rponses et des programmes, toute portion de code illisible ou mal
indente ne sera pas corrige.
N'oubliez pas de lire en entier lnonc avant de commencer, de lire les NB, les notes de bas de page
qui donnent les indications pour rsoudre les exercices. Respectez les noms donns aux variables,
attributs, fonctions, etc. Ces noms sont crits avec la police courrier.
Les phrases ou paragraphes sur fond gris permettent de contextualiser les exercices ou de donner des
exemples. Leur lecture n'est pas ncessaire pour russir les rsoudre.
Sujet
Lentreprise ProClean spcialise dans lentretien des espaces publiques a dcid dinvestir
dans les nouvelles technologies pour rduire le cot de ses prestations. Son projet nomm
WALL-E consiste utiliser des robots autonomes pour collecter les dchets et dbris se
trouvant sur les espaces quelle entretient comme les plages, les parcs ou les terrains affrts
pour des festivits.
ProClean reoit des missions (Assignment) de la part de ses clients. Ces derniers sont des
mairies, des collectivits locales, des associations ou des entreprises. Chaque client a un nom, une
adresse mail, un numro de tlphone et ladresse de son sige (rue, code postal et ville). Les
entreprises et les associations ont un numro de SIREN. Les mairies et collectivits locales ont un
numro COG (Code Officiel Gographique). ProClean applique un taux de rduction pour les
clients fidles qui dpend du type de client (mairie, collectivit, association ou entreprise). Un
client est considr fidle sil sollicite sur lexercice prcdent un certain nombre de missions
dfini au dbut de chaque anne.
Un client (Client) peut transmettre plusieurs missions ProClean. Chaque mission
concerne un et un seul terrain. Une mission est identifie par un numro compos de lanne
civile sur quatre chiffres et dun numro squentiel sur quatre chiffres. Au dbut de chaque anne
civile, le numro squentiel est initialis zro. Une mission dfinit la date de dbut
dintervention et la date limite dintervention.
Un terrain (Ground) est dfini par son numro de parcelle, son adresse et par une suite de
coordonnes GPS de ses extrmits. Une coordonne GPS est dfinie par trois attributs : altitude,
latitude et longitude.
Lors de la rception dune mission, ProClean procde aux vrifications habituelles des
donnes. Elle planifie la date dintervention de la mission. Si aucune date nest trouve. Elle
contacte le client pour ngocier la plage dintervention propose. Si aucune solution nest
trouve, elle rejette la mission et informe formellement le client par mail.
Dans le cas o ProClean accepte la mission, elle rserve une quipe dintervenants (Team)
et un ensemble dquipements (EnginSet). Lquipe comporte un chef dquipe, un technicien,
un roboticien et un ou plusieurs collaborateurs de nettoyage. Un personnel a un matricule, un
nom, un prnom, un numro de tlphone, un mail et une adresse de domiciliation.
En ce qui concerne les quipements, ProClean rserve un drone (Drone), plusieurs robots
ramasseurs de dchets (GarbageCollector), une ou plusieurs stations de rechargement
(PowerStation) et un collecteur (Garbage) par type de dchet (WasteType) amnag pour
les robots. Les types de dchet que ProClean traite sont : le plastique, le mtal, le verre, le papier
et les matires organiques.
Chaque robot ramasseur est spcialis dans la collecte dun seul type de dchet. Il possde
un identifiant, une batterie avec une autonomie exprime en nombre de km quil peut parcourir,
une file dattente des tches raliser dune taille prdfinie et un bac de ramassage dune
capacit exprime en kg. Il dispose aussi dun GPS intgr lui permettant de se go-localiser et
dune balance pour peser chaque dchet ramass.
Le drone est capable de survoler le terrain et de dtecter tous les types de dchet. Il
possde un identifiant, une batterie avec une autonomie exprime en nombre de km quil peut
survoler et son champ de perception sphrique exprim en mtres. Il dispose aussi dun GPS
intgr lui permettant de se go-localiser.
Une station de rechargement est caractrise par un identifiant, le temps ncessaire pour
recharger un robot exprim en minutes, le nombre de robots quelle peut charger simultanment
et sa localisation grce un GPS intgr. Sa source dnergie est illimite.
Tlcom Bretagne INF301| Sujet 3 sur 17
[INGNIERIE DU LOGICIEL ET DES DONNES UV1] 14 janvier 2014
Un collecteur de dchets est caractris par un identifiant, le type de dchet quil doit
contenir, sa capacit maximale en kg et sa localisation grce un GPS intgr. Il ne peut accepter
quun seul robot la fois.
Lors dune mission de nettoyage, le drone et les robots sont dploys par le technicien et
mis en marche par le roboticien. Tous les lments (robots, station de rechargement et
collecteur) communiquent entre eux de faon autonome via une liaison sans fil.
Une fois le drone activ, il analyse les coordonnes GPS du terrain et le survole la
recherche des dchets. Ds quil en dtecte un, il dtermine son type et sa localisation. Il cre une
instance dun dchet et lajoute une liste de dchets partage avec les robots spcialiss dans la
collecte du type de dchet en question. Les listes de dchets sont gres par une entit appele
tableau noir (Blackboard).
Chaque robot scrute la liste de dchets qui lintresse. Ds quun dchet est insr, les
robots lancent une ngociation pour dterminer celui qui sera charg de le ramasser. Le principe
est que le robot le plus proche sen charge condition que sa file dattente des tches ne soit pas
pleine. Le robot qui emporte la ngociation rordonne ses tches pour rduire ses dplacements.
Quand un robot une tche dans sa file dattente, il se dirige vers le dchet, le ramasse, le pse,
et le place dans son bac. Sil narrive pas le ramasser, il transmet la tche lensemble des
agents dentretien. Il retire ensuite de sa file dattente la tche en question. Si la file dattente des
tches est vide, le robot simmobilise. Ds quun robot remplit son bac, il interrompt ses activits
pour se diriger vers le bon collecteur et vider son bac.
Les robots et le drone surveillent leur autonomie de dplacement en permanence. Si ce
dernier atteint un seuil ne leur permettant pas datteindre une station de rechargement, ils
interrompent leur activit pour se diriger vers la station la plus proche et se recharger.
La mission se termine, ds que le drone termine de parcourir tout le terrain, que toutes les
listes de dchets sont vides et que les files des tches des robots sont vides. Ds lors, les robots
rejoignent leur localisation de dpart au dbut de la mission.
La diffrence
Exemple dagrgation :
Exemple de composition :
Question 1.3. Expliciter les oprations de vrification des donnes que doit effectuer
ProClean lors de la rception dun ordre de mission.
Description
Droit d'accs
vnement
dclencheur
Entres
Sorties
Contraintes
Importance
Question 2.1. Pour les classes suivantes, cocher la case des attributs qui doivent tre
persistants :
Engin WasteEngin AbstractRobot
identifier wasteType autonomy
location capacity thread
weight blackboard
run
PowerStation GarbageCollector Drone
chargingTime; DEFAULT_TASK_SIZE radius;
maxSimultaneousRobot; taskQueue;
wasteEngin;
Question 2.2. Pour stocker les donnes manipules dans le programme dans une base de
donnes, il est possible de gnrer sur un brouillon le schma conceptuel de donnes
partir du diagramme de classe ci-dessus. partir de ce schma conceptuel, on peut alors
obtenir, par drivation, un schma logique. Dans la zone suivante, ne noter pas le schma
conceptuel, mais juste le schma logique sous forme textuelle avec notation des
contraintes de cls primaires et rfrentielles (on pourra limiter la drivation aux classes
BlackBoard , EngineSet , Engin et ses sous classes, et aux associations qui
les relient).
0 1 2 3 4 plus
On propose le schma logique suivant utilis pour stocker dans une base de donnes
certaines informations du systme :
waste_type(code,type)
waste_state(code, state)
garbage(id,purchase_date,type) avec type rfrence waste_type(code)
waste(number,type,state,weight,id_ref) avec type rfrence waste_type(code), state rfrence
waste_state(code) et id_ref rfrence garbage(id)
Dans la table waste, id_ref vaut nul tant que state est diffrent de THROWN
Question 2.3. crire les requtes SQL permettant de rpondre aux questions suivantes :
1. Donner la liste des dchets (waste) ayant un poids compris entre 500 et 1000.
Zone rserve la
correction
Ne pas remplir
G A B C D
1
1
2
3
2. Donner les id des collecteurs (garbage) achets aprs le 1er janvier 2012 et qui sont destins
collecter les dchets mtalliques (type = METALIC ).
Zone rserve la
correction
Ne pas remplir
G A B C D
1
1
2
3
Zone rserve la
correction
Ne pas remplir
G A B C D
1
1
2
3
4. Donner la liste des dchets de type plastique ou verre qui ne sont pas encore jets dans les
collecteurs.
Zone rserve la
correction
Ne pas remplir
G A B C D
1
1
2
3
5. Donner les id des collecteurs organiques ayant un poids de dchets collects infrieur 100 kg.
Zone rserve la
correction
Ne pas remplir
G A B C D
1
1
2
3
Partie 3 : Programmation
Question 3.1. Cocher les bonnes cases.
Affirmation Oui Non
Une interface peut hriter de plusieurs interfaces.
Une classe peut la fois hriter de plusieurs classes et dune seule interface.
Question 3.3. Quels sont les invariants de sret quil faut dfinir pour grer laccs dun
robot une station de recharge et un collecteur de dchet ? Exprimer-les en franais.
Invariant dune station de recharge :
Question 3.4. Identifier les variables qui permettent dexprimer les deux invariants de
sret prcdents. Utiliser ces variables pour exprimer ces invariants sous forme de
prdicat.
NB : Ne pas hsiter ajouter les variables et/ou proprits manquantes dans le diagramme de classe
pour exprimer les invariants de sret.
Le prdicat :
Le prdicat :
1 package org.enstb.inf.proClean.robot;
2 import java.util.PriorityQueue;
3 import org.enstb.inf.proClean.dump.Waste;
4 import org.enstb.inf.proClean.dump.WasteType;
5 import java.util.Collection;
6
7 public class GarbageCollector extends AbstractRobot {
8 private static final int DEFAULT_TASK_SIZE = 5;
9 private PriorityQueue<Waste> taskQueue;
10 private WasteEngin wasteEngin = null;
11 public GarbageCollector(String identifier,float autonomy,int taskSize,
12 WasteType wasteType,float capacity) {
13 super(identifier,autonomy);
14 if(taskSize<1)
15 taskSize=DEFAULT_TASK_SIZE;
16 this.taskQueue=new PriorityQueue<>(taskSize);
17 this.wasteEngin=new WasteEngin(identifier,wasteType, capacity) {
18 public void clean() {
19 moveToWaste();
20 emptyWaste();
21 this.setWeight(0);
22 }
23 };
24 }
25
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Tlcom Bretagne INF301| Programmation 16 sur 17
[INGNIERIE DU LOGICIEL ET DES DONNES UV1] 14 janvier 2014
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180 }