SlideShare a Scribd company logo
1 of 21
UML 2.0
                        Panoramica su UML


              Leggi il programma completo del corso

www.javaportal.it | www.k-tech.it    corsi@k-tech.it
Agenda

 Mod 00 – Presentazione
►Mod 01 – Panoramica su UML◄
 Mod 02 – Introduzione all'UML
 Mod 03 – Modellazione Strutturale
 Mod 04 – Relazioni
 ........
 Mod 14 – Statechart Diagram
 Mod 15 – Timing Diagram
 Mod 16 – Sequence Diagram
 Mod 17 – Communication Diagram
 Mod 18 – Interaction Overview Diagram




www.javaportal.it | www.k-tech.it        corsi@k-tech.it   2
“   The programmer, like the poet, works only slightly
    removed from pure thought-stuff. He builds his
    castles in the air, from air, creating by exertion
    of the imagination. Few media of creation are
    so flexible,so readily capable of


                                              ”
    realizing grand conceptual structures.

                                          Frederick P. Brooks, Jr.




www.javaportal.it | www.k-tech.it   corsi@k-tech.it                  3
Un po' di storia
Durante gli anni '90 furono introdotte nel mercato dell'Information Technology
parecchie metodologie per il disegno e la progettazione di sistemi software.

Vi era un problema, però: ognuna di queste tecnologie aveva il suo insieme
proprio di notazioni e simboli, che differiva, a volte in modo rilevante, dalle
altre.

In particolare, eccellevano tre di queste metodologie:

●   OMT (Rumbaugh)
●   Booch 1991
●   OOSE (Obiectory) (Jacobson)


Nell'ottobre del 1995, nacque la prima bozza dell' UML (Unified Modelling
Language), ovvero l'unificazione delle notazioni e delle idee prodotte da
Booch, Rumbaugh e Jacobson per modellare un sistema software.


www.javaportal.it | www.k-tech.it                 corsi@k-tech.it                 4
Evoluzione
     << document >>                                    1997 - Unificazione dei principali linguaggi di modellazione:
                                                       Booch, OMT e Objectory.
      UML 1.1                                          OMG acquisisce UML.

        << refine >>

          << document >>                               1998 – Modifiche editoriali senza cambiamenti tecnici
                                                       significativi.
            UML 1.2
              << refine >>

               << document >>                          1999 – Aggiunti gli stati di sync per la sincronizzazione di
                                                       attività concorrenti.
                UML 1.3                                Ridefinite le relazioni dei casi d'uso: generalizzazione,
                                                       include, estende.
                       << refine >>

                         << document >>                2001 – Aggiunti vincoli nei diagrammi di collaborazione.
                                                       Cambiamento della notazione grafica dei componenti.
                          UML 1.4                      Definiti gli artefatti per specificare i componenti fisici (file
                                                       sorgenti, file eseguibili, script).
                             << refine >>              Aggiunta vivibilità di package.
                              << document >>           2002 – 2005 – La OMG definisce quattro request For
                                                       Proposals:
                               UML 2.0                 UML 2.0 Infrastructure, UML 2.0 Superstructure, UML Object
                                                       Constraint Language, UML 2.0 Diagram Interchange.
                                      << refine >>

                                      << document >>   2006 – variazioni minori.

                                        UML 2.1



www.javaportal.it | www.k-tech.it                                      corsi@k-tech.it                                    5
UML 2.0




www.javaportal.it | www.k-tech.it   corsi@k-tech.it   6
Modello
Cos’è un modello ?
        Un modello è la semplificazione della realtà


“A model is an abstraction of something for the purpose of
 understanding it before building it.
 Because a model omits nonessential details, it is easier to

                                     ”
 manipulate than the original entity.
                                                Rumbaugh - 1991


Un modello è una astrazione di qualche cosa, [creato] con
lo scopo di capirla prima di costruirla. Poiché un modello
omette i dettagli non essenziali, è più semplice da
manipolare rispetto all'entità originale.

www.javaportal.it | www.k-tech.it    corsi@k-tech.it              7
Modellare il problema

Perché abbiamo bisogno di un modello?

       Modelliamo per capire meglio il sistema
              che dobbiamo sviluppare


