Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML"

Transcript

1 Luca Cabibbo Analisi e Progettazione del Software Esempi di progettazione a oggetti con i pattern GRASP Capitolo 18 marzo 2013 Ogni cosa dovrebbe essere fatta nel modo più semplice possibile, ma non più semplice (di quanto sia possibile)! Albert Einstein 1 *** AVVERTENZA *** I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo 2

2 Introduzione Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML Alcuni punti chiave l assegnazione di responsabilità e la progettazione delle collaborazioni sono passi molto importanti e creativi della progettazione divieto di magia l assegnazione di responsabilità e la progettazione delle collaborazioni può essere spiegata razionalmente e studiata 3 Divieto di magia 4

3 18.1 Realizzazioni di casi d uso In UP, la portata di una sessione di progettazione è caratterizzata in termini di realizzazioni di casi d uso Una realizzazione di caso d uso descrive, nel modello di progetto, come viene realizzato un particolare caso d uso, in termini di oggetti che collaborano [RUP] progetto relativo a uno o più scenari di un caso d uso illustrato da diagrammi di interazione realizzazione di caso d uso è un termine di UP enfatizza la connessione forte tra requisiti e progetto: il progetto deve soddisfare i requisiti per che cosa devo progettare? operazioni di sistema altre operazioni interrogazioni 5 UP: Influenza tra elaborati Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model inspiration for names of some software domain objects Requirements starting events to design for, and detailed postcondition to satisfy Cashier Process Sale Use Case Diagram Operation: enteritem( ) Post-conditions: -... Operation Contracts ideas for the postconditions use case names system operations : Register : Cashier Process Sale 1. Customer arrives Cashier enters item identifier. Use Case Text system events make NewSale() enteritem (id, quantity) : System System Sequence Diagrams Design Model functional requirements that must be realized by the objects : ProductCatalog Glossary Supplementary Specification item details, formats, validation non-functional requirements domain rules : Sale Design enteritem (itemid, quantity) d = getproductdescription(itemid) addlineitem( d, quantity ) Register makenewsale() enteritem() * 1 ProductCatalog getproductdescription() 6

4 18.2 Commento sugli elaborati Realizzazione di caso d uso per ciascuna operazione di sistema va creato un diagramma di interazione che mostra la gestione del messaggio trovato relativo a tale evento/operazione di sistema nello studio di caso POS, per le operazioni di sistema makenewsale, enteritem, endsale, make(cash)payment con attenzione soprattutto alla gestione della trasformazione (cambiamento di stato) causata dall operazione di sistema eventuali altri diagrammi di interazione per risposte (interrogazioni) significative del sistema ad esempio, nello studio di caso, per l interrogazione gettotal va inoltre creato in parallelo un diagramma delle classi di progetto che descrive/riassume le scelte strutturali di progetto classi e interfacce software, con le loro proprietà strutturali (attributo e associazioni) e comportamentali (operazioni) 7 Diagrammi di interazione Usando i diagrammi di comunicazione crea un diagramma per ciascun evento/operazione di sistema Non un unico grosso diagramma! 8

5 Diagrammi di interazione Usando i diagrammi di sequenza crea un diagramma per ciascun evento/operazione di sistema Non un unico grosso diagramma! 9 Casi d uso e realizzazioni di casi d uso Una realizzazione di caso d uso può essere basata direttamente sul testo del caso d uso insieme agli altri elaborati per i requisiti Scenario principale di successo (o flusso di base): 1. Il Cliente arriva alla cassa POS con gli articoli e/o i servizi da acquistare. 2. Il Cassiere inizia una nuova vendita. 3. Il Cassiere immette il codice identificativo dell articolo. 4. Il Sistema registra la riga di vendita per l articolo e mostra la descrizione dell articolo, il suo prezzo e il totale parziale. Il prezzo è calcolato in base a un insieme di regole di prezzo. Il Cassiere ripete i passi 3-4 fino a che non indica che ha terminato. 5. Il Sistema mostra il totale, con le imposte calcolate. 6. Il Cassiere riferisce il totale al Cliente, e richiede il pagamento. 7. Il Cliente paga e il Sistema gestisce il pagamento. 8. Il Sistema registra la vendita completata e invia informazioni sulla vendita e sul pagamento ai sistemi esterni di Contabilità (per la contabilità e le commissioni) e di Inventario (per l aggiornamento dell inventario). 9. Il Sistema genera la ricevuta. 10. Il Cliente va via con la ricevuta e gli articoli acquistati. Attenzione i requisiti scritti possono essere imperfetti coinvolgi l utente migliora la tua comprensione dei requisiti anche durante la progettazione 10

6 Contratti e realizzazioni di casi d uso Una realizzazione di caso d uso può essere basata sugli SSD e sui contratti delle operazioni creati durante l analisi orientata agli oggetti Contratto CO2: enteritem Operazione: Riferimenti: Pre-condizioni: Post-condizioni: enteritem(itemid: ItemID, quantity: integer) Caso d uso: Elabora Vendita È in corso una vendita. - è stata creata un istanza sli di SalesLineItem - sli è stata associata con la Sale corrente s - sli.quantity è diventato quantity - sli è stato associato con una ProductDescription, in base alla corrispondenza con itemid il progetto deve soddisfare le post-condizioni 11 Contratti e realizzazioni di casi d uso Diagramma di interazione (parziale) che soddisfa una delle postcondizioni del contratto dell operazione enteritem 12

7 Salto rappresentazionale basso (LRG) Il Modello di dominio è fonte di ispirazione (non un vincolo!) per le classi software che parteciperanno alla soluzione 13 Salto rappresentazionale basso (LRG) Il Modello di dominio è fonte di ispirazione (non un vincolo!) per le classi software che parteciperanno alla soluzione attenzione, le post-condizioni dei contratti delle operazioni sono espresse a livello concettuale non software dunque, se le post-condizioni di un operazione di sistema dicono, ad es., è stato creato un oggetto (concettuale) di una classe (concettuale) X, allora questo non implica direttamente che, a livello software, l operazione vada realizzata con la creazione di un oggetto (software) di una classe (software) X tuttavia, una post-condizione di questo tipo potrebbe suggerire di creare un oggetto (o più oggetti) software che rappresentano un oggetto concettuale di tipo X 14

