Reuse Mechanisms and Concurrency: From Actors to Agent-Oriented Programming

   page       BibTeX_logo.png       attach   
@mastersthesis{casadei12reuseinaop,
    abstract = {La presente tesi \`{e} dedicata al riuso nel software. Eccettuata un'introduzione organica al tema, l'analisi \`{e} 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 \`{e} 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\`{a} 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\`{a}, polimorfismo, composizione. La trattazione prosegue analizzando differenti feature -- tipizzazione, interfacce, mixin, generics -- offerte da vari linguaggi di programmazione, mostrando come esse intervengano sulla riusabilit\`{a} 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\`{a} 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\`{a} 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.},
    amseprint = {5181},
    author = {Casadei, Roberto},
    available = {2012-09-26},
    cosupervisor = {Santi, Andrea},
    cycle = {L},
    description = {La tesi ha come obiettivo analizzare il problema del riuso nel contesto della programmazione concorrente, considerando come caso di studio specifico la programmazione ad agenti e il linguaggio simpAL.},
    keywords = {Software Reuse; Ob jects; Concurrency; Actors; Agents},
    language = {en},
    month = mar,
    start = {2012-09-26},
    supervisor = {Ricci, Alessandro},
    title = {Reuse Mechanisms and Concurrency: From Actors to Agent-Oriented Programming},
    translatedtitle = {Meccanismi di Riuso nella Programmazione Concorrente: Dagli Attori agli Agenti},
    type = {Bachelor's thesis},
    year = 2013
}