Perché dobbiamo semplificare la realtà?

        Qualunque realtà è troppo complessa
            (nell’insieme e nel dettaglio)
                per essere compresa



www.javaportal.it | www.k-tech.it   corsi@k-tech.it   8
Obiettivi della Modellazione

Modellare per il riutilizzo

   – Un buon progetto consente di riutilizzare parti del
     software in contesti diversi da quello per cui è stato
     pensato


Modellare per il cambiamento

   – Un buon progetto deve essere in grado di resistere ai
     cambiamenti, generati da un mutamento delle
     specifiche oppure da un cambio di contesto
     tecnologico

www.javaportal.it | www.k-tech.it     corsi@k-tech.it         9
Qualità di un Modello
Le proprietà che deve possedere un modello dovrebbero
essere tenute a mente e guidare la fase di progettazione del
sistema, al fine di produrre versioni di migliore qualità.

Un modello dovrebbe essere :
• Accurato: deve descrivere il sistema correttamente,
  completamente e senza ambiguità
• Consistente: le diverse viste devono completarsi
  vicendevolmente per formare un insieme coerente
• Semplice: deve poter essere compreso, senza troppi
  problemi, da persone estranee al processo di modellazione
• Manutenibile: la variazione dello stesso deve essere la più
  semplice possibile
www.javaportal.it | www.k-tech.it   corsi@k-tech.it             10
La mappa e il territorio
Ognuno ha una immagine precisa (mappa) del Dominio del
Problema.


Questa mappa però viene spesso creata attraverso tre
processi pericolosi:

• Rimozione
• Distorsione
• Generalizzazione



www.javaportal.it | www.k-tech.it   corsi@k-tech.it      11
Rimozione

L’informazione viene scartata

E' un processo di selezione dell'esperienza

La rimozione ci consente di orientarci nel mondo
concentrandoci in particolare su ciò che è funzionale per noi




www.javaportal.it | www.k-tech.it   corsi@k-tech.it             12
Distorsione
L’informazione viene modificata tramite meccanismi di creazione e
allucinazione.
Interpretiamo il mondo esterno secondo le nostre mappe, adeguando la
realtà alle nostre attese.




La distorsione ci consente di "trasformare" la realtà adattandola ai nostri
scopi, nonché di scegliere e decidere quali comportamenti adottare,
immaginando nel futuro le loro conseguenze.
www.javaportal.it | www.k-tech.it            corsi@k-tech.it                  13
Generalizzazione
L’informazione viene incorporata in una regola, assioma o principio
che riguarda principi di verità o falsità.


La generalizzazione è il processo attraverso cui le persone
partendo da una esperienza specifica, la decontestualizzano
traendone un significato universale.


E' in pratica una semplificazione della realtà con la quale creiamo
categorie di riferimento.

La generalizzazione ci consente di gestire al meglio situazioni simili
ad altre passate, recuperando le opportune risorse.


www.javaportal.it | www.k-tech.it        corsi@k-tech.it                 14
Principi di modellazione...
La scelta di quale modello creare influisce profondamente su come
verrà affrontato il problema e di conseguenza su quale soluzione
verrà trovata.




www.javaportal.it | www.k-tech.it    corsi@k-tech.it                15
...Principi di modellazione...

Ogni modello può essere espresso a diversi livelli di precisione
(profondità).


      Diversi livelli di zoom
            offrono viste con
       contenuti informativi
   diversi, utili ad audience
                      diverse.




www.javaportal.it | www.k-tech.it      corsi@k-tech.it             16
...Principi di modellazione...

I modelli migliori sono connessi alla realtà.




www.javaportal.it | www.k-tech.it        corsi@k-tech.it   17
...Principi di modellazione

Un singolo modello non è sufficiente. Molto meglio molti modelli
(viste) indipendenti.




www.javaportal.it | www.k-tech.it      corsi@k-tech.it             18
Module Review

In questo modulo abbiamo visto:

 ●   Un po’ di storia
 ●   Evoluzione
 ●   UML 2.0
 ●   Modello
 ●   Modellare il problema
 ●   Obiettivi della modellazione
 ●   Qualità di un modello
 ●   La mappa e il territorio
 ●   Rimozione
 ●   Distorsione
 ●   Generalizzazione
 ●   Principi di modellazione