8 18.3 E ora? Il resto del capitolo descrive progetto per POS NextGen progetto per Monopoly Game System basati sull applicazione di UML e dei pattern Realizzazioni di casi d uso per POS Requisiti per POS NextGen in questa iterazione scenario principale di successo di Elabora Vendita semplificato solo pagamento in contanti, no imposte, no sconti, niente dati persistenti caso d uso d avviamento contesto della progettazione in cui va presa in considerazione la creazione e l inizializzazione di molti oggetti radice o degli oggetti di lunga vita Quando considero il caso d uso d avviamento? se scrivo codice all inizio (almeno in modo parziale) se disegno alla fine (per sostenere gli altri casi d uso) 16

9 * Discussione sulla gestione dei dati Potrebbe sembrare poco realistico fare la progettazione nell ipotesi niente dati persistenti dunque, nessuna base di dati tuttavia, capiremo (anche se solo alla fine del corso) che un progetto fatto con quest ipotesi ha assolutamente senso infatti, con l uso di opportuni strumenti metodologici e tecnologici, introdurre nel progetto (e nel codice) la gestione della persistenza dei dati richiede solo delle modifiche marginali e comunque compatibili con l assegnazione di responsabilità basata sui pattern GRASP, come esemplificato in questo capitolo In pratica, all esame di APS si fanno normalmente le seguenti ipotesi il sistema in discussione gestisce i propri dati solo in memoria principale durante il caso d uso di avviamento vengono creati e caricati in memoria tutti gli oggetti le cui informazioni sono già effettivamente disponibili al momento dell avviamento 17 * Dal testo dei compiti d esame Ipotesi di lavoro, valide per tutti gli esercizi di progettazione. In tutti gli esercizi che seguono, si faccia l ipotesi che il sistema in discussione gestisca i propri dati solo in memoria principale. Si supponga anche che durante il caso d uso di avviamento vengano creati e caricati in memoria tutti gli oggetti le cui informazioni siano già effettivamente disponibili al momento dell avviamento. Per ciascuna operazione di sistema va creato un diagramma di interazione che descrive l interazione relativa alla trasformazione (cambiamento di stato) provocata dall operazione di sistema. Per quanto riguarda invece le relative risposte (interrogazioni) eventualmente restituite dal sistema, se non è richiesto esplicitamente allora non bisogna mostrare nei diagrammi di interazione né il calcolo dei dati da restituire né la loro visualizzazione. Tuttavia, per le risposte del sistema, è comunque necessario verificare che i dati da restituire possano essere (facilmente) calcolati sulla base delle navigabilità tra gli oggetti che sono state progettate (vedi anche il punto successivo). Le soluzioni individuate dovranno essere compatibili (in particolare in termini di visibilità, ovvero di navigabilità delle associazioni) con le realizzazioni di tutti i casi d uso mostrati (UC1-UCX). Nei diagrammi di interazione, mostrare IN MODO ESPLICITO: tutti i MESSAGGI scambiati tra oggetti, tutte le CREAZIONI di oggetti e tutte le FORMAZIONI e ROTTURE di collegamenti. Nei diagrammi di interazione, motivare le scelte di progetto fatte indicando i pattern GRASP e GoF applicati. Nei diagrammi delle classi di progetto, mostrare: (1) per ciascuna classe: il nome della classe, i nomi dei suoi attributi, i nomi delle sue operazioni; e (2) per ciascuna associazione e ciascuna sua estremità navigabile: la freccia di navigabilità, il nome dell estremità, la molteplicità e, in caso di associazione navigabile a molti, il tipo di collezione scelta. 18

10 * Scenario (SSD) di riferimento : Cashier Process Sale Scenario makenewsale() :System loop [ more items ] enteritem(itemid, quantity) description, total endsale() total with taxes attenzione, questa operazione si dovrebbe chiamare makecashpayment makepayment(amount) change due, receipt 19 * Modello di dominio di riferimento 20

11 * Modello di dominio di riferimento attenzione, alcune classi tra quelle identificate in precedenza non vengono prese in considerazione nella scrittura dei contratti la classe CashPayment qui viene chiamata Payment ma le sue istanze sono effettivamente dei pagamenti in contanti, gli unici presi in considerazione in questa iterazione Progetto: makenewsale Scenario di riferimento per questa iterazione: 2. Il Cassiere inizia una nuova vendita. Contratto CO1: makenewsale Operazione: Riferimenti: Pre-condizioni: Post-condizioni: makenewsale() Caso d uso: Elabora Vendita nessuna - è stata creata un istanza s di Sale - s è stata associata al Register - gli attributi di s sono stati inizializzati 22

12 makenewsale: inizio della progettazione La prima domanda in una realizzazione di caso d uso chi è il controller per questa operazione di sistema? quale pattern devo applicare? quali le possibilità suggerite? sicuro di aver considerato tutte le alternative? quale la scelta? 23 makenewsale: inizio della progettazione La prima domanda in una realizzazione di caso d uso chi è il controller per questa operazione di sistema? Devo applicare Controller 24

13 makenewsale: inizio della progettazione La prima domanda in una realizzazione di caso d uso chi è il controller per questa operazione di sistema? Devo applicare Controller facade controller o controller di caso d uso? se scelgo un facade controller, dopo dovrò verificare le operazioni di sistema sono in numero adeguato oppure troppe? il controller è complessivamente altamente coeso e debolmente accoppiato oppure no? quale controller scelgo in questo caso? 25 makenewsale: scelta del controller Quale controller scelgo? 26

