I diagrammi di struttura - I parte

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I diagrammi di struttura - I parte"

Transcript

1 I diagrammi di struttura - I parte Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

2 Pre-requisiti per l analisi del sistema Diagrammi dei casi d uso Le descrizione delle sequenze Alcuni scenari necessari Il documento di glossario Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

3 Analisi Si trovano le entità coinvolte Si studiano i legami tra le entità (relazioni tra le entità) Si sta individuando la struttura del sistema Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

4 Analisi vs. Progettazione L analisi modella i concetti chiave del dominio del problema. La progettazione adatta il modello di analisi e lo completa affinché diventi implementabile. In altre parole... L analisi è più vicina al problema. La progettazione è più vicina all implementazione. Dal punto di vista di UML, si usano gli stessi tipi di diagramma con diversi livelli di dettaglio (i diagrammi di analisi sono più astratti di quelli di progettazione). Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

5 Classi e oggetti Costituiscono i mattoni della struttura di un sistema. Classe: É il descrittore di un insieme di oggetti che condividono: attributi, operazioni, metodi, relazioni e comportamento. Definisce un insieme di oggetti che hanno le stesse caratteristiche. Oggetto: É un entità discreta con confini ben definiti che cattura stato e comportamento; un istanza di una classe. Nell analisi si modella il dominio del problema attraverso l uso delle classi di analisi. Sono poi raffinate nelle classi di progettazione più simili a quelle da implementare. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

6 Stato e Comportamento di un Oggetto Stato: É stabilito dai valori degli attributi di un oggetto in un dato istante. Lo stato di un oggetto dipende dal valore dei sui attributi Comportamento: Indica cosa può fare un oggetto. I comportamenti sono descritti come operazioni in analisi. L esecuzione di un operazione comporta spesso una modifica dello stato di un oggetto. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

7 Come fare l analisi Estrarre un insieme di classi partendo dalla specifica del problema. Individuate le classi ragionare su quali attributi e quali operazioni sono utili a risolvere il problema. Stendere una mappa delle classi e delle relazioni che le legano. Chiarire la dinamica che intercorrono tra le classi attraverso i diagrammi di comportamento. Procedere in maniera iterativa (per raffinamenti successivi) per produrre un modello che rappresenti efficacemente il dominio del problema. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

8 Come progettare Si raffina il modello di analisi che contiene classi abbastanza generiche. I costrutti più astratti di UML vengono trasformati in altri più concreti che possono essere implementati in un linguaggio di programmazione OO. Si considerano i vincoli di piattaforma, linguaggio, e tutti i requisiti non funzionali. Si utilizza un metodo iterativo. Il risultato è un modello pronto per l implementazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

9 Come procedere: estrarre le classi di analisi Una classe di analisi modella un concetto o entità del problema: se la specifica dei casi d uso è buona i concetti basilari sono già in evidenza. I candidati più probabili sono nomi che compaiono nella specifica e nella documentazione. Una ragione in più per tenere un glossario di progetto: le parole nel glossario sono spesso candidati ideali per diventare classi di analisi. Le classi di analisi non sopravviveranno necessariamente alla progettazione. Due metodi molto diffusi per trovare le classi di analisi: analisi nome-verbo analisi CRC Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

10 Analisi nome-verbo Si analizza tutta la documentazione disponibile e si sottolineano: I nomi: (conto corrente) sono i potenziali candidati per divenire classi o attributi. I predicati nominali: (numero del conto corrente) sono i potenziali candidati per divenire classi o attributi. I verbi: (aprire) sono potenziali candidati a divenire responsabilità di classe. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

11 Analisi CRC Class-Responsibilities-Collaborators Si tratta di un metodo di brainstorming di gruppo che coinvolge sviluppatori, esperti, committenti. Si individuano i nomi delle classi, un insieme ristretto di responsabilità (cose che la classe sa/fa) e di classi collaboratori (alle quali viene richiesto comportamento/informazione). Si usano post-it divisi in tre sezioni chiamate proprio in questo modo. Le schede sono suddivise e la loro vicinanza fisica rispecchia quella logica. Si procede iterativamente per raffinamenti successivi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

