Università di Pisa. Laurea Specialistica in Ingegneria dell Automazione Progetto di Controllo dei Processi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università di Pisa. Laurea Specialistica in Ingegneria dell Automazione Progetto di Controllo dei Processi"

Transcript

1 Università di Pisa Laurea Specialistica in Ingegneria dell Automazione Progetto di Controllo dei Processi Da una descrizione UML ad un Modello di Simulazione completo, realizzato in ambiente Matlab-Simulink Studenti: Roberto Nicolino, Nicola Di Lecce

2 ABSTRACT Partendo da una analisi approfondita sulle potenzialità che oggi offre Unified Modeling Language si mostra come questo linguaggio si ponga da tramite tra cliente e committente, per evitare inutili incomprensioni e per permettere la realizzazione di un modello completo e dettagliato di un sistema. Grazie ad UML è possibile realizzare simulazioni in ambiente Matlab percorrendo un processo di integrazione completo tra le due piattaforme di sviluppo 2

3 Indice 1. L UNIFIED MODELING LANGUAGE 1.1 UML: che cosa è p Perché utilizzare UML p La genesi p UML: come metamodello p Sintassi astratta p Gli strumenti di lavoro UML p Componenti UML p Il Class Diagram: approfondimenti p Use Case Diagrams: specifiche p State Diagrams p Sequence Diagrams p Deployment Diagrams p LE S-FUNTIONS 2.1 Introduzione alle S-Functions p Guida alla scrittura delle S-Functions p Panoramica sulle Routines p LO STATEFLOW MATLAB 3.1 Introduzione p Stato p Transizione p Giunzione p Eventi p Dati p DA UML A MATLAB: UN ESEMPIO 4.1 Introduzione p Scelta di componenti e attrezzature per l impianto p Il Class Diagram p

4 4.4 State Diagram p Collaboration Diagram p Sequence Diagram p Stateflow: Statechart p Riepilogo delle Regole di traduzione p Sviluppi Futuri p

5 1. L UNIFIED MODELING LANGUAGE 1.1 UML: che cosa è Lo Unified Modeling Language è un linguaggio per specificare, costruire, visualizzare e documentare manufatti sia di sistemi software, che di altri sistemi non strettamente software. UML rappresenta una collezione di best practices di ingegneria, dimostratesi vincenti nella modellazione di vasti e complessi sistemi. Lo UML permette di visualizzare, per mezzo di un formalismo rigoroso, manufatti dell ingegneria, consentendo di illustrare idee, decisioni prese, e soluzioni adottate. Tale linguaggio favorisce, inoltre, la divulgazione delle informazioni, in quanto standard internazionale non legato alle singole imprese. In teoria, un qualunque tecnico, di qualsivoglia nazionalità, dipendente della più ignota delle software house, con un minimo di conoscenza dell UML dovrebbe essere in grado di leggere il modello del progetto e di comprenderne ogni particolare senza troppa fatica e, soprattutto, senza le ambiguità tipiche del linguaggio naturale. Come al solito qualche problema può sempre emergere, ma si tratterebbe comunque di problemi di poca entità. Un conto è non comprendere qualche particolare, un altro è non comprendere assolutamente cosa voleva realizzare l autore. I vantaggi che derivano dal poter disporre di un modello del sistema sono notevoli e fin troppo evidenti. Basti pensare alla non indifferente semplificazione del processo di manutenzione che, da solo, tipicamente incide più del 50% nel ciclo di vita dei sistemi ben progettati; alla possibilità di allocare risorse aggiuntive in corso d opera, riducendo il rischio che ciò diventi controproducente. Disporre di un linguaggio per descrivere un sistema costringe il progettista stesso ad analizzare, con maggior minuzia, aspetti del sistema anche di un certo rilievo, i quali, viceversa, potrebbero incautamente venir trascurati da un analisi non molto rigorosa. Per ciò che concerne l utilizzo dello UML nello specificare, bisogna tener presente che in questo contesto l espressione si riferisce alla possibilità di realizzare modelli completi, precisi e non ambigui. Lo UML dispone di tutti i meccanismi necessari per la specifica di qualsiasi particolare ritenuto rilevante in ogni fase del ciclo di vita del progetto e quindi, in ultima analisi, per produrre modelli accurati. Lo UML, permette di realizzare modelli che si prestano ad essere implementati con diversi linguaggi di programmazione, sebbene risulti particolarmente efficace per la progettazione di 5

6 sistemi Object Oriented. In effetti è possibile realizzare un mapping esplicito tra un modello UML e un linguaggio di programmazione. Chiaramente, tale legame risulta più immediato per i linguaggi fortemente basati sul paradigma Object Oriented, quali C++, Java, Small-Talk, Ada, e così via. Gli stadi evolutivi attraverso cui si sono sviluppate le metodologie per la realizzazione del software orientato agli oggetti si basano su: Utilizzo dei primi linguaggi di programmazione orientati agli oggetti; Sviluppo di tecniche di analisi e progettazione orientate agli oggetti per aiutare la modellazione dei sistemi commerciali, l analisi dei requisiti e la progettazione di sistemi software. Il numero di queste tecniche cresce rapidamente; Nascita dell UML, progettato per combinare tra loro i vantaggi delle numerose notazioni e tecniche di analisi e progettazione, così da ottenere uno standard a livello industriale. Sul mercato sono presenti diversistrumenti, in grado di generare codice a partire dal relativo modello, sia interattivamente durante la fase di disegno, sia su richiesta. L esistenza di queste funzionalità, sebbene ancora non del tutto mature, dovrebbe far capire che l implementazione è veramente un particolare del disegno, specie con linguaggi come Java. La generazione automatica di una prima implementazione del sistema risulta particolarmente utile quando il modello deve essere realizzato parallelamente (cioè sempre!), poiché fornisce, ai diversi sviluppatori, lo scheletro eventualmente con qualche metodo implementato delle classi fondamentali del sistema che dovrebbero presentare un interfaccia stabile e ben definita. Sebbene alcuni strumenti tentino, in alcuni casi particolari, di realizzare determinati metodi con il codice appropriato, è probabilmente ancora un po prematuro azzardarsi a utilizzare appieno tale funzionalità, a meno che non si tratti di meri metodi get / set di proprietà. Il mapping tra modello e linguaggio di programmazione permette anche la realizzazione di funzioni di reverse engineering: fornendo a un opportuno tool i codici sorgenti o, talune volte anche quelli compilati, questo è in grado di ricostruire a ritroso il modello fino, ovviamente, alla fase di disegno. Purtroppo non si è ancora riusciti a realizzare un tool in grado di ricostruire i requisiti del cliente. Il processo diretto (engineering) e quello inverso (reverse engineering) determinano quello che in gergo viene definito round-trip engineering. Nel mondo ideale, la funzione di reverse 6

