INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
« Master Chef Info »
Date de la modification Auteur de la modification Objet de la modification
2018/11/01 Julio Santilario Création du document
2018/11/20 Julio Santilario Relecture
2018/11/23 Mathieu Kister, Sylvain Heck, Relectures
Emmanuel Barbolini, Virginie
Bally
2018/11/29 Anne-Laure Gaudon Relecture
2021/11/04
2024/11/25 Domingo Palao Munoz Modification
© UCAC-ICAM (Septembre 2021) Page 1 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
1. CONTEXTE DU PROJET
Une grande chaîne internationale de restaurants souhaite s’équiper d’une nouvelle
application informatique pour améliorer l’accueil du public, le remplissage des salles,
la gestion des réservations et l’organisation du travail en cuisine.
Depuis quelque temps, dans un restaurant, les incidents regrettables se multiplient :
file d’attente trop importante, désorganisation du service entre la salle et la cuisine,
manque de matériel pour servir ou cuisiner entrainant de très longues attentes en
salle pour les clients… En résumé, les clients partaient très insatisfaits. Aujourd’hui
on sait qu’un client insatisfait prend une des applications pour noter le restaurant
et saisit un avis négatif, ce qui a pour conséquence de baisser la réputation de la
maison.
Le directeur du restaurant a décidé d’investir dans le développement d’une
application de gestion et supervision du fonctionnement de son restaurant (salle de
restauration et cuisine). Il fait appel à vous, étudiants ingénieurs en X3 de UCAC-
ICAM, pour l’aider sur ce projet. Vous devez analyser les résultats de la simulation
et faire des propositions d’amélioration. Vos propositions seront dans l’obligation de
reposer sur des éléments mesurables pour mettre en évidence, sans ambiguïté, les
gains que vos propositions suggèrent et donc doivent être exprimées en unité de
mesure (temps, pourcentage, argent, etc…).
2. DESCRIPTION DES LIEUX
Le directeur possède plusieurs restaurants. Chaque restaurant est composé de :
1. La salle de restauration
Selon la taille de l'établissement, la salle de restaurant est découpée afin
d'attribuer le personnel sur un secteur bien précis. Une salle se découpe
généralement en "carrés" et en "rangs". Un rang est composé de plusieurs
tables, le nombre de tables varie selon le type d'établissement. Un carré se
compose généralement de deux rangs. Par exemple :
© UCAC-ICAM (Septembre 2021) Page 2 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
2. La cuisine
Nous pourrions la définir comme le cœur du restaurant. Nous allons retrouver
tout le matériel et les équipements nécessaires pour la réalisation de recettes
de la carte du restaurant.
C’est également le lieu de stockage des denrées, organisé en 3 catégories :
produits surgelés (dans le congélateur), produits frais (dans la chambre
froide), produits longue date de conservation (dans la réserve).
Sans oublier l’espace nettoyage avec le lave-vaisselle et l’évier nécessaire pour
« la plonge ».
3. DESCRIPTION DES POSTES ET DES TACHES
Un restaurant professionnel est dirigé par le gérant ou le directeur. Il s’occupe de
la gestion de la stratégie de développement de son entreprise.
Mais nous allons nous intéresser, pour ce projet, uniquement aux postes et tâches
correspondants aux deux lieux du point précédent : la salle de restauration et la
cuisine.
1. La salle de restauration
Voici une organisation simplifiée pour le projet. Dans la vraie vie, les postes
ne sont pas complétement étanches et ils peuvent avoir des attributions
différentes en fonction de la taille du restaurant et/ou de l’organisation propre.
a. Maître d’hôtel
Véritable chef d’orchestre de la salle de restaurant, le maître d’hôtel est
responsable de l’accueil du client. Il représente la première image que le
client aura de l’établissement. Pour le besoin de notre projet, il attribue une
table au client et appelle le chef de rang pour le placement sur la table.
Le maître d’hôtel est un poste fixe. Il ne bouge pas dans la salle.
On considère un seul maître d’hôtel pour la salle.
© UCAC-ICAM (Septembre 2021) Page 3 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
b. Chef de Rang
Il est responsable d’un certain nombre de tables, qui composent un rang. Il
est sous la responsabilité du maître d’hôtel et peut lui-même superviser et
coordonner l’action de commis positionné sur son rang. Pour simplification
pour notre projet, nous considérerons que nous avons un seul chef de rang
par carré. C’est lui qui distribue les cartes et prend les commandes.
Le chef de rang se déplace dans la salle entre le poste du maitre d’hôtel et
son carré.
S’il n’y a aucune tâche à faire, il peut soit donner un coup de main à l’autre
chef de rang, soit attendre quelque part dans son carré ou à l’accueil du
restaurant.
On considère un seul chef de rang par carré.
c. Serveur/Serveuse
Le serveur a pour fonction de servir les clients de l'établissement après la
commande. Il est garant du déroulé du service pour les tables d’un carré
dont il a la charge et donc de la satisfaction client. A la fin de chaque plat,
il ramasse les assiettes et couverts des clients et les emmène à un endroit
de stockage (ils seront pris en charge par la plonge en cuisine).
Le serveur se déplace seulement dans son carré. S’il n’y a pas de clients
dans son carré, il peut donner un coup de main aux autres carrés.
On considère 2 serveurs par carré.
d. Commis/Commise de salle
Il s’agit d’un poste en salle uniquement, dont la fonction est de servir le
pain, les boissons et s’assurer qu’il ne manque rien au client pour pouvoir
manger.
Il y a un seul commis dans notre restaurant.
© UCAC-ICAM (Septembre 2021) Page 4 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
2. La cuisine
Comme à l'armée, une équipe de cuisine possède un ordre bien défini. Dans ce
métier où l'organisation est importante, ce n'est pas un hasard si de nombreux
termes sont empruntés au domaine militaire. A commencer par la brigade, le
mot qui désigne l'ensemble des cuisiniers. Elle est régie par le chef. Chaque
membre a une fonction précise et une place dans la hiérarchie de cette équipe,
bien que chaque restaurant ait, en fonction de sa taille, son organisation
propre (une brigade peut compter de 1 à plus de 100 personnes).
a. Chef de cuisine
Il est le Chef d'Orchestre de la cuisine. Le chef de cuisine coordonne, dirige
et supervise l'ensemble de l'activité de la cuisine. Il dispatche les tâches
aux chefs de parties. De lui dépend le bon ordonnancement du service aux
clients. Il y en a un seul dans la cuisine.
Le sous-chef ou second assiste le chef et le remplace en son absence. Il est
souvent également chef de partie. Pour simplification, nous ne
modéliserons pas le sous-chef.
b. Chef de partie/cuisinier
Les chefs de partie sont spécialisés dans leur « partie » et ont la
responsabilité de leurs commis, apprentis et/ou stagiaires respectifs. Leur
nombre varie selon l'importance du restaurant et peut monter, dans les
très grandes brigades, jusqu'à six : un pour les sauces, la rôtisserie, le
poisson, les entremets, le garde-manger et la pâtisserie. Ce sont les
cuisiniers qui préparent les bons petits plats que vous allez manger
ensuite. Nous avons 2 chefs de parties dans notre restaurant qui se
partagent toutes les tâches.
© UCAC-ICAM (Septembre 2021) Page 5 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
c. Commis/commise de cuisine
Les commis exécutent les ordres des chefs de partie. Il peut y avoir une
hiérarchie entre eux (premier commis, second commis, autres commis). Les
apprentis et stagiaires assistent ce petit monde. Ils sont là pour apprendre
le métier grâce à l'aide de l'ensemble de la brigade. Notre restaurant
compte 2 commis.
Pour simplifier le projet, nous allons leur assigner certaines tâches bien
précises. (voir point 5)
d. Plongeur/Plongeuse
Les plongeurs et les aides de cuisine ont également leur importance : ils
s'occupent de laver la batterie (matériel de cuisine) aussi bien que la
vaisselle, nettoient parfois les locaux ou aident à l'épluchage et au taillage
des légumes. Notre restaurant compte un plongeur en cuisine.
4. DESCRIPTION DU MATERIEL
Voici la liste du matériel qu’on peut trouver dans un restaurant. On pourrait le définir
comme des ressources partagées. Elle n’est pas exhaustive et elle pourrait être
étendue dans un deuxième temps si vous le considérez nécessaire, en vue des
préconisations à apporter.
1. Matériel commun
● Assiettes – 150 petites pour les entrées, 150 plates, 30 creuses, 150 pour
les desserts.
● Couverts – 150 fourchettes, 150 couteaux, 150 cuillères à soupe, 150
cuillères à café.
● Verres – 150 à eau, 150 à vin, 150 flûtes à champagne (à consommer avec
modération !)
● Jeux de tasses et assiettes à café - 50
● Serviettes en tissu – 150
● Nappes – 40 de taille unique servant pour tout type de table (pour
simplification)
Ce matériel est dit « commun » parce qu’il fait la navette entre le stock, le
dressage du plat en cuisine, la salle de restauration, puis retour en cuisine
pour la plonge et remise dans le stock.
La contenance maximale du lave-vaisselle est de 24 assiettes (quelconques), 24 verres
(quelconques) et 24 couverts de chaque type. Le lave-vaisselle est mis en route
régulièrement (toutes les 10’) par le plongeur (même s’il n’est pas complet mais qu’il
© UCAC-ICAM (Septembre 2021) Page 6 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
contient au moins un objet) et il lave et sèche le matériel. Puis, le plongeur débarrasse
le lave-vaisselle et stocke la vaisselle en cuisine pour une prochaine utilisation (temps
d’exécution pour cette tâche 1’ en moyenne).
Pour les nappes et les serviettes, elles sont mises dans la machine à laver dès qu’il y
en a plus de 10. La machine à laver et à sécher met 15’ pour les rendre propres et
sèches. Le plongeur débarrasse la machine (1’ en moyenne) et les met à disposition
pour une nouvelle utilisation dans la zone d’échange avec la salle de restauration.
Si des objets arrivent pour être lavés et que les machines sont en route, on utilise une
zone de stockage juste à côté avec une contenance illimitée. Une fois la machine
terminée, nous considérons qu’il faut 1’ pour recharger la machine avant qu’elle ne soit
remise en route. S’il n’y a pas d’objets à laver, la machine ne fonctionne pas.
2. Matériel en salle de restauration
● Une salle avec deux carrés.
● Tables : 10 de 2 personnes, 10 de 4 personnes, 5 de 6 personnes, 5 de 8 personnes
et 2 de 10 personnes. La répartition dans les carrés est laissée à votre convenance.
Pour simplification, on considère dans un premier temps que les tables ne
peuvent être ni déplacées ni mises ensemble.
● Chaises – le nombre nécessaire pour compléter toutes les tables. Nous n’avons
pas plus de chaises que celles nécessaires. Pour le moment nous ne prenons pas
en compte ni les bébés ni les très jeunes enfants à table (rehausseurs, chaises
hautes, …)
● Bouteilles d’eau (du robinet) – 40
● Corbeilles à pain – 40
3. Matériel en cuisine
● Feux de cuisson – 5
● Casseroles - 10
● Poêles - 10
● Four – 1 (un seul produit enfourné à la fois)
● Cuillères en bois – 10 (à n’utiliser que pour un type d’aliment pour ne pas
mélanger les goûts)
● Mixeur - 1
● Bols à salade - 5
● Autocuiseur - 2
● Presse-agrumes - 1
● Tamis - 1
● Entonnoirs – 1
● Couteaux de cuisine - 5
© UCAC-ICAM (Septembre 2021) Page 7 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
● Frigo de travail – 1 – capacité pour 10 « préparations en cours »
● Lave-vaisselle – 1
● Machine à laver – 1
● Un évier de grande capacité pour laver le matériel de cuisine – 1
● …
La liste n’est pas complète et elle devra sans doute être complétée avec les outils
qui apparaissent dans les recettes proposées. Si vous en rajoutez, le nombre sera
de 1 de chaque, dans un premier temps.
A chaque utilisation l’outil doit être lavé (hors four et frigo). Le temps de lavage
et de remise en service est de 1’ en moyenne pour les gros objets (poêles,
casseroles, …) et de 30’’ pour les petits objets (cuillère en bois, presse-agrumes,
…).
La cuisine compte également un espace de stockage des produits pour la
préparation des repas :
o Zone de denrées ne nécessitant pas une température froide ou d’être congelées.
Chaque lundi les fournisseurs livrent au restaurant le nécessaire pour une
semaine de travail (selon statistique des commandes en salle des années
précédentes à la même saison). Le stock est réactualisé en temps réel en fonction
des commandes pour faciliter la gestion au chef de cuisine. Pour les épices, nous
ne gérerons pas le stock, pour simplification, nous considérerons qu’il y a toujours
un stock suffisant.
o Chambre froide : toutes les denrées nécessitant une température entre 1 et 4°
maximum. Il y a une capacité pour 2 jours de produits frais. On considère que les
produits sont consommables trois jours maximum. S’ils ne sont pas consommés,
ils seront jetés.
o Congélateur : stockage de produits congelés. La capacité maximale du
congélateur est d’une semaine de produits pour les ingrédients de la carte. Le
stock dépendra de la saison et des restes non utilisés. On considère que les
produits sont consommables un mois maximum. S’ils ne sont pas consommés, ils
seront jetés.
Le stock devra être géré avec une base de données et devra être actualisé en temps-réel
tout au long du service. Pour une certaine simplification, vous pouvez calculer le stock
par pièce et non par kilos (par exemple, 10 bavettes et non 1,5Kg de viande à bavette ;
3 pommes et non 1Kg de pommes)
© UCAC-ICAM (Septembre 2021) Page 8 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
5. DESCRIPTION DE PROCESSUS
Le workflow d’un restaurant est assez complexe et demande une organisation
« d’horloger suisse » pour assurer le service et la satisfaction des clients. En voici une
première description. Elle pourra être complétée avec vos préconisations par la suite.
Le restaurant sera en activité 7/7j en 2 équipes de 10-17h et de 17-24h. La période
d’ouverture au public est de 12h-15h et de 19h-22h. Les commandes clients doivent
être satisfaites pendant ces créneaux. Après 15h ou 22h, plus aucune commande ne
pourra être prise, SAUF, si le client est en liste d’attente du restaurant.
Les clients arrivent au restaurant, soit avec une réservation, soit sans réservation. Ils
sont accueillis par le maître d’hôtel qui leur demande, « combien êtes-vous? » et qui va
leur assigner un placement dans la salle, dans un des carrés. Il doit assigner une table
avec une capacité supérieure ou égale au nombre de personnes. Le maître d’hôtel est
un « poste fixe » (il ne bouge pas de son poste) et sa tâche est de bien dispatcher les
clients en fonctions des tables libres et du nombre de couverts par table en essayant
de minimiser les placements (ne pas donner la table de 10 pour 2 personnes
seulement). Mais, il peut le faire, plutôt que perdre les 2 clients. Tout dépendra du
moment du service, de l’affluence, … c’est lui le maître de la salle. Son objectif est de
maximiser le nombre de couverts pour avoir le maximum de chiffre d’affaires.
Les clients attendent à l’accueil jusqu’à ce qu’un chef de rang vient les chercher pour
les installer dans la table assignée par le maître d’hôtel. Donc, les chefs de rang sont
des postes « mobiles » qui se déplacent dans la salle du restaurant entre les tables, les
cartes et l’accueil. Ils sont responsables de chaque carré et donc, il ne se déplacent pas
dans un autre carré, sauf s’ils en reçoivent l’ordre du maître d’hôtel. Ils présentent la
carte aux clients, laissent 5’ minimum au client avant de revenir prendre leur
commande (environ 30’’ par personne). La commande (entrée et/ou plat et/ou dessert)
est ensuite transmise dans son ensemble au chef de cuisine pour préparation. Le
chef de rang s’occupe de toutes les tables de son carré et il reste à un endroit défini par
vous, dans la salle, s’il n’a rien à faire. Le restaurant compte 40 cartes et elles sont
stockées dans un seul endroit bien précis dans la salle. La commande peut être prise
par le client dans sa totalité au début du service ou bien en 2 temps (entrée, plat puis
dessert).
Après la prise de commande par le chef de rang, le serveur met le pain et l’eau sur la
table. Pour les tables de plus de 6 personnes, 2 corbeilles et 2 bouteilles. Il attend au
comptoir des commandes préparées s’il n’a rien à faire. Dès qu’une commande préparée
arrive au comptoir, il va la servir à la table correspondante. Attention, tous les plats
d’une même table doivent être servis au même moment, c’est-à-dire, toutes les entrées
au même moment puis tous les plats principaux au même moment puis tous les
desserts en même temps. Le temps pour manger est en moyenne de 15’ pour les
entrées, 25’ pour les plats et 10’ pour les desserts. Il débarrasse la table au fur et à
mesure de l’avancement du repas (il enlève les assiettes des entrées, par exemple,
avant de servir le plat principal). Puis il fait de même entre le plat principal et le
© UCAC-ICAM (Septembre 2021) Page 9 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
dessert. Attention, il ne peut pas prendre plus de 5 couverts en même temps. Il emmène
les assiettes (et les couverts si nécessaire) au comptoir des plats sales pour qu’ils soient
pris en charge en cuisine pour les laver. Nous considérons cet espace suffisamment
grand, avec une capacité de 50 assiettes, 50 verres, 50 couverts.
Pour simplification, nous considérons que les postes « mobiles » (chef de rang et
serveur) se déplacent dans les couloirs entre les tables et que l’accueil et les comptoirs
sont « des portes » dans lesquelles on prend ou dépose des objets. Le client est
également un « élément mobile » qui suit le chef de rang. Pas besoin de représenter le
même nombre de clients que de personnes. Un élément graphique suffira, en marquant
bien sûr sur cet élément le nombre de personnes qui se déplacent. Cela ne signifie pas
qu’il n’y a qu’un type de client par table !
Vous devrez modéliser toute une série de clients différents, avec des stratégies
différentes (goûts, temps de présence, choix du menu, sollicitations aux serveurs,
prises de commande en une seule fois ou en deux fois, ...). Les clients restent dans le
restaurant une heure en moyenne. Vous pouvez simuler des clients pressés (30’ par
exemple) et des clients « cools » (2 heures par exemple). Pendant son repas, il peut
demander une nouvelle bouteille d’eau ou du pain. Également il pourrait demander
une bouteille de vin de la carte.
Une fois que le client part, le serveur débarrasse la table (environ 2’ pour une table de
4 personnes), et le chef de rang se dépêche de dresser de nouveau la table pour
accueillir de nouveaux clients (environ 3’ pour une table de 4 personnes). Le client paie
l’addition auprès du maître d’hôtel. Attention, il peut avoir de l’attente au moment de
payer et vous devez en tenir compte. Le temps moyen est de 20’’ par personne.
Vous pouvez également modéliser le commis de salle qui pourrait remplacer le serveur
s’il est très occupé.
Pendant que tout ce petit monde s’agite dans la salle de restauration, la salle de cuisine
n’a pas chômé non plus et elle se prépare à honorer toutes les commandes !
Le chef de partie pâtisserie doit préparer, avant l’ouverture au public, une certaine
quantité de desserts qui seront dans la carte.
Le chef de cuisine est un « poste fixe ». Il reçoit les commandes et son rôle est de les
ordonner pour minimiser le temps d’attente du client, de regrouper les commandes
similaires de la même table ou des tables différentes, de dispatcher les tâches entre les
chefs de parties/cuisiniers (on va les assimiler pour simplifier).
Les cuisiniers réalisent les recettes données par le chef de cuisine et ils peuvent
découper la recette en plusieurs sous-tâches en parallèle pour accélérer le service. Les
temps dépendent de chaque recette. Les cuisiniers sont en attente s’ils n’ont pas l’outil
© UCAC-ICAM (Septembre 2021) Page 10 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
nécessaire pour faire la préparation. Par exemple, il peut préparer dans la même poêle
la même recette s’il est en train de l’utiliser à ce moment-là. (Idem pour la même
cuillère en évitant que les goûts ne se mélangent). S’il n’utilise pas un outil, il faut qu’il
le libère et le mette à côté de l’évier pour qu’il soit lavé par le plongeur. (Pour des
raisons de simplification, le temps de cette tâche est réduit à 0).
Tous les plats d’une même table doivent sortir en même temps en salle, même si les
temps de préparation sont différents. Ils attendent dans le comptoir des plats préparés.
Ce comptoir a une surface limitée à 15 préparations (soit 15 assiettes).
Le commis de cuisine s’occupe d’éplucher les légumes, d’aller chercher les ingrédients
dans la zone de stockage et d’emmener les plats préparés par les cuisiniers au
comptoir.
À tout moment, le plongeur s’occupe de mettre les objets sales dans les machines à
laver. Il se déplace entre le comptoir des plats sales et le coin « nettoyage » de la cuisine.
Il récupère également les objets sales de la cuisine pour les laver à la main.
Le chef surveille les commandes et annule de la carte tel ou tel plat si le stock est
épuisé ou un des ingrédients est insuffisant.
6. RECETTES PROPOSEES
Un échantillon des recettes est disponible dans les ressources sur Moodle. Mais il n’est
pas exhaustif. Vous devez compléter la carte. Elle doit comporter 10 entrées, 10 plats
et 10 desserts.
Pour votre gestion des stocks, nous considérerons que le restaurant met à l’honneur
chaque jour un menu différent – entrée-plat-dessert (50 assiettes) par service et une
moyenne de 10 assiettes des autres recettes par service.
Les recettes sont préparées par les cuisiniers/chefs de partie. Certaines recettes
demandent une partie ou la totalité de la préparation avant l’accueil au public. Le chef
de cuisine décide si une recette sort de la carte en cas d’épuisement d’ingrédients ou
s’il demande à un chef en cuisine d’en refaire.
Chaque recette comporte un intitulé, les ingrédients pour un nombre de personnes, les
différentes étapes (ou sous-tâches) pour la réaliser, le temps de préparation, le temps
de cuisson, le temps de repos, …
CONSEIL : une recette est un processus qui peut être découpé en sous-tâches,
certaines pouvant être faites en parallèle, d’autres non. Les recettes sont forcément
assignées et faites par quelqu’un en cuisine.
© UCAC-ICAM (Septembre 2021) Page 11 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
7. CAHIER DES CHARGES ET CONTRAINTES
1. Fonctionnel
● Diagrammes de cas d’utilisation
● Diagrammes d’activité de chaque poste de travail.
● Simulation graphique du fonctionnement du restaurant en temps réel.
Pour les besoins de la démonstration (et des tests), nous vous demandons
d’avoir un mode simulation en temps accéléré à l’échelle (1’ = 1’’). Cela veut
dire que vous serez capables de nous montrer en 7’ de démonstration le
fonctionnement d’une équipe de travail de 7 heures.
● L’application doit permettre de visualiser l’état de chaque personne
(salariés ou clients) et de chaque objet modélisé ainsi que les situations
limites, et mettre des alertes sur le manque de telle ou telle ressource
(presque plus d’assiettes ou plus de verres du tout, …). Pour cela vous
devez avoir une fenêtre de contrôle (vous pouvez vous inspirer des pages
de contrôle des superviseurs comme Nagios ou Centreon avec lesquels vous
avez travaillé dans l’UE précédente).
● Prévoir le mode « PAUSE » de votre application pour pouvoir stopper tous
les processus et analyser la situation en cours.
● Modélisation/implémentation de plusieurs catégories de clients avec des
comportements différents.
● Modélisation/implémentation de tous les postes décrits dans la partie
« Description de postes ».
● Modélisation/implémentation de tout le matériel décrit (et nécessaire pour
la réalisation des recettes)
● Préconisations sur le dimensionnement du restaurant et des ressources :
les chiffres donnés sont corrects, surdimensionnés ou sous-dimensionnés.
Dans ce cas-là, vous devez donner les postes à pourvoir ou à supprimer et
le matériel à garder, à supprimer ou à racheter. Également, on attend de
vous des préconisations sur le processus global de la gestion du restaurant.
● Les temps de chaque tâche, les quantités d’objets ou des postes, le nombre
de clients par type, le temps en mode accéléré, … tout doit être
paramétrable dans l’application.
2. Technique
● (OBLIGATOIRE) Diagrammes de composants et classes de l’application
(ou applications).
● (OBLIGATOIRE) Diagramme(s) de séquences
● (OBLIGATOIRE) Au moins un IPC par type (synchro, échange de
données ou les deux) doit être utilisé. Les threads vous seront
indispensables également. A vous de décider sur l’utilisation d’un
processus léger ou pas en fonction des situations. Voir ressource « Aide-
mémoire » IPC sur Moodle.
● (OBLIGATOIRE) Utilisation des threads
© UCAC-ICAM (Septembre 2021) Page 12 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
● (OBLIGATOIRE) Utilisation des sockets pour les échanges entre la salle
de restauration et la cuisine.
● (OBLIGATOIRE) Utilisation du langage C++. (Utilisation de QT pour
l’interface graphique).
● (OBLIGATOIRE) Base de données de stocks en MySQL ou MariaDB ou
autres, actualisée avec les livraisons et mise à jour en temps-réel en
fonction des commandes.
● (OBLIGATOIRE) Utilisation de Git et du TDD pendant tout le
développement du projet (tous les membres du groupe doivent démontrer
leur travail sur Git. Le tuteur regardera les statistiques d’utilisation des
fichiers tout au long du projet).
● (BONUS 1) Chaque tâche de chaque processus ou thread doit être
horodaté dans un log (en BDD ou en fichier log unique)
● (BONUS 2) Utilisation de 2 machines Windows (l’utilisation de QT comme
outil de création de l’interface graphique permet l’utilisation des machines
Linux) distinctes : une pour la cuisine et une pour la salle de restauration
● (BONUS 3) Utilisation de 2 machines distinctes pour la cuisine et la salle
de restauration : une sur Windows avec .NET et l’autre sur Linux en Java.
● (BONUS 4) Possibilité de sauvegarde une situation déterminée dans un
service et de pouvoir la « rejouer » plus tard. Cela peut être très utile en
complément du mode PAUSE.
8. ORGANISATION DU PROJET ET LIVRABLES ATTENDUS
Le projet se déroule en groupes de 4 (max. 5 personnes) du 02 décembre au 06
décembre 2024.
● Au plus tard le mercredi 04 décembre avant 12h00, vous devez rendre le
« Dossier Architecture (logiciel) » comportant :
o Tous les diagrammes UML fonctionnels et techniques demandées.
o Détail et explication de tous les DP utilisés dans l’application, MVC
inclus.
o MCD de la BDD et un script SQL pour sa création.
Ce livrable est à déposer sur un répertoire de votre dépôt Git (le nommer
obligatoirement LIVRABLES FINAUX, svp) et vous informerez votre
tuteur pour qu’il puisse le récupérer en lui envoyant un lien vers votre
dépôt Git.
Ce livrable peut être rendu avant si vous avez terminé la modélisation mais
attention à ne pas le négliger. Avoir une bonne modélisation et penser à
l’utilisation des DP est indispensable pour réussir ce projet. Cela vous
© UCAC-ICAM (Septembre 2021) Page 13 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
évitera des développements trop précipités et parfois inutiles. Si la
modélisation est bien faite, vous gagnerez du temps pour le codage.
● Le 05 avant 17h, mettre dans le répertoire LIVRABLES FINAUX de Git,
toutes les sources de votre projet (pour rappel - Git doit être utilisé
pendant le développement et pas seulement comme un dépôt pour les
livrables !). C’est uniquement cela qui pourra être analysé et évalué par le
jury du projet. N’oubliez pas que vous devez travailler en TDD et donc, il
est indispensable de mettre le rapport des tests effectués (soit
automatiquement généré par l’IDE, soit un rapport de tests et recette que
vous avez effectué vous-mêmes).
● La journée du 06 décembre sera consacrée à la soutenance de votre projet.
Elle se déroulera pendant 1h00 de la façon suivante :
o Démonstration de votre application en temps accéléré. Présentation
d’une ou de plusieurs situations normales ou posant des problèmes
(n’hésitez pas à utiliser plusieurs PC en parallèle pour cela). Donner
vos préconisations. (Max 20’)
o Présentation d’un slide sur la répartition des tâches et les
responsabilités de chaque membre du groupe. (Max 1-2’)
o Chaque membre du groupe doit démontrer ses connaissances sur le
projet en exposant au jury une explication technique sur sa partie.
(Max 2’ par personne)
o Le jury pourra donc vous poser des questions sur tous vos livrables
et sur la soutenance. Une partie de la note finale sera basée sur vos
réponses aux questions posées par les jurys (Max 15’).
o Délibération des jurys (Max 10’)
o Restitution au groupe (Max 5’)
Pour plus d’explications, n’hésitez pas à demander à votre tuteur. Le forum du
projet est également à votre disposition pour toute question fonctionnelle sur le
projet.
9. GRILLE D’EVALUATION
Le projet comporte deux notes différentes dans l’UE 5.2 :
● Note Dossier Architecture (logiciel) du projet Programmation
Concurrente. (coeff. 1)
● Note de la réalisation du Projet Programmation Concurrente. (coeff. 3)
La note finale du projet sera calculée de la manière suivante – voir grille :
● 40% sur la réalisation demandée (certains points obligatoires).
● 40% sur les compétences individuelles (intervention technique pendant la
soutenance et question(s) posée(s) par les jurys)
© UCAC-ICAM (Septembre 2021) Page 14 de
15
INGENIEUR INFORMATIQUE – X3
PROGRAMMATION CONCURRENTE
PROJET PROGRAMMATION SYSTEME
● 10% sur l’évaluation par les pairs
● 10% sur le jury en fonction de la prestation orale lors de la soutenance
IMPORTANT : le projet est composé d’une partie OBLIGATOIRE. Ce qui est
demandé doit être totalement réalisé et présenté le jour de la soutenance. Si cette
partie n’est pas réalisée, la note sera C pour chaque personne du groupe (voire D
si les jurys constatent un manque important de travail).
Les fonctionnalités optionnelles et/ou BONUS peuvent vous aider à compenser
certains manques dans vos réalisations. MAIS attention à ne pas vous disperser
pour autant dans trop de choses à la fois. Elles seront prises en compte seulement
si la partie obligatoire est réalisée.
La grille d’évaluation étudiant détaillée sera disponible à partir du 6 décembre
sur Moodle.
Et n’oubliez pas que « Vous êtes des Chefs ». Bon travail et bon projet à tous.
© UCAC-ICAM (Septembre 2021) Page 15 de
15