Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo...

55
Corso di Ingegneria del Software 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

Transcript of Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo...

Page 1: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Corso di Ingegneria del Software

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

Page 2: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Obiettivi

• Discutere UP come metodo strutturato

• Presentare fasi, attività, pratiche

• Evidenziare integrazione di diversi metodi

Blocco3ARUPIngegneria del Software 2

Page 3: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3

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

Ingegneria del Software Blocco3ARUP

Page 4: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Blocco3ARUP 4Ingegneria del Software 4

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

Page 5: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

55

Prospettiva dinamica: Fasi RUP

• Inception (Avvio)

– Stabilire caso di business per sistema

• Elaboration

– Comprendere dominio problema e sviluppare e architettura sistema

• Construction

– Progettazione, programmazione e test funzionalità sistema

• Transition

– Stabilire sistema in ambiente di esecuzione

Ingegneria del Software Blocco3ARUP

Page 6: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Blocco3ARUPIngegneria del Software 6

Decisioni e pietre miliari

Page 7: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

77

Prospettiva statica

Flusso di lavoro Descrizione

Business modelling Processi di business modellati con casi di business.

Requirements Si identificano attori che interagiscono con sistema e si sviluppano casi d'uso per modellare requisiti di sistema.

Analysis and design Si crea e documenta modello di progetto, usando modelli architetturali, componenti, a oggetti e di sequenza.

Implementation Componenti sistema implementati e strutturati in sotto-sistemi di implementazione. Generazione automatica di codice da modello può accelerare processo.

Test Processo iterativo congiunto a implementazione. Test di sistema segue completamento implementazione.

Deployment Creazione di rilascio prodotto, distribuzione a utenti e installazione in loro ambiente di lavoro.

Configuration and change management

Flusso di lavoro di supporto per gestire cambiamenti sistema.

Project management Flusso di lavoro di supporto per gestire sviluppo sistema.

Environment Rendere disponibili strumenti software appropriati a squadra sviluppo software.

Ingegneria del Software Blocco3ARUP

Page 8: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

88

Distribuzione nelle fasi

Ingegneria del Software Blocco3ARUP

Page 9: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

99

Contenuto delle iterazioni

• Principio: separation of concerns

• 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 realizzato in singola iterazione

• Ogni iterazione prevede attività in misura diversa

Ingegneria del Software Blocco3ARUP

Page 10: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

10

Inception

Inception Elaboration Construction TransitionRequirements – 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

Fo

cu

sG

oa

ls

Stabilire fattibilità del progetto – creare “proof of concept”/prototipi tecnici

Creare caso di business

Ambito del sistema – catturare requisiti chiave

Identificare rischi critici

RA

ID

Quantità di lavoro per

le attività principali

Ingegneria del Software Blocco3ARUP

Page 11: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

11

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

Ingegneria del Software Blocco3ARUP

Page 12: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

12

Elaboration

Inception Elaboration Construction TransitionRequirements – 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

Fo

cu

sG

oa

ls

Creare una struttura di base architetturale 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

R AI

T

D

Ingegneria del Software Blocco3ARUP

Page 13: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

13

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

Ingegneria del Software Blocco3ARUP

Page 14: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

14

Construction

Inception Elaboration Construction TransitionRequirements – 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

Fo

cu

sG

oa

ls

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

R A

ITD

Ingegneria del Software Blocco3ARUP

Page 15: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

15

Construction - milestone

• Capacità Operativa Iniziale - Condizioni di

soddisfazione:

– Prodotto pronto per beta testing in ambiente

utente

Ingegneria del Software Blocco3ARUP

Page 16: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

16

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

Transition

Inception Elaboration Construction TransitionRequirements – 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

Fo

cu

sG

oa

ls

DI T

Ingegneria del Software Blocco3ARUP

Page 17: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

17

Transition – milestone

• Rilascio prodotto - Condizioni di

soddisfazione:

– Completati beta testing, test di accettazione e

correzione difetti

– Prodotto rilasciato verso comunità utenti

Ingegneria del Software Blocco3ARUP

Page 18: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Take-away per fasi e attività RUP

• Fasi determinate da obiettivi, non da attività

• Attività si ripetono in diverse fasi, in diverse iterazioni

e possono essere svolte concorrentemente

• Iterazioni definite da obiettivi realizzativi, NON DAI

DOCUMENTI DA PRODURRE

• ATTIVITÀ NON SONO SEQUENZIALI

– Ma possono avere dipendenze logiche

Blocco3ARUPIngegneria del Software 18

Page 19: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

1919

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

Ingegneria del Software Blocco3ARUP

Page 20: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

20

Modelli e Flussi di lavoro

Ingegneria del Software Blocco3ARUP

Page 21: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

21

Notazione dei processi

Ingegneria del Software Blocco3ARUP

Page 22: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2222

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

Ingegneria del Software Blocco3ARUP

Page 23: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2323

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

Ingegneria del Software Blocco3ARUP

Page 24: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

24

Flusso di lavoro di requisiti: ruoli

