Corso di Ingegneria del Software

Documenti analoghi
UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Unified Modeling Language (UML)

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

INGEGNERIA DEL SOFTWARE

Analisi e Progettazione del Software

Gestione dello sviluppo software Modelli Base

3. Ciclo di Vita e Processi di Sviluppo

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Unified Process - introduzione

Il PROCESSO UNIFICATO

UML I diagrammi implementativi

Casi d uso. Marina Zanella - Ingegneria del Software UML: Casi d uso 1

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_2 V3.

Corso di Ingegneria del Software

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Classi. Meccanismi di Rappresentazione e Scoperta. Andrea Polini

1. UML 2 ed il Processo Unificato

Introduzione ai casi d uso

1. Ciclo di Vita e Processi di Sviluppo

Il Project Management nei progetti IT. La fase di Analisi. Ing. Giulio Destri. Università degli Studi di Parma Corso di Laurea in Informatica

Corso di Ingegneria del Software. Modelli di produzione del software

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

Corso di Ingegneria del Software. Modelli di produzione del software

2. Modellazione dei casi d uso

La fase di Progettazione

Materiale didattico. Sommario

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Concetti fondamentali. Laboratorio di Ingegneria del Software Andrea Bei

UML2. Attività di Progettazione. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

Progettazione Logica e Modello Realizzativo

Ingegneria del software

Lo sviluppo del progetto informatico

Allegato 1 Descrizione profili professionali

Progettazione Concettuale e Modello di Progetto

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

2. Finalità generali previste dalle indicazioni nazionali

CODESYS Test Manager: Incrementare la qualità del software con unità di test CODESYS Users' Conference 2014, Fabio Filipponi

Presentazione corso. Contenuti e diagramma di Pert. Definizione lista di spedizione. UML

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

Rational Unified Process Introduzione

In passato, occuparsi di informatica era sinonimo di programmare computer

Ingegneria del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Lab ISW 2012/2013: Progetto

Esempio rischi della specifica dei requisiti

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Web Application Engineering

Correzione degli errori

Ciclo di vita per lo sviluppo di software sicuro

Introduzione...xv. Giorno 1 - Una panoramica sui concetti principali...1

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A5_3 V2.1. Controllo Qualità. Ispezioni

Consegna continua: automazione della pipeline di distribuzione

Il modello di processo RUP (Rational Unified Process) Prof. Paolo Ciancarini Corso di Ingegneria del Software CdL Informatica Università di Bologna

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A6_3 V2.1. Gestione

Configuration Management secondo l ISO

UML e (R)UP (an overview)

Analisi e Progettazione del Software

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

ORGANIZZAZIONE Un modello organizzativo per l efficacia e l efficienza dello Studio

Introduzione. A Tecnologie 1

Architetture di Data Warehouse. PDF created with pdffactory trial version

Politecnico di Milano. Progetto di Ingegneria del Software 2 MPH - Manage Project Homework

Corso di Ingegneria del Software. Modelli di produzione del software

I Diagrammi di Flusso OO

Windchill ProjectLink Guida al curriculum

Fondamenti di Informatica II 21. Standard UML

Sviluppo iterativo ed evolutivo

Modelli di Ciclo di Vita del Software (CVS)

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML UNIFIED MODELING LANGUAGE

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete

Progettazione software

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

ITI M. FARADAY. Programmazione a. s

Ingegneria del Software

Forum Architetture per la Sanità Progettare e costruire spazi per la salute

Progetto sito web Gigli Elisa

PROGETTISTA DI APPLICAZIONI WEB E MULTIMEDIALI

Metodologia di lavoro: PCM & GOPP

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo

SCD IS. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Modelli di ciclo di vita.

Configuration Change Release Management

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Ciclo di vita del progetto

Obblighi di controllo dei Fornitori esterni. EUDA Applicazioni sviluppate dall utente finale

Verifica e Validazione del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Piano di gestione della qualità

Giovanni A. Cignoni 1

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Transcript:

Corso di Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale di supporto a UML2 and the Unified Process, di Arlow e Neustadt Clear View Training 2010 v2.6

