• Non ci sono risultati.

Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source

N/A
N/A
Protected

Academic year: 2021

Condividi "Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source"

Copied!
41
0
0

Testo completo

(1)

Modelli di Produzione del SW:

dal Ciclo a Cascata all’Open Source

Paolo Ciancarini

Dip. Scienze dell’Informazione

Università di Bologna

(2)

Alcuni eventi

1968: NATO Conference on Software Engineering 1969: IBM effettua il “software unbundling”

1970: Royce descrive il Waterfall Model

1976: Lettera aperta di B.Gates sulla pirateria sw 1987: Articolo Osterwail

1988: Modello a spirale di Boehm

1990: Conferenze su Sw Process Modeling

1998: Netscape viene distribuito Open Source

2002: Proposte di legge su Open Source

(3)

Il sw è un prodotto industriale

L’industria mondiale del sw è cresciuta nell’ultimo decennio a tassi di almeno il 10% annuo

Molti nuovi servizi di rete si basano su innovazioni

tecnologiche software (es. Napster, aste online, ecc.) Un telefonino contiene 5 MLOC (fonte Nokia)

Windows XP contiene 40 MLOC (Windows 95: 11 MLOC) Il costo di sviluppo di un programma cresce col quadrato

delle sue dimensioni [Berra-Meo 2001]

(4)

Il software è un prodotto speciale

È invisibile e intangibile

È facilmente duplicabile e distribuibile su rete Non è in sé brevettabile (ma protetto)

Non è garantito

Viene acquisito su licenza

• Proprietaria (normale, shareware)

• Public domain

• Open source

(5)

Perché studiare il processo di produzione del sw?

Servono sistemi software più affidabili e sicuri:

il processo di produzione influenza tali qualità Il processo software impatta l’organizzazione L’organizzazione impatta il processo software Esistono parecchi diversi processi di sviluppo,

adatti ad organizzazioni, prodotti e mercati diversi

Alcuni strumenti sono efficaci solo nell’ambito di

(6)

Il processo edit-compile-test

edit

(7)

Il processo edit-compile-test

edit compile

(8)

Il processo edit-compile-test

edit compile test

(9)

Il processo edit-compile-test

edit compile test

• Molto veloce, feedback rapido

• Disponibilità di molti strumenti

• Specializzato per la codifica

• Non incoraggia la documentazione

• Non scala: in-the-large, in-the-many

(10)

Programming in the small/large/many Programming in-the-small:

un programmatore, un modulo = edit-compile-test Programming in-the-large:

progettare software decomposto in più moduli, su più versioni, su più configurazioni

Programming in-the-many:

progettare software <<grande>> richiede la cooperazione ed il coordinamento di più

programmatori, nell’ambito di un ciclo di vita

(11)

Segmentare il ciclo di vita

specifica È la fase di stesura dei requisiti e

di descrizione degli scenari d’uso

(12)

Segmentare il ciclo di vita

specifica

progetto Il progetto determina un’architettura software

capace di soddisfare i requisiti specificati

(13)

Segmentare il ciclo di vita

specifica

progetto

costruzione

La costruzione, o codifica , è una fase complessa che include il testing e

termina con il deployment del sistema

(14)

Segmentare il ciclo di vita

specifica

progetto

costruzione

manutenzione

Manutenzione perfettiva

Manutenzione correttiva

Manutenzione adattiva

(15)

Modello a cascata

Molto dettagliato Molto rigido

Orientato alla

documentazione

Orientato agli standard Adatto per

organizzazioni

gerarchizzate

Rischioso

(16)

Modello a cascata, versione a V

required

operational

capability

engineering

studies

Experimental

development

concept

evaluation

system

decomposition

& allocation

software

requirements

Preliminary

sw analysis

& design

Detailed sw

analysis &

design

coding &

debug

software

cpci testing sw subsystem

integration

& testing sw system

integration

& testing sw/hw

integration

& testing system

performance

testing acceptance test

& evaluation operational

testing &

evaluation operation

& maintenance certificazione

validazione

validazione

validazione

verifica

verifica

verifica

verifica

research phase conceptual phase

design &

development phase

operation

& maintenance phase test & evaluation

phase

System

Requirements

Review

System

Design

Review

Preliminary

design

review

Critical

design review

functional

configuration

audit customer

delivery

audit

(17)

Descrivere un processo

Occorre descrivere/monitorare le attività