www.javaportal.it | www.k-tech.it   corsi@k-tech.it   19
Domande...




www.javaportal.it | www.k-tech.it   corsi@k-tech.it   20
BREAK
                                    Dopo la pausa:

                                    Introduzione all'UML




              Leggi il programma completo del corso



www.javaportal.it | www.k-tech.it       corsi@k-tech.it       21

More Related Content

Viewers also liked

103 1.2.6staticandcurrent6
103 1.2.6staticandcurrent6103 1.2.6staticandcurrent6
103 1.2.6staticandcurrent6Talia Carbis
 
Modelo de relatório de participação em eventos estudantis alterado
Modelo de relatório de participação em eventos estudantis alteradoModelo de relatório de participação em eventos estudantis alterado
Modelo de relatório de participação em eventos estudantis alteradoTim Hunter
 
1.Business Model Demo
1.Business Model Demo1.Business Model Demo
1.Business Model DemophanulimDr
 
Viva ações realizadas tedx2014
Viva   ações realizadas tedx2014Viva   ações realizadas tedx2014
Viva ações realizadas tedx2014patriciarabello
 
Viva apresentação start 2013 - recomendações - slide share
Viva   apresentação start 2013 - recomendações - slide shareViva   apresentação start 2013 - recomendações - slide share
Viva apresentação start 2013 - recomendações - slide sharepatriciarabello
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java BaseK-Tech Formazione
 
Ethical Issues in Developmental Biology Research
Ethical  Issues  in  Developmental  Biology  ResearchEthical  Issues  in  Developmental  Biology  Research
Ethical Issues in Developmental Biology ResearchTolulope Arogundade
 
CZI internal devaluation symposium set for tomorrow
CZI internal devaluation symposium set for tomorrowCZI internal devaluation symposium set for tomorrow
CZI internal devaluation symposium set for tomorrowZimpapers Group (1980)
 
부동소수점 문제
부동소수점 문제부동소수점 문제
부동소수점 문제Sangwook Kwon
 

Viewers also liked (19)

103 1.2.6staticandcurrent6
103 1.2.6staticandcurrent6103 1.2.6staticandcurrent6
103 1.2.6staticandcurrent6
 
7.4.4
7.4.47.4.4
7.4.4
 
7.3.6
7.3.67.3.6
7.3.6
 
10.1.1
10.1.110.1.1
10.1.1
 
7.5.1
7.5.17.5.1
7.5.1
 
9.1.4
9.1.49.1.4
9.1.4
 
Modelo de relatório de participação em eventos estudantis alterado
Modelo de relatório de participação em eventos estudantis alteradoModelo de relatório de participação em eventos estudantis alterado
Modelo de relatório de participação em eventos estudantis alterado
 
STEM
STEMSTEM
STEM
 
1.Business Model Demo
1.Business Model Demo1.Business Model Demo
1.Business Model Demo
 
Viva ações realizadas tedx2014
Viva   ações realizadas tedx2014Viva   ações realizadas tedx2014
Viva ações realizadas tedx2014
 
ProgrammaCorso
ProgrammaCorsoProgrammaCorso
ProgrammaCorso
 
FANTIN BIG DATA (2)
FANTIN BIG DATA (2)FANTIN BIG DATA (2)
FANTIN BIG DATA (2)
 
Viva apresentação start 2013 - recomendações - slide share
Viva   apresentação start 2013 - recomendações - slide shareViva   apresentação start 2013 - recomendações - slide share
Viva apresentação start 2013 - recomendações - slide share
 
Project presentation v.1+
Project presentation v.1+Project presentation v.1+
Project presentation v.1+
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
Ethical Issues in Developmental Biology Research
Ethical  Issues  in  Developmental  Biology  ResearchEthical  Issues  in  Developmental  Biology  Research
Ethical Issues in Developmental Biology Research
 
Corso Java 1 - BASE
Corso Java 1 - BASECorso Java 1 - BASE
Corso Java 1 - BASE
 
CZI internal devaluation symposium set for tomorrow
CZI internal devaluation symposium set for tomorrowCZI internal devaluation symposium set for tomorrow
CZI internal devaluation symposium set for tomorrow
 
부동소수점 문제
부동소수점 문제부동소수점 문제
부동소수점 문제
 

