Software Engineering

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Software Engineering"

Transcript

1 Software Engineering

2 Introduzione I processi di sviluppo del software sono molto complessi Un approccio a fasi è necessario per controllarli I possibili modelli in letteratura possono essere Modelli tradizionali, document-driven: nuovi documenti prodotti al termine di ogni fase Modelli evoluzionari, basati su un prototipo che si adatta alle esigenze dell utente e si evolve con esse

3 Perchè usare i cicli di vita Fornire un framework per standardizzare la terminologia, le attività e i prodotti (deliverables) Aumentare la visibilità del progresso del progetto per tutte le parti coinvolte Fornire le basi per il piano di progetto e lo scheduling delle attività Fornire meccanismi per controllare l avanzamento e lo stato del progetto

4 Il giusto ciclo di vita Maggiore velocità di sviluppo Maggiore produttività Maggiore tracciamento e controllo Maggiori relazioni con il cliente Minori rischi di progetto Minori overhead di progetto

5 100 Distribuzione dei costi B.W. Boehm, Software Engineering, IEEE Trans. On Computers, Percent of total cost Hardware Development 20 Software Maintenance Year

6 Cosa è l ingegneria del software? [First NATO Conference, 1968] Software engineering is the establishment and use of sound principles in order to obtain economically software that is reliable and works efficiently on real machines [IEEE Std Glossary of Software Eng. Terminology] Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is the application of engineering to software

7 Un semplice ciclo di vita problem requirements engineering Requirement s Specification design Design Program Working Program implementation testing maintenance

8 Requirements Engineering Descrivere Il problema da risolvere, E in quali condizioni Requisiti Funzionali Non-funzionali (HW, SW esterno, numero degli utenti, ) La descrizione comprende: funzionalità, estensioni future, quantità/tipo della documentazione richiesta, prestazioni e tempo di risposta Può comprendere uno studio di fattibilità

9 Design Modellare il sistema da sviluppare Moduli, componenti e interfacce Prendere delle decisioni da includere nella Architettura del Software Utile per Valutare Utilizzare come template per una famiglia di prodotti Scheletro per componenti riutilizzabili

10 Implementation Concentrarsi nei singoli moduli Restare coerenti alla architettura software Non sempre possibile nei linguaggi tradizionali Attuata dai nuovi linguaggi di programmazione Spesso facilitata dall uso di pseudocodice durante la fase di design

11 Testing Trasversale e non successivo all implementazione Soltanto a diversi livelli di astrazione Ai confini delle fasi Verifica Validazione

12 Maintenance Gestire i cambiamenti dopo la consegna Migliorativa(cambiamenti nei requisiti utente) Adattiva (cambiamenti nell ambiente) Correttiva (eliminazione degli errori) Preventiva (per una migliore mantenibilità futura del sistema)

13 Distribuzione delle risorse 10% 10% 45% specification 20% 15% requirements engineering design coding testing

14 Distribuzione delle attività di maintenance Migliorativa 50% Adattiva 25 % Correttiva 21% Preventiva 4 %

15 Il Il ciclo di vita del software

16 Semplice Ciclo di vita problem Req. engineering Requirement s Specification Design Design Program Working Program Implementation Testing Maintenance

17 Semplice Ciclo di vita Basato sui documenti Gli obiettivi sono raggiunti se i relativi documenti sono stati prodotti Per esempio: specifica dei requisiti, specifica di progetto, programma, documenti di test, Problemi I commenti alla fine di ogni fase non sono presi in considerazione La maintenance non implica evoluzione Si corregge il prodotto, ma non si torna indietro nelle fasi

18 Waterfall Model Req. engineering V & V Design V & V Pure waterfall Implementation V & V Modified waterfall Testing V & V Maintenance V & V

19 Waterfall Model (cont.) Include iterazioni e feedbacks V&V alla fine di ogni fase Verifica (stiamo costruendo il sistema correttamente?) Garantire la corrispondenza tra un prodotto software e le sue specifiche) Validazione (stiamo costruendo il prodotto corretto?) Garantire la correttezza del prodotto rispetto ai suoi obiettivi I requisiti utente devono essere stabiliti il prima possibile Problemi Troppo rigido Gli sviluppatori non si possono muovere tra i diversi livelli di astrazione

20 Motivazione Prototyping La raccolta dei requisiti è un operazione molto difficile Il Software è sviluppato perché la situazione corrente è insoddisfacente Tuttavia la situazione desiderata è ancora sconosciuta Caratteristiche Il Prototyping è usato per ottenere i requisiti di alcuni aspetti del sistema Il Prototyping dovrebbe essere un processo relativamente economico Utilizzare strumenti di sviluppo rapidi (Integrated Development Environment) Non tutte le funzionalità devono essere implementate I controlli di qualità non sono richiesti

21 Prototyping: uno strumento per la raccolta dei requisiti Req. engineering Design Design Implementation Implementation Testing Testing Not ready ready Maintenance

22 Tipi di Prototyping Throwaway prototyping: l ennesimo prototipo è seguito da un processo di sviluppo waterfall-like Evolutionary prototyping: l ennesimo prototipo rappresenta il prodotto finito