Ingegneria del Software Blocco3ARUP

Page 25: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2525

Flusso di lavoro di requisiti: Artefatti

Ingegneria del Software Blocco3ARUP

Page 26: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

26

Completamento analisi requisiti

• Estensione flusso di lavoro base in UP con

elicitazione e tracciabilità requisiti

find functional requirements

Requirements Engineer find non-functional requirements

trace requirements to use cases

Architect

prioritise requirements

Ingegneria del Software Blocco3ARUP

Page 27: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2727

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

Ingegneria del Software Blocco3ARUP

Page 28: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2828

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

Ingegneria del Software Blocco3ARUP

Page 29: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

2929

Flusso di lavoro di analisi: ruoli

Ingegneria del Software Blocco3ARUP

Page 30: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3030

Flusso di lavoro di analisi: artefatti

Ingegneria del Software Blocco3ARUP

ATTENZIONE: dipendenza logica, non temporale

Page 31: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3131

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

Ingegneria del Software Blocco3ARUP

Page 32: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Analisi nomi verbi

32Ingegneria del Software Blocco3ARUP

Page 33: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Esempi di schede CRC

Blocco3ARUPIngegneria del Software 33

Page 34: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3434

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

Ingegneria del Software Blocco3ARUP

Page 35: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3535

Flusso di lavoro di progetto: ruoli

Ingegneria del Software Blocco3ARUP

Page 36: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3636

Flusso di lavoro di progetto: artefatti

Ingegneria del Software Blocco3ARUP

ATTENZIONE: dipendenza logica, non temporale

Page 37: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3737

Costruzione modello di progetto

• Classi e realizzazioni UC progettate per

sfruttare prodotti e tecnologie utilizzabili

• Raggruppamento classi di progetto in sotto-

sistemi e definizione interfacce fra sotto-sistemi

Ingegneria del Software Blocco3ARUP

Page 38: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3838

Modello di dispiegamento

• Definizione organizzazione fisica sistema come

rete di nodi computazionali

• Verifica implementabilità UC per mezzo di

componenti eseguiti su nodi definiti

Ingegneria del Software Blocco3ARUP

Page 39: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

3939

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

Ingegneria del Software Blocco3ARUP

Page 40: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4040

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

Ingegneria del Software Blocco3ARUP

Page 41: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Ingegneria del Software 4141

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

Blocco3ARUP

Page 42: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4242

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

Ingegneria del Software Blocco3ARUP

Page 43: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Flusso di test: ruoli

Ingegneria del Software 43Blocco3ARUP

Page 44: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

Take-away su flussi di lavoro

• Ogni flusso porta a elaborazione di uno o più

modelli, in maniera iterativa e incrementale

• Modelli in continua evoluzione

• Sviluppo modello porta a rivedere altri modelli

• Analisi, progetto e implementazione possono

essere interfogliati per parti specifiche

• NON CORRISPONDONO A ANALISI, PROGETTO

E IMPLEMENTAZIONE WATERFALL

Blocco3ARUPIngegneria del Software 44

Page 45: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4545

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

Ingegneria del Software Blocco3ARUP

Page 46: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4646

Principi architetturali

• Principio: modularità

• 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

Ingegneria del Software Blocco3ARUP

Page 47: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4747

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

Ingegneria del Software Blocco3ARUP

Page 48: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4848

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

Ingegneria del Software Blocco3ARUP

Page 49: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

4949

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

Ingegneria del Software Blocco3ARUP

Page 50: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5050

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

Ingegneria del Software Blocco3ARUP

Page 51: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5151

Sviluppo a piccoli passi

• Principio: incrementalità

• Pianificazione ridotta

• Specifica, progetto e implementazione ridotti

• Integrazione, test e esecuzione ridotti

• Se soddisfatti, prossimo passo

• Elaborazione feedback fra passo e successivo

Ingegneria del Software Blocco3ARUP

Page 52: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5252

Approccio focalizzato sui rischi

• Rischi determinano iterazioni e priorità

• Valutazione nuove tecnologie

• Soddisfazione requisiti

• Robustezza architettura

• Iterazioni esplorano rischi in ogni fase

Ingegneria del Software Blocco3ARUP

Page 53: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5353

Rischi relativi alle tecnologie

• Distribuzione processi su nodi, sincronizzazione

• Casi d'uso possono dipendere da tecniche

computazionali non ben sviluppate

Ingegneria del Software Blocco3ARUP

Page 54: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5454

Rischi relativi all'architettura

• UC selezionati non definiscono struttura sotto-

sistemi adeguata

• Framework per riuso non adeguati

• Nuove versioni software di qualità insufficiente

Ingegneria del Software Blocco3ARUP

Page 55: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/...Corso di Ingegneria del Software Paolo Bottoni Introduzione allo Unified Process Alcuni lucidi sono tratti dal materiale

5555

Rischi relativi a soddisfazione utente

• Inadeguatezza estrazione requisiti

• Valutazione importanza funzioni

Ingegneria del Software Blocco3ARUP