Biografia del relatore

Giuseppe Visaggio is full professor of Software Engineering at the Department of Informatics of the University of Bari. His research interests include: co-located and distributed models for software development with particular attention to product lines developed with use of closed and open source components and web services; with particular attention to maintenance with focus on quality improvement of legacy systems and their integration or cooperation with new applications; process models; and resource models. All of the previously mentioned research areas are faced according to the Empirical Software Engineering perspective. He is head of the Software Engineering Research Laboratory (SERLAB) at the Department of Informatics of the University of Bari and of the Bari unit of the Research Centre Of Software Technologies (RCOST). SERLAB is carrying out many projects of basic research and controlled and on-field experiments (http://serlab.di.uniba.it). For six years he has been member of the Program Committee of the IEEE International Conference on Software Maintenance (ICSM), Workshop on Program Comprehension (IWPC), and Workshop on Empirical Studies of Software Maintenance (WESS). From 1998-2004 he has been member of the Steering Committee of ICSM. He is now member of the steering committee for IWPC and a member of IEEE Computer Society, ACM and AICA.

Abstract

Per chiarezza, qui si intende per impresa un soggetto giuridico, pubblico o privato, che investe risorse per raggiungere i propri scopi istituzionali. Com'è noto l'adozione dell'open source software (oss) si sta diffondendo sempre di più in entrambi i tipi di imprese. In quelle private per far fronte allo stress competitivo, nelle pubbliche oltre che per lo stesso motivo, anche per governare la dipendenza del mercato dai grandi fornitori che tendono a egemonizzare le tendenze di sviluppo del mercato. In letteratura esistono molti studi per l'oss nei sistemi operativi e nel middleware; molto meno è sttao discusso nelle applicazioni software. In questo scenario si pone il problema di comprendere quali siano i valori che l'oss può apportare allo sviluppo ( produzione e manutenzione) delle applicazioni software. Queste note intendono analizzare criticamente questa prospettiva allo scopo di indicare linee guida per l'adozione delle componenti oss nello sviluppo delle applicazioni e per individuare le prospettive che questo nuovo fenomeno apre a: i ricercatori, gli sviluppatori praticanti, gli studenti e le imprese. Per completezza, si precisa che l'analisi eseguita in questo studio prende in considerazione l'esperienza presente in letteratura anche nell'uso dell'oss nello sviluppo di sistemi operativi e di middleware.Per poter analizzare compiutamente i valori dell'oss si classificano questi sia secondo le caratteristiche che si chiedono alle componenti software nello sviluppo del software sia secondo le prospettive dei diversi tipi di parti interessate ai valori dell'oss. La classificazione dei valori consente di evidenziare la diversità di valori per l'uso delle componenti e per le parti interessate. L'effetto collaterale della classificazione è l' individuazione delle priorità dei valori in dipendenza della fase di sviluppo in cui si deve utilizzare la componente e della parte interessata all'applicazione da costruire. Dei valori richiesti alle componenti software alcuni sono ritenuti punti di forza ed altri punti di debolezza dell'oss. Queste informazioni sono utili per il l'ingegnere del software perché lo supportano ne: la decisione di quando e come utilizzare componenti oss; la scelta , tra quelle concorrenti, delle componenti più adeguate allo sviluppo in cui è impegnato; l'individuazione delle iniziative che mitigano il rischio di far impattare il progetto dai punti di debolezza. Purtroppo, si rileva che dalle informazioni presenti in letteratura: molti dei valori positivi accreditati all'oss siano solo congetture senza alcuna validazione sperimentale e, spesso, le poche indagini empiriche condotte danno risultati che non sono concordi tra loro e qualche volta non confermano le congetture. Pertanto, risultano carenti i modelli di supporto all'ingegnere del software . Infatti, essi non si possono basare su un'assestata catalogazione dei valori positivi di cui si devono avvantaggiare e di quelli negativi che devono superare. Nonostante queste carenze l'autore ipotizza alcune linee guida per le attività dell'ingegnere del software. Dalle linee guida si fanno derivare: l'agenda di indagine per i ricercatori; le opportunità che si presentano per gli sviluppatori praticanti, sia quando lavorano da soli sia quando sono strutturati in imprese fornitrici od utilizzatrici di componenti oss, e quelle che possono essere sfruttate dagli studenti che si preparano ad essere professionisti dello sviluppo software.