23 Vantaggi del Prototyping Il sistema risultante è di facile uso I bisogni dell utente sono coperti meglio Il sistema risultante ha meno funzionalità I problemi sono rilevati prima Il design è di migliore qualità Il sistema risultante è di più facile mantenimento Lo sviluppo richiede meno risorse

24 Svantaggi del Prototyping Il sistema risultante ha meno funzionalità Le prestazioni del sistema finale sono peggiori Il design è di qualità inferiore Il sistema finale è più difficile da mantenere L approccio basato sul prototyping richiede un team con maggiore esperienza

25 Raccomandazioni sul Prototyping Gli utenti e i progettisti devono essere consapevoli dei problemi e dei possibili rischi Utilizzare il prototyping quando i requisiti non sono chiari Il prototyping deve essere pianificato e controllato

26 Una fabbrica del Software Gli sviluppatori non sono propensi a realizzare del software facile da mantenere e da riutilizzare, comporta costi addizionali Il punto di vista cambia se l obiettivo è la realizzazione di una famiglia di prodotti e non soltanto la versione iniziale di un prodotto I mezzi di un azienda che sviluppa software sono: La conoscenza condivisa da tutti gli impiegati L insieme dei prodotti parzialmente sviluppati presenti nell azienda

27 Una fabbrica del Software (cont.) Il riuso diventa importante Quindi si parla di Component-Based Software Engineering (CBSE) Sono stati fatti progressi nell area del Design per il riuso (per esempio, architetture software e modelli di progetto) Componenti software L idea di una fabbrica del software Condividere la conoscenza Condividere prodotti e/o componenti riutilizzabili

28 Paradigma object-oriented

29 Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced by Hierarchy of functions Class hierarchy

30 Cosa sono gli oggetti? Il mondo può essere percepito Punto di vista filosofico Oggetto = astrazione di un entità reale Il mondo è fatto di oggetti Gli oggetti interni nascono e muoiono Gli oggetti esterni sono eterni Punto di vista di un modello Oggetto = Identificatore + Stato + Comportamento Stato attributi variabili Comportamento operazioni Punto di vista dell ingegneria del Software Oggetto = astrazione di un entità che contiene i dati e le operazioni Costruttore e distruttore

31 Archiettura Object-oriented Organizzazione di un sistema software in termini di una collezione strutturata di oggetti Strutturata = include associazioni di Utilizzo Aggregazione ( parte di o contiene un ) Ereditarietà ( è un ) Collezione = Gli oggetti sono indipendenti dal sistema cui appartengono, perché Sono significativi e utili individualmente Riutilizzabili per sistemi differenti

32 Classi e Oggetti Classe = descrizione di un dato astratto Offre Nome Definizione della sua struttura dati Servizi per accedere alla sua struttura dati Elemento statico Oggetto = istanza di una classe Offre Identità Stato, accessibile attraverso i servizi definiti dalla classe Elemento run time

33 Classi e Oggetti (cont.) A run time Esistono solo oggetti Nel codice sorgente Esistono solo classi

34 Instanziazione Processo per la creazione di un oggetto Gli attributi sono inizializzati L istanza è assegnata ad una variabile Operatori per l instanziazione Costruttore Distruttore Dictionary language create_dictionary() insert_word() search_word() give_next_word() D1: Dictionary language = German

35 Associazioni Relazioni tra classi e tra oggetti Cardinalità delle associazioni Numero degli oggetti partecipanti 1, 0..1, M..N, *, 0..*, 1..* Tipo di associazione Numero di classi che partecipano all associazione Binaria, ternaria, N-aria

36 Aggregazione Associazione asimmetrica Criteri che implicano l aggregazione Una classe rappresenta una parte di un altra classe Gli attributi di una classe sono propagati ad un altra classe Un azione di una classe implica un azione di un altra classe Le istanze di una classe sono subordinate alle istanze di un altra classe +owner co-owner Person Building 1..* 0..* aggregate class Car Engine 1 1

37 Permette che Ereditarietà L evoluzione del Software sia comparabile con le precedenti versioni ma non è sufficiente per garantire il riuso e l estendibilità Si realizza attraverso i meccanismi di Estensione delle classi Specializzazione delle classi Combinazione delle classi

38 Ereditarietà (cont.) superclass Object Point Polygon heir subclass Triangle Rectangle Un erede Offre i servizi dell antenato Del quale rappresenta un estensione Offrendo nuovi servizi E/O una specializzazione Sfruttando le potenzialità definite dai servizi degli antenati e ridefinendoli per il loro caso specifico (polimorfismo)

39 Unified Modeling Language

40 Motivazione Perchè una notazione unificata? Potenza espressiva Completezza Consistenza

41 Il valore dell UML È uno standard aperto Supporta l intero ciclo di sviluppo del software Supporta diverse aree di applicazione É basato sull esperienza e le necessità degli utenti È supportato da molte applicazioni

42 Motivazione (cont.) Perchè una notazione con diagrammi multipli? Obiettivo Coprire più aspetti di un sistema complesso Complessità Necessario per un analisi e un design dettagliato

43 UML Modelli, Viste e Diagrammi Un diagramma è una vista in un modello Rappresenta il sistema da una certa prospettiva Fornisce una parziale rappresentazione del sistema É semanticamente consistente con le altre viste