12 Esempio di sceda CRC Un esempio di scheda CRC Nome Classe: Conto Corrente Responsabilità Collaboratori Gestire saldo Banca Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

13 Le classi di analisi Le qualità di una buona classe di analisi: il suo nome ne rispecchia l intento è un astrazione ben definita, che modella uno specifico elemento del dominio del problema corrisponde ad una caratteristica ben identificabile del dominio ha un insieme ridotto e definito di responsabilità ha la massima coesione interna ha la minima interdipendenza con altre classi Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

14 Classi di analisi: regole pratiche 3-5 responsabilità per classe non isolata, collabora con un piccolo insieme di altre classi evitare il proliferare di classi troppo semplici evitare la concentrazione del modello in poche classi complesse evitare troppi livelli di ereditarietà tenere in mente i principi object-oriented Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

15 Classi e oggetti in UML Person Person -age : int +getage() : int Jim : Person age = 10 : Person Le classi possono avere fino a 3 slot: uno (obbligatorio) per il nome (in UpperCamelCase) e l eventuale stereotipo, uno per gli attributi e uno per le operazioni (opzionali). La stessa classe può apparire con diverse quantità di ornamenti in diagrammi diversi. Il titolo degli oggetti è sottolineato e del tipo nome : classe, con nome opzionale. Gli oggetti non hanno uno slot per le operazioni, possono definire valori per gli attributi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

16 Relazione tra classe e oggetto Person -age : int +getage() : int <<instanceof>> Jim : Person age = 10 Si tratta di una dipendenza con stereotipo «instanceof» (o «istanzia» sul libro). Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

17 Classe: notazione Stereotipo Nome Sottosezione attributi Sottosezione operazioni Visibilità -numero : String -correntista : String -saldo : double = 0.0 <<entity>> ContoBancario +create(numero : String, correntista : String) +deposito(somma : double) +preleva(somma : double) +getnumero() : String +getcorrentista() : String +getsaldo() : double Operazione!con!ambito!di!classe Questo livello di dettaglio è tipico delle classi di progettazione, non quelle di analisi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

18 Classi di analisi vs. classi di progettazione in UML Classi di analisi: contengono tipicamente solo pochi attributi e operazioni (candidati) a volte basta indicare solo il nome della classe pochi ornamenti, specifica incompleta (omessi tipi, signature delle operazioni, etc.) Classi di progettazione: modellano una classe del linguaggio di programmazione scelto specifica completa (implementabile) Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

19 Attributi visibilità nome molteplicità:tipo=valoreiniziale Solo il nome è obbligatorio Le classi di analisi solitamente contengono solo gli attributi più importanti (quelli che risultano evidenti dall analisi del dominio); spesso specificano solo il nome di un attributo. Assegnare un valore iniziale in una classe di analisi può evidenziare i vincoli di un problema. Le classi di progettazione forniscono una specifica completa (implementabile) della classe e dei suoi attributi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

20 Tipi di visibilità + public ogni elemento che può accedere alla classe può anche accedere a ogni suo membro con visibilità pubblica - private solo le operazioni della classe possono accedere ai membri con visibilità privata # protected solo le operazioni appartenenti alla classe o ai suoi discendenti possono accedere ai membri con visibilità protetta package ogni elemento nello stesso package della classe (o suo sottopackage annidato) può accedere ai membri della classe con visibilità package Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

21 Operazioni visibilità nome (nomeparametro:tipoparametro,... ): tiporestituito Valgono le stesse considerazioni fatte a proposito degli attributi per quanto riguarda analisi e progettazione. In ogni classe non ci possono essere due operazioni con la stessa signature. Il nome di attributi ed operazioni è scritto in lowercamelcase. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

22 Ambito Ambito di istanza: gli oggetti hanno una propria copia degli attributi, quindi oggetti diversi possono avere diversi valori negli attributi Le operazioni agiscono su oggetti specifici Ambito di classe: gli oggetti di una stessa classe condividono lo stesso valore per un attributo le operazioni non operano solo su una particolare istanza della classe, ma alla classe stessa. Ad esempio: costruttori e distruttori di classe. rappresentato sottolineando l attributo/operazione analogo alla parola chiave static in Java Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

