Docstoc

Raffinamento del Modello di dominio

Document Sample
Raffinamento del Modello di dominio Powered By Docstoc
					                           Luca Cabibbo
                                Analisi e
         A P      S              Progettazione del
                                   Software


              Raffinamento del Modello di
                       dominio
                                      Le classificazioni sommarie e le false
         APS 05                  generalizzazioni sono la maledizione della
         maggio 2010
           gg                                              vita organizzata.
                                               Una generalizzazione di H.G. Wells
1                         Raffinamento del Modello di dominio          Luca Cabibbo – A·P·S




A    P    S   Introduzione
    Ulteriori concetti/relazioni che può essere utile mostrare in un
    modello di dominio
                       generalizzazione specializzazione
        gerarchie di generalizzazione-specializzazione
        classi di associazione
        intervalli di tempo




                                     nota: gli esempi
                                  mostrati sono relativi ai
                                   requisiti della terza
                                        iterazione




2                         Raffinamento del Modello di dominio          Luca Cabibbo – A·P·S
A     P   S   * Nuovi concetti nel Modello di dominio

    Categoria di classe concettuale                                       Esempi
    oggetti fisici o tangibili
     gg                 g                                                ,     g
                                                         carta di credito, assegno
                                                         pagamento in contanti, pagamento con
    transazioni                                          carta di credito, pagamento con
                                                              g
                                                         assegno
                                                         servizio di autorizzazione di
    altri sistemi informatici esterni                    pagamento con carta di credito,
                                                         servizio di autorizzazione di
                                                         pagamento con assegno
                                                         servizio di autorizzazione di
    organizzazioni                                       pagamento con carta di credito,
                                                             i i       t i     i
                                                         servizio di autorizzazione di
                                                         pagamento con assegno
    registrazione di questioni
    finanziarie, lavoro,
    finanziarie di lavoro contrattuali                   contabilità crediti
    e legali




3                                Raffinamento del Modello di dominio                 Luca Cabibbo – A·P·S




A     P   S   Nuovi concetti nel modello di dominio

    Caso d’uso UC1: Elabora Vendita
    Estensioni:
    7b. Pagamento con carta di credito:
        1. Il Cliente inserisce le informazioni sulla propria carta di credito.
        2. Il Sistema invia una richiesta di autorizzazione al pagamento al
                                                                 g
           sistema esterno di Servizio di Autorizzazione al Pagamento per  p
           richiedere l’approvazione del pagamento.
              2a.   Il Sistema rileva un problema nella comunicazione col sistema esterno:
                    ...
          3.    Si t    i
          3 Il Sistema riceve l’approvazione del pagamento e segnala
                              l’         i   d l        t         l
             l’approvazione al Cassiere.
              3a.   Il Sistema riceve un rifiuto per il pagamento:
                    ...
          4. Il Sistema registra il pagamento con carta di credito, che comprende
             l’approvazione del pagamento.
          5.
          5 Il Sistema presenta il meccanismo di inserimento della firma per
             il pagamento.
          6. Il Cassiere chiede al Cliente la firma per la ricevuta del pagamento
             con carta di credito. Il Cliente inserisce la firma.


4                                Raffinamento del Modello di dominio                 Luca Cabibbo – A·P·S
A    P   S    Nuovi concetti nel modello di dominio

    Caso d’uso UC1: Elabora Vendita
    Estensioni:
    7c. Pagamento con assegno:
        1. Il Cliente compila un assegno e lo consegna, insieme alla sua patente
           di guida, al Cassiere.
                                              p                g ,
        2. Il Cassiere scrive il numero della patente sull’assegno, lo inserisce e
           richiede un’autorizzazione al pagamento con assegno.
        3. Il Sistema genera un richiesta di pagamento con assegno e la invia
           a un Servizio di Autorizzazione Assegni esterno.
        4. Il Sistema riceve un’approvazione del pagamento con assegno e
           segnala l’approvazione al Cassiere.
        5. Il Sistema registra il pagamento con assegno, che comprende
           l’approvazione del pagamento.




5                           Raffinamento del Modello di dominio          Luca Cabibbo – A·P·S