14 makenewsale: scelta del controller Quale controller scelgo? Register ispirato al modello di dominio ora indica un oggetto software nel modello di progetto rappresenta (ma non è) il registratore di cassa ovvero, un punto d accesso al sistema da parte dell attore primario del caso d uso in discussione Nei sistemi client/server, è comune scegliere come controller un oggetto che rappresenta un punto d accesso al sistema da parte dell attore primario del caso d uso 27 Scelta del controller Scelta del controller 28

15 makenewsale: DCD parziale Register makenewsale() 29 makenewsale: prosecuzione Dopo aver assegnato una responsabilità, la domanda successiva è come fa l oggetto a cui ho assegnato una responsabilità a soddisfare la responsabilità che gli è stata assegnata? in questo caso che cosa deve fare il Register per soddisfare la responsabilità dell operazione di sistema makenewsale? Contratto CO1: makenewsale Operazione: Riferimenti: Pre-condizioni: Post-condizioni: makenewsale() Caso d uso: Elabora Vendita nessuna - è stata creata un istanza s di Sale - s è stata associata al Register - gli attributi di s sono stati inizializzati 30

16 * Una precisazione Il contratto dell operazione di sistema makenewsale ha, tra le sue post-condizioni, la creazione di un istanza s di Sale attenzione, il contratto parla della creazione di un oggetto Sale concettuale per LRG, è lecito pensare che un oggetto Sale concettuale possa essere rappresentato da un oggetto Sale software pertanto, stiamo identificando una responsabilità che riguarda la creazione di un oggetto software 31 Creazione di una nuova vendita Chi crea la Sale? quale pattern devo applicare? quali le possibilità suggerite? sicuro di aver considerato tutte le alternative? quale la scelta? 32

17 Creazione di una nuova vendita Chi crea la Sale? Devo applicare Creator Pattern Creator Problema chi deve essere responsabile della creazione di una nuova istanza di una classe (A)? Soluzione assegna alla classe B la responsabilità di creare un istanza della classe A se è vera una o più delle seguenti condizioni (più sono vere, meglio è) B contiene o aggrega con una composizione oggetti di tipo A B registra A B utilizza strettamente A B possiede i dati per l inizializzazione di A, che saranno passati ad A al momento della sua creazione B è un esperto rispetto alla creazione di A B è detto un creatore di oggetti A se sono applicabili più opzioni, preferisci una classe B che aggrega o contiene oggetti A 33 Creazione di una nuova vendita Chi crea la Sale? 34

18 Creazione di una nuova vendita Chi crea la Sale? :Register makenewsale create :Sale 35 makenewsale: DCD parziale 36

19 makenewsale: prosecuzione La prossima responsabilità Contratto CO1: makenewsale Operazione: Riferimenti: Pre-condizioni: Post-condizioni: makenewsale() Caso d uso: Elabora Vendita nessuna - è stata creata un istanza s di Sale - s è stata associata al Register - gli attributi di s sono stati inizializzati come formare il collegamento tra il Register e la Sale? 37 * makenewsale: collegamento Register-Sale Tre possibilità (principali) il Register referenzia la Sale corrente la Sale referenzia il suo Register navigabilità doppia 38

20 makenewsale: DCD parziale 39 makenewsale: DCD parziale spesso, quando un oggetto crea un altro oggetto, allora l oggetto creatore mantiene un riferimento all oggetto creato attenzione, talvolta accade il contrario, o entrambi gli oggetti si referenziano l un l altro in questo caso è utile che il Register (il controller) mantenga un riferimento alla Sale corrente durante tutta l esecuzione del caso d uso (un informazione dello stato della sessione) lo capiremo meglio andando avanti 40

21 makenewsale: vendita corrente ma come fa il Register a mantenere un riferimento all oggetto Sale appena creato? 41 makenewsale: vendita corrente :Register makenewsale create s:sale this.currentsale = s 42

22 Creazione di una nuova vendita La Sale appena creata, come inizializza il suo stato? 43 makenewsale: DCD parziale un associazione tra Sale e SalesLineItem deve essere sicuramente mantenuta navigabile in un verso oppure nell altro la scelta fatta ora nel libro sarà in effetti motivata più avanti 44

23 Creazione di una nuova vendita La Sale appena creata, come inizializza il suo stato? 45 * Ricapitolando Nella progettazione a oggetti chiediti qual è una responsabilità da assegnare sulla base del tipo di responsabilità, seleziona il pattern GRASP da applicare sulla base del pattern, scegli l oggetto a cui assegnare la responsabilità chiediti come fa l oggetto scelto a soddisfare la responsabilità questo può portare all identificazione di altre responsabilità da assegnare 46

24 Progetto: enteritem Scenario di riferimento per questa iterazione: 3. Il Cassiere immette il codice identificativo dell articolo e la quantità. 4. Il Sistema registra la riga di vendita per l articolo e mostra la descrizione dell articolo Contratto CO2: enteritem Operazione: enteritem(itemid: ItemID, quantity: integer) Riferimenti: Caso d uso: Elabora Vendita Pre-condizioni: È in corso una vendita s. Post-condizioni: - è stata creata un istanza sli di SalesLineItem - sli è stata associata con la Sale corrente s - sli.quantity è diventato quantity - sli è stato associato con una ProductDescription, in base alla corrispondenza con itemid 47 Devo progettare per la visualizzazione dei dati? Il caso d uso afferma che dopo l esecuzione di enteritem va mostrata la descrizione e il prezzo dell articolo bisogna progettare per la visualizzazione dei dati? Per il principio di separazione modello-vista visualizzare dati non è responsabilità dello strato del dominio è tuttavia responsabilità dello strato del dominio calcolare i dati da visualizzare Per il momento, nel progetto ignoriamo la gestione della visualizzazione dei dati nella progettazione c è un attenzione diversa per la componente di trasformazione e quella di interrogazione di un operazione di sistema attenzione, questo non significa che non terremo conto delle interrogazioni durante la progettazione 48