23 Ambito e accessibilità Operazioni con ambito di istanza possono accedere sia ad altre operazioni o attributi con ambito di istanza sia con ambito di classe. Operazioni con ambito di classe possono accedere solo ad altre operazioni e attributi con ambito di classe (altrimenti non si saprebbe quale istanza scegliere). Valgono le usuali restrizioni di visibilità. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

24 Relazioni tra classi Ci sono due relazioni statiche tra classi particolarmente importanti in UML: Generalizzazione Associazione Vi sono poi altre due relazioni che possono legare le classi anche ad altri tipi di elementi: Dipendenza Realizzazione Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

25 Generalizzazione Mammal Vertebrate Relazione tassonomica tra un elemento più generale e uno che lo specifica. La freccia parte dall elemento specifico e punta verso quello più generale. Si tratta dell ereditarietà in UML. Tra tutte le relazioni, questa è la più forte e vincolante. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

26 Generalizzazione: Examples stili grafici Shape Separate target style Polygon Ellipse Spline Shape Shared target style Polygon Ellipse Spline Figure Examples of generalizations between classes Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

27 be specialized as an Employee. Here, Female Person or a Male Person of Person constitute one Generalizatio Manager another. This illustration employs the notation forms depicted in the diagram above. Insiemi di generalizzazione Person Person gender Female Person gender Male Person employment status Employee gender Female Person Male Person employment status Employee Person Person gender employment status Female Person Male Person Employee Female Person Male Person Employee Figure Multiple subtype partitions (GeneralizationSets) example Permettono di partizionare lo stesso elemento generale in modi diversi. 70 UML Superstructure Specif Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

28 Classi astratte In UML, un classificatore può essere dichiarato astratto: significa che non è istanziabile. I classificatori astratti si riconoscono per il nome in corsivo. Le classi possono definire operazioni astratte (in corsivo), di cui non è data la specifica. Una classe con almeno un operazione astratta è automaticamente una classe astratta. Una classe astratta non è istanziabile... ma i suoi figli possono esserlo. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

29 Figli di classi astratte -origin -width -height Shape +draw() +getarea() : int Rectangle +draw() +getarea() : int Circle +draw() +getarea() : int I figli forniscono il comportamento definito come astratto in Shape. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

30 Ereditarietà multipla Parent1 Parent2 Child UML supporta l ereditarietà multipla: un classificatore può ereditare da un numero arbitrario di altri classificatori. A tempo di analisi questo permette di modellare efficacemente situazioni del mondo reale. Tuttavia, classi con ereditarietà multipla dovranno essere risolte a tempo di progettazione se il linguaggio scelto non la supporta. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

31 Associazione Company employer 1 employs employee * Person Si tratta del tipo di relazione più generico: indica solo l esistenza di collegamenti (link) tra le istanze delle classi. Rappresenta l abilità di un istanza di mandare messaggi a un altra istanza. Formalmente, definisce l esistenza di tuple tra istanze tipate (se o1 è associato a o2, la coppia ordinata (o1, o2) fa parte della relazione). Può coinvolgere più di due classi e la stessa classe più di una volta. Tra le relazioni è anche la più flessibile e la meno vincolante. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

32 Sintassi delle associazioni Company employer 1 employs employee * Person Nome dell associazione. Triangolo direzionale: opzionale. Specifica la direzione in cui leggere l associazione (aumenta la leggibilità). Nome dei ruoli: opzionali a ciascun estremo. Molteplicità: opzionale a ciascun estremo. Navigabilità: opzionale indica che è possibile spostarsi da un qualsiasi oggetto della classe origine a uno o più oggetti della classe destinazione dipende dalla molteplicità Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

33 Molteplicità Company employer 1 employs employee * Person In una relazione n-aria, indica quante istanze della classe in quell estremo possono partecipare alla relazione dopo aver fissato gli altri n-1 estremi. Può essere un numero o un intervallo min..max, con * che indica l infinito. 1..3,7 significa da 1 a 3 oppure 7. Molteplicità frequenti sono: * * Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

