PROGETTO DI UNITÀ DI RICERCA - MODELLO B Anno prot. 2008YY33BS_004

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROGETTO DI UNITÀ DI RICERCA - MODELLO B Anno 2008 - prot. 2008YY33BS_004"

Transcript

1 MINISTERO DELL'ISTRUZIONE DELL'UNIVERSITÀ E DELLA RICERCA DIREZIONE GENERALE DELLA RICERCA PROGRAMMI DI RICERCA SCIENTIFICA DI RILEVANTE INTERESSE NAZIONALE RICHIESTA DI COFINANZIAMENTO (DM n del 4 dicembre 2008) PROGETTO DI UNITÀ DI RICERCA - MODELLO B Anno prot. 2008YY33BS_ Area Scientifico-disciplinare 01: Scienze matematiche e informatiche 100% 2 - Coordinatore Scientifico ZUCCA ELENA Professore Associato confermato Università degli Studi di GENOVA Facoltà di SCIENZE MATEMATICHE FISICHE e NATURALI Dipartimento di INFORMATICA E SCIENZE DELL'INFORMAZIONE 3 - Responsabile dell'unità di Ricerca CAZZOLA WALTER Ricercatore confermato 25/07/1969 CZZWTR69L25D969S Università degli Studi di MILANO Dipartimento di INFORMATICA E COMUNICAZIONE (Prefisso e telefono) (Numero fax) cazzola@dico.unimi.it 4 - Curriculum scientifico Walter Cazzola è Ricercatore presso l'università degli Studi di Milano dal 30 Dicembre del In precedenza è stato assegnista presso l'università di Genova ( ) ed ha conseguito il titolo di dottore di ricerca presso l'università di Milano (Febbraio 2001). Walter Cazzola è autore di più di 50 articoli pubblicati su riviste e conferenze internazionali; è stato membro di comitati di programma di workshop e conferenze internazionali, recentemente per RAM-SE (Reflection, AOP and Meta-Data for Software Evolution) 2004, 2005, 2006, 2007 e 2008; ha curato il libro "Reflection and Software Engineering" pubblicato da Springer nel 1999 ed è stato curatore del numero speciale della rivista "Transaction on aspect-oriented software development" dedicata all'evoluzione del software. Ha partecipato a diversi progetti di ricerca nazionali ed internazionali; in particolare è stato responsabile scientifico per il progetto RAMSES (Reflective and Adaptive Middleware for Software Evolution of Nonstopping Systems) e RAMSES-II (proseguimento del progetto RAMSES) finanziati dal Deutsche Forschungsgemeinschaft (Fondazione Tedesca per la Ricerca). Interessi di ricerca: programmazione e sviluppo object- e aspect-oriented, riflessione computazionale, implementazione di linguaggi ed evoluzione del software. Walter Cazzola is an Assistant Professor at the University of Milano since the 30th of December Previously, he was a research fellow at the University of Genova ( ); he has taken his PhD in Informatics from the University of Milano (February 2001). Walter Cazzola has written more than 50 papers in international journals and conferences; he has served as program committee and organizing member for several international conferences and workshops (recently for RAM-SE -- Reflection, AOP and Meta-Data for Software Evolution , 2005, 2006, 2007 and 2008); he has coedited the book "Reflection and Software Engineering" published by Springer in 1999 and he is the co-editor of the special issue on software evolution of the journal "Transaction on aspect-oriented software development". He has participated in several international and national research projects; in particular he was the scientific coordinator of the RAMSES (Reflective and Adaptive Middleware for Software Evolution of Nonstopping Systems) and RAMSES-II (RAMSES follow-up) projects funded by the Deutsche Forschungsgemeinschaft (German Research Foundation). Current research interests: object- and aspect-oriented programming and software development, computational reflection, compilers and software evolution. MIUR - BANDO MODELLO B - 1 -

2 5 - Pubblicazioni scientifiche più significative del Responsabile dell'unità di Ricerca 1. CAPRA L, CAZZOLA W. (2008). Evolutionary Design through Reflective Petri Nets: an Application to Workflow. In: Proceedings of the IASTED International Conference on Software Engineering (SE'08). Innsbruck, Austria, February CAZZOLA W., Alessandro Marchetto (2008). AOP-->HiddenMetrics: Separation, Extensibility and Adaptability in SW Measurement. JOURNAL OF OBJECT TECHNOLOGY, vol. 7; p , ISSN: E. Figueiredo, C. Sant'Anna, A. Garcia, T. T. Bartolomei, CAZZOLA W., A. Marchetto (2008). On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework. CSMR 2008 : 12TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING : DEVELOPING EVOLVABLE SYSTEMS : APRIL 1 4, 2008, ATHENS, GREECE /. p IEEE, ISBN/ISSN: , doi: /CSMR CAPRA L, CAZZOLA W. (2007). A Reflective PN-based Approach to Dynamic Workflow Change. In: Proceedings of the 9th International Symposium in Symbolic and Numeric Algorithms for Scientific Computing (SYNASC'07). Timisoara, Romania, September 2007IEEE, p CAPRA L, CAZZOLA W. (2007). Self-Evolving Petri Nets. JOURNAL OF UNIVERSAL COMPUTER SCIENCE, vol. 13; p , ISSN: CAZZOLA W., PINI S (2007). AOP vs Software Evolution: a Score in Favor of the Blueprint. In: Proceedings of the 4th ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE'07). Berlin, Germany, July 2007, p CAZZOLA W., PINI S (2007). On the Footprints of Join Points: The Blueprint Approach. JOURNAL OF OBJECT TECHNOLOGY, vol. 6; p , ISSN: CAZZOLA W., PINI S, GHONEIM A, SAAKE G (2007). Co-Evolving Application Code and Design Models by Exploiting Meta-Data. In: Proceedings of the 12th Annual ACM Symposium on Applied Computing (SAC'07). Seoul, South Korea, March 2007ACM, p CAPRA L, CAZZOLA W. (2006). A Petri-Net Based Reflective Framework. DISCRETE MATHEMATICS AND THEORETICAL COMPUTER SCIENCE, vol. 159; p , ISSN: CAZZOLA W., GHONEIM A, SAAKE G (2006). Viewpoint for Maintaining UML Models against Application Changes. In: Proceedings of International Conference on Software and Data Technologies (ICSOFT 2006). Setúbal, Portugal, September 2006Springer, p CAZZOLA W., PINI S (2006). Join Point Patterns: a High-Level Join Point Selection Mechanism. In: MoDELS'06 Satellite Events Proceedings. Genova, Italy, October 2006Springer, vol. 4364, p CAPRA L, CAZZOLA W. (2005). A Petri-Net Based Reflective Framework. In: IPM International Workshop on Foundations of Software Engineering (FSEN'05), October CAZZOLA W., CISTERNINO A., COLOMBO D. (2005). Freely Annotating C#. JOURNAL OF OBJECT TECHNOLOGY, vol. 4(10); p , ISSN: CAZZOLA W., CISTERNINO A., COLOMBO D. (2005). [a]c#: C# with a Customizable Code Annotation Mechanism. In: Annual ACM Symposium on Applied Computing (SAC'05), March 2005, p CAZZOLA W., PINI S, ANCONA M (2005). The Role of Design Information in Software Evolution. In: Proceedings of the 2nd ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE'05). Glasgow, Scotland, July 2005, p CAZZOLA W., PINI S., ANCONA M. (2005). AOP for Software Evolution: A Design Oriented Approach. In: Annual ACM Symposium on Applied Computing (SAC'05), March 2005, p CISTERNINO A, CAZZOLA W., COLOMBO D (2005). Metadata-Driven Library Design. In: Proceedings of Library-Centric Software Design Workshop (LCSD'05). San Diego, CA, USA, October ANCONA M., CAZZOLA W. (2004). Implementing the Essence of Reflection: a Reflective Run-Time Environment. In: ACM Symposium on Applied Computing (SAC'04), p CAZZOLA W. (2004). SmartMethod: an Efficient Replacement for Method. In: ACM Symposium on Applied Computing (SAC'04), p CAZZOLA W. (2004). SmartReflection: Efficient Introspection in Java. JOURNAL OF OBJECT TECHNOLOGY, vol. 3(11); p , ISSN: CAZZOLA W., GHONEIM A., SAAKE G. (2004). Software Evolution through Dynamic Adaptation of Its OO Design. In: EHRICH H.-D.; MEYER J.-J.; RYAN; M. D.. Objects, Agents and Features: Structuring Mechanisms for Contemporary Software. p Springer 22. CAZZOLA W., GHONEIM A., SAAKE G. (2004). System Evolution through Design Information Evolution: a Case Study. In: 13th International Conference on Intelligent and Adaptive Systems and Software Engineering, July, p CAZZOLA W. (2003). Remote Method Invocation as a First-Class Citizen. DISTRIBUTED COMPUTING, vol. 16; p , ISSN: Elenco dei partecipanti all'unità di Ricerca Componenti Componenti della sede dell'unità di Ricerca nº Cognome Nome Università/Ente Qualifica Disponibilità temporale indicativa prevista 1 anno 2 anno 1. CAPRA Lorenzo Università degli Studi di MILANO Ricercatore confermato CAZZOLA Walter Università degli Studi di MILANO Ricercatore confermato 6 6 TOTALE MIUR - BANDO MODELLO B - 2 -

3 Componenti di altre Università / Enti vigilati Nessuno Ministero dell'istruzione dell'università e della Ricerca Titolari di assegni di ricerca Nessuno Titolari di borse Nessuno 6.1 bis Vice-responsabile Altro personale nº Cognome Nome Università/Ente Dipartimento Qualifica Disponibilità temporale indicativa prevista 1 anno 2 anno 1. PUKALL MARIO Università di Magdeburg Dottorando 3 3 TOTALE Personale a contratto da destinare a questo specifico Progetto Nessuno Dottorati a carico del PRIN da destinare a questo specifico Progetto nº Costo previsto Note sulla tematica sviluppo composizionale di linguaggi (sottotask 1.4) TOTALE Titolo specifico del Progetto svolto dall'unità di Ricerca Composizione ed Evoluzione di Sistemi ad Oggetti Avanzati Composition and Evolution for Advanced Object Systems 8 - Abstract del Progetto svolto dall'unità di Ricerca La maggior parte del lavoro che svolgerà l'unità di Milano riguarderà la progettazione e lo sviluppo di un framework che permetterà la progettazione di un nuovo linguaggio di programmazione come la composizione di costrutti provenienti dalla definizione di altri linguaggi di programmazione; inoltre permetterà di generare un compilatore ad hoc per la traduzione dei programmi scritti col nuovo linguaggio. Tale framework aiuterà anche le altre unità nel conseguimento dei propri obiettivi fornendole di uno strumento che semplifica lo sviluppo ed il testing delle idee che proporranno. Inoltre i ricercatori dell'unità contribuiranno sugli aspetti di evoluzione e distribuzione presenti nel progetto. La partecipazione dell'unità di Milano è di basilare importanza per il conseguimento degli obiettivi del progetto in quanto contribuirà con una pluriennale esperienza nella progettazione e lo sviluppo di linguaggi di programmazione orientata agli oggetti ed agli aspetti e riflessivi e sull'uso di tali linguaggi nell'ambito dell'evoluzione del software. Le caratteristiche più pragmatiche dei ricercatori dell'unità di Milano si complementano perfettamente con le abilità più teoriche dei colleghi delle unità di Firenze, Genova e Torino per ottenere gli obiettivi prefissati tramite una stretta collaborazione tra le unità. Tale collaborazione si è più volte dimostrata fruttuosa e è stata ulteriormente affinata grazie a diversi progetti sviluppati assieme. I contributi dell'unità sono riassunti di seguito. MIUR - BANDO MODELLO B - 3 -