Occorre descrivere/assemblare gli strumenti Occorre descrivere/assegnare i ruoli

Occorre descrivere/controllare i gli eventi Occorre descrivere/validare i documenti

Occorre descrivere/verificare i criteri di qualità

Software processes are software, too!

(18)

Descrivere un processo sw

Processo software:

L’insieme strutturato di

attività, eventi, documenti e procedure necessari per la costruzione di un sistema software

Benefici della modellazione dei processo sw:

“Migliora il processo per migliorare il prodotto”

Miglior coordinamento del team di sviluppo

Accumulazione di esperienza

(19)

Modello a spirale (Boehm)

Adatto se requisiti instabili Non lineare

Flessibile

Valuta il rischio

(20)

Modelli orientati alla qualità

I cicli di vita orientati alla qualità si basano di solito su modelli analitici almeno idealmente quantitativi

ISO 9000

Capability Maturity Model (CMM) Six Sigma

Extreme programming

(21)

ISO 9000

ISO9000-3 è ISO9001 per le fabbriche del sw

ISO 9000 Quality management and quality assurance standards;

guidelines for selection and use

ISO 9001 Quality systems model for quality assurance in design, development, production, installation, and servicing

ISO 9002 Quality systems model for quality assurance in production and installation

ISO 9003 Quality systems model for quality assurance in final inspection and test

(22)

Capability Maturity Model

Level Characteristic Key challenges Optimizing

Improve feedback into process Identify process indicators

Managed

(Quantitative) measured process Automatic collection of process data, to analyze and modify the process itself

Defined

(Qualitative) process defined and istituzionalized

Process measurement Process analysis

Quantitative Quality Plans

Repeteable

(Intuitive)

process dependent on individuals

Establish a Processw Group Identify a Process Architecture Introduce SE methods and tools

Initial

Ad hoc/ Chaotic

No cost estimation, planning, management

Project management Project planning

Software Quality Assurance

(23)

La famiglia dei processi sw

orientati alla qualità

(24)

Il Rational Unified Process

• L’avvento di UML ha portato alla definizione

di specifici modelli di processo: il RUP è uno di questi

• Il ciclo di vita RUP è suddiviso in una serie di iterazioni

• Ogni ciclo è composto da una serie di fasi

 Concezione

 Elaborazione

 Costruzione

 Transizione

Concezione Elaborazione Costruzione Transizione

(25)

RUP: concezione (inception)

• Scopo

 Stabilire il business case per il nuovo sistema o per l’aggiornamento di un sistema esistente.

• Prodotti

 I requisiti chiave per il progetto

 Una valutazione iniziale del rischio

• Prodotti opzionali:

 Un prototipo concettuale

 Un primo modello del dominio (completo al 10, 20%)

(26)

RUP: elaborazione

• Scopo

 Analizzare il dominio del problema

 Stabilire un’accurata base architetturale

 Evidenziare gli elementi ad alto rischio del progetto

 Sviluppare un piano per la realizzazione del progetto

Prodotti

Un modello del sistema con il contesto, gli scenari ed il modello del dominio

L’architettura dell’eseguibile

Un piano rivisto dei rischi

Un piano di sviluppo e di testing

Una descrizione della release

Una prima versione dello User Manual

(27)

RUP: costruzione

• Scopo

 Sviluppare incrementalmente un prodotto software completo pronto per essere inserito nella comunità degli utenti

• Prodotti

 Una serie di rilasci degli eseguibili

 Dei prototipi comportamentali

 I risultati dell’assicurazione di qualità

 La documentazione utente e del sistema

(28)

RUP: transizione

• Scopo

 Inserire il prodotto software nella comunità degli utenti

• Prodotti

 Una serie di rilasci degli eseguibili

 I risultati dell’assicurazione di qualità

 Documentazione utente e di sistema aggiornata

 Analisi delle prestazioni del sistema dopo il rilascio

(29)

Il RUP è un modello iterativo

• Una iterazione è un ciclo di sviluppo che porta al rilascio di una parte del prodotto finale

• Ogni iterazione tocca tutti gli aspetti dello sviluppo sw

• Ogni rilascio iterativo è una parte pienamente documentata del sistema finale

Requirements Analysis

Architecture Level

Class Level Implem entation Design

Phases

Process Components Inception Elaboration Construction Transition

(30)

Il processo Microsoft

Pianificazione

• Documento programmatico

• Specifica