34 Associazioni riflessive parent 0..1 File * 1 Directory child * Un associazione riflessiva coinvolge la stessa classe più di una volta. Esempio: gerarchia di file system. Se si sostituisce la molteplicità 0..1 di parent con *, si generano grafi invece di alberi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

35 Esercizio sugli oggetti istanza di associazioni riflessive parent 0..1 File * 1 Directory child * Disegnare il dagramma degli oggetti dato il diagramma delle classi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

36 Associazioni riflessive e istanze parent 0..1 File * 1 Directory child * Una possibile realtà che soddisfa l associazione... home : Directory memo.txt : File projects : Directory pictures : Directory pic01.jpg : File Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

37 Navigabilità (1) Player player playedinyear year Year Specifica se gli altri estremi dell associazione possono sapere a quali istanze sono associati. La freccia indica navigabilità. La croce indica assenza di navigabilità. La mancanza di entrambe significa navigabilità non specificata (tipico della fase di analisi). Un oggetto di tipo Player sa in quali anni ha giocato, un oggetto di tipo Year non sa quali giocatori giocarono quell anno. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

38 Navigabilità (2) The following examples show notation for navigable ends. A a 1..4 b 2..5 B C c 1..4 d 2..5 D E e 1..4 f 2..5 F G g 1..4 h 2..5 H I i 1..4 j 2..5 J Figure Examples of navigable ends Alcuni esempi di navigabilità. In Figure 7.21: The top pair AB shows a binary association with two navigable ends. The second pair CD shows a binary association with two non-navigable ends. The third pair EF shows a binary association with unspecified navigability. The fourth pair GH shows a binary association with one end navigable and the other non-navigable. Lab di Ingegneria del Software () The fifth pair IJ shows a binary association with one end navigable and the other having unspecified navigability I diagrammi di struttura - I parte A.A. 2010/ / 58

39 Notazione pratica per la navigabilità In pratica, si tende a non specificare la navigabilità di ogni estremo di ogni relazione. Un metodo diffuso è il seguente: non si usano le croci l assenza di frecce indica navigabilità in entrambe le direzioni una freccia indica navigabilità in quella direzione e assenza di navigabilità nell altra doppia navigabilità risulta indistinguibile da navigabilità non specificata, ma non è un problema in pratica Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

40 Figure Attributi come associazioni Window size 1 Area Figure Association-like notation for attribute UML permette di rappresentare un attributo di una classe con la notazione tipica di un associazione. Il nome dell attributo compare come ruolo insieme alla sua molteplicità. Non ci sono ornamenti dalla parte della classe che contiene l attributo. 52 Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

41 Classi di associazione (1) Spesso può capitare di avere un associazione tra classi e la necessità di aggiungere attributi e comportamento che non sembrano adatti a nessuna delle due classi. Ad esempio, si considerino le classi Persona e Azienda: una persona può essere occupata in molte aziende un azienda può avere più impiegati dove inserire l attributo salario? se inseriamo salario su persona potremmo avere il caso che una persona lavora per più aziende con uno stipendio diverso per ogniuna di esse se inseriamo salario come attributo della classe Azienda perchè ogni azienda impiega molte persone. questo attributo quindi non si riferisce a persona o a compagnia, ma alla loro relazione Si usano le classi di associazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