Obiettivi Discutere UP come metodo strutturato Organizzato in fasi e attività Guidato dai casi d uso Centrato sull architettura Focalizzato sui rischi 2

Metodi strutturati Approcci sistematici a sviluppo progetto software Documentazione usa insieme modelli grafici Modelli possibili Modello oggetti Modello di interazione Modello di transizioni di stato Modello strutturale Modello flusso di dati 3

Rational Unified Process Derivato da lavoro su UML e processi associati Normalmente descritto da 3 prospettive Prospettiva dinamica: mostra fasi in tempo Prospettiva statica: mostra attività processo Prospettiva pratiche: suggerisce buone pratiche Caratteristiche: Processo guidato da casi d uso Processo centrato su architettura Approccio focalizzato sui rischi 4

Prospettiva dinamica: Fasi RUP Phase iteration Inception (Avvio) Stabilire caso di business per sistema Elaboration Sviluppare e comprendere dominio problema e architettura sistema Construction Progettazione, programmazione e test sistema Transition Inception Elaboration Construction Transition Stabilire sistema in ambiente di esecuzione Obiettivi specifici: 5

Prospettiva statica Flusso di lavoro Business modelling Requirements Analysis and design Implementation Test Deployment Configuration and change management Project management Environment Descrizione Processi di business modellati con casi di business. Si identificano attori che interagiscono con sistema e si sviluppano casi d'uso per modellare requisiti di sistema. Si crea e documenta modello di progetto, usando modelli architetturali, componenti, a oggetti e di sequenza. Componenti sistema implementati e strutturati in sotto-sistemi di implementazione. Generazione automatica di codice da modello può accelerare processo. Processo iterativo congiunto a implementazione. Test di sistema segue completamento implementazione. Creazione di rilascio prodotto, distribuzione a utenti e installazione in loro ambiente di lavoro. Flusso di lavoro di supporto per gestire cambiamenti sistema. Flusso di lavoro di supporto per gestire sviluppo sistema. Rendere disponibili strumenti software appropriati a squadra sviluppo software. 6

Distribuzione nelle fasi 7

Contenuto delle iterazioni In Inception e Elaboration Definire ambito progetto, eliminare rischi critici, creare architettura di base Iterazioni producono raffinamenti successivi In Construction Iterazioni producono incrementi Progetto composto da mini-progetti Mini-progetto contenuto di iterazione Ogni iterazione prevede flussi di lavoro 8

Inception Quantità di lavoro per le attività principali R A D I Focus Goals Requirements stabilire caso di business e ambito. Catturare requisiti fondamentali. Analysis stabilire la fattibilità Design progettare proof of concept o prototipi tecnici Implementation costruire proof of concept o prototipo tecnico Test generalmente non applicabilie Stabilire fattibilità del progetto creare proof of concept /prototipi tecnici Creare caso di business Ambito del sistema catturare requisiti chiave Identificare rischi critici Inception Elaboration Construction Transition 9

Inception - milestone Obiettivi ciclo di vita Condizioni di soddisfazione: Ambito sistema definito Requisiti chiave sistema catturati. Definiti e concordati con stakeholder Esiste visione architetturale, schematica Valutazione rischi Caso di business Confermata fattibilità Stakeholder d accordo con obiettivi progetto 10

Elaboration R A D I T Focus Goals Requirements raffinare ambito del sistema e requisiti Analysis stabilire cosa costruire Design creare struttura di base architetturale stabile Implementation costruire la struttura di base architetturale Test provare la struttura di base architetturale Inception Elaboration Construction Transition Creare una struttura di base architetturare eseguibile Raffinare valutazione dei rischi e definire attributi di qualità (tasso di difetti, etc.) Catturare casi d uso fino a 80% dei requisiti funzionali Creare un piano con dettaglio sufficiente per la fase di costruzione Formulare un offerta che includa costi per risorse, tempo, equipaggiamento, personale 11

Elaboration - milestone Architettura per ciclo di vita: Condizioni di soddisfazione Creata base di riferimento architetturale, resistente, robusta ed eseguibile Valutazione rischi aggiornata Creato piano di progetto che permetta di formulare offerta realistica Caso di business verificato rispetto a piano Stakeholder d accordo su continuare 12