44 Una vista architetturale Una vista architetturale è una descrizione semplificata (un astrazione) di un sistema Da una particolare prospettiva Copre alcuni aspetti Omette quelle entità che non sono rilevanti per questa prospettiva

45 La visione del Software Architect Logical View Implementation View End-user Functionality Use Case View Programmers Software management System integrators Performance Scalability Throughput Process View Conceptual Deployment View System engineering System topology Delivery, installation Communication Physical P. Kruchten, Nov The 4+1 View Model of Architecture IEEE Software

46 Quante viste? Le viste dovrebbero riguardare lo specifico contesto Non tutti i sistemi richiedono tutte le viste Un sistema può avere bisogno di viste addizionali Data view, security view,

47 Modelli, Viste e Diagrammi Static views Sequence Diagrams Use Case Diagrams Class Diagrams Object Diagrams Collaboration Diagrams Models Component Diagrams Statechart Diagrams Dynamic views Activity Diagrams Deployment Diagrams

48 Diagrammi principali Per la struttura Class diagram Object diagram Per le interazioni Sequence diagram Collaboration diagram Per gli Aspetti dinamici State diagram Per gli Aspetti fisici Component diagram Deployment diagram

49 Alcuni Riferimenti Fowler, M., Scott, K., UML distilled Second Edition a brief guide to the standard object modeling language, Addison-Wesley, 2000 Stevens P., Pooley, R., Using UML Software Engineering with Objects and Components, Addison- Wesley, 2001 (Updated Edition to UML 1.4) The Object Management Group UML Web page, online at OMG, OMG Unified Modeling Language Specification, Version 1.4, Sep. 2001, on-line at Jacobson, I., Booch, G., Rumbaugh, J., The Unified Software Development Process, Addison-Wesley, 1999.

50 Classi e Instanze di classi Class level Student ID Name matriculate() enrol 1..n 1 association Faculty Name Athenaeum open() Instance level Albert Einstein Galileo Galilei Martin L. King X X X association instances (or links) Engineering Architecture Computer Science Economics Arts

51 A quale livello appartengono i diagrammi Struttura Class diagram Object diagram Interazioni Sequence diagram Collaboration diagram Aspetti dinamici State diagram Aspetti fisici Component diagram Class level Instance level Deployment diagram Class diagram Object diagram Sequence diagram Collaboration diagram State diagram Component diagram Deployment diagram

52 Use Case Diagram

53 Analisi e Specifica dei Requisiti Attività per l analisi e la raccolta dei requisiti Studiare l ambito di un applicazione Identificare i confini e le interazioni tra l applicazione e il mondo esterno Identificazione e comprensione dei requisiti Attività per la specifica dei requisiti Specifica dei requisiti (basati su cosa e non su come) Validazione/Verifica dei requisiti specificati

54 Analisi: Metodologie Nessun metodo scientifico Linee guida, principi generali e tecniche empiriche Troppi Fattori soggettivi, Fattori umani, e Problemi di comunicazione

55 Analisi: Linee Guida L analisi dovrebbe identificare Una rappresentazione delle informazioni più significative Un modello del comportamento del software L analisi dovrebbe considerare come il sistema Sarà strutturato (dalla prospettiva utente) Fornirà le funzionalità I sistemi complessi devono essere suddivisi in modo gerarchico: L analisi è eseguita separatamente sulle differenti parti

56 Specifica: levelli di formalismo Specifica Informale Basata sul linguaggio naturale (ambiguo) Specifica Formale Basata sul linguaggio matematico Specifica mista (Semi-formale) Composta da una parte formale e una informale

57 Specifica: tipi Specifica dei dati (vista statica) Specifica del comportamento (vista dinamica)

58 Specifica: stili per il comportamento Operazionale Specifica le procedure Esempio: La lista B è ottenuta dalla lista A muovendo il più piccolo elemento di A nella prima posizione di B, il nuovo più piccolo elemento di A nella seconda posizione di B, e procedendo in questo modo finché la lista A è vuota. Descrittivo Specifica le proprietà Esempio: la lista B è una permutazione ordinata della lista A

59 Use Case Diagram Notazione semi-formale Specifica le interazioni tra il sistema e il mondo esterno Utile per Obbligare l analista ad esprimere dei confini ben definiti tra il sistema e il mondo esterno Organizzare le funzioni del sistema in elementi (use cases) sui quali focalizzare l attenzione Fornire una prima base per la specifica della struttura del sistema dal punto di vista dell utente

60 Elementi di un Use Case Diagram Actor Qualcuno (utente) o qualcosa (sistema esterno, hardware) che Scambia informazioni con il sistema Fornisce input al sistema, o riceve output dal sistema Use Case Un unità funzionale (funzionalità) parte del sistema

61 Relazioni tra Use Cases Actor Actor Use Case Use Case Interaction. Determina: Quali attori participano in un use case Dove l esecuzione inizia Use Case A <<include>> Use Case B Usage. Modella il fatto che una funzionalità selezionata è usata nel contesto di un altra funzionalità (una è la fase dell altra) Use Case A Use Case B Generalization. Definisce una funzionalità come un estensione di un altra già esistente (special case)

