Progetto di Informatica III



Documenti analoghi
Ingegneria del Software

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti

Rational Unified Process Introduzione

Ciclo di vita del progetto

Ciclo di vita dimensionale

UML e (R)UP (an overview)

4.1 Che cos è l ideazione

Concetti di base di ingegneria del software

Gestione dello sviluppo software Modelli Agili

UML - Unified Modeling Language

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

Introduzione all Agile Software Development

Progettaz. e sviluppo Data Base

introduzione al corso di ingegneria del software

Generazione Automatica di Asserzioni da Modelli di Specifica

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

INGEGNERIA DEL SOFTWARE. Il Corso. Obiettivi. A.A Prof. Giuseppe Visaggio Presentazione

Ciclo di Vita Evolutivo

Piano di gestione della qualità

Modellazione di sistema

Gestione Operativa e Supporto

I I SISTEMI INFORMATIVI INTEGRATI. Baan IV IV - Enterprise e Orgware NOTE

Ciclo di vita del software

Strumenti di modellazione. Gabriella Trucco

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

RUP (Rational Unified Process)

Linee guida per introdurre la progettazione Human-Centred nei bandi di gara per i siti web delle PA

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Corso di Amministrazione di Sistema Parte I ITIL 8

Allegato 2 Modello offerta tecnica

Corso di Amministrazione di Sistema Parte I ITIL 1

Trasparenza e Tracciabilità

La progettazione centrata sull utente nei bandi di gara

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

leaders in engineering excellence

Processi principali per il completamento del progetto

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES

Infrastruttura di produzione INFN-GRID

Pianificazione e progettazione

Configuration Management

12. Evoluzione del Software

Progetto SAP. Analisi preliminare processi e base dati

11. Evoluzione del Software

QUESTIONARIO 3: MATURITA ORGANIZZATIVA

Sequence Diagram e Collaboration Diagram

STAKEHOLDER ENGAGEMENT

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

Object Oriented Programming

Trasformazioni Agili: l importanza di un partner qualificato

Informatica Industriale Modello funzionale Casi d uso

La gestione delle relazioni con il mercato

object oriented analysis

Dalla Business Idea al Business Plan - 1 -

L IMPORTANZA DEL COACHING NELLE AZIENDE

extreme Programming in un curriculum universitario

Indice. Prefazione all edizione italiana

