Visualizzazione post con etichetta [Progetto]. Mostra tutti i post
Visualizzazione post con etichetta [Progetto]. Mostra tutti i post

sabato 30 aprile 2011

[Seminario Android] Road Map

A seguito dell'utilizzo di Android per la mia tesi, e a causa dell'entusiasmo che ha scatenato in alcuni colleghi al dib, credo sia interessante creare un evento presso il nostro dipartimento di informatica per discutere di questa tecnologia...

Pubblicherò su questo post tutti gli aggiornamenti in merito all'organizzazione di questo seminario.

update 03/05/2011
Scaletta (work in progress) del seminario:
http://www.google.com/notebook/public/16144875852431537653/BDRcI3goQpdLY5vYl

giovedì 17 febbraio 2011

[Sistema di prenotazione Appelli DiB] Se non c'è... mettiamolo!

Un certo collega F.P.(detto Muggi.) mi ha contattato chiedendomi come mai nella sua pagina di prenotazione esami(del sistema di gestione appelli del DiB), non ci fosse la riga relativa all'insegnamento di "Ingegneria del Software"...
Dopo aver notato che invece nel mio caso fosse presente, e ignorando ampiamente quali dei misteri arcani si celassero dietro alla scelta del sistema di nasconderla nel suo caso, ho optato per la politica: Se non c'è... mettiamolo!
Il codice relativo alla riga(preso dalla mia pagina in cui era presente) è:

<tr><td nowrap="nowrap">
<font size="2">Ingegneria del SW + Lab. (2009/2010)</font></td>
<td nowrap="nowrap" align="center">
<font size="2">Scritto</font></td>
<td nowrap="nowrap" align="center">
<font size="2">23/02/2011</font></td>
<td nowrap="nowrap" align="center">
<font size="2">15.30</font></td>
<td nowrap="nowrap" align="center">
<font size="2">&nbsp;</font></td>
<td align="center">
<font size="2">&nbsp;</font></td>
<td align="center" width="1%">

<form name="form_1" action="appello_prenota_conf.php" method="post">
<input value="Prenota" type="submit">
<input name="id_insegn" value="2265" type="hidden">
<input name="data_appello" value="2011-02-23" type="hidden">
<input name="tipo_appello" value="S" type="hidden">
</form>
</td></tr>

