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

Modelli di Produzione del SW:

dal Ciclo a Cascata all’Open Source

Paolo CiancariniDip. Scienze dell’InformazioneUniversità di Bologna

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

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

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

Il sw è un prodotto industrialeL’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]

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

Il software è un prodotto speciale

È invisibile e intangibileÈ facilmente duplicabile e distribuibile su reteNon è in sé brevettabile (ma protetto)Non è garantitoViene acquisito su licenza• Proprietaria (normale, shareware)• Public domain• Open source

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

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 processi i cui scopi sono ben definiti

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

Il processo edit-compile-test

edit

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

Il processo edit-compile-test

edit compile

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

Il processo edit-compile-test

edit compile test

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

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

• Ingestibile durante la manutenzione

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

Programming in the small/large/many

Programming in-the-small: un programmatore, un modulo = edit-compile-testProgramming in-the-large:progettare software decomposto in più moduli, su più versioni, su più configurazioniProgramming in-the-many: progettare software <<grande>> richiede la cooperazione ed il coordinamento di più programmatori, nell’ambito di un ciclo di vita

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

Segmentare il ciclo di vita

specifica È la fase di stesura dei requisiti e di descrizione degli scenari d’uso

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

Segmentare il ciclo di vita

specifica

progettoIl progetto determina un’architettura software capace di soddisfare i requisiti specificati

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

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

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

Segmentare il ciclo di vita

specifica

progetto

costruzione

manutenzioneManutenzione perfettivaManutenzione correttivaManutenzione adattiva

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

Modello a cascata

Molto dettagliatoMolto rigidoOrientato alladocumentazioneOrientato agli standardAdatto perorganizzazioni gerarchizzateRischioso

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

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 phaseconceptual 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

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

Descrivere un processo

Occorre descrivere/monitorare le attività Occorre descrivere/assemblare gli strumenti Occorre descrivere/assegnare i ruoliOccorre descrivere/controllare i gli eventiOccorre descrivere/validare i documentiOccorre descrivere/verificare i criteri di qualità

Software processes are software, too!

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

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 sviluppoAccumulazione di esperienza

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

Modello a spirale (Boehm)

Adatto se requisiti instabiliNon lineareFlessibileValuta il rischio

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

Modelli orientati alla qualità

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

ISO 9000Capability Maturity Model (CMM)Six SigmaExtreme programming

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

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

ISO 9004 Quality management and quality systems elements. Guidelines

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

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 measurementProcess analysisQuantitative Quality Plans

Repeteable

(Intuitive) process dependent on individuals

Establish a Processw GroupIdentify a Process ArchitectureIntroduce SE methods and tools

Initial Ad hoc/ ChaoticNo cost estimation, planning, management

Project managementProject planningSoftware Quality Assurance

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

La famiglia dei processi sw orientati alla qualità

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

Il Rational Unified Process

• L’avvento di UML ha portato alla definizionedi 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

tempo

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

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%)

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

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

progettoProdotti

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

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

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 Il piano di rilascio Criterio di valutazione per l’iterazione

successiva

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

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

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

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

Project ManagementProcess Configuration

RequirementsAnalysis

ArchitectureLevel

Class Level

Implementation

Test

Design

preliminaryiteration(s)

iteration#1

iteration#2...

iteration#n

iteration#n+1

iteration#n+2...

iteration#m

Phases

Process Components

Iterations

i teration#m+1...

Elaboration Construction TransitionInception

Supporting Activities

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

Il processo Microsoft

Pianificazione• Documento programmatico• Specifica• Team management

Sviluppo• 3-4 Sottoprogetti

Stabilizzazione• Collaudo interno• Collaudo esterno• Golden master

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

La filosofia Open Source

Ogni buon prodotto software inizia da un problema personale di uno sviluppatoreI bravi programmatori sanno cosa scrivere. I migliori sanno cosa riscrivereQuando hai perso interesse in un programma che hai costruito, è tuo dovere passare le consegne ad un successore competenteTrattare gli utenti come sviluppatori è la strada migliore per ottenere debugging efficace e rapidi miglioramenti del codiceDistribuisci presto, distribuisci spesso e presta ascolto agli utentiStabilita una base di betatester e cosviluppatori sufficientemente ampia, ogni problema verrà rapidamente definito e qualcuno troverà la soluzione adeguata

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

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”

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

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 libero, deve motivare analiticamente la ragione della scelta.

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

Conclusioni

“Silver bullets” nel processo di sviluppo:

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

Conclusioni

“Silver bullets” nel processo di sviluppo:Il mito del metodo

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

Conclusioni

“Silver bullets” nel processo di sviluppo:Il mito del metodoIl mito degli strumenti

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

Conclusioni

“Silver bullets” nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione del progetto

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

Conclusioni

“Silver bullets” nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione del progettoIl mito dell’organizzazione del lavoro

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

Conclusioni

“Silver bullets” nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione del progettoIl mito dell’organizzazione del lavoroIl mito della qualità

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

Conclusioni

L’impatto della ricerca e degli standard softwareL’impatto delle nuove tecnologie softwareL’impatto delle nuove infrastrutture di comunicazione e coordinamentoL’impatto di nuovi modelli educativiL’impatto della certificazione professionale

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

Fine

Grazie per l’attenzione!

Paolo [email protected]

www.cs.unibo.it/~cianca


Recommended