Si vuole sviluppare un sistema informativo per la gestione dei dati sul personale di una certa azienda costituita da diversi dipartimenti. Durante la fase di raccolta dei requisiti è stata prodotta la specifica dei requisiti mostrata di seguito. Si chiede di iniziare la fase di Analisi dei requisiti ed in particolare di:
- raffinare la specifica dei requisiti eliminando inconsistenze, omissioni o ridondanze e produrre un elenco numerato di requisiti il meno ambiguo possibile
- produrre un diagramma UML delle classi concettuale che modelli i dati di interesse, utilizzando solo i costrutti di classe, associazione, attributo.
1. Specifica dei requisiti
I dati di interesse per il sistema sono impiegati, dipartimenti, direttori dei dipartimenti e progetti aziendali. Di ogni impiegato interessa conoscere il nome, il cognome, la data di nascita e lo stipendio attuale, il dipartimento (esattamente uno) al quale afferisce. Di ogni dipartimento interessa conoscere il nome, il numero di telefono del centralino, e la data di afferenza di ognuno degli impiegati che vi lavorano. Di ogni dipartimento interessa conoscere inoltre il direttore, che è uno degli impiegati dell’azienda. Il sistema deve permettere di rappresentare i progetti aziendali nei quali sono coinvolti i diversi impiegati. Di ogni progetto interessa il nome ed il budget. Ogni impiegato può partecipare ad un numero qualsiasi di progetti.
1. Raffinamento dei requisiti
1.1. Attributi
-
Di ogni impiegato interessa
- il nome, una stringa
- il cognome, una stringa
- la data di nascita, una data
- lo stipendio attuale, un numero reale
-
Di ogni dipartimento interessa
- il nome, una stringa
- il numero di telefono del centralino, un intero
-
Di ogni progetto interessa
- il nome, una stringa
- il budget, un numero reale
1.2. Relazioni
- Ogni impiegato lavora in uno e un solo dipartimento a partire da una specifica data di assunzione.
- Ogni impiegato partecipa in zero o più progetti.
- Ogni dipartimento è diretto da uno e un solo impiegato (che lavora nello stesso dipartimento che dirige?)
2. Diagramma UML delle classi