4 SottoTask 1.3 Evoluzione e refactoring. Il lavoro dell'unità in questo sottotask si focalizza principalmente sul supporto dell'evoluzione e del refactoring sia a livello linguistico sia metodologico. I risultati attesi sono: i) l'implementazione di un linguaggio grafico per la programmazione ad aspetti (Blueprint [CP07b]) che dovrebbe risolvere il problema della fragilità dei pointcut a fronte dell'evoluzione del software; ii) definizione ed implementazione di un'estensione di AspectJ (@AspectJ) che sfrutta un più fine modello di meta-dati per disaccoppiare la definizione dei pointcut dall'implementazione dell'applicazione per aumentare la robustezza dei pointcut in caso di evoluzione; iii) sviluppo di un framework per supportare l'evoluzione dinamica e cambi allo schema di una classe durante l'esecuzione dell'applicazione senza modificare la Java virtual machine e iv) sviluppo di un approccio semi-automatico all'aggiornamento della documentazione nel caso l'applicazione debba evolvere. SottoTask 1.4 Sviluppo composizionale di linguaggi. Il lavoro dell'unità in questo sottotask si focalizza principalmente sullo sviluppo di una metodologia per definire un linguaggio di programmazione come la composizione dei suoi componenti base; componenti che possono essere riusati dalla definizione di altri linguaggi. La metodologia che si intende investigare segue le idee date in [CS09]. Ogni costrutto sarà incapsulato in uno slice assieme ai dettagli necessari per realizzarne l'implementazione/valutazione. I risultati attesi sono: i) la definizione di un meccanismo per definire le componenti base del linguaggio che potranno essere selettivamente composte a formare un nuovo linguaggio; ii) lo sviluppo di un framework per generare compilatore ed interprete per i programmi scritti nel linguaggio risultato della composizione; e infine iii) l'applicazione del framework alla ridefinizione/implementazione di alcuni linguaggi di programmazione esistenti, come Java [GJSB05], Featherweight Java [IPW01] e Linda [CG89]. Il lavoro in questo sottotask è condotto in collaborazione con l'unità di Torino. SottoTask 2.4 Mobilità ed evoluzione dinamica Il lavoro svolto dall'unità in questo sottotask si focalizza principalmente sulle reti di Petri riflessive [CC06, CC07b], che l'unità ha sviluppato, e nella loro applicazione alla modellazione dell'evoluzione del struttura di una rete mobile. I risultati attesi sono: i) la definizione e lo sviluppo di un apposito calcolo per l'analisi strutturale e dello spazio degli stati delle reti di Petri riflessive; ii) l'implementazione di un simulatore per le reti di Petri riflessive derivata da strumenti esistenti; ed infine iii) l'uso delle reti di Petri riflessive e delle pianificate estensioni per modellare l'evoluzione reti mobili altamente mutevoli come le reti di sensori, allo scopo di eseguire analisi di qualità e performance per algoritmi appropriate come quelli di gossiping [GPR08]. Most of the efforts of the unit of Milan are about designing and developing a framework that will permit to design a programming language as the composition of programming features coming from other programming language definitions and to generate an ad hoc compiler for the just defined programming language. This framework will help to accomplish also the work of the other units providing a tool to easily develop and test the proposed ideas. Secondary the researchers of the unit will be work on the evolution and distribution topic. The participation of the unit of Milano is of basic importance in achieving project's objectives since they will contribute their plurennial experience on design and developing object-oriented, aspect-oriented and reflective programming languages and on their applications to software evolution. Such a more pragmatic competences are perfectly completed by the more theoretic skills from the units of Firenze, Genova and Torino to achieve the prefixed objectives with a tight collaborations among the units. The collaboration with the units has proved successful and tuned by the collaborations in previous common projects. The contributions of the unit is summarized below. SubTask 1.3 Evolution and refactoring. The work of this unit in this subtask mainly focuses on supporting evolution and refactoring at linguistic level and as a methodology. The expected results are: i) the implementation of a graphical aspect-oriented language (named Blueprint [CP07b]) that should solve the pointcut fragility against software evolution; ii) definition and implementation of an AspectJ extension exploiting a finer model for meta-data used to decouple pointcut from application implementation in order to improve pointcut robustness against software evolution; iii) development of a framework to support dynamic evolution and schema changes during application execution in Java without changing its virtual machine and finally iv) development of a semi-automatic approach to documentation maintenance against software evolution. SubTask 1.4 Compositional language development. The work of the unit in this subtask mainly focuses on developing a methodology to define a programming language as the composition of its basic components; components that can be reused from other language definitions. The methodology we intend to investigate basically follows the ideas we have given in [CS09]. Each programming feature will be encapsulated in a slice together with the necessary details to realize its implementation/evaluation. The expected results are: i) the definition of a mechanism to define basic programming features that can be selectively composed to form a novel programming language; ii) the development of a framework to generate the compiler and interpreter for programs written in the programming language resulting from the composition; and finally iii) the application of the novel framework to the redefinition/implementation of some well-known programming languages, such as Java [GJSB05], Featherweight Java [IPW01] and Linda [CG89]. The work in this subtask is carried out in collaboration with the unit of Torino. Task 2.4 Mobility and dynamic evolution The work of the unit in this subtask mainly focus on the reflective Petri net formalism [CC06,CC07b] we developed and in its application to model the evolution of the layout of a mobile network. The expected results are: i) the definition and development of an appropriate structural analysis and state space calculi for the reflective Petri nets formalism; ii) the implementation of a simulation engine for reflective Petri nets derived by existing tools; and finally iii) the use of the reflective Petri net formalism and of the planned extensions to model the evolution of highly mutable mobile networks, such as sensor networks, in order to carry out performance and quality analysis on appropriate algorithms, such as gossiping [GPR08]. 9 - Settori di ricerca ERC (European Research Council) PE Mathematics, physical sciences, information and communication, engineering, universe and earth sciences PE5 Information and communication: informatics and information systems,computer science, scientific computing, communication technology, intelligent systems PE5_16 Systems and software PE5_6 Informatics and information systems MIUR - BANDO MODELLO B - 4 -

5 10 - Parole chiave EVOLUZIONE DEL SOFTWARE COMPOSIZIONE DINAMICA SOFTWARE EVOLUTION DYNAMIC COMPOSITION 11 - Stato dell'arte Il lavoro dell'unità di Milano riguarderà i Task 1 (Composizione) e 2 (Interazione e Distribuzione). Nel seguito vedremo lo stato dell'arte delle aree di ricerca collegate ai sottotask che ci vedono coinvolti, in particolare i lavori correnti che rappresenteranno il punto di partenza per la ricerca. Task 1 - Composizione SottoTask 1.3 Evoluzione e refactoring L'evoluzione del software è un argomento piuttosto attuale [MBZR03,Fel03,BR00,MWD+05]. Molte applicazioni devo essere aggiornate ed estese con nuove caratteristiche durante il loro ciclo di vita. L'evoluzione del software, come pure il suo mantenimento, è caratterizzata da un alto costo ed una lenta realizzazione. Tipicamente l'evoluzione ha luogo fermando l'esecuzione dell'applicazione, adattandolo e quindi facendola ripartire; questo processo, però, è non perseguibile quando il sistema è critico e non può essere fermato come nel caso del sistema per il controllo del traffico aereo. In generale, il modo giusto per affrontare l'evoluzione di un'applicazione durante l'esecuzione (evoluzione dinamica) consiste nel i) posporre la pianificazione dell'evoluzione dalla progettazione all'esecuzione, ii) separare l'evoluzione dal codice dell'applicazione iii) (semi-)automatizzare l'evoluzione stessa. Sia la riflessione computazionale [Mae87] che la programmazione orientata agli aspetti [KHH+ 01] forniscono alcuni meccanismi per superare questi problemi. Alcuni middleware riflessivi e orientati agli aspetti [CSST99,Ran05,CSG06] sono stati investigati con l'intento di affrontare il problema dell'evoluzione dinamica ma con successo limitato. Tali middleware si sono dovuti scontrare con il limitato supporto che hanno i sistemi di sviluppo nei confronti dei cambiamenti all'applicazione durante l'esecuzione, ad es., Java [GJSB05], similarmente agli altri linguaggi di programmazione principali, supporta solo cambiamenti al codice ma non allo schema della classe [PKS08], cioè, è possibile aggiungere istruzioni ad un metodo ma è impossibile aggiungere un metodo ad una classe impedendo di fatto diversi tipi di evoluzione. Anche l'evoluzione statica del codice ha diversi problemi: la documentazione tipicamente non evolve in accordo all'evoluzione del codice che documenta [CPG07], spesso è necessario cambiare codice che, apparentemente, non dovrebbe essere interessato dai cambiamenti rompendo la modularizzazione [KS04]. Sia le tecniche orientate agli oggetti che agli aspetti hanno diversi limiti nei confronti dell'evoluzione del software e dovrebbero essere migliorati. Lavoro corrente. Il gruppo di ricerca sta lavorando sull'evoluzione del software da diverso tempo ed ha iniziato ad affrontare tutti problemi riportati. In particolare si è progettato un approccio orientato agli aspetti alternativo (Blueprint) per affrontare il problema dell'evoluzione liberando la modularizzazione dalla sintassi dei moduli [CPA04, CPA05, CPA06, CP06, CP07a, CP07b]; analogamente, abbiamo esteso il modello dei meta-dati di Java e C# [CCC05b, CCC05a] (rispettivamente e [a]c#) per supportare annotazioni a grana fine che possono essere usati per co-evolvere codice e documentazione [CPGS07]. SottoTask Sviluppo composizionale di linguaggi Linguaggi con dominio specifico (DSLs) sono usati per risolvere diversi problemi, come redigere documenti, esprimere e verificare vincoli e coordinare la computazione. In alcuni casi, si tratta solo di alcuni costrutti immersi un linguaggi di programmazione più generali o fornite come librerie. Ancor più spesso, si tratta di linguaggi di programmazione di Turing completi devoti a scopi precisi. In entrambi i casi rimangono delle problematiche aperte: implementare e apprendere come usare un nuovo DSL richiede molto tempo; estendere un linguaggio esistente si rivela più semplice ma la flessibilità è spesso compromessa. Inoltre, in generale, è abbastanza difficile adattare un DSL esistente alle necessità di un problema da risolvere o far coesistere costrutti che arrivano da DSL diversi in un unico linguaggio. Provare nuove idee nell'area dei linguaggi di programmazione consiste nella definizione/implementazione di un DSL a partire da un linguaggio di programmazione esistente via tecniche di prototipizzazione rapida (OpenJava [CTKI00] e Javassist [Chi00]). Da un lato questo approccio permette di focalizzarsi sull'implementazione dell'idea dall'altro lato permette di estendere un linguaggio con nuovi costrutti ma non permette di riusare costrutti provenienti da altri linguaggi. I problemi derivano dal classico approccio monolitico [ASU86] sono orientati alle grammatiche normalmente adottato per sviluppare un linguaggio. Le grammatiche descrivono la sintassi del linguaggio e come un programma scritto in quel linguaggio dovrebbe essere tradotto. Nonostante il processo di compilazione sia diviso in fasi, la definizione del linguaggio non lo è, questo, a nostro avviso, è l'ostacolo principale per rendere un linguaggio facilmente estendibile. Alcuni tentativi per rendere la definizione di un linguaggio e la sua implementazione modulari sono stati fatti: Ziggurat [FS06], Linglet Transformation System [Cle07], Polyglot [NCM03] e JastAdd [EH07]; ma la modularità offerta è limitata e spesso si riferisce esclusivamente alla definizione del linguaggio e non alla sua implementazione. Lavoro corrente. In [CS09], è stato presentato un approccio alternativo (Hive) alla specifica e implementazione modulare di DSL. Hive sfrutta l'idea di decomposizione introdotta da HyperJ [OT01] per scomporre in moduli la definizione e implementazione del linguaggio che verranno liberamente ricomposti. Task 2 - Interazione e distribuzione SottoTask Mobilità ed evoluzione dinamica La mobilità è uno dei concetti chiave che pervadono l'attività quotidiana. Palmari e sensori sono esempi di dispositivi mobili che possono essere configurati in reti altamente dinamiche. Alcuni di questi dispositivi abbastanza vicini da essere reciprocamente visibili formano la cosiddetta nuvola. Le nuvole sono caratterizzate da una costante variabilità nel tempo della composizione: a causa della loro mobilità i dispositivi entrano ed escono di continuo dalla nuvola; pertanto le nuvole sono in costante evoluzione. Inoltre questi dispositivi hanno parecchie limitazioni e sono necessari algoritmi specifici per cooperare con tali limitazioni. La ricerca nell'area è piuttosto vivace [GPR08,BGPS06,WW07,SX05] ma malamente affronta il problema della mutabilità della nuvola; principalmente a causa dello scarso supporto che i vari formalismi (Reti di Petri [Rei85], pi-calcolo [Mil99]) per modellare la mobilità hanno nei confronti dell'evoluzione della disposizione degli MIUR - BANDO MODELLO B - 5 -