62 Esempio: Corsi on line All inzio del semestre la segreteria deve fornire agli studenti la lista dei corsi disponibili attraverso un sistema di registrazione on line. Ogni studente deve selezionare 4 corsi disponibili ed esprimere due possibili alternative. Ogni corso deve avere tra 3 e 20 studenti: corsi con meno di 3 studenti sono cancellati, e quelli con più di 20 sono suddivisi. All inzio i professori accedono al sistema per inserire i loro corsi nella lista, in seguito alle selezioni degli studenti loro accedono per controllare lo stato degli studenti. Dopo il periodo di selezione, il sistema crea le liste definitive, risolvendo tutte le anomalie e le manda all ufficio amministrativo che procede alla tassazione di ogni studente. Gli studenti accedono al sistema per vedere la lista dei loro corsi Tutte le interazioni utente sono autenticate

63 Esempio: Corsi on line Administrative Office Course Selection <<include>> Request Students List <<include>> Students User Authentication <<include>> <<include>> Professor Request Course List Insert Course

64 Altro esempio <<include>> Hotel Booking Check availability <<include>> Customer Acquire Customer data <<include>> Acquire Credit Card data Hotel Booking guaranteed by Credit Card

65 Class diagrams

66 Cosa è un Class Diagram Un Class Diagram descrive I tipi degli oggetti nel sistema I tipi di relazioni statiche tra di loro Disegniamo i Class Diagrams sotto tre diverse prospettive Concettuale Indipendente dal software Indipendente dal linguaggio Specificazione Focalizzati sull interfacce del software Implementazione Focalizzati sull implementazione del software

67 Class Class Name private public Window - visible - position - size + resize() + display() + hide() + move() Attributes Operations

68 Class... Sintassi degli attributi attrname : attrtype = initialvalue Sintassi delle operazioni Visibility opname (argname:argtype=defaultvalue, ):returntype <<stereotype>> ClassName publicstate : UserDef = tested privateauthor : UserDef = pam ProtectedOp(argname) : return <<Interface>> ClassInterface B <<Interface>> ClassInterface A

69 Associazioni Relazioni strutturali tra classi di oggetti Cardinalità delle associazioni 1, 0..1, M..N, *, 0..*, 1..* Tipo di relazione binaria, ternaria, N-aria

70 Notazione per la cardinalità n * m..n Esattamente n Zero o più Tra m e n (inclusi) m..* 0..1 Da m in su Zero o uno (opzionale)

71 Associazioni binarie Appello -data -materia -elencostudenti +stampa() +prenotastudente() * Si-svolge-il 4 1 Molteplicità DataAppello -giorno -mese -anno +stampa() Studente -nome -cognome -matricola +stampa() Nome della relazione frequenta 4 * +frequentante +frequentato Corso -materia -docente +stampa() Ruoli

72 Use Association Due classi sono in USE association (B usa A) se le istanze di B possono mandare messaggi alle istanze di A Un oggetto usa un altro oggetto se è capace di mandargli dei messaggi +Employer +Candidate Company hiring Person +apply() -planinterviews() * +interview() +seekjob()

73 Nomi nelle associazioni User Profile user Information 1 1 User 1 user service information Subscription 0..* 0..* Service Profile +userpreferences 0..* 0..* subscription constraints registration Terminal -Address +Type 1..* 1..* supports default 1..* 0..* Service +startservice() 1

74 Aggregation Modellare il sistema di prenotazione agli appelli dei corsi. Ogni appello include una data composta da giorno, mese, anno, ed è associato ad un corso. Dietro richiesta, si può iscrivere all appello uno studente. Il sistema permette inoltre di Spostare la data dell appello Stampare le informazioni di ogni oggetto

75 Aggregation Appello - listaprenotati - aula * * 1 Data Appello -giorno -mese -anno +stampa() +gestioneprenotaz() +sposta() +stampa() +cambiastato() * 1 * Studente -nome -cognome -matricola +stampa() +iscrivi() Corso -materia -docente +stampa()

76 Generalization Relazione di classificazione tra un elemento generale e un elemento più specifico Ereditarietà nella programmazione ad oggetti Construire una classe da un altra Codividere attributi, operazioni e vincoli

77 Specializzazione pura Window Base class (superclass) -title -position -size +resize() +move() +close() Generalization association Text Window -text Derived classes (subclasses) Image Window -image inherits from derives from is a +replacetext() +deletetext() +refresh()

78 Esempio: Gerarchia di classi Costruire le associazioni di ereditarietà tra i seguenti oggetti: Esseri Viventi Esseri Umani Fiori Animali Vegetali Commerciante Fioraio Cliente Suggerimento Raggruppare gli elementi in insiemi di classificazione e in seguito costruire la gerarchia di generalizzazione

79 Esempio: Gerarchia di classi Essere Vivente Animale Vegetale Essere Umano Fiore Commerciante Cliente Fioraio

80 Specializzazione inpura Vogliamo definire eccezioni al meccanismo della specializzazione Overriding Modificare proprietà ereditate Di solito per l implementazione di operazioni (metodi)

81 Overriding Person -name -surname +print() Employee -qualification -salary -ID Student +print() +print()

