7 resultados para Software Reuse, Objects, Concurrency, Actors, Agents
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
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.
Resumo:
Questa tesi prende spunto da altri studi realizzati nel campo delle esattamente nel campo delle “Swam Intelligence”, una branca delle intelligenze artificiali prende spunto dal comportamento di animali sociali, sopratutto insetti come termini, formiche ed api, per trarne interessanti metafore per la creazione di algoritmi e tecniche di programmazione. Questo tipo di algoritmi, come per gli esempi tratti dalla biologia, risultano dotati di interessanti proprietà adatte alla risoluzione di certi problemi nell'ambito dell'ingegneria. Lo scopo della tesi è quello di mostrare tramite un esempio pratico le proprietà dei sistemi sviluppati tramite i principi delle Swarm Intelligence, evidenziando la flessibilità di questi sistemi. Nello specifico, la mia tesi analizzerà il problema della suddivisione del lavoro in una colonia di formiche, fornendo un esempio pratico quale il compito di cattura di prede in un determinato ambiente. Ho sviluppato un'applicazione software in Java che simula tale comportamento, i dati utilizzati durante le diverse simulazioni possono essere modificati tramite file di testo, in modo da ottenere risultati validi per diversi contesti.
Resumo:
In the last years, the importance of locating people and objects and communicating with them in real time has become a common occurrence in every day life. Nowadays, the state of the art of location systems for indoor environments has not a dominant technology as instead occurs in location systems for outdoor environments, where GPS is the dominant technology. In fact, each location technology for indoor environments presents a set of features that do not allow their use in the overall application scenarios, but due its characteristics, it can well coexist with other similar technologies, without being dominant and more adopted than the others indoor location systems. In this context, the European project SELECT studies the opportunity of collecting all these different features in an innovative system which can be used in a large number of application scenarios. The goal of this project is to realize a wireless system, where a network of fixed readers able to query one or more tags attached to objects to be located. The SELECT consortium is composed of European institutions and companies, including Datalogic S.p.A. and CNIT, which deal with software and firmware development of the baseband receiving section of the readers, whose function is to acquire and process the information received from generic tagged objects. Since the SELECT project has an highly innovative content, one of the key stages of the system design is represented by the debug phase. This work aims to study and develop tools and techniques that allow to perform the debug phase of the firmware of the baseband receiving section of the readers.
Resumo:
Cities are key locations where Sustainability needs to be addressed at all levels, as land is a finite resource. However, not all urban spaces are exploited at best, and land developers often evaluate unused, misused, or poorly-designed urban portions as impracticable constraints. Further, public authorities lose the challenge to enable and turn these urban spaces into valuable opportunities where Sustainable Urban Development may flourish. Arguing that these spatial elements are at the centre of SUD, the paper elaborates a prototype in the form of a conceptual strategic planning framework, committed to an effective recycling of the city spaces using a flexible and multidisciplinary approach. Firstly, the research focuses upon a broad review of Sustainability literature, highlighting established principles and guidelines, building a sound theoretical base for the new concept. Hence, it investigates origins, identifies and congruently suggests a definition, characterisation and classification for urban “R-Spaces”. Secondly, formal, informal and temporary fitting functions are analysed and inserted into a portfolio meant to enhance adaptability and enlarge the choices for the on-site interventions. Thirdly, the study outlines ideal quality requirements for a sustainable planning process. Then, findings are condensed in the proposal, which is articulated in the individuation of tools, actors, plans, processes and strategies. Afterwards, the prototype is tested upon case studies: Solar Community (Casalecchio di Reno, Bologna) and Hyllie Sustainable City Project, the latter developed via an international workshop (ACSI-Camp, Malmö, Sweden). Besides, the qualitative results suggest, inter alia, the need to right-size spatial interventions, separate structural and operative actors, involve synergies’ multipliers and intermediaries (e.g. entrepreneurial HUBs, innovation agencies, cluster organisations…), maintain stakeholders’ diversity and create a circular process open for new participants. Finally, the paper speculates upon a transfer of the Swedish case study to Italy, and then indicates desirable future researches to favour the prototype implementation.
Resumo:
Nell'ambito dello sviluppo software, la concorrenza è sempre stata vista come la strada del futuro. Tuttavia, questa è stata spesso ignorata a causa del continuo sviluppo dell'hardware che ha permesso agli sviluppatori di continuare a scrivere software sequenziale senza doversi preoccupare delle performance. In un'era in cui le nuove architetture hardware presentano processori multi-core, tutto questo non è più possibile. L'obiettivo di questa tesi è stato quello di considerare il Modello ad Attori come valida alternativa allo sviluppo di applicazioni in ambito mobile e quindi di progettare, sviluppare e distribuire un nuovo framework sulla base di tale modello. Il lavoro parte quindi da una panoramica di Swift, il nuovo linguaggio di programmazione presentato da Apple al WWDC 2014, in cui vengono analizzati nel dettaglio i meccanismi che abilitano alla concorrenza. Successivamente viene descritto il modello ad attori in termini di: attori, proprietà, comunicazione e sincronizzazione. Segue poi un'analisi delle principali implementazioni di questo modello, tra cui: Scala, Erlang ed Akka; quest'ultimo rappresenta la base su cui è stato ispirato il lavoro di progettazione e sviluppo del framework Actor Kit. Il quarto capitolo descrive tutti i concetti, le idee e i principi su cui il framework Actor Kit è stato progettato e sviluppato. Infine, l'ultimo capitolo presenta l'utilizzo del framework in due casi comuni della programmazione mobile: 1) Acquisizione dati da Web API e visualizzazione sull'interfaccia utente. 2) Acquisizione dati dai sensori del dispositivo. In conclusione Actor Kit abilita la progettazione e lo sviluppo di applicazioni secondo un approccio del tutto nuovo nell'ambito mobile. Un possibile sviluppo futuro potrebbe essere l'estensione del framework con attori che mappino i framework standard di Apple; proprio per questo sarà reso pubblico con la speranza che altri sviluppatori possano evolverlo e renderlo ancora più completo e performante.
Resumo:
An industrial manipulator equipped with an automatic clay extruder is used to realize a machine that can manufacture additively clay objects. The desired geometries are designed by means of a 3D modeling software and then sliced in a sequence of layers with the same thickness of the extruded clay section. The profiles of each layer are transformed in trajectories for the extruder and therefore for the end-effector of the manipulator. The goal of this thesis is to improve the algorithm for the inverse kinematic resolution and the integration of the routine within the development software that controls the machine (Rhino/Grasshopper). The kinematic model is described by homogeneous transformations, adopting the Denavit-Hartenberg standard convention. The function is implemented in C# and it has been preliminarily tested in Matlab. The outcome of this work is a substantial reduction of the computation time relative to the execution of the algorithm, which is halved.
Resumo:
When the offshore oil and gas supplies exhaust, offshore platforms must be decommissioned and removed. The present thesis highlights the importance of evaluating the possibility of reuse of decommissioned offshore jacket platforms for offshore wind energy. In order to shift to the new structure, the topside must be removed from the substructure and a wind turbine can be installed in its place. The feasibility of this project was investigated using a finite element analysis software called Sesam. To study fatigue life in offshore structures, an exhaustive review of the background and state of the art was done. A finite element model was created by the means of Sesam and two different fatigue analysis approaches were applied and compared. In the end, an analysis methodology is suggested for the structural fatigue analysis of offshore wind turbine structures based on international standards, addressing the industry’s need to account for the combined effect of wind and hydrodynamic loads in these type of structures.