La società SoftEngUniNA ha l’obiettivo di produrre un dispositivo automatico finalizzato
alla produzione di bevande calde.
Per la realizzazione del suddetto obiettivo, SoftEngUniNA richiede la progettazione dei
moduli software necessari per il corretto funzionamento del dispositivo.
Il presente documento si riferisce alle seguenti linee di attività:
·
Formalizzazione dei requisiti mediante notazione Cockburn/UML/OCL
·
Definizione dell’architettura e progettazione del sistema, mediante notazione
UML/OCL


·
Definizione di un piano di testing

La ditta è inventata in quanto è un esercizio come hai ben capito. trovo enorme difficoltà a fare un class diagram decente e che sia coerente alla successiva implementazione in classi java.

ho implementato la classe distributore in questo modo:

import java.io.*;
public class Distributore
{
public void ricaricaDistributore(Caffe caf, Camomilla cam, Acqua acq, Zucchero zuc, Bicchiere bic, Bastoncino bast)
{
caf.ricarica();
cam.ricarica();
acq.ricarica();
zuc.ricarica();
bic.ricarica();
bast.ricarica();
System.out.println("RICARICA MATERIALI EFFETUATA");
}
public void preparaCaffe(Caffe caf, Acqua acq, Zucchero zuc, Bicchiere bic, Bastoncino bast)
{
if ((caf.quantita>0)&&(acq.quantita>0)&&(zuc.quantita >0)&&(bic.quantita>0)&&(bast.quantita>0))
{
System.out.println("Ritirare il caffe'");
System.out.println("");
caf.decrementa();
acq.decrementa();
zuc.decrementa();
bic.decrementa();
bast.decrementa();
}
else
System.out.println("Materiali insufficienti contattare il tecnico");
}
public void preparaCamomilla(Camomilla cam, Acqua acq, Zucchero zuc, Bicchiere bic, Bastoncino bast)
{
if ((cam.quantita>0)&&(acq.quantita>0)&&(zuc.quantita >0)&&(bic.quantita>0)&&(bast.quantita>0))
{
System.out.println("Ritirare la camomilla'");
System.out.println("");
cam.decrementa();
acq.decrementa();
zuc.decrementa();
bic.decrementa();
bast.decrementa();
}
else
System.out.println("Materiali insufficienti contattare il tecnico");
}
public static void main(String[] args)
{
Distributore dist = new Distributore();
Caffe caf = new Caffe();
Camomilla cam = new Camomilla();
Acqua acq = new Acqua();
Zucchero zuc = new Zucchero();
Bicchiere bic = new Bicchiere();
Bastoncino bast = new Bastoncino();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int i=0;
while (i!=9)
{
System.out.println("DISTRIBUTORE COF08");
System.out.println("premere 1 per preparare un caffe' 2 per la camomilla");
System.out.println("3 per entrare in modalità tecnico 9 per uscire");
try {
i = Integer.parseInt(in.readLine());
} catch (IOException e){}
switch (i) {
case 1: dist.preparaCaffe(caf,acq,zuc,bic,bast); break;
case 2: dist.preparaCamomilla(cam,acq,zuc,bic,bast); break;
case 3: dist.ricaricaDistributore(caf, cam, acq, zuc, bic, bast); break;
case 9: System.out.println("Programma Terminato");
}
}
}
}

il tutor mi dice di non collegare il distributore direttamente ai vari ingredienti e materiali ma con le rispettive classi astratte ingredienti e materiali. come faccio?

Grazie a tutti