di milanohomes.di.unimi.it/piuri/pages/didattica/sinformatici/mat/...viene introdotto il concetto di...
TRANSCRIPT
![Page 1: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/1.jpg)
PolitecnicoPolitecnicodi Milanodi Milano
![Page 2: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/2.jpg)
UMLUML
UML: Unified Modeling Language
Notazione object-oriented utilizzabile durante le fasi di analisi e design di un sistema.
E' diventato uno standard di fatto per object-oriented modelling
Evoluzione e unificazione di tre notazioni: Booch (dell'omonimo autore), OMT (di Rumbaugh) e OOSE (di Jacobson).
UML è indipendente da qualsiasi linguaggio di programmazioneUML è utilizzabile in domini applicativi diversi e per progetti di diverse dimensioniUML è estendibile per modellare meglio le diverse realtà
![Page 3: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/3.jpg)
Paradigma Object OrientedParadigma Object Oriented
E’ un paradigma di programmazione le cui caratteristiche salienti sono:
IncapsulamentoViene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai datiOggetto: istanza di una classeSi permette l’accesso ai dati solo tramite le opportune funzioni offerte dalla classe
EreditarietàSi possono definire classi che specializzano altre classi
– Esempio: la classe vettore di interi “eredita” dalla classe vettore
PolimorfismoBinding dinamico
![Page 4: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/4.jpg)
Diagrammi UMLDiagrammi UML
Viste staticheUse Case DiagramClass DiagramComponent DiagramDeployment Diagram
Viste DinamicheState DiagramActivity DiagramCollaboration Diagram
Interaction DiagramSequence Diagram
![Page 5: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/5.jpg)
PolitecnicoPolitecnicodi Milanodi Milano
Use Case Diagram Use Case Diagram
![Page 6: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/6.jpg)
Definizione dei RequisitiDefinizione dei Requisiti
Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti
Definizione del Business ModelSolitamente informale e in linguaggio naturale
Jacobson (OOSE) propone una notazione particolare che è confluita in UML
Use Case Diagram
![Page 7: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/7.jpg)
Use CasesUse Cases
Definiscono il comportamento del sistemaLe funzionalità (processi) principaliCome il sistema agisce e reagisce
DescrivonoIl sistemaL’ambiente Le relazioni fra sistema e ambiente
Diversi livelli di dettaglioScomposizione gerarchica simili ai DFD
![Page 8: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/8.jpg)
Elementi FondamentaliElementi Fondamentali
Actor: è qualcuno (utente) o qualcosa (sistemi esterni - hardware) che:
Scambia informazioni con il sistemaFornisce input o riceve output dal sistema
Use Case: è un’unità funzionale parte del sistema
![Page 9: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/9.jpg)
Relazioni FondamentaliRelazioni Fondamentali
interazione indica relazioni tra attori e casiuses indica l’uso di una certa funzionalità (utile quando funzionalità simili sono presenti in diversi contesti)extends definisce una funzionalità per estensione di una funzionalità già esistente
<uses>
<extends>
![Page 10: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/10.jpg)
Esempio: registrazione CorsiEsempio: registrazione Corsi
All’inizio dell’anno accademico, l’ufficio amministrativo dell’università fornisce agli studenti la lista di corsi disponibili, attraverso un sistema di registrazione. Il sistema deve consentire agli studenti di selezionare quattro corsi fra quelli disponibili. In aggiunta ogni studente deve indicare due alternative. Nessun corso può avere più di 10 studenti. Corsi con meno di 3 studenti vengono cancellati automaticamente.
![Page 11: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/11.jpg)
Registrazione Corsi (cont.)Registrazione Corsi (cont.)
I professori devono poter accedere al sistema per indicare i corsi in cui vorrebbero insegnare e per vedere gli studenti iscritti ai loro corsi.Il processo di registrazione dura 3 giorni.
Il primo giorno è riservato agli studenti del primo anno.Il secondo giorno è riservato agli altri studenti.Durante il terzo giorno si risolvono eventuali conflitti.
Finito il processo di registrazione, le informazioni relative ad un studente sono inviate all’ufficio contabile per determinare le tasse da pagare.
![Page 12: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/12.jpg)
Cambiamento Organizzazione Corso
Richiesta Iscritti
Professore
Selezione Corso
Gestione Professori
Gestione Studenti
Archivio
Gestione Corsi
Richiesta Catalogo Corsi
Cambiamento Piano studi
Studente
Registrazione CorsiUfficio Contabile
Registrazione CorsiRegistrazione Corsi
![Page 13: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/13.jpg)
ActorActor
Gli attori identificano i ruoliPiù utenti con lo stesso ruoloPiù ruoli per il medesimo utente
Utili per configurare il sistema in funzione dei ruoli che accedono alle funzioni di alto livello
Definizione dei permessi concessi agli utenti in base al ruolo
Utili per tracciare i requisiti del sistemaChi usa cosaRisoluzione dei conflitti fra ruoliDefinizione esigenze di sicurezza e riservatezza
![Page 14: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/14.jpg)
Use CaseUse Case
Gli use case possono essere ricavati dalle interviste con gli utenti. Si identificano
Gli obiettivi: ciò che il sistema dovrebbe fare secondo gli utentiLe interazioni: cosa vorrebbero (potrebbero) fare i diversi utenti
Gli use case di alto livello sono volutamente generici
non introdurre prematuramente scelte progettuali
![Page 15: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/15.jpg)
Use Case (cont.)Use Case (cont.)
Come individuare gli use caseAnalisi degli eventi esterni
Gli eventi rilevanti devono suscitare reazioni del sistema, cioè use case
Analisi degli attori Un attore può essere il beneficiario di uno use caseUn attore può essere coinvolto in uno use caseUn attore può essere il controllore di uno use caseUn attore può semplicemente essere informato del “completamento” di uno use case
![Page 16: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/16.jpg)
Use Case (cont.)Use Case (cont.)
Il processo di definizione degli use case è iterativoSi inizia identificando i comportamenti più sempliciSi descrivono i comportamenti alternativi e più complessi
Quando smettere?Un buon livello di dettaglio facilità tutte le attività successiveTroppi dettagli
Complicherebbero inutilmente la descrizioneIntrodurrebbero prematuramente scelte progettualiPrecluderebbero la visione d’insieme
![Page 17: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/17.jpg)
ExtendsExtends
Extends indica che uno use case è simile a un altro ma è più specifico.Si descrive lo use case più specifico per differenze rispetto a quello più generaleEsempi
Pagamento prodotto e pagamento con carta di creditoCalcola prezzo prodotto e calcola prezzo scontato
![Page 18: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/18.jpg)
Extends (cont.)Extends (cont.)
Partire dal caso più generale (relativamente al problema)“Scovare” le varianti più specifiche in base a
Differenze rispetto al caso baseTrattamenti specificiLavoro aggiuntivo
Esplicitare le specializzazioni significative rispetto al caso normale
Miglior comprensibilitàMaggior riuso
![Page 19: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/19.jpg)
UsesUses
Uses fattorizza attività ricorrenti e condivise Analogie con
Chiamata a sottoprocedura in un linguaggio di programmazione
EsempiLa richiesta del numero di CC per ogni operazione bancariaLa consultazione del catalogo di una bibliotecaLe funzioni matematiche più complesse (sin, cos, log, ecc.)
![Page 20: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/20.jpg)
cliente
impiegato
Gestione credito
Rich. ordine Ordine via Internet
extends
Dati cliente
uses
Disp. prodotto
uses
Mod. pagamento
uses
uses
Un esempioUn esempio
![Page 21: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/21.jpg)
RiassumendoRiassumendo
Extends (al contrario, Generalization)Descrive una specializzazione rispetto al caso normaleFacilita la fattorizzazione (riuso) di comportamenti “simili”
Uses (al contrario, Include)Identifica un componente (parte) di un caso più complessoMassimizza ed evidenzia i componenti riutilizzabili
![Page 22: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/22.jpg)
DocumentazioneDocumentazione
Per ogni use case:Titolo: Computo tasseAutori: Pluto e TopolinoDescrizione: Quando le iscrizioni di uno studente sono state accettate si inviano le informazioni all’ufficio contabileAttori: Ufficio contabilePre-condizioni: Studente registratoPost-condizioni: Non identificateScenari:.....
![Page 23: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/23.jpg)
ScenariScenari
Uno scenario è un’istanza di uno use caseÈ una ”esecuzione” particolare dello use caseRappresenta il comportamento (le azioni e gli eventi) del sistema nel caso particolare considerato
Gli scenari definiscono requisiti di più basso livello rispetto agli use caseGli scenari sono solitamente definiti in linguaggio naturaleUML propone una notazione particolare
Interaction Diagram
![Page 24: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/24.jpg)
ScenariScenari
Ogni use case dovrebbe essere corredato da un insieme di scenari
Scenari principali (più possibile) Tutto funziona correttamente
Scenari secondari (pochi e significativi) Eccezioni (eventuali problemi o malfunzionamenti)
Quanti scenari si devono definire?Servono tanti scenari quanti sono quelli necessari per capire il corretto funzionamento del sistema e le eccezioni che si ritengono significative in durante l’analisi
![Page 25: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/25.jpg)
Oltre l’Analisi dei RequisitiOltre l’Analisi dei Requisiti
Convalida del sistemaGli use case possono essere utilizzati per ricavare i dati di test con cui convalidare il sistema
Ogni use case rappresenta una funzionalità che andrebbe verificata
Gestione del progettoGli use case propongono una “nuova” unità di misuraGli use case potrebbero essere utili per
Organizzare il progettoStimare la complessità
![Page 26: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/26.jpg)
EsercizioEsercizio
Si definisca un semplice Use Case Diagram per modellare il sistema informativo di una società di autonoleggio. Il sistema deve gestire
le prenotazioni (sia telefoniche, che via Internet), la richiesta diretta di un’autovettura, la fatturazione, l’invio di solleciti in caso di ritardo nella riconsegna, e il parco macchine.
![Page 27: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/27.jpg)
RiassumendoRiassumendo
Gli use caserappresentano i requisiti del sistemaforniscono una base per la pianificazione ed il controllo del progetto
Il processo di definizione è un processo iterativoDal generale al grado di dettaglio richiesto
L’istanziazione degli use case avviene definendo gli scenari corrispondenti ad ogni use case
![Page 28: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/28.jpg)
Interaction DiagramInteraction Diagram
![Page 29: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/29.jpg)
Interaction DiagramInteraction Diagram
Descrivono il comportamento dinamico di un gruppo di oggetti che “interagiscono” per risolvere un problemaSono utilizzati per “formalizzare” gli scenari in termini
Entità (oggetti)Messaggi scambiati (metodi)
UML propone due diversi tipi di Interaction Diagram
Sequence DiagramCollaboration Diagram
![Page 30: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/30.jpg)
Sequence DiagramSequence Diagram
Evidenziano la sequenza temporale delle azioniNon si vedono le associazioni tra oggettiUsabili in due forme diverse
La forma generica: tutte le sequenze (esecuzioni) possibiliLa forma d’istanza: una sequenza particolare (consistente con quella generica)
![Page 31: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/31.jpg)
Paperino Selettore Informatica
scegli informatica
disponibile?
aggiungi Paperino
conferma registrazione
Sequence DiagramSequence Diagram
![Page 32: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/32.jpg)
Sequence DiagramSequence Diagram(Sistemi in Tempo Reale)(Sistemi in Tempo Reale)
Chiamante Scambio Chiamato
inizio
tono libero
componi n....
instradamento
tono attesa tel suona
risposta
stop attesa stop attesa
ab
c
d
d’
{b-a < 1 sec.}{c-b < 10 sec.}
{d’-d < 5 sec.}
Il ritardo è dovutoall’uso della rete
A questo punto iniziala conversazione
![Page 33: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/33.jpg)
EsercizioEsercizio
Si definisca un semplice Sequence Diagram per modellare il prelievo di denaro, supponiamo 200
Euro, da uno sportello Bancomat
![Page 34: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/34.jpg)
Sequence DiagramSequence Diagram(Processi Concorrenti e Attivazioni)(Processi Concorrenti e Attivazioni)
Obj1:C1op()
doit(z)
Obj3:C3
Obj2:C2
Obj4:C4
[x>=0] foo(x)
[x<0] bar(x)doit(w)
more()
![Page 35: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/35.jpg)
MessaggiMessaggi
SincroniChi invia il messaggio aspetta la conclusione dell’operazione richiesta (chiamata di procedura)
Asincroni Equivalenti a qualche forma di comunicazione tra processi)Chi invia il messaggio continua, senza aspettare la conclusione dell’operazione richiesta (comunicazione fra processi)
![Page 36: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/36.jpg)
RiassumendoRiassumendo
Uno scenario può essere rappresentato per mezzo di un Interaction Diagram
I Sequence Diagram mettono più enfasi sulla sequenza delle operazioni e possono indicare l’esistenza dei diversi oggetti
I diagrammi vanno completati con commenti testuali per fornire ulteriori dettagli
![Page 37: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/37.jpg)
PolitecnicoPolitecnicodi Milanodi Milano
Class DiagramClass Diagram
![Page 38: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/38.jpg)
Class DiagramClass Diagram
Definiscono la visione statica di un dominio classirelazioni tra classi
associazione (uso)generalizzazione (ereditarietà)aggregazione (contenimento)
È forse il modello più importante perché definisce gli elementi base del dominio
![Page 39: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/39.jpg)
ClassiClassi
Una classe è composta da tre partinomeattributi (lo stato)metodi (il comportamento)
Professore
nomecognome
create()delete()
Professore
create()delete()
Professore
nomecognome
Professore
![Page 40: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/40.jpg)
Catalogo Corsi
Professore
Elenco Iscritti
Corso Studente
Cartella Studente
Le Le classiclassi
![Page 41: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/41.jpg)
TrovareTrovare le le classiclassi e e gligli oggettioggetti
Dove guardareosservazioni di prima mano, ascoltare attivamente, considerare risultati precedenti e altri sistemi, leggere a volontà, prototipi
Cosa cercarestrutture, altri sistemi, dispositivi, cose ed eventiricordati, ruoli, procedure operative, luoghi ed unitàorganizzative
Cosa considerarememoria e comportamento necessari, molteplicità di attributi e di istanze, attributi e metodi semprepresenti, requisiti del dominio
![Page 42: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/42.jpg)
Esempio della bibliotecaEsempio della bibliotecaIdentificazione di classi e oggetti: i candidatiIdentificazione di classi e oggetti: i candidati
La biblioteca è organizzata in settori, a ciascuno dei quali corrisponde un argomento (storia, narrativa, saggistica, arti pratiche, scienza, tecnologia, fantascienza, musica, ecc.).I settori contengono documenti di vario genere: libri, riviste, materiale audio (dischi, cd, cassette) e video (cassette e video dischi). I documenti risiedono in scaffali opportunamente numerati.La biblioteca concede prestiti (fino a 15 giorni) e un singolo rinnovodi una settimana. I prestiti sono concessi agli utenti registrati. La registrazione è effettuata automaticamente su domanda dell'utente. Se la restituzione dei documenti in prestito non avviene entro termine stabilito la biblioteca avverte l’utente tramite sollecito. Se anche questa azione non sortisce effetto, si passa alla sospensionedal prestito dell’utente.
![Page 43: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/43.jpg)
Esempio della bibliotecaEsempio della bibliotecaIdentificazione di classi e oggetti: i candidatiIdentificazione di classi e oggetti: i candidati
Non tutti i documenti sono prestabili, per vari motivi (sono rari o preziosi o devono essere sempre consultabili). Le riviste contengono collezioni di articoli, che sono memorizzati singolarmente nel database di sistema. Le riviste sono presenti in copia unica e non sono prestabili.I documenti sono descritti da appositi cartellinicontenuti in schedari che gli utenti possono consultare. Ogni cartellino riporta: titolo, autore, editore e anno di emissione del documento ed altre informazioni per ciascun documento.
![Page 44: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/44.jpg)
Esempio della bibliotecaEsempio della bibliotecaIdentificazione di classi e oggetti: i candidatiIdentificazione di classi e oggetti: i candidati
biblioteca settore argomento documentolibro rivista mat. audio discoCD cassetta video video cassettavideo disco scaffale prestito giornorinnovo settimana utente azionetermine registrazione collezione articolodatabase copia cartellino schedariotitolo autore editore informazionianno descrizione restituzione sollecitosospensione sistema
![Page 45: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/45.jpg)
Esempio della bibliotecaEsempio della bibliotecaL’insieme iniziale di classiL’insieme iniziale di classi
biblioteca settore argomento documentolibro rivista audio discoCD cassetta video video cassettavideo disco scaffale prestito giornorinnovo settimana utente azionetermine registrazione collezione articolodatabase copia cartellinoschedariotitolo autore editore informazionianno descrizione restituzione sollecitosospensione sistema
![Page 46: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/46.jpg)
AttributiAttributi
Un attributo è una caratteristica della classeGli attributi non hanno identitàOgni attributo deve essere definito in modo precisoAttributi buoni per Studente
Nome, Cognome, …
Attributi cattiviCorsiScelti
![Page 47: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/47.jpg)
nomecognome
Professore
età
id nomecognome
Professore
età
Attributi (cont.)Attributi (cont.)
Gli oggetti avranno una loro identità, non bisogna aggiungerla
Codice fiscale?
![Page 48: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/48.jpg)
Attributi (cont.)Attributi (cont.)
Nomi che non sono diventati classiDurante la definizione delle classi stesseConoscenza del dominio applicativo
Persona (ambito bancario)nome, cognome, codiceFiscale, numeroConto
Persona (ambito medico)nome, cognome, allergie, peso, altezza
![Page 49: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/49.jpg)
Attributi DerivatiAttributi Derivati
Calcolati, non memorizzatiSi usano quando i loro valori variano frequentemente e la correttezza (precisione) del valore è importanteIl valore viene calcolato in base ai valori di altri attributi
età = f(dataDiNascita, oggi) area, perimetro = f(vertici)
![Page 50: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/50.jpg)
Attributi Derivati (cont.)Attributi Derivati (cont.)
PersonadataNascita : Date
/ età : int
1..*Divisione
1..*
Persona1..*
lavora
Azienda
1..*
/ impiega{età = oggi - dataNascita}
![Page 51: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/51.jpg)
Operazioni (Metodi)Operazioni (Metodi)
Un operazione è una trasformazione applicabile ad un’istanza di una classeTutte e sole le operazioni rilevanti per il dominio applicativo
BancarioricevePrestito, riceveCredito, apreConto
MedicofaEsame, prendeMedicina, vaOspedale
![Page 52: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/52.jpg)
ClassiClassi(Visibilità)(Visibilità)
Professore{abstract}
+ nome: String# cognome: String - età: integer = 32
+ visualizza()- scegliCorso()
Professore
nome: Stringcognome: Stringetà: integer
visualizza()scegliCorso()
Professore
![Page 53: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/53.jpg)
Template Class
Instantiated Class <base>
Base
Classi ParametricheClassi Parametriche(Template)(Template)
Modo sintetico per definire un insieme di classi “simili”
Le singole classi si ottengono istanziando i parametri contenuti nella definizione
![Page 54: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/54.jpg)
Vettore
T,k:integer
Vettore<char,3>
Pentagono
<<bind>> (Vertici,5)
IstanziazioneIstanziazione
![Page 55: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/55.jpg)
<<utility>>Matematica
log(int):realsin(Ang):realsqrt(int):realpower(real, int): real
Classi UtilityClassi Utility
Contengono metodi di classe e non di istanza (come i metodi static di Java)
![Page 56: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/56.jpg)
InterfacceInterfacce
Definiscono il comportamento esterno di una classe
String
uguale(String):Booleanhash():Integer
HashTable
Hashable
Comparable
![Page 57: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/57.jpg)
AssociazioniAssociazioni
Un’associazione definisce un canale di comunicazione bidirezionale fra le due classiLa molteplicità definisce il numero di istanze che prendono parte alla relazioneI link sono istanze delle associazioni
Un link connette due oggettiUn'associazione connette due classi
![Page 58: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/58.jpg)
Corso CartellaStudenteappare
AssociazioniAssociazioni
Un’associazione indica una relazione tra classiad esempio persona che lavora per azienda
Un’associazione deve avere un nomeIl nome è solitamente un verbo (un etichetta al centro della linea che definisce l’associazione)
![Page 59: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/59.jpg)
Corso Studente
3 .. 100..*
MolteplicitàMolteplicità
La molteplicità dice:Se l’associazione è obbligatoria oppure no?Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto
segue
![Page 60: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/60.jpg)
Molteplicità (cont.)Molteplicità (cont.)
1Esattamente 1
* zero o più
0..1 zero o uno
m..n entro gli estremi specificati
![Page 61: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/61.jpg)
Persona Aziendalavora
Impiegato DatoreDiLavoro
1..* 0..1
RuoloRuolo
Definisce il ruolo svolto nell’associazione
![Page 62: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/62.jpg)
Utente Directoryproprietario
utente autorizzato
contenente
conteneuto
0..*
0..*
0..* 0..*0..1
Ruolo (cont.)Ruolo (cont.)
Il ruolo diventa “importante” quando una classe è coinvolta più volte nella stessa associazione
![Page 63: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/63.jpg)
Studente Corso
Frequenzapercentualeprofitto
1..* 1..*
AttributiAttributi
Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolte
![Page 64: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/64.jpg)
Classe A Classe B
Classe C
Classe D
operationZ()<<friend>>
<<friend>>
<<calls>>
<<instantiates>>
DipendenzaDipendenza
Relazione che indica una dipendenza tra classi (es. se cambia la definzione di B, questo influenza A, C, D)
![Page 65: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/65.jpg)
Corso Curriculum1..*
AggregazioniAggregazioni
Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un oggetto (part-of)
![Page 66: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/66.jpg)
SliderPanel Button
Window
1
2
1
1
1
1scrollbar body close
2
1 1
1
1
1
ComposizioniComposizioni
Una relazione di composizione è un’aggregazione forte Le parti componenti non esistono senza il contenitore
Creazione e distruzione avvengono nel contenitoreI componenti non sono parti di altri oggetti
![Page 67: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/67.jpg)
ComposizioneComposizione(Notazioni Alternative)(Notazioni Alternative)
body:Panel
scrollbar: Slider
close: Button
Window
1
1
2body
scrollbar
close
Window
1
1
2Slider
Panel
Button
![Page 68: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/68.jpg)
Aggregazione
Corso
Precedenze
Parte
Associazioni riflessiveAssociazioni riflessive
Un’associazione è riflessiva se coinvolge oggetti della stessa classeIndicano oggetti multipli della stessa classe che sono in relazione fra loro
![Page 69: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/69.jpg)
Persona
Studente Professore
Ereditarietà (Generalizzazione)Ereditarietà (Generalizzazione)
Esplicita eventuali comportamenti comuniÈ possibile dover:
Aggiungere nuove proprietà alle classiRidefinire/modificare operazioni esistenti
ruolo ruolo
![Page 70: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/70.jpg)
VeicoliTerrestri
Veicoli
VeicoliPropUmana
Macchina Bicicletta BarcaARemi
{propulsione}{overlapping}{superficie}
EreditarietàEreditarietà(Sottoclassi non Disgiunte)(Sottoclassi non Disgiunte)
![Page 71: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/71.jpg)
Classi AstratteClassi Astratte
Poligono{abstract}
Cerchio
Figura{abstract}
Triangolo Quadrato
![Page 72: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/72.jpg)
Catalogo Corsi
Professore
Elenco Iscritti
Corso Studente
Cartella Studente
Precedenze
Registrazione CorsiRegistrazione Corsi
![Page 73: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/73.jpg)
SoluzioneSoluzione con con molteplicitamolteplicita’’
Catalogo Corsi
Professore
Elenco Iscritti
Corso Studente
Cartella Studente
3..10
Precedenze
0..*0..*
1..*1..*
1..1
1..1
1..1
1..1
1..1
0..*
1..*
![Page 74: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/74.jpg)
RiassumendoRiassumendo
Le classi sono l’elemento fondamentale di qualsiasi sistema ad oggettiIn un Class Diagram si definiscono
Le classiLe relazioni fra classi
AssociazioniAggregazioniSpecializzazioni/generalizzazioni
![Page 75: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/75.jpg)
PolitecnicoPolitecnicodi Milanodi Milano
UsoUso di UML di UML nellanella creazionecreazione di un di un documentodocumento di di progettoprogetto
![Page 76: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/76.jpg)
Struttura di un documento di Struttura di un documento di descrizione dei requisitidescrizione dei requisiti
Costituito da 3 parti:Descrizione del dominio applicativoDescrizione dei requisiti
effetti che il software deve esercitare sul dominio applicativo.
Specifica (design dell’interfaccia) della “macchina” da realizzare.
Descrizioni e specifiche possono essere scritte in qualsiasi linguaggio (informale, semi-formale, formale)
![Page 77: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/77.jpg)
Come Come procedereprocedere??
Descrizione del dominio applicativoClass diagram per identificare i fatti e le relazioni trafattiUso degli Actor per identificare gli attori che operanonel dominio applicativo
Descrizione dei requisitiUse case per descrivere gli effetti che il software deve esercitare sul dominio applicativo
Specifica dei requisitiScenari ed interaction diagram
![Page 78: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/78.jpg)
EsempioEsempio 1: 1: svilupposviluppo di di un’agendaun’agendacooperativacooperativa
Un’azienda di piccole dimensioni commissiona ad una software house lo sviluppo di un’agendadestinata all’uso da parte dei dipendentiL’agenda deve consentire agli utenti di teneretraccia degli appuntamenti e delle scadenzeimportanti che li riguardanoL’agenda deve supportare gli utentinell’organizzazione di meeting interni all’aziendaVincoli che possono originare requisiti extra-funzionali (vedremo dopo)
I dipendenti dell’azienda sono dotati di PC con sistema operativo Windows.L’azienda è cablata con una rete Ethernet a 100Mb
![Page 79: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/79.jpg)
Use caseUse case
proponente partecipanteFissa Riunione
Inserisci impegno
Visualizza agenda
Cancella impegno
utente
partecipante
Proponi riunione
proponente
GestisciRisposta
Dettaglio di Fissa Riunione
![Page 80: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/80.jpg)
Rappresentazione del dominio del problema: il diagramma delle classi
Appuntamento
Personale Lavoro
Impegno
ImpiegatoAgenda
0..n
1..n
0..n
1..n 11
Riunione
Ha a disposizione
11
ImpegnoConDurata ScadenzaData
Inizia
Finisce
![Page 81: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/81.jpg)
Rappresentazione del dominio del problema: scenario di proposta di una riunione
: proponenteagenda : Agenda
agendaCol lega : Agenda
directoryAgende : partecipante
proponi riunione
AgendaDi(nome)
proponi riunioneProponi riunione
conferma riunioneconferma riun ione
noti fica conferma
![Page 82: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/82.jpg)
Esempio 2: un sistema di controlloEsempio 2: un sistema di controllo
A simple system:a controller uses a sensor with an analog-to-digital converter to acquire information. The controller then uses an actuator to affect its environment. The system may use a temperature sensor to activate either a heater or a fan for closed-loop control. Additionally, it may use a pressure sensor to provide information about a gas line that it uses to control a valve with a stepper motor.
![Page 83: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/83.jpg)
Rappresentazione del dominio del problema: il diagramma delle classi
![Page 84: di Milanohomes.di.unimi.it/piuri/pages/didattica/SInformatici/mat/...Viene introdotto il concetto di classe: un tipo di dato a cui sono associate anche le funzioni di accesso ai dati](https://reader036.vdocuments.site/reader036/viewer/2022071414/610f1a75f49b010267203e12/html5/thumbnails/84.jpg)
EsercizioEsercizio
Completare il documento dei requisiti aggiungendogli opportuni use cases e scenari