La modellazione degli oggetti Il modello degli oggetti Si usa in fase di progettazione del software O.O. Serve a descrivere gli oggetti che compongono l'algoritmo Si indicano gli oggetti (o insiemi di oggetti) da impiegare, le caratteristiche da considerare (dette attributi), le operazioni che interessano tali oggetti (insiemi di oggetti) le relazioni con altre classi di oggetti Modello ad oggetti Per esempio se intendiamo costruire un software che gestisca una biblioteca, gli oggetti da trattare sono sicuramente i libri ma probabilmente anche gli autori sono oggetto del programma o l'editore o anche l'utente della biblioteca che chiede il libro in prestito o lo consulta solamente. Altro esempio Potremmo avere questi insiemi di oggetti se intendiamo progettare un …. Software per la gestione dei pezzi di ricambi auto Pezzo di ricambio Fornitore Cliente Software per la gestione corsi di laurea: Piano di studi Studente Corso di laurea Diagramma delle classi Questo diagramma descrive: Gli oggetti (classi di oggetti) che intervengono Le loro proprietà da considerare (dette attributi) Le relazioni tra classi diverse di oggetti. Le operazioni (metodi) da fare con tali oggetti: stampa, ricerca, selezione … ecc. Diagramma delle classi Una classe (insieme) di oggetti si rappresenta così: Il nome della classe: La classe ha nome “reclamo” perchè vogliamo considerare tutti i possibili reclami che in un call center acquisti si presentano. Gli attributi che ci serve considerare sono: la descrizione del reclamo fatto ed un titolo. L'ID serve a numerare i reclami Metodi: Sul data base dei reclami intendiamo poter eseguire queste operazioni: - Crea record nuovo reclamo - Modifica precedente record - Chiudi reclamo (risolto) Associazioni In un algoritmo, facilmente, le diverse grandezze sono in qualche modo collegate tra loro. Una relazione di dipendenza si indica come in figura: Associazioni Ci sono 2 insiemi: I clienti del negozio I reclami presentati Ovviamente queste due classi sono collegate, poiché è proprio il cliente che presenta il reclamo. Associazioni: il grado Le associazioni hanno un grado: Unarie Binarie Ternarie Associazioni unarie Questo è il caso in cui gli elementi dell'insieme sono in relazione tra loro stessi Per esempio padre e figlio sono entrambe parte dell'insieme “persone” e sono in relazione di parentela Per evidenziare questo caso particolare si sono indicati i due ruoli (padre e figlio) +Padre Persona -----------+Cognome +Nome +Figlio Associazioni ternarie Raramente si presentano casi di insieme collegati tra loro a gruppi di 3. Può essere il caso degli insieme in figura. Acquirente. -------------+Cognome +Nome Venditore ________ + Cognome + Nome Appartament o --------------+ Indirizzo Molteplicità Nelle associazioni capita che un elemento (oggetto) dell'insieme è associabile a più elementi dell'altro. Nell'esempio del “Calla Center”, ogni cliente può certamente capitare che presenti più legami. Molteplicità Questa cosa è indicata come in figura: A destra il numero “1” per cliente A sinistra la scritta “1..n” per indicare più possibilità Molteplicità “1” indica esattamente un reclamo “*” indica molti reclami “0” indica nessun reclamo “m” indica un numero specifico di reclami “n..m” indica da n a m reclami “0..1” indica o nessuno o uno La classe “associazione” Qualche volta è utile spiegare meglio cosa faccia una associazione Indicarne attributi e metodi In tal caso esiste la “classe associazione” Workstation Utente Permesso ---------------+ privilegio +home dir --------------+ warning + log La classe “associazione” Tra gli utenti di una workstation esiste la relazione “accesso” cioè gli utenti accedono alla WS. L'accesso però avviene con un permesso che ha attributi e metodi come in figura Workstation Utente Permesso ---------------+ privilegio + home dir --------------+ warning + log La modellazione funzionale Il diagramma delle classi è di tipo statico, cioè da esso non si evince come deve evolvere nel tempo l'algoritmo ma solo quali sono le grandezze coinvolte e come sono relazionate. Per rappresentare l'evoluzione temporale del sistema (del software da creare + hardware ove gira) dobbiamo usare diagrammi dinamici. Diagrammi dinamici Si rappresenta : Quando devono attivarsi le varie componenti del sistema La reazione agli eventi esterni Come devono sincronizzarsi le varie componenti. Viene descritta la sequenza di eventi che possono verificarsi. Non interessa come sono realizzate le parti del software ma cosa fanno Modello funzionale Modello temporale → Diagrammi dei casi d'uso. Modello funzionale → Diagrammi di stato → Diagrammi di sequenza → Diagrammi di attività