Sei sulla pagina 1di 12

Ingegneria del Software

Contratti delle Operazioni

Leonardo Mariani

Ingegneria del Software

Slide 19

Analisi dei Requisiti: artefatti prodotti


Sezione del caso dUso Nome del Caso dUso Portata Livello Attore Primario Parti Interessate e Interessi Pre-condizioni Commento Inizia con un verbo Il sistema che si sta progettando Obiettivo utente o sottofunzione Nome dellattore primario A chi interessa questo caso duso e che cosa desidera Che cosa deve essere vero allinizio del caso duso (e vale la pena di dire al lettore) Che cosa deve essere vero se il caso duso viene completato con successo (e vale la pena di dire al lettore) Uno scenario comune di attraversamento del caso duso, di successo e incondizionato Scenari alternativi, di successo e di fallimento Requisiti non funzionali correlati Varianti nei metodi di I/O e nel formato dei dati Frequenza prevista di esecuzione del caso duso Altri aspetti, ad esempio i problemi aperti

Garanzia di successo

Scenario Principale di Successo

Estensioni Requisiti speciali Elenco delle variabili tecnologiche e dei dati Frequenza di ripetizione Varie

C ancora un aspetto non ben documentato


Leonardo Mariani Ingegneria del Software Slide 20

Facciamo un po di ordine
Flussi di operazioni implementati dal sistema Casi duso (scenari), SSD, diagrammi delle attivit COME DOCUMENTARE LA RELAZIONE TRA SCENARI E INFORMAZIONI DI DOMINIO?

Informazioni di dominio che lapplicazione deve poter trattare

Leonardo Mariani

Ingegneria del Software

Slide 21

Facciamo un po di ordine
Flussi di operazioni implementati dal sistema Casi duso (scenari), SSD, diagrammi delle attivit
Lesecuzione di uno scenario implica lesecuzione di numerose operazioni

op1 op2

op3

op4

op5

op6

Informazioni di dominio che lapplicazione deve poter trattare

Leonardo Mariani

Ingegneria del Software

Slide 22

Contratti
z

Operazioni di sistema: il sistema considerato come una scatola nera Interazioni con il sistema sottintendono lesistenza di opportune operazioni per reagire a questi stimoli
Es., gli SSD utilizzano operazioni di sistema

Immaginate il sistema software come una scatola nera a cui potete inviare i comandi: i contratti descrivono quali sono questi comandi e come funzionano.
Leonardo Mariani Ingegneria del Software Slide 23

Relazione tra Documentazione e Software


Documentazione
Casi duso (scenari), SSD, diagrammi delle attivit

Software GUI + CONTROLLER STRATO OPERAZIONALE CON OP DI SISTEMA

Operazioni di Sistema (contratti)

STRATO OO CON ENTITA


Leonardo Mariani Ingegneria del Software Slide 24

Esempio
Contratto CO2: enterItem Operazione: enterItem(itemID: itemID, quantity: integer) Riferimenti: casi duso: Process Sale Pre-condizioni: in corso una vendita Post-condizioni: - stata creata unistanza sli di SalesLineItem - sli stata associata alla Sale corrente - sli.quantity diventata quantity - sli stata associata con un Item la cui ProductDescription ha come valore di ProductDescription.itemID il valore itemID

Leonardo Mariani

Ingegneria del Software

Slide 25

Osservazioni
z

La post-condizione descrive delleffetto di una operazione sugli oggetti del modello di dominio
una post-condizione non ha necessariamente a che fare con il software, es., una associazione creata pu corrispondere ad una nota presa dal cassiere Descrivere le post-condizioni utilizzando le seguenti categorie
1. 2. 3. creazione e cancellazione di istanze modifica di attributi associazioni formate o spezzate

Leonardo Mariani

Ingegneria del Software

Slide 26

Esempio
Contratto CO1: makeNewSale Operazione: makeNewSale() Riferimenti: casi duso: Process Sale Pre-condizioni: Post-condizioni: - stata creata unistanza s di Sale - s stata associata con Register - gli attributi di s sono stati inizializzati
z z

rappresentereste questo contratto? cambiereste qualcosa?

Leonardo Mariani

Ingegneria del Software

Slide 27

Esempio
Contratto CO3: endSale Operazione: endSale() Riferimenti: casi duso: Process Sale Pre-condizioni: in corso una vendita Post-condizioni: - Sale.isComplete diventato true

rappresentereste questo contratto?

Leonardo Mariani

Ingegneria del Software

Slide 28

Relazione tra Documentazione e Software


Documentazione
Casi duso (scenari), SSD, diagrammi delle attivit

Software GUI + CONTROLLER STRATO OPERAZIONALE CON OP DI SISTEMA

Operazioni di Sistema (contratti)

STRATO OO CON ENTITA


Leonardo Mariani Ingegneria del Software Slide 29

Esercizio
z

Definire i contratti di alcune operazioni del gioco della dama

Leonardo Mariani

Ingegneria del Software

Slide 30