Similar to Corso Unified Modeling Language (UML)

Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Luca Dalle Vedove
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRSManuel Scapolan
 
Modellazione UML per il WEB: Approccio di Conallen
Modellazione UML per il WEB: Approccio di ConallenModellazione UML per il WEB: Approccio di Conallen
Modellazione UML per il WEB: Approccio di ConallenHenry Muccini
 
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLIntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLmatteo_gentile
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Henry Muccini
 
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniserviziLe 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniserviziLuca Acquaviva
 
BPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeBPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeemanuelemolteni
 
Comergy_2009_2015
Comergy_2009_2015Comergy_2009_2015
Comergy_2009_2015Nc Sòlàr
 
FLSS: documento di design
FLSS: documento di designFLSS: documento di design
FLSS: documento di designSara M
 
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...Corrado Musumeci
 
Un sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNUn sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNAlessandro Segatto
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Srl
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusMicrofocusitalia
 
Intro simulink ta_6pp
Intro simulink ta_6ppIntro simulink ta_6pp
Intro simulink ta_6pprobirons
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingVittoriano Muttillo
 

Similar to Corso Unified Modeling Language (UML) (20)

Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Modellazione UML per il WEB: Approccio di Conallen
Modellazione UML per il WEB: Approccio di ConallenModellazione UML per il WEB: Approccio di Conallen
Modellazione UML per il WEB: Approccio di Conallen
 
Introduzione a UML
Introduzione a UMLIntroduzione a UML
Introduzione a UML
 
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUMLIntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Corso UML
Corso UMLCorso UML
Corso UML
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)
 
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniserviziLe 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
 
Off. 26 Nov Scor Lovecchioconsulting Ad Net
Off. 26 Nov Scor Lovecchioconsulting Ad NetOff. 26 Nov Scor Lovecchioconsulting Ad Net
Off. 26 Nov Scor Lovecchioconsulting Ad Net
 
BPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeBPM e Cloud: la partnership ideale
BPM e Cloud: la partnership ideale
 
Comergy_2009_2015
Comergy_2009_2015Comergy_2009_2015
Comergy_2009_2015
 
FLSS: documento di design
FLSS: documento di designFLSS: documento di design
FLSS: documento di design
 
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
 
Un sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNUn sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMN
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
 
Mashlight
MashlightMashlight
Mashlight
 
Intro simulink ta_6pp
Intro simulink ta_6ppIntro simulink ta_6pp
Intro simulink ta_6pp
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time logging
 

More from K-Tech Formazione

Fai la cosa giusta da subito: Troubleshooting Server Side JVM
Fai la cosa giusta da subito: Troubleshooting  Server Side JVMFai la cosa giusta da subito: Troubleshooting  Server Side JVM
Fai la cosa giusta da subito: Troubleshooting Server Side JVMK-Tech Formazione
 
Troubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationTroubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationK-Tech Formazione
 
Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEK-Tech Formazione
 
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...K-Tech Formazione
 
Prevedere il comportamento delle applicazioni Web in produzione
Prevedere il comportamento delle applicazioni Web in produzionePrevedere il comportamento delle applicazioni Web in produzione
Prevedere il comportamento delle applicazioni Web in produzioneK-Tech Formazione
 
APM: WWWWW (What, Why, Where, Who, When)
APM: WWWWW (What, Why, Where, Who, When)APM: WWWWW (What, Why, Where, Who, When)
APM: WWWWW (What, Why, Where, Who, When)K-Tech Formazione
 
Corso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignCorso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignK-Tech Formazione
 

More from K-Tech Formazione (8)

Fai la cosa giusta da subito: Troubleshooting Server Side JVM
Fai la cosa giusta da subito: Troubleshooting  Server Side JVMFai la cosa giusta da subito: Troubleshooting  Server Side JVM
Fai la cosa giusta da subito: Troubleshooting Server Side JVM
 
Troubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationTroubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determination
 
Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPE
 
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...
Segnali dal futuro. Prevedere le prestazioni dei sistemi web ed evitare gli a...
 
Prevedere il comportamento delle applicazioni Web in produzione
Prevedere il comportamento delle applicazioni Web in produzionePrevedere il comportamento delle applicazioni Web in produzione
Prevedere il comportamento delle applicazioni Web in produzione
 
