Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML
|
|
- Pio Morini
- 8 anni fa
- Visualizzazioni
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
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
DettagliResponsibility 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
DettagliSoluzione 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
Dettagli7.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
Dettagli4.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
DettagliSoluzione 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
DettagliDesign 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,
DettagliLight 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
DettagliTraccia 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
DettagliModello 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
DettagliUna 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],
DettagliAnalisi 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,
DettagliGestione 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
DettagliUTILIZZATORI 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
Dettagliobject 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
DettagliI 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
DettagliDiagrammi 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
DettagliSequence 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
DettagliSe 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.
DettagliProgettazione 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
DettagliProgettazione 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
DettagliUniversità 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
DettagliSOFTWARE 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
DettagliConcetti 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
DettagliDalla 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
DettagliStrumenti 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
DettagliI 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
DettagliTesto 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
DettagliIl 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
DettagliCapitolo 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
DettagliBasi 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
DettagliStefania 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
DettagliImplementing 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
DettagliSistemi 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
DettagliMANUALE 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...
Dettaglidesign 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
DettagliRaggruppamenti 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
DettagliIngegneria 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.
DettagliEsempio 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
DettagliProgettaz. 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
DettagliCorso: 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
DettagliLA 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
DettagliAnalisi 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
DettagliCP 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
DettagliUniversità 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
DettagliElaborazione. 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
DettagliIndice 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)
DettagliNOTE 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
DettagliIL 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
DettagliSpecifiche 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
DettagliIl 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
DettagliRegistratori 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...
DettagliProgetto 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................................
DettagliRaccolta 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
DettagliHub-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
DettagliUso 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
DettagliArtifact 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
DettagliSTUDIUM.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...
DettagliGestione 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
DettagliUML 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
DettagliLa 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
DettagliIstruzioni 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à
Dettagli2003.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,
DettagliIntroduzione 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
DettagliOrganizzazione 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
DettagliIl 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
DettagliBenvenuti 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
DettagliCosa è 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
DettagliUso 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
DettagliUNIVERSITA 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
DettagliTERMINALE. 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
DettagliCiclo 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
DettagliEsercitazione 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
DettagliEsercizio 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
DettagliRealizzazione 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
DettagliING 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...
DettagliProgrammi 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
DettagliRIFERIMENTI 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
DettagliPartenza 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
DettagliProgettazione : 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
DettagliMANUALE 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
DettagliDFD 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
DettagliAPPUNTI 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....................................
DettagliCapitolo 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
DettagliProgettazione 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
DettagliSoftware 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
DettagliPLIDA 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
DettagliManuale 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...
DettagliModellazione 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):
DettagliPuoi 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
DettagliChe 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
Dettagli12 - 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,
DettagliDEPLOY 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
DettagliRetail 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
DettagliManuale 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...
DettagliMon 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
DettagliISTRUZIONI 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
DettagliSistemi 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
DettagliMECCANISMI 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
DettagliProgetto 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