(in grassetto i dati inviati in POST per richiedere la prenotazione all'esame specifico)
Per tanto ho scritto un piccolo script js per l'aggiunta alla pagina del precedente codice:

javascript:(function(){d=document.getElementsByTagName('body')[0];
s=document.createElement('span');
s.innerHTML="<tr><td nowrap><Font size='2'>Ingegneria del SW + Lab. (2009/2010)</Font></td><td nowrap align='center'><Font size='2'>Scritto</Font></td><td nowrap align='center'><Font size='2'>23/02/2011</Font></td><td nowrap align='center'><Font size='2'>15.30</Font></td><td nowrap align='center'><Font size='2'>&nbsp;</Font></td><td align='center'><Font size='2'>&nbsp;</Font></td><td width='1%' align='center'><form name='form_1' action='appello_prenota_conf.php' method='post'><input type='submit' value='Prenota'><input type='hidden' name='id_insegn' value='2265'><input type='hidden' name='data_appello' value='2011-02-23'><input type='hidden' name='tipo_appello' value='S'>
</td></FORM></tr>";d.appendChild(s);})()


E' Quindi bastato far incollare al mio collega il precedente script nella barra degli indirizzi, della pagina che visualizza l'elenco degli esami prenotabili, per fargli apparire infondo alla pagina il timido tasto "Prenota" :D

(prenotazione avvenuta con successo!)

MORALE DELLA FAVOLA:
Il motivo per cui a lui non appariva la riga relativa a questo esame, rimane ignoto e sarà argomento della prossima puntata di Voyager(colpa dei Maya???).
Qualunquemente esso sia, viene preso in considerazione quando viene generato l'elenco delle materie prenotabili, ma no quando il sistema riceve una richiesta di prenotazione.
Bhà?!?!

domenica 14 settembre 2008

WikiRezza...1° Progetto su WikiMiki


Wikirezza - Un progetto di analisi dei versi delle canzoni di Caparezza


Il primo progetto wiki per inaugurare WikiMiki.
Verrano inseriti di volta in volta nuovi testi, dei quali si potrà selezionare un parola o un verso, per darne un interpretazione.
In caso di diverse interpretazioni, per uno stesso verso, si potrà effettuare una discussione(pagina apposita) per decidere quale sia la più adatta o se è il caso di attribuirne una doppia(o più) interpretazione.

lunedì 23 giugno 2008

[Progetto] Linguaggi di programmazione

Università degli Studi di Bari
Facoltà MM.FF.NN.
Dipartimento di Informatica

c.d.l Informatica e Tecnologie per la produzione del Software
a.a.2007/2008




Caso di Studio Linguaggi di Programmazione
( creazione di un analizzatore sintattico lessicale, di un linguaggio a scelta,
con l’ausilio di javaCC )

Linguaggio per la formalizzazione di RICETTE DA CUCINA


Obiettivo del caso di studio è la costruzione di un parser, per l’analisi sintattico logica, ma ancor prima, è la scelta di un linguaggio e la relativa descrizione formale.
Il linguaggio da me scelto, è quello delle ricette da cucina.
Per linguaggio delle ricette, intendo: l’insieme di stringhe(comandi,operazioni,valori ecc..) tali da essere sufficienti a descrivere le fasi di realizzazione di una ricetta da cucina.
Per fare ciò, dopo l’analisi di ricette scritte in maniera comune, ho ricavato la seguente strutturazione analoga.
- Ogni ricetta è divisibile in tre parti: Ingredienti, Strumenti e Preparazione.
- Ogni ingrediente è composto da un nome e un valore e relativa unità di misura opzionali.
Alcuni esempi: olio; 10g di zucchero, patate 2….
- Ogni [...]
Indipendentemente dalla difficoltà nella realizzazione, con i precedenti strumenti, si è in grado di descrivere la preparazione di qualsiasi ricetta.
Per intendere il reale di utilizzo del mio linguaggio, mostro di seguito un esempio concreto:
Un ipotetico software di supporto grafico alla realizzazione di ricette da cucina, si limita a interpretare in modo visuale, le istruzioni contenute in un determinato file di input. Naturalmente il SW è programmato per far corrispondere a determinate stringhe testuali contenute nel file, delle animazioni pertinenti(nella pagina seguente, l’ipotetica interfaccia grafica del SW).
[...], in una grammatica(di tipo 2) scritta secondo lo standard BNF, [...]
Nota: utilizziamo il parser richiamandolo da prompt dei comandi (Microsoft Windows) reindirizzando l’input da un file di testo e reindirizzando l’output(il debug) in un file di testo:
riga di comando: java parserRicette ricetta_debug.txt

Il file ricetta.txt è corretto se il file ricetta_debug.txt si conclude con:
Returning the token.
Return: Input

Interfaccia grafica del SW di supporto alla realizzazione delle ricette.


LINK:
esempio di codice2(es1 è contenuto nella relazione) : panzerotti fritti

venerdì 20 luglio 2007

[Progetto] Aggiornamento Traccia + Analisi dei requisiti.

Politecnico di Bari
Corso di laurea in Ingegneria Informatica
Docente: Vitoantonio Bevilacqua


Domo3.2
Simulatore centralina domotica

Traccia

Una ditta specializzata in domotica, ha commissionato la creazione di un software che sarà distribuito a fini dimostrativi a possibili clienti.
Il software dovrà simulare il funzionamento di una delle loro centrali per la gestione della casa. La ditta ha inoltre indicato il prodotto che bisognerà simulare:

Domo3.2 Security&Confort.

Questa centrale gestisce le seguenti funzioni e presenta un pannello tuchscreen per l'interfacciamento e il settaggio della centrale stessa:

- Antifurto collegato a sensori per la porta d'ingresso.
- Gestione dell'illuminazione regolabile da remoto.
- Apertura e chiusura Gas e Acqua.
- Accensione e spegnimento termosifoni/condizionatore regolabile.
- Informazioni sullo stato dei dispositivi relativi ad acqua, elettricità e gas.
- Possibilità di avviare una routine di “abbandono abitazione”, che prevede delle
operazioni pianificate come:
- Chiusura valvole Acqua/Gas
- Spegnimento illuminazione in tutta la casa
- Attivazione antifurto
- Possibilità di avviarne una d’entrata, che esegue il duale delle precedenti funzioni,
eccetto la disattivazione dell’antifurto, che deve essere eseguita manualmente

Infine, la ditta, indica che il software deve puntare a far capire all'utente le vere comodità del sistema, dunque informandolo sulle potenzialità con messaggi informativi.
I potenziali clienti saranno invitati ad inviare alla ditta, la lista delle attività simulate(che dovrà essere creata in automatico), in modo da ottimizzare sempre al meglio i loro prodotti.


Analisi dei requisiti

Il software simulerà la gestione in realtime, ma con eventi fittizi avviati dall'utente.
Sarà visualizzata una piantina di default con una serie di oggetti standard: termosifoni, lampade, condizionatore e sensori.
Saranno sempre visibili, lo stato dei dispositivi relativi ad acqua, elettricità e gas in un riquadro dedicato. In un altro riquadro, sarà visualizzata la temperatura ambientale.
Per rendere la simulazione più realistica, attribuiremo un valore che simulerà la temperatura iniziale(20°C) che sarà mitigata da eventuali dispositivi termici in funzione. L'utente potrà dunque scegliere che temperatura desidera avere in casa e di conseguenza saranno attivati i dispositivi termici(termosifone/condizioni).
Altri eventi, come richiesto espressamente, saranno: accensione o spegnimento di luci e chiusura o apertura valvole per l'irroramento di Gas e Acqua.
Saranno inoltre implementate, una routine di istruzioni che simulerà le operazioni eseguite di default quando gli abitanti lasciano la casa: chiusura valvole di acqua e gas, attivazione antifurto, attivazione sensori della porta e spegnimento di tutte le luci. E Il duale di questa routine, che procederà, se disattivato l'antifurto, alla riabilitazione dei servizi, alla disattivazione dei sensori alla porta e all’accensione delle luci.
Dal pannello generale, che si sta simulando, sarà inoltre possibile regolare l’intensità luminosa delle luci(singolarmente o contemporaneamente).
In tal caso sarà visibile anche la variazione di potenza assorbita.
Essendo un software di natura illustrativa, ma soprattutto pubblicitaria, in basso saranno visualizzate delle frasi fornite dall’ufficio marketing della ditta e inserite in un file (“infomsg.txt”).
Inoltre sarà creato un file di log (“DomoLog.txt”) che raccoglierà tutte le informazioni eseguite.

Il software(installazione)

Il software presenta una piantina standard realizzata in Macormedia Flash 8, che contiene degli oggetti dinamici opportunamente gestiti dal software realizzato in Visual C++ in linguaggio C++.
Nella schermata è presente(in basso a destra) un box informativo, che visualizza delle frasi lette da un file(“infomsg.txt”) che dovrà essere posizionato nella directory “C:\”.
Lo stesso vale per il file “fileswf.swf”(mappa in Flash), entrambi presenti nella cartella “file esterni”.
Durante l’esecuzione, tutti gli oggetti derivati dalla classe DispIn, o da sue classi figlie, creano un file da cui rilevano il valore che sarà passato alla centralina.
Questa procedura è stata adottata per simulare la lettura di un dispositivo di conversione analogico/digitale, che a sua volta riceve un segnale analogico da eventuali periferiche.
Es.: Sensore porta di ingresso
Ipotizzando un sensore elettromagnetico sui cui terminali è rilevata una tensione che indica se la porta è aperta, nella realtà avremmo un dispositivo che convertirà la tensione in un valore digitale(in questo caso s tratterà di un bit Booleano).
Nella nostra simulazione, il risultato della conversione è presente nel file Sensore.txt(che sarà creato al momento della costruzione dell’ oggetto).
Il file DomoLog.txt, viene creato automaticamente nella directory “C:\”, come i file relativi ai dispositivi di Input, appena descritti.I file non vengono cancellati al termine del programma.
La password per disattivare l’antifurto è 1234!

Prima della compilazione del progetto “VirtualDomoMFC.dsw” assicurarsi che siano settate le seguenti impostazione del compilatore:
Project->Setting->C/C++
- Precompiled headers:
· Not Using Precompiled headers
- Code generation
Use run-time library
§ Debug multithread DLL

Non è stato possibile eliminare un problema che riguarda la chiusura del programma,
infatti chiudendolo, si verifica un errore che si pressupone sia riconducibile alla deallocazione degli oggetti Domo(class GESTIONE) e Virtual(class SIMULAZIONE).
Infine, di seguito è elencata una funzionalità non integrata nel programma, per motivi tempistici, ma in ogni modo interessante:

- Gestione di una lista di eventi pianificati:

Lista allocata dinamicamente, avente come nodo i seguenti campi:
- puntatore a successivo
- Data
- Ora
- puntatore a funzione

In pratica l’utente avrebbe potuto inserire delle operazioni pianificate es:Accendi termosifoni alle ore 20.00 del 20/07/2007.Il sw nella funzione CicloCentralina avrebbe controllato il primo elemento della lista confrontandolo con l’orario e la data del sistema(la lista sarebbe stata caricata in modo ordinato).


Spero che comunque sia un progetto ben sviluppato.

giovedì 5 luglio 2007

[Progetto] esame di Fondamenti di Informatica 2

Di seguito, quella ke credo sarà la traccia definitiva:

Traccia

Una ditta specializzata in domotica, ha commissionato la creazione di un software che verrà distribuito a fini dimostrativi a possibili clienti.
Il software dovrà simulare il funzionamento di una delle loro centrali per la gestione della casa. La ditta ha inoltre indicato il prodotto che bisognerà simulare:

Domo3.2 Security&Confort.

Questa centrale gestisce le seguenti funzioni e presenta un pannello tuchscreen per l'interfacciamento e il settaggio della centrale stessa:

- Antifurto collegato a sensori per la porta d'ingresso.
- Gestione dell'illuminazione temporizzata e regolabile.
- Apertura e chiusura Gas e Acqua temporizzata.
- Accensione e spegnimento termosifoni/condizionatori temporizzata e regolabile.
- Informazioni sullo stato dei dispositivi relativi ad acqua, elettricità e gas.

Infine, la ditta, indica che il software deve puntare molto a far capire all'utente le vere comodità del sistema, dunque informandolo sulle potenzialità con messaggi informativi.
I potenziali clienti saranno invitati a inviare alla ditta, la lista delle attività simulate(che dovrà essere creata in automatico), in modo da ottimizzare sempre al meglio i loro prodotti.
E’ necessario fornire una versione modularizzata del progetto proposto.
E’ necessario fornire una versione eseguibile.
E’ consigliata una modellazione tramite UML.