42 Classi di associazione (2) Person * Job 1..* person company Company Job salary Figure An AssociationClass is depicted by an association symbol (a with a dashed line. The diagram shows the association class Job, which is and Company. Si tratta di una classe a tutti gli effetti, chiamata come la relazione BehavioralFeature (from Kernel) Collegata alla relazione tramite una linea tratteggiata. Puoc possedere attributi, operazioni e altre associazioni. A behavioral feature is a feature of a classifier that specifies an aspect of the Il significato della classe associazione in figura è dato un Generalizations oggetto Persona e un oggetto Azienda esiste un solo oggetto Lavoro. Feature (from Kernel) on page 66 Namespace (from Kernel) on page 95 Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

43 Esempio classi associazione Disegnare il diagramma delle classi che risolve la seguente frase: Una persona può avere da zero a più cittadinanze. La cittadinanza è la relazione che esiste tra una persona e uno stato. Una persona può avere più di un lavoro retribuito in una specifica azienda. Una persona può avere al più un lavoro in diverse aziende Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

44 Reificare le classi di associazione Le classi di associazione sono un ottimo strumento di analisi... ma nella progettazione? Trasformarle in una forma implementabile significa reificarle. Si spezza l associazione in due e si trasforma in una normale classe. Company * * Person Job Company 1 * * 1 Job Person Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

45 Aggregazione e composizione Si tratta di particolari forme di associazione che rappresentano la relazione whole-part (tutto-parte) tra un aggregato e le sue parti. Aggregazione: relazione poco forte (le parti esistono anche senza il tutto; es. i computer e il loro cluster). Composizione: relazione molto forte (le parti dipendono dal tutto e non possono esistere al di fuori di esso; es. le stanze e la casa). Non è sempre semplice capire quale delle due modella meglio una situazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

46 Aggregazione e composizione: notazione Aggregazione ComputerCluster 0..1 * Computer Composizione House 1 1..* Room Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

47 Figure Derived supersets (union) Ancora sulla notazione Figure 7.24 shows the black diamond notation for composite aggrega Window scrollbar Slider 2 +title 1 +body 1 Header Panel Aggregazione e composizione possono essere combinate con le altre notazioni per le associazioni. Changes from previous UML Figure Composite aggregation is depicted as a black diamond AssociationEnd was a metaclass in prior UML, now demoted to a me Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

48 Aggregazione: semantica (1) L aggregato può in alcuni casi esistere indipendentemente dalle parti, ma in altri casi no. Le parti possono esistere indipendentemente dall aggregato. L aggregato è in qualche modo incompleto se mancano alcune delle sue parti. È possibile che più aggregati condividano una stessa parte. L aggregazione è transitiva. L aggregazione è asimmetrica. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

49 Aggregazione: semantica (2) Il vincolo più importante di una aggregazione è che le istanze devono essere acicliche. In altre parole, la parte non deve essere in grado di contenere il tutto. Se il problema richiede di avere cicli, bisogna usare una normale associazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

50 Esempio di ciclo illegale * A * :A :A :A Data un aggregazione riflessiva (es. struttura dati albero), ecco un diagramma degli oggetti non valido. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

51 Composizione: semantica (1) Ogni parte può appartenere ad un solo composito per volta. Il composito è l unico responsabile di tutte le sue parti: questo vuol dire che è responsabile della loro creazione e distruzione. Il composito può rilasciare una sua parte, a patto che un altro oggetto si prenda la relativa responsabilità. Se il composito viene distrutto, deve distruggere tutte le sue parti o cederne la responsabilità a qualche altro oggetto. In altre parole, la composizione è come l aggregazione, ma la parte non può esistere separata dal tutto. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

52 Associazioni e linguaggi di programmazione Cosa diventano le associazioni quando sono implementate in un linguaggio di programmazione? Dipende dalle caratteristiche del linguaggio e dal tipo e molteplicità dell associazione. puntatori array references oggetti Alcune associazioni vanno trasformate in una forma implementabile (reificate) durante la progettazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

53 Associazioni durante la progettazione La navigabilità viene generalmente aggiunta in fase di progettazione (le associazioni di analisi tendono ad essere bidirezionali). La navigabilità in un solo senso è vantaggiosa in vista dell implementazione. Aggregazione e composizione sono spesso aggiunte in fase di progettazione. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

54 Esercizio Che tipi di associazioni legano le seguenti proposizioni: La macchina è un mezzo di trasporto. Un mazzo di carte francesi ha 52 carte. Un anzienda ha diversi dipendenti. La bicicletta ha 2 ruote. Il sistema solare è formato da pianeti. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

55 Esercizio negozio on-line Disegnare il diagramma delle classi di analisi del seguente problema: Un negozio di articoli sportivi desidera acquistare un applicazione che permetta l acquisto on-line di alcuni articoli. I clienti si dovranno registrare. Il cliente potrà scegliere gli articoli secondo alcuni parametri raccolti nel catalogo definito dall amministratore del negozio on-line. Si potranno acquistare più articoli in una sola transazione, questi articoli formeranno un carrello. Al termine dell acquisto saranno disponibili diversi metodi di pagamento. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

56 Esercizio gestione biblioteca Viene richiesto un sistema che permetta al bibliotecario e a un utente di effettuare ricerche di libri. Il bibliotecario deve poter effettuare il prestito e gestire la restituzione del libro. Un utente deve restituire il libro entro una certa data. Se il prestito risulta scaduto per la prima volta il sistema emette un avviso, se è la seconda volta il bibliotecario registra e stampa una multa. L utente a questo punto può decidere se pagare la multa subito oppure no. Il sistema deve permettere la registrazione del pagamento. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

57 Esercizio ricerche prodotti Utilizzando il metodo CRC individuare le classi di analisi del seguente problema: Una libreria ha la necessità di un sistema che le permetta di far effettuare ricerche al suo personale nel suo catalogo. All interno della libreria vengono venduti anche dvd video, e cd musicali. Questo catalogo è consultabile anche on-line dagli utenti che hanno la carta fedeltà della libreria. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

58 Esercizio Se fosse la stessa azienda a produrre il software cosa potrebbe fare? Si potrebbe modificare le analisi fatte per rendere riusabile lavoro effettuato precedentemente? Disegna il nuovo diagramma delle classi. Lab di Ingegneria del Software () I diagrammi di struttura - I parte A.A. 2010/ / 58

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

Corso 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-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

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione 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

Dettagli

Organizzazione degli archivi

Organizzazione 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

Dettagli

Modellazione dei dati in UML

Modellazione 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):