82 Ereditarietà multipla Una classe deriva da una serie di superclassi Non tutti i linguaggi di programmazione la supportano

83 Quando si usano i Class Diagrams Si usano sempre Sono alla base di tutti i metodi Object Oriented Sono alla base per i generatori di codice La prospettiva di riferimento è Modello concettuale durante la raccolta dei requisiti Modello di specifica durante il design Modelli di implementazioni per linguaggi specifici

84 Quando si usano i Class Diagrams(cont.) Non disegnare modelli per qualsiasi cosa Focalizzarsi sugli aspetti principali Non specificare troppi dettagli in una fase prematura

85 Object Diagrams

86 Object Diagrams Un object diagram mostra le istanze delle classi e i collegamenti tra di loro Un object diagram è un istantanea degli oggetti nel sistema In uno specifico momento Con uno specifico obiettivo Interazioni Sequence Diagram Scambio di messaggi Collaboration diagram Operazioni Deployment diagram

87 Un Oggetto M1: Menu window ID label : Class Name visible=true position=(10,23) size=160 Attribute values

88 Oggetti e collegamenti

89 Interazioni tra oggetti Un oggetto interagisce con un altro oggetto inviando un messaggio: per esempio, una richiesta per eseguire un operazione + una serie di parametri La ricezione del messaggio causa la selezione e l esecuzione dell operazione Regola base Delegare ad altri oggetti le operazioni che essi sono capaci di compiere Risultati Buon disaccoppiamento tra oggetti Semplicità Riutilizzo

90 Esempio: registrazione per un esame stampa Jan: Appello data materia elencostudenti stampa stampa D1:DataAppello giorno mese anno 1: Studente stampa nome N-1:Studente cognome N Studente nome matricola cognome matricola cognome matricola SoftEng: Corso nome codice

91 Interazioni tra oggetti

92 Specifica del comportamento 1)Si analizzano e descrivono gli scenari principali delle operazioni del sistema Sequence diagrams Viste parziali 2)Ci si concentra in ogni classe e si specifica il suo comportamento Tutti i coportamenti previsti e quelli critici

93 Diagrammi di interazione Sono diagrammi semi-formali che descrivono scenari di esempio per le operazioni del sistema, in termini di Oggetti e attori Messaggi scambiati e in quale ordine temporale (sequenza) Si suddividono in Sequence Diagrams Collaboration Diagrams Non sono sempre sufficienti per tenere in considerazione tutti i possibili comportamenti

94 Sequence Diagrams

95 Actor (*) Sequence Diagram Instantiated class Object : Professor :course options form :course form :course co1:course offering 1: add a course Sequence number 2: display 3: select course offering 4: add professor (professor id) 5: get professor (professor id) lifeline 6: add professor (professor) (*) Dagli Use Case Diagrams per modellare le entità esterne

96 Sequence Diagram (cont.) Modi di utilizzo Documentazione degli use cases Più vicini all utente Non molto dettagliati Frecce: eventi che possono accadere Nessuna differenza tra flusso di controllo e flusso dati Strumento di sviluppo Rappresentazione accurata delle interazioni tra gli oggetti Frecce: messaggi trasmessi Chiamate di procedure, eventi discreti, segnali Sincroni o asincroni

97 Formato dei messaggi Cancella Ritorno implicito esplicito Ricorsione X :A :B :C 1: Sync 2: Activate 3: Asynch Vincoli temporali {t -t < 2s} 4: Reflexive Pseudo-codice while x loop Condizioni di iterazione (direttamente nel messaggio) *[X]

98 Esempio: generatore di allarmi Specificare il comportamento a livello classe, per il seguente sistema Un sistema di allarme basato su un sensore genera eventi Mostra l allarme sul pannello di controllo (visibile all utente) Attiva un trasmettitore acustico Manda un segnale al servizio di monitoraggio

99 Soluzione : Sensor : Event : Control Panel : User : Acoustic Transmitter : Monitoring Service display display ring signal

100 Esempio: configurazione dell utente : User define password "Type password now" [password] : Control Panel : System : Sensor "Retype password" [password] set password configure Sensors (N) set Data get Next Sensor [ref] [sensor ID, Tel. Number] while N loop set Data

101 Collaboration Diagrams

102 Collaboration Diagrams Descrive le interazioni tra oggetti, vengono espressi Il contesto per un gruppo di oggetti (oggetti e collegamenti) L interazione tra gli oggetti 1: Go up 2 : Elevator 3: Close : Cabin : Door 2: Turn on : Light

103 Esempio: generatore di allarmi 2: display : Control Panel 3: display : Sensor 1: 9: : Event 4: 5: ring : User 6: 8: 7: signal : Acoustic Transmitter : Monitoring Service

104 Confronto Sequence diagrams Enfasi sulla sequenza Collaboration diagrams Enfasi sui collegamenti statici tra gli oggetti Entrambi Semplicità e Comunicazione Non adatti a modellare le possibili scelte alternative

105 Si Quando usare i diagrammi di interazione Per analizzare il comportamento di oggetti multipli in un use case comune Per mostrare la collaborazione tra oggetti No Per fornire un esatta descrizione delle interazioni Per analizzare il comportamento di un singolo oggetto in use cases multipli State diagram Per analizzare il comportamento su use case o flussi di esecuzione multipli Activity diagram

