La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Slide 1 Lezione 6. Modelli astratti: ER, UML Class diagrams, DF [S2000, Cap. 7] [GJM91, Cap. 5] [BRJ99, Capp. 4, 5] Modelli astratti classificati secondo.

Presentazioni simili


Presentazione sul tema: "Slide 1 Lezione 6. Modelli astratti: ER, UML Class diagrams, DF [S2000, Cap. 7] [GJM91, Cap. 5] [BRJ99, Capp. 4, 5] Modelli astratti classificati secondo."— Transcript della presentazione:

1 Slide 1 Lezione 6. Modelli astratti: ER, UML Class diagrams, DF [S2000, Cap. 7] [GJM91, Cap. 5] [BRJ99, Capp. 4, 5] Modelli astratti classificati secondo il loro orientamento a rappresentare dati/funzioni/controllo. Entity-Relation (-Attribute) diagrams UML Class diagrams and class relationships dependency, generalization, association, aggregation, composition Data-Flow diagrams

2 Slide 2 System models nel contesto R.E. System models help understand data, functionality, and perhaps control aspects of the system, and to communicate with the Client. They must leave out details Different models provide complementary viewpoints about the system (not VORD viewpoints)

3 Slide 3 Sistemi = funzioni + dati + controllo Programmi Algoritmi DatiAlgoritmi LogicaControllo Sistemi Funzioni Controllo Dati

4 Slide 4 Relazioni fra modelli rispetto alle dimensioni dati/funzioni Rappresentazione di dati e loro relazioni Rappresentazione di funzioni e loro input-output E.R. O-O XFSM/P.A. Data Flow Usano ereditarieta Trattano il controllo E. R. = Entity relation O-O = Object-Oriented (Class diagrams) XFSA = Extended Finite State Machines P.A. = Process algebra (p.es LOTOS) = meno formale, incompleto (black-box), Enfatizza un solo aspetto ==> adatto alla fase dei Requirements

5 Slide 5 Formalismi rispetto Dati/Funzioni/Controllo FSM = Finite State Machines XFSM = Extended FSM PN = Petri Net Pr/T = Predicate/Transition O-O = Object-Oriented Design DFD = Data Flow Diagrams ER = Entity-Relation diagrams ADT = Abstract Data Types Z

6 Slide 6 Expressive dimensions and model applicability Requiremens analysis Design Abstract models Formal spec Software Spec. Low Level design High Level architecture ER (data) DFD (function) 1 dim. FSM, PN, Basic LOTOS (Control + Function) ADT, Z (Data + Function) 2 dim. 3 dim. XFSM, Pr/T Nets, Full LOTOS O-O (Data+Function+Control),

7 Slide 7 ER diagrams for data modeling Entity-relation-attribute (ER or ERA) model identifies the entities in the system, their relations and attributes Also used to describe the logical structure of data processed by the system Widely used in database design ==> information systems. Can readily be implemented using commercial relational databases Similar to UML Class Diagrams but classes include attributes and operations

8 Slide 8 Example: ERA structure of a Software Design Complements the DFD for the CASE toolset (slide 11) C-date: creation date M-Date: modification date La freccia serve solo a facilitare la lettura della relazione ed è indipendente dalle indicazioni di molteplicità

9 Slide 9 Node Link denota una relazione ternaria in Node X Node X Link NOTA: il diagramma non dice se e ammesso il caso (N1, N2, Link1) links e (N1, N2, Link2) links, o se uno stesso link puo essere associato a 2 coppie distinte di nodi. Node N--->Link denota una relazione ad arità non fissa in... Rimarrebbe poi da stabilire la mutua consistenza di link e has_links... U K = 0 infinito Node X Link k

10 Slide 10 nota La interpretazione delle etichette di molteplicità data da Sommerville, illustrata nella slide precedente, appare diversa da quella adottata in UML, e piu problematica… Per esempio, in una relazione Studente x Classe dove ogni studente puo seguire piu classi, e ogni classe avere piu studenti, si dovrebbero usare due stichette n per le molteplicità. Ma che senso avrebbe considerare tuple a dimensione variabile che contengono piu studenti e più classi? In UML, le relazioni sono binarie, e le molteplicità determinano semplicemente vincoli sullinsieme di coppie associato alla relazione. Ma provando ad interpretare anche la relazione links di Sommerville come binaria, e cercando di interpretare le indicazioni di molteplicità in Node Link come vincoli a questa relazione binaria, si giunge a contraddizione, poiché nellinsieme di coppie di links è vero che un link appare associato sempre a due diversi nodi, ma non sempre un nodo appare associato ad un solo link.

11 Slide 11 E-R notation [GJM91] Relations are binary, but might have attributes too. Proficiency student class enrolledIn Name Age Sex Subject CourseId MaxEnroll Relation is formed of pairs in student X class (or triples in student X class X scores)

12 Slide 12 AB RA R B is one to one AB RA R B is one to many AB RA R B is many to one AB R A R B is many to many Non si puo esprimere graficamente (formalmente) che una classe deve avere almeno 5 studenti … o che uno studente puo prendere al massimo 4 classi La relazione, sempre binaria, puo essere vincolata:

13 Slide 13 Notazioni di molteplicità da UML Risolvono parte dei limiti espressivi precedenti Ogni A e associato con un B Ogni A e associato con uno o piu B Ogni A e associato con zero o un B Ogni A e associato con zero o piu B AB AB AB AB 1 1..* 0..1 * Ammesse anche le annotazioni 11 (squadra-calciatore), 2..4 (canasta-giocatore), 2,4 (automobile-sportello).

14 Slide 14 nodelink * 2 Relazione fra nodi e link in un design (cfr. Slide 21) una classe deve avere almeno 5 studenti e uno studente puo seguire al massimo 4 classi classstudent 5..*0..4

15 Slide 15 Class diagrams in UML Descrizione di un insieme di oggetti che condividono gli stessi attributi, operazioni, relazioni, semantica. Shape origin move() resize() display() nome attributi operazioni

16 Slide 16 Attributo Una proprietà della classe, che puo assumere diversi valori nelle diverse istanze della classe: in ogni istante, un oggetto di una classe avrà uno specifico valore per ogni attributo della classe. Customer name address phone birthDate Wall height: Float width: Float thickness: Float isLoadBearing: Boolean = false Classe dell attributo Valore iniziale di default

17 Slide 17 Operazione Un servizio che puo essere richiesto a qualunque oggetto della classe, per (far) fare qualcosa alloggetto stesso, come modificare il valore di un suo attributo. Rectangle add() grow() move() isEmpty() TemperatureSensor reset() setAlarm(t: Temperature) value(): Temperature Segnatura delloperazione (classi degli argomenti e dei risultati) Funzione (restituisce un valore)

18 Slide 18 Responsabilità Un contratto o obbligo di cui una classe si fa carico. Le responsabilità di una classe sono la formulazione astratta (in testo libero) dei servizi che essa svolge. FraudAgent Responsibilities -- determine the risk of a customer order -- handle customer-specific criteria for fraud

19 Slide 19 Criteri per la identificazione di classi Come identificare le classi utili? Le classi costituiscono il vocabolario del sistema; esse modellano astrazioni di entità che si trovano già: - nel dominio del problema da risolvere (sistema da realizzare), e - nella tecnologia che si intende utilizzare per risolverlo (realizzarlo) Identificare le entità che utenti/implementatori usano per descrivere problema/soluzione. Tecniche possibili: CRC cards, use-case-based analysis 2 2. Individuare e ripartire in modo bilanciato le responsabilità fra di esse: ogni entità deve fare una cosa sola, e farla bene 3 3. Modellare in concreto ogni entitità responsabilizzata come una classe, con attributi e operazioni.

20 Slide 20 Classi per un sistema di vendita merci Queste classi modellano entità fisiche del dominio del problema Shipment Entità astratta, serve a tener traccia degli spostamenti del prodotto spedito Transaction Entità astratta, legata alla soluzione del problema

21 Slide 21 Distribuzione di responsabilità in Smalltalk Model Responsibilities -- manage the state of the model View Responsibilities -- render the model on the screen -- manage movement and resizing of the view -- intercept user events Controller Responsibilities -- synchronize changes in the model and its views

22 Slide 22 Relazioni fra classi Dopo aver individuato le classi, come modelli delle entità in gioco, vanno modellate le loro relazioni. Dependencies (relazione dinamica) »using: unautoclave usa una pompa per pompare acqua generalizations »una classe è una specializzazione di una classe piu generale »(superclass/subclass, parent/child): »una bifora è una specializzazione di una finestra associations (relazione statica) »relazioni strutturali: »una stanza consiste di pareti, soffitto, finestre, porta,…

23 Slide 23 Esempi di relazioni

24 Slide Dependency X usa Y. Un cambiamento nella classe Y di arrivo della freccia (event) puo comportare la necessità di cambiare la classe X di partenza (window), ma non viceversa. Tipica dipendenza: una operazione della classe X ha un parametro di classe Y: FilmClip name playOn(c: Channel) changeOrder() status() Channel Il metodo PlayOn lavora su c, attivando metodi di classe Channel. Se la classe Channel cambia, e non offre piu gli stessi metodi, PlayOn deve tenerne conto.

25 Slide Generalization X è una specializzazione di Y, o Y è una generalizzazione di X Gli oggetti della sottoclasse (figlio) possono essere usati ovunque vengono usati quelli della superclasse (genitore), ma non viceversa Un falegname puo essere usato ogni volta che si puo usare un uomo, ma un uomo non è sempre usabile dove serve un falegname Inheritance. Il figlio eredita gli attributi e le operazioni del padre, e spesso ne possiede altri, che lo rendono appunto specializzato. Polimorfismo. Se una sottoclasse definisce una operazione con lo stesso nome e segnatura di una operazione di una superclasse, loperazione del figlio rimpiazza quella del padre. Multiple inheritance. Una classe puo ereditare da piu super-classi.

26 Slide 26 Inheritance, abstract class, abstract operation Abstract class Abstract operation - Una classe astratta non puo essere istanziata - Una operazione astratta in classe X deve essere implementata dalle sottoclassi di X