Dettagli

Il diagramma dei casi d uso

Il diagramma dei casi d uso Il diagramma dei casi d uso Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Il diagramma dei casi d uso A.A. 2010/2011

Dettagli

Object Oriented Software Design

Object 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

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Concetti di base di ingegneria del software

Concetti 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

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/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

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence 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

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice 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

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome. Prof. Francesco Accarino Raccolta di esercizi modello ER Esercizio 1 Un università vuole raccogliere ed organizzare in un database le informazioni sui propri studenti in relazione ai corsi che essi frequentano

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera 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

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione 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

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Esercitazione su UML Ingegneria del Software - San Pietro

Esercitazione su UML Ingegneria del Software - San Pietro Esercitazione su UML Ingegneria del Software - San Pietro Veicolo Un Veicolo è composto da un Motore Veicolo: ha una targa e numero di telaio Motore: ha una cilindrata definita su n pistoni Un Pullman

Dettagli

Programmi e Oggetti Software

Programmi 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

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina Università di Roma La Sapienza A.A. 2008-2009 Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria Informatica ed Ingegneria dell Informazione Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione sulla

Dettagli

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Modello di Controllo dell Accesso basato sui ruoli (RBAC) Modello di Controllo dell Accesso basato sui ruoli (RBAC) POLITICHE RBAC Sistemi di tipo Role Based Access Control (RBAC) assegnano i privilegi non agli utenti, ma alla funzione che questi possono svolgere

Dettagli

Object Oriented Programming

Object 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

Dettagli

Esercitazione di Basi di Dati

Esercitazione 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

Dettagli

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote...

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote... Manuale d'uso Sommario Manuale d'uso... 1 Primo utilizzo... 2 Generale... 2 Gestione conti... 3 Indici di fatturazione... 3 Aliquote... 4 Categorie di prodotti... 5 Prodotti... 5 Clienti... 6 Fornitori...

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Università 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 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

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Lezione 4. Modello EER

Lezione 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)

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni 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

Dettagli

Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università

Dettagli

Guida all uso di Java Diagrammi ER

Guida 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

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE 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

Dettagli

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi 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

Dettagli

Progettazione di Basi di Dati

Progettazione 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

Dettagli

Ingegneria del Software: UML Class Diagram