7 non dovrebbe mai venir utilizzata, in quello reale è invece molto apprezzata, e tutto dipende dall uso che se ne fa. In fase di disegno, probabilmente non è opportuno descrivere tutto dettagliatamente; verosimilmente è opportuno lasciare qualche margine ai programmatori (tutto in funzione delle loro capacità). Sono ritenute assolutamente naturali e accettabili modifiche del modello in fase di codifica, fintantoché queste non stravolgano il modello stesso. Durante la fase di codifica può anche accadere di accorgersi che una data libreria non funziona come dovrebbe, o che c è qualche lacuna nel modello, o che risulta opportuno cambiare qualche strategia al fine di ottenere un codice più efficiente. Tutto ciò è normalissimo. Tuttavia, nell eventualità che le modifiche generino uno stravolgimento del modello, piuttosto che procedere nell implementazione sarebbe forse necessario introdurre un opportuna iterazione della fase di disegno e successiva codifica. Un progetto, per quanto ben congegnato, potrebbe perdere gran parte del suo fascino se poco documentato, o addirittura potrebbe finire per non essere compreso e in futuro non venire correttamente aggiornato. Per terminare, lo UML fornisce sia dei meccanismi molto formali, sia del testo libero da aggiungere, ogni qual volta lo si ritenga necessario, a parti ritenute poco chiare o particolarmente complesse, al fine di aumentarne il livello di particolare. 1.2 Perché utilizzare UML Ogni qualvolta, in una disciplina dell ingegneria, vi sia la necessità di realizzare un manufatto, indipendentemente dalla dimensione e dal settore di interesse (una casa, un grattacielo, un particolare meccanismo, un ponte, un dipartimento di un azienda, e così via) si procede cercando di realizzarne un modello. L obiettivo è produrre, in tempi relativamente brevi e soprattutto a costi contenuti, una versione razionalizzata e semplificata del sistema reale che, tuttavia, consenta di evidenziarne l aspetto finale e di studiarne prestazioni, affidabilità e comportamento. I modelli, importantissimi in tutti i processi di sviluppo, trovano la loro più completa legittimazione nell ambito di sistemi di dimensioni medie e grandi. In tali circostanze la complessità di questi sistemi nella loro interezza ne rende molto difficoltosa la comprensione. È quindi maggiormente avvertita la necessità di avvalersi di modelli in grado di descrivere, in maniera semplificata, sistemi comunque complessi. 7

8 Si vedrà come lo UML, grazie alla sua organizzazione in viste (Views), risponda alla logica necessità della mente umana di concentrarsi, in ogni istante, su un numero limitato di aspetti del sistema ritenuti importanti per la particolare fase del processo di sviluppo, rimandando a momenti successivi l analisi degli aspetti rilevanti per le altre viste. Figura 1.1: La vignetta dell altalena Oltre ai motivi già citati, i modelli sono basilari poiché, avvalendosi anche del feedback fornito dai committenti, permettono di definire i requisiti del sistema in maniera chiara e, con la cooperazione del proprio gruppo, di razionalizzarne il processo di sviluppo. I vantaggi che se ne ricavano sono diversi: adeguate analisi dei tempi, migliori stime dei costi, piani più precisi di allocazione delle risorse, distribuzioni più affidabili del carico di lavoro. Si riesce quindi a risparmiare tempo e denaro, a ridurre i fattori di rischio presenti in ogni progetto, a studiare la risposta del sistema a particolari sollecitazioni, e via di seguito. Nonostante però il grande valore apportato all ingegneria del software dall utilizzo della modellazione, troppo spesso in molte organizzazioni questa meravigliosa tecnica rimane ancora una chimera. 8

9 A nessuno appartenente al settore dell ingegneria edile verrebbe in mente di costruire interamente un grattacielo, per poi studiarne la risposta a sollecitazioni di carattere sismico. Il buon senso, risorsa purtroppo sempre rara, suggerisce di procedere con la realizzazione di una versione miniaturizzata sulla quale condurre tutti gli studi del caso. Non necessariamente un processo di modellazione genera un oggetto tangibile: talvolta si tenta di rappresentare un complesso reale per mezzo di eleganti sistemi di disequazioni e quindi l intero modello si risolve in una raffinata astrazione. Tutto ciò che è fin troppo scontato in molte discipline dell ingegneria non lo è nel settore dell Informatica o dell Automazione, ad essa strettamente connessa. In molte organizzazioni la produzione del software è ancora un attività, per così dire, artigianale in cui il relativo processo di sviluppo prevede tre fasi: analisi dei requisiti, implementazione e test.. Si provi a immaginare che cosa potrebbe accadere se si avviasse la progettazione di un ponte a partire da specifiche sommarie, magari comunicate verbalmente o, peggio ancora, se si partisse subito a costruirlo materialmente, magari affidandosi all esperienza di qualche costruttore (vedi figura 1.1). Inconcepibile! Tutto ciò, benché possa sembrare fuori dal mondo, molto spesso è prassi comune nel mondo dell ingegneria informatica. Malgrado siano stati versati fiumi d inchiostro sull argomento, e svariati gruppi di ricerca lavorino a tempo pieno per la definizione di nuovi standard di analisi, in molte organizzazioni, soprattutto italiane, anche di comprovato prestigio, tale attività è ancora considerata prettamente accademica, vezzo di giovani neolaureati perché, in ultima analisi, è di scarsa utilità nel mondo reale, dove l obiettivo è produrre codice e l esperienza è in grado di sopperire a tutto. L inevitabile risultato è che spesso si procede cominciando paradossalmente da una delle ultime fasi del processo di ingegnerizzazione, ossia dalla stesura del codice (paragonabile alla costruzione del ponte di cui si parlava nell esempio). Si inizia concentrandosi prematuramente sul modo in cui redigere il codice ed, eventualmente, alla fine si scrivono due righe di analisi, magari demandando il tedioso incarico all ultimo arrivato nel team. In molte occasioni può accadere che, a progetto ultimato e pronto per la consegna, ci si accorga dell errata architettura. Non è da escludere, nel peggiore dei casi, che, per via di uno sviluppo interamente incentrato sulla fase di codifica, e quindi privo della visione globale che solo un buon processo di modellazione può apportare, sia praticamente impossibile integrare i moduli prodotti in parallelo o che sia necessario costruire estemporanei moduli di interfaccia o, ancora, che il sistema preveda percorsi così tortuosi da renderlo praticamente inutilizzabile. 9