25 Scelta del controller Chi è il controller per enteritem? 49 Creazione di una nuova SalesLineItem Chi crea il nuovo oggetto SalesLineItem? quale pattern devo applicare? quali le possibilità suggerite? sicuro di aver considerato tutte le alternative? quale la scelta? 50

26 Creazione di una nuova SalesLineItem Chi crea il nuovo oggetto SalesLineItem? 51 Creazione di una nuova SalesLineItem Chi crea il nuovo oggetto SalesLineItem? ok, devo applicare Creator che suggerisce oppure ok, il creatore è Sale ma quale Sale? 52

27 Creazione di una nuova SalesLineItem Chi deve chiedere alla Sale corrente di creare il nuovo oggetto SalesLineItem? quale pattern devo applicare? quali le possibilità suggerite? sicuro di aver considerato tutte le alternative? quale la scelta? 53 Creazione di una nuova SalesLineItem Chi deve chiedere alla Sale corrente di creare il nuovo oggetto SalesLineItem? Devo applicare Information Expert Pattern Information Expert Problema qual è un principio generale nell assegnazione di responsabilità agli oggetti? Soluzione assegna una responsabilità all esperto delle informazioni la classe che ha le informazioni necessarie a soddisfare la responsabilità 54

28 Creazione di una nuova SalesLineItem Chi deve chiedere alla Sale corrente di creare il nuovo oggetto SalesLineItem? Devo applicare Information Expert che cosa mi suggerisce? 55 Creazione di una nuova SalesLineItem Creazione di un nuovo oggetto SalesLineItem 56

29 Creazione di una nuova SalesLineItem Creazione di un nuovo oggetto SalesLineItem questo messaggio può essere inviato sulla base di una visibilità stabilita dall operazione precedente makenewsale non sarebbe stato possibile realizzare questa collaborazione se tra Sale e Register fosse stata scelta la navigabilità opposta 57 Associazione tra Sale e SalesLineItem Chi associa il nuovo oggetto SalesLineItem alla Sale corrente? 58

30 Associazione tra Sale e SalesLineItem Chi associa il nuovo oggetto SalesLineItem alla Sale corrente? quali alternative? quali le alternative sensate? come si potrebbero gestire? 59 Trovare la ProductDescription Chi è responsabile di trovare una ProductDescription, dato il suo itemid? 60

31 Trovare la ProductDescription Chi è responsabile di chiedere al ProductCatalog di trovare la ProductDescription? Un oggetto può chiedere a un altro oggetto di eseguire un operazione solo se ne ha visibilità Register ma come conosce il ProductCatalog? perché non Sale o SalesLineItem? 61 Trovare la ProductDescription Chi è responsabile di trovare una ProductDescription, dato il suo itemid? un pattern : ID to Object (paragrafo 26.8) 62

32 Associazione tra sli e pd Chi associa il nuovo oggetto SalesLineItem alla ProductDescription corrispondente? quando? 63 enteritem: progetto completo 64

33 enteritem: DCD parziale 1 catalog ProductCatalog getproductdesc() descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID Sale description 1 Register enteritem() currentsale 1 iscomplete : Boolean time : DateTime makelineitem() lineitems {ordered} 1..* SalesLineItem quantity : Integer 65 * enteritem: DCD parziale Un osservazione sulla formazione e sull uso dei collegamenti 1 catalog ProductCatalog getproductdesc() descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID description 1 Sale Register enteritem() currentsale 1 iscomplete : Boolean time : DateTime makelineitem() lineitems {ordered} 1..* SalesLineItem quantity : Integer l interazione per un operazione/interrogazione di sistema può navigare alcuni collegamenti qui, quelli mostrati in blu formare altri collegamenti qui, quelli mostrati in rosso alla fine bisogna verificare che (1) ogni collegamento progettato sia utile e che (2) venga effettivamente formato 66

34 * Perché trovare la ProductDescription? Perché bisogna trovare la ProductDescription? Ovvero, perché il parametro di enteritem è un id (cioè una stringa) e non una ProductDescription (cioè un riferimento)? ricordiamo che id è un parametro che viene passato dallo strato dell interfaccia utente in molti sistemi, lo strato dell interfaccia utente è in esecuzione in un processo diverso da quello dello strato del dominio i riferimenti a oggetti hanno senso solo nell ambito di un singolo processo quindi, non ha senso che le richieste che devono attraversare il confine tra processi diversi contengano dei riferimenti a oggetti è invece comune che le richieste che devono attraversare il confine tra processi diversi contengano degli identificatori (intesi come chiavi) di oggetti 67 Trovare la ProductDescription Nella versione finale, la ProductDescription sarà trovata e caricata da una base di dati per ora, immaginiamo che il sistema gestisce tutti gli oggetti in memoria principale tutti gli oggetti di cui le informazioni sono disponibili vengono creati e caricati in memoria durante il caso d uso d avviamento più avanti, parleremo del collegamento tra strato del dominio e il gestore della persistenza uso di una base di dati relazionale per gestire dati persistenti il ProductCatalog potrà comunque essere usato come intermediario per interfacciarsi alla base di dati 68

35 * Ricapitolando Nella progettazione a oggetti chiediti qual è una responsabilità da assegnare sulla base del tipo di responsabilità, seleziona il pattern GRASP da applicare sulla base del pattern, scegli l oggetto A a cui assegnare la responsabilità chiediti come fa l oggetto scelto A a soddisfare la responsabilità questo può portare all identificazione di altre responsabilità da assegnare chiediti quali sono le collaborazioni richieste chiediti anche qual è l oggetto B a cui assegnare la responsabilità di chiedere all oggetto A di soddisfare una sua responsabilità 69 * Deviazione ehi, è un buon momento per parlare di visibilità! oppure, se vuoi, possiamo aspettare ancora un pochino ma mi raccomando, non molto! 70

36 Progetto: endsale Si veda il libro Progetto: gettotal Si veda il libro 72