6 elementi mobili. Senza tale supporto è difficile modellare come un algoritmo si comporti quando la struttura della nuvola cambia e conseguentemente un'analisi qualitativa non può essere effettuata se non sperimentalmente dopo che l'algoritmo è stato implementato. Diversi tentativi per supportare l'evoluzione della struttura sono stati fatti: reti di Petri riflessive [CC07b], reconfigurable nets [BO98], nets-within-nets [CDMR05] e reti come token [Val98]. In generale tutti questi approcci tranne le reti di Petri riflessive affrontano l'evoluzione codificando tutte le possibilità nel modello; questo porta ad avere i) un modello che non rappresenta la realtà corrente ma che è inquinato da ciò che potrebbe accadere e ii) che difficilmente riesce a coprire tutte le possibili evoluzioni. Le reti di Petri riflessive sfruttano la riflessione [Mae87] per separare il modello da come potrebbe evolvere ed è lo strumento perfetto per modellare situazioni in cui l'evoluzione è regolata da leggi di distribuzione o è generata proceduralmente come nel caso delle nuvole. Lavoro corrente. Da diversi anni si sta lavorando sulle reti di Petri riflessive [CC06,CC07b] e sulla loro applicazione alla riflessione [CC07a,CC08]. The work of this group of researchers (unit of Milano) will be within Task 1 (Composition) and Task 2 (Interaction and Distribution). In the following we review the state of the art of the research areas related to subtasks in which this unit is expected to be the main investigator, in particular the current work which will be the starting point for the research. Task 1 - Composition SubTask 1.3 Evolution and refactoring Nowadays, software evolution is a very hot topic [MBZR03, Fel03, BR00, MWD+05]. Many applications need to be updated or extended with new characteristics during their lifecycle. Software evolution, as well as software maintenance, is characterized by its huge cost and slow speed of implementation. Typically the evolution takes place by stopping the system, adapting it and finally restarting it; this process is unfeasible when the system is critical and basically cannot be stopped as in air traffic control systems, banking systems, and so on. In general, the right direction to face the system evolution during its execution (dynamic evolution) consists of i) postponing the evolution planning from design-time to run-time, ii) separating the evolution crosscutting concern from the application code and iii) (semi-)automating the system evolution. Both reflection [Mae87] and aspect-oriented programming [KHH+ 01] provide some mechanisms to overcome these problems. Few reflective and aspect-oriented middleware [CSST99, Ran05, CSG06] have been investigated with the intent of tackling the problem of run-time evolution with limited success. They have to face with the limited support of the development frameworks to dynamic changes to the software, e.g., Java [GJSB05], as well as many others mainstream programming languages, supports only changes to the code but not to the schema of a class [PKS08], i.e., it is possible to add a statement to a method but it is impossible to add a new method to a class impeding several kind of evolution. Also static code evolution presents several problems: documentation typically do not evolve accordingly with the application code evolution [CPGS07], often is necessary to change code that do not apparently affect by the change and break the module decomposition [KS04]. Currently both object- and aspect-oriented techniques have several limits with respect to the evolution issue and need to be improved. Current work. We are working on the evolution issue since a long time and started to face all the reported problems. In particular we have designed an alternative aspect-oriented approach named Blueprint to face the evolution problem by freeing the modularization from the module syntax [CPA04, CPA05, CPA06, CP06, CP07a, CP07b]; similarly we have extended Java and C# [CCC05b, CCC05a] meta-data facility (respectively and [a]c#) to support fine grained annotations that can be used to co-evolve code and documentation [CPGS07]. SubTask Compositional language development Domain Specific Languages (DSLs) are used to solve several problems, such as typesetting documents and code, to express and verify constraints and to coordinate distributed computation. In some cases, these are simply a bunch of programming features, useless standalone, embedded in a general purpose programming language or provided as external libraries. More often, they are Turing complete programming languages devoted to a specific aim. In both cases there are some issues that hamper their realization/usage: in the latter case, to implement and test a new DSL requires time and often it also has a steep learning curve; in the former case the learning curve is smoother but performances and flexibility are often compromised. Moreover, in general, it is quite hard to tailor an existing DSL to the needs of a given problem or to let coexist features coming from two or more DSLs into a single programming language. To test new ideas in programming languages research area is often demanded to the definition/implementation of a DSL from an existing programming language via rapid prototyping techniques, e.g., by using OpenJava [CTKI00], Javassist [Chi00] and so on. On the one hand this approach permits to focus on the new idea implementation on the other hand it strictly relies on the extension of a language with new features but does not permit to reuse features and their implementation from other languages. In our view, the observed problems derive from the monolithic approach adopted to define and implement a programming language. Classic approaches [ASU86] to programming language definition and to compiler designing are grammar-centric; grammars describe the language syntax and how a program written in that language should be translated (syntax directed translation). Even if the compiling process is modularized in phases the language definition cannot, this, in our view, is the major obstacle to render a programming language easily extensible. Some attempts to have a more modular programming language definition and implementation has been done: Ziggurat [FS06], Linglet Transformation System [Cle07], Polyglot [NCM03] and JastAdd [EH07]; but the provided modularity is limited and often refers only to the language definition and not to its implementation. Current work. In [CS09], we have started to design an alternative approach (named Hive) to DSL specification and implementation highly modular. Hive exploits the slicing idea from HyperJ [OT01] to decompose the language definition and implementation in modules that can be freely composed. Task 2 - Interaction and Distribution SubTask Mobility and dynamic evolution Nowadays, mobility is one of the key concepts that pervades everyday activity. Smartphones, palmtops and sensors are examples of mobile devices that can be configured in highly dynamic networks. A number of these devices close enough to be reachable each other originates the so called cloud. Clouds are characterized by an highly variability in composition over time: devices due to their mobility enter and exit from the reachability area of the other devices and therefore from the cloud, i.e., the cloud layout is in a continuous evolution. Moreover mobile devices have several limitations such as battery and CPU performances so algorithms coping with such limitations are necessary to route messages, to spread information around and to detect which devices can or cannot be reached. Research in the area is quite vivacious [GPR08, BGPS06, WW07, SX05] but they badly cope with the high evolvability of the cloud. This is mainly due to the limited support to layout evolution that the formalisms to model distribution provide, e.g., Petri nets [Rei85], pi-calculus [Mil99]. Without such a support it is hard to model how an algorithm behaves when the cloud layout changes and consequently a quality analysis cannot be performed if not experimentally after the algorithm implementation that means to spend time in realizing something that could be useless. Several attempts to support layout evolvability have been done: reflective Petri nets [CC07b], reconfigurable nets [BO98], nets-within-nets [CDMR05] and nets as tokens [Val98]. In general all of these approaches but the reflective Petri nets face the evolution issue by coding all the possible evolution in the model; this has a couple of drawbacks: i) the model does not represent the current reality but it is polluted by what could be happen and ii) it is quite impossible to foresee all the possible evolutions. Reflective Petri nets exploit reflection [Mae87] to separate the model from how it can evolve and it seems perfect to model situations where the MIUR - BANDO MODELLO B - 6 -