10 Per terminare, sintetizzando al massimo il concetto si può dire che si modella essenzialmente per due motivi: aumentare la propria comprensione sia di un problema sia di eventuali soluzioni ipotizzate; comunicare. 1.3 La genesi Originariamente il lavoro fu iniziato da Grady Booch e James Rumbaugh, con l intento di produrre un nuovo metodo, detto metodo unificato che raccogliesse il meglio dei metodi Booch e OMT-2, del quale Rumbaugh era stato uno dei principali promotori. Nel 1995 si unì a loro Ivar Jacobson, fautore del metodo denominato OOSE (Object Oriented Software Engineering): il terzetto si era così costituito. L azienda che promuove il progetto è la Rational Software Corporation che, dal canto suo, provvede anche ad assorbire la Objective Systems, azienda svedese che aveva sviluppato e distribuito il software Objectory. A questo punto il quadro era completo e lo standard in lavorazione fu ribattezzato Unified Modeling Language. La prima versione, la celebre 1.0, fu disponibile nel gennaio L UML è uno strumento di analisi molto versatile, nato per risolvere le problematiche connesse con la progettazione Object Oriented del software, ma che ben si adatta a essere utilizzato negli ambienti più disparati. Esso è stato, per esempio, utilizzato alla Cadence per la produzione di un dispositivo di compressione vocale operante a livello di porta fisica. Ancora, una delle aziende fornitrici della US Navy ha utilizzato lo UML come linguaggio di progettazione di un sistema d arma di nuova generazione. Un azienda sanitaria si è avvalsa dello UML nella realizzazione di un modello per il trattamento dei pazienti, e così via. Visto l enorme successo riscosso nell applicazione industriale e nel mondo accademico e considerato il relativo riconoscimento a livello di standard (UML 1.0 è stato proposto all Object Managment Group nel gennaio 1997), gli stessi ideatori dichiararono ormai conclusa la loro esperienza in questo ambito tanto da dedicarsi a nuove sfide. Allo stato attuale lo sviluppo dell UML è affidato a una task force appartenente all OMG, la famosa RTF (Revision Task Force), diretta da Chris Kobyrn. Obiettivo di tale gruppo è accogliere e analizzare suggerimenti provenienti dalle industrie, correggere inevitabili imperfezioni (bugs) e colmare eventuali lacune. 10

11 Attualmente dovrebbe essere già disponibile le versione 2.0. L evoluzione dello UML è mostrata in fig. 1.2, attraverso il diagramma dei componenti, uno degli strumenti messi a disposizione dal linguaggio. 11

12 1.4 UML: come metamodello Lo UML è un linguaggio che permette di costruire un modello di un sistema da analizzare o da progettare, ovvero permette di realizzare una rappresentazione astratta di un sistema basata su alcuni concetti fondamentali, come classi e associazioni. I concetti base dello UML vengono usati anche per descrivere la semantica del linguaggio stesso. Si ha quindi un modello per un linguaggio di modellazione, cioè un metamodello. Ad esempio si possono consultare i diagrammi delle figure che descrivono la struttura principale del linguaggio UML, cioè la parte principale del suo metamodello. Quindi nasce il problema di rendere standard la definizione di altri linguaggi di modellazione, ognuno dei quali avrà il suo metamodello. Tra i metodologi si è ritenuto opportuno definire un linguaggio comune denominato MOF (Meta Object Facility) [MOFS] per descrivere diversi metamodelli attraverso dei meta-metamodelli (ad esempio XMI, che è il formato standard di scambio di modelli tra applicazioni di diverse piattaforme, è definito attraverso MOF). Lo UML possiede una definizione rigorosa di metamodello, istanza del meta-metamodello definito anch esso attraverso il MOF. Si tratta di concetti molto eleganti e affascinanti, ad elevato livello di astrazione. Il metamodello dello UML è descritto per mezzo dello UML stesso. Si tratta indubbiamente di una scelta molto elegante, ma ha per inconveniente che ad una prima lettura della specifica si può avere una certa confusione. Un metamodello è un modello a sua volta istanza di un meta-metamodello, fruibile per esprimere una istanza di modello: l UML (metamodello) permette di realizzare diversi modelli Object-Oriented (modelli definiti dall utente). Il metamodello dello UML definisce la struttura dei modelli UML. Un metamodello non fornisce alcuna regola su come esprimere concetti del mondo Object-Oriented, quali ad esempio classi, interfacce, relazioni e così via, ma esso rende possibile avere diverse notazioni che si conformano al metamodello stesso. Così come avviene nella relazione che lega le classi agli oggetti, una volta definita una classe si possono avere svariate istanze della stessa (oggetti), analogamente è possibile progettare un numero infinito di varianti dello UML (istanze del metamodello). Nelle sue prime apparizioni ufficiali lo UML era composto semplicemente da una notazione grafica, fruibile per rappresentare modelli di sistemi Object-Oriented. Quando poi è giunto il momento della presentazione allo OMG, per il conferimento del riconoscimento ufficiale di standard (Gennaio 1997), si è reso necessario conferirgli una veste più formale. 12

