49 resultados para Software Design Pattern
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Resumo:
L'informatica, assieme alle sue innovazioni tecnologiche, offre al mondo d'oggi uno scenario in continuo sviluppo evolutivo che permette di facilitare alcune necessità dell'essere umano. Con la nascita di internet e dei nuovi dispositivi cellulari, la comunicazione è stata resa più malleabile e immediata. Tuttavia, le nuove tecnologie utilizzano infrastrutture complesse che non sempre sono ampiamente sfruttate a causa delle loro esigenze quali scalabilità, risposte in tempo reale, o tolleranza. Per far fronte a queste caratteristiche, una nuova tendenza del software è quella di fornire autonomia e pro-attività alle entità nel sistema in modo da incrementare la loro interazione. Queste caratteristiche permettono di responsabilizzare i soggetti rendendo il sistema auto-organizzato, con una migliore scalabilità,robustezza, e quindi riducendo le esigenze di calcolo di ciascuna entità. Lo studio dei sistemi auto-organizzanti è stato ispirato alla natura, e in particolare, ai sistemi biologici. Questi sistemi mostrano le caratteristiche interessanti per gli scenari pervasivi, poichè sono robusti e resistenti, in grado di adattarsi al contesto ambientale e quindi reagiscono a determinate modifiche che si verificano nell'ambiente comportandosi di conseguenza. L'ingegneria dell'auto-organizzazione ha il compito di simulare e testare questi comportamenti presentando uno schema progettuale completo che permetta di presentare soluzioni ricorrenti a problemi noti. Tale schema è definito in termini informatici design pattern. Le entità, definite agenti, per interagire e comunicare tra di loro hanno bisogno di coordinarsi tramite un modello specifico. Nel nostro caso è stato scelto TuCSoN, poichè riesce a separare uno spazio dedicato allo scambio di informazioni da uno spazio dedicato alle specifiche che permette di descrivere delle politiche di comportamento per sistemi MAS implementati nell'opportuno linguaggio di programmazione ReSpecT.
Resumo:
L'obbiettivo della seguente tesi è quello di analizzare quali sono ad oggi i migliori framework per lo sviluppo di software in Mixed Reality e studiare i design pattern più utili ad uno sviluppatore in questo ambito. Nel primo capitolo vengono introdotti i concetti di realtà estesa, virtuale, aumentata e mista con le relative differenze. Inoltre vengono descritti i diversi dispositivi che consentono la realtà mista, in particolare i due visori più utilizzati: Microsoft Hololens 2 e Magic Leap 1. Nello stesso capitolo vengono presentati anche gli aspetti chiave nello sviluppo in realtà mista, cioè tutti gli elementi che consentono un'esperienza in Mixed Reality. Nel secondo capitolo vengono descritti i framework e i kit utili per lo sviluppo di applicazioni in realtà mista multi-piattaforma. In particolare vengono introdotti i due ambienti di sviluppo più utilizzati: Unity e Unreal Engine, già esistenti e non specifici per lo sviluppo in MR ma che diventano funzionali se integrati con kit specifici come Mixed Reality ToolKit. Nel terzo capitolo vengono trattati i design pattern, comuni o nativi per applicazioni in realtà estesa, utili per un buono sviluppo di applicazioni MR. Inoltre, vengono presi in esame alcuni dei principali pattern più utilizzati nella programmazione ad oggetti e si verifica se e come sono implementabili correttamente su Unity in uno scenario di realtà mista. Questa analisi risulta utile per capire se l'utilizzo dei framework di sviluppo, metodo comunemente più utilizzato, comporta dei limiti nella libertà di sviluppo del programmatore.
Resumo:
L’elaborato di tesi discute del progetto di integrazione tra ROS 2, framework open-source per lo sviluppo di applicazioni robotiche, e VxWorks, sistema operativo in tempo reale (RTOS), attraverso l’utilizzo di container OCI compliant su VxWorks. L’integrazione è stata svolta all’interno dello stack software di IMA (Industria Macchine Automatiche). Il progetto ha dunque integrato ROS 2 Humble e VxWorks 7 permettendo l’utilizzo di costrutti software di ROS 2 su dei container in esecuzione a livello User su VxWorks. Successivamente è stata creata una applicazione di pick and place con un robot antropomorfo (Universal Robots Ur5e) avvalendosi di ROS 2 Control, framework per l’introduzione e gestione di hardware e controllori, e MoveIt 2, framework per incorporare algoritmi di motion-planning, cinematica, controllo e navigazione. Una volta progettata l’applicazione, il sistema è stato integrato all’interno dell’architettura di controllo di IMA. L’architettura a container VxWorks di IMA è stata estesa per il caso ROS 2, la comunicazione tra campo e applicazione ROS 2 è passata tramite il master EtherCAT e il modulo WebServer presenti nell’architettura IMA. Una volta eseguito il container ROS 2 posizione e velocità dei servo motori sono stati inviati tramite al WebServer di IMA sfruttando la comunicazione VLAN interna. Una volta ricevuto il messaggio, il WebServer si è occupato di trasferirlo al master EtherCAT che in aggiunta si è occupato anche di ottenere le informazioni sullo stato attuale del robot. L’intero progetto è stato sviluppato in prima battuta in ambiente di simulazione per validarne l’architettura. Successivamente si è passati all’installazione in ambiente embedded grazie all’ausilio di IPC sui quali è stato testato l’effettivo funzionamento dell’integrazione all’interno dell’architettura IMA.
Resumo:
Uno dei temi più discussi ed interessanti nel mondo dell’informatica al giorno d’oggi è sicuramente il Cloud Computing. Nuove organizzazioni che offrono servizi di questo tipo stanno nascendo ovunque e molte aziende oggi desiderano imparare ad utilizzarli, migrando i loro centri di dati e le loro applicazioni nel Cloud. Ciò sta avvenendo anche grazie alla spinta sempre più forte che stanno imprimendo le grandi compagnie nella comunità informatica: Google, Amazon, Microsoft, Apple e tante altre ancora parlano sempre più frequentemente di Cloud Computing e si stanno a loro volta ristrutturando profondamente per poter offrire servizi Cloud adeguandosi così a questo grande cambiamento che sta avvenendo nel settore dell’informatica. Tuttavia il grande movimento di energie, capitali, investimenti ed interesse che l’avvento del Cloud Computing sta causando non aiuta a comprendere in realtà che cosa esso sia, al punto tale che oggi non ne esiste ancora una definizione univoca e condivisa. La grande pressione inoltre che esso subisce da parte del mondo del mercato fa sì che molte delle sue più peculiari caratteristiche, dal punto di vista dell’ingegneria del software, vengano nascoste e soverchiate da altre sue proprietà, architetturalmente meno importanti, ma con un più grande impatto sul pubblico di potenziali clienti. Lo scopo che mi propongo con questa tesi è quello quindi di cercare di fare chiarezza in quello che è il mondo del Cloud computing, focalizzandomi particolarmente su quelli che sono i design pattern più utilizzati nello sviluppo di applicazioni di tipo cloud e presentando quelle che oggi rappresentano le principali tecnologie che vengono utilizzate sia in ambito professionale, che in ambito di ricerca, per realizzare le applicazioni cloud, concentrandomi in maniera particolare su Microsoft Orleans.
Resumo:
Questa tesi descrive le fasi della progettazione e dell'implementazione di una applicazione mobile per il supporto alla didattica del corso di Programmazione del CdL di Ingegneria e Scienze Informatiche del Campus di Cesena. Il progetto ha lo scopo di mettere a disposizione degli studenti e dei docenti una applicazione per dispositivi Android che permetta di usufruire dei servizi attualmente forniti dal portale ufficiale del corso. Le funzionalità principali consistono nell'accesso ai materiali didattici e nella gestione delle consegne di esercizi propedeutici alla prova finale per quanto concerne gli studenti; ai professori è invece fornita la possibilità di eseguire la correzione degli elaborati e seguirne lo stato di avanzamento. Visto l'elevato numero di utenti che utilizzava il portale esistente tramite tablet e smartphone si è ritenuto necessario lo sviluppo di questo prodotto che possa fornire una user experience ottimizzata per questi dispositivi. Durante la progettazione è stata data particolare importanza all'ottimizzazione delle prestazioni, sfruttando gli strumenti più recenti forniti agli sviluppatori, e alla conformità con i principali design pattern della programmazione per dispositivi Android. Allo scopo di fornire un prodotto utilizzabile dalla maggior parte dell'utenza potenziale, si è inoltre data priorità alla compatibilità con tutti i dispositivi e le versioni del sistema operativo, senza rinunciare ad alcuna funzionalità. Il risultato del lavoro consiste in un prototipo pienamente funzionante e utilizzabile che mira a fornire una base stabile su cui eseguire future evoluzioni.
Resumo:
Introduzione alla tecnologia PCB. Introduzione software design Circuit Maker Conversione circuito per micro-potenze con CircuitMaker
Resumo:
La realizzazione di un motore di ricerca per uno specifico ambito documentale comporta molte scelte. Questo documento intende esplicarne problemi riscontrati e soluzioni ottenute durante la realizzazione di un motore di ricerca per ricette culinarie. Questa dissertazione illustra il problema sia da un punto di vista architetturale che implementativo, in particolare, la tesi tratta sia del design pattern MVC, usato come base del progetto, che di algoritmi di stemming e ranking.
Resumo:
Il concetto di “sostenibilità” si riferisce allo sviluppo dei sistemi umani attraverso il più piccolo impatto possibile sul sistema ambientale. Le opere che si inseriscono bene nel contesto ambientale circostante e le pratiche che rispettano le risorse in maniera tale da permettere una crescita e uno sviluppo a lungo termine senza impattare sull’ambiente sono indispensabili in una società moderna. I progressi passati, presenti e futuri che hanno reso i conglomerati bituminosi materiali sostenibili dal punto di vista ambientale sono particolarmente importanti data la grande quantità di conglomerato usato annualmente in Europa e negli Stati Uniti. I produttori di bitume e di conglomerato bituminoso stanno sviluppando tecniche innovative per ridurre l’impatto ambientale senza compromettere le prestazioni meccaniche finali. Un conglomerato bituminoso ad “alta lavorabilità” (WMA), pur sviluppando le stesse caratteristiche meccaniche, richiede un temperatura di produzione minore rispetto a quella di un tradizionale conglomerato bituminoso a caldo (HMA). L’abbassamento della temperature di produzione riduce le emissioni nocive. Questo migliora le condizioni dei lavoratori ed è orientato verso uno sviluppo sostenibile. L’obbiettivo principale di questa tesi di laurea è quello di dimostrare il duplice valore sia dal punto di vista dell’eco-compatibilità sia dal punto di vista meccanico di questi conglomerati bituminosi ad “alta lavorabilità”. In particolare in questa tesi di laurea è stato studiato uno SMA ad “alta lavorabilità” (PGGWMA). L’uso di materiali a basso impatto ambientale è la prima fase verso un progetto ecocompatibile ma non può che essere il punto di partenza. L’approccio ecocompatibile deve essere esteso anche ai metodi di progetto e alla caratterizzazione di laboratorio dei materiali perché solo in questo modo è possibile ricavare le massime potenzialità dai materiali usati. Un’appropriata caratterizzazione del conglomerato bituminoso è fondamentale e necessaria per una realistica previsione delle performance di una pavimentazione stradale. La caratterizzazione volumetrica (Mix Design) e meccanica (Deformazioni Permanenti e Comportamento a fatica) di un conglomerato bituminoso è una fase importante. Inoltre, al fine di utilizzare correttamente i materiali, un metodo di progetto avanzato ed efficiente, come quello rappresentato da un approccio Empirico-Meccanicistico (ME), deve essere utilizzato. Una procedura di progetto Empirico-Meccanicistica consiste di un modello strutturale capace di prevedere gli stati di tensione e deformazione all’interno della pavimentazione sotto l’azione del traffico e in funzione delle condizioni atmosferiche e di modelli empirici, calibrati sul comportamento dei materiali, che collegano la risposta strutturale alle performance della pavimentazione. Nel 1996 in California, per poter effettivamente sfruttare i benefici dei continui progressi nel campo delle pavimentazioni stradali, fu iniziato un estensivo progetto di ricerca mirato allo sviluppo dei metodi di progetto Empirico - Meccanicistici per le pavimentazioni stradali. Il risultato finale fu la prima versione del software CalME che fornisce all’utente tre approcci diversi di l’analisi e progetto: un approccio Empirico, uno Empirico - Meccanicistico classico e un approccio Empirico - Meccanicistico Incrementale - Ricorsivo. Questo tesi di laurea si concentra sulla procedura Incrementale - Ricorsiva del software CalME, basata su modelli di danno per quanto riguarda la fatica e l’accumulo di deformazioni di taglio dai quali dipendono rispettivamente la fessurazione superficiale e le deformazioni permanenti nella pavimentazione. Tale procedura funziona per incrementi temporali successivi e, usando i risultati di ogni incremento temporale, ricorsivamente, come input dell’incremento temporale successivo, prevede le condizioni di una pavimentazione stradale per quanto riguarda il modulo complesso dei diversi strati, le fessurazioni superficiali dovute alla fatica, le deformazioni permanenti e la rugosità superficiale. Al fine di verificare le propreità meccaniche del PGGWMA e le reciproche relazioni in termini di danno a fatica e deformazioni permanenti tra strato superficiale e struttura della pavimentazione per fissate condizioni ambientali e di traffico, è stata usata la procedura Incrementale – Ricorsiva del software CalME. Il conglomerato bituminoso studiato (PGGWMA) è stato usato in una pavimentazione stradale come strato superficiale di 60 mm di spessore. Le performance della pavimentazione sono state confrontate a quelle della stessa pavimentazione in cui altri tipi di conglomerato bituminoso sono stati usati come strato superficiale. I tre tipi di conglomerato bituminoso usati come termini di paragone sono stati: un conglomerato bituminoso ad “alta lavorabilità” con granulometria “chiusa” non modificato (DGWMA), un conglomerato bituminoso modificato con polverino di gomma con granulometria “aperta” (GGRAC) e un conglomerato bituminoso non modificato con granulometria “chiusa” (DGAC). Nel Capitolo I è stato introdotto il problema del progetto ecocompatibile delle pavimentazioni stradali. I materiali a basso impatto ambientale come i conglomerati bituminosi ad “alta lavorabilità” e i conglomerati bituminosi modificati con polverino di gomma sono stati descritti in dettaglio. Inoltre è stata discussa l’importanza della caratterizzazione di laboratorio dei materiali e il valore di un metodo razionale di progetto delle pavimentazioni stradali. Nel Capitolo II sono stati descritti i diversi approcci progettuali utilizzabili con il CalME e in particolare è stata spiegata la procedura Incrementale – Ricorsiva. Nel Capitolo III sono state studiate le proprietà volumetriche e meccaniche del PGGWMA. Test di Fatica e di Deformazioni Permanenti, eseguiti rispettivamente con la macchina a fatica per flessione su quattro punti e il Simple Shear Test device (macchina di taglio semplice), sono stati effettuati su provini di conglomerato bituminoso e i risultati dei test sono stati riassunti. Attraverso questi dati di laboratorio, i parametri dei modelli della Master Curve, del danno a fatica e dell’accumulo di deformazioni di taglio usati nella procedura Incrementale – Ricorsiva del CalME sono stati valutati. Infine, nel Capitolo IV, sono stati presentati i risultati delle simulazioni di pavimentazioni stradali con diversi strati superficiali. Per ogni pavimentazione sono stati analizzati la fessurazione superficiale complessiva, le deformazioni permanenti complessive, il danno a fatica e la profondità delle deformazioni in ognuno degli stati legati.
Resumo:
Nel contesto della tesi è stata sviluppata un'applicazione di Realtà Aumentata per tablet Android nell'ambito dell'interior design. Dopo aver acquisito un'istantanea con la fotocamera del dispositivo di un ambiente interno, è possibile selezionare attraverso un "tocco" sul display il rivestimento (pavimento o parete) di cui si vuole simulare il cambiamento di colore o texture. Una volta individuata ed evidenziata l'area di interesse, in tempo reale è possibile cambiare interattivamente l'aspetto del rivestimento precedentemente selezionato. La tesi si focalizza sulla ricerca di un metodo che consenta di avere una segmentazione accurata della superficie di interesse. L'algoritmo di segmentazione studiato, utilizzato nell'applicazione di Realtà Aumentata, è sviluppato nel contesto della collaborazione tra il Computer Vision Group (CVG), coordinato dal Prof. Alessandro Bevilacqua e Maticad S.r.l., un'azienda che opera nel settore dell'Information Technology, Distributed Applications, Internet e Computer Grafica, presso la quale ho effettuato un periodo di tirocinio. Maticad, oltre a software per pc desktop, sviluppa applicazioni per iOS e in questo contesto, durante il tirocinio, ho sviluppata un'applicazione demo per iOS 7 volta a studiare le prestazioni dei sensori (ottico, inerziali, magnetici), in vista di un futuro porting dell'applicazione su quel sistema operativo.
Resumo:
Uno dei principali ambiti di ricerca dell’intelligenza artificiale concerne la realizzazione di agenti (in particolare, robot) in grado di aiutare o sostituire l’uomo nell’esecuzione di determinate attività. A tal fine, è possibile procedere seguendo due diversi metodi di progettazione: la progettazione manuale e la progettazione automatica. Quest’ultima può essere preferita alla prima nei contesti in cui occorra tenere in considerazione requisiti quali flessibilità e adattamento, spesso essenziali per lo svolgimento di compiti non banali in contesti reali. La progettazione automatica prende in considerazione un modello col quale rappresentare il comportamento dell’agente e una tecnica di ricerca (oppure di apprendimento) che iterativamente modifica il modello al fine di renderlo il più adatto possibile al compito in esame. In questo lavoro, il modello utilizzato per la rappresentazione del comportamento del robot è una rete booleana (Boolean network o Kauffman network). La scelta di tale modello deriva dal fatto che possiede una semplice struttura che rende agevolmente studiabili le dinamiche tuttavia complesse che si manifestano al suo interno. Inoltre, la letteratura recente mostra che i modelli a rete, quali ad esempio le reti neuronali artificiali, si sono dimostrati efficaci nella programmazione di robot. La metodologia per l’evoluzione di tale modello riguarda l’uso di tecniche di ricerca meta-euristiche in grado di trovare buone soluzioni in tempi contenuti, nonostante i grandi spazi di ricerca. Lavori precedenti hanno gia dimostrato l’applicabilità e investigato la metodologia su un singolo robot. Lo scopo di questo lavoro è quello di fornire prova di principio relativa a un insieme di robot, aprendo nuove strade per la progettazione in swarm robotics. In questo scenario, semplici agenti autonomi, interagendo fra loro, portano all’emergere di un comportamento coordinato adempiendo a task impossibili per la singola unità. Questo lavoro fornisce utili ed interessanti opportunità anche per lo studio delle interazioni fra reti booleane. Infatti, ogni robot è controllato da una rete booleana che determina l’output in funzione della propria configurazione interna ma anche dagli input ricevuti dai robot vicini. In questo lavoro definiamo un task in cui lo swarm deve discriminare due diversi pattern sul pavimento dell’arena utilizzando solo informazioni scambiate localmente. Dopo una prima serie di esperimenti preliminari che hanno permesso di identificare i parametri e il migliore algoritmo di ricerca, abbiamo semplificato l’istanza del problema per meglio investigare i criteri che possono influire sulle prestazioni. E’ stata così identificata una particolare combinazione di informazione che, scambiata localmente fra robot, porta al miglioramento delle prestazioni. L’ipotesi è stata confermata applicando successivamente questo risultato ad un’istanza più difficile del problema. Il lavoro si conclude suggerendo nuovi strumenti per lo studio dei fenomeni emergenti in contesti in cui le reti booleane interagiscono fra loro.