7 evolutions can follow distribution laws or can be procedurally generated as in the case of the clouds variability. Current work. Since several years we are working on the reflective Petri nets formalism [CC06, CC07b] and on its applications to evolution [CC07a, CC08] Riferimenti bibliografici [ASU86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, [BGPS06] Stephen Boyd, Arpita Ghosh, Balaji Prabhakar, and Devavrat Shah. Randomized Gossip Algorithms. IEEE Transactions on Information Theory, 52(6): , June [BO98] Eric Badouel and Javier Oliver. Reconfigurable Nets, a Class of High Level Petri Nets Supporting Dynamic Changes within Workflow Systems. IRISA Research Report PI-1163, IRISA, January [BR00] Keith H. Bennett and Václav T. Rajlich. Software Maintenance and Evolution: a Roadmap. In The Future of Software Engineering, pp ACM Press, [CC06] Lorenzo Capra and Walter Cazzola. A Petri-Net Based Reflective Framework. Electronic Notes on Theoretical Computer Science, 159:41-59, [CC07a] Lorenzo Capra and Walter Cazzola. A Reflective PN-based Approach to Dynamic Workflow Change. In Proceedings of SYNASC'07, pp , Timisoara, Romania, September IEEE. [CC07b] Lorenzo Capra and Walter Cazzola. Self-Evolving Petri Nets. Journal of Universal Computer Science, 13(13): , December [CC08] Lorenzo Capra and Walter Cazzola. Evolutionary Design through Reflective Petri Nets: an Application to Workflow. In Proceedings of the IASTED International Conference on Software Engineering (SE'08), Innsbruck, Austria, February [CCC05a] Walter Cazzola, Antonio Cisternino, and Diego Colombo. Freely Annotating C#. Journal of Object Technology, 4(10):31-48, December [CCC05b] Walter Cazzola, Antonio Cisternino, and Diego Colombo. [a]c#: C# with a Customizable Code Annotation Mechanism. In Proceedings of SAC'05, pp , Santa Fe, New Mexico, USA, March ACM Press. [CDMR05] Lawrence Cabac, Michael Duvignau, Daniel Moldt, and Heiko Roelke. Modeling Dynamic Architectures Using Nets-Within-Nets. In Proceedings of ICATPN'05, LNCS 3536, pp , Miami, FL, USA, June Springer. [CG89] Nicholas Carriero and David Gelernter. Linda in Context. Communications of the ACM, 32(4): , April [CGS06] Walter Cazzola, Ahmed Ghoneim, and Gunter Saake. Viewpoint for Maintaining UML Models against Application Changes. In Proceedings of ICSOFT 2006, pp , Setúbal, Portugal, September Springer. [Chi00] Shigeru Chiba. Load-Time Structural Reflection in Java. In Proceedings of ECOOP 2000, LNCS 1850, pp , Cannes, France, June Springer. [Cle07] Thomas Cleenewerck. Modularizing Language Constructs: A Reflective Approach. Phd thesis, Vrije Universiteit Brussel, Brussel, Belgium, July [CP06] Walter Cazzola and Sonia Pini. Join Point Patterns: a High-Level Join Point Selection Mechanism. In MoDELS'06 Satellite Events Proceedings, LNCS 4364, pp , Genova, Italy, October Springer. [CP07a] Walter Cazzola and Sonia Pini. AOP vs Software Evolution: a Score in Favor of the Blueprint. In Proceedings of RAM-SE'07, pp , Berlin, Germany, July [CP07b] Walter Cazzola and Sonia Pini. On the Footprints of Join Points: The Blueprint Approach. Journal of Object Technology, 6(7): , August [CPA04] Walter Cazzola, Sonia Pini, and Massimo Ancona. Evolving Pointcut Definition to Get Software Evolution. In Proceedings of RAM-SE'04, pp , Oslo, Norway, June [CPA05] Walter Cazzola, Sonia Pini, and Massimo Ancona. AOP for Software Evolution: A Design Oriented Approach. In Proceedings of SAC'05, pp , Santa Fe, New Mexico, USA, March ACM Press. [CPA06] Walter Cazzola, Sonia Pini, and Massimo Ancona. Design-Based Pointcuts Robustness Against Software Evolution. In Proceedings of RAM-SE'06, pp , Nantes, France, July [CPGS07] Walter Cazzola, Sonia Pini, Ahmed Ghoneim, and Gunter Saake. Co-Evolving Application Code and Design Models by Exploiting Meta-Data. In Proceedings of SAC'07, pp , Seoul, South Korea, March ACM Press. [CS09] Walter Cazzola and Ivan Speziale. Sectional Domain Specific Languages. In Proceedings of DSAL'09, Charlottesville, Virginia, USA, March ACM. [CSST99] Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Rule-Based Strategic Reflection: Observing and Modifying Behaviour at the Architectural Level. In Proceedings of ASE'99, pp , Cocoa Beach, Florida, USA, October [CTKI00] Shigeru Chiba, Michiaki Tatsubori, Marc-Olivier Killijian, and Kozo Itano. OpenJava: A Class-based Macro System for Java. In Reflection and Software Engineering, LNCS 1826, pp Springer, June [EH07] Torbjorn Ekman and Gorel Hedin. The JastAdd Extensible Java Compiler. In Proceedings of OOPSLA'07, pp. 1-18, Montreal, Quebec, Cananda, ACM. [Fel03] Massimo Felici. Taxonomy of Evolution and Dependability. In Proceedings of USE 2003, Warsaw, Poland, April [FS06] David Fisher and Olin Shivers. Sttic Semantics for Syntax Objects. In Proceedings of the International Conference on Functional Programming, pp , Portland, OR, USA, ACM Press. [GJSB05] James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Addison-Wesley, third edition, [GPR08] Francesco Giudici, Elena Pagani, and Gian Paolo Rossi. Impact of Mobility on Epidemic Broadcast in DTNs. In Proceedings of MWCN'08/PWC'08, pp , Tolouse, France, September [IPW01] Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. Featherweight Java: A Minimal Core Calculus for Java and GJ. ACM Transactions on Programming Languages and Systems, 23(3): , May [KHH+ 01] Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeff Palm, and Bill Griswold. An Overview of AspectJ. In Proceedings of ECOOP'01, LNCS 2072, pp , Budapest, Hungary, June Springer. [KS04] Christian Koppen and Maximilian Stoerzer. PCDiff: Attacking the Fragile Pointcut Problem. In Proceedings of EIWAS'04, Berlin, Germany, September [Mae87] Pattie Maes. Concepts and Experiments in Computational Reflection. In Proceedings of OOPSLA'87, pp , Orlando, Florida, USA, October ACM. [MBZR03] Tom Mens, Jim Buckley, Matthias Zenger, and Awais Rashid. Towards a Taxonomy of Software Evolution. In Proceedings of the 2nd International Workshop on Unanticipated Software Evolution (USE 2003), Warsaw, Poland, April [Mil99] Robin Milner. Communicating and Mobile Systems: The pi-calculus. Cambridge University Press, [MWD+ 05] Tom Mens, Michel Wermelinger, Stephane Ducasse, Serge Demeyer, Robert Hirschfeld, and Mehdi Jazayeri. Challenges in Software Evolution. In Proceedings of IWPSE'05, pp , Lisbon, Portugal, September IEEE Press. [NCM03] Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An Extensible Compiler Framework for Java. In Proceedings of CC'03, LNCS 2622, pp , Warsaw, Poland, April Springer. [OT01] Harold Ossher and Peri Tarr. Hyper/J: Multi-Dimensional Separation of Concerns for Java. In Proceedings of ICSE'01, pp , Toronto, Ontario, Canada, IEEE. [PKS08] Mario Pukall, Christian Kaestner, and Gunter Saake. Towards Unanticipated Runtime Adaptation of Java Applications. In Proceedings of APSEC'08, pp , Bejing, China, December IEEE. [Ran05] Stephen Rank. Architectural Reflection for Software Evolution. In Proceedings of RAM-SE'05, pp , Glasgow, Scotland, July [Rei85] Wolfgang Reisig. Petri Nets: An Introduction, volume 4 of EATCS Monographs on Theoretical Computer Science. Springer, [SX05] Sartaj Sahni and Xiaochun Xu. Algorithms for Wireless Sensor Networks. International Journal on Distributed Sensor Network, 1(1):35-56, [Val98] Rudiger Valk. Petri Nets as Token Objects: An Introduction to Elementary Object Nets. In Jorg Desel and Manuel Silva, editors, Proceedings of ICATPN'98, LNCS 1420, pp. 1-25, Lisbon, Portugal, June Springer. [WW07] Dorothea Wagner and Roger Wattenhofer, editors. Algorithms for Sensor and Ad Hoc Networks, LNCS Springer, MIUR - BANDO MODELLO B - 7 -

8 13 - Descrizione del programma e dei compiti dell'unità di Ricerca Ministero dell'istruzione dell'università e della Ricerca In generale, il lavoro dell'unità di ricerca ha lo scopo di progettare e sviluppare un framework basato sull'idea presentata in [CS09] per decomporre un la definizione di un linguaggio di programmazione in componenti riusabili; supportare l'evoluzione dinamica del software tramite tecniche riflessive e di manipolazione del bytecode e di affrontare diversi problemi legati all'evoluzione del software (inconsistenza della documentazione dopo l'evoluzione ed evitare di dover modificare codice non direttamente collegato al codice interessato dai cambiamenti). L'unità di ricerca sarà coinvolta nei task del progetto come viene dettagliato di seguito. Task 1. Composizione SubTask 1.3 Evoluzione e refactoring Il lavoro di questa unità in questo sottotask si focalizza principalmente sul supporto dell'evoluzione del software e del refactoring sia a livello linguistico che metodologico. Primo Anno. L'evoluzione del software influenza la manutenzione del software coinvolgendo parti di codice che apparentemente non dovrebbero esserne interessate provocando una specie di effetto domino. Questo risulta particolarmente evidente nel caso di programmi sviluppati con tecniche orientate agli aspetti dove evolvere l'applicazione può rompere la modularità e incapsulamento imposti dalla decomposizione in aspetti e forzando l'evoluzione anche del codice che descrive come gli aspetti vengono composti; questo, per esempio, impatta sul meccanismo di selezione dei join point, cioè sulla definizione dei pointcut che spesso devono essere aggiornati per mantenere le loro funzionalità (problema della fragilità dei pointcut) [KS04]. Per risolvere il problema della fragilità dei pointcut abbiamo progettato un linguaggio di programmazione orientato agli aspetti grafico, chiamato Blueprint [CP07b], che disaccoppia il meccanismo di selezione dei join point dalla sintassi dell'applicazione. Durante il primo anno continueremo lo sviluppo di Blueprint. Inoltre, si intende investigare un secondo approccio basato sul modello dei meta-dati e [a]c# [CCC05a] che permetterebbe di segnare direttamente nel codice dell'applicazione dove gli aspetti dovrebbero venire inseriti confinando, in questo modo, ciò che verrà interessato dall'evoluzione in un unico e ben definito punto e non all'intera applicazione. Sull'altro fronte, si intende supportare l'evoluzione dinamica del software in termini di cambiamenti allo schema di una classe estendendo l'approccio presentato in [PKS08] per preservare l'ereditarietà e l'incapsulamento tramite la sostituzione dinamica della classe. Questo lavoro è svolto in collaborazione con Mario Pukall dell'università di Magdeburg. Secondo Anno. Nel secondo anno si continuerà a sviluppare sia Blueprint e le loro applicazioni verranno esplorate. Relativamente al lavoro sull'evoluzione dinamica si prevede una fase di validazione formale della solidità e completezza dell'approccio sviluppato e si investigherà il ruolo che potrà avere nel weaving dinamico di aspetti. Inoltre si intende migliorare il lavoro [CPGS07] sulla co-evoluzione del codice dell'applicazione e della documentazione semplificando la metodologia e l'insieme di meta-dati usato con l'intento di automatizzarne l'uso; sarà anche considerata l'integrazione con il processo di sviluppo agile. Risultati Attesi. - l'implementazione del linguaggio di programmazione Blueprint e la sua validazione nel caso dell'evoluzione del software; - la definizione di un approccio alternativo (@AspectJ) basato per limitare le modifiche dovute all'evoluzione del software nel caso di applicazioni sviluppate tramite tecniche orientate agli aspetti; - l'implementazione e la valutazione di un framework che permetta la modifica dello schema di una classe durante l'esecuzione dell'applicazione; - lo sviluppo di un approccio semi-automatico per mantenere la consistenza della documentazione a fronte dell'evoluzione dell'applicazione ed integrazione della metodologia nel processo di sviluppo agile. SottoTask 1.4 Sviluppo composizionale di linguaggi Il lavoro dell'unità in questo sottotask si focalizza principalmente sullo sviluppo di una metodologia per definire un linguaggio di programmazione come la composizione delle sue componenti base (cioè, i costrutti che compongono il linguaggio di programmazione); componenti che possono essere riusati dalla definizione di altri linguaggi. La metodologia che si intende investigare segue le idee presentate in [CS09]. Ogni costrutto sarà incapsulato in uno slice assieme ai dettagli necessari per l'implementazione/valutazione, cioè, i dettagli per realizzare ogni fase della compilazione/interpretazione (ad es., controllo dei tipi, valutazione, generazione del codice,...) sono incapsulati in moduli dello slice che saranno composti assieme ai moduli corrispondenti degli altri costrutti per generare il compilatore/interprete dell'intero linguaggio. La metodologia sarà supportata da un linguaggio di programmazione per definire gli slice e un framework per comporre gli slice a formare il nuovo linguaggio di programmazione ed automaticamente generare il corrispondente compilatore/interprete per compilare ed eseguire i programmi scritti nel linguaggio di programmazione appena sviluppato. La composizione degli slice rappresenta la sfida più difficile dell'intera idea perché gli slice possono rappresentare un insieme piuttosto variegato di costrutti che spesso possono interagire con il comportamento di altri costrutti, ad es. consideriamo uno slice che rappresentante il ciclo for ed un altro slice che introduce una keyword per parallelizzare il pezzo di codice a cui è associata: la composizione di questi due slice doterà il linguaggio di un ciclo for tradizionale e di uno il cui corpo è eseguito parallelamente; quindi la valutazione di un costrutto dipende strettamente dalla valutazione degli altri costrutti che potrebbero modificarne il comportamento. Il lavoro sulla composizione verrà svolto in collaborazione con l'unità di Torino. Anche l'uso dell'approccio è uno dei nostri obiettivi, in particolare si è intenzionati ad investigare l'implementazione di Featherweight Java [IPW01] attraverso il nostro framework; il successo in questo studio doterebbe tutte le unità di un adeguato strumento per provare le estensioni linguistiche che si propongono nel progetto in modo semplice ed immediato. Altri linguaggi di programmazione che intendiamo re-implementare con il nostro framework sono: Java [GJSB05] e Linda [CG89]. Primo Anno. Durante il primo anno di procederà a sviluppare e realizzare l'idea principale dietro la proposta (il linguaggio per descrivere gli slice e il meccanismo di composizione); in parallelo si procederà con lo sviluppo degli studio di caso. Secondo Anno. Durante il secondo anno si continuerà con lo sviluppo della metodologia assieme all'implementazione del framework e all'analisi dello studio di caso; inoltre si modellerà formalmente il meccanismo di decomposizione/composizione. Risultati. - un meccanismo per definire le componenti base del meccanismo (gli slice) che possono essere selettivamente composti per formare un nuovo linguaggio di programmazione; - un framework per generare il compilatore e l'interprete per i programmi scritti nel linguaggio di programmazione risultante dalla composizione; - un insieme di slice necessari per definire linguaggi di programmazione noti, come Java [GJSB05], Featherweight Java [IPW01] e Linda [CG89]. Task 2. Interazione e distribuzione Task 2.4 Mobilità ed evoluzione dinamica Il lavoro dell'unità in questo sottotask si focalizza principalmente sul formalismo delle reti di Petri riflessive [CC06,CC07b] sviluppato per modellare l'evoluzione di un sistema dinamico ad eventi discreti (ad es. reti mobili) e le sue applicazioni. MIUR - BANDO MODELLO B - 8 -