13 Così, a partire dalla versione 1.1, lo UML definisce rigorosamente un metamodello e la notazione atta alla formulazione di modelli Object-Oriented conformi ad esso. Riassumendo, un meta-metamodello è un modello che definisce un linguaggio per esprimere un metamodello. La relazione tra il meta-metamodello ed il metamodello è paragonabile a quella esistente tra il metamodello ed un modello. Figura 1.3: Meta-metamodello, metamodello e modello UML Lo UML è definito in termini del meta-metamodello denominato MOF: Meta Object Facility [MOFS]. Nella figura 1.3 viene illustrato graficamente quanto emerso fino a questo punto: relazioni esistenti tra il meta-metamodello, il metamodello ed il modello dell utente. Scorrendo il diagramma dall alto verso il basso si assiste ad una graduale diminuzione del livello di astrazione; se si fosse deciso di visualizzare un ulteriore livello si sarebbero trovate entità, istanze delle classi del modello dell utente, cioè oggetti. Se, per esempio, si realizzasse un prototipo di un sistema di commercio elettronico, a livello del modello realizzato dall architetto, si troverebbero classi (opportunamente relazionate tra loro) del tipo: Categoria, SottoCategoria, Prodotto, Utente, Profilo, e così via. Se poi si volesse 13

14 visualizzare il livello inferiore, l istanza dello user model, bisognerebbe inserire oggetti, istanze di tali classi, come per esempio il prodotto di codice X, avente prezzo Y, della categoria Z. Per avere un idea più chiara si consulti il diagramma riportato nella figura 1.4. Figura 1.4: Esempio delle relazioni ai vari gradi di astrazione tra i modelli UML Come si può notare, nel modello di analisi compare una classe denominata Ordine appartenente al dominio del problema. La classe è un istanza della metaclasse Class, presente nel package UML metamodello, e contiene attributi ed operazioni che, a loro volta, sono istanze rispettivamente delle metaclassi Attribute ed Operation. Se anche in questo caso si fosse deciso di visualizzare un ulteriore livello si sarebbero trovate le istanze delle classe Ordine, ossia oggetti del tipo ordine. 14

15 Appare che il livello di meta-metamodello ha la stessa struttura del livello di metamodello: questo fatto è causato dalla stretta relazione che c è fra MOF e UML. Infatti, a quanto si legge nella specifica ufficiale di OMG ( Meta Object Facility (MOF) Specification [MOFS]), si potrebbe avere in futuro una fusione tra i meta-metamodelli di MOF e il metamodello di UML: nel frattempo rimangono due entità distinte. In sintesi, lo UML è basato su un metamodello integrato, composto da numerosi elementi collegati fra loro secondo regole precise. Utilizzando gli elementi del metamodello è possibile creare i modelli per i sistemi da rappresentare e la maggior parte degli elementi stessi hanno un icona definita dalla notazione dello UML che li rappresenta graficamente. Gli elementi del metamodello possono comparire in diagrammi di diverso tipo e le regole sintattiche permettono di verificare la correttezza. 1.5 Sintassi astratta La sintassi astratta viene definita utilizzando la notazione dei meta-modelli. Si tratta di un sottoinsieme della notazione UML che utilizza il diagramma delle classi per definire gli elementi dei modelli UML e le relazioni che intercorrono tra loro. La figura 1.5, di seguito riportata, mostra un frammento del diagramma che definisce la sintassi astratta di UML. UML specification permette la definizione di un metodo, dei sui attributi e delle sue associazioni anche in linguaggio naturale. Questo diagramma mostra che Operazione e Metodo sono meta-classi, entrambe sottoclassi della meta-classe astratta ProprietàComportamentale, e che Operazione è una specifica di Metodo. Mentre un Operazione possiede un attributo specifica, un Metodo ha solo come attributo un corpo: la specifica nella meta-classe Operazione è una stringa che definisce il prototipo (signature) dell operazione (il suo valore di ritorno, nome e parametri). 15

16 ProprietàComportamentale Query: boolean Operazione Concorrenza: CallConcurrencyKind Radice: boolean Foglia: boolean Astratto: boolean Specifica: String 1 * +specifica Metodo Corpo: ProcedureExpression Figura 1.5: Frammento della sintassi astratta di UML Il corpo nella meta-classe Metodo è una procedura, probabilmente scritta in un linguaggio di programmazione, che definisce come il metodo implementa l operazione. Una determinata istanza di un operazione in una classe è un istanza della meta-classe Operazione. Metodo Un metodo è l implementazione di un operazione, esso descrive l algoritmo o la procedura che genera i risultati di un operazione. Nel meta-modello, un Metodo è una dichiarazione di un comportamento ben specifico in un Classificatore e realizza una (quindi direttamente) o un insieme (allora indirettamente) di Operazioni del Classificatore. Attributi Corpo L implementazione del Metodo come ProcedureExpression. Associazioni Specifica Indica un Operazione implementata dal Metodo. L Operazione deve essere contenuta nel Classificatore che possiede il Metodo o essere ereditata da esso. Le signature dell Operazione e del Metodo devono corrispondere. Esiste un analoga specifica per Operazione e per ogni altra meta-classe del meta-modello. 16

17 Regole sintattiche Le regole sintattiche che generano espressioni ben formate si applicano a istanze delle meta-classi, ossia ad operazioni, metodi, classi e tutto ciò che si trova a livello del modello. Esse forniscono le regole cui devono obbedire le istanze delle meta-classi, come un insieme di invarianti. Gli invarianti sono vincoli che non possono essere spezzati: devono sempre risultare veri perché il modello abbia significato. Sono descritti in Object Constraint Language (OCL). Ad esempio, la specifica della meta-classe Class afferma che se la classe è concreta (non astratta), allora ogni operazione dovrebbe avere un metodo che la realizza. Il vincolo seguente è scritto in OCL. Not self.astratto implies self.ognioperazione -> perogni (op self.ognimetodo -> esiste (m m.specifica -> include (op))) Questi vincoli sul meta-modello possono essere utilizzati per verificare che il modello si attenga alle regole di UML e sia ben formato. Si noti che OCL viene utilizzato all interno di UML per esprimere vincoli interni al modello. Per esempio, se una delle regola di un sistema per condividere i viaggi, prevede che ogni viaggio legato da un contratto di condivisione deve essere svolto da un diverso Car Sharer (persona che condivide la propria macchina), questo potrebbe essere espresso in OCL nel seguente modo: context ContrattoCondivisione inv: self.condiviso->forall (i, j (i.viaggia = j.viaggia) implies i = j) In italiano, questo significa che nel contesto della classe ContrattoCondivisione c'è una regola invariante definita come segue: se si prende ogni possibile coppia di collegamenti tra un'istanza di ContrattoCondivisione e istanze di Viaggio basate sull associazione Condiviso, e per ogni membro della coppia si segue il collegamento basato sull'associazione viaggia fino a un'istanza della classe Car Sharer e se tali collegamenti sono gli stessi, anche i due viaggi sono uguali. E dato che i due viaggi sono in realtà lo stesso viaggio, ne deriva che due diversi viaggi appartenenti allo stesso Car Sharer non possono essere condivisi all'interno dello stesso accordo di condivisione. 17