37 * Discussione L operazione gettotal non è una vera e propria operazione di sistema piuttosto, rappresenta una risposta del sistema, ovvero un interrogazione durante la progettazione è comunque importante prendere in considerazione anche le interrogazioni soprattutto perché possono guidare o motivare scelte di progetto relative alla visibilità tra oggetti ad es., se non fosse richiesto il calcolo del totale di una vendita, allora forse potrebbe essere inutile gestire l associazione tra una Sale e le sue SalesLineItem forse potrebbe essere addirittura inutile quest ultima classe 73 * Discussione L operazione gettotal non è una vera e propria operazione di sistema piuttosto, rappresenta una risposta del sistema, ovvero un interrogazione nei casi più semplici, è sufficiente ispezionare il DCD per verificare se le interrogazioni di interesse (per il caso d uso corrente ma anche per altri casi d uso) possono essere soddisfatte in termini delle associazioni scelte, delle loro navigabilità e di come/quando vengono effettivamente gestite tuttavia, nei casi più complessi, può essere utile creare dei diagrammi di interrogazione per mostrare come sia effettivamente possibile calcolare informazioni che devono essere visualizzate attenzione per il momento ci stiamo occupando solo del calcolo dei dati ma non ancora per la loro visualizzazione notare che il messaggio trovato gettotal non è indirizzato al controller, ma piuttosto all esperto designato per l operazione 74

38 Progetto: makepayment Si veda il libro 75 * Discussione Attenzione l operazione makepayment dovrebbe chiamarsi makecashpayment la classe Payment dovrebbe chiamarsi CashPayment 76

39 * Ricapitolando Nella progettazione a oggetti chiediti qual è una responsabilità da assegnare sulla base del tipo di responsabilità, seleziona il pattern GRASP da applicare sulla base del pattern, scegli l oggetto A a cui assegnare la responsabilità chiediti come fa l oggetto scelto A a soddisfare la responsabilità questo può portare all identificazione di altre responsabilità da assegnare chiediti quali sono le collaborazioni richieste chiediti anche qual è l oggetto B a cui assegnare la responsabilità di chiedere all oggetto A di soddisfare una sua responsabilità chiediti se ci sono alternative, e valutale in termini di coesione e di accoppiamento 77 Calcolo del resto Si veda il libro 78

40 * Ricapitolando In una realizzazione di caso d uso crea un diagramma di interazione per ciascuna operazione di sistema in particolare, con attenzione ai cambiamenti di stato causati dall operazione di sistema per ciascuna risposta del sistema chiediti se il progetto è in grado di calcolare le informazioni da restituire nel caso, crea un diagramma di interrogazione per i calcoli più complessi non ti occupare (per ora) della visualizzazione dei dati 79 DCD per NextGen POS (libro) Store address : Address name : Text addcompletesale() 1 catalog catalog 1 ProductCatalog getproductdesc() descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID register 1 Register endsale() enteritem() makenewsale() makepayment() currentsale 1 completedsales {ordered} Sale iscomplete : Boolean time : DateTime becomecomplete() makelineitem() makepayment() gettotal() * lineitems {ordered} payment 1 1..* SalesLineItem quantity : Integer getsubtotal() Payment amount : Money description 1 80

41 * DCD per NextGen POS Store address : Address name : Text store addcompletesale() 1 1 catalog ProductCatalog getproductdesc() descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID Register endsale() enteritem() makenewsale() makecashpayment() currentsale 1 completedsales {ordered} Sale iscomplete : Boolean time : DateTime becomecomplete() makelineitem() makecashpayment() gettotal() * lineitems {ordered} payment 1 1..* SalesLineItem quantity : Integer getsubtotal() CashPayment amount : Money description Collegamento tra UI e dominio Lo strato UI ha bisogno della visibilità di (alcuni) oggetti del dominio quali oggetti deve poter vedere la UI? sicuramente il controller Register forse anche altri oggetti notevoli ad es., la Sale corrente attenzione però all accoppiamento! è possibile farlo in più modi scelta di questa prima iterazione nella creazione della UI, il controller viene passato come parametro la UI potrà poi conoscere altri oggetti notevoli tramite il controller Ci sono altre possibilità, che esamineremo nelle successive iterazioni in particolare accesso mediante un Singleton o una Factory accesso mediante Observer 82

42 Collegamento tra UI e dominio 83 Collegamento tra UI e dominio 84

43 Progetto: avviamento Molti sistemi (se non tutti) hanno un caso d uso d avviamento svolge le operazioni iniziali per l avvio del sistema comprende in particolare la creazione e l inizializzazione di molti oggetti radice o degli oggetti di lunga vita l operazione di sistema startup è la prima ad essere eseguita di solito però non è la prima ad essere progettata 85 Progetto: avviamento Come progettare per il caso d uso di avviamento? un idioma progettuale comune usa un oggetto di dominio iniziale il primo oggetto software di dominio ad essere creato responsabile della creazione degli altri oggetti di dominio che sono inizialmente necessari quale oggetto di dominio iniziale per il sistema POS? Store 86

44 Creazione dell oggetto di dominio iniziale public class Main { public static void main(string[] args) { /* Store è l oggetto di dominio iniziale. * Lo Store esegue l operazione di startup, * che crea altri oggetti di dominio. */ Store store = new Store(); } /* Avvia l interfaccia grafica, passandogli il controller. */ Register register = store.getregister(); ProcessSaleJFrame frame = new ProcessSaleJFrame(register); /* L interfaccia grafica può così mantenere un riferimento * al controller per tutta la durata dell applicazione. */ } 87 Scelta dell oggetto di dominio iniziale L oggetto di dominio iniziale va scelto tra quelli che sono vicini alla radice della gerarchia di contenimento/aggregazione degli oggetti di dominio un oggetto che contiene (direttamente o indirettamente) tutti o molti altri oggetti oppure, un facade controller scegliendo anche sulla base di High Cohesion e Low Coupling Quale oggetto di dominio iniziale per il sistema POS NextGen? Store 88