L o. Walter Ambu japs: una soluzione agile (

Overview SAP Workflow. ECORA Srl - Massimo Rastaldi m.rastaldi@eco-ra.it Cell

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Il modello di ottimizzazione SAM

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Un team agile allo sprint. 28 Febbraio 2013 Emiliano Soldi

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

IS Governance. Francesco Clabot Consulenza di processo.

Relazione finale progetto II anno. Bibliotech Il sito della biblioteca scolastica

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Perfare MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI

UniRoma2 - Ingegneria del Software 1 1

Lo Sviluppo delle Capacità

La gestione manageriale dei progetti

Una metodologia per la specifica di software basato su componenti

SPIKE APPLICATION SECURITY: SICUREZZA DIRETTAMENTE ALL INTERNO DEL CICLO DI VITA DEL SOFTWARE

LINEA PROJECT MANAGEMENT

IMPOSTAZIONE E ORGANIZZAZIONE DEL PROGETTO

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Applicazione della norma ISO 9001:2008 al Sistema Gestione per la Qualità del Gruppo Ricerca Fusione. Claudio Nardi Frascati 24 novembre 2009

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

IL PESO DELLE CAPACITA NELL ESERCIZIO DELLE COMPETENZE DISTINTIVE

CONFUSIONE DEI TALENTI O GESTIONE DEI TALENTI?

Report di valutazione Fiona Clark_Live

PROGETTO SOCIALE D INIZIATIVA WIN (WELLFARE DI INIZIATIVA).

Scenario di Progettazione

Modellazione dei dati in UML

Presentazione aziendale. soluzioni, servizi, consulenza

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Strumenti di gestione del ciclo di vita del software

Transcript:

Progetto di Informatica III Sviluppo Agile (Agile Software Development) Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Metodologia agile Agile Manifesto Che cos è l agilità Processi agili (XP, ASD, DSDP, AUP, AMDD) Sviluppo agile tramite AMDD Agile Best Practice (iterazione 0) Envisioning: focus su requisiti e architettura iniziale Modellazione agile di requisiti e architettura di un applicazione (esempi+ esercizi) 1

Metodologia agile In Ingegneria del SW, per metodologia agile (o leggera) o metodo agile si intende un particolare metodo per lo sviluppo del software che coinvolge quanto più possibile il committente, ottenendo in tal modo una elevata reattività alle sue richieste Esistono un certo numero di tali metodologie Agile alliance, una organizzazione no-profit creata allo scopo di diffonderle Manifesto for Agile Software Development Scopriamo modi migliori di sviluppare il software facendolo ed aiutando gli altri a farlo. Da queste esperienze, siamo giunti a privilegiare i seguenti elementi : Gli individui e le loro interazioni rispetto ai processi ed agli strumenti Software funzionante rispetto ad un ampia documentazione La collaborazione col cliente rispetto alla negoziazione dei contratti La pronta risposta ai cambiamenti rispetto all esecuzione di un piano Ovvero, anche se attribuiamo un valore agli elementi riportati a destra, riteniamo più importanti quelli a sinistra Kent Beck et al http://agilemanifesto.org/ 2

Che cos è l Agilità? Reazione efficace (rapida e adattiva) ai cambiamenti Comunicazione efficace fra tutti gli stakeholder Assorbimento del cliente nel team di sviluppo Organizzazione del team che lo ponga in diretto controllo del proprio lavoro Producendo Consegne incrementali e frequenti di software Ogni iterazione è un piccolo progetto a sé stante: pianificazione (planning), analisi dei requisiti, analisi, implementazione, test e documentazione Alla fine di ogni iterazione il team deve rivalutare le priorità di progetto Processi agili Guidati dalle descrizione del cliente di che cosa gli serve (scenario) Basati sull assunzione che i piani hanno vita breve Sviluppano software in maniera iterativa con forte enfasi sulle attività di costruzione Producono e consegnano molteplici incrementi software Si adattano ai cambiamenti 3

Modelli Agili vs Approcci Convenzionali Quando sono da preferire i modelli agili? Nel caso di team di sviluppo piccoli, molto coesi e con elevata esperienza Quando si deve garantire la consegna di un prodotto in tempi estremamente rapidi Le dimensioni del sistema da realizzare possono precludere l applicazione dei modelli agili La realizzazione di sistemi di grandi dimensioni difficilmente può prescindere da una corretta documentazione di tutte le sue parti realizzate e da realizzare Extreme Programming (XP) Il più largamente adottato dei processi agili, proposto inizialmente da Kent Beck Il planning in XP Inizia con la creazione di varie user story Il team agile valuta ciascuna user story e le assegna un costo Le varie user story sono raggruppate per determinare un incremento da consegnare in tempi brevi Si stabilisce la data di consegna Dopo il primo incremento la velocità del progetto viene usata per definire le date delle consegne successive 4

Extreme Programming (XP) Il design in XP Segue il principio KISS (Keep It Simple, Stupid!) Incoraggia l uso di schede CRC Per problemi di design difficoltosi, suggerisce la creazione di spike solutions prototipi operativi per il design di un aspetto Incoraggia il refactoring un raffinamento iterativo del design interno del programma La programmazione in XP Prevede la costruzione di unit test per le varie user story prima di iniziare a implementare il sistema Incoraggia il pair programming (ruoli driver/observer) Il testing in XP Tutti gli unit test vengono eseguiti quotidianamente Test di accettazione (test funzionali) sono definiti dal cliente ed eseguiti per verificare le funzionalità visibili al cliente mettere in grado il cliente di accettare o meno il prodotto SW Extreme Programming (XP) 5

Sviluppo Adattivo di Software (ASD - Adaptive Software Development) Proposto originariamente da Jim Highsmith ASD aspetti caratteristici Planning Mission-driven (guidato dalla mission del cliente) Focus basato sulle componenti I rischi sono esplicitamente presi in considerazione nel planning Enfatizza la collaborazione per la raccolta dei requisiti Enfatizza l apprendimento durante tutto il processo Adaptive Software Development 6

Il metodo DSDM (Dynamic Systems Development Method) Promosso e supportato dal DSDM Consortium (www.dsdm.org) DSDM aspetti caratteristici Simile sotto molti aspetti a XP e/o ASD Nove principi guida Il coinvolgimento attivo degli utenti è indispensabile Il team DSDM deve avere l autonomia per prendere decisioni Ci si focalizza su frequenti consegne incrementali La rispondenza agli scopi del business è il criterio essenziale per l accettazione dei prodotti intermedi Lo sviluppo iterativo ed incrementale è necessario per convergere su una soluzione accurata dal punto di vista del business Tutti i cambiamenti durante lo sviluppo devono essere reversibili I requisiti sono stabiliti ad un alto livello Il testing è integrato durante tutto il ciclo di vita del progetto Continua. E molte altre SCRUM, Feature-driven development ecc.. Agile Model Driven Development AMDD = la versione agile del Model Driven Development Rispetto ad approcci tradizionali alla modellazione del SW, With AMDD you do a little bit of modeling and then a lot of coding, iterating back when you need to instead of creating extensive models before writing source code you instead create agile models which are just barely good enough that drive your overall development efforts Esempi concreti: Agile UP (Unified Process) -- con UML 2 e profili UML OMG Agile MDA (Model Driven Architecture) standard -- con UML 2 e profili UML Feature Driven Development (FDD), Use Case Driven Development (UCDD), ecc.. ma AMDD in genere non prescrive il tipo dei modelli da utilizzare apply the right modeling artifact, use the simplest tools 7

AMDD life cycle Test-driven development (TDD) TDD = TFD + Refactoring TFD = test-first design (in figura) 8

Agile Modeling (AM) AM = processo leggero e practices-based per modellare e documentare, all interno di un qualunque processo agile (XP, DSDM, ecc..) Agile Modeling www.agilemodeling.com/artifacts/ 9

Sviluppo agile con AMDD Agile Best Practice (iterazione 0) Envisioning Attività eseguita durante la prima settimana del progetto L obiettivo è identificare le caratteristiche/requisiti iniziali del sistema Requirements envisioning e una architettura iniziale adatta allo scopo Architecture envisioning con AMDD 10

Requirements Envisioning: An Agile Best Practice www.agilemodeling.com/essays/changema nagement.htm Agile requirements change management process richiede model storming con strumenti che rendono attiva la partecipazione del cliente ad es. con use-case diagram UML, user story e scenari su carta, ecc.. Esempio di use-case diagram UML Decomporre i casi d uso da implementare in release, stabilendo delle priorità Raccogliere i casi d uso in package (<<subsystem>>) 11

Architecture Envisioning: An Agile Best Practice Stabilire l architettura iniziale del sistema che evolverà poi just in time (JIT) durante le iterazioni di sviluppo con delle sessioni di model storming e per riorganizzare il team stesso Modellazione con High-level free-form diagrams which overview how we think we'll build the system Technology diagrams per ragionare sulle componenti software e hardware da impiegare e sulle loro interazioni Ad es. i component/package/deployment diagram UML User interface (UI) flow per ragionare sulla navigazione degli elementi della UI (possibilmente grafica -- GUI), inclusi terminali, report, ecc.. Domain models per business application (simili a ER, UML class diagrams) descrivono una ontologia delle entità e loro relazioni Change cases descrizione testuale di architecture-level requirements relativi ad un cambiamento ad es. nella tecnologia o nella regola di business Esempio di component diagram UML (2.x) 12

Esempio di Deployment diagram UML Esempio di requirements/architecture envisioning University system per l iscrizione di studenti a dei seminari/corsi Requirements envisioning con UML use-case diagram http://www.agilemodeling.com/artifacts/usecasediagram.htm Descrizione testuale dei use-case diagram http://www.agilemodeling.com/artifacts/systemusecase.htm Architecture envisioning con UML Component diagram (Fig. 1) http://www.agilemodeling.com/artifacts/componentdiagram.htm Deployment diagram (Fig. 2) http://www.agilemodeling.com/artifacts/deploymentdiagram.htm 13

Esercizi 1. Requirements envisioning 2. Architecture envisioning di un software per la vendita di biglietti (vedi SW_vendita_biglietti_specifiche_utente.pdf) Riferimenti Libri: Roger S. Pressman, Principi di Ingegneria del software, McGraw- Hill, 2008 James Shore e Shane Warden. The Art of Agile Development. O'Reilly, 2007 The Object Primer 3rd Edition: Agile Model Driven Development with UML 2, Cambridge University Press, 2004 ISBN 0-521-54018-6 Siti web: Manifesto for Agile Software Development http://agilemanifesto.org/ Agile Model Driven Development (AMDD) http://www.agilemodeling.com/essays/amdd.htm Articoli: Scott Ambler's Articles and Other Writings http://www.ambysoft.com/onlinewritings.html 14