Ingegneria del Software: UML Class Diagram Ingegneria del Software: UML Class Diagram Due on Mercoledì, Aprile 1, 2015 Claudio Menghi, Alessandro Rizzi 1 Contents Ingegneria del Software (Claudio Menghi, Alessandro Rizzi ): UML Class Diagram 1

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti 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

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - 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,

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

object oriented analysis

object 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

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : 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

Dettagli

Dalla progettazione concettuale alla modellazione di dominio

Dalla 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

Dettagli

Comunità on Line Manuale Utente. Fascicolo 1. Come iscriversi a Comunità On Line. Versione 1.1

Comunità on Line Manuale Utente. Fascicolo 1. Come iscriversi a Comunità On Line. Versione 1.1 Fascicolo 1 Come iscriversi a Comunità On Line Versione 1.1 Laboratorio Maieutiche - Università degli Studi di Trento Palazzo Todeschi, via Tartarotti 7, Rovereto Università degli Studi di Trento Laboratorio

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Gestione del workflow

Gestione 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

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Progettazione dei Dati

Progettazione dei Dati DIB 1 Sommario Diagramma delle Dipendenze Dai dati al data base: linea guida Note Bibliografiche DIB 2 Diagramma delle Dipendenze DIB 3 Data Modeling E un metodo che da un insieme di dati non strutturati,

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

Diagrammi dei package

Diagrammi 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

Dettagli

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1 00PrPag 19-07-2006 15:22 Pagina V Prefazione alla seconda edizione italiana Introduzione XV XVII Parte 1 Introduzione all UML e all UP 1 Capitolo 1 UML 3 1.1 Contenuto del capitolo 3 1.2 Cos è l UML? 3

Dettagli

Guida rapida all uso di Moodle per gli studenti

Guida rapida all uso di Moodle per gli studenti Guida rapida all uso di Moodle per gli studenti Introduzione La piattaforma utilizzata per le attività a distanza è Moodle, un software per la gestione di corsi on-line. Per chi accede come studente, essa

Dettagli

La Progettazione Concettuale

La 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

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Raccolta 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 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

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi 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

Dettagli

UML Unified Modeling Language

UML 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

Dettagli

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Introduzione 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

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli

Database. 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 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

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I 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

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

La 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. 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

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo 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

Dettagli

Informatica Industriale Modello funzionale Casi d uso

Informatica Industriale Modello funzionale Casi d uso DIIGA - Università Politecnica delle Marche A.A. 2006/2007 Informatica Industriale Modello funzionale Casi d uso Luca Spalazzi spalazzi@diiga.univpm.it www.diiga.univpm.it/~spalazzi/ Informatica Industriale

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. 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

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE Web.Orders online SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo

Dettagli

MODALITA DI REGISTRAZIONE

MODALITA DI REGISTRAZIONE MODALITA DI REGISTRAZIONE Oltre all Amministratore, ci sono cinque diversi tipi di utenti del Registro: - gli Operatori, le Organizzazioni e i singoli Individui, che devono registrarsi per aprire un conto

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. 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

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente Pag. 1 di 15 VERS V01 REDAZIONE VERIFICHE E APPROVAZIONI CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA A. Marchisio C. Pernumian 29/12/2014 M. Molino 27/02/2015 M. Molino

Dettagli

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Claudia Raibulet raibulet@disco.unimib.it

Claudia 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

Dettagli

DIAGRAMMA DELLE DIPENDENZE PROGETTAZIONE DEI DATI. Data Modeling. Convenzioni Grafiche

DIAGRAMMA DELLE DIPENDENZE PROGETTAZIONE DEI DATI. Data Modeling. Convenzioni Grafiche PROGETTAZIONE DEI DATI DIAGRAMMA DELLE DIPENDENZE Progettazione dei Dati 1 Progettazione dei Dati 2 Data Modeling!E un metodo che da un insieme di dati non strutturati, comunque organizzati, permette di

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Database: 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

Dettagli

Modellazione di sistema

Modellazione 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

Dettagli

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Basi 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à

Dettagli

Basi di Dati Multimediali. Fabio Strocco

Basi di Dati Multimediali. Fabio Strocco Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire

Dettagli