196 resultados para Logica linguaggio identità descrizioni
Towards model driven software development for Arduino platforms: a DSL and automatic code generation
Resumo:
La tesi ha lo scopo di esplorare la produzione di sistemi software per Embedded Systems mediante l'utilizzo di tecniche relative al mondo del Model Driven Software Development. La fase più importante dello sviluppo sarà la definizione di un Meta-Modello che caratterizza i concetti fondamentali relativi agli embedded systems. Tale modello cercherà di astrarre dalla particolare piattaforma utilizzata ed individuare quali astrazioni caratterizzano il mondo degli embedded systems in generale. Tale meta-modello sarà quindi di tipo platform-independent. Per la generazione automatica di codice è stata adottata una piattaforma di riferimento, cioè Arduino. Arduino è un sistema embedded che si sta sempre più affermando perché coniuga un buon livello di performance ed un prezzo relativamente basso. Tale piattaforma permette lo sviluppo di sistemi special purpose che utilizzano sensori ed attuatori di vario genere, facilmente connessi ai pin messi a disposizione. Il meta-modello definito è un'istanza del meta-metamodello MOF, definito formalmente dall'organizzazione OMG. Questo permette allo sviluppatore di pensare ad un sistema sotto forma di modello, istanza del meta-modello definito. Un meta-modello può essere considerato anche come la sintassi astratta di un linguaggio, quindi può essere definito da un insieme di regole EBNF. La tecnologia utilizzata per la definizione del meta-modello è stata Xtext: un framework che permette la scrittura di regole EBNF e che genera automaticamente il modello Ecore associato al meta-modello definito. Ecore è l'implementazione di EMOF in ambiente Eclipse. Xtext genera inoltre dei plugin che permettono di avere un editor guidato dalla sintassi, definita nel meta-modello. La generazione automatica di codice è stata realizzata usando il linguaggio Xtend2. Tale linguaggio permette di esplorare l'Abstract Syntax Tree generato dalla traduzione del modello in Ecore e di generare tutti i file di codice necessari. Il codice generato fornisce praticamente tutta la schematic part dell'applicazione, mentre lascia all'application designer lo sviluppo della business logic. Dopo la definizione del meta-modello di un sistema embedded, il livello di astrazione è stato spostato più in alto, andando verso la definizione della parte di meta-modello relativa all'interazione di un sistema embedded con altri sistemi. Ci si è quindi spostati verso un ottica di Sistema, inteso come insieme di sistemi concentrati che interagiscono. Tale difinizione viene fatta dal punto di vista del sistema concentrato di cui si sta definendo il modello. Nella tesi viene inoltre introdotto un caso di studio che, anche se abbastanza semplice, fornisce un esempio ed un tutorial allo sviluppo di applicazioni mediante l'uso del meta-modello. Ci permette inoltre di notare come il compito dell'application designer diventi piuttosto semplice ed immediato, sempre se basato su una buona analisi del problema. I risultati ottenuti sono stati di buona qualità ed il meta-modello viene tradotto in codice che funziona correttamente.
Resumo:
La vera identità di un individuo è un'informazione molto preziosa. In generale le persone non hanno particolari remore a rivelare la propria identità e il riconoscimento non rappresenta un problema; l'unica motivazione che può portare un individuo a nascondere la propria identità è l'elusione dei rilevamenti delle forze dell'ordine per un certo tipo di attività criminale. In questi casi, risulta difficile procedere al riconoscimento attraverso caratteristiche biometriche come iride o impronte digitali, in quanto la loro acquisizione presuppone un certo grado di collaborazione da parte del soggetto. Il volto, invece, può essere ottenuto in modo segreto, non solo attraverso le ben note telecamere di videosorveglianza ma anche attraverso la ricostruzione fornita da un eventuale testimone oculare che assiste all'evento criminoso. Quest'ultimo, attraverso la descrizione verbale del sospettato e con l'ausilio delle capacità di un disegnatore, fornisce un contributo per la costruzione di un identikit o sketch del soggetto, favorendo quindi il processo di individuazione dell'identità del malvivente. Solitamente, una volta prodotto lo sketch, si effettua un confronto visivo con le fotografie segnaletiche già in possesso degli inquirenti e memorizzate all'interno di un'ipotetica banca dati. Tale confronto viene eseguito 'manualmente' da persone incaricate, comportando un inevitabile spreco di tempo; dotarsi di un sistema automatico in grado di ricercare la foto del sospettato più somigliante allo sketch a partire da quelle presenti all'interno di un database potrebbe aiutare le forze di polizia in una più celere individuazione del colpevole. Purtroppo, i metodi presenti allo stato dell'arte sul riconoscimento facciale non consentono un confronto diretto: fotografia e disegno sono due rappresentazioni del volto molto differenti in termini di ricchezza di dettagli e tessitura e pertanto non direttamente confrontabili. L'obiettivo del progetto di tesi è quello di esplorare una nuova strategia di valutazione automatica della similarità tra uno sketch e una fotografia consistente principalmente in un'analisi della conformazione dei volti, mediante estrazione dei contorni e calcolo di apposite feature.
Resumo:
Il calcestruzzo è uno dei materiali più utilizzati nell’edilizia, ma il meno sostenibile. Per la sua produzione vengono sfruttate elevate quantità di risorse naturali non rinnovabili con un impatto ambientale non trascurabile, sia per le sostanze emesse in atmosfera, sia per le macerie derivate post utilizzo. L’ingresso nel XXI secolo ha segnato definitivamente l’affermazione del concetto di sviluppo sostenibile nei riguardi di tutti i processi produttivi dei beni, che devono essere necessariamente strutturati secondo una logica di risparmio energetico e di controllo della produzione di scorie e rifiuti, prevedendone un loro riutilizzo in altri settori, o un loro smaltimento senza provocare danni all’ambiente. Anche l’industria del cemento e del calcestruzzo è chiamata a svolgere il proprio ruolo per contribuire ad un miglior bilancio ecologico globale, indirizzando la ricerca verso possibilità d’impiego di materiali “innovativi”, che siano in grado di sostituire parzialmente o totalmente l’uso di materie prime non rinnovabili, tenendo conto dell’enorme richiesta futura di infrastrutture, soprattutto nei paesi in via di sviluppo. Negli ultimi anni si sta sempre più affermando il potenziale del riciclo dei materiali ottenuti dalla demolizione di edifici (C&DW – Construction and Demolition Waste), questo dovuto anche a politiche di gestione dei rifiuti che incentivano il risparmio, il riutilizzo, il riciclo e la valorizzazione dei beni. I calcestruzzi con aggregati di riciclo sono generalmente suddivisi in due macrogruppi: quelli ottenuti da aggregati di riciclo di solo calcestruzzo (RCA – Recycled Coarse Aggregate) e quelli da aggregati da demolizione totale (MRA – Mixed Recycled Aggregate) che però contengono molte impurità. Come anche uno può subito pensare gli aggregati riciclati hanno delle proprietà diverse da quelli naturali, questi contengono oltre l’aggregato naturale anche il legante coeso, polveri di laterizio, vetro, ceramica, plastica eccet., i quali offrono una miscela ricca di cloruri, solfati, silice amorfa ed altri componenti dannosi per la nuova miscela di calcestruzzo. In presenza di questi prodotti, gli aggregati non solo non soddisfano i requisiti chimici, ma influiscono negativamente anche sulle proprietà fisico-meccaniche del calcestruzzo. Per questo vedremmo in questa tesi tramite un accurata analisi degli aggregati, e del loro “contributo” per il corretto comportamento del calcestruzzo, leggendo criticamente come le normative regolano i requisiti che gli aggregati debbono soddisfare, vedendo le varie possibilità di riutilizzo dei materiali di riciclo da demolizione. La tesi mira all'incentivo dei materiali da riciclo, come scelta sostenibile per il futuro dell'edilizia. E' stato calcolato che la produzione totale di macerie da demolizione nel mondo, non supera il 20% in massa degli aggregati che vengono utilizzati per la produzione del calcestruzzo nei paesi sviluppati. Dai vari studi è stato valutato in media che col solo 20% di riciclato sostituito, le caratteristiche del calcestruzzo indurito cambiano di poco dal normale miscelato con aggregati naturali; ovviamente se gli aggregati da riciclo sono stati selezionati e sottoposti ai vari test delle norme europee standardizzate. Quindi uno può subito pensare in linea teorica, tralasciando i costi di gestione, trasporto eccet. , che basta utilizzare per ogni metro cubo di calcestruzzo 20% di riciclato, per rispondere allo smaltimento dei rifiuti da C&D; abbassando cosi i costi degli inerti naturali, sempre parlando di economie di scala. Questo è in linea teorica, ma riflette un dato rilevante. Nel presente lavoro si partirà da una veloce lettura sul comportamento del calcestruzzo, su i suoi principali costituenti, concentrandoci sugli aggregati, analizzandone le sue proprietà fisico-meccaniche, quali la granulometria, la resistenza meccanica e la rigidezza, valutando l’importanza dei legami coesivi tra aggregato alla pasta cementizia. Verranno inoltre analizzate le azioni deleterie che possono instaurarsi tra aggregato di riciclo e pasta cementizia. Dopo aver visto le varie politiche sulla gestione dei rifiuti, la legislazione passata e presente sull’uso dei materiali riciclati, si analizzeranno vari studi sulle proprietà fisico-meccaniche dei calcestruzzi con aggregati di riciclo seguiti da università e poli di ricerca internazionali. Se gli aggregati di riciclo sono selezionati con metodo, in presenza di piani di gestione regionale e/o nazionale, è possibile soddisfare le prestazioni richieste del calcestruzzo, nel rispetto delle politiche di sostenibilità economico-ambientali. Può essere il calcestruzzo riciclato una scelta non solo sostenibile, ma anche economica per il settore edile? Si può avere un calcestruzzo riciclato ad alte prestazioni? Quali sono le politiche da mettere in atto per un mercato di produzione sostenibile del riciclato? Questo e molto altro verrà approfondito nelle pagine seguenti di questa tesi.
Resumo:
Nell’ultimo decenno si è assisitito ad una frenetica evoluzione delle tecnologie di connessione e trasferimento dati, dagli impianti di fibra ottica sempre più diffusi e performanti, alle varie tecnologie mobile UMTS e LTE. Tutto ciò ha permesso a sempre più persone di poter spendere una maggiore fetta del proprio tempo sulla rete sia per svago che per lavoro. Questo ha portato col tempo l’utente interattivo alla ricerca di servizi remoti che prima usufruiva in locale, sia per motivi di portabilità e di interconnessione, sia per una semplice questione di sincronizzazione fra i vari dispositivi posseduti. Il presente progetto di tesi si pone come obiettivo di indagare con occhio ingegneristico all’evoluzione della struttura del web fino ad identificare e analizzare l’attuale necessità di poter avere in rete tutti quei servizi anche completi e strutturalmente complessi che prima si aveva sul proprio desktop; tutto ciò attraverso l’esempio di un nuovo linguaggio di sviluppo per applicazioni web strutturate proposto da Google: DART. In questa analisi non si potrà prescindere dallo studio attento della tecnologia che sin dagli inizi della rete ha fatto da struttura al web ovvero l’Html e il suo ultimo standard Hmtl5. Nella prima parte verrà mostrata, attraverso un breve percorso, la nascita e lo sviluppo del web, sino ai giorni nostri. Si effettuerà quindi una panoramica, rivisitando tutti più importanti passi che hanno portato la rete internet ad essere ciò che oggi utilizziamo, ponendo una particolare attenzione alle attuali esigenze di progettazione della struttura dei servizi web. Nel secondo capitolo viene introdotta la tecnologia a base del web, l’Html; attraverso una breve analisi dell’evoluzione di quest’ultima si arriverà sino all’attuale HTML5 e alle funzionalità offerte nell’ottica della programmazione web strutturata. Nel terzo capitolo si analizzerà in maniera più approfondita la necessità di un web strutturato e le potenzialità del progetto Dart attraverso alcuni esempi esplicativi. Infine si trarranno alcune conclusioni sull’attuale situazione del web, sulla necessità di un web strutturato e sulla possibilità di riuscita del progetto Dart.
Resumo:
Abbiamo studiato ABSFJf, un linguaggio ad oggetti concorrente con tipi di dato futuro ed operazioni per acquisire e rilasciare il controllo delle risorse. I programmi ABSFJf possono manifestare lock (deadlock e livelock) a causa degli errori del programmatore. Per individuare staticamente possibili com- portamenti non voluti abbiamo studiato e implementato una tecnica per l'analisi dei lock basata sui contratti, che sono una descrizione astratta del comportamento dei metodi. I contratti si utilizzano per formare un automa i cui stati racchiudono informazioni di dipendenza di tipo chiamante-chiamato; vengono derivati automaticamente da un algoritmo di type inference e model- lati da un analizzatore che sfrutta la tecnica del punto
Resumo:
L’università di Bologna, da sempre attenta alle nuove tecnologie e all’innovazione, si è dotata nel 2010 di un Identity Provider (IDP), ovvero un servizio per la verifica dell’identità degli utenti dell’organizzazione tramite username e password in grado di sollevare le applicazioni web (anche esterne all’organizzazione) dall’onere di verificare direttamente le credenziali dell’utente delegando totalmente la responsabilità sul controllo dell’identità digitale all’IDP. La soluzione adottata (Microsoft ADFS) si è dimostrata generalmente semplice da configurare e da gestire, ma ha presentato problemi di integrazione con le principali federazioni di identità regionali e italiane (FedERa e IDEM) a causa di una incompatibilità con il protocollo SAML 1.1, ancora utilizzato da alcuni dei servizi federati. Per risolvere tale incompatibilità il "CeSIA – Area Sistemi Informativi e Applicazioni" dell’Università di Bologna ha deciso di dotarsi di un Identity Provider Shibboleth, alternativa open source ad ADFS che presenta funzionalità equivalenti ed è in grado di gestire tutte le versioni del protocollo SAML (attualmente rilasciato fino alla versione 2.0). Il mio compito è stato quello di analizzare, installare, configurare e integrare con le federazioni IDEM e FedERa un’infrastruttura basata sull’IDP Shibboleth prima in test poi in produzione, con la collaborazione dei colleghi che in precedenza si erano occupati della gestione della soluzione Microsoft ADFS. Il lavoro che ho svolto è stato suddiviso in quattro fasi: - Analisi della situazione esistente - Progettazione della soluzione - Installazione e configurazione di un Identity Provider in ambiente di test - Deploy dell’Identity Provider in ambiente di produzione
Resumo:
Nel presente elaborato si è affrontato il tema dell’utilizzo di biogas per la produzione di energia elettrica e termica; in primo luogo è stata fatta una panoramica sulla diffusione degli impianti di digestione anaerobica in Europa e in Italia, con particolare attenzione alla logica degli incentivi volti alla promozione delle fonti rinnovabili. Il biogas presenta infatti il duplice vantaggio di inserirsi sia nell’ottica del “Pacchetto Clima-Energia” volto alla riduzione di consumi energetici da fonti fossili, sia nella migliore gestione dei rifiuti organici volta alla riduzione del conferimento in discarica. L’allineamento degli incentivi italiani con quelli europei, prevista dal Decreto Ministeriale 6 luglio 2012, presuppone un’espansione del settore biogas più oculata e meno speculativa di quella degli ultimi anni: inoltre la maggiore incentivazione all’utilizzo di rifiuti come materia prima per la produzione di biogas, comporta l’ulteriore vantaggio di utilizzare, per la produzione di energia e compost di qualità, materia organica che nel peggiore dei casi sarebbe inviata in discarica. Il progetto oggetto di studio nasce dalla necessità di trattare una quantità superiore di Frazione Organica di Rifiuti Solidi Urbani da R.D, a fronte di una riduzione drastica delle quantità di rifiuti indifferenziati conferiti ai siti integrati di trattamento di rifiuti non pericolosi. La modifica nella gestione integrata dei rifiuti prevista dal progetto comporta un aumento di efficienza del sito, con una drastica riduzione dei sovvalli conferiti a discariche terze, inoltre si ha una produzione di energia elettrica e termica annua in grado di soddisfare gli autoconsumi del sito e di generare un surplus di elettricità da cedere in rete. Nel contesto attuale è perciò conveniente predisporre nei siti integrati impianti per il trattamento della FORSU utilizzando le Migliori Tecniche Disponibili proposte dalle Linee Guida Italiane ed Europee, in modo tale da ottimizzare gli aspetti ambientali ed economici dell’impianto. Nell’elaborato sono stati affrontati poi gli iter autorizzativi necessari per le autorizzazioni all’esercizio ed alla costruzione degli impianti biogas: a seguito di una dettagliata disamina delle procedure necessarie, si è approfondito il tema del procedimento di Valutazione di Impatto Ambientale, con particolare attenzione alla fase di Studio di Impatto Ambientale. Inserendosi il digestore in progetto in un sito già esistente, era necessario che il volume del reattore fosse compatibile con l’area disponibile nel sito stesso; il dimensionamento di larga massima, che è stato svolto nel Quadro Progettuale, è stato necessario anche per confrontare le tipologie di digestori dry e wet. A parità di rifiuto trattato il processo wet richiede una maggiore quantità di fluidi di diluizione, che dovranno essere in seguito trattati, e di un volume del digestore superiore, che comporterà un maggiore dispendio energetico per il riscaldamento della biomassa all’interno. È risultata perciò motivata la scelta del digestore dry sia grazie al minore spazio occupato dal reattore, sia dal minor consumo energetico e minor volume di reflui da trattare. Nella parte finale dell’elaborato sono stati affrontati i temi ambientali,confrontando la configurazione del sito ante operam e post operam. È evidente che la netta riduzione di frazione indifferenziata di rifiuti, non totalmente bilanciata dall’aumento di FORSU, ha consentito una riduzione di traffico veicolare indotto molto elevato, dell’ordine di circa 15 mezzi pesanti al giorno, ciò ha comportato una riduzione di inquinanti emessi sul percorso più rilevante per l’anidride carbonica che per gli altri inquinanti. Successivamente è stata valutata, in modo molto conservativo, l’entità delle emissioni ai camini dell’impianto di cogenerazione. Essendo queste l’unico fattore di pressione sull’ambiente circostante, è stato valutato tramite un modello semplificato di dispersione gaussiana, che il loro contributo alla qualità dell’aria è generalmente una frazione modesta del valore degli SQA. Per gli ossidi di azoto è necessario un livello di attenzione superiore rispetto ad altri inquinanti, come il monossido di carbonio e le polveri sottili, in quanto i picchi di concentrazione sottovento possono raggiungere frazioni elevate (fino al 60%) del valore limite orario della qualità dell’aria, fissato dal D.Lgs 155/2010. Infine, con riferimento all’ energia elettrica producibile sono state valutate le emissioni che sarebbero generate sulla base delle prestazioni del parco elettrico nazionale: tali emissioni sono da considerare evitate in quanto l’energia prodotta nel sito in esame deriva da fonti rinnovabili e non da fonti convenzionali. In conclusione, completando il quadro di emissioni evitate e indotte dalla modifica dell’impianto, si deduce che l’impatto sull’ambiente non modificherà in maniera significativa le condizioni dell’aria nella zona, determinando una variazione percentuale rispetto agli inquinanti emessi a livello regionale inferiore all’1% per tutti gli inquinanti considerati (CO, PM10, NOX, NMCOV). Il vantaggio più significativo riguarda una riduzione di emissioni di CO2 dell’ordine delle migliaia di tonnellate all’anno; questo risultato è importante per la riduzione di emissione dei gas serra in atmosfera e risulta in accordo con la logica dell’utilizzo di biomasse per la produzione di energia. Dal presente elaborato si evince infine come l’utilizzo del biogas prodotto dalla digestione anaerobica della Frazione Organica dei Rifiuti Solidi Urbani non comporti solo un vantaggio dal punto di vista economico, grazie alla presenza degli incentivi nazionali, ma soprattutto dal punto di vista ambientale, grazie alla riduzione notevole dei gas serra in atmosfera, in accordo con gli obiettivi europei e mondiali, e grazie al recupero di rifiuti organici per la produzione di energia e compost di qualità.
Resumo:
La tesi si propone di studiare il rapporto tra i due linguaggi di programmazione più diffusi per dispositivi portatili, e si concentra in particolare sul porting dal diffusissimo linguaggio Java all'emergente Objective-C. Strumenti come J2ObjC e Codename One saranno studiati e comparati.
Resumo:
L’obiettivo di questa tesi è stato lo svilippo di un convertitore di potenza per applicazioni di energy harvesting in grado di convogliare l’energia estratta da diversi tipi di trasduttori di grandezze ambientali in un unico dispositivo di storage, ad es. un condensatore, utilizzabile per alimentare circuiti a basso consumo. L’idea di base è stata quella di ottimizzare il trasferimento di energia, attraverso una rete logica in grado di gestire le priorità di conversione dalle diverse tipologie di sorgenti e grazie ad una implementazione di un algoritmo di Maximum Power Point Tracking. In base alle specifiche di progetto, in una prima fase è stata sviluppata la rete a livello funzionale, poi sono stati scelti i componenti più opportuni ed infine si è verificato il funzionamento attraverso simulazioni circuitali.
Resumo:
Web is constantly evolving, thanks to the 2.0 transition, HTML5 new features and the coming of cloud-computing, the gap between Web and traditional desktop applications is tailing off. Web-apps are more and more widespread and bring several benefits compared to traditional ones. On the other hand reference technologies, JavaScript primarly, are not keeping pace, so a paradim shift is taking place in Web programming, and so many new languages and technologies are coming out. First objective of this thesis is to survey the reference and state-of-art technologies for client-side Web programming focusing in particular on what concerns concurrency and asynchronous programming. Taking into account the problems that affect existing technologies, we finally design simpAL-web, an innovative approach to tackle Web-apps development, based on the Agent-oriented programming abstraction and the simpAL language. == Versione in italiano: Il Web è in continua evoluzione, grazie alla transizione verso il 2.0, alle nuove funzionalità introdotte con HTML5 ed all’avvento del cloud-computing, il divario tra le applicazioni Web e quelle desktop tradizionali va assottigliandosi. Le Web-apps sono sempre più diffuse e presentano diversi vantaggi rispetto a quelle tradizionali. D’altra parte le tecnologie di riferimento, JavaScript in primis, non stanno tenendo il passo, motivo per cui la programmazione Web sta andando incontro ad un cambio di paradigma e nuovi linguaggi e tecnologie stanno spuntando sempre più numerosi. Primo obiettivo di questa tesi è di passare al vaglio le tecnologie di riferimento ed allo stato dell’arte per quel che riguarda la programmmazione Web client-side, porgendo particolare attenzione agli aspetti inerenti la concorrenza e la programmazione asincrona. Considerando i principali problemi di cui soffrono le attuali tecnologie passeremo infine alla progettazione di simpAL-web, un approccio innovativo con cui affrontare lo sviluppo di Web-apps basato sulla programmazione orientata agli Agenti e sul linguaggio simpAL.
Resumo:
La crescente disponibilità di dispositivi meccanici e -soprattutto - elettronici le cui performance aumentano mentre il loro costo diminuisce, ha permesso al campo della robotica di compiere notevoli progressi. Tali progressi non sono stati fatti unicamente per ciò che riguarda la robotica per uso industriale, nelle catene di montaggio per esempio, ma anche per quella branca della robotica che comprende i robot autonomi domestici. Questi sistemi autonomi stanno diventando, per i suddetti motivi, sempre più pervasivi, ovvero sono immersi nello stesso ambiente nel quale vivono gli essere umani, e interagiscono con questi in maniera proattiva. Essi stanno compiendo quindi lo stesso percorso che hanno attraversato i personal computer all'incirca 30 anni fa, passando dall'essere costosi ed ingombranti mainframe a disposizione unicamente di enti di ricerca ed università, ad essere presenti all'interno di ogni abitazione, per un utilizzo non solo professionale ma anche di assistenza alle attività quotidiane o anche di intrattenimento. Per questi motivi la robotica è un campo dell'Information Technology che interessa sempre più tutti i tipi di programmatori software. Questa tesi analizza per prima cosa gli aspetti salienti della programmazione di controllori per robot autonomi (ovvero senza essere guidati da un utente), quindi, come l'approccio basato su agenti sia appropriato per la programmazione di questi sistemi. In particolare si mostrerà come un approccio ad agenti, utilizzando il linguaggio di programmazione Jason e quindi l'architettura BDI, sia una scelta significativa, dal momento che il modello sottostante a questo tipo di linguaggio è basato sul ragionamento pratico degli esseri umani (Human Practical Reasoning) e quindi è adatto alla implementazione di sistemi che agiscono in maniera autonoma. Dato che le possibilità di utilizzare un vero e proprio sistema autonomo per poter testare i controllori sono ridotte, per motivi pratici, economici e temporali, mostreremo come è facile e performante arrivare in maniera rapida ad un primo prototipo del robot tramite l'utilizzo del simulatore commerciale Webots. Il contributo portato da questa tesi include la possibilità di poter programmare un robot in maniera modulare e rapida per mezzo di poche linee di codice, in modo tale che l'aumento delle funzionalità di questo risulti un collo di bottiglia, come si verifica nella programmazione di questi sistemi tramite i classici linguaggi di programmazione imperativi. L'organizzazione di questa tesi prevede un capitolo di background nel quale vengono riportare le basi della robotica, della sua programmazione e degli strumenti atti allo scopo, un capitolo che riporta le nozioni di programmazione ad agenti, tramite il linguaggio Jason -quindi l'architettura BDI - e perché tale approccio è adatto alla programmazione di sistemi di controllo per la robotica. Successivamente viene presentata quella che è la struttura completa del nostro ambiente di lavoro software che comprende l'ambiente ad agenti e il simulatore, quindi nel successivo capitolo vengono mostrate quelle che sono le esplorazioni effettuate utilizzando Jason e un approccio classico (per mezzo di linguaggi classici), attraverso diversi casi di studio di crescente complessità; dopodiché, verrà effettuata una valutazione tra i due approcci analizzando i problemi e i vantaggi che comportano questi. Infine, la tesi terminerà con un capitolo di conclusioni e di riflessioni sulle possibili estensioni e lavori futuri.
Resumo:
L’attenzione dei pochi automobilisti che oggi passano velocemente per via Cavalli, nella frazione di Santa Maria Nuova, sotto il comune di Bertinoro (FC), non viene attirata dal palazzo settecentesco seminascosto dalla vegetazione che cresce incolta. L’edificio potrebbe passare per un casolare di campagna abbandonato, senza alcuna pretesa di bellezza, mutilato dei suoi terreni. Solo salendo lo scalone dissestato si può scoprire la ricchezza delle decorazione interne, stucchi baroccheggianti con maschere di volti provenienti da terre lontane e abbondanti cornucopie che circondano lo stemma della famiglia Cavalli. La piccola cappella della villa, in perfetto stato di conservazione, mostra, con un trionfo di stucchi, l’assunzione della Vergine al cielo, osservata dai santi Pietro e Paolo. Le quattro stanze centrali del piano nobile sono finemente dipinte con paesaggi marini e lacustri, stanze sepolcrali egizie e atrii di templi antichi. La ravennate famiglia dei marchesi Cavalli, una delle più ricche della zona nel XVIII e XIX secolo, utilizzava la villa come luogo di villeggiatura e come casino per la caccia. Testimonianze della loro presenza sono conservate nelle mappe storiche all’Archivio del Comune di Bertinoro e nell’Archivio parrocchiale di Santa Maria Nuova, dove si trovano descrizioni della ricchezza sia dell’edificio che delle terre possedute dai marchesi. Il complesso di villa Cavalli ha subito numerosi passaggi di proprietà dal 1900 ad oggi, è stato utilizzato come magazzino, pollaio, essiccatoio per il tabacco e le sue proprietà sono state frazionate fino a ridursi al piccolo parco presente oggi. Poiché gli attuali proprietari non possono garantire né la manutenzione ordinaria né quella straordinaria e il complesso è tutelato dal D. Lgs. 42/2004 Codice dei Beni Culturali e del Paesaggio è stato messo all’asta per tre volte, l’ultima nel dicembre 2011, senza risultato. La tesi sviluppa un’analisi dello stato di fatto della villa e del parco, partendo dal suo inserimento nel territorio fino allo studio dei dettagli costruttivi, per giungere ad un’ipotesi di progetto che vede il complesso strettamente legato a Santa Maria Nuova e alla sua gente. L’edificio fungerà da centro culturale, con mostre permanenti e temporanee, laboratori didattici, ludoteca per bambini e ospiterà la sede distaccata della biblioteca del comune di Bertinoro, ora inserita in un edificio di Santa Maria Nuova ma con dimensioni estremamente limitate. Si intendono effettuare interventi di consolidamento strutturale su tutti i solai della villa, su volte e copertura, con un atteggiamento di delicatezza verso il piano nobile, agendo dal piano inferiore e da quello superiore. Capitoli specifici trattano il restauro delle finiture e delle superfici dipinte e stuccate, per finire con l’intervento di adeguamento impiantistico e di valorizzazione del parco.
Resumo:
La presente tesi è dedicata al riuso nel software. Eccettuata un'introduzione organica al tema, l'analisi è a livello dei meccanismi offerti dai linguaggi di programmazione e delle tecniche di sviluppo, con speciale attenzione rivolta al tema della concorrenza. Il primo capitolo fornisce un quadro generale nel quale il riuso del software è descritto, assieme alle ragioni che ne determinano l'importanza e ai punti cruciali relativi alla sua attuazione. Si individuano diversi livelli di riuso sulla base dell'astrazione e degli artefatti in gioco, e si sottolinea come i linguaggi contribuiscano alla riusabilità e alla realizzazione del riuso. In seguito, viene esplorato, con esempi di codice, il supporto al riuso da parte del paradigma ad oggetti, in termini di incapsulamento, ereditarietà, polimorfismo, composizione. La trattazione prosegue analizzando differenti feature – tipizzazione, interfacce, mixin, generics – offerte da vari linguaggi di programmazione, mostrando come esse intervengano sulla riusabilità dei componenti software. A chiudere il capitolo, qualche parola contestualizzata sull'inversione di controllo, la programmazione orientata agli aspetti, e il meccanismo della delega. Il secondo capitolo abbraccia il tema della concorrenza. Dopo aver introdotto l'argomento, vengono approfonditi alcuni significativi modelli di concorrenza: programmazione multi-threaded, task nel linguaggio Ada, SCOOP, modello ad Attori. Essi vengono descritti negli elementi fondamentali e ne vengono evidenziati gli aspetti cruciali in termini di contributo al riuso, con esempi di codice. Relativamente al modello ad Attori, viene presentata la sua implementazione in Scala/Akka come caso studio. Infine, viene esaminato il problema dell'inheritance anomaly, sulla base di esempi e delle tre classi principali di anomalia, e si analizza la suscettibilità del supporto di concorrenza di Scala/Akka a riscontrare tali problemi. Inoltre, in questo capitolo si nota come alcuni aspetti relativi al binomio riuso/concorrenza, tra cui il significato profondo dello stesso, non siano ancora stati adeguatamente affrontati dalla comunità informatica. Il terzo e ultimo capitolo esordisce con una panoramica dell'agent-oriented programming, prendendo il linguaggio simpAL come riferimento. In seguito, si prova ad estendere al caso degli agenti la nozione di riuso approfondita nei capitoli precedenti.