Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Didattica in generale > [Metodi Formali dell'informatica 1 e 2] Diario del corso 04/05
Pages (2): « 1 [2]   Last Thread   Next Thread
Author
Thread    Post New Thread    Post A Reply
Arcadia82
.consigliere.

User info:
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by picoid82
ok,forse mi son espresso male, facciamo un esempio +"tera-tera":

una classe A con attributo a vincolato in Argo con invariante che a>5, il main della classe mi chiede di dare in input il valore della variabile da assegnare all'oggetto, ok? se il codice java ha come costruttore A oggetto = new A(valore); nel momento in cui dò in input 3 viene segnalata la violazione... termina l'esecuzione ed è chiaro che non dovrebbe succedere..e fin qui ok!
Se però il codice java è ..lettura del valore input... if(valore > 5) A oggetto = new A(valore) else System.out..."valore non valido, reinserire..", allora la domanda è: dove interviene il controllo del vincolo?? dov'è la fase di testing?? cioè il codice java basterebbe da solo, senza commenti creati da argo e senza compilazione col dresden il mio programma crea comunque istanze vincolate (tutto ciò a me sembra proprio una ripetizione, chiedo scusa se è una castroneria! ma non capisco..)

grazie.. :-D


Concordo in parte con quanto dici. Pensa al seguente esempio vago ma significativo: in un giorno non ci possono essere due appuntamenti con orari sovrapposti. Pensa se l'utente aggiunge un appuntamento... o modifica un apputamento esistene... o ne elimina uno... l'invariante "le ore non si sovrappongono" è unico ma nel tuo codice java potresti fare errori... ad esempio dimenticare che la correzione di un oriario non debba violare l'invariante...
Per quanto riguarda il test neppure a me è chiarissimo cosa si intenda per fare classi che testano il codice... mi viene solo in mente di fare una classe che generi appuntamenti in diversi giorni più o meno in maniera random... provando un po tutti i giorni ad esempio...
Per quanto riguarda il fare delle classi che generino appuntamenti di varia natura nella mia agenda e vedano se insorgono errori di vincoli (quindi classi di test) ci sto pensando un po sopra nel senso che mi sa che ho fatto qualche errorino :D

06-01-2005 00:12
Click Here to See the Profile for Arcadia82 Click here to Send Arcadia82 a Private Message Visit Arcadia82's homepage! Find more posts by Arcadia82 Add Arcadia82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Arcadia82
.consigliere.

User info:
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Bene...
1) ho fatto lo schema uml con i relativi vincoli ocl
2) ho scritto il codice java e provandolo a mano sembra funzionare
3) ho iniettato i vincoli ocl con dresden e la compilazione e' andata a buon fine
4) lancio il mio programma ma i vincoli ocl sembrano essere impazziti: ad esempio ho un vincolo sull'ora sulla classe Ora ( ad esempio che il campo ora sia compreso tra 0 e 23 estremi inclusi ), a questo punto creo un oggetto di tipo Ora in cui l'ora è compresa tra 0 e 23. Ecco l'uoutput del mio programma inserendo l'ora 11:00:

Inserire il numero dell'ora:
11
Inserire il numero dei minuti:
0
violated ocl invariant 'ora' on object '0:0'.

A fronte di tale violazione cmq il mio programma non termina e se chiedo di visualizzare l'appuntamento creato esso mi visualizza:

Appuntamento il giorno 1 -1-2004 inserita nota eeeee dalle ore 10:0 alle ore 11:0

Siccome questo è un vincolo semplice e non trovo alcun errore è ovvio che vi sia un baco di Dresden.
Inoltre questo non è l'unico vincolo che risulta dare anomalie di questa tipologia...
A questo punto mi è anche impossibile produrre delle classi di test...
Pertanto chiedo se sia possibile avere un orale in cui si espone il progetto svolto di modo da motivare evetuali parti incomplete... insomma... non sarò un esperto di ocl ma mi pare di avere capito bene il suo funzionamento e come si fa ad esprimere i vincoli in linguaggio ocl stesso: se gli strumenti non funzionano a dovere la cosa non deve influenzare il voto che dovrebbe basarsi sulla mia conoscenza di ocl, a maggior ragione che cmq il progetto l'ho svolto.

Vorrei sapere se è possibile fissare una data per la visione dei progetti oppure se occorre contattare direttamente per email il prof. Ornaghi per fissare il colloquio sull'orale.

07-01-2005 13:29
Click Here to See the Profile for Arcadia82 Click here to Send Arcadia82 a Private Message Visit Arcadia82's homepage! Find more posts by Arcadia82 Add Arcadia82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
picoid82
.consigliere.

User info:
Registered: Apr 2003
Posts: 137 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3/4
Time Online: 1 Day, 18:03:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Domani (10 gennaio) che cosa fate???
Ci troviamo all'orario di lezione magari mandando prima una mail a Trentini??
Ditemi voi..

ciao

09-01-2005 17:35
Click Here to See the Profile for picoid82 Click here to Send picoid82 a Private Message Find more posts by picoid82 Add picoid82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Arcadia82
.consigliere.

User info:
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Io vorrei fare direttamente l'orale-discussione progetto con Ornaghi, credo oramai di essere saturo di ocl e tool vari :D

10-01-2005 13:51
Click Here to See the Profile for Arcadia82 Click here to Send Arcadia82 a Private Message Visit Arcadia82's homepage! Find more posts by Arcadia82 Add Arcadia82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
picoid82
.consigliere.

User info:
Registered: Apr 2003
Posts: 137 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3/4
Time Online: 1 Day, 18:03:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Arcadia82
Io vorrei fare direttamente l'orale-discussione progetto con Ornaghi, credo oramai di essere saturo di ocl e tool vari :D