18 Semantica La semantica di UML è descritta in linguaggio naturale. Per esempio, quella che segue è la descrizione della meta-classe Operazione (vedi figura 1.5). Un Operazione è un costrutto concettuale, mentre il Metodo è il costrutto per l implementazione. Le loro caratteristiche comuni, come possedere una segnature, sono espresse rispettivamente nella meta-classe ProprietàComportamentale e nella semantica specifica dell Operazione. I costrutti del Metodo sono definiti nella corrispondente sottoclasse di ProprietàComportamentale. Tuttavia la maggior parte delle informazioni relative alle operazioni si trova nella definizione di Classe. La comprensione completa della semantica richiederebbe la lettura approfondita di tutta questa parte. 1.6 Gli strumenti di lavoro UML Come ogni linguaggio che si rispetti anche l'uml necessita di tools appropriati che ne agevolino l'utilizzo. Servirsi di carta e penna è sicuramente sempre valido ma non può certamente garantire da solo un risultato apprezzabile. Ci sono sul mercato tanti tools che trattano l'uml. Probabilmente, però, il più diffuso è lo strumento della Rational, Il Rose. Il Rational Rose è stato disegnato per fornire ai team di sviluppo tutti gli strumenti necessari per il modellamento di soluzioni robuste ed efficienti. La Microsoft ha prodotto uno strumento che permette di definire un sottoinsieme dei modelli che il Rational Rose mette a disposizione: il Microsoft Visual Modeler. Tale software si può consigliare a chi si avvicina per la prima volta al mondo del Visual Modeling. Il Microsoft Visual Modeler permette, tra l'altro, di: Identificare e disegnare oggetti del business e mapparli in componenti software; Descrivere come i componenti possono essere distribuiti su una rete; Generare codice base Visual Basic direttamente dalla costruzione del modello; Utilizzare il reverse engineering per creare i modelli da applicazioni già esistenti. 18

19 Altro strumento da segnalare è UMLet, un software open source basato su Java che permette la scrittura di diagrammi UML. Tra le opzioni, la possibilità di esportare i diagrammi in SVG, JPG e PDF. 1.7 Componenti UML Il linguaggio UML contiene svariati elementi grafici che vengono messi insieme durante la creazione dei diagrammi. Dato che l'uml è un linguaggio, come tale utilizza delle regole per combinare i componenti nella creazione dei diagrammi. L'obiettivo dei diagrammi è quello di costruire molteplici viste di un sistema tutte correlate tra di loro. L'insieme di tali viste costituirà quello che abbiamo definito Visual Modeling. Si passano ora in rassegna, brevemente, tutti i diagrammi UML prima di analizzarli più dettagliatamente in seguito. La notazione UML include dieci tipi di diagrammi, divisi in cinque categorie. Si tenga presente che è assolutamente possibile costruire e aggiungere dei diagrammi differenti dagli standard (che vengono definiti ibridi) rispetto a quelli definiti dal linguaggio. La tabella 1.1 mostra le categorie e i diagrammi corrispondenti. Tabella 1.1: Classificazione dei diagrammi UML 19

20 Class Diagram Per avere una idea immediata di cosa sia una classe è possibile usare come esempio il fatto che tutti gli oggetti o esseri viventi, spesso, sono riconducibili a determinate categorie (computers, automobili, piante, animali). Queste categorie costituiscono le classi. Una classe è una categoria o un gruppo di oggetti (con questo termine si includono, per comodità anche gli esseri viventi) che hanno attributi simili e comportamenti analoghi. I Class Diagrams forniscono le rappresentazioni utilizzate dagli sviluppatori. Object Diagram Un oggetto è una istanza di una classe, ovvero una qualcosa di specifico che ha dei valori determinati per i suoi attributi e dei comportamenti specifici. Use Case Diagram Uno Use Case (caso d'uso) è una descrizione di un comportamento particolare di un sistema dal punto di vista dell'utente. Per gli sviluppatori, gli use case diagram rappresentano uno strumento notevole: infatti tramite tali diagrammi, essi possono agevolmente ottenere una idea chiara dei requisiti del sistema dal punto di vista utente e quindi scrivere il codice senza timore di non aver recepito bene lo scopo finale. Nella rappresentazione grafica, viene utilizzato un simbolo particolare per l'actor (l'utente o un altro sistema che interagisce) che si vedrà in seguito. L'actor è l'entità che interagisce con uno use case facendo partire la sequenza di azioni descritte dallo use case stesso e, eventualmente, ricevendo delle precise risposte dal sistema. Può essere una persona o anche un altro sistema. State Diagram Ad un determinato istante, durante il funzionamento del sistema, un oggetto si trova in un particolare stato. Gli State Diagrams rappresentano tali stati, ed i loro cambiamenti nel tempo. Ogni state diagram inizia con un simbolo che identifica lo stato iniziale (Start State) e termina con un altro simbolo che rappresenta lo stato finale (End State). Per esempio, ogni persona può essere identificato dai seguenti stati: neonato, bambino, adolescente, adulto, anziano. 20

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

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

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

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

Progettazione orientata agli oggetti Introduzione a UML

Progettazione orientata agli oggetti Introduzione a UML Progettazione orientata agli oggetti Introduzione a UML Claudia Raibulet raibulet@disco.unimib.it Il processo di sviluppo software Rappresenta un insieme di attività per la specifica, progettazione, implementazione,

Dettagli