27 Slide Association CompanyPerson Works for Name and name direction Company Person Employee Role names Employer 1..** Multiplicity Association è una relazione generica esistono due casi particolari di association: aggregation e composition

28 Slide Aggregation X has_a Y Una associazione fra un tutto e le sue parti (whole/part), che pero non implica di per sé relazioni fra le durate in vita dei due oggetti. School Student 1..*

29 Slide Composition (composite aggregation) X ha_come_parte Y E una aggregazione forte: Y appartiene a un solo X (nella aggregazione semplice no), e il suo intervallo di esistenza vita è incluso in quello di X. Parti con molteplicità non fissa possono essere create solo dopo il tutto, e muoiono assieme ad esso, o vengono esplicit. eliminate prima Il tutto gestisce la creazione e distruzione delle sue parti window Frame composition

30 Slide 30 Esempi di aggregation e composition Structural relationships

31 Slide 31 Data-flow diagrams Si diffondono dopo la pubblicazione del testo di De Marco (78) su Structured Analysis and System Specification. Il sistema è visto come una rete, in cui i nodi rappresentano funzioni, e gli archi il flusso di dati. Le funzioni possono avere diversi livelli di astrazione e complessita, dalla somma di due numeri al calcolo di una tabella di stipendi, e possono anche rappresentare funzioni svolte manualmente. Escludono la descrizione del flusso di controllo I DFD possono essere nidificati, con nodi funzione esplosi in nuovi DFD: in questo caso lo sviluppo avviene in modo top-down, o anche misto (top- down e bottom-up) Quando usati in fase di Architectural Design, descrivono lo scambio dati fra sottosistemi

32 Slide 32 Modelli simili a data-flow diagrams PERT diagrams (Project Evaluation and Review Technique) Struttura un progetto come insieme parzialmente ordinato di attività, ciascuno con una durata (non identifica i dati) Activity networks (Vedi [S2000], Fig. 4.6) - Simile a diagramma PERT, ma con nodi attività (funzione) e nodi milestone (dati). UML activity diagrams [trattate in questo corso] rappresentano esplicitamente fork e join, come Petri nets, e nodi di scelta (rombi o esagoni), come i flow charts. Predicate/Transition Petri nets [trattate in questo corso] I predicati associati alle transizioni nella rete rappresentano funzioni; il flusso dei dati è modellato, piu dettagliatamente che nei DFD, dal flusso dei token. Dataflow algorithms/architectures [Dennis et al., 1975] Il flusso di controllo è solo determinato dallarrivo dei dati agli operatori (nodi funzione), detti attori. Nei control-flow algorithms tradizionali, il controllo è gestito dal program counter. Elemento comune: ordinamento parziale delle attività (operazioni, funzioni)

33 Slide 33 DFD for processing an equipment order

34 Slide 34 DFD for equipment procurement

35 Slide 35 DFD for a CASE toolset

36 Slide 36 Data Flow Diagrams - varianti [GJM91, sez.5.5.1] Adatti a modellare le funzioni di sistemi informativi Semiformali: sintassi formale, semantica informale Function Input deviceOutput device Data-flow Data store

37 Slide 37 DFD per una espressione aritmetica +*+ * badc (a+b) * (c + a*d)

38 Slide 38 DFD per sistema informativo di una biblioteca

39 Slide 39 DFD della biblioteca: parziale raffinamento

40 Slide 40 Limiti del modello DFD La semantica di una funzione e tutta nel suo nome... + e autoesplicativa Find Book Positionlo emeno Un DFD arricchito potrebbe includere una notazione formale per definire funzioni come FindBookPosition: if author name and book title available then »Determine book position (if book exists; »Otherwise print message) elseif only the author name is given then »Provide list of all books by that author and »Ask user to select elseif only the book title is given then...

41 Slide 41 Aspetti di controllo non specificati. Es: Lordine in cui le funzioni vengono eseguite Gli eventuali segnali di controllo che attivano le funzioni Un DFD arricchito potrebbe includere archi di controllo (come in Data/Control charts di VORD) f trigger

42 Slide 42 Ambiguita sulle configurazioni in input e output in3 e out2 sono sempre necessari? Un DFD arricchito potrebbe specificare modalita AND oppure OR per gli output f in1 in2 in3 out1 out2

43 Slide 43 Ambiguita sulla capacita dei canali di flusso Sono ammesse piu istanze di d nel canale? (buffering) Un DFD arricchito potrebbe specificare per ogni canale la modalita di trasmissione synchronous / asynchronous Ambiguita sulleffetto del flusso dei dati sui data base (Shelves - {book} ? ListOfAuthors - {author} ?!) Non trattamento delle eccezioni estendibile come nei Data/Control charts di VORD f1f2 d


Scaricare ppt "Slide 1 Lezione 6. Modelli astratti: ER, UML Class diagrams, DF [S2000, Cap. 7] [GJM91, Cap. 5] [BRJ99, Capp. 4, 5] Modelli astratti classificati secondo."

Presentazioni simili


Annunci Google