9 Il formalismo delle reti di Petri riflessive è stato progettato per facilitare la modellazione di applicazioni distribuite che possono evolvere senza inquinare il modello con "ciò che potrebbe essere" ma descrivendo esclusivamente "ciò che è correntemente". Questo è realizzato sfruttando la riflessione computazionale [Mae87] e stratificando il modello in due livelli: i) una rete di Petri classica rappresentante la situazione corrente e ii) come il modello può evolvere attraverso delle strategie che evolveranno la situazione corrente quando attivate. La struttura stratificata del modello lo mantiene estremamente semplice ma compromette la possibilità di applicare le classiche tecniche di analisi (principalmente analisi strutturare e ispezione dello spazio degli stati) a istanti tra evoluzioni consecutive, cioè, senza considerare il modello prima della sua ultima evoluzione o le potenziali nuove evoluzioni. Analogamente, gli strumenti esistenti che supportano l'editing e la simulazione delle applicazioni modellate tramite reti di Petri classiche non supportano le reti di Petri riflessive perché sviluppati ignorando la presenza di un secondo strato che inneschi l'evoluzione del modello; non permettendo pertanto nessun cambiamento dinamico della struttura della rete di Petri durante la simulazione. Nel progetto si intende superare queste restrizioni fornendo una semantica stati-transizioni che renderà possibile simulare ed analizzare questo tipo di reti, sviluppando uno strumento di supporto ad hoc estendendo il pacchetto GreatSPN e investigando l'uso di tecniche di analisi strutturale applicate alle reti di Petri riflessive. Un'altra interessante direzione di ricerca è la possibilità di caratterizzare il comportamento delle reti di Petri riflessive (e stocastiche) in termini di processi Markoviani. In particolare intendiamo investigare i possibili collegamenti tra il comportamento stocastico delle reti di Petri riflessive e i modelli Markoviani dinamici, ad es. grafi di evoluzione Markoviana. Questo argomento potrebbe essere esplorato in collaborazione con l'unità di Firenze. Oltre al lavoro relativo a dotare questo nuovo formalismo di solide fondamenti matematici, nel progetto si intende utilizzare le reti di Petri riflessive per modellare reti mobili altamente mutabili, come la maggioranza delle reti di sensori. In particolare si intende modellare l'algoritmo di gossiping descritto in [GPR08] con l'intento di valutare e migliorare le sue performance; inoltre tale lavoro costituirà il perfetto studio di caso per le tecniche di analisi che svilupperemo nel progetto. Primo Anno. Durante il primo anno si intende lavorare sulle capacità di analisi delle reti di Petri riflessive ed in parallelo sulla loro applicazione al dominio applicativo delle reti di sensori. Inoltre si analizzerà come estendere il tool GreatSPN per ottenere un simulatore che supporti anche le reti di Petri riflessive. Secondo Anno. Durante il secondo anno si intende continuare il lavoro iniziato nel primo anno ed implementare il simulatore. Risultati. - estensione delle reti di Petri riflessive in particolare in relazione alle tecniche di analisi; - implementazione del simulatore; - applicazione delle reti di Petri riflessive alla modellazione di reti mobili altamente mutabili, in particolare in relazione agli algoritmi di gossiping nelle reti di sensori. The overall aim of the research unit will be to design and develop a framework based on the idea presented in [CS09] to decompose a programming language definition and implementation in reusable components. To support dynamic software evolution through reflective and bytecode instrumentation techniques and to face several problems tied to the software evolution (inconsistent documentation and sanitizing the domino effect). The research unit will be involved in the project tasks, as detailed below. Task 1. Composition SubTask 1.3 Evolution and refactoring The work of this unit in this subtask mainly focuses on supporting evolution and refactoring at linguistic level and as a methodology. First Year. Software evolution affects the maintenance of the application by imposing the evolution of part of the application that apparently should not be affected by the new requirements provoking a sort of domino effect. This is particularly evident in the case of aspect-oriented application where evolving the application can break the modularity and encapsulation imposed by the aspects forcing to evolve the code to describe the composition as well; this affects the join point selection, i.e., pointcut definitions that need to be updated to maintain their functionality (pointcut fragility problem) [KS04]. To solve the pointcut fragility problem we have designed a graphical aspect-oriented language, named Blueprint [CP07b], which decouples the join point selection mechanism from the application syntax. In the first year we will continue the development of the Blueprint language. Moreover, we intend to investigate a second approach based on the meta-data facility and [a]c# [CCC05a] that should permit to mark directly in the application where to compose the aspects confining, in this way, what is affected by the evolution in a single and well-defined point and not to the whole application. On the other hand, we are going to support dynamic software evolution in terms of class schema changes by extending the approach presented in [PKS08] to preserve inheritance and encapsulation through dynamic class replacement. This work is made in collaboration with Mario Pukall of the University of Magdeburg. Second Year. In this second year both Blueprint will be still under development and also their applications will be investigated. The work about dynamic evolution will foresee a phase of formal validation of the soundness and completeness of the developed approach and the investigation of its use to implement dynamic weaving of aspects. We are going to improve our work [CPGS07] on co-evolution of application code and documentation by improving the proposed methodology and the set of meta-data to simplify the use and to automatize it; the integration with the agile development process will be investigated as well. Results. - implementation of the Blueprint programming language and its validation against software evolution; - definition of an alternative approach (@AspectJ) based to limit the changes against software evolution in aspect-oriented software; - implementation of a framework to permit schema changes during the execution of the application and its evaluation; - a semi-automatic approach to documentation maintenance against software evolution and its integration in the agile development process. SubTask 1.4 Compositional language development The work of the unit in this subtask mainly focuses on developing a methodology to define a programming language as the composition of its basic components (i.e., the constructs composing the programming language); components that can be reused from other language definitions. The methodology we intend to investigate basically follows the ideas we have given in [CS09]. Each programming feature will be encapsulated in a slice together with the necessary details to realize its implementation/evaluation, i.e., the details to realize each compilation/interpretation phase (e.g., type checking, evaluation, code generation, and so on) are encapsulated in modules of the slice that will be composed together the corresponding modules of the other features to generate the compiler/interpreter of the whole language. The methodology will be supported by a programming language to define the slices and a framework that will permit to compose the slices to form the new programming languages and to automatically generate the corresponding compiler/interpreter to compile and execute the programs written in the just composed programming language. The slice composition represents the most challenging issue of the whole idea since slices represent a big variety of concepts and often these can affect how another slice behaves, e.g., consider the case where a slice introduces the for loop and another one a keyword to parallel a piece of code: the composition of these two slices will provide a normal for loop and a parallel for with the body executed in parallel; so the evaluation of a programming feature depends on the evaluation of the other features that could affect it. The composition investigation will be carried out in collaboration with the unit of Torino. MIUR - BANDO MODELLO B - 9 -