Introduzione a UML. Iolanda Salinari

Introduzione a UML. Iolanda Salinari Introduzione a UML Iolanda Salinari Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare

Dettagli

Introduzione ad UML. Perché modelliamo

Introduzione ad UML. Perché modelliamo Introduzione ad UML Pag. 1 Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare la

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

UML un linguaggio universale per la modellazione del software. Adriano Comai

UML un linguaggio universale per la modellazione del software. Adriano Comai UML un linguaggio universale per la modellazione del software Adriano Comai 2 Finalmente uno standard per l analisi e disegno OO? L'obiettivo è ambizioso. Lo Unified Modeling Language (UML) vuole essere,

Dettagli

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML)

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML) ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML) a cura di Giacomo PISCITELLI Dipartimento di Elettrotecnica ed Elettronica Politecnico di Bari Questi appunti sono ricavati da una

Dettagli

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

Dettagli

UniRoma2 - Ingegneria del Software 1 1

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

Dettagli

Linguaggi di Programmazione I Lezione 6

Linguaggi di Programmazione I Lezione 6 Linguaggi di Programmazione I Lezione 6 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 8 aprile 2008 Analisi di oggetti e classi 3 Introduzione............................................................

Dettagli

Progettazione ad oggetti

Progettazione ad oggetti Progettazione ad oggetti Gli elementi reali vengono modellati tramite degli oggetti Le reazioni esistenti nel modello reale vengono trasformate in relazioni tra gli oggetti Cos'è un oggetto? Entità dotata

Dettagli

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist www.roccatello.it

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist <eduard.roccatello@3dgis.it> www.roccatello.it Modellazione e progettazione con UML Eduard Roccatello 3D GIS Specialist www.roccatello.it Object Oriented Analysis and Design Consente di modellare un sistema attraverso l

Dettagli

Il modello Entity-Relationship per il progetto delle basi di dati

Il modello Entity-Relationship per il progetto delle basi di dati 1 Il modello Entity-Relationship per il progetto delle basi di dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Le metodologie di progettazione delle Basi di Dati 2 Una metodologia

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

Linguaggi di Programmazione I Lezione 5

Linguaggi di Programmazione I Lezione 5 Linguaggi di Programmazione I Lezione 5 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 1 aprile 2008 Diagrammi UML 3 UML: richiami..........................................................

Dettagli

UML: che cosa è, che cosa non è

UML: che cosa è, che cosa non è Capitolo 1 UML: che cosa è, che cosa non è Introduzione Beati monoculi in regno caecorum Obiettivo del presente capitolo è fornire una panoramica generale sullo UML: il capitolo pertanto risulta essere

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

UML e la progettazione di e-learning

UML e la progettazione di e-learning UML e la progettazione di e-learning Perché UML? UML (Unified Modeling Language, letteralmente: Linguaggio Unificato di Modellazione) viene spesso confuso come una metodologia per analizzare e progettare

Dettagli

Analisi Modelli per la specifica dei requisiti

Analisi Modelli per la specifica dei requisiti Modelli per la specifica dei requisiti Modelli semantici dei dati Entità-Relazioni (E-R) Modelli orientati all elaborazione dati Diagrammi di Flusso dei Dati (Data-Flow Diagrams, DFD) Modelli orientati

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia,

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

La progettazione del software nelle piccole o micro imprese

La progettazione del software nelle piccole o micro imprese La progettazione del software nelle piccole o micro imprese Il contenuto di questo documento è strettamente confidenziale, la visione dello stesso è consentita solo al personale di FadeOut Snc e della

Dettagli

Principi di Progettazione del Software a.a. 2015-2016" Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento!

Principi di Progettazione del Software a.a. 2015-2016 Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento! Principi di Progettazione del Software a.a. 2015-2016" Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento! Obiettivi della lezione" Introdurre il linguaggio UML per

Dettagli

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

UML e (R)UP (an overview)

UML e (R)UP (an overview) Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare

Dettagli

Corso di Progettazione di sistemi multimediali

Corso di Progettazione di sistemi multimediali Corso di Progettazione di sistemi multimediali prof. Pierluigi Feliciati a.a.2012/13 Modulo 0 Progettare, sistemi, multimedialità: Definizioni, strumenti, ciclo di vita dei progetti, figure professionali

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

UML. Una introduzione incompleta. UML: Unified Modeling Language

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

Dettagli

Introduzione a UML. Adriano Comai. http://www.analisi-disegno.com. versione 19 marzo 2010. Adriano Comai. Introduzione a UML Pag.

Introduzione a UML. Adriano Comai. http://www.analisi-disegno.com. versione 19 marzo 2010. Adriano Comai. Introduzione a UML Pag. Introduzione a UML versione 19 marzo 2010 http://www.analisi-disegno.com Introduzione a UML Pag. 1 Obiettivo di questa introduzione fornire alcuni elementi di base su UML introdurre i diagrammi fornire

Dettagli

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Unified Modelling Language (UML) Class Diagram Docente: Massimo Cossentino Slide adattate dagli originali di:

Dettagli

Analisi Modello dei dati

Analisi Modello dei dati Modello dei dati Individuare Oggetti e classi rilevanti per il sistema da sviluppare Limitarsi esclusivamente a quelle classi che fanno parte del vocabolario del dominio del problema Relazioni tra le classi

Dettagli

La specifica del problema

La 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

Dettagli

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

Object Model: Diagrammi di classe

Object Model: Diagrammi di classe Object Model: Diagrammi di classe A seconda dell ambito, si incontrano diversi modi per designare un oggetto oppure per designare una classe. Oggetto Entità Istanza Occorrenza Concetto Tipo di entità Classe

Dettagli

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 1. Introduzione...3 1.2. Application vs Tool... 3 2. Componenti logiche di un modello... 6 3. Ontologie e Semantic

Dettagli

Caso di Studio: Avant Dernier

Caso di Studio: Avant Dernier Caso di Studio: Avant Dernier Specifiche: Nel gioco si affrontano 4 giocatori, ciascuno individuato con un numero progressivo (da 1 a 4). Inizialmente, i giocatori ricevono 5 carte ciascuno, e una carta

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

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

Appunti sulla documentazione di un progetto software object oriented in linguaggio Java