45 Progetto dell operazione startup L esecuzione di startup deve abilitare l esecuzione dei diagrammi di interazione progettati in precedenza quali oggetti devono essere creati e inizializzati? l oggetto di dominio iniziale, Store un oggetto Register un oggetto ProductCatalog e tutti gli oggetti ProductDescription quali collegamenti devono essere stati formati? dall oggetto Register all oggetto ProductCatalog per enteritem dall oggetto ProductCatalog a tutti gli oggetti ProductDescription che contiene per enteritem dall oggetto Store all oggetto Register per lo startup dall oggetto Register all oggetto Store per makepayment, per registrare una vendita completata (!!!, manca sul libro) 89 Progetto per startup (libro) 90

46 * Progetto per startup completedsales: List<Sale> 3: create pass a reference to the ProductCatalog and the Store to the Register, so that it has permanent visibility to it create s:store 2: create(s,pc) :Register by Creator 1: create pc: ProductCatalog 1.1: create 1.2.2*: put(id, pd) descriptions: Map<ProductDescription> 1.2: loadprodspecs() 1.2.1*: create(id, price, description) pd: ProductDescription 91 * DCD per NextGen POS Store address : Address name : Text addcompletesale() store «create» 1 1 catalog ProductCatalog getproductdesc() descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID register 1 Register endsale() enteritem() makenewsale() makecashpayment() currentsale 1 completedsales {ordered} Sale iscomplete : Boolean time : DateTime becomecomplete() makelineitem() makecashpayment() gettotal() * lineitems {ordered} payment 1 1..* SalesLineItem quantity : Integer getsubtotal() CashPayment amount : Money description 1 92

47 18.5 Realizzazioni di casi d uso per MGS Si veda il libro 93 * Un avvertenza Un avvertenza sul libro, nell ambito dell iterazione 1, sono stati volutamente commessi alcuni errori (o sono state prese delle decisioni che possono essere migliorate) nell analisi e nella progettazione sia per il sistema POS ma soprattutto per il gioco del Monopoly queste imprecisioni che verranno poi corrette nelle iterazioni successive lo spirito con cui è stata fatta questa scelta è comune commettere errori è utile capire che è possibile gestire gli errori commessi nonché capire come essi vanno gestiti in ogni caso, lo studio non dovrebbe essere interrotto al materiale dell iterazione 1 94

48 18.6 OOD iterativo ed evolutivo 95 UP: OOD iterativo ed evolutivo Disciplina Modellazione del business Requisiti Progettazione Elaborato Modello di dominio Ideaz. (I1) Elab. (E1..En) Modello dei casi d'uso s r Visione s r Specifiche supplementari s r Glossario s r s Costr. (C1..Cn) Modello di progetto s r Documento dell'architettura software Modello dei dati s r s Trans. (T1..T2) Implementazione Modello di implementazione s r r Gestione del progetto Piano di sviluppo software s r r r Test Modello di test s r Infrastruttura Scenario di sviluppo s r 96

49 18.7 Conclusioni La progettazione di oggetti è basata su progettazione di interazioni tra oggetti identificazione e assegnazione di responsabilità Le scelte progettuali hanno un impatto profondo sulle qualità del sistema estendibilità, chiarezza, mantenibilità, riusabilità, Ci sono principi su cui basare le scelte progettuali i pattern GRASP riassumono alcuni dei principi per l assegnazione di responsabilità nell OOD più generali e più comunemente usati 97

modelli casi d uso diagrammi di sequenza di sistema contratti delle operazioni di sistema Capitolo 11

modelli casi d uso diagrammi di sequenza di sistema contratti delle operazioni di sistema Capitolo 11 Luca Cabibbo Analisi e Progettazione del Software Diagrammi di sequenza di sistema Capitolo 10 marzo 2013 In teoria, non c è differenza tra teoria e pratica. Ma, in pratica, c è. Jan L.A. van de Snepscheut

Dettagli

Responsibility Driven Design

Responsibility Driven Design Responsibility Driven Design Laboratorio di Ingegneria del Software Andrea Bei Progettazione a oggetti (OOD) Progettare a oggetti una funzionalità espressa da un requisito ( use case, SSD, ) significa

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

7.1 Livello di completezza degli esempi

7.1 Livello di completezza degli esempi Luca Cabibbo Analisi e Progettazione del Software Capitolo 7 marzo 2013 Buono, poco costoso, rapidamente. Puoi scegliere due di queste caratteristiche. Anonimo 1 *** AVVERTENZA *** I lucidi messi a disposizione

Dettagli

4.1 Che cos è l ideazione

4.1 Che cos è l ideazione Luca Cabibbo Analisi e Progettazione del Software Ideazione (non è la fase dei requisiti) Capitolo 4 marzo 2013 Il meglio è nemico del bene. Voltaire 1 *** AVVERTENZA *** I lucidi messi a disposizione

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli

Design Pattern. Ingegneria del Software parte II. Andrea Bei

Design Pattern. Ingegneria del Software parte II. Andrea Bei Design Pattern Ingegneria del Software parte II Andrea Bei Progettazione a oggetti (OOD) Progettare a oggetti una funzionalità espressa da un requisito ( use case, SSD, ) significa Identificare gli oggetti,

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

Traccia di soluzione dell esercizio del 25/1/2005

Traccia di soluzione dell esercizio del 25/1/2005 Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello

Dettagli

Modello di Implementazione

Modello di Implementazione Modello di Implementazione Laboratorio di Ingegneria del Software Andrea Bei Modello di implementazione Un è costituito dall insieme dei sorgenti che implementano un Modello di Progetto Linee guida per

Dettagli

Una metodologia per la specifica di software basato su componenti

Una metodologia per la specifica di software basato su componenti Luca Cabibbo Architetture Software Una metodologia per la specifica di software basato su componenti Dispensa ASW 445 ottobre 2014 La mappa non è il territorio. Douglas R. King 1 -Fonti [UML Components],

Dettagli

Analisi e progettazione del software AbcBid studio di caso 6 dicembre 2007 REQUISITI ITERAZIONE 1