10 Applications of the approach are in our focus as well, in particular we intend to investigate the implementation of Featherweight Java [IPW01] through our framework; this should provide all the project units with the right testbed for testing the extensions we are proposing in this project. Other programming languages that could be considered are Java [GJSB05] and Linda [CG89]. First Year. In the first year we intend to develop and realize the core idea behind the proposal (the slice language and the composition mechanism); in parallel we will develop the case study programming languages. Second Year. In the second year the development will be continued together with the framework implementation and the case study analysis; moreover we are going to formally model the decomposition/composition mechanism. Results. - a mechanism to define basic programming features (the slices) that can be selectively composed to form a novel programming language; - a framework to generate the compiler and interpreter for programs written in the programming language resulting from the composition; - a bunch of slices necessary to define well-known programming languages, such as Java [GJSB05], Featherweight Java [IPW01] and Linda [CG89]. Task 2. Interaction and Distribution Task 2.4 Mobility and dynamic evolution The work of the unit in this subtask mainly focuses on the reflective Petri net formalism [CC06,CC07b] we developed to model the evolution of a dynamic discrete-event system (e.g. a mobile network), and its application. The reflective Petri net formalism has been designed to easily model distributed applications that can evolve without polluting the model with "what could be" instead of simply model "what it currently is". This is realized exploiting the reflection concept [Mae87] and layering the model in two levels: i) a classic Petri net representing the current situation and ii) how the model can evolve through strategies that will change the current representation when triggered. The multi-layer structure of the model keeps it extremely simple but limits the possible usage of classical Petri nets analysis techniques (mainly structural analysis and state-space inspection) to intervals between consecutive evolutions, i.e., without considering the model before its last evolution, or the potential new evolutions. Analogously, the existing tools that support the editing and the simulation of Petri net models cannot work with reflective Petri nets since they were designed without considering the presence of a second layer coordinating the evolution, thus not permitting any dynamical change to the Petri net layout during simulation runs. In the project, we are going to overcome these restrictions by first providing a state-transitions semantics by which it will be possible to simulate and analyze these kind of nets, then developing an ad-hoc support tool by extending the GreatSPN package, finally investigating structural analysis techniques for reflective Petri nets. Another interesting open question is the possibility of characterizing the behavior of (stochastic) reflective Petri nets in terms of Markov processes. In particular we aim at investigating possible links existing between the stochastic behavior of reflective Petri nets and dynamic Markovian models, e.g., Markovian evolving graphs. This issue could be explored in collaboration with the unit of Firenze. Beyond the work about providing sound mathematical foundations for this novel formalism, in the project we are going to use reflective Petri nets to model highly mutable mobile networks, like a wide class of sensor networks. In particular we are going to model the gossiping algorithm described in [GPR08] with the intent of evaluating and optimizing its performances; moreover such a work will be the perfect testbed for the analysis techniques we will develop in the project. First Year. In the first year we are going to work on the analysis capability of the reflective Petri nets and in parallel on their application to the sensor networks application domain. Moreover we will analyze how to extend the GreatSPN tool to get a simulation tool supporting the reflective Petri nets as well. Second Year. In the second year we are continuing the work made in the first year and implementing the simulation tool. Results. - Reflective Petri nets extensions in particular related to the analysis part; - the implementation of the simulation tool; - application to the highly mutable mobile networks, in particular in relation to gossiping algorithms in sensor networks Descrizione delle attrezzature già disponibili ed utilizzabili per la ricerca proposta Nessuna Nessuna 15 - Descrizione delle Grandi attrezzature da acquisire (GA) Nessuna Nessuna MIUR - BANDO MODELLO B

11 16 - Mesi persona complessivi dedicati al Progetto Ministero dell'istruzione dell'università e della Ricerca Numero Disponibilità temporale indicativa prevista Totale mesi persona 1 anno 2 anno Componenti della sede dell'unità di Ricerca Componenti di altre Università/Enti vigilati 0 Titolari di assegni di ricerca 0 Titolari di borse Dottorato 0 Post-dottorato 0 Scuola di Specializzazione 0 Personale a contratto Assegnisti 0 Borsisti 0 Altre tipologie 0 Dottorati a carico del PRIN da destinare a questo specifico progetto Altro personale TOTALE Costo complessivo del Progetto dell'unità articolato per voci Voce di spesa Materiale inventariabile Spesa in Euro Descrizione dettagliata (in italiano) acquisto di due laptop ed un computer fisso da destinare ai componenti dell'unità Descrizione dettagliata (in inglese) 2 laptops and 1 desktop to be used by the personal involved in the project Grandi Attrezzature 0 Materiale di consumo e funzionamento quota forfettaria del 10% 10% forfaitaire amount (comprensivo di eventuale quota forfettaria) Spese per calcolo ed elaborazione dati Personale a contratto 0 Dottorati a carico del PRIN da destinare a questo specifico progetto dottorato relativo a "tecniche di modularizzazione della definizione e realizzazione di un linguaggio di programmazione" about "modularization techniques applied to programming languages definition and implementation" Servizi esterni Missioni spese per la presentazione dei risultati fund to attend conferences and presents the project results Pubblicazioni (*) 100 eventuali spese di pubblicazione publication expenses Partecipazione / Organizzazione convegni (*) Altro (voce da utilizzare solo in caso di spese non riconducibili alle voci sopraindicate) Subtotale Costo convenzionale Totale Tutti gli importi devono essere espressi in Euro arrotondati alle centinaia spese per la presentazione dei risultati fund to register to conferences and presents the project results 100 spese varie ed eventuali fund to support other expenses (*) sono comunque rendicontabili le spese da effettuare per pubblicazioni e presentazione dei risultati finali della ricerca nei dodici mesi successivi alla conclusione del progetto, purché le relative spese siano impegnate entro la data di scadenza del progetto e purché le pubblicazioni e la presentazione dei risultati avvengano entro nove mesi dalla conclusione del progetto Prospetto finanziario dell'unità di Ricerca Voce di spesa a.1) finanziamenti diretti, disponibili da parte di Università/Enti vigilati di appartenenza dei ricercatori Importo in Euro MIUR - BANDO MODELLO B

12 dell'unità operativa a.2) finanziamenti diretti acquisibili con certezza da parte di Università/Enti vigilati di appartenenza dei ricercatori dell'unità operativa a.3) finanziamenti connessi al costo convenzionale b.1) finanziamenti diretti disponibili messi a disposizione da parte di soggetti esterni b.2) finanziamenti diretti acquisibili con certezza, messi a disposizione da parte di soggetti esterni c) cofinanziamento richiesto al MIUR (max 70% del costo complessivo) Totale Certifico la dichiarata disponibilità e l'utilizzabilità dei finanziamenti a.1) a.2) a.3) b.1) b.2) SI Firma I dati contenuti nella domanda di finanziamento sono trattati esclusivamente per lo svolgimento delle funzioni istituzionali del MIUR. Incaricato del trattamento è il CINECA- Dipartimento Servizi per il MIUR. La consultazione è altresì riservata al MIUR - D.G. della Ricerca -- Ufficio IV -- Settore PRIN, alla Commissione di Garanzia e ai referee scientifici. Il MIUR potrà anche procedere alla diffusione dei principali dati economici e scientifici relativi ai progetti finanziati. Responsabile del procedimento è il coordinatore del settore PRIN dell'ufficio IV della D.G. della Ricerca del MIUR. Firma Data 15/02/2009 ore 21:26 MIUR - BANDO MODELLO B