Appunti sulla documentazione di un progetto software object oriented in linguaggio Java Appunti sulla documentazione di un progetto software object oriented in linguaggio Java Marco Liverani Luglio 2006 1 Introduzione Ogni progetto informatico è sicuramente incompleto fino a quando non viene

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI MICROSOFT EXCEL INTRODUZIONE Si tratta di un software appartenente alla categoria dei fogli di calcolo: con essi si intendono veri e propri fogli elettronici, ciascuno dei quali è diviso in righe e colonne,

Dettagli

Principi di UML e WebML

Principi di UML e WebML Università degli Studi dell Insubria FACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Scienze e Tecnologie dell informazione Principi di UML e WebML Metodi Formali Dell Informatica

Dettagli

Automazione della gestione degli ordini d acquisto di una società di autonoleggio

Automazione della gestione degli ordini d acquisto di una società di autonoleggio Automazione della gestione degli ordini d acquisto di una società di autonoleggio Professore Gaetanino Paolone Studenti Paolo Del Gizzi Maurizio Di Stefano 1 INDICE INTRODUZIONE.pag.3 IL PIANO METODOLOGICO

Dettagli

Il linguaggio per la moderna progettazione dei processi aziendali

Il linguaggio per la moderna progettazione dei processi aziendali Il linguaggio per la moderna progettazione dei processi aziendali Organizzare un azienda sotto il profilo dei processi è oramai diventata una disciplina a cavallo tra la competenza aziendalistica ed informatica.

Dettagli

Manuale di Umbrello UML Modeller

Manuale di Umbrello UML Modeller 2 Indice 1 Introduzione 7 2 Fondamenti di UML 8 2.1 Informazioni su UML.................................... 8 2.2 Elementi UML........................................ 9 2.2.1 Diagramma di caso d uso.............................

Dettagli

PROGETTAZIONE DEL SOFTWARE

PROGETTAZIONE DEL SOFTWARE PROGETTAZIONE DEL SOFTWARE EMILIANO CASALICCHIO DIPARTIMENTO DI INFORMATICA E SISTEMISTICA SAPIENZA UNIVERSITÀ DI ROMA SEDE DI RIETI HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW! Cos è UML UNIFIED MODELING LANGUAGE!

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Tecnopolis CSATA s.c.r.l. APQ in Materia di Ricerca Scientifica nella Regione Puglia

Tecnopolis CSATA s.c.r.l. APQ in Materia di Ricerca Scientifica nella Regione Puglia BANDO ACQUISIZIONI Prodotti Software ALLEGATO 6.3 Capitolato Tecnico Piattaforma per l Analisi e la Progettazione di alto livello del Software Allegato 6.3: capitolato tecnico Pag. 1 1 Ambiente di Analisi

Dettagli

Appunti lezione Database del 07/10/2015

Appunti lezione Database del 07/10/2015 Appunti lezione Database del 07/10/2015 Nelle lezioni precedenti si è visto come qualunque applicazione informativa è almeno formata da tre livelli o layers che ogni progettista conosce e sa gestire: Livello

Dettagli

Statechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

Statechart 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

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Principi di programmazione OO

Principi di programmazione OO Principi di programmazione OO Ing. Paolo Vaccari Giovedì 9 e 16 Marzo 2006 Corsi Speciali L.143/04 - SSIS TOSCANA 2005/2006 Principi di programmazione OO Prima lezione: Programmazione

Dettagli

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini ANALISI E PROGETTAZIONE OBJECT ORIENTED Lorenzo Saladini 1. Introduzione In questo capitolo vengono presentati alcuni degli elementi necessari al corretto sviluppo di sistemi informatici secondo una metodologia

Dettagli

Studio di fattibilità (2) Identificazione ed analisi dei requisiti

Studio di fattibilità (2) Identificazione ed analisi dei requisiti Prime fasi nella produzione del software &RUVR GL,QJHJQHULD GHO 6RIWZDUH Capitolato d appalto o doc. formale di richiesta prodotto Incontri con il committente e/o interviste Esercitazione Studio del dominio

Dettagli

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

Dettagli

Introduzione alla Programmazione ad. Oggetti (OOP)

Introduzione alla Programmazione ad. Oggetti (OOP) Introduzione alla Programmazione ad Oggetti (OOP) Prof. Emanuele Papotto Introduzione alla Programmazione ad Oggetti Cosa Faremo: I linguaggi OOP Definizione di : classe, oggetto, attributi, metodi Cenni

Dettagli

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro Concetto di responsabilità nella progettazione guidata dalle responsabilità (RRD) si pensa in termini di responsabilità del software. Le responsabilità vengono assegnate agli oggetti durante la progettazione.

Dettagli

LEZIONE 9 - Linguaggi di Modellazione & UML

LEZIONE 9 - Linguaggi di Modellazione & UML Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 9 - Linguaggi di Modellazione & UML Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Cosa sono? 2 1

Dettagli

Foglio elettronico (StarOffice)

Foglio elettronico (StarOffice) Modulo Foglio elettronico (StarOffice) Modulo - Foglio elettronico, richiede che il candidato comprenda il concetto di foglio elettronico e dimostri di sapere usare il programma corrispondente. Deve comprendere

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

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Da Wikipedia, l'enciclopedia libera. L'espressione ciclo di vita del software si riferisce al modo in cui una metodologia di sviluppo o un modello di processo scompongono l'attività

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

L interfaccia di P.P.07

L interfaccia di P.P.07 1 L interfaccia di P.P.07 Barra Multifunzione Anteprima delle slide Corpo della Slide Qui sotto vediamo la barra multifunzione della scheda Home. Ogni barra è divisa in sezioni: la barra Home ha le sezioni

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

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

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

Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 3 Elaborazione testi Word Argomenti del Syllabus 5.0

Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 3 Elaborazione testi Word Argomenti del Syllabus 5.0 Germano Pettarin E-book per la preparazione all ECDL ECDL Modulo 3 Elaborazione testi Word Argomenti del Syllabus 5.0 G. Pettarin ECDL Modulo 3: Word 2 Modulo 3 Elaborazione testi Word G. Pettarin ECDL

Dettagli

Corso Gestione Progetti Software (1)

