Molteplicita' della associazioni nei Class Diagram

BoG3
Ciao a tutti, ho una domanda da fare:
Mi trovo a studiare i Class Diagrams e non ho per nulla capito la molteplicita' delle associazioni.
Sulle schede dice che "sono il numero di entita' involte nella relazione". Ma si tratta di una molteplicita' senza vincoli di tempo o in un momento ?
E' un po' come nell'ER per i database? Eventualmetne: che differenze ci sono ?

Non so se sono stato chiaro... caso mai riposto con piu' info.
Grazie mille.

EDIT:
forse è meglio se aggiungo dettagli: l'esempio e' questo:

We have been contacted by a small software firm.
They want us to build a system for letting employees track how they spend their time when working on a computer. The idea is that of a stop-watch: the users of the system can start and stop counting the time spent on different activities; the system logs such activities and can be used to produce reports by an administrator.
The system can also be integrated with a billing system. The billing system receives all the information about the time spent by programmers on the different projects and computes the cost of projects. This information is then used to charge clients.


e la soluzione proposta dal prof è:



il mio problema è che non capisco il perchè di quelle associazioni.
Ad esempio l'associazione Employees (0..1)----->(1..n) Activity, significa che cosa? che o uno o nessuno degli impiegati puo' fare 1 o al massimo n attivita'? quindi 0 dipendeti possono fare 1 attivita'? è un modo per dire che un attivita' non è svolta da nessuno?

L'associazione Emplooys (0..1) ----> (0..1) Work dice che ci possono essere dei progetti dove non lavora nessuno? Dice anche ce una persona puo' lavorare solo su un progetto oppure su nessuno!?!?

Queste sono le domande che ho...

Risposte
apatriarca
Non ricordo i dettagli dei diagrammi ER e quindi non so dirti se sono proprio uguali. Ma l'idea di fondo è la stessa. L'associazione tra impiegati e attività dice che per ogni attività c'è al massimo un impiegato che se ne occupa (ma potrebbe anche non esserci). Ogni impiegato deve invece occuparsi di almeno una attività.

BoG3
"apatriarca":
L'associazione tra impiegati e attività dice che per ogni attività c'è al massimo un impiegato che se ne occupa (ma potrebbe anche non esserci). Ogni impiegato deve invece occuparsi di almeno una attività.

Beh... solitamente un attivita' puo' essere svolta anche da piu' persone. Se così fossea vrei avuto:

Activity (1..n) <----- ( 0..n) Employees ?

Un'altra domanda:
Perche' la relazione tra Activity (0..n)----->(0..1)Works
e' di questo tipo? Sbaglio o così si dice che un progetto puo' essere costruito da un certo numero di attivita'?
ma dice anche che un progetto puo' essere costruito da 0 attivita' (Eh ?? ). Un lavoro fatto da "nessuna attivita'"!?

PS: cosa significano, accanto ai nomi delle classi le lettere tra parentesi: (S), (C)?

apatriarca
Sulle lettere tra parentesi non ti so dire (non ho mai granché usato questi diagrammi nella pratica e le funzionalità più avanzate non me le ricordo).

Immagino che la ragione di quello zero nei lavori sia da ricercare nella possibilità che un lavoro possa venire creato prima di definire le attività che lo compongono.

BoG3
Sai che faccio? provo a mandare una mail al prof... vediamo se e cosa risponde. Poi riferisco qua :)

BoG3
Il prof mi ha risposto.
In maiuscolo ci sono le sue risposte. Metto la mail come citata:

Domanda 1:
Ad esempio, la relazione Employees (0..1) -----> (1..n) Activity, significa che 0 oppure al massimo 1 persona puo' svolgere 1 o piu' attivita'? Quindi 0 persone possono svolgere 1 attivita' ma 0 persone possono svolgere anche piu' attivita' quindi avrei delle attivita' che non sono svolte da nessuno! Questo vuol dire che se un Work è composto da n attivita', allora possono esistere k, con k<=n attivita' che hanno 0 persone che le svolgono. Pero' dato che un work di costituisce da n attivita' e per finire il work ho bisogno di fare tutte le n attivita', allora vuol dire che durante lo sviluppo del work, tutte le attivita' dovranno avere al meno 1 persona che le svolge. Quindi, l'associazione dovrebbe essere: Employees (1..1) -----> (1..n) Activity... no ?

QUESTI NUMERI VANNO LETTI AL CONTRARIO: UNA PERSONA PUO’ FARE DA 1 A N ATTIVITA’ MENTRE UN’ATTIVITA’ PUO’ ESSERE FATTA DA 0 A 1 PERSONA.

Domanda 2:
Oppure l'associazione Employees (0..1) -----> (0..1) Work, significa che 0 oppure 1 persona lavorano a 0 oppure 1 progetto.

QUESTO SIGNIFICA CHE UNA PERSONA PUO’ ESSERE ASSOCIATA A 0 O 1 PROGETTI
E
UN PROGETTO PUO’ ESSERE ASSOCIATO A 0 O 1 PERSONA

Domanda 3:
Quindi, ogni progetto, se ha qualcuno che ci lavora sopra: è solo una persona! Quindi ogni progetto è sviluppato da una persona?!

QUESTO SIGNIFICA QUELLO CHE HO SCRITTO AL PUNTO 2. NON SI PARLA DI SVILUPPO MA DI ASSOCIAZIONE, CIOE’ FARE PARTE.

Domanda 4:
Poi cosa significa (C) e (S) accanto ai nomi delle classi?

C E S NON HANNO ALCUN SIGNIFICATO.

Domanda 5:
Perchè la classe Administrator non è collegato a nulla?

SI TRATTA DI UN ESEMPIO DI CLASSE NON COLEGATA A NULLA. E’ UNA COSA POSSIBILE IN UN CLASS DIAGRAM.
TUTTE LE CLASSI NON DEVONO NECESSARIEMENTE ESSERE CONNESSE TRA DI LORO.


Magari serviranno a qualcun altro.
PS: se è un problema che le risposte siano in maiuscolo ditemelo che provvedo ad editare

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.