Paradigma object-oriented

Paradigma object-oriented Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced

Dettagli

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009 UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque

Dettagli

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato Introduzione all UML UML come abbozzo UML - Unified Modeling Language E una famiglia di notazioni grafiche per la modellazione visuale del software Modellazione: rappresentazione di elementi che corrispondono

Dettagli

3. Ciclo di Vita e Processi di Sviluppo

3. Ciclo di Vita e Processi di Sviluppo 3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di

Dettagli

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Richiami su oggetti e OOP

Richiami su oggetti e OOP Richiami su oggetti e OOP Un oggetto (object) è una entità caratterizzata da una struttura dati alla quale si associa l insieme delle operazioni che è possibile compiere su di essa. Un oggetto può essere

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per

Dettagli

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Sistemi Software UML per Design Patterns e Refactoring Luca Padovani (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi Class Diagram Object

Dettagli

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Richiami dei diagrammi di base per l utilizzo nel corso di RPPI Rielaborazione delle slide proposte da M. Cossentino 1 Perchè usare la progettazione visuale? Mary Loomis,

Dettagli

SOMMARIO DIAGRAMMI DI SEQUENZA

SOMMARIO DIAGRAMMI DI SEQUENZA SOMMARIO DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it SOMMARIO DIAGRAMMI

Dettagli

Alcuni diagrammi. OCL (Object Constraint Language)

Alcuni diagrammi. OCL (Object Constraint Language) UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per

Dettagli

2. Modellazione dei casi d uso

2. Modellazione dei casi d uso 2. Modellazione dei casi d uso Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 2. Modellazione dei casi d uso 1 / 20 Sommario

Dettagli

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di

Dettagli

IS Corso di Ingegneria del Software 1

IS Corso di Ingegneria del Software 1 Contenuti Analisi dei requisiti L attività di analisi Lo studio di fattibilità L analisi dei requisiti 2001 Corso di Ingegneria del Software Specifica dei requisiti V. Ambriola, G.A. Cignoni C. Montenegro,

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Progettazione del Sofware

Progettazione del Sofware Corso Serale Progettazione del Sofware Perché Modellare un Sistema Necessità di realizzare un artefatto, indipendentemente dalla sua dimensione e settore di interesse (una casa, un particolare macchinario,

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare

Dettagli

14. Verifica e Validazione

14. Verifica e Validazione 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dell utente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo

Dettagli

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,

Dettagli

1. UML 2 ed il Processo Unificato

1. UML 2 ed il Processo Unificato 1. UML 2 ed il Processo Unificato Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 1. UML 2 ed il Processo Unificato 1 / 25 Sommario

Dettagli

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo Modulo 16 Introduzione ai Design Patterns Partiamo da un analogia Obiettivo: costruire una casa. Tutte le case sono simili, ma non uguali, cioè: Tutte le case assolvono alla medesima funzione: offrire

Dettagli

oggetti, classi e notazione UML

oggetti, classi e notazione UML oggetti, classi e notazione UML 1 object orientation il paradigma object oriented è usato come linguaggio per esprimere modelli domain models design models implemenetation models ecc. tutto ciò che vedremo

Dettagli

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Progettazione OO Agenda Astrazione e classificazione Generalizzazione e Refactoring Riuso Interfacce e classi di utilità Patterns di progettazione GRASP Obiettivi Ottenere dei modelli

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Analisi e Progettazione OO Origini Le metodologie ad oggetti nascono negli anni 70 ma si affermano solo negli anni 80 grazie alla nascita dei linguaggi di programmazione ad oggetti

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Catia Trubiani. Laboratorio di Ingegneria del Software a.a 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

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

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi Metodologie di Programmazione ovvero, Principi e Tecniche per la costruzione di programmi 1 In questo corso Sviluppo in piccolo: Tempi: mesi/uomo v.s. anni/uomo Strumenti: personal v.s. professional Programmazione

Dettagli

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari

Dettagli

INTERAZIONE UOMO-MACCHINA

INTERAZIONE UOMO-MACCHINA INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Per dubbi/domande 2 barricelli@di.unimi.it Modelli di Cicli

Dettagli

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a INTRODUZIONE ALLA PROGETTAZIONE Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONI Lezione odierna e successive Metodologia di progetto Progettazione concettuale Progettazione logica Fondamentali per il secondo

Dettagli

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML Tecniche di sviluppo di progetti Lezione 4: Diagrammi UML Struttura di un progetto UML Un progetto software è composto da parti, dette diagrammi UML. Ogni diagramma UML contiene un tipo ben definito di

Dettagli

Materiale didattico. Sommario

Materiale didattico. Sommario Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Verifica parte IID. Test in grande. Test e modularità. Test di modulo

Verifica parte IID. Test in grande. Test e modularità. Test di modulo Test in grande Verifica parte IID Rif. Ghezzi et al. 6.3.5-6.3.6 Molte delle tecniche viste finora hanno alta complessità, o non sono automatizzabili. Possono quindi essere applicate solo a programmi piccoli,

Dettagli

Web Application Engineering

Web Application Engineering Web Application Engineering analisi del dominio cristian lucchesi IIT-CNR Pescara, 15-16 Maggio 2007 Alei Ud A 1 Analisi del dominio l'obiettivo è di arrivare alla definizione sufficientemente rigorosa

Dettagli

INTERAZIONE UOMO-MACCHINA

INTERAZIONE UOMO-MACCHINA INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Modelli di Cicli di vita 2 Mostrano come le attività sono

Dettagli

Introduzione ai casi d uso

Introduzione ai casi d uso Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

Microsoft Visio 2002 UML Sergio Colosio

Microsoft Visio 2002 UML Sergio Colosio Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra

Dettagli

Processo di sviluppo. Input e output del processo di sviluppo. Ruoli nel processo di sviluppo. Architettura di deployment. Requisiti di business

Processo di sviluppo. Input e output del processo di sviluppo. Ruoli nel processo di sviluppo. Architettura di deployment. Requisiti di business Processo di sviluppo Input e output del processo di sviluppo Requisiti di business Processo WebML Architettura di deployment Moduli dell applicazione Vincoli del conteso d uso Documentazione di sistema

Dettagli

Sistemi Informativi I Strumenti - UML

Sistemi Informativi I Strumenti - UML 8 UNIFIED MODELING LANGUAGE (UML)...2 8.1 UN APPROCCIO VISUALE ALLA PROGETTAZIONE....2 8.1.1 I vantaggi dell utilizzo di diagrammi nella fase di progettazione....2 8.2 COS È UML...3 8.2.1 Origini e breve

Dettagli

UML. Unified Modeling Language (linguaggio di modellazione unificato) prof. Antonio Gervasi IIS «A.Meucci» Casarano

UML. Unified Modeling Language (linguaggio di modellazione unificato) prof. Antonio Gervasi IIS «A.Meucci» Casarano UML Unified Modeling Language (linguaggio di modellazione unificato) 1 Cos è UML L UML nasce negli anni 90 come unificazione di diverse metodologie di analisi. Si propone come strumento per facilitare

Dettagli

Gestione dello sviluppo software Modelli Base

Gestione dello sviluppo software Modelli Base Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 3. Analisi dei requisiti Dipartimento di Informatica Università di Pisa A.A. 2014/15 l attività di analisi Studiare e definire il problema da risolvere Per identificare il prodotto

Dettagli

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Analisi e specifica dei requisiti

Analisi e specifica dei requisiti Analisi e specifica dei requisiti Processo che stabilisce i servizi che il committente richiede al sistema da sviluppare ed i vincoli con cui lo si utilizzera` e sviluppera` Requisiti funzionali o non

Dettagli

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Laboratorio di Ingegneria del Software

Dettagli

SOMMARIO DESIGN PATTERN

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 DESIGN PATTERN

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione DIIGA - Università Politecnica delle Marche A.A. 2006/2007 Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione Luca Spalazzi spalazzi@diiga.univpm.it www.diiga.univpm.it/~spalazzi/

Dettagli

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica,

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Astrazioni e UML Astrazioni Nella vita reale siamo abituati a osservare e descrivere oggetti a vari livelli di dettaglio Dai da mangiare a Fido Porta a passeggio il cane Di quale

Dettagli

Analisi Orientata agli Oggetti

Analisi Orientata agli Oggetti Generalità Concetti di base: Oggetto, Classe, Attributo, Operazione, Associazione, Aggregazione, Generalizzazione, Ereditarietà Il Diagramma delle Classi: notazione UML 1 Generalità Approccio all analisi

Dettagli

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto Lab metodi programmazione Linguaggio Java Progetto Testi C.S. Horstmann Computing Concepts with Java Essentials 3rd Edition, Wiley Ed. italiana: Concetti di informatica e fondamenti di Java 2 Seconda edizione,

Dettagli

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati di basi di dati Modello Entità-Relazione concettuale logica Normalizzazione Sistemi informativi D B M G D B M G2 Modello Entità-Relazione di basi di dati di basi di dati Entità e relazioni Attributi Identificatori

Dettagli

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati Sistemi informativi D B M G Progettazione di basi di dati Modello Entità-Relazione Progettazione concettuale Progettazione logica Normalizzazione D B M G 2 1 Progettazione di basi di dati D B M G Modello

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

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio

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

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere

Dettagli

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it DESIGN PATTERN

Dettagli

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE: PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI

Dettagli

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione

Dettagli

UML GML- Classi di Oggetti

UML GML- Classi di Oggetti UML GML- Classi di Oggetti Claudio Rocchini Istituto Geografico Militare Introduzione Per lavorare nel GIS serve sapere anche queste cose? Si, perché: I dati geografici verranno scambiato nel formato GML

Dettagli

INTRODUZIONE AD OMNET++

INTRODUZIONE AD OMNET++ INTRODUZIONE AD OMNET++ Omnet++ OMNET++ è una piattaforma di simulazione : È utile per: Modulare: gerarchia di moduli Ad eventi Orientata agli Oggetti (in C++) Open Source Versione comm. OMNEST analizzare

Dettagli

Corso di Ingegneria del Software. Activity Diagram

Corso di Ingegneria del Software. Activity Diagram Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Diagrammi di attività Diagrammi di attività 1. La notazione 2. Uso dei diagrammi di attività 3. TOOL di supporto 4.

Dettagli

Progettazione di basi di dati

Progettazione di basi di dati Progettazione di basi di dati Sistemi Informativi L Corso di Laurea in Ingegneria dei Processi Gestionali A.A. 2003/2004 Docente: Prof. Wilma Penzo Progettazione di basi di dati È una delle attività del

Dettagli

Lezione 3. Modellazione dei Dati mediante il Modello Entità Associazione (ER)

Lezione 3. Modellazione dei Dati mediante il Modello Entità Associazione (ER) Lezione 3 Modellazione dei Dati mediante il Modello Entità Associazione (ER) 1 Sommario Esempio di Applicazione con Database (AZIENDA) Concetti del Modello ER Entità ed Attributi Entità, Istanze, Domini

Dettagli

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili

Dettagli

Metodologia di lavoro: PCM & GOPP

Metodologia di lavoro: PCM & GOPP Metodologia di lavoro: PCM & GOPP Obiettivo del Laboratorio Approfondire le metodologie e le tecniche di progettazione nell ambito dei programmi a gestione diretta del ciclo 2014-2020 attraverso l identificazione

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

Modelli di Ciclo di Vita del Software (CVS)

Modelli di Ciclo di Vita del Software (CVS) Modelli di Ciclo di Vita del Software (CVS) Una morfologia dell organizzazione del lavoro nelle fabbriche del software: fasi della produzione, tipi di attività, collegamento ed interfacciamento, pianificazione,

Dettagli

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati Prof. Alberto Postiglione Università degli

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

Dettagli

Ingegneria del Software L-A

Ingegneria del Software L-A Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che

Dettagli

Sistemi e modelli. Sistemi

Sistemi e modelli. Sistemi Sistemi e modelli Obbiettivo: sviluppare metodologie e strumenti di analisi quantitativa della QoS di sistemi costruzione e soluzione di modelli per la valutazione di prestazioni e affidabilità di sistemi

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

La programmazione ad oggetti: chiamate di metodi. Overloading. This

La programmazione ad oggetti: chiamate di metodi. Overloading. This ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.

Dettagli

Programmazione = decomposizione basata su astrazioni

Programmazione = decomposizione basata su astrazioni Programmazione = decomposizione basata su astrazioni 1 Decomposizione in moduli necessaria quando si devono sviluppare programmi abbastanza grandi decomporre il problema in sotto-problemi i moduli che

Dettagli

Analisi dei Requisiti e Definizione delle Specifiche

Analisi dei Requisiti e Definizione delle Specifiche e Definizione delle Specifiche Scopi della fase Processo di specifica dei requisiti Analisi del problema Specifica dei requisiti Caratteristiche dell SRS la Validazione delle specifiche 1 Analisi e Specifica

Dettagli

ARCHITETTURA DI UN DBMS

ARCHITETTURA DI UN DBMS ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce

Dettagli

SOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni

SOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni Concetti base e avanzati DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica,

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

SOMMARIO CATEGORIE LOGICHE UNIVERSALI

SOMMARIO CATEGORIE LOGICHE UNIVERSALI SOMMARIO Basi teoriche per la progettazione di un sistema informativo Struttura ed organizzazione della progettazione Ciclo di vita di un sistema informativo CATEGORIE LOGICHE UNIVERSALI Individuano i

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML Laboratorio di Ingegneria del Software

Dettagli

UML GML- Classi di Oggetti

UML GML- Classi di Oggetti UML GML- Classi di Oggetti Claudio Rocchini Istituto Geografico Militare 1 Introduzione Per lavorare nel GIS serve sapere anche queste cose? Si, perché: I dati geografici verranno scambiato nel formato

Dettagli

Ingegneria del Software

Ingegneria del Software Università degli Studi di Napoli Federico II Ingegneria del Software a.a. 2013/14 UML e gli Use Case Diagrams Outline Cos è UML Scopi, storia, obiettivi Fornire alcuni elementi di base su UML Introdurre

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Analisi: UML Use Cases & Documenti di Specifica Domenico Lembo Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Corso di Laurea in Ingegneria

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

diagrammi entità-relazioni

diagrammi entità-relazioni diagrammi entità-relazioni laboraorio di basi di dati Pierluigi Pierini pierluigi.pierini@technolabs.it Entità Corso Nome_ Una entità rappresenta una classe di oggetti distinti ed autonomi all interno

Dettagli

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer Distributed Object C o m p utin g "!$#&% ')(+*,#&-).0/2143657*98:.;8

Dettagli

Progettazione di basi di dati

Progettazione di basi di dati Progettazione di basi di dati Sistemi Informativi T Versione elettronica: 05.progettazioneDB.pdf Progettazione di basi di dati È una delle attività del processo di sviluppo dei sistemi informativi (SI)

Dettagli

Corso di Ingegneria del Software. La architettura software

Corso di Ingegneria del Software. La architettura software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Il concetto e il ruolo della architettura Sommario 1. Il concetto e il ruolo della architettura 2. Tipi di architettura

Dettagli