APM: WWWWW (What, Why, Where, Who, When)
APM: WWWWW (What, Why, Where, Who, When)APM: WWWWW (What, Why, Where, Who, When)
APM: WWWWW (What, Why, Where, Who, When)
 
Corso GOF Design Pattern
Corso GOF Design PatternCorso GOF Design Pattern
Corso GOF Design Pattern
 
Corso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignCorso Object Oriented Analysis and Design
Corso Object Oriented Analysis and Design
 

Corso Unified Modeling Language (UML)

  • 1. UML 2.0 Panoramica su UML Leggi il programma completo del corso www.javaportal.it | www.k-tech.it corsi@k-tech.it
  • 2. Agenda Mod 00 – Presentazione ►Mod 01 – Panoramica su UML◄ Mod 02 – Introduzione all'UML Mod 03 – Modellazione Strutturale Mod 04 – Relazioni ........ Mod 14 – Statechart Diagram Mod 15 – Timing Diagram Mod 16 – Sequence Diagram Mod 17 – Communication Diagram Mod 18 – Interaction Overview Diagram www.javaportal.it | www.k-tech.it corsi@k-tech.it 2
  • 3. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible,so readily capable of ” realizing grand conceptual structures. Frederick P. Brooks, Jr. www.javaportal.it | www.k-tech.it corsi@k-tech.it 3
  • 4. Un po' di storia Durante gli anni '90 furono introdotte nel mercato dell'Information Technology parecchie metodologie per il disegno e la progettazione di sistemi software. Vi era un problema, però: ognuna di queste tecnologie aveva il suo insieme proprio di notazioni e simboli, che differiva, a volte in modo rilevante, dalle altre. In particolare, eccellevano tre di queste metodologie: ● OMT (Rumbaugh) ● Booch 1991 ● OOSE (Obiectory) (Jacobson) Nell'ottobre del 1995, nacque la prima bozza dell' UML (Unified Modelling Language), ovvero l'unificazione delle notazioni e delle idee prodotte da Booch, Rumbaugh e Jacobson per modellare un sistema software. www.javaportal.it | www.k-tech.it corsi@k-tech.it 4
  • 5. Evoluzione << document >> 1997 - Unificazione dei principali linguaggi di modellazione: Booch, OMT e Objectory. UML 1.1 OMG acquisisce UML. << refine >> << document >> 1998 – Modifiche editoriali senza cambiamenti tecnici significativi. UML 1.2 << refine >> << document >> 1999 – Aggiunti gli stati di sync per la sincronizzazione di attività concorrenti. UML 1.3 Ridefinite le relazioni dei casi d'uso: generalizzazione, include, estende. << refine >> << document >> 2001 – Aggiunti vincoli nei diagrammi di collaborazione. Cambiamento della notazione grafica dei componenti. UML 1.4 Definiti gli artefatti per specificare i componenti fisici (file sorgenti, file eseguibili, script). << refine >> Aggiunta vivibilità di package. << document >> 2002 – 2005 – La OMG definisce quattro request For Proposals: UML 2.0 UML 2.0 Infrastructure, UML 2.0 Superstructure, UML Object Constraint Language, UML 2.0 Diagram Interchange. << refine >> << document >> 2006 – variazioni minori. UML 2.1 www.javaportal.it | www.k-tech.it corsi@k-tech.it 5
  • 6. UML 2.0 www.javaportal.it | www.k-tech.it corsi@k-tech.it 6
  • 7. Modello Cos’è un modello ? Un modello è la semplificazione della realtà “A model is an abstraction of something for the purpose of understanding it before building it. Because a model omits nonessential details, it is easier to ” manipulate than the original entity. Rumbaugh - 1991 Un modello è una astrazione di qualche cosa, [creato] con lo scopo di capirla prima di costruirla. Poiché un modello omette i dettagli non essenziali, è più semplice da manipolare rispetto all'entità originale. www.javaportal.it | www.k-tech.it corsi@k-tech.it 7
  • 8. Modellare il problema Perché abbiamo bisogno di un modello? Modelliamo per capire meglio il sistema che dobbiamo sviluppare Perché dobbiamo semplificare la realtà? Qualunque realtà è troppo complessa (nell’insieme e nel dettaglio) per essere compresa www.javaportal.it | www.k-tech.it corsi@k-tech.it 8
  • 9. Obiettivi della Modellazione Modellare per il riutilizzo – Un buon progetto consente di riutilizzare parti del software in contesti diversi da quello per cui è stato pensato Modellare per il cambiamento – Un buon progetto deve essere in grado di resistere ai cambiamenti, generati da un mutamento delle specifiche oppure da un cambio di contesto tecnologico www.javaportal.it | www.k-tech.it corsi@k-tech.it 9
  • 10. Qualità di un Modello Le proprietà che deve possedere un modello dovrebbero essere tenute a mente e guidare la fase di progettazione del sistema, al fine di produrre versioni di migliore qualità. Un modello dovrebbe essere : • Accurato: deve descrivere il sistema correttamente, completamente e senza ambiguità • Consistente: le diverse viste devono completarsi vicendevolmente per formare un insieme coerente • Semplice: deve poter essere compreso, senza troppi problemi, da persone estranee al processo di modellazione • Manutenibile: la variazione dello stesso deve essere la più semplice possibile www.javaportal.it | www.k-tech.it corsi@k-tech.it 10
  • 11. La mappa e il territorio Ognuno ha una immagine precisa (mappa) del Dominio del Problema. Questa mappa però viene spesso creata attraverso tre processi pericolosi: • Rimozione • Distorsione • Generalizzazione www.javaportal.it | www.k-tech.it corsi@k-tech.it 11
  • 12. Rimozione L’informazione viene scartata E' un processo di selezione dell'esperienza La rimozione ci consente di orientarci nel mondo concentrandoci in particolare su ciò che è funzionale per noi www.javaportal.it | www.k-tech.it corsi@k-tech.it 12
  • 13. Distorsione L’informazione viene modificata tramite meccanismi di creazione e allucinazione. Interpretiamo il mondo esterno secondo le nostre mappe, adeguando la realtà alle nostre attese. La distorsione ci consente di "trasformare" la realtà adattandola ai nostri scopi, nonché di scegliere e decidere quali comportamenti adottare, immaginando nel futuro le loro conseguenze. www.javaportal.it | www.k-tech.it corsi@k-tech.it 13
  • 14. Generalizzazione L’informazione viene incorporata in una regola, assioma o principio che riguarda principi di verità o falsità. La generalizzazione è il processo attraverso cui le persone partendo da una esperienza specifica, la decontestualizzano traendone un significato universale. E' in pratica una semplificazione della realtà con la quale creiamo categorie di riferimento. La generalizzazione ci consente di gestire al meglio situazioni simili ad altre passate, recuperando le opportune risorse. www.javaportal.it | www.k-tech.it corsi@k-tech.it 14
  • 15. Principi di modellazione... La scelta di quale modello creare influisce profondamente su come verrà affrontato il problema e di conseguenza su quale soluzione verrà trovata. www.javaportal.it | www.k-tech.it corsi@k-tech.it 15
  • 16. ...Principi di modellazione... Ogni modello può essere espresso a diversi livelli di precisione (profondità). Diversi livelli di zoom offrono viste con contenuti informativi diversi, utili ad audience diverse. www.javaportal.it | www.k-tech.it corsi@k-tech.it 16
  • 17. ...Principi di modellazione... I modelli migliori sono connessi alla realtà. www.javaportal.it | www.k-tech.it corsi@k-tech.it 17
  • 18. ...Principi di modellazione Un singolo modello non è sufficiente. Molto meglio molti modelli (viste) indipendenti. www.javaportal.it | www.k-tech.it corsi@k-tech.it 18
  • 19. Module Review In questo modulo abbiamo visto: ● Un po’ di storia ● Evoluzione ● UML 2.0 ● Modello ● Modellare il problema ● Obiettivi della modellazione ● Qualità di un modello ● La mappa e il territorio ● Rimozione ● Distorsione ● Generalizzazione ● Principi di modellazione www.javaportal.it | www.k-tech.it corsi@k-tech.it 19
  • 21. BREAK Dopo la pausa: Introduzione all'UML Leggi il programma completo del corso www.javaportal.it | www.k-tech.it corsi@k-tech.it 21