ma hai scritto al professore chiedendo se esiste questa forma di valutazione? o basta solo la consegna?

ps. tornando al progetto mi dici come metti le directory per compilare col dresden-ocl-injector? devo mettere i *.java nella cartella dove c'è injector o no??

Per quelli che mi chiedono l'indirizzo di download: http://sourceforge.net/project/show...lease_id=128589

qui c'è la versione 1.1, è giusta vero??

grazie :)

10-01-2005 16:02
Click Here to See the Profile for picoid82 Click here to Send picoid82 a Private Message Find more posts by picoid82 Add picoid82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Arcadia82
.consigliere.

User info:
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by picoid82
ma hai scritto al professore chiedendo se esiste questa forma di valutazione? o basta solo la consegna?

ps. tornando al progetto mi dici come metti le directory per compilare col dresden-ocl-injector? devo mettere i *.java nella cartella dove c'è injector o no??

Per quelli che mi chiedono l'indirizzo di download: http://sourceforge.net/project/show...lease_id=128589

qui c'è la versione 1.1, è giusta vero??

grazie :)


Solo la consegna non esiste!!! Che valuta?! In molti casi occorre fare scelte non ottimali, inoltre le classi di test non le posso fare se il dresden non funziona. E sono certo che non funzioni... Nono si può che ho due vincoli molto simili in due classi diverse e uno funziona e l'altro no :P
Cmq appena si saprà quando riprenderanno le lezioni sentirò il prof. Io non voglio una semplice consegna del progetto... vorrei poter motivare le scelte fatte e le cose che non vanno di modo da avere anche un riscontro del fatto che dresden non funzioni bene (altrimenti mi prenderò dell'idiota :D ).
Per la compilazione... allora... innanzi tutto supponiamo di essere nella directory Agenda. In tale directory ho il file agenda.zargo. A questo punto da ArgoUml dico che tutte le classi generate faranno parte del package denominato test (a voi le fatiche per scoprirlo?! Ci ho perso una giornata...). Bene a questo punto genero il codice java da ArgoUml IL QUALE MI CREA DA SOLO LA DIRECTORY test in Agenda in quanto ho detto che tutte le classi sono del package test...
A questo punto dalla directory Agenda a linea di comando lancio:
1) Per iniettare i vincoli:
java -jar dresden-ocl-injector.jar -m -r test test/*.java
2) Per compilare:
javac -classpath dresden-ocl-injector.jar test/*.java
3) Per eseguire (se il main lo avete in Agenda.java):
java -classpath dresden-ocl-injector.jar test/Agenda
4) Se devo ritoccare il codice java prima di riaprire i relativi file .java li pulisco dai vincoli ocl tramite:
java -jar dresden-ocl-injector.jar -m -c test/*.java

Bon... spero di averti dato un po di aiuto.

10-01-2005 17:22
Click Here to See the Profile for Arcadia82 Click here to Send Arcadia82 a Private Message Visit Arcadia82's homepage! Find more posts by Arcadia82 Add Arcadia82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
picoid82
.consigliere.

User info:
Registered: Apr 2003
Posts: 137 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: 3/4
Time Online: 1 Day, 18:03:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Per la compilazione... allora... innanzi tutto supponiamo di essere nella directory Agenda. In tale directory ho il file agenda.zargo. A questo punto da ArgoUml dico che tutte le classi generate faranno parte del package denominato test (a voi le fatiche per scoprirlo?! Ci ho perso una giornata...). Bene a questo punto genero il codice java da ArgoUml IL QUALE MI CREA DA SOLO LA DIRECTORY test in Agenda in quanto ho detto che tutte le classi sono del package test...
A questo punto dalla directory Agenda a linea di comando lancio:
1) Per iniettare i vincoli:
java -jar dresden-ocl-injector.jar -m -r test test/*.java
2) Per compilare:
javac -classpath dresden-ocl-injector.jar test/*.java
3) Per eseguire (se il main lo avete in Agenda.java):
java -classpath dresden-ocl-injector.jar test/Agenda
4) Se devo ritoccare il codice java prima di riaprire i relativi file .java li pulisco dai vincoli ocl tramite:
java -jar dresden-ocl-injector.jar -m -c test/*.java

Bon... spero di averti dato un po di aiuto. [/B]


ci ho sbattuto la testa per ore ma ho in parte risolto...

a me funziona solo se la directory test o comunque quella creata da ARGO col nome del package è contenuta come sotto directory del dresden, ovvero sotto o allo stesso livello dell'injector..
magra consolazione, ma almeno funziona!!

10-01-2005 18:46
Click Here to See the Profile for picoid82 Click here to Send picoid82 a Private Message Find more posts by picoid82 Add picoid82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Arcadia82
.consigliere.

User info:
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by picoid82
ci ho sbattuto la testa per ore ma ho in parte risolto...

a me funziona solo se la directory test o comunque quella creata da ARGO col nome del package è contenuta come sotto directory del dresden, ovvero sotto o allo stesso livello dell'injector..
magra consolazione, ma almeno funziona!!


Sì nell'esempio il dresden injector deve essere nella directory di Agenda... cioè l'opzione -classpath file.jar serve ad aggiungere un nuovo classpath a java... quindi se file.jar sta in un altra dir devi dargli tutto il percorso di quest'altra dir oppure imposti correttametne le variabili d'ambiente del tuo sisop in particolare CLASSPATH... un po come quando installi la jdk.

10-01-2005 19:21
Click Here to See the Profile for Arcadia82 Click here to Send Arcadia82 a Private Message Visit Arcadia82's homepage! Find more posts by Arcadia82 Add Arcadia82 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 07:14.    Post New Thread    Post A Reply
Pages (2): « 1 [2]   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.037 seconds (75.14% PHP - 24.86% MySQL) con 24 query.