Examen informatique temps-réel

Transcription

Examen informatique temps-réel
Examen d’Outils de Développement Logiciel
2015-2016
6 janvier 2016 (am)
Pierre Manneback, Sébastien Frémal
Il vous est demandé de concevoir et d’implémenter une application de gestion simple pour supérette.
Cette application doit répondre aux besoins suivants :
- Gérer un inventaire unique qui contient l'ensemble des produits du magasin. Chaque produit est
identifié par un nom distinct. A chaque produit est associé sa quantité disponible dans l'inventaire
ainsi que son prix.
- Il doit être possible de créer des packs promotionnels reprenant plusieurs produits. Le prix de vente
des packs est obtenu en additionnant les prix individuels des produits et en octroyant une remise
dépendant du pack, entre 5% et 50%.
- Chaque client se constitue un panier d'achats. Les objets placés dans le panier sont retirés de
l'inventaire. Lorsque la quantité disponible d'un article devient nulle, cet article est retiré de
l'inventaire. Si un client ne peut pas retirer un article de l'inventaire, car il ne s'y trouve pas ou qu'il
s'y trouve en quantité insuffisante, une exception « ProductNotAvailable » est levée.
- Les clients peuvent payer de deux manières différentes : soit en espèce, soit à l'aide d'une carte de
crédit. Dans le cas du paiement en espèce, le coût du panier doit être inférieur au montant disponible.
Dans le cas du paiement par carte de crédit, le montant cumulé des différents achats doit être
inférieur à une certaine limite (200€). Si un client ne peut pas payer ses achats, une exception est
levée et le panier du client est remis dans l'inventaire.
Partie Modélisation (8 pts, sur papier)
1. Présenter deux cas d’utilisation principaux de l’application, documentés par un diagramme de
séquence Système.
2. Proposer le diagramme de classes de l’application.
3. Présenter et motiver l’emploi de de plusieurs Design Pattern dans le cadre de cette
application.
Partie Programmation (8 pts, sur PC)
Implémenter une solution correspondante à la modélisation à l'aide du langage de programmation
Java.
Voici l’ordre d’implémentation proposé :
1. Implémentation des produits.
2. Implémentation des packs promotionnels.
3. Implémentation du stockage des produits/packs dans l'inventaire.
4. Implémentation des paniers produits/packs dans le client.
5. Implémentation dans l'inventaire de la fonction qui permet de récupérer un produit/pack.
6. Implémentation du système de paiement.
7. Implémentation de la remise en inventaire des produits du panier d'un client « insolvable ».
L'implémentation de la solution sera testée à l'aide d'une classe de test sans interface graphique.

Documents pareils