Analisi e progettazione del software AbcBid studio di caso 6 dicembre 2007 REQUISITI ITERAZIONE 1 REQUISITI ITERAZIONE 1 abcbid è un sistema per la gestione di vendite all asta. Esso deve gestire gli utenti (che vogliono vendere o acquistare oggetti), gli oggetti venduti all asta, le relative offerte,

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

object oriented analysis

object oriented analysis object oriented analysis 1 attività di analisi l obiettivo dell analisi è raggiungere la piena comprensione del dominio di interesse lo strumento è la descrizione di un modello di dominio mediante un opportuno

Dettagli

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo Luca Cabibbo Analisi e Progettazione del Software Capitolo 3 marzo 2015 Poche cose sono più difficili da sopportare di un buon esempio. Mark Twain 1 *** AVVERTENZA *** I lucidi messi a disposizione sul

Dettagli

Diagrammi di Interazione

Diagrammi di Interazione Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Diagrammi di Interazione Definizioni Diagrammi di Interazione una interazione specifica i dettagli

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro Concetto di responsabilità nella progettazione guidata dalle responsabilità (RRD) si pensa in termini di responsabilità del software. Le responsabilità vengono assegnate agli oggetti durante la progettazione.

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Progettazione della componente applicativa

Progettazione della componente applicativa 7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo

Dettagli

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire

Dettagli

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE Pag. 1 di 16 SOFTWARE A SUPPORTO DELLA (VERS. 3.1) Specifica dei Requisiti Utente Funzionalità di associazione di più Richiedenti ad un procedimento Codice Identificativo VERIFICHE ED APPROVAZIONI CONTROLLO

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Dalla progettazione concettuale alla modellazione di dominio

Dalla progettazione concettuale alla modellazione di dominio Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Dettagli

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop i Il Registro dei Servizi di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Visualizzazione del registro dei servizi HTTP 1 3 Visualizzazione del registro dei servizi UDDI

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

Dettagli

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse Politecnico di Milano View integration 1 Integrazione di dati di sorgenti diverse Al giorno d oggi d la mole di informazioni che viene gestita in molti contesti applicativi è enorme. In alcuni casi le

Dettagli

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

Implementing a new ADT based on the HL7 version 3 RIM. Esempio Implementing a new ADT based on the HL7 version 3 RIM Esempio Contesto di riferimento Alla fine degli anni 90, sei ospedali vennero fusi allo scopo di formare un unica organizzazione lo University Hospital

Dettagli

Sistemi Informativi I Caso di studio con applicazione di UML

Sistemi Informativi I Caso di studio con applicazione di UML 9 CASO DI STUDIO CON APPLICAZIONE DI UML...2 9.1 IL CASO DI STUDIO...2 9.1.1 Il sistema attuale...2 9.2 IL PROBLEM STATEMENT...3 9.2.1 Formulazione del Problem statement per il caso proposto...3 9.3 USE

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

design patterns e GRASP

design patterns e GRASP design patterns e GRASP 1 design patterns una coppia / particolarmente importante a cui viene dato un nome vengono espressi in un formato molto rigido, ad es. nome descrizione sintetica della descrizione

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Ingegneria del Software T

Ingegneria del Software T Home Finance 1 Requisiti del cliente 1 Si richiede di realizzare un sistema per la gestione della contabilità familiare. Il sistema consente la classificazione dei movimenti di denaro e la loro memorizzazione.

Dettagli

Esempio ordini 08UMLEX1.1

Esempio ordini 08UMLEX1.1 Esempio ordini 08UMLEX1.1 Sommario Specifiche del sistema di gestione ordini Specifiche Use Case Use Case Specifiche del diagramma delle classi Diagramma delle classi Specifiche per lo scenario della richiesta

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

CP Customer Portal. Sistema di gestione ticket unificato

CP Customer Portal. Sistema di gestione ticket unificato CP Customer Portal Sistema di gestione ticket unificato Sommario CP Customer Portal...1 Sistema di gestione ticket unificato...1 Sommario...2 Flusso gestione ticket...3 Modalità di apertura ticket...3

Dettagli

Università per Stranieri di Siena Livello A1

Università per Stranieri di Siena Livello A1 Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico

Dettagli

Elaborazione. Laboratorio di Ingegneria del Software. Andrea Bei

Elaborazione. Laboratorio di Ingegneria del Software. Andrea Bei Laboratorio di Ingegneria del Software Andrea Bei - Obiettivo Obiettivi: Scoprire e stabilizzare la maggiorparte dei requisiti Realizzare (progettare, sviluppare e testare) la parte di architettura software

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

IL MIO PRIMO SITO: NEWS

IL MIO PRIMO SITO: NEWS Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un

Dettagli

Specifiche Tecnico-Funzionali

Specifiche Tecnico-Funzionali AuthSIAR - Modulo di Autenticazione e Autorizzazione Sardegna IT S.r.l. Analisi Tecnico-Funzionale Assessorato all Agricoltura della Regione Sardegna SIAR Sistema Informativo Agricolo Regionale AuthSIAR

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Progetto di Ingegneria del Software 2. SWIMv2

Progetto di Ingegneria del Software 2. SWIMv2 Progetto di Ingegneria del Software 2 2012/2013 SWIMv2 Guida al Testing Docente: Prof. Luca Mottola Davide Brambilla Antonio Caputo Paolo Caputo 1 Indice 1 Introduzione 1.1 Materiale fornito................................

Dettagli

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13 Raccolta dei Requisiti con i Casi D'uso Corso di Ingegneria del Software Anno Accademico 2012/13 I casi d uso I casi d'uso (use case) sono una tecnica utilizzata per identificare i requisiti funzionali

Dettagli

Hub-PA Versione 1.0.6 Manuale utente

