Click here to load reader

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

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Modelli di Produzione del SW: dal Ciclo a Cascata all’Open Source. Paolo Ciancarini Dip. Scienze dell’Informazione Università di Bologna. Alcuni eventi. 1968: NATO Conference on Software Engineering 1969: IBM effettua il “software unbundling” 1970: Royce descrive il Waterfall Model - PowerPoint PPT Presentation

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

  • Modelli di Produzione del SW:dal Ciclo a Cascata allOpen SourcePaolo CiancariniDip. Scienze dellInformazioneUniversit di Bologna

  • Alcuni eventi1968: NATO Conference on Software Engineering1969: IBM effettua il software unbundling1970: Royce descrive il Waterfall Model 1976: Lettera aperta di B.Gates sulla pirateria sw1987: Articolo Osterwail1988: Modello a spirale di Boehm1990: Conferenze su Sw Process Modeling1998: Netscape viene distribuito Open Source2002: Proposte di legge su Open Source

  • Il sw un prodotto industrialeLindustria mondiale del sw cresciuta nellultimo 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]

  • Il software un prodotto speciale invisibile e intangibile facilmente duplicabile e distribuibile su reteNon in s brevettabile (ma protetto)Non garantitoViene acquisito su licenzaProprietaria (normale, shareware)Public domainOpen source

  • Perch studiare il processo di produzione del sw?Servono sistemi software pi affidabili e sicuri: il processo di produzione influenza tali qualitIl processo software impatta lorganizzazioneLorganizzazione impatta il processo softwareEsistono parecchi diversi processi di sviluppo, adatti ad organizzazioni, prodotti e mercati diversiAlcuni strumenti sono efficaci solo nellambito di processi i cui scopi sono ben definiti

  • Il processo edit-compile-testedit

  • Il processo edit-compile-testeditcompile

  • Il processo edit-compile-testeditcompiletest

  • Il processo edit-compile-testeditcompiletest 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

  • Programming in the small/large/manyProgramming 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 richiede la cooperazione ed il coordinamento di pi programmatori, nellambito di un ciclo di vita

  • Segmentare il ciclo di vitaspecifica la fase di stesura dei requisiti e di descrizione degli scenari duso

  • Segmentare il ciclo di vitaspecificaprogettoIl progetto determina unarchitettura software capace di soddisfare i requisiti specificati

  • Segmentare il ciclo di vitaspecificaprogettocostruzioneLa costruzione, o codifica, una fase complessa che include il testing e termina con il deployment del sistema

  • Segmentare il ciclo di vitaspecificaprogettocostruzionemanutenzioneManutenzione perfettiva Manutenzione correttiva Manutenzione adattiva

  • Modello a cascataMolto dettagliatoMolto rigidoOrientato alla documentazioneOrientato agli standardAdatto per organizzazioni gerarchizzateRischioso

  • Modello a cascata, versione a V

  • Descrivere un processoOccorre 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!

  • Descrivere un processo swProcesso software:Linsieme 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 prodottoMiglior coordinamento del team di sviluppoAccumulazione di esperienza

  • Modello a spirale (Boehm)Adatto se requisiti instabiliNon lineareFlessibileValuta il rischio

  • Modelli orientati alla qualitI cicli di vita orientati alla qualit si basano di solito su modelli analitici almeno idealmente quantitativi

    ISO 9000Capability Maturity Model (CMM)Six SigmaExtreme programming

  • ISO 9000ISO9000-3 ISO9001 per le fabbriche del sw

    ISO 9000Quality management and quality assurance standards; guidelines for selection and useISO 9001Quality systems model for quality assurance in design, development, production, installation, and servicingISO 9002Quality systems model for quality assurance in production and installationISO 9003Quality systems model for quality assurance in final inspection and testISO 9004Quality management and quality systems elements. Guidelines

  • Capability Maturity Model

    LevelCharacteristicKey challengesOptimizingImprove feedback into processIdentify process indicatorsManaged(Quantitative) measured processAutomatic collection of process data, to analyze and modify the process itselfDefined(Qualitative) process defined and istituzionalizedProcess measurementProcess analysisQuantitative Quality PlansRepeteable(Intuitive) process dependent on individualsEstablish a Processw GroupIdentify a Process ArchitectureIntroduce SE methods and toolsInitialAd hoc/ ChaoticNo cost estimation, planning, managementProject managementProject planningSoftware Quality Assurance

  • La famiglia dei processi sw orientati alla qualit

  • Il Rational Unified ProcessLavvento di UML ha portato alla definizione di specifici modelli di processo: il RUP uno di questiIl ciclo di vita RUP suddiviso in una serie di iterazioniOgni ciclo composto da una serie di fasiConcezioneElaborazioneCostruzioneTransizione

  • RUP: concezione (inception)ScopoStabilire il business case per il nuovo sistema o per laggiornamento di un sistema esistente. ProdottiI requisiti chiave per il progettoUna valutazione iniziale del rischioProdotti opzionali:Un prototipo concettualeUn primo modello del dominio (completo al 10, 20%)

  • RUP: elaborazione ScopoAnalizzare il dominio del problema Stabilire unaccurata base architetturaleEvidenziare gli elementi ad alto rischio del progettoSviluppare un piano per la realizzazione del progettoProdottiUn modello del sistema con il contesto, gli scenari ed il modello del dominio Larchitettura delleseguibileUn piano rivisto dei rischiUn piano di sviluppo e di testingUna descrizione della releaseUna prima versione dello User Manual

  • RUP: costruzioneScopoSviluppare incrementalmente un prodotto software completo pronto per essere inserito nella comunit degli utentiProdottiUna serie di rilasci degli eseguibiliDei prototipi comportamentaliI risultati dellassicurazione di qualitLa documentazione utente e del sistemaIl piano di rilascioCriterio di valutazione per literazione successiva

  • RUP: transizioneScopoInserire il prodotto software nella comunit degli utentiProdottiUna serie di rilasci degli eseguibiliI risultati dellassicurazione di qualitDocumentazione utente e di sistema aggiornataAnalisi delle prestazioni del sistema dopo il rilascio

  • Il RUP un modello iterativoUna 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

  • Il processo MicrosoftPianificazioneDocumento programmaticoSpecificaTeam managementSviluppo3-4 SottoprogettiStabilizzazioneCollaudo internoCollaudo esternoGolden master

  • La filosofia Open SourceOgni 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

  • 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

  • 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.

  • ConclusioniSilver bullets nel processo di sviluppo:

  • ConclusioniSilver bullets nel processo di sviluppo:Il mito del metodo

  • ConclusioniSilver bullets nel processo di sviluppo:Il mito del metodoIl mito degli strumenti

  • ConclusioniSilver bullets nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione del progetto

  • ConclusioniSilver bullets nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione del progettoIl mito dellorganizzazione del lavoro

  • ConclusioniSilver bullets nel processo di sviluppo:Il mito del metodoIl mito degli strumentiIl mito della gestione d

Search related