Corso Gestione Progetti Software (1) Corso Gestione Progetti Software () Obiettivo del corso Fornire una visione d'insieme delle problematiche della gestione di un progetto software in un contesto aziendale. Alcuni elementi: Modello concettuale:

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

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

MODULO 3 Foglio elettronico

MODULO 3 Foglio elettronico MODULO 3 Foglio elettronico I contenuti del modulo: Questo modulo verifica la comprensione da parte del corsista dei concetti fondamentali del foglio elettronico e la sua capacità di applicare praticamente

Dettagli

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php MODULO 3 Microsoft Excel TEST ED ESERCIZI SU: http:///ecdl/excel/index.php Foglio Elettronico - SpreadSheet Un foglio elettronico (in inglese spreadsheet) è un programma applicativo usato per memorizzare

Dettagli

Ingegneria del Software - Il Ciclo Lungo

Ingegneria del Software - Il Ciclo Lungo Ingegneria del Software - Il Ciclo Lungo Alessandro Martinelli alessandro.martinelli@unipv.it 10 Marzo 2014 Il Ciclo Lungo Il Versioning e la Condivisione di Codice Organizzazione dei Pacchetti La Modellazione

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

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

SOFTWARE - STEP-7 -AVVIAMENTO DI STEP 7 -Micro/Win (Win 95/98/NT)-

SOFTWARE - STEP-7 -AVVIAMENTO DI STEP 7 -Micro/Win (Win 95/98/NT)- SOFTWARE - STEP-7 -AVVIAMENTO DI STEP 7 -Micro/Win (Win 95/98/NT)- Nella cartella SIMATIC, a cui si accede dal menù di AVVIO, è contenuta la cartella STEP 7- Micro/Win32.Questa contiene a sua volta l icona

Dettagli

Benvenuti nella guida completa a PHP5 e MySQL!

Benvenuti nella guida completa a PHP5 e MySQL! Introduzione Benvenuti nella guida completa a PHP5 e MySQL! Gli autori di questo libro, sebbene ammettano di essere di parte, ritengono che il linguaggio di scripting Web PHP possa essere considerato il

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE Ingegneria del software approccio sistematico allo sviluppo, all'operatività, alla manutenzione ed al ritiro del software. Class diagram diagramma che contiene classi e relazioni

Dettagli

Dipartimento di Storia, Società e Studi sull Uomo Università del Salento Ing. Maria Grazia Celentano Mariagrazia.celentano@gmail.

Dipartimento di Storia, Società e Studi sull Uomo Università del Salento Ing. Maria Grazia Celentano Mariagrazia.celentano@gmail. Dipartimento di Storia, Società e Studi sull Uomo Università del Salento Ing. Maria Grazia Celentano Mariagrazia.celentano@gmail.com Indice: La finestra di Word Barra del titolo Barra dei menu Barra degli

Dettagli

MICROSOFT WORD INTRODUZIONE

MICROSOFT WORD INTRODUZIONE 1 MICROSOFT WORD INTRODUZIONE Word è il programma più diffuso per elaborazione di testi, il cui scopo fondamentale è assistere l utente nelle operazioni di digitazione, revisione e formattazione di testi.

Dettagli

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e grafici, tutto nello stesso file di documento. Durante il lavoro testo e illustrazioni appaiono sullo schermo

Dettagli

Esercitazione. Fig. B.1 L ambiente di lavoro Exel

Esercitazione. Fig. B.1 L ambiente di lavoro Exel Esercitazione Exel: il foglio di lavoro B.1 Introduzione Exel è un applicazione che serve per la gestione dei fogli di calcolo. Questo programma fa parte del pacchetto OFFICE. Le applicazioni di Office

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

I PROGRAMMI PER L ELABORAZIONE DEL TESTO

I PROGRAMMI PER L ELABORAZIONE DEL TESTO I PROGRAMMI PER L ELABORAZIONE DEL TESTO Modulo 3 dell ECDL Terza Parte pag. 1 di 10 CopyLeft Multazzu Salvatore I programmi per elaborazione del testo: Terza Parte SOMMARIO Stili... 3 Inserire il numero

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

Dettagli

3.3 Formattazione. Formattare un testo. Copyright 2008 Apogeo. Formattazione del carattere

3.3 Formattazione. Formattare un testo. Copyright 2008 Apogeo. Formattazione del carattere 3.3 Formattazione Formattare un testo Modificare la formattazione del carattere Cambiare il font di un testo selezionato Modificare la dimensione e il tipo di carattere Formattazione del carattere In Word,

Dettagli

03 La ricerca testuale

03 La ricerca testuale 03 La ricerca testuale 3.1. Gli operatori booleani La stringa di ricerca può essere costituita da un solo termine o da più termini. Nel primo caso, l interrogazione viene effettuata mediante la specificazione

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Ingegneria del Software I. UML - Use Case Diagram

Ingegneria del Software I. UML - Use Case Diagram Requisiti e casi d uso Unified Modeling Language Use Case Diagram 1 Il primo passo di qualsiasi processo di sviluppo è la definizione dei requisiti Definizione del Business Model Solitamente informale

Dettagli

Il modello relazionale dei dati

Il modello relazionale dei dati Il modello relazionale dei dati Master Alma Graduate School Sistemi Informativi Home Page del corso: http://www-db.deis.unibo.it/courses/alma_si1/ Versione elettronica: 04Relazionale.pdf Obiettivi della

Dettagli

Work World WORK WORLD PROGETTO INGEGNERIA DEL SOFTWARE. Alessandro Spinelli

Work World WORK WORLD PROGETTO INGEGNERIA DEL SOFTWARE. Alessandro Spinelli WORK WORLD PROGETTO INGEGNERIA DEL SOFTWARE di Alessandro Spinelli Indice 1 - Introduzione 2 - Descrizione del problema 2.1 Requisiti funzionali 2.2 Requisiti non funzionali 3 - Analisi 3.1 Dizionario

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base LEZIONE N 3 Cortina d Ampezzo, 4 dicembre 2008 ELABORAZIONE TESTI Grazie all impiego di programmi per l elaborazione dei testi, oggi è possibile creare documenti dall aspetto

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO 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

Dettagli