Ingegneria del Software DA UML A JAVA
|
|
- Ladislao Paoli
- 8 anni fa
- Visualizzazioni
Transcript
1 DA UML A JAVA
2 The Unified Modeling Language Molte discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per descriverne la struttura, le funzionalità e le prestazioni UML cerca di rimediare a questa situazione UML è diventato uno standard di fatto per object-oriented modelling design Una famiglia di notazioni
3 Class Diagram
4 Class Diagram Definiscono la visione statica del sistema classi relazioni tra classi associazione (uso) generalizzazione (ereditarietà) aggregazione (contenimento) È forse il modello più importante perché definisce gli elementi base del sistema
5 Classi In UML una classe è composta da tre parti nome attributi (lo stato) metodi (il comportamento) Professore nome cognome create() delete() Professore create() delete() Professore Professore nome cognome
6 Visibilità Professore Professore nome: String cognome: String età: integer visualizza() sceglicorso() Professore {abstract} + nome: String # cognome: String - età: integer = 32 + visualizza() - sceglicorso()
7 Classe Ingegneria del Software Dettagli classe Attributo: visibilità nome: tipo [molteplicità] = default {stringa di proprietà} Metodo: visibilità nome (lista parametri): tipo di ritorno {stringa di proprietà} Visibilità: + public, - private, # protected, ~ friendly Parametro: direzione nome: tipo = default 7
8 Traduzione Ingegneria del Software Classe UML e classe Java public class Persona { private String nome; private String cognome; private Date datanascita; private static int numpersone; public boolean sisposa(persona p) { } public boolean compieanni(date d) { } } 8
9 Ereditarietà Le classi sono di solito organizzate in una gerarchia Le classi in cima alla gerarchia hanno caratteristiche comuni a tutte le classi Le classi più in basso ereditano attributi e servizi dalle classi superiori, ma possono essere specializzate se necessario Ereditarietà è detta generalizzazione in UML
10
11 Interfacce Ingegneria del Software Interfacce 11
12 UML package Oxygen plant Oxygen plant Pressure controller Alarm and protection (a) Package symbol Temperature controller (b) Package containing packages Un package è una cartella che contiene altre entità (oggetti, classi, altri package, ).
13 Package Ingegneria del Software Package Decomposizione gerarchica e dipendenze tra package 13
14 Associazioni Un associazione indica una relazione tra classi ad esempio persona che lavora per azienda Un associazione deve avere un nome Il nome è solitamente un verbo (un etichetta al centro della linea che definisce l associazione) Corso appare CartellaStudente
15 Molteplicità La molteplicità definisce il numero di oggetti che prendono parte alla relazione La molteplicità dice: Se l associazione è obbligatoria oppure no? Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto Corso segue Studente 0..*
16 Molteplicità (cont.) 1 Esattamente * zero o più zero o uno m..n entro gli estremi specificati
17 Esempio1 Associazioni e molteplicità in Java - persone - casa Associazioni sono attributi impliciti (con visibilità) class Persona { private Casa casa; } class Casa { private Persona[] persone; } 17
18 Ruolo Definisce il ruolo svolto nell associazione Persona lavora 1..* 0..1 Impiegato DatoreDiLavoro Azienda
19 Ruolo (cont.) Il ruolo diventa importante quando una classe è coinvolta più volte nella stessa associazione Utente proprietario 0..* utente autorizzato 0..* contenente 0..* Directory 0..* contenuto 0..1
20 Esempio2 Ingegneria del Software Associazioni riflessive e ruoli class Persona { private String nome; private String cognome; private Date datanascita; private static int numpersone; public Persona marito; public Persona moglie; public boolean sisposa(persona p) { } } public boolean compieanni(date d) { } 20
21 Esempio3 Ingegneria del Software Associazioni con ruolo e verso class Persona { private String nome; private String cognome; private String codfiscale; private int stipendio; } class Banca { private Persona[] clienti; } class Prestito { private int ammontare; private int rata; private Date datainizio; private Date datafine; private Persona intestatario; private Banca banca; } 21
22 Aggregazioni Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un oggetto (part-of) La traduzione in Java è simile al caso delle associazioni Corso 1..* Curriculum
23 Composizioni Una relazione di composizione è un aggregazione forte Le parti componenti non esistono senza il contenitore Creazione e distruzione avvengono nel contenitore I componenti non sono parti di altri oggetti Window scrollbar Slider 2 body 1 Panel close 1 Button
24 Composizione (Notazioni Alternative) Window Window 2 body:panel 1 scrollbar: Slider 1 body 2 scrollbar Panel Slider close: Button 1 1 close Button
25 Analisi Orientata agli Oggetti Object Modeling
26 Modello di un sistema Descrizione astratta del sistema di cui si stanno analizzando i requisiti Modello è una specifica in cui è inclusa anche una descrizione dell ambiente in cui il sistema dovrà operare
27 System modelling Modellare il sistema (System modelling) aiuta gli analisti a capire le funzionalità del sistema I modelli del sistema sono usati per comunicare con i committenti Diversi modelli presentano il sistema da diverse prospettive Esterna: Mostrare il contesto o l ambiente Comportamentale (Behavioural): operazione svolte dal sistema Strutturale: architettura del sistema
28 Object models Modelli a oggetti (Object models) descrivono il sistema in termini di classi di oggetti Una classe è un'astrazione di un insieme di oggetti come costituiti da attributi comuni e da servizi (operazioni) fornite da ogni oggetto. Modo naturale di descrivere le entità del mondo reale manipolate dal sistema Identificazione delle classi è un processo difficile che richiede una profonda conoscenza del domino dell'applicazione Le classi che rispecchiano il dominio dell'applicazione, sono riutilizzabili per definire sistemi diversi
29 Concetti base Oggetti Classi Relazioni tra classi Questi concetti si ritrovano nella (sono ispirati dalla) Programmazione ad Oggetti, ma lo scopo è molto diverso. Oggetti qui possono essere entità del mondo reale, non solo elementi di un programmnon sono
30 Oggetti Un oggetto è un concetto, un astrazione o una cosa con un significato ben preciso per l applicazione in esame Un oggetto è un entità: fisica concettuale software
31 Stato Lo stato rappresenta la condizione in cui si trova l oggetto Lo stato è definito dai valori delle proprietà (attributi) Gli oggetti possono essere suddivisi in: passivi (lista di nomi) attivi (orologio, persona)
32 Comportamento Determina come agisce e reagisce un oggetto cambiamenti di stato e reazioni verso altri oggetti È definito dall insieme di operazioni che l oggetto può compiere Apriti!
33 Operazioni Un operazione è un servizio fornito dagli oggetti della classe. L insieme delle operazioni definiscie il comportamento Tutte e sole le operazioni rilevanti per il dominio applicativo Bancario riceveprestito, ricevecredito, apreconto Medico faesame, prendemedicina, vaospedale
34 Classi Una classe è un gruppo di entità identificato da un insieme di caratteristiche comuni Una classe è un modello per descrivere oggetti con proprietà simili La classe è un astrazione della realtà enfatizza alcune caratteristiche tralascia altre proprietà
35 Esempi
36 Ascensore Shaft Elevator Floor Door Station Scheduler Button
37 Relazioni (associazioni) Oggetti e classi partecipano a relazioni ("associazioni" in UML) con altri oggetti e classi Associazioni possono essere annotate con informazioni che descrivono l'associazione Nessun significato formale Associazioni possono anche indicare un oggetto è associato con uno (o più) metodi o attributi di altri oggetti
38 Class Diagram
39 Classificare le entità Utile minimizzare numero delle classi per migliorare produttività e riusco. Eseguire classificazione degli oggetti, identificando fattori in comune: funzione e comportamenti Qualità (attributi). Esempio: prima classificazione suddivide in tre gruppi: sensor, controller and actuator. Gli attuatori sono fra loro identici, ma I sensori hanno dettagli diversi Cosa fare? Airspeed Roll actuator Height System controller Pitch actuator Attitude Yaw actuator (a) System Objects Sensors Airspeed Height Attitude Controllers System Actuators Roll Pitch Yaw (b) Grouping of system objects
40 L i br a ry us e r N a m e A d d re ss P h on e R e gi st ra t io n # User class hierarchy R e gi st e r () D e -r e gi st e r () Re a de r A ffil ia t io n B o rro w e r Ite m s o n l oa n M a x. lo a ns S t a ff D e p a rtm e n t D e p a rtm e n t ph on e S t ud e nt M a jo r s ub je c t H o m e a d d re ss
41 Vantaggi ereditarietà per OOA Meccanismo di astrazione utile per classificare entità e trovare relazioni fra entità simili Es.: vari tipi di sensori sono diversi ma hanno caratteristiche comuni, fattorizzabili in una classe sensore, da cui le altre ereditano. Meccanismo di riuso, sia per l'analisi del dominio, che a livello di design e di programmazione Il grafo dell'ereditarietà è sorgente di informazione organizzativa sul dominio dell'applicazione e sui sistemi realizzati, utile anche documentazione Svantaggio: Problema di leggibilità classi non sono entrocontenute: occorre leggere anche le superclassi per capirle
42 Multiple inheritance Possibilità di ereditare da più classi Può portare a conflitti fra attributi o servizi con lo stesso nome ereditati da classi diverse B o ok A u th or E d it io n P u bl ic a t io n d a t e I S B N V o ic e re c or d in g S p e ake r D u ra t io n Re c ord in g d a t e T a lk in g bo ok # Ta pe s
43 System and software design
44 Analisi vs. Design OOA Modello dei requisiti Punto di vista dell utente OOD Aggiunta di dettagli e decisioni progettuali Punto di vista del progettista Transizione OOA -> OOD presenta spesso discontinuita : scelte architetturali.
45 Object-oriented Design La progettazione del software può essere descritta come un insieme di oggetti software interagenti che gestiscono il proprio stato e le proprie operazioni Vari modelli per descrivere OOD, e UML può essere usato per rappresentarli
46 Vantaggi di OOD Manutenzione semplificata. Oggetti comprensibli come entità stand-alone Oggetti sono componenti riusabili Per molti sistemi, c'è una chiara corrispondenza fra le entità del "mondo reale" (persone, ruoli, dispositivi ) e gli oggetti del sistema
47 Oggetti in OOD/OOP Oggetto: entità in memoria, con uno stato e un insieme definito di operazioni che manipolano lo stato. lo stato è rappresentato dai valori in memoria degli attributi dell'oggetto. Le operazioni forniscono servizi ad altri oggetti (clienti), che li richiedono quando necessario. Oggetti sono creati secondo quanto definito nella classe corrispondente. Una classe è quindi uno "stampo" per creare oggetti dello stesso tipo. Include dichiarazioni di tutti gli attributi e servizi che dovrebbero essere parte degli oggetti della classe.
48 Object-oriented development Object-oriented analysis, design and programming: correlate ma distinte OOA: sviluppare un modello a oggetti del dominio applicativo e individuare le responsabilità del sistema da sviluppare OOD: sviluppare un modello object-oriented di un sistema che implementa i requisiti OOP: realizzare un design object-oriented usando un linguaggio di programmazione OO (Java, C++, ) E' possibile utilizzare solo OOA, oppure solo OOA e OOD e poi implementare in linguaggio tradizionale come C (ma allora alcuni accorgimenti )
49 Cenni ad altri diagrammi statici
50 Diagrammi dei componenti Utili per decomporre il sistema in esame
51 prenotazione Esempio Piano Pulsantiera Display visualizzazione richieste richieste visualizzazione posizione Ascensore Controllo Sistema movimento
52 Diagramma di deployment Cellulare1 Cellulare2 client.jar server.jar JME TCP/IP client.jar JME
53 Cellulare browser http/internet Web server prenota.war Application server gestprenotazioni.ear Database server prenotazioni.myd
54 Diagrammi di comportamento
55 Modellare il comportamento Comportamento: modalità di interazione fra oggetti Sequence diagrams sono utilizzati a tale scopo
56 Diagrammi di sequenza Diagrammi di sequenza I diagrammi di sequenza rappresentano interazioni tra oggetti Materializzazione di scenari specifici Sono utili per Evidenziare le interazioni tra oggetti e quindi i metodi da associare alle diverse classi Provare l efficacia dei servizi identificati 56
57 Il caso più semplice 57
58 Cosa succede se 58
59 Distribuzione di materiale in formato elettronico E c a t : C a ta l o g : L ib r a r y I te m L i b 1 : N e t S e r v e r : L ib r a r y U s e r L o o k u p D i s p l ay I ss u e I ss u e li c e n c e A c c e p t li c e nc e C o m p r e ss D e l iv e r
60 Frame di interazione Frame di interazione ref alt opt loop par neg 60
61 State Diagrams models Modellano il comportamento del sistema come risposta a eventi interni e esterni Particolarmente adatti a sistemi reattivi e in tempo reale (descrivono risposte a stimoli esterni) Stati = nodi, eventi= archi fra i nodi. Quando accade un evento il sistema si sposta da uno stato all'altro
62 StateCharts Gli Statecharts sono un'estensione degli automi a stati finiti, tipicamente utilizzati per descrivere sistemi di controllo. Dovuti a David Harel, primi anni 80. Specificano tramite diagrammi (charts) il comportamento di un sistema o di singoli oggetti La compatezza della loro rappresentazione permette di controllare l esplosione degli stati
63 Caratteristiche Una specifica e scomposta in vari oggetti comunicanti. Ogni oggetto e un automa a stati finiti descritto in termini di: Eventi a cui gli oggetti sono sensibili (segnali, chiamate di metodi, passaggio del tempo, cambi di stato di altri oggetti) Azioni prodotte in risposta agli eventi Transizioni di stato Possibilità di descrivere evoluzioni parallele e cooperanti degli oggetti. Ricca notazione grafica per rendere piu semplice la descrizione
64 StateCharts: blocchi base della notazione Stato Decomposizione OR evento [condizione] azione Decomposizione AND Transizione
65 Identificare gli stati Analizzare tutti gli stati in cui un oggetto può trovarsi Usare gli use case e gli scenari Definire un livello di dettaglio giusto e omogeneo Identificare gli attributi significativi Individuare le condizioni limite
66 Esempio (senza stato finale): centrale telefonica Chiamante.Aggancia Inattivo Chiamante.Aggancia Chiamante.Sgancia Tono T Pronto Tono TimeOut Compone(n) Compos. Numero Compone(n) T NumNonValido Messaggio Vocale Tono Occupato Occupato ProntoA Connettere NumValido Connesso Ricevente.Sgancia Tono Libero Instradato FineMessaggio
67 Inizio e Fine Inizio Bianco Muovere Matto o Abbandono Stallo o Accordo Vince Nero Mossa Bianca Mossa Nera Stallo o Accordo Patta Nero Muovere Matto o Abbandono Vince Bianco
68 Condizioni Funzioni booleane sui valori degli oggetti Opzionali, ma utili Utili quando non basta l'evento, ma si vuole aggiungere un predicato Anche evento e opzionale: ci puo essere solo condizione Evento Condizione Pronto Verde [incrocio.stato=libero] InCorsa
69 Operazioni Azioni Operazioni che hanno durata istantanea Tipicamente produzione di eventi Sono associate alle transizioni di stato oppure all'ingresso o all'uscita da uno stato Attività Sono operazioni con durata significativa Sono associate ad uno stato Continue o sequenziali Possono essere descritte con linguaggio di programmazione
70 Stato Completo In ogni stato si possono dichiarare variabili, da inizializzare opportunamente. Nome attributo1: tipo1 = val.iniziale attributo2: tipo2 = val.iniziale do: attività1 entry / azione1 exit / azione2 event1 / azione3 event2 / azione4 event3 [condizione1] / azione5 event4 [condizione2] / azione6
71 Eventi (Generati da Azioni) Spesso le azioni consistono nell'inviare un evento ad un altro oggetto : questi sono detti eventi INTERNI 0 Oggetti selezionati right-mouse-down(location) [location in window] / object:=pick-object(location) ^object.highlight() 1 Oggetto selezionato
72 Eventi (2) Gli eventi ESTERNI sono invece quelli non generati dal sistema. Gli eventi (interni e esterni) sono messi in una coda (buffer FIFO) ed estratti uno alla volta. Se nessuna transizione associata all evento e in grado di scattare, l evento e perduto. Attenzione a catene infinite di eventi in composizione parallela (A invia evento e1 a B che in risposta invia e2 ad A che invia e1 a B, )
73 State Diagram Piatti La complessità cresce esponenzialmente Descresce l espressività e la comprensibilità Diagrammi Strutturati Favoriscono la sintesi e aumentano la leggibilità Generalizzazione (macro stati) Aggregazione (stati concorrenti)
74 Diagrammi a stati strutturati Un macro stato equivale ad una scomposizione Or degli stati I sottostati ereditano le transizioni dei loro superstati Cambio Automatico levaf Folle levan levar levan RetroMarcia MarciaAvanti ferma accelera accelera Prima Seconda Terza decelera decelera
75 Altro es. di Decomposizione OR
76 History History può essere associata a stati non foglia Quando l esecuzione lascia uno stato S con history Si salva l ultimo stato visitato S1 in S Quando l esecuzione ritorna in S Si riparte da S1 A A1 B A2 H
77 Registrazione Corsi Creazione H corsi < 4 Selezione corsi corsi = 4 corsie < 2 Selezione corsi extra sospendi ricomincia corsie = 2 Sospeso giorni > 3 Salva quit Sottometti
78 Concorrenza di due attività Guida distratta Guida Normale do: guida sms do: guida do: sms clacson invia Guida Attenta do: guida piano
79 Sottostati Concorrenti. Decomposizione AND Incompleto lab1 lab2 scritto passato progetto non passato
80 Oggetti Compositi Accendino Serbatoio Fornello Vuoto carica [gas = 0] Pieno [gas > 0] Serbatoio Fornello Chiuso apri chiudi Aperto Acceso scintilla
81 Interazione fra Componenti carica Vuoto [gas = 0] Fornello apri Chiuso chiudi Serbatoio Pieno [gas > 0] Aperto scintilla [Serbatoio.stato == Pieno] Acceso
82 Stubbed Transitions A B E F W C D A B W C D
83 Microwave oven model F u ll p ow e r F u ll pow e r d o: se t po w e r = 6 00 W a it in g T i m e r d o: di sp la y ti m e F u ll p ow e r S e t ti m e d o: ge t nu m be r e xi t: s e t t im e N u m b er O p e r a ti on d o: op e r a te o ve n H a l f H a l f p ow e r p ow e r T i m e r D o or c lo se d C a nc e l D o or S t a rt H a l f p ow e r o pe n E n a bl e d D o or o pe n W a it in g d o: se t po w e r = 3 00 D o or c lo se d d o: di sp la y ' R e a dy ' d o: di sp la y ti m e D i s ab l ed d o: di sp la y ' W a it in g'
84 Microwave oven operation O p e r ati on T i m e C h ec k in g d o: c he c k s ta tu s O K d o: run C o ok ge ne ra t or T u rn ta b le fa ul t E m i tt e r fa ul t T i m eo ut A l a rm d o: di sp la y ev e nt D o ne d o: bu z z e r on for 5 s e c s. D o or o pe n C a nc e l D i s ab le d Wa it in g
Unified Modeling Language
Unified Modeling Language Luciano Baresi Luciano Baresi 1 OMT Booch UML Sono simili in molti aspetti: Prescrivono un approccio passo-passo Consentono il passaggio dall analisi al progetto in modo omogeneo
DettagliIndice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
Dettagli!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
DettagliStrumenti di modellazione. Gabriella Trucco
Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliLa specifica del problema
2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a
DettagliIdentificare le classi in un sistema
3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni
Dettagli7. Architetture Software
7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design
DettagliAutomazione Industriale 4- Ingegneria del Software
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica
DettagliRaccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13
Raccolta dei Requisiti con i Casi D'uso Corso di Ingegneria del Software Anno Accademico 2012/13 I casi d uso I casi d'uso (use case) sono una tecnica utilizzata per identificare i requisiti funzionali
DettagliCorso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E.
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Class Discovery E. TINELLI Contenuti Classi di analisi: definizione ed esempi Tecniche per la definizione
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliModellazione di sistema
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di
DettagliUniversità degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire
DettagliAlessandra Raffaetà. Basi di Dati
Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliUML Unified Modeling Language
UML Unified Modeling Language Lezione 4-1 - UML Il diagramma delle classi Parte Seconda - 2 - Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema
DettagliISTITUTO TECNICO ECONOMICO MOSSOTTI
CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche
DettagliUML. Una introduzione incompleta. UML: Unified Modeling Language
UML Una introduzione incompleta 1/23 UML: Unified Modeling Language Lo Unified Modeling Language (UML) è una collezione di notazioni grafiche che aiuta a progettare sistemi software, specialmente quelli
DettagliClaudia Raibulet raibulet@disco.unimib.it
Classi e stati Claudia Raibulet raibulet@disco.unimib.it la classe Cane modella le proprietà comuni di un insieme di oggetti quali attributi ha un cane peso colore come si comporta abbaia morde quali comandi
DettagliObject Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliDiagrammi di Flusso dei Dati
Ingegneria del Software Diagrammi di Flusso dei Dati Corso di Ingegneria del Software Anno Accademico 2012/2013 Lucidi liberamente tratti dalle dispense online del prof. Lucio Sansone, Univ. di Napoli
DettagliUML - Unified Modeling Language
UML E CASI D USO UML - Unified Modeling Language Linguaggio stardardizzato per identificare e modellizzare le specifiche di un S.I. Coerente con il paradigma della programmazione ad oggetti Definito a
DettagliConsidera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del
DettagliLezione 4. Modello EER
Lezione 4 Modello EER 1 Concetti del modello EER Include tutti i concetti di modellazione del modello ER Concetti addizionali: sottoclassi/superclassi, specializzazione, categorie, propagazione (inheritance)
DettagliIntroduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
DettagliDatabase. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014
Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche
Dettagliconnessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI
Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti
DettagliStatechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it
Statechart Diagrams Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Agenda Cosa è uno Statechart Diagram Quando
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliIntroduzione al data base
Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli
DettagliI Sistemi Informativi
I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e
DettagliEsercitazione di Basi di Dati
Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Dettagli9. Architetture di Dominio
9. Architetture di Dominio imparare dall esperienza comune Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 9. Architetture di Dominio 1 / 20 Sommario 1 Architetture
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliDiagrammi dei package
Diagrammi dei package Package Meccanismo di raggruppamento di più classi (riferito al momento della compilazione) in unità di livello più alto, al fine di dominare la complessità strutturale di un sistema
DettagliI casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
DettagliIngegneria del Software. Introduzione ai pattern
Ingegneria del Software Introduzione ai pattern 1 Definizione di pattern [dal [dal vocabolario vocabolario Garzanti] Garzanti] Alcuni esempi: Pattern architetturale Pattern di circuito stampato Pattern
DettagliINGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi
Università di Bergamo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica INGEGNERIA DEL SOFTWARE Prof. Paolo Salvaneschi 1 Obiettivi Scopi del corso: - Fornire gli elementi di base della disciplina,
DettagliDalla progettazione concettuale alla modellazione di dominio
Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliUniRoma2 - Ingegneria del Software 1 1
Object Oriented Analysis - OOA La fase di OOA definisce, secondo un approccio ad oggetti, COSA un prodotto software deve fare (mentre la fase di OOD definisce, sempre secondo un approccio ad oggetti, COME
Dettagliobject oriented analysis
object oriented analysis 1 attività di analisi l obiettivo dell analisi è raggiungere la piena comprensione del dominio di interesse lo strumento è la descrizione di un modello di dominio mediante un opportuno
DettagliTesto Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.
Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino
DettagliStefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse
Politecnico di Milano View integration 1 Integrazione di dati di sorgenti diverse Al giorno d oggi d la mole di informazioni che viene gestita in molti contesti applicativi è enorme. In alcuni casi le
DettagliIntroduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi
Introduzione alla Programmazione Orientata agli Oggetti Classi, Oggetti e Messaggi Agenda 1. La metodologia di progettazione ad oggetti Concetti fondamentali: oggetti, classi, messaggi 2. I concetti fondamentali
DettagliElementi di UML (7): Diagrammi dei componenti e di deployment
Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio
DettagliBasi di dati. Le funzionalità del sistema non vanno però ignorate
Basi di dati La progettazione di una base di dati richiede di focalizzare lo sforzo su analisi, progettazione e implementazione della struttura con cui sono organizzati i dati (modelli di dati) Le funzionalità
DettagliFasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)
Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE
DettagliLa Progettazione Concettuale
La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
DettagliSistema Informativo Geografico:
Sistemi Informativi Geografici Sistema Informativo Geografico: È un sistema informativo che tratta informazioni spaziali georeferenziate, ne consente la gestione e l'analisi. Informazioni spaziali: dati
DettagliScaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»
Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti
DettagliCosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento
Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa s'intende per Information Hiding? Impedire l'accesso a dettagli implementativi
DettagliTECNICHE DI SIMULAZIONE
TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione
DettagliING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema
Pagina: 1 e-travel ING SW Progetto di Ingegneria del Software e-travel Requisiti Utente Specifiche Funzionali del Sistema e Pagina: 2 di 9 Indice dei contenuti 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO...
DettagliEsercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliGenerazione Automatica di Asserzioni da Modelli di Specifica
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:
DettagliDatabase: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro
Database relazionali: un'introduzione Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Rappresentazione astratta di aspetti del mondo reale (Universe
DettagliTema di Progetto n 1
Ingegneria e Tecnologie dei Sistemi di Controllo L-A Tema di Progetto n 1 Si progetti in ambiente CoDeSys il controllo di sequenze di un sistema costituito da un ascensore. Si utilizzi il file AscensoreSingolo.pro
DettagliSequence Diagram e Collaboration Diagram
Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction
DettagliRelazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore
Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliNORMA CEI EN 61131. PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale
NORMA CEI EN 61131 Ing.Francesco M. Raimondi www.unipa.it/fmraimondi Lezioni del corso di Dipartimento di Ingegneria dell Automazione e dei Sistemi 1 La normativa IEC 1131 del 1993 ha standardizzato 5
DettagliLEZIONE 7 - STATE MACHINE DIAGRAM
Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 7 - STATE MACHINE DIAGRAM Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Riepilogo della lezione
DettagliAutomazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it
Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
DettagliScenario di Progettazione
Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano
DettagliLo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.
Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliEsempio ordini 08UMLEX1.1
Esempio ordini 08UMLEX1.1 Sommario Specifiche del sistema di gestione ordini Specifiche Use Case Use Case Specifiche del diagramma delle classi Diagramma delle classi Specifiche per lo scenario della richiesta
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
DettagliProgettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
DettagliBasi di dati 9 febbraio 2010 Compito A
Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli
DettagliProgrammazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it
Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3
DettagliAlcuni diagrammi. OCL (Object Constraint Language)
UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliCorso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini
Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la
DettagliGestione del workflow
Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario
DettagliLocker Management. Software. la gestione degli armadietti da personal computer, cellulare, Tablet PC ecc. monitoraggio e messaggi di allarme
Locker Management DESCRIZIONE Software (ELS Software) Applicazione WEB Supporta diversi Metra sistemi di serratura elettronica Completa gestione degli armadietti inženiring d.o.o. Špruha 19 1236 Trzin
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio
DettagliDiagrammi di Interazione
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Diagrammi di Interazione Definizioni Diagrammi di Interazione una interazione specifica i dettagli
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliProgettazione orientata agli oggetti
Progettazione orientata agli oggetti Introduzione alle tecniche orientate agli oggetti Modelli ad oggetti Oggetti, classi, associazioni, aggregazione OO - Introduzione Il compito del programmatore: collegare
DettagliDFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA
UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA DISPENSA DEL CORSO DI SISTEMI INFORMATIVI Prof. Carlo Combi DFD Appunti a cura di E. Peri M. Devincenzi Indice 1
DettagliANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1
ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1 Nelle lezioni precedenti Abbiamo definito il modello Entità- Associazione che serve a descrivere la struttura dei dati Abbiamo usato il modello per
DettagliTi consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.
Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliLa gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
Dettagli