Acquisti OnLine Progetto Caso di studio Acquisti OnLine Progetto Marina Mongiello
Package E’ una parte logica del sistema Usati per strutturare grandi sistemi Garantiscono modularità In fase di progetto i package sono usati per raggruppare classi Si può distinguere tra: Package di casi d’uso Evoluzione del modello dei casi d’uso Package di classi Evolve durante il progetto Include classi Entity Boundary Control Database Marina Mongiello
Progetto Passo 1 Si consideri il modello dei casi d’uso sviluppato nella fase di analisi. Da un’osservazione più attenta delle specifiche deriva che il modello non è completo. E’ opportuno strutturare i casi d’uso esistenti in package Marina Mongiello
Package dei casi d’uso Prodotti Configurazioni Possibili Mostrare Configurazione Standard Computer Configurazioni Possibili Costruire Configurazione Computer Acquisti Richiedere Ordinare Computer Contatto Venditore Configurato Pagamenti Verificare e Accettare Stampare Fattura Pagamento Cliente Consegne Informare Magazzino Aggiornare su Ordine Stato Ordine Marina Mongiello
Progetto Passo 2 Si consideri il diagramma delle classi sviluppato in fase di analisi Un modello più completo del sistema richiede che siano identificate le classi del programma applicativo. Ciò può essere fatto durante il progetto delle collaborazioni. Individuare i package possibili e le loro principali dipendenze Marina Mongiello
Package di classi <<boundary>> <<boundary>> Configurazione GUI <<boundary>> Ordine GUI <<control>> Inserimento Ordine <<control>> Configura Processo <<entity>> Clienti <<entity>> Ordini <<entity>> Computer <<database>> Gestore Dati <<database>> Connessione <<database>> Schema Marina Mongiello
Componenti E’ una parte fisica del sistema, un programma software Componenti definiti in UML Eseguibile Libreria Tabella File Documento Marina Mongiello
Progetto Passo 3 Si proponga il diagramma dei componenti Poiché la piattaforma d’implementazione non è specificata, l’identificazione di componenti più ridotti (librerie, procedure, etc.) non è effettuata Marina Mongiello
Diagramma dei componenti Visualizzazione Prodotti Lista Prodotti Configurazione Acquisto TracciaturaOrdini Marina Mongiello
Progetto di rilascio Un’architettura in grado si supportare applicazioni web sofisticate include quattro strati di nodi elaborativi Client con browser Usato per visualizzare pagine statiche o dinamiche Server web Gestisce le richieste di pagina dal browser e dinamicamente genera pagine e codice per l’esecuzione sul client Server applicativo Indispensabile per gestire oggetti distribuiti (CORBA, DCOm, Server database Gestisce la memorizzazione e l’accesso multiutente di dati persistenti Marina Mongiello
Progetto Passo 4 Proporre il diagramma di deployment valutando la necessità di un server applicativo Marina Mongiello
Diagramma di deployment Client Browser Server Web richiesta pagine richieste database Server Database Marina Mongiello
Progetto Passo 5 Considerare il documento di analisi “ Ordinare Computer Configurato” ed elaborare una specifica del caso d’uso Marina Mongiello
Specifica del documento del caso d’uso Marina Mongiello
Diagramma di collaborazione E’ simile al diagramma di sequenza Sviluppato preferibilmente nella fase di progetto Mostra esplicitamente le relazioni statiche tra oggetti lungo cui i messaggi possono propagarsi Hanno una parte strutturale mostra l’aspetto statico della collaborazione È un sottoinsieme del diagramma delle classi comprendente le classi che devono collaborare È elaborato con i dettagli implementativi Comportamentale Mostra l’aspetto dinamico della collaborazione: come gli elementi statici collaborano tramite interazioni Marina Mongiello
Progetto Passo 6 Si consideri il documento di progetto “ordinare computer configurato” e progettare l’aspetto strutturale della collaborazione che realizza il caso d’uso, basandosi sul flusso di eventi descritto. Marina Mongiello
Collaborazione Comportamentale <<modulo>> b_ModuloClientOrdine <<pagina client>> B_PaginaClientConfigurazione titolo descrizione spedizione contatto fattura pagamento venditore <<pulsante>> Cancella <<pulsante>>Invia <<pulsante>> Acquista <<pagina client>> b_PaginaClientOrdine [on Acquista] <<interfaccia db>> d_Transazione aggiornare() nuovaPaginaClientOrdine() ordineIncompleto() cookie_trans iniziaTransazione() commitTransazione() rollbackTransazione() <<entity>> e_Ordine numero_ordine data_ordine un_ordine [on Invia] <<entity>> e_Configurazione una_configurazione <<pagina server>> c_PaginaServerOrdine nuovoOrdine() cancellaOrdine() un_ordine un_ordine un_ordine un_pagamento <<entity>> e_Cliente nuovaPaginaServerOrdine() leggereClient() scrivereOrdine() <<entity>> e_Pagamento numero_cliente nuovoCliente() aggiornaCliente() emailCliente() Marina Mongiello nuovoPagamento()
Progetto Passo 7 Si consideri il documento di progetto “ordinare computer configurato” e diagramma di collaborazione strutturale, progettare l’aspetto comportamentale della collaborazione che realizza il caso d’uso, basandosi sul flusso di eventi descritto e sul diagramma delle classi Marina Mongiello
Collaborazione comportamentale [on Invia] incompletoOrdine [on Acquista] nuovaPaginaClientOrdine :b_Pagina ClientOrdine :b_Pagina ClientConfigurazione [on Cancella] aggiornare [oltre 15 minuti] rollback Transazione ottenereOIDConf(out OIDConf) :b_Modulo ClientOrdine :d_Transazione :b_Pagina ServerOrdine commitTransazione iniziaTransazione [on Invia] nuovoOrdine cancellaOrdine nuovoOrdine(in OIDConf) :e_Ordine lega(in OIDConf) nuovoPagamento NuovoCliente :e_Configurazione :e_Cliente :e_Pagamento emailCliente Marina Mongiello