13 ALLEGATO Ministero dell'istruzione dell'università e della Ricerca Curricula scientifici dei componenti il gruppo di ricerca 1. CAPRA Lorenzo Curriculum: Studi 1993 Laurea in Scienze dell'informazione, Università degli Studi di Milano, Italy. 2001, PhD in Computer Science, Università di Torino, Italy. Impieghi professionali Analista/programmatore Consulente/ricercatore a tempo dterminato presso ENEL-CRA (Centro Ricerche di Automatica) e CESI spa. dal 2001 Ricercatore presso il Dipartimento di Informatica e Comunicazione (DICo), Università degli Studi di Milano, Italy Aree di ricerca Analisi di prestazioni ed affidabilità di sistemi distribuiti. Approcci formali all'ingegneria del software. Sistemi dinamici. Modellazione di processi. Analisi/simulazione di reti di Petri di alto livello. Partecipazione a progetti di ricerca , Esprit EFTOS (Embedded Fault-TOlerant Supercomputing). 1998, European Community HCM (Human Capital and Mobility), progetto MATCH (Modelling and Analysis of Time Constrained Hierarchical Systems), CHRX-CT , Esprit TIRAN (Tailorable fault tolerance framework for embedded applications). 2001, ISIDE project (Sistemi di elaborazione reattivi ed affidabili per applicazioni industriali) -Programmi di ricerca di rilevante interesse nazionale EOS project (Extensible Object Systems) -MIUR Programmi di ricerca di rilevante interesse nazionale. Attività professionale membro di SCS (The Society for Modeling and Simulation International) membro di EUROSIS. Pubblicazioni: CAPRA L., CAZZOLA W (2008). Evolutionary design through reflective petri nets: An application to workflow. In: IASTED Software Engineering (SE 2008)acta press, ISBN/ISSN: ; BELLETTINI C, CAPRA L., MONGA M (2007). Using a stochastic well formed net model for assessing a decentralized approach to configuration management. PERFORMANCE EVALUATION, vol. 64; p , ISSN: CAPRA L. (2007). Algebraic techniques & symmetries: an efficient simulation approach for well-formed petri nets. European Simulation and Modelling. In: European Simulation and Modelling Conference (ESM'2007)EUROSIS-ETI, p , ISBN/ISSN: CAPRA L. (2007). Integrating symmetries and symbolic enabling test for efficient simulation of SWNs. In: EUROPEAN Conference on Modelling and Simulation (ECMS 2007)ECMS-SCS, ISBN/ISSN: CAPRA L., CAZZOLA W (2007). A reflective pn-based approach to dynamic workflow change. In: SYNASC '07: Proceedings of the 9th International Symposium on Symbolic and Numeric Algorithms for Scientific ComputingIEEE CS Press, ISBN/ISSN: CAPRA L., CAZZOLA W (2007). Self-evolving petri nets. JOURNAL OF UNIVERSAL COMPUTER SCIENCE, vol. 13; p , ISSN: CAPRA L. (2006). Algebraic framework for efficient simulation of stochastic coloured petri nets. In: SummerSim'06SCS, ISBN/ISSN: ISBN CAPRA L. (2006). Applying a symbolic approach for swn enabling test to workflow models. In: SYNASC '06: Proceedings of the 8th International Symposium on Symbolic and Numeric Algorithms for Scientific ComputingIEEE CS Press, p , ISBN/ISSN: X CAPRA L. (2006). Applying structural techniques for efficient analysis of complex swn models. In: Workshop on Discrete Event Systems (WODES'06IEEE CS Press, p , ISBN/ISSN: CAPRA L., DE PIERRO M, FRANCESCHINIS G (2005). A high level language for structural relations in well-formed nets. In: ICATPN 2005, 26th International Conference on Applications and Theory of Petri Nets, LNCSSPRINGER, vol. 3536, p CAPRA Lorenzo Curriculum: Education 1993 Laurea degree in computer Science from Università degli Studi di Milano, Italy. 2001, PhD in Computer Science from the University of Torino, Italy. Professional employment Computing professional (analyst and programmer): Consultant/temporary researcher at ENEL-CRA (Research center of the Italian electric power provider) and CESI spa. since 2001 Assistant Professor at the Department of Informatics and Communication (DICo), Univ. of Milan, Italy MIUR - BANDO MODELLO B

14 Research interests Performance and dependability evaluation of distributed systems. Formal approaches to software engineering. Dynamic systems. Workflow modeling. Analysis/simulation of High-level Petri nets. National and European Projects , Esprit EFTOS (Embedded Fault-TOlerant Supercomputing). 1998, European Community HCM (Human Capital and Mobility), progetto MATCH (Modelling and Analysis of Time Constrained Hierarchical Systems) , Esprit TIRAN (Tailorable fault tolerance framework for embedded applications). 2001, ISIDE project (Sistemi di elaborazione reattivi ed affidabili per applicazioni industriali) - Programmi di ricerca di rilevante interesse nazionale EOS project (Extensible Object Systems) -MIUR Programmi di ricerca di rilevante interesse nazionale. Professional activity member of SCS (The Society for Modeling and Simulation International) member of EUROSIS. Pubblicazioni: CAPRA L., CAZZOLA W (2008). Evolutionary design through reflective petri nets: An application to workflow. In: IASTED Software Engineering (SE 2008)acta press, ISBN/ISSN: ; BELLETTINI C, CAPRA L., MONGA M (2007). Using a stochastic well formed net model for assessing a decentralized approach to configuration management. PERFORMANCE EVALUATION, vol. 64; p , ISSN: CAPRA L. (2007). Algebraic techniques & symmetries: an efficient simulation approach for well-formed petri nets. European Simulation and Modelling. In: European Simulation and Modelling Conference (ESM'2007)EUROSIS-ETI, p , ISBN/ISSN: CAPRA L. (2007). Integrating symmetries and symbolic enabling test for efficient simulation of SWNs. In: EUROPEAN Conference on Modelling and Simulation (ECMS 2007)ECMS-SCS, ISBN/ISSN: CAPRA L., CAZZOLA W (2007). A reflective pn-based approach to dynamic workflow change. In: SYNASC '07: Proceedings of the 9th International Symposium on Symbolic and Numeric Algorithms for Scientific ComputingIEEE CS Press, ISBN/ISSN: CAPRA L., CAZZOLA W (2007). Self-evolving petri nets. JOURNAL OF UNIVERSAL COMPUTER SCIENCE, vol. 13; p , ISSN: CAPRA L. (2006). Algebraic framework for efficient simulation of stochastic coloured petri nets. In: SummerSim'06SCS, ISBN/ISSN: ISBN CAPRA L. (2006). Applying a symbolic approach for swn enabling test to workflow models. In: SYNASC '06: Proceedings of the 8th International Symposium on Symbolic and Numeric Algorithms for Scientific ComputingIEEE CS Press, p , ISBN/ISSN: X CAPRA L. (2006). Applying structural techniques for efficient analysis of complex swn models. In: Workshop on Discrete Event Systems (WODES'06IEEE CS Press, p , ISBN/ISSN: CAPRA L., DE PIERRO M, FRANCESCHINIS G (2005). A high level language for structural relations in well-formed nets. In: ICATPN 2005, 26th International Conference on Applications and Theory of Petri Nets, LNCSSPRINGER, vol. 3536, p MIUR - BANDO MODELLO B

Punto della Situazione. Dipartimento di Informatica e Comunicazione Università degli Studi di Milano e-mail: cazzola@dico.unimi.it

Punto della Situazione. Dipartimento di Informatica e Comunicazione Università degli Studi di Milano e-mail: cazzola@dico.unimi.it Punto della Situazione Dipartimento di Informatica e Comunicazione Università degli Studi di e-mail: cazzola@dico.unimi.it Slide 1 of 8 EOS-DUE: Informazioni Generali. L (responsabile), Lorenzo Capra e

Dettagli

Estendere Lean e Operational Excellence a tutta la Supply Chain

Estendere Lean e Operational Excellence a tutta la Supply Chain Estendere Lean e Operational Excellence a tutta la Supply Chain Prof. Alberto Portioli Staudacher www.lean-excellence.it Dipartimento Ing. Gestionale Politecnico di Milano alberto.portioli@polimi.it Lean

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Processi di Sviluppo Agile Origini dello Sviluppo Agile Proposta di un gruppo di sviluppatori che rilevava una serie di criticità degli approcci convenzionali: Troppa rigidità dei

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Manutenzione del software

Manutenzione del software del software Generalità Leggi dell evoluzione del software Classi di manutenzione Legacy systems Modelli di processo per la manutenzione 1 Generalità La manutenzione del software è il processo di modifica

Dettagli

Introduzione all ambiente di sviluppo

Introduzione all ambiente di sviluppo Laboratorio II Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2006-07 CdL Operatore Informatico Giuridico. Introduzione all ambiente di sviluppo Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

ISAC. Company Profile

ISAC. Company Profile ISAC Company Profile ISAC, all that technology can do. L azienda ISAC nasce nel 1994, quando professionisti con una grande esperienza nel settore si uniscono, e creano un team di lavoro con l obiettivo

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione. Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione. Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Ugo Montanari Dipartimento di Informatica, Università di Pisa 0 Roadmap Perchè i linguaggi? Che cosa sono i linguaggi? Esempio: i numeri

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

Il Sistema ECVET: gli elementi chiave

Il Sistema ECVET: gli elementi chiave Il Sistema ECVET: gli elementi chiave ECVET: key features Manuela Bonacci ISFOL Processi integrati Europass Qualità e Accreditamento ECTS ECVET EQF NQS Sistema dei crediti Validation Sistema Nazionale

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 1

Corso di Amministrazione di Sistema Parte I ITIL 1 Corso di Amministrazione di Sistema Parte I ITIL 1 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici ITSM

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Ingegneria del Software. Business Object Technology

Ingegneria del Software. Business Object Technology Ingegneria del Software Business Object Technology Premesse I sistemi informativi di qualsiasi organizzazione devono essere capaci di: gestire quantità di dati sempre crescenti fornire supporto a nuovi

Dettagli

Infrastruttura di produzione INFN-GRID

Infrastruttura di produzione INFN-GRID Infrastruttura di produzione INFN-GRID Introduzione Infrastruttura condivisa Multi-VO Modello Organizzativo Conclusioni 1 Introduzione Dopo circa tre anni dall inizio dei progetti GRID, lo stato del middleware

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Logical Framework Approach: Stakeholder Analysis e Problem Analysis

Logical Framework Approach: Stakeholder Analysis e Problem Analysis European Institute of Public Administration - Institut européen d administration publique Logical Framework Approach: Stakeholder Analysis e Problem Analysis Francesca Pepe learning and development - consultancy

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Curriculum Vitae di Andrea Ribichini

Curriculum Vitae di Andrea Ribichini Dati Anagrafici Nome: Andrea Cognome: Ribichini Data e luogo di nascita: 14/01/1973, Roma Cittadinanza: italiana Titoli di Studio Conseguiti 29/02/2008 Titolo di Dottore di Ricerca in Ingegneria Informatica

Dettagli

4th International Conference in Software Engineering for Defence Applications SEDA 2015

4th International Conference in Software Engineering for Defence Applications SEDA 2015 me Ho CALL FOR PAPERS: 4th International Conference in Software Engineering for Defence Applications SEDA 2015 Software Engineering aims at modeling, managing and implementing software development products

Dettagli

Object Oriented Software Design

Object Oriented Software Design Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Sistemi Mobili e Wireless Introduction

Sistemi Mobili e Wireless Introduction Sistemi Mobili e Wireless Introduction Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Sistemi mobili e wireless: definizione

Dettagli

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari www.agile.diee.unica.

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari www.agile.diee.unica. Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite Agile Group DIEE, Università di Cagliari www.agile.diee.unica.it Agile Group Agile Group, gruppo di ricerca su Ingegneria del SW,

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Terzo modulo 2 dicembre 2010 Il progetto èconcluso Valutazione

Terzo modulo 2 dicembre 2010 Il progetto èconcluso Valutazione CORSO DI FORMAZIONE REGIONALE cosa stai cercando? riflessioni sulla ricerca sanitaria dall idea all application: come descrivere un progetto di ricerca e chiedere un finanziamento Regione Liguria Terzo

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE A.A. 2014 2015 Pasquale Ardimento, Nicola Boffoli, Danilo Caivano, Giuseppe Visaggio Sommario ð Il Piano del Corso ð Svolgimento degli Esami ð Bibliografia ð Materiale didattico

Dettagli

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale La Sicurezza Funzionale del Software Prof. Riccardo Sisto Ordinario di Sistemi di Elaborazione delle Informazioni Dipartimento di Automatica e Informatica Sicurezza Funzionale del Vari Aspetti Sicurezza

Dettagli

Distributed Object Computing

Distributed Object Computing Evoluzione Architetturale Distributed omputing entralizzata Monolitica anni 60-70 Reti locali di P anni 80 Reti lient Server anni 80-90 Internet The network is the computer Paolo Falcarin Sistemi Informativi

Dettagli

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1 MODELLAZIONE DEI PROCESSI AZIENDALI workflow 1 I Processi Definizione: Un Processo è un insieme di attività elementari svolte per raggiungere un certo obiettivo Tipologie di processi: Processi Fisici es.

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

SOMMARIO. Sistemi Self-Adaptive Motivazioni Ciclo di vita della cellula Paradigma. Future Work

SOMMARIO. Sistemi Self-Adaptive Motivazioni Ciclo di vita della cellula Paradigma. Future Work LEARNING FROM CELL LYFE- CYCLE: A SELF ADAPTIVE PARADIGM Antinisca Di Marco, Francesco Gallo, Paola Inverardi Università degli Studi dell'aquila Dipartimento di Informatica SOMMARIO Sistemi Self-Adaptive

Dettagli

Roma, 20 Gennaio 2012. Direzione Generale. Prot. ARIE 13 /2012

Roma, 20 Gennaio 2012. Direzione Generale. Prot. ARIE 13 /2012 Roma, 20 Gennaio 2012 Direzione Generale Ufficio Attività e Relazioni con Istituzioni Europee Prot. ARIE 13 /2012 Ai Direttori delle Strutture di ricerca del CNR Loro Sedi Oggetto: Contratti Europei -

Dettagli

Ruolo delle associazioni di impresa nella informazione corretta sui pericoli da sostanze e miscele

Ruolo delle associazioni di impresa nella informazione corretta sui pericoli da sostanze e miscele Ruolo delle associazioni di impresa nella informazione corretta sui pericoli da sostanze e miscele Ilaria Malerba Area Sicurezza Prodotti e Igiene Industriale Roma, 19 maggio 2015 1 giugno 2015: alcuni

Dettagli

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

Dettagli

Dalla VAS alla TIA (Territorial Impact Assessment) quale evoluzione nel quadro europeo

Dalla VAS alla TIA (Territorial Impact Assessment) quale evoluzione nel quadro europeo Dalla VAS alla TIA (Territorial Impact Assessment) quale evoluzione nel quadro europeo Virna Bussadori Presidente onorario ECTP-CEU News dall Europa: 1. Sul concetto di coesione territoriale 2. Sulla pianificazione

Dettagli

Breve Excursus su Evoluzione della Programmazione. Corso di Linguaggi e Metodologie di Programmazione

Breve Excursus su Evoluzione della Programmazione. Corso di Linguaggi e Metodologie di Programmazione Breve Excursus su Evoluzione della Programmazione Corso di Linguaggi e Metodologie di Programmazione Introduzione Le slide presenti in questo documento hanno il solo scopo di riassumere i momenti fondamentali

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

MODULO PER LA GESTIONE DEI RESI

MODULO PER LA GESTIONE DEI RESI MODULO PER LA GESTIONE DEI RESI Clienti, prodotti, categorie merceologiche e stabilimenti di produzione. Difetti, tipologia difetti, test ed esiti finali di verifica. Raggruppamento dei test loro in schede

Dettagli

Programmazione per la disciplina Informatica PROGRAMMAZIONE DI MATERIA: INFORMATICA SECONDO BIENNIO AMMINISTRAZIONE FINANZA E MARKETING

Programmazione per la disciplina Informatica PROGRAMMAZIONE DI MATERIA: INFORMATICA SECONDO BIENNIO AMMINISTRAZIONE FINANZA E MARKETING ISTITUTO ISTRUZIONE SUPERIORE TUROLDO ZOGNO Procedura Pianificazione, erogazione e controllo attività didattiche e formative Programmazione per la disciplina Informatica PROGRAMMAZIONE DI MATERIA: INFORMATICA

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Città di Montalto Uffugo (Provincia di Cosenza) SISTEMA DI MISURAZIONE E VALUTAZIONE DELLA PERFORMANCE

Città di Montalto Uffugo (Provincia di Cosenza) SISTEMA DI MISURAZIONE E VALUTAZIONE DELLA PERFORMANCE Città di Montalto Uffugo (Provincia di Cosenza) SISTEMA DI MISURAZIONE E VALUTAZIONE DELLA PERFORMANCE Allegato Delibera Giunta Comunale n. 110 del 19 maggio 2014 1) Caratteristiche generali del sistema

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

POLITICA DI COESIONE 2014-2020

POLITICA DI COESIONE 2014-2020 INVESTIMENTO TERRITORIALE INTEGRATO POLITICA DI COESIONE 2014-2020 A dicembre 2013, il Consiglio dell Unione europea ha formalmente adottato le nuove normative e le leggi che regolano il ciclo successivo

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design

Dettagli

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES 1 CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT Il corso è finalizzato a illustrare in dettaglio le competenze richieste al Business Continuity Manager per guidare un progetto BCM e/o gestire

Dettagli

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica INGEGNERIA DEL SOFTWARE Prof. Paolo Salvaneschi 1 Obiettivi Scopi del corso: - Fornire gli elementi di base della disciplina,

Dettagli

ALLEGATO 1 (SCHEDA DI ASSEGNAZIONE OBIETTIVI)

ALLEGATO 1 (SCHEDA DI ASSEGNAZIONE OBIETTIVI) ALLEGATO 1 (SCHEDA DI ASSEGNAZIONE OBIETTIVI) me Cognome Categoria Area AP PO, di tipo Anno di riferimento per la valutazione Punteggio conseguito nelle di schede di valutazione della prestazione degli

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Research and development are core activities of the company, which fosters technology transfer from University to practice.

Research and development are core activities of the company, which fosters technology transfer from University to practice. EXPIN srl Advanced Structural Control è una giovane società, nata nel 2010 come spin-off dell Università di Padova. Il campo in cui opera la società è quello relativo allo sviluppo, applicazione, gestione

Dettagli

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Sommario Introduzione Definizione di WCET Importanza del WCET Panoramica dei classici metodi per calcolare il WCET [1] Utilizzo di

Dettagli

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1 MODELLAZIONE DEI PROCESSI AZIENDALI workflow 1 I Processi Definizione: Un Processo è un insieme di attività elementari svolte per raggiungere un certo obiettivo Tipologie di processi: Processi Fisici es.

Dettagli

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Application note. CalBatt NomoStor per i sistemi di accumulo di energia 1. Panoramica Application note CalBatt NomoStor per i sistemi di accumulo di energia Gli Energy Management Systems () sono dispositivi atti al controllo dei flussi di energia dalle sorgenti di produzione

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Un esperienza di successo. Guida per l insegnante

Un esperienza di successo. Guida per l insegnante Guida per l insegnante Obiettivi educativi generali Compito di esplorazione - Diventare consapevole delle proprie capacità e dei propri limiti. Compito di cristallizzazione - Nell analisi delle situazioni

Dettagli

IBM Software Demos WebSphere Portal Composite Application Workflow

IBM Software Demos WebSphere Portal Composite Application Workflow {Introduzione: mostrare la schermata di login con un servizio di teleborsa in esecuzione} IBM WebSphere Portal include Composite Application Workflow Builder. Questo strumento consente agli utenti dipartimentali

Dettagli

LABORATORIO a cura di Pier Cesare Rivoltella e Andrea Garavaglia La Formazione a distanza di Terza Generazione

LABORATORIO a cura di Pier Cesare Rivoltella e Andrea Garavaglia La Formazione a distanza di Terza Generazione LABORATORIO a cura di Pier Cesare Rivoltella e Andrea Garavaglia La Formazione a distanza di Terza Generazione Laboratorio 2 Apprendimento collaborativo in rete Laboratorio 2 Apprendimento collaborativo

Dettagli

Mario Rotta. eportfolio e altre strategie di personalizzazione per l'apprendimento continuo

Mario Rotta. eportfolio e altre strategie di personalizzazione per l'apprendimento continuo eportfolio e altre strategie di personalizzazione per l'apprendimento continuo Quali strategie possono essere applicate con successo nel Life Long Learning, tenendo conto degli scenari attuali? Emerge

Dettagli

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L. DATA WAREHOUSE Un Dataware House può essere definito come una base di dati di database. In molte aziende ad esempio ci potrebbero essere molti DB, per effettuare ricerche di diverso tipo, in funzione del

Dettagli

Progetto TIC (trasparenza- informatica-comunicazione)

Progetto TIC (trasparenza- informatica-comunicazione) Progetto TIC (trasparenza- informatica-comunicazione) Il quadro normativo di seguito riportato evidenzia il ruolo che la Provincia avrà quale ente con funzioni di area vasta che potrà essere di supporto

Dettagli

Agenda. IT Governance e SOA. Strumenti di supporto alla governance. Vittoria Caranna vcaranna@imolinfo.it Marco Cimatti mcimatti@imolinfo.

Agenda. IT Governance e SOA. Strumenti di supporto alla governance. Vittoria Caranna vcaranna@imolinfo.it Marco Cimatti mcimatti@imolinfo. SOA Governance Vittoria Caranna vcaranna@imolinfo.it Marco Cimatti mcimatti@imolinfo.it Agenda IT Governance e SOA Strumenti di supporto alla governance 2 Importanza della Governance Service Oriented Architecture

Dettagli

Architetture software

Architetture software Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software Sommario Definizioni 2 Architettura Definizione. L architettura

Dettagli

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Nel corso degli anni, nel passaggio dalla visione artigianale alla visione industriale del software, si è compreso che il processo andava formalizzato attraverso: un insieme

Dettagli

MESA PROJECT ITIS G. Cardano Pavia New Curriculum

MESA PROJECT ITIS G. Cardano Pavia New Curriculum MESA PROJECT ITIS G. Cardano Pavia New Curriculum L'impatto delle innovazioni educative del Progetto MESA ha portato alcuni cambiamenti significativi e miglioramenti nel curriculum dei seguenti argomenti:

Dettagli

Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile

Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile Premessa All arrivo di un nuovo volontario l intero sistema dell associazione viene in qualche modo toccato. Le relazioni si strutturano diversamente

Dettagli

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo ORGANIZZAZIONE AZIENDALE 1 Tecnologie dell informazione e controllo 2 Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale IT e coordinamento esterno IT e

Dettagli

INVENTION AND TECHNOLOGY DISCLOSURE FORM SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO

INVENTION AND TECHNOLOGY DISCLOSURE FORM SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO INVENTION AND TECHNOLOGY DISCLOSURE FORM UFFICIO TRASFERIMENTO TECNOLOGICO SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO Mittente: Prof./Dott Dipartimento di Via.. 4412. Ferrara Al Magnifico

Dettagli

Nuovo Corso di laurea magistrale in Ingegneria Informatica AA14-15. http://www.dis.uniroma1.it/~ccl_ii/site/

Nuovo Corso di laurea magistrale in Ingegneria Informatica AA14-15. http://www.dis.uniroma1.it/~ccl_ii/site/ Nuovo Corso di laurea magistrale in Ingegneria Informatica AA14-15 http://www.dis.uniroma1.it/~ccl_ii/site/ Laurea Magistrale L obiettivo della laurea magistrale in Ingegneria informatica (Master of Science

Dettagli

Apprendimento informale e dispositivi mobili: il nuovo approccio alla formazione

Apprendimento informale e dispositivi mobili: il nuovo approccio alla formazione 21/3/2013 Apprendimento informale e dispositivi mobili: il nuovo approccio alla formazione In parallelo all evoluzione della tecnologia, sottolineata oggi dall ascesa dei dispositivi mobili, è in corso

Dettagli

Innovazione didattica in matematica: PP&S su piattaforma e-learning in ambiente di calcolo evoluto

Innovazione didattica in matematica: PP&S su piattaforma e-learning in ambiente di calcolo evoluto Innovazione didattica in matematica: PP&S su piattaforma e-learning in ambiente di calcolo evoluto 1 Criticità La recente riforma del II ciclo di istruzione [DPR 87/210; DPR 88/2010; DPR 89/2010], apre

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

www.cinnam.com info@cinnam.com Milano, 2015

www.cinnam.com info@cinnam.com Milano, 2015 BASILICON ALLEY LA CONSULENZA PROFESSIONALE PER L AVVIO DELLE (RE)STARTUP SOSTENIBILI ALDEHYDE MOLECULAR BUSINESS SYSTEMS Project in collaborazione con ZIOSTARTUP Milano, 2015 www.cinnam.com info@cinnam.com

Dettagli

L università degli Studi del Sannio

L università degli Studi del Sannio La ricerca condotta dall Università degli studi del Sannio e dalla Dida Network s.r.l. in tema di formazione avanzata per persone sorde ed in particolare i risultati del progetto: This project has been

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Il modello veneto di Bilancio Sociale Avis

Il modello veneto di Bilancio Sociale Avis Il modello veneto di Bilancio Sociale Avis Le organizzazioni di volontariato ritengono essenziale la legalità e la trasparenza in tutta la loro attività e particolarmente nella raccolta e nell uso corretto

Dettagli

I progetti di ricerca del Dipartimento

I progetti di ricerca del Dipartimento Università di Pisa Dipartimento di Informatica I progetti di ricerca del Dipartimento Pisa, 12 13 giugno 2003 Progetti di ricerca Mix di progetti in essenziale alla luce dell evoluzione delle tecnologie

Dettagli

Metodologie di progettazione

Metodologie di progettazione Metodologie di progettazione 1 Metodologie di progettazione Una procedura per progettare un sistema Il flusso di progettazione può essere parzialmente o totalmente automatizzato. Un insieme di tool possono

Dettagli

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) CORSO DI Gestione aziendale Facoltà di Ingegneria IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) Carlo Noè Università Carlo Cattaneo Istituto di Tecnologie e-mail: cnoe@liuc.it 1 Il processo di

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

design patterns e GRASP

design patterns e GRASP design patterns e GRASP 1 design patterns una coppia / particolarmente importante a cui viene dato un nome vengono espressi in un formato molto rigido, ad es. nome descrizione sintetica della descrizione

Dettagli

THINKING DIGITAL SYNCHRONIZING WITH THE FUTURE PENSIERO DIGITALE: SINCRONIZZARSI COL FUTURO

THINKING DIGITAL SYNCHRONIZING WITH THE FUTURE PENSIERO DIGITALE: SINCRONIZZARSI COL FUTURO THINKING DIGITAL SYNCHRONIZING WITH THE FUTURE PENSIERO DIGITALE: SINCRONIZZARSI COL FUTURO A STEP FORWARD IN THE EVOLUTION Projecta Engineering developed in Sassuolo, in constant contact with the most

Dettagli

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo CAPITOLO 8 Tecnologie dell informazione e controllo Agenda Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale Sistemi di controllo a feedback IT e coordinamento

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Nuove tecnologie per la didattica

Nuove tecnologie per la didattica Nuove tecnologie per la didattica Mario Allegra Consiglio Nazionale delle ricerche Istituto per le Tecnologie Didattiche Palermo Via Ugo La Malfa 153 mario.allegra@itd.cnr.it L Istituto per le Tecnologie

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Service Design Programme

Service Design Programme Service Design Programme SERVICE DESIGN - cosa è Il Service Design è l attività di pianificazione e organizzazione di un servizio, con lo scopo di migliorarne l esperienza in termini di qualità ed interazione

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli