J'aime le Smalltalk

Aller au contenu | Aller au menu | Aller à la recherche

Le projet SmallTalk

Fil des billets - Fil des commentaires

Diagramme de classes [version 3]

Voici notre troisième mouture du diagramme de classes :

classeOF-v5

Les modifications :

La gestion du stock de produits finis :

  • Ajout d'une classe ProduitFinis,
  • Ajout d'une classe stockPF permettant de gérer les stocks de produits finis.

Gestion de la nomenclature :

  • Nous avons choisis de supprimer la classe "Nomenclature",
  • La nomenclature sera représentée par les affectations de matière première.

Mise à jour des méthodes :

Nous avons mis à jours les méthodes qui ont été créées au besoin lors des phases de programmation.

A bientôt, Romain.

Création d'un scénario pour les jeux de tests

Nous utilisons des méthodes de développement agile nous travaillons sur le code du programme en même temps que sa conception.

Nous travaillons donc par itération, nous réfléchissons à la conception d'un morceau du programme, nous le développons et nous le testons tout de suite. Nous essayons de le faire marcher, si on se rend compte que la conception pose problème on laisse le code tel quel et on revient sur la conception.

Comme cela la conception s'adapte aux contraintes techniques réellles (qu'on a rarement en tête au début du projet) et le programme est structuré car il a été conçu proprement sur le papier.

Nous avons besoin de pouvoir tester le programme, pour cela nous avons besoins d'un (ou plusieurs) jeux de tests. Ce sont des morceaux de code qui simulent l'utilisation du programme.

Nous nous sommes répartis les tâches, pendant que l'un développe le coeur du programme, l'autre travail sur les jeux de tests.

J'ai donc commencé à réfléchir à un scénario pour tester le fonctionnement de notre programme Smalltalk.

Voici notre premier scénario :

Scénario 1

Scénario avec 3 OF :

Nous souhaitons fabriquer des étagères (toutes identiques). Nous avons deux matériaux : des planches de bois, des barres de métal. Nous avons deux outils : "scie-circulaire" et "tourneuse"

Nous devons usiner les planches de bois à la bonne taille avec la "scie-circulaire", et usiner les barres de métal pour avoir des vis à bois avec la "tourneuse".

Il faut deux opérateurs pour la scie circulaire et un opérateur pour la tourneuse.

Matières première pour 1 étagère : - 2 planche en bois. - 1 barre en métal.

Temps machine pour 1 étagère : - 2h sur la scie circulaire. - 1h sur la tourneuse.

Nous somme le 1er février 2010. Nous avons en commande 6 étagères à livrer pour la fin du mois (le client vient chercher son produit directement dans le stock, on ne gère pas la livraison).

Les commandes sont divisées en deux lots de 2 étagères et deux lots de 1 étagère. La production décide de fabriquer 3 lots de 2 étagères.

L'approvisionnement du stock se fait automatiquement quand le niveau des stock atteint le seuil minimum.

Je mettrais à jours le billet avec le code correspondant dès qu'il fonctionneras.

A bientôt, Pierre

Etats d'un ordre de fabrication

Voici notre modélisation des différents état que peut prendre un ordre de fabrication.

Diagramme-d-etat-logique-v1.jpg

Il est possible d'annuler un OF que s'il n'a pas été lancé.

Tant que l'OF n'est pas terminé et qu'on ne souhaite pas le suspendre il reste en cours de fabrication.

Lorsqu'on suspend un OF il est en attente tant qu'on ne lui donne pas l'ordre de reprendre.

Je penses pour le reste que le diagramme parle de lui même.

Pierre

Deuxième version du diagramme de classes

Nous avons poussé notre réflexion sur le sujet un peu plus loin et nous avons créer un nouveau diagramme de classes.

Le voici :

classeOF-v4.jpg

J'ai aussi réfléchis aux différentes méthodes de la classe OF (Ordre de Fabrication). On considère qu'un OF ne peut pas être annulé si il a déjà été lancé.

Voici les méthode d'un OF :

creerOF

  • génération automatique d'une référence ("OF" + chiffres)
  • l'utilisateur définit la référence de la pièce à fabriquer
  • l'utilisateur définit la quantité à produire (integer)
  • l'utilisateur définit la date de début de fabrication
  • l'utilisateur définit la date de fin de fabrication
  • affectation d'au moins 1 employé
  • affectation d'au moins 1 machine
  • affectation d'au moins 1 matière

lancerOF

Condition(s) d'exécution :

  • on vérifie si les ressources sont disponible, sinon on refuse de lancer la fabrication.

Ce qui se passe quand on appel la méthode :

  • les matières première requise sont enlevées du stock
  • les ressources sont occupées (disponible = false)

solderOF

Condition(s) d'exécution :

  • on vérifie si l'OF à été lancée, sinon on refuse de solder l'OF.