A    P   S    * Generalizzazione
    Generalizzazione
      attività di identificazione di caratteristiche comuni tra concetti
          t    d fi i           l i     tra
      porta a definire una relazione t superclasse (l            tt iù
                                                         (concetto più
      generale) e sottoclasse (concetto specializzato)
      classificazioni tassonomiche tra concetti
      gerarchie di generalizzazione-specializzazione di classi o
      gerarchie di classi


             Attenzione: generalizzazione ed
             ereditarietà sono cose diverse.
             Qui (       ) i          id t
             Q i (per ora) viene considerato
                p
             un punto di vista concettuale.
6                           Raffinamento del Modello di dominio          Luca Cabibbo – A·P·S
A   P   S    Gerarchie di generalizzazione-specializzazione




            In UML, stessa notazione per la
            generalizzazione-specializzazione
                  l’ereditarietà.
            e per l’ dit i tà
            Ma non si tratta della stessa cosa.
7                      Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A   P   S    UML: Gerarchie




8                      Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P    S   Generalizzazioni: percorso di studio
    Come comprendere le generalizzazioni
      capire quando è lecito mostrare una relazione di
      generalizzazione-specializzazione
      generalizzazione specializzazione tra classi
         indipendentemente dall’utilità

         capire quando è utile mostrare una relazione di
         generalizzazione-specializzazione tra classi
                i      d      til    t    /i t d           tt l
           capire quando è utile mostrare/introdurre una sottoclasse
           capire quando è utile mostrare/introdurre una superclasse

         capire alcuni usi comuni della generalizzazione

         comprendere la relazione tra generalizzazione-specializzazione
         ed ereditarietà (cenni)



9                         Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P    S   * Definizione di gerarchie concettuali
    Quando è lecito definire una relazione di generalizzazione-
    specializzazione in un modello di dominio?
       siano A e B due classi concettuali
       quando è lecito dire che B è sottoclasse di A?

    Tre aspetti/punti di vista rilevanti
       definizione intensionali delle classi
       estensioni delle classi
       proprietà strutturali delle classi




10                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S    Definizione delle classi
    La definizione di una superclasse concettuale è (deve essere) più
    generale o comprensiva della definizione di una sottoclasse
                                                     denaro,
       Payment – transazione di trasferimento di denaro da una parte
       a un’altra, relativa a un acquisto
                y
       CashPayment – transazione di trasferimento di denaro in
       contanti, da una parte a un’altra, relativa a un acquisto

                                            Payment

                                 amount : Money




                    Cash                     Credit             Check
                   Payment                  Payment            Payment



11                       Raffinamento del Modello di dominio             Luca Cabibbo – A·P·S




A    P   S    Definizione delle classi
    La definizione di una superclasse concettuale è (deve essere) più
    generale o comprensiva della definizione di una sottoclasse
                                                     denaro,
       Payment – transazione di trasferimento di denaro da una parte
       a un’altra, relativa a un acquisto
                y
       CashPayment – transazione di trasferimento di denaro in
       contanti, da una parte a un’altra, relativa a un acquisto

                                            Payment
             Se la definizione di A non è più
                           amount : Money
             generale o comprensiva della
             definizione di B,
             allora non è lecito dire che B è
                    Cash          Credit   Check
             sottoclasse di A
                   Payment      Payment   Payment



12                       Raffinamento del Modello di dominio             Luca Cabibbo – A·P·S
A    P   S    Conformità delle estensioni
    Tutti i membri dell’estensione di una sottoclasse concettuale sono
    (devono essere) anche membri dell’estensione della superclasse

                                               Payment




                    CashPayment             CreditPayment       CheckPayment




    Regola is-a (è un)
       tutti i membri (dell’estensione) di una sottoclasse sono (devono
       essere) membri (dell’estensione) della superclasse
       test linguistico – sottoclasse è un(a) superclasse


13                        Raffinamento del Modello di dominio                  Luca Cabibbo – A·P·S




A    P   S    Conformità delle estensioni
    Tutti i membri dell’estensione di una sottoclasse concettuale sono
    (devono essere) anche membri dell’estensione della superclasse

             Se ci sono istanze di B che non   Payment


             sono anche istanze di A A,
             allora non è lecito dire che B è
                    CashPayment             CreditPayment       CheckPayment



             sottoclasse di A
    Regola is-a (è un)
       tutti i membri (dell’estensione) di una sottoclasse sono (devono
       essere) membri (dell’estensione) della superclasse
       test linguistico – sottoclasse è un(a) superclasse


14                        Raffinamento del Modello di dominio                  Luca Cabibbo – A·P·S
A    P   S    Conformità delle caratteristiche
    Regola del 100%
       tutte le caratteristiche (attributi e associazioni) nella definizione di
       una superclasse sono (devono essere) applicabili anche a
       ciascuna delle sottoclassi


                             Payment
                                                                   Pays-for
                                                                                  Sale
                        amount : M
                             t Money                         1                1




               Cash           Credit                              Check
             P
             Paymentt        P
                             Payment t                           P
                                                                 Paymentt




15                         Raffinamento del Modello di dominio                      Luca Cabibbo – A·P·S




A    P   S    Conformità delle caratteristiche
    Regola del 100%
       tutte le caratteristiche (attributi e associazioni) nella definizione di
       una superclasse sono (devono essere) applicabili anche a
       ciascuna delle sottoclassi


                             Payment
                                      e/o
             Se ci sonot :attributi 1 Pays-for 1 Sale
                       amount MMoney
             associazioni di A che non sono
             applicabili anche a B    B,
             allora non è lecito dire che B è
                Cash         Credit    Check
              Payment
              P      t      P
                            Payment t Payment
                                      P      t
             sottoclasse di A

16                         Raffinamento del Modello di dominio                      Luca Cabibbo – A·P·S
A    P   S   Gerarchie concettuali lecite
    Riassumendo, una potenziale sottoclasse deve essere conforme a
       regola del 100% – conformità delle caratteristiche
           l is-a – conformità dell’appartenenza i i i ti
       regola i        f   ità d ll’     t        insiemistica




17                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   * Quando definire una sottoclasse
    L’introduzione di una sottoclasse è suggerita dall’identificazione di
    una partizione di una classe concettuale precedentemente
    identificata

    Partizione di una classe concettuale
       una partizione della classe concettuale in sottoclassi disgiunte

    Quando è utile mostrare una partizione di una classe concettuale?
                                p




18                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   Quando definire una sottoclasse
    Motivazioni valide per partizionare una classe in sottoclassi – e
    mostrare una sottoclasse
       la sottoclasse ha proprietà strutturali aggiuntive di interesse
          la sottoclasse ha attributi aggiuntivi di interesse
          la sottoclasse ha associazioni aggiuntive di interesse



                                ad esempio, un
                          CreditPayment è associato
                                   y
                             ad una CreditCard




19                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   Quando definire una sottoclasse
    Motivazioni valide per partizionare una classe in sottoclassi – e
                             ad
    mostrare una sottoclasse esempio, un CreditPayment
                              è gestito diversamente da un
                                g
       la sottoclasse ha proprietà strutturali aggiuntive di interesse
                                      CashPayment
          la sottoclasse ha attributi aggiuntivi di interesse
          la sottoclasse ha associazioni aggiuntive di interesse
       la sottoclasse ha una caratterizzazione diversa del
       comportamento
          il concetto della sottoclasse viene fatto funzionare, viene
          gestito, reagisce o viene manipolato in modo diverso dalla
                  l       dalle lt       tt l   i        d     d lità
          superclasse o d ll altre sottoclassi, secondo modalità di
          interesse
          il concetto della sottoclasse rappresenta qualcosa di animato
          che si comporta in modo diverso dalla superclasse o dalle
          altre sottoclassi, secondo modalità di interesse


20                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   * Quando definire una superclasse
    L’introduzione di una superclasse è consigliata quando si
    identificano delle caratteristiche comuni tra le potenziali sottoclassi

    Motivazioni valide per generalizzare e definire una superclasse
       le potenziali sottoclassi concettuali rappresentano variazioni di
       un concetto simile
       le sottoclassi sono conformi alle regole del 100% e is-a
       tutte l    tt l    ih            t           i tà ( tt ib t
       t tt le sottoclassi hanno una stessa proprietà (attributo o
       associazione) che può essere estratta ed espressa nella
       superclasse
          p




21                        Raffinamento del Modello di dominio     Luca Cabibbo – A·P·S




A    P   S   * Gerarchie di classi per POS
    Pagamenti




22                        Raffinamento del Modello di dominio     Luca Cabibbo – A·P·S
A    P     S      Gerarchie di classi per POS
    Servizi di autorizzazione

                                                                  A h i                f
                                                                  Authorizes-payments-of
                                                                                                           Store


          superclass justified by                        AuthorizationService
          common attributes and
          associations                                  address
                                                        name                                   additional associations
                                                        phoneNumber




                                             Credit                               Check
                                          Authorization                        Authorization
                                            Service                              Service

                                                1                                    1
                                                     Authorizes                          Authorizes


                                                Credit                            Check
                                               Payment                           Payment


23                                       Raffinamento del Modello di dominio                                     Luca Cabibbo – A·P·S




A    P     S      Gerarchie di classi per POS
    Transazioni di autorizzazione
                                                                      Payment
                                                                     Authorization
               Concepts too fine grained?                            Transaction
               Useful to show this degree of
                                                                    date
               partitioning?
                                                                    time



                                          Payment                                                Payment
                                        Authorization                                           Authorization
                                           Reply                                                  Request




                     CreditPayment                         CheckPayment              CreditPayment        CheckPayment
                      Authorization                         Authorization              Approval             Approval
                         Reply                                 Reply                    Request             Request


                                                                                                   Each transaction is
                                                                                                   handled differently, so
         CreditPayment       CreditPayment          CheckPayment         CheckPayment              it is useful to partition
            Approval            Denial                Approval              Denial                 them into discrete
             Reply               Reply                  Reply                Reply                 classes.


24                                       Raffinamento del Modello di dominio                                     Luca Cabibbo – A·P·S
A    P      S   Gerarchie di classi per POS
    Transazioni di autorizzazione – rappresentazione alternativa


                                                                           Payment
                                                                         Authorization
                                                                         Transaction

                                                                        date
                                                                        time



                                           Payment                                                   Payment
                                         Authorization                                              Authorization
                                            Reply                                                     Request




      CreditPayment   CreditPayment     CheckPayment           CheckPayment              CreditPayment      CheckPayment
        Approval          Denial          Approval                Denial                    Approval          Approval
          Reply           Reply             Reply                  Reply                    Request           Request




25                                Raffinamento del Modello di dominio                                        Luca Cabibbo – A·P·S




A    P      S   * Classi concettuali astratte
    C è una classe concettuale astratta se ciascun membro della
    classe C è (deve essere) anche membro di una delle sottoclassi di C
                                        Payment

                                                                                             If a Payment instance may
                                                                                             exist which is not a
      (a)                                                                                    CashPayment, C ditP
                                                                                             C hP                        t
                                                                                                           t CreditPayment
                 CashPayment          CreditPayment             CheckPayment
                                                                                             or CheckPayment, then
                                                                                             Payment is not an abstract
                                                                                             conceptual class.




                                                                        abstract conceptual class


                                        Payment
                                                                                             Payment is an abstract
                                                                                             conceptual class. A Payment
                                                                                             instance must conform to one
      (b)        CashPayment          CreditPayment             CheckPayment                 of the subclasses:
                                                                                             CashPayment, CreditPayment
                                                                                             or CheckPayment.




26                                Raffinamento del Modello di dominio                                        Luca Cabibbo – A·P·S
A    P   S    UML: Classi astratte

                             Payment                               abstract class
                                                                   indicated by italics
                        amount : Money




               Cash           Credit                     Check
              Payment        Payment                    Payment



                                                                   abstract class
                         Payment {abstract}                        indicated by a
                                                                   constraint
                        amount : Money




               Cash           Credit                     Check
              Payment        Payment                    Payment



27                           Raffinamento del Modello di dominio                          Luca Cabibbo – A·P·S




A    P   S    * Modellare stati che cambiano
    I possibili stati per un concetto X non vanno modellati come
    sottoclassi di X




                     q
             Perché questo modello è
             sbagliato?

28                           Raffinamento del Modello di dominio                          Luca Cabibbo – A·P·S
A    P   S   Perché lecito? Perché sbagliato?


                                                    Perché questo modello è lecito?




                                                               P hé questo non l è?
                                                               Perché   t      lo




29                       Raffinamento del Modello di dominio                  Luca Cabibbo – A·P·S




A    P   S   Modellare stati che cambiano
    I possibili stati per un concetto X non vanno modellati come
    sottoclassi di X – piuttosto
        definisci una gerarchia di stati e associa gli stati a X – oppure
        non mostrare gli stati di un concetto nel modello di dominio – usa
        un diagramma di macchina a stati
                g




30                       Raffinamento del Modello di dominio                  Luca Cabibbo – A·P·S
A    P   S   Il design pattern State [GoF]
    State
       permette a un oggetto di cambiare il suo comportamento al
       cambiare del suo stato interno
       l’oggetto si comporterà come se avesse cambiato la sua classe




    Osservazione: La struttura del design pattern State può essere
       t          tt          li i
    usata come pattern di analisi

31                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   Modellare stati (che cambiano?)
    Come scegliere se rappresentare le possibili variazioni di un
    concetto mediante sottoclassi concettuali del concetto stesso o
    mediante una gerarchia di stati ed un meccanismo di composizione?
       le sotto-classi possono essere usate solo se gli oggetti della
       classe non possono variare di “tipo” nel tempo
          la relazione di generalizzazione-specializzazione è per
          sempre – simile alla relazione genitore-figlio
       una gerarchia di stati può essere utilmente usata appunto nei
       casi in cui gli oggetti della classe possono variare di “tipo”
          la relazione di composizione è dinamica – è simile alla
          relazione marito-moglie – gli oggetti legati da composizione
          possono divorziare e risposarsi

    Più avanti sarà mostrata un’ulteriore tecnica utile in casi analoghi
        modellare ruoli mediante associazioni

32                        Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   * Ereditarietà
    L’ereditarietà è una relazione tra classi software
        la sottoclasse eredita la definizione degli attributi e delle
        operazioni della superclasse
        la sottoclasse può eventualmente ridefinire le operazioni che
        eredita
        gerarchie di classi software

    L gerarchia d ll classi concettuali può essere riflessa o meno nella
    La       hi delle l      i      tt li ò         ifl              ll
    gerarchia delle classi software




33                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   * Classi di associazione
    Si consideri questa situazione
        i servizi di autorizzazione assegnano un ID di negoziante a
        ciascun negozio – da usare come identificatore durante le
        comunicazioni
                                           p g                 g
        una richiesta di autorizzazione al pagamento da un negozio a un
        servizio di autorizzazione deve contenere l’ID di negoziante – per
        identificare il negozio
        un negozio ha un diverso ID di negoziante per ciascun servizio di
        autorizzazione

    Modelli sbagliati




34                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   Motivazioni
    Se una classe C può avere allo stesso tempo più valori per una
    stessa specie di attributo A
                        l attributo
        non collocare l’attributo A nella classe C
        colloca l’attributo A in una classe associata a C

    Una prima soluzione corretta

                                                        model,
                                               a better model but not
                                               yet as useful as possible
                                                                                  AuthorizationService
                   Store
                                                  Authorizes-payments-via        address
         address                                                             1 * name
                                                                             1..
         name
                                                                                 phoneNumber


                           Purchases                   ServiceContract
                                                                               Sells
                                           1..* merchantID




35                                     Raffinamento del Modello di dominio                     Luca Cabibbo – A·P·S




A    P   S   Classi di associazione
    La classe ServiceContract ha senso solo nel contesto
    dell’associazione esistente tra le due classi
        una classe di associazione permette di aggiungere attributi e
        altre caratteristiche ad un’associazione




36                                     Raffinamento del Modello di dominio                     Luca Cabibbo – A·P·S
A    P   S   Classi di associazione

                                                             Employs
                        Company                                                  Person




                a person may have                       Employment
                employment with several
                companies                          salary




                                          1                 Incarcerates
                           Jail                                                  Person




                                                             JailTerm

                                                   dateOfIncarceration




                                                                    Married-to
                                                                    Married to


                                                     0..1               0..1

                                                             Person




37                                Raffinamento del Modello di dominio                     Luca Cabibbo – A·P·S




A    P   S   Classi di associazione
    Può essere utile definire una classe di associazione se
       c’è un attributo relativo a un’associazione
       le istanze d ll classe di associazione h
       l i t      della l                i i    hanno un t           it
                                                          tempo di vita
       dipendente da quello dell’associazione
       cè                  molti a molti        concetti
       c’è una relazione molti-a-molti tra due concetti, e ci sono delle
       informazioni relative alla relazione stessa




38                                Raffinamento del Modello di dominio                     Luca Cabibbo – A·P·S
A    P   S   * Intervalli di tempo e prezzi
    Chi memorizza il prezzo di vendita di un articolo?
       nell’iterazione 1, ProductDescription
        h          d                      d tt       bi ?
       che succede se il prezzo di un prodotto cambia?

    Una possibile soluzione




39                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   Intervalli di tempo e prezzi
    Una soluzione alternativa (più semplice)




40                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   * Nomi dei ruoli delle associazioni
    Un ruolo è un’estremità di un’associazione
       il suo nome descrive il ruolo svolto dagli oggetti corrispondenti
       nell associazione
       nell’associazione




41                        Raffinamento del Modello di dominio                           Luca Cabibbo – A·P·S




A    P   S   * Ruoli come concetti e in associazioni
    Un ruolo – del mondo reale, specialmente umano – può essere
    modellato in diversi modi

                               roles in associations

                                   Employs-to-manage
                 1                                                            manager

                             Employs-to-handle-sales
             Store                                                         Person
                                                    cashier
                                                                     1
                                                                manager             worker

                                                                              g
                                                                          Manages

                                 roles as concepts


                      1         Employs                                       1
             Store                                              Manager
                                                                                      Manages
                 1
                              Employs
                                                                Cashier



42                        Raffinamento del Modello di dominio                           Luca Cabibbo – A·P·S
A    P   S   Ruoli come concetti e in associazioni
    Quali ruoli sono rappresentati come concetti? Quali come
                                    Records-sale-of        1
    associazioni?                                      Product
                                                                      Product                               Description
                                                                      Catalog            Contains
                                                                                    1                      itemID
                                                                                                    1..*
                                                                                                           description
                                                                       1                                   price
                            *                                                  Used-by
                                                                               Used by
                            Sales
                          LineItem                                     Store

                        quantity                            1    name
                                                                 address
                                   1..*
                                               Logs-completed              1
                 Contained-in                                                  Houses
                                1                                          1..*

                            Sale                                      Register

                        dateTime             Captured-on         id
                                          0..1           1
                        / total
                                                                       1
                            1         1    Is-for                                   Works-on
                  Paid-by
                 1                               1                                                     1

                  y
                Payment                   Customer                                                Cashier

             amountTendered                                                                  id


43                                        Raffinamento del Modello di dominio                                             Luca Cabibbo – A·P·S




A    P   S   * Elementi derivati
    Un elemento derivato è un elemento che può essere determinato
    (calcolato) da altri


                                           Sale
                                                                                 derived attribute
                            date
                            /total
                            time




44                                        Raffinamento del Modello di dominio                                             Luca Cabibbo – A·P·S
A    P   S   * Associazioni qualificate
    Un’associazione qualificata è un’associazione con un qualificatore
       un qualificatore è un attributo il cui valore partiziona l’insieme
                                                    l associazione
       degli oggetti collegati a un oggetto tramite l’associazione




45                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   * Raffinamenti per Monopoly
    Modello di dominio per l’iterazione 1




46                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S
A    P   S   Raffinamenti per Monopoly
    Raffinamenti al modello di dominio per l’iterazione 2




47                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S




A    P   S   Modello di dominio per l’iterazione 3




48                       Raffinamento del Modello di dominio   Luca Cabibbo – A·P·S