• Team management

Sviluppo

• 3-4 Sottoprogetti

Stabilizzazione

• Collaudo interno

• Collaudo esterno

• Golden master

(31)

La filosofia Open Source

Ogni buon prodotto software inizia da un problema personale di uno sviluppatore

I bravi programmatori sanno cosa scrivere. I migliori sanno cosa riscrivere

Quando hai perso interesse in un programma che hai costruito, è tuo dovere passare le consegne ad un successore competente

Trattare gli utenti come sviluppatori è la strada migliore per ottenere debugging efficace e rapidi miglioramenti del codice Distribuisci presto, distribuisci spesso e presta ascolto agli utenti

Stabilita una base di betatester e cosviluppatori

(32)

Il processo Open Source

• Il processo è ”pubblico”

• Le implementazioni sono controllate da un board che revisiona e testa il codice proposto

• modifiche moderate

• build frequenti

• proprietà collettiva

• ”no maintenance”

(33)

Open Source nalla PA?

Da una proposta di legge 20/3/2002

Ø 1. La pubblica amministrazione è tenuta ad utilizzare, nella propria attività, programmi per elaboratore elettronico dei quali possieda il codice sorgente.

2. La pubblica amministrazione, nella scelta dei programmi per

elaboratore elettronico necessari alla propria attività, privilegia programmi appartenenti alla categoria del software libero o, in

alternativa, programmi a codice sorgente aperto. In tale ultimo caso, il fornitore deve consentire la modificabilità del codice sorgente senza costi aggiuntivi per l'amministrazione.

3. La pubblica amministrazione che intenda avvalersi di un software non

(34)

Conclusioni

“Silver bullets” nel processo di sviluppo:

(35)

Conclusioni

“Silver bullets” nel processo di sviluppo:

Il mito del metodo

(36)

Conclusioni

“Silver bullets” nel processo di sviluppo:

Il mito del metodo

Il mito degli strumenti

(37)

Conclusioni

“Silver bullets” nel processo di sviluppo:

Il mito del metodo

Il mito degli strumenti

Il mito della gestione del progetto

(38)

Conclusioni

“Silver bullets” nel processo di sviluppo:

Il mito del metodo

Il mito degli strumenti

Il mito della gestione del progetto

Il mito dell’organizzazione del lavoro

(39)

Conclusioni

“Silver bullets” nel processo di sviluppo:

Il mito del metodo

Il mito degli strumenti

Il mito della gestione del progetto

Il mito dell’organizzazione del lavoro

Il mito della qualità

(40)

Conclusioni

L’impatto della ricerca e degli standard software L’impatto delle nuove tecnologie software

L’impatto delle nuove infrastrutture di comunicazione e coordinamento

L’impatto di nuovi modelli educativi

L’impatto della certificazione professionale

(41)

Fine

Grazie per l’attenzione!

Paolo Ciancarini

[email protected] www.cs.unibo.it/~cianca

Riferimenti

Documenti correlati

Per quanto riguarda i servizi allo sportello, ovvero gli aspetti e/servizi che riguardano indistintamente tutti gli utenti, sia aziende che lavoratori (si tratta, in

Il giudizio medio riportato per i SERVIZI SPECIFICI LAVORATORI – PRESTAZIONI SANITARIE è di 3,17, e quindi oltre ad essere in calo rispetto al dato del 2018 di 3,50, si attesta su

la lavorazione dei materiali grezzi dello scafo e dell’allestimento 4 , il processo quindi si evolve con la prefabbricazione a terra in officina dei blocchi di scafo, del

Quanto agli autonomi, elevate percentuali di mancata risposta si osservano in corrispondenza delle voci relative al reddito da lavoro dipendente (retribuzione corrente e

La presenza di grafite chunky è un difetto caratteristico dei getti in ghisa sferoidale (figura3.2). Questo difetto si manifesta sulla superficie lavorata di una

La nostra priorità è soddisfare il cliente mediante consegne anticipate e continue di software di valore.. Le persone dell’azienda e gli sviluppatori devono quotidianamente lavorare

 Nei casi in cui si può applicare, il modello RAD può portare allo sviluppo del software in tempi brevi rispetto al modello a cascata classico. Moreno Marzolla Ingegneria

Il software non si consuma, ma puo’ diventare obsoleto Mentre l’industria manifatturiera si dirige verso un assemblaggio a componenti, ancora buona parte del software viene