Ce qui se passe quand on appel la méthode :

  • les ressources sont à nouveau disponible (disponible = true)
  • les pièces finis arrivent en stock

suspendreOF

Condition(s) d'exécution :

  • on vérifie si l'OF à été lancée, sinon on refuse de suspendre l'OF.

Ce qui se passe quand on appel la méthode :

  • les ressources sont à nouveau disponible (disponible = true)

reprendreOF

Condition(s) d'exécution :

  • on vérifie si l'OF à été suspendus, sinon on refuse de reprendre l'OF.

Ce qui se passe quand on appel la méthode :

  • les ressources sont occupées (disponible = false)

annulerOF

Condition(s) d'exécution :

  • on vérifie si l'OF à été lancé, si oui on refuse d'annuler l'OF.

Ce qui se passe quand on appel la méthode :

  • l'OF disparaît du planning

Nous continuons à réfléchir pour faire quelque chose cohérent et de simple par rapport au sujet proposé.

Pierre

Première ébauche de modélisation

Bonjour à tous,

Comme promis, le premier rapport sur notre avancement dans le projet ne se fait pas attendre. Alors que le sujet est distribué et les enjeux clairs, nous voici lancés. Il s'agit maintenant de commencer à réfléchir à la structure de notre futur programme. Quelques lectures du sujet plus tard, nous posons les première esquisses de la modélisation.

Voici notre première idée de diagramme de classes après quelques heures de réflexion. Réalisé dans le but de poser les bases de notre programme et d'avoir un premier aperçu de son articulation avant de se lancer dans le code.

classeOF

Notre programme sera construit autour d'une classe principale "OF" ou (Ordre de Fabrication) à partir de laquelle toute les actions de gestion seront possibles via un ensemble de méthodes permettant d'accéder et de gérer les autres classes (Ressource, Stocks, Planning).

Nous allons maintenant pouvoir nous plonger dans le code et poser les premières pierres du programme. Le diagramme de classe sera susceptible d'évoluer au fil du codage et des difficultés rencontrées.

Romain

Au commencement ...

Bienvenue sur ce blog.

Nous allons utiliser ce blog pour publier nos rapport de projets Smalltalk le plus régulièrement possible.

Nous c'est Romain Verduci et Pierre Ammeloot, actuellement étudiant en Licence 3 Economie Gestion option Système d'Information au département Technologie et Management de l'IMUS Annecy.

Notre projet est basé sur un sujet donné en cours de "Conception et Programmation Orienté Objet" d'Hervé Verjus.

Voici le sujet :

1. Gestion d'un OF

Un Ordre de Fabrication contient l'ensemble des informations relatives à la production/fabrication d'une pièce (référence, matières/matériaux, nomenclature, quantité, ressources mobilisées, etc.). L'ensemble des OF est géré au sein d'un système logiciel. On peut créer des OF, lancer un OF (au sens, lancer la fabrication), suspendre un OF, annuler un OF, solder un OF (terminer l'OF)...voire supprimer un OF.

Les OF doivent, après avoir été créés, être planifiés (planification de la production). La planification consiste à l'affectation réelles des ressources en fonction de leurs disponibilités pour la période de production souhaitée (date de début et date de fin). Cette planification va donc mobiliser des ressources (opérateurs, machines, matériaux/matières,...). Cette gestion a également des conséquences sur la gestion des stocks de matières et, leurs réapprovisionnement. Les matières sont réapprovisionnées par un fournisseur qu'il est possible de contacter pour effectuer une demande de réapprovisionnement. On fait l'hypothèse que toute demande de réapprovisionnement est satisfaite (pas de rupture de stock au niveau du fournisseur).

Une fois fabriquée, la pièce est elle-même stockée.

Travail par binôme à réaliser:

* faire le programme Smalltalk supportant la gestion des OF;

* donner le diagramme de classes UML correspondant.

Le travail se fera en « pair-programming ». Vous pouvez vous documenter sur la notion de gestion des OF dans le domaine de la production...et/ou discuter avec des camarades ayant des compétences dans le domaine !

2. Question

Que se passe-t-il si une machine tombe en panne alors que la machine est requise pour la fabrication d'une pièce et si l'OF a été lancé ? Que proposez-vous ?

3. Extensions - Bonus

Pour celles et ceux qui le souhaitent...développez un petit simulateur illustrant, avec des objets graphiques, la production d'une pièce au sein d'une petite usine.

Nous avons commencé par analyser le sujet pour le comprendre au mieux.

L'ensemble du développement du projet a pour objectif de faire au plus simple et de mettre en oeuvre des méthode de développement agile (pair-programming).

Nous réfléchissons donc au développement (la partie conception) tout en jetant les bases du programme dans Visual Works.

A bientôt, pour plus d'informations.

Pierre