|
|
|
|
.consigliere.
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline
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..
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
|
06-01-2005 00:12 |
|
|
| |
|
.consigliere.
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline
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 |
|
|
| |
|
.consigliere.
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
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 |
|
|
| |
|
.consigliere.
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline
Edit | Report | IP: Logged |
Io vorrei fare direttamente l'orale-discussione progetto con Ornaghi, credo oramai di essere saturo di ocl e tool vari
|
10-01-2005 13:51 |
|
|
| |
|
.consigliere.
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
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
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 |
|
|
| |
|
.consigliere.
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline
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
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 ).
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 |
|
|
| |
|
.consigliere.
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
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 |
|
|
| |
|
.consigliere.
Registered: Sep 2002
Posts: 144 (0.02 al dì)
Location: Canegrate
Corso: Informatica
Anno: secondo
Time Online: 15:57:20 [...]
Status: Offline
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 |
|
|
| |
|
All times are GMT. The time now is 07:14. |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|