Hub-PA Versione 1.0.6 Manuale utente Hub-PA Versione 1.0.6 Manuale utente (Giugno 2014) Hub-PA è la porta d ingresso al servizio di fatturazione elettronica verso la Pubblica Amministrazione (PA) a disposizione di ogni fornitore. Questo manuale

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Artifact Centric Business Processes (I)

Artifact Centric Business Processes (I) Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di

Dettagli

STUDIUM.UniCT Tutorial per gli studenti

STUDIUM.UniCT Tutorial per gli studenti STUDIUM.UniCT Tutorial per gli studenti Studium.UniCT Tutorial Studenti v. 6 06/03/2014 Pagina 1 Sommario 1. COS È STUDIUM.UniCT... 3 2. COME ACCEDERE A STUDIUM.UniCT... 3 3. COME PERSONALIZZARE IL PROFILO...

Dettagli

Gestione Automatizzata di una Lista Nozze

Gestione Automatizzata di una Lista Nozze Gestione Automatizzata di una Lista Nozze Si deve progettare un sistema per la gestione di liste nozze on line. Il sistema rende possibile la consultazione di un catalogo on line, la creazione di una lista

Dettagli

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Lezione 4-1 - UML Il diagramma delle classi Parte Seconda - 2 - Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Istruzioni operative per la gestione delle Non Conformità e delle Azioni Correttive. https://nonconf.unife.it/

Istruzioni operative per la gestione delle Non Conformità e delle Azioni Correttive. https://nonconf.unife.it/ Istruzioni operative per la gestione delle Non Conformità e delle Azioni Correttive https://nonconf.unife.it/ Registrazione della Non Conformità (NC) Accesso di tipo 1 Addetto Registrazione della Non Conformità

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Il diagramma dei casi d uso

Il diagramma dei casi d uso Il diagramma dei casi d uso Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Il diagramma dei casi d uso A.A. 2010/2011

Dettagli

Benvenuti nella presentazione del nuovo catalogo per i pezzi di ricambio. Sp@re P@rts INDICE

Benvenuti nella presentazione del nuovo catalogo per i pezzi di ricambio. Sp@re P@rts INDICE Benvenuti nella presentazione del nuovo catalogo per i pezzi di ricambio Sp@re P@rts Selezionare un modello metodi di ricerca Cliccate su un link per accedere direttamente alla pagina interessata Metodologia

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

TERMINALE. Creazione e gestione di una postazione terminale di Eureka TERMINALE Creazione e gestione di una postazione terminale di Eureka Febbraio 2011 2 Creazione e gestione di una postazione terminale di Eureka INDICE POSTAZIONE TERMINALE EUREKA REQUISITI INSTALLAZIONE

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema Pagina: 1 e-travel ING SW Progetto di Ingegneria del Software e-travel Requisiti Utente Specifiche Funzionali del Sistema e Pagina: 2 di 9 Indice dei contenuti 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO...

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di

Dettagli

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Dettagli

Partenza Mercato Utente Idea Concetto Valutazione. Chi sono gli utenti target del tuo concetto di business?

Partenza Mercato Utente Idea Concetto Valutazione. Chi sono gli utenti target del tuo concetto di business? Utente Chi sono gli utenti target del tuo concetto di business? Specifica da 3 a 5 diversi gruppi di utenti per il tuo concetto e fai una dettagliata descrizione di una persona per ciascun gruppo. Fai

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA DISPENSA DEL CORSO DI SISTEMI INFORMATIVI Prof. Carlo Combi DFD Appunti a cura di E. Peri M. Devincenzi Indice 1

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Progettazione di una base di dati Ufficio della Motorizzazione

Progettazione di una base di dati Ufficio della Motorizzazione Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2008/2009 1 Scopo del progetto Progettazione di una base di dati Ufficio della Motorizzazione Si vuole realizzare un applicazione base

Dettagli

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo 01595 Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo INDICE DESCRIZIONE DEL SOFTWARE DI INTERFACCIAMENTO CON I SISTEMI GESTIONALI (ART. 01595) 2 Le

Dettagli

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana giugno 2011 PARLARE Livello MATERIALE PER L INTERVISTATORE 2 PLIDA Progetto Lingua Italiana Dante Alighieri

Dettagli

Manuale per la configurazione di AziendaSoft in rete

Manuale per la configurazione di AziendaSoft in rete Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...

Dettagli

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

Dettagli

Puoi aumentare la popolarità della tua azienda e singoli prodotti, sia a livello locale che più ampio.

Puoi aumentare la popolarità della tua azienda e singoli prodotti, sia a livello locale che più ampio. A cosa può servire? Awareness Puoi aumentare la popolarità della tua azienda e singoli prodotti, sia a livello locale che più ampio. Lead generation Puoi aumentare la generazione di contatti profilati

Dettagli

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4) FAQ INVIO DOMANDE CIGO CON FLUSSO XML Cosa serve per inviare una domanda CIGO con il flusso XML? (pag. 2) Come si prepara una domanda in formato XML? (pag. 3) Che differenza c è tra una richiesta XML ed

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

DEPLOY YOUR BUSINESS

DEPLOY YOUR BUSINESS DEPLOY YOUR BUSINESS COS É ARROCCO? E uno strumento online per lo sviluppo del Piano Economico-Finanziario del Business Plan. Arrocco è uno strumento online appositamente progettato per lo sviluppo di

Dettagli

Retail L organizzazione innovativa del tuo punto vendita

Retail L organizzazione innovativa del tuo punto vendita fare Retail L organizzazione innovativa del tuo punto vendita fareretail è una soluzione di by www.fareretail.it fareretail fareretail è la soluzione definitiva per la Gestione dei Clienti e l Organizzazione

Dettagli

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote...

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote... Manuale d'uso Sommario Manuale d'uso... 1 Primo utilizzo... 2 Generale... 2 Gestione conti... 3 Indici di fatturazione... 3 Aliquote... 4 Categorie di prodotti... 5 Prodotti... 5 Clienti... 6 Fornitori...

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Pillola operativa Integrazione Generazione Dettagli Contabili INFORMAZIONI

Dettagli