raffinamento dei requisiti
- Officine
- nome
- indirizzo
- numero di dipendenti ( vedi 2 ) (calcolabile)
- dipendenti ( vedi 2 )
- anni di servizio
- direttore ( vedi 3 )
- Dipendenti
- nome
- codice fiscale
- indirizzo
- numero di telefono
- Direttori
- [caratteristiche dei dipendenti]
- data di nascita
- Riparazioni
- codice
- veicoli ( vedi 5 )
- data e ora di accettazione
- data e ora di consegna (se terminate)
- Veicoli
- modello
- tipo
- targa
- anno di immatricolazione
- proprietario
- Proprietari
- (caratteristiche dei dipendenti)
UML
specifica dei tipi di dato
- CF: come da standard
- NumeroTelefono: come da standard
- Targa: come da standard
- CodiceRiparazione: come da standard
specifica della classe Officina
Ogni istanza di questa classe rappresenta un’officina.
numero_dipendenti(): Intero >= 0:
pre-condizioni:
- nessuna
post-condizioni:
- l’operazione non modifica il livello estensionale
- il valore del risultato “result” è definito come segue:
- sia D l’insieme dei link di associazione “officina_dipendente” che coinvolgono “this”
- sia N la cardinalità di D
- result = N
specifica della classe Dipendente
Ogni istanza di questa classe rappresenta un dipendente.
anni_servizio(o: Officina): Intero >= 0:
pre_condizioni:
- l’oggetto di invocazione “this” è coinvolto in un link dell’associazione “dip_officina” con l’istanza “o” di Officina fornita in input
post-condizioni:
- l’operazione non modifica il livello estensionale
- il valore del risultato “result” è definito così:
- sia D il valore dell’attributo “anno_assunzione” del link “dip_officina” che coinvolge “this” e “o”
- sia A l’anno di “adesso” ???
- “result” = A - D