Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source
description
Transcript of Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source
![Page 1: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/1.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/2.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/3.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/4.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/5.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/6.jpg)
Il processo edit-compile-test
edit
![Page 7: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/7.jpg)
Il processo edit-compile-test
edit compile
![Page 8: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/8.jpg)
Il processo edit-compile-test
edit compile test
![Page 9: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/9.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/10.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/11.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/13.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/14.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/15.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/16.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/17.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/18.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/19.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/20.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/21.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/22.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/23.jpg)
La famiglia dei processi sw orientati alla qualità
![Page 24: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/24.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/25.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/26.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/27.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/28.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/29.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/30.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/31.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/32.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/33.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/34.jpg)
Conclusioni
“Silver bullets” nel processo di sviluppo:
![Page 35: Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/35.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/36.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/37.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/38.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/39.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062518/56814a79550346895db79081/html5/thumbnails/40.jpg)
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