Construction I R A D T Focus Goals Requirements scoprire requisiti eventualmente mancanti Analysis completare il modello di analisi Design completare il modello di progetto Implementation costruire la Capacità Operativa Iniziale Test provare la Capacità Operativa Iniziale Completare identificazione, descrizione e realizzazione dei casi d uso Completare analisi, progetto, implementazione e prova Mantenere l integrità dell architettura di sistema Revisionare la valutazione del rischio Inception Elaboration Construction Transition 13

Construction - milestone Capacità Operativa Iniziale - Condizioni di soddisfazione: Prodotto pronto per beta testing in ambiente utente 14

Transition I T D Focus Goals Requirements non applicabile Analysis non applicabile Design modificare il progetto se emergono problemi durante beta test Implementation adattare il software per il sito utente. Correggere errori scoperti Test eseguire beta test e prova di accettazione presso l utente Inception Elaboration Construction Transition Correggere difetti Preparare ambiente utente per il nuovo software e adattare il software per operare presso l utente Modificare software se emergono problemi non previsti Creare manuale utente e altra documentazione Fornire consulenza al cliente Condurre revisione post-progetto 15

Transition milestone Rilascio prodotto - Condizioni di soddisfazione: Completati beta testing, test di accettazione e correzione difetti Prodotto rilasciato verso comunità utenti 16

Buone pratiche RUP Sviluppare software iterativamente Gestire requisiti Casi d'uso e Supplementary Requirement Specification Usare architetture basate su componenti Modellare software visivamente Verificare qualità software Controllare cambiamenti software 17

Modelli e Flussi di lavoro 18

Notazione dei processi 19

Processo guidato da casi d uso Molti tipi di utenti: attori (anche non umani) Caso d'uso: sequenza di azioni effettuate da sistema per produrre risultati di valore per attore Modello formato da attori e casi d'uso sistema 20

Cattura dei casi d'uso Attività di raccolta requisiti Modello UC rappresenta requisiti funzionali Diagramma UC descrive parte modello e mostra associazioni fra casi e attori Attori definiscono ambiente sistema Flussi di eventi descrivono comportamenti desiderati Requisiti non funzionali associabili a UC Performance, disponibilità, accuratezza 21

Flusso di lavoro di requisiti: ruoli 22

Flusso di lavoro di requisiti: Artefatti 23

Completamento analisi requisiti find functional requirements Requirements Engineer find non-functional requirements prioritise requirements Architect trace requirements to use cases Estensione flusso di lavoro base in UP con elicitazione e tracciabilità requisiti 24

Evoluzione del modello dei casi d'uso Da modello casi d'uso a modello analisi Da modello analisi a modello progetto Classificatori e realizzazioni casi d'uso Classificatori hanno strutture e operazioni, descritti da statechart 25

Modello di analisi Descrizione dettagliata requisiti Raffinamento casi d'uso: collaborazioni fra classificatori concettuali Permette creazione di architettura Ha carattere temporaneo (prime iterazioni) Per grandi sistemi mantenuto per tutto progetto 26

Flusso di lavoro di analisi: ruoli 27

Flusso di lavoro di analisi: artefatti 28

Costruzione modello di analisi Procedimento per ogni UC Integrazione analisi nomi-verbi Responsabilità UC date a classi Classi con responsabilità in diversi UC Ogni classe deve soddisfare ogni ruolo di collaborazione definito (Possibile utilizzo schede CRC) Realizzazione UC Collaborazione fra elementi 29

Analisi nomi verbi 30

Esempi di carte CRC 31

Modello di progetto Modello gerarchico Esistono relazioni che attraversano gerarchia Realizzazioni UC tracciabili a realizzazioni in modello di analisi Realizzazioni UC come stereotipi di collaborazioni Riferimento per implementazione 32

Flusso di lavoro di progetto: ruoli 33

Flusso di lavoro di progetto: artefatti 34

Costruzione modello di progetto Classi e realizzazioni UC progettate per sfruttare prodotti e tecnologie utilizzabili Raggruppamento classi di progetto in sottosistemi e definizione interfacce fra sotto-sistemi 35

