9. Esempio1.java __REP_Esempio1.java __REP_Esempio1.class Esempio1.java File usati da JContract per gestire l’ereditarietà (non ci interessano) Il nostro programma con l’aggiunta di istruzioni per il controllo esplicito di invarianti/precondizioni/postcondizioni Esempio1.class iContract.Tool()
10. Lo script “BUILD” contiene il comando per la compilazione con iContract
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22. E’ sbagliato il nostro main o l’implementazione? Non ci sono più uffici o non si possono inserire altri impiegati?
23. Ora sappiamo che la responsabilità è nostra (che abbiamo scritto il main), in quanto abbiamo violato la precondizione ufficiDisponibili()
24. public static void main(String[] args) { Azienda luthorCorp = new AziendaImpl(); Impiegato i1 = new ImpiegatoImpl("Lioner Lutor"); Impiegato i2 = new ImpiegatoImpl("Lex Lutor"); Impiegato i3 = new ImpiegatoImpl("Clark Kent"); System.out.println("Proviamo ad assumere " + i1); if (luthorCorp.ufficiDisponibili()) luthorCorp.assumi(i1); System.out.println("Proviamo ad assumere " + i2); if (luthorCorp.ufficiDisponibili()) luthorCorp.assumi(i2); System.out.println("Proviamo ad assumere " + i3); if (luthorCorp.ufficiDisponibili()) luthorCorp.assumi(i3); System.out.println("Fine."); }