OOA Esercizi UniRoma2 - Ingegneria del Software 1 1
Sistema SW per Online Shopping Requisiti Utente Il sistema software deve supportare l azienda X che vende computer online I clienti che accedono al sistema possono scegliere di acquistare un computer in configurazione standard o costruire una specifica configurazione selezionando i singoli elementi (ad es.: processore, disco, RAM, etc.) Per effettuare l ordine, il cliente deve fornire le informazioni necessarie per la spedizione e per il pagamento Il cliente può usare il sistema per verificare online lo stato dell ordine Il computer nella configurazione scelta viene inviato al cliente assieme alla relativa fattura (se richiesta) UniRoma2 - Ingegneria del Software 1 2
Esercizio Sviluppare la specifica secondo OOA 1. Si produca inizialmente il modello dei dati costruendo un class diagram in cui le operazioni di ciascuna classe possono essere omesse. Per ciascuna associazione devono invece essere specificate le molteplicità, mentre i nomi di ruolo possono essere omessi. 2. Successivamente, si produca una porzione di modello comportamentale identificando attori e casi d uso e specificando la descrizione di un caso d uso a scelta, sia in forma testuale che usando un acitivity diagram. 3. A partire dal caso d uso identificato, si produca un sequence diagram che mostri una possibile interazione tra gli oggetti del sistema. 4. Infine, a partire dal sequence diagram, si produca un raffinamento del class diagram iniziale, identificando le operazioni ed eventuali classi, associazioni o attributi aggiuntivi. UniRoma2 - Ingegneria del Software 1 3
Class Diagram Cliente -id : String -nome : String -indirizzo : String -telefono : String -email : String Ordine 1..1 0..* -numero : String -data : Date -indirizzo_spedizione : String -totale : Double -stato : String -nome_impiegato : String 1..1 Fattura -numero : String -data : Date -totale : Double 0..1 0..* 1..* ElementoConfigurazione -tipo : String -descrizione : String Computer -name : String -prezzo : Double 1..1 1..1 Pagamento -metodo : String -data_ricezione : Date -totale_pagato ComputerConfigurato -descrizione : String ComputerStandard -codice : String UniRoma2 - Ingegneria del Software 1 4
Use Case Diagram Visualizzazione Configurazione Standard Costruzione Configurazione Computer Acquisto Computer Configurato Accettazione Pagamento <<extend>> Visualizzazione Stato Ordine Cliente Richiesta Contatto Impiegato Aggiornamento Stato Ordine Stampa Fattura Magazzino Notifica Ordine Impiegato UniRoma2 - Ingegneria del Software 1 5
Use Case Acquisto Computer Configurato - Descrizione testuale - UniRoma2 - Ingegneria del Software 1 6
Use Case Acquisto Computer Configurato - Descrizione flusso con activity diagram - Visualizza configurazione corrente Ricevi richiesta d'acquisto [timeout] Visualizza form d'acquisto [incompleti] Richiedi dettagli acquisto Memorizza ordine d'acquisto Informa Magazzino Invia email al Cliente UniRoma2 - Ingegneria del Software 1 7
Sequence Diagram - Visualizza configurazione corrente - «boundary» fc : FinestraConfigurazione comp : ComputerConfigurato parte : ElementoConfigurazione : Cliente apri() getconfigurazione() * getelemento(out elemento) visualizzacomputer(in set_elementi) UniRoma2 - Ingegneria del Software 1 8
Raffinamento Class Diagram «boundary» FinestraConfigurazione +apri() +visualizzacomputer(in set_elementi) ComputerConfigurato -descrizione : String +getconfigurazione() ElementoConfigurazione -tipo : String -descrizione : String +getelemento(out elemento) UniRoma2 - Ingegneria del Software 1 9
Altri esercizi Ripetere l esercizio sviluppando i requisiti utente di altri sistemi software (si possono inventare ipotizzando di analizzare lo specifico dominio applicativo...) Ad esempio: Gestione filiali di una banca Gestione contratti di una compagnia di assicurazione Gestione scommesse sportive Gestione corsi universitari Gestione posta elettronica Etc. UniRoma2 - Ingegneria del Software 1 10