Informatique de base - 2e
candi sc. éco. option info. 2 Année académique 2002-2003
Enoncé
Une société de fret
aérien doit assurer le chargement de colis
dans les avions
Les clients déposent
les colis à envoyer à la société
Les colis doivent
être expédiés dans l’ordre de leur arrivée
Chaque colis a un
poids et un volume donné
Les colis sont
assemblés par un magasinier en palettes ayant
un volume maximum donné
Chaque avion peut
transporter au maximum un volume et un
poids total donné
Enoncé
Les palettes sont
amenées à l’avion par
un manutentionnaire
Lorsqu’une palette
risque d’amener à un
chargement excessif, le
magasinier
constitue une palette
partielle afin de
remplir un maximum l’avion
Les instructions de
conditionnement et
de chargement sont données
au
magasinier et au
manutentionnaire par le
responsable du planning sur
base des
bons d’expédition fournis
par les clients
lors du dépôt des colis
Concepts
Système
de gestion des colis Système
de gestion des colis
Agents
Client (humain)
Magasinier (humain)
Manutentionnaire
(humain)
Responsable du
planning (humain)
Système de gestion
des colis (système informatique)
Objets
Colis
Palettes
(Avion)
Bon d’expédition
Concepts
Evénements
Réception colis
Assemblage des colis
en palettes (conditionnement)
Chargement des
palettes dans l’avion
Dispatching des
instructions de conditionnement et de chargement
Conditions -
contraintes
Volume palette ¡Ü
Volume Maximum d’une palette
Volume Total ¡Ü
Volume Maximum autorisé par avion
Poids Total ¡Ü
Poids Maximum autorisé par avion
Informatique de base - 2e
candi sc. éco. option info. 6 Année académique 2002-2003
Hypothèses
Le responsable de
planning gère le système informatique
donc un
seul agent : Planning
On fait les
simplifications suivantes :
il n’y a qu’un
type de palette
le poids d ’une
palette est la somme du poids des colis qu’il
contient
le volume d ’une
palette est la somme des volumes des colis qu’il
contient
On suppose que :
le volume d’un
colis ne dépasse pas le volume maximum d’une
palette
le poids d’une
palette ne dépasse pas le poids maximum autorisé
dans l’avion
Client Manutentionnaire
Magasinier
Sytème
de
planning
Instructions
de chargement
Instructions de
conditionnement
Colis Palettes
Diagramme de
contexte Diagramme de
contexte
Bon
d’expédition
Activités Activités
Le client
dépose un colis et rempli un bon d’expédition
Le magasinier
réceptionne les colis et conditionne les
palettes
à l’aide d’un chariot
élévateur suivant les instructions fournies
par le planning
Le manutentionnaire
réceptionne les palettes et les charge
dans l’avion à l’aide d’un
tracteur avec plateforme élévatrice
suivant les instructions
fournies par le planning
Le planning
enregistre l’arrivée d’un colis et
dispatche les
instructions de
conditionnement et de chargement au
magasinier et au
manutentionnaire sur bases des bons
d’expédition
Diagramme d’activité
1 Diagramme d’activité
1
Formulaire d’expedition
Quai de déchargement
Colis
Déposer
un colis
Client
Arrivée du client
Bon d’expédition
Diagramme d’activité
2 Diagramme d’activité
2
Chariot élévateur
Palette Liste de colis Conditionner
palette
Magasinier
Ordre de
conditionnement
Diagramme d’activité
3 Diagramme d’activité
3
Tracteur
Plateforme élévatrice
Liste de palettes Charger
avion
Manutentionnaire
Ordre de
chargement
Diagramme d’activité
4 Diagramme d’activité
4
Ordre de
conditionnement
Liste des colis gèrer
les colis
Planning
Arrivée d’un colis
Ordre de
chargement
Bon d’expédition
Liste des palettes
Informatique de base - 2e
candi sc. éco. option info. 13 Année académique 2002-2003
Client Manutentionnaire
Magasinier
Sytème
de
planning
Instructions
de chargement
Instructions de
conditionnement
Colis
Palettes
Limites de la
solution Limites de la
solution
Bon
d’expédition
Fonctionnalités Fonctionnalités
Enregistrer l’arrivée
d’un colis :
Mettre à jour l’inventaire
des colis en attente et déclencher si
nécessaire l’émission d’un
ordre de conditionnement
Générer un ordre de
conditionnement :
Produire la liste des
colis à assembler en une palette et déclencher
si nécessaire un ordre de
chargement
Générer un ordre de
chargement :
Produire la liste des
palettes à charger dans l’avion
Enregistrer
l’arrivée d’un
colis
Colis
Liste des colis
en attente
Fonctionnalités :
Fonctionnalités
:
Enregistrer l’arrivée d’un colis
Enregistrer
l’arrivée d’un colis
Ordre de
conditionnement
Poids limite
Volume limite
Mettre à jour l’inventaire
des colis en attente
et déclencher si
nécessaire l’émission d’un
ordre de conditionnement
Générer
un ordre de
conditionnement
Liste des colis
à conditionner
Liste des colis
en attente
Fonctionnalités :
Fonctionnalités
:
Générer un ordre de conditionnement
Générer
un ordre de conditionnement
Liste des palettes
en attente
Ordre de
chargement
Poids limite
Volume limite
Produire la liste des colis
à assembler en une
palette et déclencher
si nécessaire l’émission
d’un ordre de chargement
Générer
un ordre de
chargement
Liste des
palettes
à charger
Liste des palettes
en attente
Fonctionnalités :
Fonctionnalités
:
Générer un ordre de chargement
Générer
un ordre de chargement
Produire la liste des
palettes
à charger dans l’avion
Types de données
Types de données
Colis: COLIS
COLIS = ENREG[Poids,
Volume: ENTIER; …]
Liste des colis en
attente: FILECOLIS
FILECOLIS =
FILE[COLIS]
Liste des colis à
conditionner: ENSCOLIS
ENSCOLIS = ENS[COLIS]
Poids limite, Volume
limite: ENTIER
Liste des palettes en
attente: FILEPAL
FILEPAL = FILE[ENSCOLIS]
Liste des palettes à
charger: ENSPAL
ENSPAL = ENS[ENSCOLIS]
Opérations sur
les types Opérations sur
les types
(à propos du
conditionnement)
Poids:
FILECOLIS ¨ ENTIER
Poids(FileVide) ß
0
Poids(Ajout(x,F)) ß
Poids(x) + Poids(F)
Volume:
FILECOLIS ¨ ENTIER
Volume(FileVide) ß
0
Volume(Ajout(x,F)) ß
Volume(x) + Volume(F)
Poids: ENSCOLIS
¨ ENTIER
Poids(EnsVide) ß
0
Poids(Ajout(x,F)) ß
Poids(x) + Poids(F)
Volume:
ENSCOLIS ¨ ENTIER
Volume(EnsVide) ß
0
Volume(Ajout(x,F)) ß
Volume(x) + Volume(F)
Opérations sur
les types Opérations sur
les types
(à propos du chargement)
Poids: FILEPAL ¨
ENTIER
Poids(FileVide) ß
0
Poids(Ajout(x,F)) ß
Poids(x) + Poids(F)
Volume: FILEPAL
¨ ENTIER
Volume(FileVide) ß
0
Volume(Ajout(x,F)) ß
Volume(x) + Volume(F)
Poids: ENSPAL ¨
ENTIER
Poids(EnsVide) ß
0
Poids(Ajout(x,E)) ß
Poids(x) + Poids(E)
Volume: ENSPAL ¨
ENTIER
Volume(EnsVide) ß
0
Volume(Ajout(x,E)) ß
Volume(x) + Volume(E)
Décomposition fonctionnelle :
Décomposition
fonctionnelle :
Enregistrer l’arrivée d’un colis
Enregistrer
l’arrivée d’un colis
Enregistrer
l’arrivée
d’un colis
Vérification
limite
Mise à jour
de la liste
des colis
Colis
Liste des colis
en attente
Ordre de
conditionnement
Poids limite Liste des colis
en attente
Volume limite
Enregistrer l’arrivée
d’un colis
Décomposition fonctionnelle :
Décomposition
fonctionnelle :
Enregistrer l’arrivée d’un colis
Enregistrer
l’arrivée d’un colis
Vérification
limite
Mise à jour
de la liste
des colis
Liste
des colis
en
attente
Colis
Liste de colis
en attente
Poids limite Ordre de
conditionnement
Liste des colis
en attente
Volume limite
Spécification :
Spécification
:
Mise à jour de la liste des colis
Mise
à jour de la liste des colis
Description:
Mettre à jour l’inventaire
des colis en attente
Paramètres
en entrée:
C (Colis):
COLIS
Objects
utilisés:
L (Liste
des colis en attente): FILECOLIS
Précondition:
C .
L
Postcondition:
L’ = Ajout(C, L)
Spécification :
Spécification
:
Vérification limite
Vérification
limite
Description:
Déclencher si
nécessaire l’émission d’un ordre de conditionnement
Paramètres
en entrée:
L (Liste
des colis en attente): FILECOLIS
P (Poids
limite), V (Volume
limite): ENTIER
Précondition:
-néant-
Postcondition:
..Si Poids(L) = P . Volume(L) = V
alors Générer un ordre de
conditionnement
Décomposition fonctionnelle :
Décomposition
fonctionnelle :
Générer un ordre de conditionnement
Générer
un ordre de conditionnement
Générer un
ordre de
conditionnement
Vérification
capacité avion
Mise à jour
des limites
Ordre de
chargement
Liste des colis
en attente
Poids limite
Liste des colis
à conditionner
Liste des colis
en attente
Liste des palettes
en attente
Liste des palettes
en attente
Génération
liste des colis
à conditionner
Poids limite
Volume limite
Mise à jour
de la liste des
palettes
Volume limite
Générer un ordre de
conditionnement
Décomposition fonctionnelle:
Décomposition
fonctionnelle:
Générer un ordre de conditionnement
Générer
un ordre de conditionnement
Vérification
capacité avion
Génération
liste de colis à
conditionner
Mise à jour de
la liste de
palettes
Poids limite
Liste des colis
en attente
Liste des palettes
en attente
Ordre de
chargement
Liste de colis
en attente
Poids limite
Liste des colis
à conditionner
Liste des palettes
en attente
Volume limite
Volume limite
Liste
des colis
à
conditionner
Liste
des
palettes
en
attente
Mise à jour
des limites
Spécification :
Spécification
:
Génération liste de colis à
conditionner
Génération
liste de colis à conditionner
Description:
Générer la liste
des colis à conditionner et mettre à jour la liste des
colis en attente
Objects
utilisés:
LA (Liste
des colis en attente): FILECOLIS
P (Poids
limite), V (Volume
limite): ENTIER
Résultat:
LC (Liste
des colis à conditionner): ENSCOLIS
..Précondition:
..Poids(LA) = P . Volume(LA) = V
..Postcondition:
..si Poids(LA) = P . Volume(LA) = V
alors (x . LC . x . LA) . LA’ = FileVide
sinon (x .LC . (x . LA . x . Dernier(LA))) . LA’ = Dernier(LA)
Spécification :
Spécification
:
Mise à jour de la liste de palettes
Mise
à jour de la liste de palettes
Description:
Mettre à jour l’inventaire
des palettes en attente
Paramètres
en entrée:
P (Liste
des colis à conditionner): ENSCOLIS
Objects
utilisés:
L (Liste
des palettes en attente): FILEPAL
Précondition:
P .
L
Postcondition:
L’ = Ajout(P, L)
Spécification :
Spécification
:
Mise à jour des limites
Mise
à jour des limites
Description:
Mettre à jour des
limites pour le remplissage d’une palette
Paramètres
en entrée:
L (Liste
des palettes en attente): FILEPAL
Résultats:
PL (Poids
limite), VL (Volume
limite): ENTIER
Constantes:
VM (Volume
max par palette): ENTIER
PA (Poids
max par avion), VA (Volume
max par avion): ENTIER
Précondition:
-néant-
Postcondition:
PL = PA - Poids(L)
VL = Min(VA -
Volume(L), VM)
Spécification :
Spécification
:
Vérification capacité avion
Vérification
capacité avion
Description:
Déclencher si
nécessaire l’émission d’un ordre de chargement
Paramètres
en entrée:
L (Liste
des palettes en attente): FILEPAL
Constantes:
PA (Poids
max par avion), VA (Volume
max par avion): ENTIER
Précondition:
-néant-
Postcondition:
.PL = PA -Poids(L)
..VL = Min(VA -Volume(L), VM)
alors Générer un ordre de
chargement
Décomposition fonctionnelle :
Décomposition
fonctionnelle :
Générer un ordre de chargement
Générer
un ordre de chargement
Générer un
ordre de
chargement
Liste des palettes
à charger
Liste des palettes
en attente
Spécification :
Spécification
:
Générer un ordre de chargement
Générer
un ordre de chargement
Description:
Générer la liste
des palettes à charger et mettre à jour la liste des
palettes en attente
Objects
utilisés:
LA (Liste
des palettes en attente): FILEPAL
Résultat:
LC (Liste
de palettes à charger): ENSPAL
Constantes:
PA (Poids
max par avion), VA (Volume
max par avion): ENTIER
Précondition:
..-néant
Postcondition:
..Si Poids(L) = PA .
Volume(L) = VA
alors Générer un ordre de chargement