Modello di dispiegamento Definizione organizzazione fisica sistema come rete di nodi computazionali Verifica implementabilità UC per mezzo di componenti eseguiti su nodi definiti 36

Flusso di implementazione Pianificare integrazioni di sistema per ogni iterazione (incrementale) Distribuire sistema, componenti eseguibili su nodi in modello di dispiegamento Implementare classi e sottosistemi di progetto. Classi file di codice sorgente Fare test unitari su componenti 37

Modello di implementazione Classi progettate implementate come insiemi di file componenti (codice sorgente) Classi compilate e collegate per produrre eseguibili Ordine implementazione/integrazione basato su UC Importanza della prioritizzazione 38

Implementazione nelle fasi Fuoco di fase di costruzione Svolta anche durante elaborazione per creare base architetturale Durante transizione per gestire difetti riscontrati durante beta test Aspetti minimi in inception relativi a prototipi di interfaccia 39

Flusso di test Verifica che sistema implementi funzionalità descritte in UC e soddisfi requisiti di sistema Modello di test formato da casi di test Collezione di ingressi, condizioni di esecuzione, risultati Tracciabilità a casi d'uso Black box: test definiti da casi d'uso White box: test definiti da realizzazioni 40

Flusso di test: ruoli 41

Processo centrato sull'architettura Architettura software comporta decisioni su: Organizzazione sistema Elementi strutturali, interfacce, comportamento in collaborazioni Composizione elementi in sottosistemi più grandi Stile architetturale struttura alto livello, meccanismi chiave Centrata su come, non su cosa Progetto architetturale e progetto funzionale 42

Principi architetturali Esempio di Ericcson AXE Sistema di switching di telecomunicazioni 1970/oggi, 145 paesi, 180M linee, > 6000 scambi Modularità funzionale: blocchi di classi in base a funzioni Separazione progetto interfacce/sottosistemi di servizio Proiezione sottosistemi su componenti implementazione Basso accoppiamento fra sottosistemi: segnali 43

Influenze sull'architettura Casi d'uso significativi per architettura (10-15%) Vincoli e facilitatori Software disponibile (di sistema, legacy, middleware), standard e politiche, requisiti non funzionali, distribuzione Esperienza Architetture precedenti, pattern architetturali 44

Sviluppo dell'architettura Iterativo in fase di elaborazione Decisione su disegno ad alto livello Aspetti generali dipendenti da dominio, scelta nodi, selezione di vincoli e abilitatori Aspetti specifici applicazione Funzionalità completa solo quando architettura stabile 45

Viste architetturali Per modello di progetto Sottosistemi principali, interfacce, classi principali, classi attive, cicli di vita Per modello di dispiegamento Struttura fisica in termini di nodi connessi Assegnazione di componenti eseguibili a nodi Per modello di implementazione Distinzione responsabilità, e.g. client-server 46

Processo iterativo e incrementale Sequenza di pietre miliari Iterazioni e incrementi per ogni fase Criteri essenziali Inception - adeguatezza (viability) Elaboration - realizzabilità Construction - operazionalità iniziale Transition - operazionalità finale 47

Sviluppo a piccoli passi Pianificazione ridotta Specifica, progetto e implementazione ridotti Integrazione, test e esecuzione ridotti Se soddisfatti, prossimo passo Elaborazione feedback fra passo e successivo 48

Approccio focalizzato sui rischi Rischi determinano iterazioni e priorità Valutazione nuove tecnologie Soddisfazione requisiti Robustezza architettura Iterazioni esplorano rischi in ogni fase 49

Rischi relativi alle tecnologie Distribuzione processi su nodi, sincronizzazione Casi d'uso possono dipendere da tecniche computazionali non ben sviluppate 50

Rischi relativi all'architettura UC selezionati non definiscono struttura sottosistemi adeguata Framework per riuso non adeguati Nuove versioni software di qualità insufficiente 51

Rischi relativi a soddisfazione utente Inadeguatezza estrazione requisiti Valutazione importanza funzioni 52