presentacionumldian12003-120211081114-phpapp01

117
Lenguaje Unificado de Modelado

Upload: elvis-henry-guzman-aquije

Post on 10-Aug-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: presentacionumldian12003-120211081114-phpapp01

Lenguaje Unificado de

Modelado

Page 2: presentacionumldian12003-120211081114-phpapp01

• IntroducciónIntroducción• Diagramas UMLDiagramas UML

• ClasificaciónClasificación• Diagramas de EstructuraDiagramas de Estructura• Diagramas de Diagramas de

ComportamientoComportamiento

• Vista y DiagramasVista y Diagramas• Elementos GeneralesElementos Generales• Vista de UsuarioVista de Usuario

• Diagramas de casos de Diagramas de casos de UsoUso

• Escenarios de los Casos Escenarios de los Casos de Usode Uso

AGENDAAGENDA

• Vista EstructuralVista Estructural• Representación de clases y Representación de clases y

ObjetosObjetos• NotaciónNotación• Asociaciones y EnlacesAsociaciones y Enlaces• Asociaciones y Asociaciones y

MultiplicidadMultiplicidad• Asociaciones ComplejasAsociaciones Complejas• Relaciones LógicasRelaciones Lógicas

• HerenciaHerencia• PolimorfismoPolimorfismo• AgregaciónAgregación• Propagación y Propagación y

DelegaciónDelegación• Clases Abstractas e Clases Abstractas e

interfacesinterfaces

Page 3: presentacionumldian12003-120211081114-phpapp01

• Vista de Comportamiento Vista de Comportamiento (Modelo dinámico)(Modelo dinámico)• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de ColaboraciónDiagramas de Colaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

• Vista de ImplementaciónVista de Implementación• Diagramas de ComponentesDiagramas de Componentes• Cohesion y CouplingCohesion y Coupling

• Vista de AmbienteVista de Ambiente• Diagramas de DespliegueDiagramas de Despliegue

AGENDAGENDAA

Page 4: presentacionumldian12003-120211081114-phpapp01

Introducción a UMLIntroducción a UMLLenguaje Unificado de Lenguaje Unificado de

ModeladoModelado

Page 5: presentacionumldian12003-120211081114-phpapp01

ModeladoModelado

En la gestión del proceso de softwareEn la gestión del proceso de software: Construimos modelos para comunicar la arquitectura y el Construimos modelos para comunicar la arquitectura y el comportamiento deseado del sistema.comportamiento deseado del sistema.

Construimos modelos para visualizar y controlar la arquitectura del Construimos modelos para visualizar y controlar la arquitectura del sistema.sistema.

Construimos modelos para comprender mejor el sistema que estamos Construimos modelos para comprender mejor el sistema que estamos construyendo, muchas veces descubriendo posibilidades de simplificación construyendo, muchas veces descubriendo posibilidades de simplificación y reutilización.y reutilización.

En general se puede decir que construimos modelos para minimizar el En general se puede decir que construimos modelos para minimizar el riesgo:riesgo:

• Los modelos nos ayudan a visualizar como es que queremos que Los modelos nos ayudan a visualizar como es que queremos que sea un sistemasea un sistema• Los modelos nos permiten especificar la estructura o el Los modelos nos permiten especificar la estructura o el comportamiento de un sistema.comportamiento de un sistema.• Los modelos nos proporcionan plantillas que nos guían en la Los modelos nos proporcionan plantillas que nos guían en la construcción de un sistemaconstrucción de un sistema• Los modelos documentan la decisiones que hemos adoptadoLos modelos documentan la decisiones que hemos adoptado

Page 6: presentacionumldian12003-120211081114-phpapp01

Modelado Un modelo es básicamente una abstracción que incluye lo esencial de un problema complejo o estructura, filtrando los detalles no esenciales, de forma que el problema se hace más compresible.

Los modelos nos ayudan a organizar, visualizar, comprender y crear sistemas complejos

La importancia de la realización de un modelado formal es que las bases del modelado son comunes lo que conlleva a una comunicación no ambigua entre los individuos que forman parte del proyecto e incluso con los usuarios.

Siendo un modelo una abstracción de la realidad, dicha simplificación no es única, muy al contrario todo sistema debería ser visto desde diferente perspectivas utilizando diferentes modelos.

UML nos permite la construcción de diferentes modelos del mismo sistema de software .

Page 7: presentacionumldian12003-120211081114-phpapp01

Triangulo de éxito de la ejecución de Triangulo de éxito de la ejecución de un proyecto de softwareun proyecto de software

ALCANCEALCANCE

PROCESOPROCESO HERRAMIENTAHERRAMIENTA

EXITOEXITO

NOTACIONNOTACION

COSTOCOSTO TIEMPOTIEMPO

C

Page 8: presentacionumldian12003-120211081114-phpapp01

Lenguaje Unificado de ModeladoLenguaje Unificado de Modelado UML Es el lenguaje de modelado de sistemas de software más UML Es el lenguaje de modelado de sistemas de software más

conocido y utilizado en la actualidadconocido y utilizado en la actualidad EEs un lenguaje gráfico para visualizar, especificar, construir y s un lenguaje gráfico para visualizar, especificar, construir y

documentar los artefactos un sistema de software.documentar los artefactos un sistema de software. UML ofrece un estándar para describir un "plano" del sistema UML ofrece un estándar para describir un "plano" del sistema

(modelo).(modelo).

UML incluye:UML incluye:• Aspectos conceptuales tales como procesos de negocio y Aspectos conceptuales tales como procesos de negocio y

funciones del sistemafunciones del sistema• Aspectos concretos como expresiones de lenguajes de Aspectos concretos como expresiones de lenguajes de

programaciónprogramación• Esquemas de bases de datosEsquemas de bases de datos• Componentes reutilizables.Componentes reutilizables.

Page 9: presentacionumldian12003-120211081114-phpapp01

Para comprender qué es el UML, basta con analizar cada una de Para comprender qué es el UML, basta con analizar cada una de laslas palabras que lo componen, por separado palabras que lo componen, por separado

• Lenguaje:Lenguaje: E El UML es, precisamente, un lenguaje. Lo que l UML es, precisamente, un lenguaje. Lo que implica que éste cuenta con una implica que éste cuenta con una sintaxis y una semántica. sintaxis y una semántica. Por lo tanto, al modelar un concepto en UML, existen reglas Por lo tanto, al modelar un concepto en UML, existen reglas sobre cómo deben agruparse los elementos del lenguaje y el sobre cómo deben agruparse los elementos del lenguaje y el significado de esta agrupación.significado de esta agrupación.

• Modelado: Modelado: EEl UML es l UML es visual, visual, mediante su sintaxis se mediante su sintaxis se modelan distintos aspectos del mundo real, que permiten modelan distintos aspectos del mundo real, que permiten una mejor interpretación y entendimiento de éste.una mejor interpretación y entendimiento de éste.

• UnificadoUnificado: : Unifica varias técnicas de modelado en una Unifica varias técnicas de modelado en una única. Ya que el UML proviene de técnicas orientadas a única. Ya que el UML proviene de técnicas orientadas a objetos, se crea con la fuerte intención de que este permita objetos, se crea con la fuerte intención de que este permita un correcto modelado orientado a objetos.un correcto modelado orientado a objetos.

Para comprender qué es el UML, basta con analizar cada una de Para comprender qué es el UML, basta con analizar cada una de laslas palabras que lo componen, por separado palabras que lo componen, por separado

• Lenguaje:Lenguaje: E El UML es, precisamente, un lenguaje. Lo que l UML es, precisamente, un lenguaje. Lo que implica que éste cuenta con una implica que éste cuenta con una sintaxis y una semántica. sintaxis y una semántica. Por lo tanto, al modelar un concepto en UML, existen reglas Por lo tanto, al modelar un concepto en UML, existen reglas sobre cómo deben agruparse los elementos del lenguaje y el sobre cómo deben agruparse los elementos del lenguaje y el significado de esta agrupación.significado de esta agrupación.

• Modelado: Modelado: EEl UML es l UML es visual, visual, mediante su sintaxis se mediante su sintaxis se modelan distintos aspectos del mundo real, que permiten modelan distintos aspectos del mundo real, que permiten una mejor interpretación y entendimiento de éste.una mejor interpretación y entendimiento de éste.

• UnificadoUnificado: : Unifica varias técnicas de modelado en una Unifica varias técnicas de modelado en una única. Ya que el UML proviene de técnicas orientadas a única. Ya que el UML proviene de técnicas orientadas a objetos, se crea con la fuerte intención de que este permita objetos, se crea con la fuerte intención de que este permita un correcto modelado orientado a objetos.un correcto modelado orientado a objetos.

Page 10: presentacionumldian12003-120211081114-phpapp01

Lenguaje Unificado de ModeladoLenguaje Unificado de Modelado

Se puede aplicar en el desarrollo de softwareSe puede aplicar en el desarrollo de software Ofrece gran variedad de formas para dar soporte a una Ofrece gran variedad de formas para dar soporte a una

metodología de desarrollo de software (como el Proceso metodología de desarrollo de software (como el Proceso Unificado Racional o Unificado Racional o RUPRUP))

UML no es un lenguaje de programaciónUML no es un lenguaje de programación

Es un conjunto de diagramas que pueden ser usados para Es un conjunto de diagramas que pueden ser usados para especificar, construir, visualizar y documentar diseños especificar, construir, visualizar y documentar diseños de de software.software.

UML no es un proceso de cómo hacer análisis y diseño, UML UML no es un proceso de cómo hacer análisis y diseño, UML solo es un conjunto de herramientas que se usan en el proceso.solo es un conjunto de herramientas que se usan en el proceso.

Fue creado con el objetivo de crear un nuevo estándar para el Fue creado con el objetivo de crear un nuevo estándar para el modelamiento de software.modelamiento de software.

Lenguaje Unificado de ModeladoLenguaje Unificado de Modelado

Se puede aplicar en el desarrollo de softwareSe puede aplicar en el desarrollo de software Ofrece gran variedad de formas para dar soporte a una Ofrece gran variedad de formas para dar soporte a una

metodología de desarrollo de software (como el Proceso metodología de desarrollo de software (como el Proceso Unificado Racional o Unificado Racional o RUPRUP))

UML no es un lenguaje de programaciónUML no es un lenguaje de programación

Es un conjunto de diagramas que pueden ser usados para Es un conjunto de diagramas que pueden ser usados para especificar, construir, visualizar y documentar diseños especificar, construir, visualizar y documentar diseños de de software.software.

UML no es un proceso de cómo hacer análisis y diseño, UML UML no es un proceso de cómo hacer análisis y diseño, UML solo es un conjunto de herramientas que se usan en el proceso.solo es un conjunto de herramientas que se usan en el proceso.

Fue creado con el objetivo de crear un nuevo estándar para el Fue creado con el objetivo de crear un nuevo estándar para el modelamiento de software.modelamiento de software.

Page 11: presentacionumldian12003-120211081114-phpapp01

Breve Reseña HistóricaBreve Reseña Histórica

Las raíces del UML provienen de tres metodologías de análisis y diseño Las raíces del UML provienen de tres metodologías de análisis y diseño OO distintas:OO distintas:

El metodología de Grady Booch para la descripción de conjuntos de El metodología de Grady Booch para la descripción de conjuntos de objetos y sus relaciones. objetos y sus relaciones.

La Técnica de Modelado Orientada a Objetos de James Rumbaugh La Técnica de Modelado Orientada a Objetos de James Rumbaugh (OTM Object-Modeling-Tecnique)(OTM Object-Modeling-Tecnique)

Aproximación “Objetory”, de Ivar Jacobson.Aproximación “Objetory”, de Ivar Jacobson. (OOSE: Object Oriented (OOSE: Object Oriented Software Engineering) mediante la metodología de Casos de Uso.Software Engineering) mediante la metodología de Casos de Uso.

Booch, Rumbaugh y Jacobson dieron forma a la primera versión del Booch, Rumbaugh y Jacobson dieron forma a la primera versión del UML y en 1997 fue aceptado por la OMG, fecha en la que fue lanzada la UML y en 1997 fue aceptado por la OMG, fecha en la que fue lanzada la versión v1.1 del UML. versión v1.1 del UML.

Desde entonces, UML atravesó varias revisiones y refinamientos hasta Desde entonces, UML atravesó varias revisiones y refinamientos hasta llegar a la versión actual: UML 2.0. llegar a la versión actual: UML 2.0.

La especificación de UML se puede encontrar en el web site de Object La especificación de UML se puede encontrar en el web site de Object Management Group (OMG) http://www.omg.org/uml/.Management Group (OMG) http://www.omg.org/uml/.

Breve Reseña HistóricaBreve Reseña Histórica

Las raíces del UML provienen de tres metodologías de análisis y diseño Las raíces del UML provienen de tres metodologías de análisis y diseño OO distintas:OO distintas:

El metodología de Grady Booch para la descripción de conjuntos de El metodología de Grady Booch para la descripción de conjuntos de objetos y sus relaciones. objetos y sus relaciones.

La Técnica de Modelado Orientada a Objetos de James Rumbaugh La Técnica de Modelado Orientada a Objetos de James Rumbaugh (OTM Object-Modeling-Tecnique)(OTM Object-Modeling-Tecnique)

Aproximación “Objetory”, de Ivar Jacobson.Aproximación “Objetory”, de Ivar Jacobson. (OOSE: Object Oriented (OOSE: Object Oriented Software Engineering) mediante la metodología de Casos de Uso.Software Engineering) mediante la metodología de Casos de Uso.

Booch, Rumbaugh y Jacobson dieron forma a la primera versión del Booch, Rumbaugh y Jacobson dieron forma a la primera versión del UML y en 1997 fue aceptado por la OMG, fecha en la que fue lanzada la UML y en 1997 fue aceptado por la OMG, fecha en la que fue lanzada la versión v1.1 del UML. versión v1.1 del UML.

Desde entonces, UML atravesó varias revisiones y refinamientos hasta Desde entonces, UML atravesó varias revisiones y refinamientos hasta llegar a la versión actual: UML 2.0. llegar a la versión actual: UML 2.0.

La especificación de UML se puede encontrar en el web site de Object La especificación de UML se puede encontrar en el web site de Object Management Group (OMG) http://www.omg.org/uml/.Management Group (OMG) http://www.omg.org/uml/.

Page 12: presentacionumldian12003-120211081114-phpapp01

Breve Reseña HistóricaBreve Reseña Histórica¿Qué es la OMG?¿Qué es la OMG?

La OMG (Object Management Group) La OMG (Object Management Group) Es una asociación sin fines de lucro formada por grandes Es una asociación sin fines de lucro formada por grandes corporaciones, muchas de ellas de la industria del software, como corporaciones, muchas de ellas de la industria del software, como por ejemplo: por ejemplo:

IBM,IBM, Apple Computer, Apple Computer, Sun Microsystems Inc.Sun Microsystems Inc. Hewlett-Packard. Hewlett-Packard.

Esta asociación se encarga de la definición y mantenimiento de Esta asociación se encarga de la definición y mantenimiento de estándares para aplicaciones de la industria de la computación. estándares para aplicaciones de la industria de la computación. Otro de los estándares definidos por la OMG, además del UML, es Otro de los estándares definidos por la OMG, además del UML, es CORBA, el cual permite CORBA, el cual permite interoperabilidad multiplataformainteroperabilidad multiplataforma a nivel a nivel de objetos de negocio.de objetos de negocio.

Page 13: presentacionumldian12003-120211081114-phpapp01

DIAGRAMAS UML DIAGRAMAS UML

Page 14: presentacionumldian12003-120211081114-phpapp01

Diagramas UMLDiagramas UML

Diagramas de EstructuraDiagramas de Estructura Diagramas de Diagramas de ComportamientoComportamiento

Los diagramas de Los diagramas de estructura construyen y estructura construyen y documentan documentan el modelo el modelo estáticoestático del sistemadel sistema

Los diagramas de Los diagramas de comportamiento muestran la comportamiento muestran la parte dinámica de un parte dinámica de un sistema, construyen y sistema, construyen y documentan el documentan el modelo modelo dinámico dinámico del sistemadel sistema

Page 15: presentacionumldian12003-120211081114-phpapp01

Diagramas de EstructuraDiagramas de Estructura

Los Diagramas de Estructura enfatizan en los elementos que Los Diagramas de Estructura enfatizan en los elementos que deben existir en el sistema modeladodeben existir en el sistema modelado

Dentro de los Diagrama de Estructura tenemos:Dentro de los Diagrama de Estructura tenemos:

• Diagrama de ClasesDiagrama de Clases• Diagrama de ComponentesDiagrama de Componentes• Diagrama de ObjetosDiagrama de Objetos• Diagrama de Estructura Compuesta (UML 2.0)Diagrama de Estructura Compuesta (UML 2.0)• Diagrama de DespliegueDiagrama de Despliegue• Diagrama de PaquetesDiagrama de Paquetes

Page 16: presentacionumldian12003-120211081114-phpapp01

Diagramas de ComportamientoDiagramas de Comportamiento Enfatizan en lo que debe suceder en el sistema modelado.Enfatizan en lo que debe suceder en el sistema modelado.

• Diagramas de ActividadesDiagramas de Actividades• Diagramas de Casos de UsoDiagramas de Casos de Uso• Diagramas de Transición de EstadosDiagramas de Transición de Estados

Diagramas de InteracciónDiagramas de Interacción Son un subtipo de diagramas de comportamiento, que enfatiza Son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema sobre el flujo de control y de datos entre los elementos del sistema modelado.modelado.

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de comunicación Diagramas de comunicación (versión simplificada Diagrama de colaboración)• Diagramas de TiemposDiagramas de Tiempos• Diagrama Global de Interacciones o Diagrama de Vista de Diagrama Global de Interacciones o Diagrama de Vista de Interacción Interacción

Page 17: presentacionumldian12003-120211081114-phpapp01

Categorización Categorización Jerárquica de Jerárquica de los diagramas los diagramas UMLUML

Page 18: presentacionumldian12003-120211081114-phpapp01

• UML define nueve tipos de diagramas básicos:UML define nueve tipos de diagramas básicos:• UML define nueve tipos de diagramas básicos:UML define nueve tipos de diagramas básicos:

Diagramas Básicos de UMLDiagramas Básicos de UML

• Diagramas de casos de Diagramas de casos de UsoUso

• Diagramas ClasesDiagramas Clases• Diagramas ObjetosDiagramas Objetos• Diagramas ActividadDiagramas Actividad• Diagramas Colaboración Diagramas Colaboración

• Diagramas de casos de Diagramas de casos de UsoUso

• Diagramas ClasesDiagramas Clases• Diagramas ObjetosDiagramas Objetos• Diagramas ActividadDiagramas Actividad• Diagramas Colaboración Diagramas Colaboración

• Diagramas SecuenciaDiagramas Secuencia• Diagramas EstadosDiagramas Estados• Diagramas Diagramas

ComponentesComponentes• Diagramas DeploymentDiagramas Deployment

• Diagramas SecuenciaDiagramas Secuencia• Diagramas EstadosDiagramas Estados• Diagramas Diagramas

ComponentesComponentes• Diagramas DeploymentDiagramas Deployment

Page 19: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/23 19F.E.R.D.

Page 20: presentacionumldian12003-120211081114-phpapp01

• En general los diagramas UML representan conceptos En general los diagramas UML representan conceptos como símbolos (nodos) y relaciones (links) que conectan como símbolos (nodos) y relaciones (links) que conectan estos símbolos.estos símbolos.

• Otros elementos UML importantes:Otros elementos UML importantes:– Notación de paquetesNotación de paquetes– EstereotiposEstereotipos– Comentarios (notas)Comentarios (notas)– Constraints (o restricciones) Constraints (o restricciones) – Valores etiqueta (tagged values)Valores etiqueta (tagged values)

• En general los diagramas UML representan conceptos En general los diagramas UML representan conceptos como símbolos (nodos) y relaciones (links) que conectan como símbolos (nodos) y relaciones (links) que conectan estos símbolos.estos símbolos.

• Otros elementos UML importantes:Otros elementos UML importantes:– Notación de paquetesNotación de paquetes– EstereotiposEstereotipos– Comentarios (notas)Comentarios (notas)– Constraints (o restricciones) Constraints (o restricciones) – Valores etiqueta (tagged values)Valores etiqueta (tagged values)

Elementos GeneralesElementos Generales

Page 21: presentacionumldian12003-120211081114-phpapp01

PackagePackage: Sistema de Reservaciones: Sistema de Reservaciones

AgenciaAgencia

AgenteAgente AerolíneaAerolínea

BancoBanco

Package: Package: No se muestra su contenido en el No se muestra su contenido en el diagramadiagrama

Package: Package: Agencia muestra el Agencia muestra el contenido de sus clases contenido de sus clases Agente y AerolíneaAgente y Aerolínea

Package: Package: Sistema de Sistema de Reservaciones, Reservaciones, contiene los contiene los packages de packages de Agencia y BancoAgencia y Banco

Paquetes (packages)Paquetes (packages)En UML, los paquetes permiten organizar el modelado los elementos del En UML, los paquetes permiten organizar el modelado los elementos del sistema en grupos, permiten una organización jerárquica del modelo de sistema en grupos, permiten una organización jerárquica del modelo de elementos del sistema.elementos del sistema.

13/04/23 21F.E.R.D.

Page 22: presentacionumldian12003-120211081114-phpapp01

ComprasCompras

compañíacompañía

pantallapantallass

Elementos del modeloElementos del modelo

SubpackageSubpackage

Package Package namename

reportesreportes

dominidominioo

vehículvehículoo

camionetcamionetaa

camióncamión

Propietario 0 ..*Propietario 0 ..*

Package Package containercontainer

Package dependencyPackage dependency

Paquetes (packages)Paquetes (packages)

Page 23: presentacionumldian12003-120211081114-phpapp01

EstereotiposEstereotipos

<< interface>>

Set

Tag Tag estereotipoestereotipo

Antación Antación (Annotation)(Annotation)

Vehiculo3- carga : doublecarga : double

- maximaCarga : double- maximaCarga : double

+ + getCargagetCarga() : double() : double+ getMaximaCarga() : double+ getMaximaCarga() : double

+ addCaja(peso: double) : doubleaddCaja(peso: double) : double

peso en newtonspeso en newtons

pesopeso en kilogramos

Nota o comentario

Los estereotipos aplican Los estereotipos aplican tanto a relaciones como a tanto a relaciones como a nodos nodos

Page 24: presentacionumldian12003-120211081114-phpapp01

Restricciones Restricciones (Constraints)(Constraints)

JugadorJugadorLas restricciones Las restricciones proporcionan al modelo proporcionan al modelo ciertas condiciones que ciertas condiciones que aplican a un nodo o link. aplican a un nodo o link.

EquipoEquipo

{ persistente }

{ miembro miembro }

{ Mínimo 3 Jugadores mujeres y mínimo 4 jugadores hombres{ Mínimo 3 Jugadores mujeres y mínimo 4 jugadores hombres }}

*

*

* *

Constraint

Page 25: presentacionumldian12003-120211081114-phpapp01

Valores etiqueta (tagged Valores etiqueta (tagged values)values)

SeverSeverLos valores etiqueta Los valores etiqueta permiten agregar nuevas permiten agregar nuevas propiedades a los nodos en propiedades a los nodos en un diagrama. un diagrama.

{ version= 1.3 }

Valores etiqueta

{procesadores= 4 }______________________________________________________________

documento.javdocumento.javaa

Page 26: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

Page 27: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

Page 28: presentacionumldian12003-120211081114-phpapp01

Diagrama de Casos de Diagrama de Casos de UsoUso

Relaciones de Casos de Uso: Relaciones de Casos de Uso: • InclusiónInclusión: Depencia de obiligatoriedad, esteriotipo <<include>> o : Depencia de obiligatoriedad, esteriotipo <<include>> o <<use>><<use>>• ExtensiónExtensión: Opconal, esteriotipo <<extend>>: Opconal, esteriotipo <<extend>>• GeneralizaciónGeneralización

• Muestra quién hace uso del sistema y que procesos ejecutara. Muestra quién hace uso del sistema y que procesos ejecutara. • Los usuarios en un Diagrama de Casos uso son llamados Los usuarios en un Diagrama de Casos uso son llamados “Actores” “Actores” • Un Caso de Un Caso de UsoUso se muestra como una elipse. se muestra como una elipse.

Utilidad:Utilidad:• Los Diagramas de Casos de Uso son de importanciaLos Diagramas de Casos de Uso son de importancia para la de para la de obtención de requerimientos y modelado del negocio.obtención de requerimientos y modelado del negocio.• Durante todo el desarrollo del sistema para hacer seguimiento del Durante todo el desarrollo del sistema para hacer seguimiento del trabajo relisado.trabajo relisado.

28

Page 29: presentacionumldian12003-120211081114-phpapp01

Creando un modelo de Casos de Creando un modelo de Casos de UsoUso

Un Diagrama de Casos de Uso comprende de varios casos de Un Diagrama de Casos de Uso comprende de varios casos de usouso Sus componentes son: Sus componentes son:

ActoresActores Casos de usoCasos de uso El sistemaEl sistema Relaciones de generalización y asociaciónRelaciones de generalización y asociación

Un modelo de casos de uso usa Un modelo de casos de uso usa “Actores” “Actores” para definir que para definir que existe fuera del sistema y “Casos de uso” para definir que debe existe fuera del sistema y “Casos de uso” para definir que debe ejecutarse por el sistemaejecutarse por el sistema

13/04/23 29F.E.R.D.

Page 30: presentacionumldian12003-120211081114-phpapp01

Diagramas de Casos de Diagramas de Casos de UsoUso

Los casos de uso representan la funcionalidad dada por el sistema a los usuarios Los casos de uso representan la funcionalidad dada por el sistema a los usuarios externos. externos.

el cliente pregunta por el balance

13/04/23 30F.E.R.D.

Page 31: presentacionumldian12003-120211081114-phpapp01

Diagramas de Casos de UsoDiagramas de Casos de UsoEl estándar de UML define una notación gráfica para realizar El estándar de UML define una notación gráfica para realizar diagramas de casos de uso, pero no el formato para describir diagramas de casos de uso, pero no el formato para describir casos de uso.casos de uso.

El valor verdadero de un caso de uso reposa en dos áreas:El valor verdadero de un caso de uso reposa en dos áreas:

La descripción escrita del comportamiento del sistemaLa descripción escrita del comportamiento del sistema al al afrontar una afrontar una tarea de negocio o un requisito de negociotarea de negocio o un requisito de negocio. .

La posición o contexto del caso de uso entre otros casos de La posición o contexto del caso de uso entre otros casos de uso. Dado que es un mecanismo de organización, un conjunto de uso. Dado que es un mecanismo de organización, un conjunto de casos de uso coherentes, consistentes promueve una imagen casos de uso coherentes, consistentes promueve una imagen fácil del fácil del comportamientocomportamiento del sistemadel sistema, un , un entendimiento comúnentendimiento común entre el cliente/propietario/usuario y el equipo de desarrollo.entre el cliente/propietario/usuario y el equipo de desarrollo.

13/04/23 31F.E.R.D.

Page 32: presentacionumldian12003-120211081114-phpapp01

Nueva ReservaciónNueva Reservación

Modificar ReservaciónModificar Reservación

Borrar ReservaciónBorrar Reservación

Check in HuéspedCheck in Huésped

Check out HuéspedCheck out Huésped

Buscar Huésped por nombreBuscar Huésped por nombre

SISTEMA HOTELEROSISTEMA HOTELERO

RecepcionistaRecepcionista

TelefonistaTelefonista

RegistradorRegistrador

13/04/23 32F.E.R.D.

Page 33: presentacionumldian12003-120211081114-phpapp01

Nueva ReservaciónNueva Reservación

Modificar ReservaciónModificar Reservación

Borrar ReservaciónBorrar Reservación

Check in HuéspedCheck in Huésped

Check out HuéspedCheck out Huésped

Buscar Huésped por nombreBuscar Huésped por nombre

SISTEMA HOTELEROSISTEMA HOTELERO

RecepcionistaRecepcionista

TelefonistaTelefonista

RegistradorRegistrador

Adicinar detalles HuéspedAdicinar detalles Huésped

Buscar ReservaciónBuscar Reservación

Habilitar TeléfonoHabilitar Teléfono

Deshabilitar TeléfonoDeshabilitar Teléfono

<<extend>>

<<include>>

<<include>>

<<include

>><<include>>

<<include>>

<< actor>><< actor>>

Monitor Monitor TeléfonoTeléfono

ss

13/04/23 33F.E.R.D.

Page 34: presentacionumldian12003-120211081114-phpapp01

Escenarios de los Casos de Escenarios de los Casos de UsoUso Un Caso de Uso muestra una función desde la perspectiva de los Un Caso de Uso muestra una función desde la perspectiva de los

usuasrios.usuasrios.

Un Un escenarioescenario se refiere a una instancia de un Caso de Uso. se refiere a una instancia de un Caso de Uso.

Un escenrio es un camino lógico desde el comienso hasta el Un escenrio es un camino lógico desde el comienso hasta el final.final.

Los escenarios Los escenarios no contienen no contienen condicionales porque describen uno condicionales porque describen uno o varios caminos posibles de un caso de uso.o varios caminos posibles de un caso de uso.

Se deben documentar escenerios tanto existosos como no Se deben documentar escenerios tanto existosos como no existosos.existosos.

Se deben documentar los principales escenarios.Se deben documentar los principales escenarios.

13/04/23 34F.E.R.D.

Page 35: presentacionumldian12003-120211081114-phpapp01

Nombre

Actor

Estado

Puntos de Extensión

ExtendsPrecondiciones/ Asunpciones

Post-condiciones

Flujo de Eventos

Nueva Reservación

Recepsionista, Resgistrador

Esperando por revisión del PM

Adicionar detalles Huésped

Ninguna

El usuario esta logeado y la pantalla de reservaciones ha sido seleccionada

La lista de reservaciones es actualizada si la reservación es aceptada

1. Se muestra al usuario lista de tipos de cuarto

2. El usuario selecciona el tipo cuarto requerido

3. El usuario entra fechas inicial y final o duración

4. El usuario inicia búsqueda cuarto disponible

5. Si las fecha están mal especificadas [A1]6. Si no encontró cuarto disponible [A2]7. Si el cuarto esta disponible, se muestra

precio8. Si el cliente rechaza la oferta [A3]9. (Adionar detalles Huésped) punto de

extensión10. …………………

13/04/23 35F.E.R.D.

Page 36: presentacionumldian12003-120211081114-phpapp01

Nombre

Requerimientos no funcionalesPerformance

FrecuenciaNotas

Escenarios (Caminos Alternativos)

Nueva Reservación

Respuesta interactiva es requerida

Baja

Este caso de uso se puede cancelar en cualquier momento1.A1. La pantalla muestra mensaje “fechas invalidas” entonces vuelve al punto 12.A2. La pantalla muestra mensaje “Por favor intente seleccionar otro tipo de cuarto” entonces vuelve al punto 13.A3. El caso de uso es terminado, cambios no efectuados.

13/04/23 36F.E.R.D.

Page 37: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/23 37F.E.R.D.

Page 38: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/23 38F.E.R.D.

Page 39: presentacionumldian12003-120211081114-phpapp01

Representación de Objetos y Clases en UMLRepresentación de Objetos y Clases en UML

Los aspectos lógico y físico de la vista estática se muestra en Los aspectos lógico y físico de la vista estática se muestra en el Modelo de Objetos (Model Object)el Modelo de Objetos (Model Object)

El Model Object esta compuesto de dos diagramas:El Model Object esta compuesto de dos diagramas:• Diagrama de Clases Diagrama de Clases • Diagrama de ObjetosDiagrama de Objetos

13/04/23 39F.E.R.D.

Vista EstructuralVista Estructural

Page 40: presentacionumldian12003-120211081114-phpapp01

Notación UML de las clasesNotación UML de las clases

NombreClase

atributos

metodos

Estructura básica de una clase en un Diagrama de ClasesEstructura básica de una clase en un Diagrama de Clases

nombreClase

Un Diagrama de clases es dinámico en su naturaleza, Un Diagrama de clases es dinámico en su naturaleza, este puede ser revisado y actualizado durante la fase este puede ser revisado y actualizado durante la fase de análisis. Se le asigna el nombre cuando se crea de análisis. Se le asigna el nombre cuando se crea pero la lista de atributos y métodos variará en cada pero la lista de atributos y métodos variará en cada iteración a otrasiteración a otras

13/04/23 40F.E.R.D.

Page 41: presentacionumldian12003-120211081114-phpapp01

Notación UML de las clasesNotación UML de las clases

VehículoVehículo - carga : double = 0.0

Nodos clase:Nodos clase:

CompañiaCompañia

Es una clase Es una clase concreta, en donde concreta, en donde sus miembros no sus miembros no están modelados.están modelados.

InputStreaInputStreamm

<<interface>>

Es una clase Es una clase abstracta (abstracta (nombre en nombre en itálicasitálicas))

Es una Es una interfaceinterface

SetSet

- cargaMaxima : double

+ getCargaMaxima() : double

+ getCarga() : double

+ addionarCaja(peso : double) : boolean

a) b) c)

d)

Es una clase Es una clase concreta, en donde concreta, en donde sus miembros están sus miembros están modelados.modelados.

13/04/23 41F.E.R.D.

Page 42: presentacionumldian12003-120211081114-phpapp01

VehículVehículoo - carga : double = 0.0

- cargaMaxima : double

+ setCargaMaxima(maximo : double)

+ getCargaMaxima() : double

+ calcularDistanciaRecorrida() : double

- Destinos [1 . . *] : String

<<constuctor>>

+ Vehiculo(cargaMaxima : double )

<<accesor>>

+ getcarga() : double

<<mutator>>

+ adicionarCaja(peso : double) : boolean

<<bussiness logic>>

# calcularEficiencia() :double

modos demodos de accesoacceso

nombre clasenombre clase

tipo tipo atributoatributo

multiplicidmultiplicidad atributoad atributo

valor valor inicial inicial atributoatributo

atributosatributos

métodosmétodos

nombre nombre métodométodo

nombre nombre parámetrparámetroo

tipo tipo retornoretorno

tipo tipo parámeparámetrotro

Notación UML de las clasesNotación UML de las clases

nombre nombre atributoatributo

13/04/23 42F.E.R.D.

Page 43: presentacionumldian12003-120211081114-phpapp01

Notación UML de los objetosNotación UML de los objetos

Count

- counter : int = 0

- instanciaNumbre : int

Ejemplo de una clase con elementos Ejemplo de una clase con elementos estáticos, estáticos, counter counter es un atributo estático es un atributo estático y y getTotalCounter() getTotalCounter() un método estático. un método estático.

UML define modos de acceso y sus símbolos: UML define modos de acceso y sus símbolos:

modo de accesomodo de acceso símbolosímbolo

private -

protected #

Public +

- getTotalCount() : int + getMyNumber : int

Elementos estáticosElementos estáticos

13/04/23 43F.E.R.D.

Page 44: presentacionumldian12003-120211081114-phpapp01

Notación UML de los objetosNotación UML de los objetos

objectName:NombreClase

atributo1 = valor1

La notación de un objeto es diferente a la de una clase ya que La notación de un objeto es diferente a la de una clase ya que un objeto es una instancia de una claseun objeto es una instancia de una clase

atributo2 = valor2

objectName:NombreClase

:NombreClase

Si se conoce que el objeto es requerido pero no se le a identificado un nombreSi se conoce que el objeto es requerido pero no se le a identificado un nombre

Sintaxis:Sintaxis:

13/04/23 44F.E.R.D.

Page 45: presentacionumldian12003-120211081114-phpapp01

Asociaciones y Enlaces (links)Asociaciones y Enlaces (links)

Enlace (linkEnlace (link):):

Asociacción:Asociacción:

Persona CarroPropietarioPropietario

La relación representada por una línea sobre un Diagrama de Clases La relación representada por una línea sobre un Diagrama de Clases es una es una AsociaciónAsociación, , la Asociación debe tener un nombre indicando una la Asociación debe tener un nombre indicando una descripción lógica del propósito de la relación.descripción lógica del propósito de la relación.

:Persona :CarroPropietario

Una Asociación entre dos ClasesUna Asociación entre dos Clases

Una relación entre dos objetos es llamada un Una relación entre dos objetos es llamada un Enlace (Link).Enlace (Link).

Un Link entre dos ObjetosUn Link entre dos Objetos

13/04/23 45F.E.R.D.

Page 46: presentacionumldian12003-120211081114-phpapp01

Asociaciones y MultiplicidadAsociaciones y Multiplicidad

Carro Motormovido pormovido por

La Multiplicidad muestra cada posible combinación de cómo varios La Multiplicidad muestra cada posible combinación de cómo varios objetos de una clase pueden ser asociados con objetos de otra clase.objetos de una clase pueden ser asociados con objetos de otra clase.

Persona CarroPropietarioPropietario

Diagrama de Clases Carro, Motor, PersonaDiagrama de Clases Carro, Motor, Persona

11 11

11 **

:Persona :CarroPropietarioPropietario11 ** :Motormovido pormovido por11 11

13/04/23 46F.E.R.D.

Page 47: presentacionumldian12003-120211081114-phpapp01

Asociaciones y MultiplicidadAsociaciones y MultiplicidadInstructor

Clase Estudiante

Ejemplo de Ejemplo de Diagrama Diagrama de Clases de Clases

1 ..1 ..** 3..123..12Plan

Cubierta

11

computador

11

11

Salón

11

1 .. 1 .. **

0 ..0 ..**

11

11

0 ..0 ..**

3..123..12

13/04/23 47

F.E.R.D.

Page 48: presentacionumldian12003-120211081114-phpapp01

Asociaciones ComplejasAsociaciones Complejas

Persona Libroprestapresta

Una asociación Compleja es cuando la Multiplicidad marcada Una asociación Compleja es cuando la Multiplicidad marcada con “*” se encuentra en ambos lados de la asociación.con “*” se encuentra en ambos lados de la asociación.

** **

Una Asociación Compleja no es fácil modelar por las reglas que Una Asociación Compleja no es fácil modelar por las reglas que aplican a cada clase y tampoco lo es su implementación en un aplican a cada clase y tampoco lo es su implementación en un lenguaje de programación.lenguaje de programación.

Dos técnicas para resolver asociaciones complejas son:Dos técnicas para resolver asociaciones complejas son:• Clase AsociadaClase Asociada• Asociaciones CualificadasAsociaciones Cualificadas

13/04/23 48F.E.R.D.

Page 49: presentacionumldian12003-120211081114-phpapp01

Asociaciones ComplejasAsociaciones Complejas

Persona Libroprestapresta

Clase Asociada (o derivada)Clase Asociada (o derivada)::Una Clase asociación es codificada con atributos para resolver el Una Clase asociación es codificada con atributos para resolver el conflicto.conflicto.

Esta técnica es usada en la Esta técnica es usada en la fase de análisis para fase de análisis para resolver relaciones muchos resolver relaciones muchos a muchosa muchos

**

**

Presta

fechaDesdefechaDesde

fechaHastafechaHasta

Persona Libro**PrestafechaDesdefechaDesde

**

El nombre de la clase asociada debe ser el mismo de la asociación origenEl nombre de la clase asociada debe ser el mismo de la asociación origen

13/04/23 49F.E.R.D.

Page 50: presentacionumldian12003-120211081114-phpapp01

Asociaciones ComplejasAsociaciones Complejas

Banco ClienteBancos conBancos con

Clase CualificadaClase Cualificada::CuandoCuando dos clases tienen una asociación lógica “muchos-a-muchos”, Se dos clases tienen una asociación lógica “muchos-a-muchos”, Se asigna un valor de atributo único que actúa como índice.asigna un valor de atributo único que actúa como índice.

** **

Banco ideCliente ClienteBancos conBancos con**

Banco codBanco ClienteBancos conBancos con **

Asociación “muchos-a-muchos”Asociación “muchos-a-muchos”

Asociación Cualificada para Banco referenciado a un ClienteAsociación Cualificada para Banco referenciado a un Cliente

Asociación Cualificada para Cliente referenciado un BancoAsociación Cualificada para Cliente referenciado un Banco13/04/23 50F.E.R.D.

Page 51: presentacionumldian12003-120211081114-phpapp01

Relaciones LógicasRelaciones LógicasLas relaciones lógicas que se expondrán son las Las relaciones lógicas que se expondrán son las siguientes:siguientes:

HerenciaHerencia• GeneralizaciónGeneralización• EspecializaciónEspecialización

PolimorfismoPolimorfismo AsociaciónAsociación

• AgregaciónAgregación• ComposiciónComposición

Propagación y DelegaciónPropagación y Delegación

Relaciones lógicas en la Relaciones lógicas en la fase de análisis fase de análisis

13/04/23 51F.E.R.D.

Page 52: presentacionumldian12003-120211081114-phpapp01

Notación UML para HerenciaNotación UML para Herencia

Mamifero

Perro

Mamifero

Perro Gato

Mamifero

Perro Gato

Herencia:Herencia:Muestra como atributos y funcionalidad pueden ser Muestra como atributos y funcionalidad pueden ser compartidos entre clases de similar naturaleza o propósito.compartidos entre clases de similar naturaleza o propósito.

13/04/23 52F.E.R.D.

Page 53: presentacionumldian12003-120211081114-phpapp01

Notación UML para HerenciaNotación UML para Herencia

Mamífero

Existen dos maneras de adicionar la herencia a un modelo:Existen dos maneras de adicionar la herencia a un modelo:• GeneralizaciónGeneralización• EspecializaciónEspecialización

numPatas

Comer()Perro

numPatas

Comer()

GatonumPatas

Comer()

Perro

numPatas

GatonumPatas

maullar()

Ladrar()

ladrar()

maullar()

Generalización:Generalización:El concepto de Generalización ocurre cuando varias clases que ya existen El concepto de Generalización ocurre cuando varias clases que ya existen en el diagrama de clases exhiben común funcionalidad, estructura y en el diagrama de clases exhiben común funcionalidad, estructura y propósitopropósito

13/04/23 53F.E.R.D.

Page 54: presentacionumldian12003-120211081114-phpapp01

Notación UML para HerenciaNotación UML para Herencia

MamíferonumPatas

Comer()

Perro Gato

maullar()ladrar()

Especialización:Especialización: El concepto de Especialización ocurre cuando se crea una nueva clase El concepto de Especialización ocurre cuando se crea una nueva clase que tiene toda la funcionalidad, estructura y propósito de una clase ya que tiene toda la funcionalidad, estructura y propósito de una clase ya existente, pero requiere de nuevos código o atributosexistente, pero requiere de nuevos código o atributos

MamíferonumPatas

Comer()

Perro oveja

valar()maullar()

Perro

ladrar()

13/04/23 54F.E.R.D.

Page 55: presentacionumldian12003-120211081114-phpapp01

PolimorfismoPolimorfismo

Mamífero

Perro Gato

Polimorfismo es un termino OO fuertemente asociado a la Polimorfismo es un termino OO fuertemente asociado a la herencia, el nombre viene de una palabra griega que significa herencia, el nombre viene de una palabra griega que significa “varias_formas“ “varias_formas“ que es exactamente lo que significa en el que es exactamente lo que significa en el paradigma OO.paradigma OO.

En lenguajes OO, se pueden definir dos métodos con el mismo En lenguajes OO, se pueden definir dos métodos con el mismo nombre pero que aceptan diferentes tipos de argumentos, esta nombre pero que aceptan diferentes tipos de argumentos, esta técnica de escribir o definir métodos es llamada técnica de escribir o definir métodos es llamada overloadingoverloading (sobreescritura).(sobreescritura).

Un perro eses un mamífero Un gato eses un mamífero

13/04/23 55F.E.R.D.

Page 56: presentacionumldian12003-120211081114-phpapp01

Notación UML para Clases AbstractasNotación UML para Clases AbstractasClases Abstractas:Clases Abstractas: Son clases que definen funcionalidad sin proveer toda su Son clases que definen funcionalidad sin proveer toda su implementación y por tanto no puede ser instanciadas.implementación y por tanto no puede ser instanciadas. Una clase que extiende de un abstracta hereda todos sus métodos Una clase que extiende de un abstracta hereda todos sus métodos incluyendo los abstractos. Esta clase es considerada también es abstracta incluyendo los abstractos. Esta clase es considerada también es abstracta a menos que todos sus métodos se hayan a menos que todos sus métodos se hayan sobreescritosobreescrito dentro de la dentro de la subclase con toda su implementación.subclase con toda su implementación.

TituloValorTituloValor

calcularVlrPresente() {abstract}calcularVlrPresente() {abstract}

obtenerEmisor()obtenerEmisor()

TituloTasaFijaTituloTasaFija

calcularVlrPresente() calcularVlrPresente()

TituloTasaVariableTituloTasaVariable

obtenerTasaVari) {abstracta}obtenerTasaVari) {abstracta}

Los métodos Los métodos abstractos de la abstractos de la clase también son clase también son escritos en itálicaescritos en itálica

El nombre de una Clase El nombre de una Clase Abstracta se escribe en Abstracta se escribe en itálicaitálica

13/04/23 56F.E.R.D.

Page 57: presentacionumldian12003-120211081114-phpapp01

RolesRoles

CarroConsumidor

Describen Describen “Como” “Como” un objeto participa en una relación.un objeto participa en una relación. En UML, cada clase al final de la asociación puede tener un rol.En UML, cada clase al final de la asociación puede tener un rol. Cada clase involucrada en una transacción juega un rol.Cada clase involucrada en una transacción juega un rol. En UML los roles para una asociación son opcionales pero no En UML los roles para una asociación son opcionales pero no suprimibles.suprimibles. Proveen claridad y ayudan a el entendimiento de la asociación.Proveen claridad y ayudan a el entendimiento de la asociación.

compradocompradorr

productproductoo

comprcompraa

Asociación con Nombres de Asociación con Nombres de RolRol

13/04/23 57F.E.R.D.

Page 58: presentacionumldian12003-120211081114-phpapp01

Asociación ReflexivaAsociación Reflexiva

Persona

• En un Diagrama de Objetos puede haber un Relación entre dos En un Diagrama de Objetos puede haber un Relación entre dos instancias de la misma clase.instancias de la misma clase.• Como solo hay una clase en el Diagrama de Clases que representa Como solo hay una clase en el Diagrama de Clases que representa ambos objetos, la asociación apunta a la misma clase. Este tipo de ambos objetos, la asociación apunta a la misma clase. Este tipo de asociación es llamada asociación es llamada Asociación ReflexivaAsociación Reflexiva. .

esposoesposo

casadoscasados

esposesposaa

Asociación ReflexivaAsociación Reflexiva13/04/23

58F.E.R.D.

Page 59: presentacionumldian12003-120211081114-phpapp01

Tipos de AsociaciónTipos de Asociación Una Asociación representa un tipo de relación entre dos Una Asociación representa un tipo de relación entre dos clases y describe el nivel de dependencia de la una con la clases y describe el nivel de dependencia de la una con la otra.otra.

Hay dos tipos de relaciones que exhiben fuerte Hay dos tipos de relaciones que exhiben fuerte dependencia entre las clases:dependencia entre las clases:

• AgregaciónAgregación• ComposiciónComposición

Para identificar o validar las relaciones de Agregación y Para identificar o validar las relaciones de Agregación y Composición se pueden usar frases estructuradas:Composición se pueden usar frases estructuradas:

• AsociaciónAsociación: Un chef : Un chef usausa un cuchilloun cuchillo• AgregaciónAgregación: Un carro : Un carro tiene un tiene un radioradio• ComposiciónComposición: Un carro : Un carro siempre tienesiempre tiene un motorun motor

13/04/23 59F.E.R.D.

Page 60: presentacionumldian12003-120211081114-phpapp01

AgregaciónAgregación Es una forma de Asociación, con un fuerte énfasis de como dos Es una forma de Asociación, con un fuerte énfasis de como dos objetos se relacionan dentro de un sistema. objetos se relacionan dentro de un sistema. Caracterizado por la relación Caracterizado por la relación “Tiene Un” “Tiene Un” o o “Consiste De”.“Consiste De”.

RadioCarro Tiene unTiene un

Notación UML para una Notación UML para una ComposiciónComposición

ComposiciónComposición Caracterizado por la relación Caracterizado por la relación “Siempre contiene” “Siempre contiene” ..

MotorCarro Movido Movido porpor

Notación UML para una Notación UML para una AgregaciónAgregación

13/04/23 60F.E.R.D.

Page 61: presentacionumldian12003-120211081114-phpapp01

Propagación Propagación Se refiere al principio que se puede aplicar a clases que Se refiere al principio que se puede aplicar a clases que están asociadas a otras a través Agregación y Composición.están asociadas a otras a través Agregación y Composición.

También se refiere a la invocación de un método que También se refiere a la invocación de un método que invoca otro método de alguno objetos que han sido invoca otro método de alguno objetos que han sido agregados o con uno de los objetos que lo componen.agregados o con uno de los objetos que lo componen.

Diagrama de clases mostrando métodos que se Diagrama de clases mostrando métodos que se propaganpropagan

MotorCarroMovido Movido porpor

pisarAcelerador()pisarAcelerador() acelerar()acelerar()

13/04/23 61F.E.R.D.

Page 62: presentacionumldian12003-120211081114-phpapp01

Delegación Delegación Otro principio principio que se puede aplicar a clases que Otro principio principio que se puede aplicar a clases que están asociadas a otras a través Agregación y Composición.están asociadas a otras a través Agregación y Composición.

Ocurre cuando una operación entera que el usuario o el Ocurre cuando una operación entera que el usuario o el sistema invoca sobre una clase que hace parte de una sistema invoca sobre una clase que hace parte de una asociación de objetos.asociación de objetos.

Diagrama de Clases mostrando un Método DelegadoDiagrama de Clases mostrando un Método Delegado

RadioCarroMovido Movido porpor

subirVolumen()subirVolumen()subirVolumen()subirVolumen()

13/04/23 62F.E.R.D.

Page 63: presentacionumldian12003-120211081114-phpapp01

InterfacesInterfaces En Java las interfaces son clases en el cual En Java las interfaces son clases en el cual todotodo es abstracto. es abstracto. No extienden pero se implementan. (usan la No extienden pero se implementan. (usan la palabra palabra implementsimplements)) Abolen el problema de herencia múltiple.Abolen el problema de herencia múltiple. Los listados en un interface Los listados en un interface deben serdeben ser abstractos.abstractos. Como en las clases abstractas estos métodos Como en las clases abstractas estos métodos deben ser sobrescritos directamente en las deben ser sobrescritos directamente en las clases que implementan la interface.clases que implementan la interface. En UML se utiliza el termino En UML se utiliza el termino “Realización” “Realización” describe la relación entre una interface y las describe la relación entre una interface y las clases que implementan la interface.clases que implementan la interface.

<<interface>>

NuevoMotor

acelerar()acelerar()

Motor

acelerar()acelerar()

13/04/23 63F.E.R.D.

Page 64: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la ImplementaciónVista de la Implementación

• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario

• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/2364

F.E.R.D.

Page 65: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la ImplementaciónVista de la Implementación

• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de ColaboraciónDiagramas de Colaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario

• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/2365

F.E.R.D.

Page 66: presentacionumldian12003-120211081114-phpapp01

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de ColaboraciónDiagramas de Colaboración• Diagramas de Transición de EstadosDiagramas de Transición de Estados• Diagramas de ActividadDiagramas de Actividad

El Moldeamiento Dinámico toma lugar en las faces El Moldeamiento Dinámico toma lugar en las faces ::• Durante la fase del análisis Durante la fase del análisis • Durante el Diseño Físico.Durante el Diseño Físico.

UML provee cuatro diagramas básicos para modelar UML provee cuatro diagramas básicos para modelar la dinámica del flujo de información dentro del la dinámica del flujo de información dentro del sistema:sistema:

13/04/23 66F.E.R.D.

Modelo Dinámico Modelo Dinámico

Page 67: presentacionumldian12003-120211081114-phpapp01

Diagramas de Diagramas de SecuenciaSecuencia

El Moldeamiento Dinámico toma lugar :El Moldeamiento Dinámico toma lugar :• Durante la fase del análisis Durante la fase del análisis • Durante el Diseño Físico.Durante el Diseño Físico.

El Diagrama de Secuencia es un tipo de diagrama usado para modelar El Diagrama de Secuencia es un tipo de diagrama usado para modelar interacción entre objetos en un sistema.interacción entre objetos en un sistema.

Un Diagrama de Secuencia representa el intercambio de mensajes Un Diagrama de Secuencia representa el intercambio de mensajes entre varios objetos para ejecutar un operación particular en un periodo entre varios objetos para ejecutar un operación particular en un periodo de tiempo.de tiempo.

En UML los Diagramas de Secuencia son usados para proveer una En UML los Diagramas de Secuencia son usados para proveer una descripción diagramática de cada descripción diagramática de cada escenarioescenario dentro de un Caso de Uso dentro de un Caso de Uso

Los Diagramas de Secuencia modelan los objetos que toman parte en Los Diagramas de Secuencia modelan los objetos que toman parte en un escenario particular y muestran sus interacciones a través del tiempo.un escenario particular y muestran sus interacciones a través del tiempo.

13/04/23 67F.E.R.D.

Page 68: presentacionumldian12003-120211081114-phpapp01

Diagramas de Diagramas de SecuenciaSecuencia

Cada Diagrama de Secuencia:Cada Diagrama de Secuencia:

• Tiene una relación directa con un escenario dentro de un Caso Tiene una relación directa con un escenario dentro de un Caso de Uso.de Uso.• Identifica los objetos involucrados en cada proceso.Identifica los objetos involucrados en cada proceso.• Identifica los eventos y acciones que ocurren durante un Identifica los eventos y acciones que ocurren durante un escenario.escenario.• Identifica que información debe ser pasada durante cada Identifica que información debe ser pasada durante cada procesoproceso• Identifica que respuesta es requerida después de cada acción Identifica que respuesta es requerida después de cada acción o evento.o evento.Un Un DDiagrama de Secuenciaiagrama de Secuencia muestra los objetos que muestra los objetos que

intervienen en el escenario con líneas discontinuas verticales, y intervienen en el escenario con líneas discontinuas verticales, y los mensajes pasados entre los objetos como flechas los mensajes pasados entre los objetos como flechas horizontales.horizontales.

13/04/23 68F.E.R.D.

Page 69: presentacionumldian12003-120211081114-phpapp01

Estructura Básica de un Diagrama de Estructura Básica de un Diagrama de SecuenciaSecuenciaActor 1Actor 1 Actor 2Actor 2

Object2:Class2Object1:Class1

Líneas de vida que Líneas de vida que representan actores representan actores del sistemadel sistema

Líneas de vida Líneas de vida que representan que representan objetosobjetos

13/04/23 69F.E.R.D.

Page 70: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de SecuenciaSecuenciaActor 1Actor 1

Object2:Class2Object1:Class1

Object3:Class3

tareatarea11

tareatarea22

X<<create><<create>>>

tareatarea33

La destrucción de un objeto se representa como una X al final de la línea de ejecución del La destrucción de un objeto se representa como una X al final de la línea de ejecución del objeto.objeto.

Si la vida de un objeto Si la vida de un objeto termina durante el termina durante el Diagrama de Secuencia Diagrama de Secuencia la línea de vida termina la línea de vida termina inmediatamenteinmediatamente

13/04/2370

F.E.R.D.

Page 71: presentacionumldian12003-120211081114-phpapp01

Diagramas de Diagramas de SecuenciaSecuencia

Como pasa la información Como pasa la información entre los objetos?entre los objetos? La información entre objetos se La información entre objetos se pasa a través de pasa a través de mensajesmensajes..

Cada objeto invoca algún Cada objeto invoca algún método del otro y pasa la método del otro y pasa la información dentro del método información dentro del método como parámetros.como parámetros.

La invocación de un método de La invocación de un método de un objeto por otro objeto se un objeto por otro objeto se muestra como una flecha con un muestra como una flecha con un rotulo (label) eventualmente con rotulo (label) eventualmente con el nombre del método invocado. el nombre del método invocado.

Tipos de mensajesTipos de mensajes Existen dos tipos de mensajes: Existen dos tipos de mensajes: síncronos y asíncronos. síncronos y asíncronos. Los Los mensajes síncronos mensajes síncronos se se corresponden con llamadas a métodos corresponden con llamadas a métodos del objeto que recibe el mensaje. El del objeto que recibe el mensaje. El objeto que envía el mensaje queda objeto que envía el mensaje queda bloqueado hasta que termina la bloqueado hasta que termina la llamada. llamada. Este tipo de mensajes se representan Este tipo de mensajes se representan con flechas con la cabeza llena.con flechas con la cabeza llena. Los Los mensajes asíncronos mensajes asíncronos terminan terminan inmediatamente, y crean un nuevo hilo inmediatamente, y crean un nuevo hilo de ejecución dentro de la secuencia. de ejecución dentro de la secuencia. Se representan con flechas con la Se representan con flechas con la cabeza abierta.cabeza abierta. También se representa la También se representa la respuesta a un mensaje respuesta a un mensaje con una con una flecha discontinua.flecha discontinua.

13/04/23 71F.E.R.D.

Page 72: presentacionumldian12003-120211081114-phpapp01

Usuario InternetUsuario Internet:LoginService:LoginServlet

Return Return (with (with value)value)

AnonymouAnonymous class s class rolerole

:RDDMS

user:User

““loginlogin”” user:=logiuser:=logi

nn SELECT * FROM User SELECT * FROM User WHERE user_name=?WHERE user_name=?

““createcreate””

LífelineLífeline

ActivatioActivation Boxn Box

Named Named class roleclass role

MessagMessagee

Object Object createdcreated

Ejemplo de Diagrama de Secuencia en el cual un actor inicia una secuencia de login con una aplicación webEjemplo de Diagrama de Secuencia en el cual un actor inicia una secuencia de login con una aplicación web

13/04/2372F.E.R.D.

Page 73: presentacionumldian12003-120211081114-phpapp01

13/04/23 73F.E.R.D.

Ejemplo de Ejemplo de Diagrama de Diagrama de SecuenciaSecuencia

Page 74: presentacionumldian12003-120211081114-phpapp01

Ejemplo de Ejemplo de Diagrama Diagrama de de SecuenciaSecuencia

13/04/23 74F.E.R.D.

Page 75: presentacionumldian12003-120211081114-phpapp01

Ejemplo de Diagrama de SecuenciaEjemplo de Diagrama de Secuencia

Diagrama de Secuencia de la documentación escenario de caso de uso Firmar Acto Administrativo

75

Page 76: presentacionumldian12003-120211081114-phpapp01

• Diagramas de SecuenciaDiagramas de Secuencia Diagramas de ColaboraciónDiagramas de Colaboración• Diagramas de Transición de EstadosDiagramas de Transición de Estados• Diagramas de ActividadDiagramas de Actividad

El Moldeamiento Dinámico toma lugar El Moldeamiento Dinámico toma lugar en las faces :en las faces :• Durante la fase del análisis Durante la fase del análisis • Durante el Diseño Físico.Durante el Diseño Físico.

UML provee cuatro diagrama básicos para UML provee cuatro diagrama básicos para modelar la dinámica del flujo de información modelar la dinámica del flujo de información dentro del sistema:dentro del sistema:

13/04/2376

F.E.R.D.

Modelo Dinámico Modelo Dinámico

Page 77: presentacionumldian12003-120211081114-phpapp01

Diagramas de Diagramas de colaboracióncolaboración

Alternativa la los Diagramas de SecuenciaAlternativa la los Diagramas de Secuencia Los objetos son conectados con flechas enumeradas mostrando el flujo Los objetos son conectados con flechas enumeradas mostrando el flujo de la informaciónde la información Las flechas son dibujadas Las flechas son dibujadas desdedesde la fuente de la interacción. la fuente de la interacción. El objeto el cual se apunta la flecha se conoce con el nombre objetivo El objeto el cual se apunta la flecha se conoce con el nombre objetivo ((targettarget).). Las flechas son numeradas para mostrar el orden en el cual los objetos Las flechas son numeradas para mostrar el orden en el cual los objetos son usados dentro del escenario.son usados dentro del escenario. Esta flechas también son marcadas con la descripción de la tarea Esta flechas también son marcadas con la descripción de la tarea requerida del objeto objetivo (a través de mensajes).requerida del objeto objetivo (a través de mensajes).

Un Diagrama de Colaboración representa un comportamiento Un Diagrama de Colaboración representa un comportamiento particular compartido con varios objetosparticular compartido con varios objetos

13/04/23 77F.E.R.D.

Page 78: presentacionumldian12003-120211081114-phpapp01

Un Diagrama de Un Diagrama de ColaboraciónColaboración

Actor 1Actor 1Object2:Class2Object1:Class1

Object3:Class3

1: task11: task11.1: task21.1: task2

1.2: 1.2: <<create>><<create>>1.3: task31.3: task3

Tanto los Diagramas de secuencia como los Diagramas de Tanto los Diagramas de secuencia como los Diagramas de colaboración tienen sus ventajas y son incluidos dentro de un colaboración tienen sus ventajas y son incluidos dentro de un proyecto para clarificar completamente un escenarioproyecto para clarificar completamente un escenario

Un Diagrama de Colaboración es Un Diagrama de Colaboración es esencialmente una vista esencialmente una vista diferente de un Diagrama de diferente de un Diagrama de Secuencia.Secuencia.

13/04/23 78F.E.R.D.

Page 79: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de SecuenciaSecuencia

Actor 1Actor 1Object2:Class2Object1:Class1

Object3:Class3

tareatarea11

tareatarea22

X<<create><<create>>>

tareatarea33

Un Diagrama de Un Diagrama de Colaboración es Colaboración es esencialmente una vista esencialmente una vista diferente de un Diagrama de diferente de un Diagrama de Secuencia.Secuencia.

13/04/23 79F.E.R.D.

Page 80: presentacionumldian12003-120211081114-phpapp01

Ejemplo de un Diagrama de Ejemplo de un Diagrama de ColaboraciónColaboración

client

sessionBean

txn:UserTransaction

3: 3: createStatem

ent()

createStatement() 5: c

reate

Statement()

5: cre

ateState

ment()

1: 1: <<create>><<create>>2: begin()2: begin()7: rollback()7: rollback()10:<<destroy10:<<destroy>>>>

costumerDB:Connection

:Statement

3.1 3.1 <<create>><<create>>

invertorDB:Connection

:Statement

5.1: 5.1: <<create>><<create>>

<<<<global>>

>>

4: execu

teUpdate()

4: execu

teUpdate()

8: close

()

8: close

()

6: executeUpdate()

6: executeUpdate()

9: close()

9: close()

<<<<global>>

>>

<<local>

<<local>

>>

<<local>

<<local>>>

{trasient{trasient}}

{trasient{trasient}}

<<local<<local>>>>estereotipestereotip

ooobject object constraintconstraint

{trasien{trasient}t}

mensajmensajee

objetobjetoo linklink

13/04/2380

Page 81: presentacionumldian12003-120211081114-phpapp01

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de ColaboraciónDiagramas de Colaboración Diagramas de Transición de EstadosDiagramas de Transición de Estados• Diagramas de ActividadDiagramas de Actividad

El Moldeamiento Dinámico toma lugar en las faces El Moldeamiento Dinámico toma lugar en las faces ::• Durante la fase del análisis Durante la fase del análisis • Durante el Diseño Físico.Durante el Diseño Físico.

UML provee cuatro diagrama básicos para modelar la UML provee cuatro diagrama básicos para modelar la dinámica del flujo de información dentro del dinámica del flujo de información dentro del sistema:sistema:

13/04/23 81F.E.R.D.

Page 82: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

Muestran como un objeto cambia en el tiempo con la invocación de Muestran como un objeto cambia en el tiempo con la invocación de métodos. métodos. Consiste de:Consiste de:

• EstadosEstados

• EventosEventos Se utilizan flechas para mostrar los caminos entre diferentes estados Se utilizan flechas para mostrar los caminos entre diferentes estados de un objeto.de un objeto. Cada flecha muestra la tarea ejecutada sobre el objeto para Cada flecha muestra la tarea ejecutada sobre el objeto para representar ese evento en particular.representar ese evento en particular. Cuando un objeto adquiere un estado desde el cual este no puede Cuando un objeto adquiere un estado desde el cual este no puede adquirir otro estado este es llamado adquirir otro estado este es llamado estado final estado final y es marcado por un y es marcado por un punto de terminación.punto de terminación.

13/04/23 82F.E.R.D.

Page 83: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

Blockeb

Runnable

Running

transition

state node

New

initial state final state

Dead

startstart()() run()run()

SchedulerScheduler

unblokeunblokedd blocking blocking

eventevent

Un ejemplo de Diagrama de transición de EstadosUn ejemplo de Diagrama de transición de Estados

13/04/23 83F.E.R.D.

Page 84: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstadosEstadoEstado

Todos los objetos tienen un Todos los objetos tienen un estadoestado. . El estado actual de un objeto El estado actual de un objeto esta dado por los valores almacenados en sus atributos.esta dado por los valores almacenados en sus atributos.

EventoEvento Un Un eventoevento es un estimulo que ínsita a un objeto hacer una es un estimulo que ínsita a un objeto hacer una transición de un estado a otro. Los eventos toman la forma de una transición de un estado a otro. Los eventos toman la forma de una llamada a un método, El método es una tarea o una serie de llamada a un método, El método es una tarea o una serie de tareas dentro de un objeto que alteran el estado del objeto. tareas dentro de un objeto que alteran el estado del objeto.

TransicionesTransicionesLas transiciones llevan a un objeto de un estado a otro. Para que Las transiciones llevan a un objeto de un estado a otro. Para que ocurra una transición, deben cumplirse unas ocurra una transición, deben cumplirse unas condicionescondiciones..

13/04/23 84F.E.R.D.

Page 85: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

Un objeto puede tener Un objeto puede tener puede tener tantos estados puede tener tantos estados como definamos, pero como definamos, pero solamente podrá estar en uno solamente podrá estar en uno de ellos a la vez.de ellos a la vez.

En el ejemplo la bombilla En el ejemplo la bombilla puede estar encendida o puede estar encendida o apagada, pero no puede estar apagada, pero no puede estar encendida y apagada a la vez. encendida y apagada a la vez. Es decir, Es decir, los estados de la los estados de la bombilla serán encendida y bombilla serán encendida y apagada.apagada.13/04/23 85F.E.R.D.

Page 86: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

Estados globalesEstados globales

Pueden existir unos estados que sean capaces de interrumpir Pueden existir unos estados que sean capaces de interrumpir los demás y ejecutarse inmediatamente. Normalmente son los demás y ejecutarse inmediatamente. Normalmente son estados que realizan una acción y luego vuelven al estado que estados que realizan una acción y luego vuelven al estado que se estaba ejecutando.se estaba ejecutando.

Ejemplo:Un empleado Un empleado trabajando trabajando acaba de ganar un nuevo estado acaba de ganar un nuevo estado global: global: Ir al bañoIr al baño. . Este estado tiene prioridad absoluta, cuando Este estado tiene prioridad absoluta, cuando el empleado tenga ganas de ir al baño (es decir, cuando se el empleado tenga ganas de ir al baño (es decir, cuando se cumpla la condición que lanza la transición a este estado, por cumpla la condición que lanza la transición a este estado, por ejemplo ejemplo vejiga llenavejiga llena) ) dejará lo que está haciendo e irá al baño dejará lo que está haciendo e irá al baño de inmediato. Después, volverá a lo que estaba haciendo, como de inmediato. Después, volverá a lo que estaba haciendo, como si nada hubiera pasado.si nada hubiera pasado.13/04/23 86

F.E.R.D.

Page 87: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

TransicionesTransiciones

Una transición tiene dos elementos:Una transición tiene dos elementos:• Estado fuente – El estado afectado por la transacciónEstado fuente – El estado afectado por la transacción• Evento disparador (trigger) - Evento originado en el estado Evento disparador (trigger) - Evento originado en el estado fuentefuente

13/04/23 87F.E.R.D.

Para hacer esto posible, necesitaremos que el sistema Para hacer esto posible, necesitaremos que el sistema recuerde el estado en el que se encontraba antes de entrar al recuerde el estado en el que se encontraba antes de entrar al estado global, para así volver a ese estado una vez que finalice estado global, para así volver a ese estado una vez que finalice la ejecución del estado global.la ejecución del estado global.

Page 88: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstadosTabla de TransicionesTabla de Transiciones

Cuando tenemos varios estados, puede que desde un estado podamos Cuando tenemos varios estados, puede que desde un estado podamos pasar a varios estados distintos dependiendo de qué pasar a varios estados distintos dependiendo de qué condicionescondiciones se se cumplan. Para llevar un control sobre esto y no perdernos cuando cumplan. Para llevar un control sobre esto y no perdernos cuando tengamos más estados y varias transiciones posibles, se suele crear una tengamos más estados y varias transiciones posibles, se suele crear una tabla de transicionestabla de transiciones::

Condición Estado Condición Estado actualactual AA BB CC

1 CC CC XX

2 XX AA XX

3 XX XX BB

En esta tabla vemos lo siguiente:En esta tabla vemos lo siguiente:Si estamos en el estado A o B y se cumple la condición 1 pasamos al estado Si estamos en el estado A o B y se cumple la condición 1 pasamos al estado CCSi estamos en el estado B y se cumple la condición 2 pasamos al estado ASi estamos en el estado B y se cumple la condición 2 pasamos al estado ASi estamos en el estado C y se cumple la condición 3 pasamos al estado BSi estamos en el estado C y se cumple la condición 3 pasamos al estado B

13/04/2388

F.E.R.D.

Page 89: presentacionumldian12003-120211081114-phpapp01

Diagramas de Transición de Diagramas de Transición de EstadosEstados

Disponible

En sobregiro

Diagrama de Transición de Estados para una Cuenta BancariaDiagrama de Transición de Estados para una Cuenta Bancaria

Pago en efectivo Pago en efectivo o chequeo cheque

Deposito en Deposito en efectivoefectivo[cuenta > [cuenta > sobregiro] sobregiro]

Retiro en Retiro en efectivoefectivo

RetirRetiroo

RetirRetiroo

Pago en Pago en efectivo/chequeefectivo/cheque [cuenta < sobregiro] [cuenta < sobregiro]

Cierre de la Cierre de la cuentacuenta

Cheque Cheque aprobadoaprobado

13/04/2389

F.E.R.D.

Page 90: presentacionumldian12003-120211081114-phpapp01

• Diagramas de SecuenciaDiagramas de Secuencia• Diagramas de ColaboraciónDiagramas de Colaboración• Diagramas de Transición de EstadosDiagramas de Transición de Estados Diagramas de ActividadDiagramas de Actividad

El Moldeamiento Dinámico toma lugar en las faces El Moldeamiento Dinámico toma lugar en las faces ::• Durante la fase del análisis Durante la fase del análisis • Durante el Diseño Físico.Durante el Diseño Físico.

UML provee cuatro diagrama básicos para modelar la UML provee cuatro diagrama básicos para modelar la dinámica del flujo de información dentro del dinámica del flujo de información dentro del sistema:sistema:

13/04/2390

F.E.R.D.

Page 91: presentacionumldian12003-120211081114-phpapp01

DiagramasDiagramas de de ActividadActividad

Representa los procesos de negocios de alto Representa los procesos de negocios de alto nivel, incluidos el flujo de datos. nivel, incluidos el flujo de datos.

También puede utilizarse para modelar También puede utilizarse para modelar lógica compleja y/o paralela dentro de un lógica compleja y/o paralela dentro de un sistema.sistema.

Un Diagrama de Actividad corresponde aun Un Diagrama de Actividad corresponde aun caso de usocaso de uso

Un Diagrama de Actividad representa las Un Diagrama de Actividad representa las actividades o acciones de un proceso sin tener actividades o acciones de un proceso sin tener en cuenta los objetos que ejecutan estas en cuenta los objetos que ejecutan estas actividades.actividades.

Cada actividad esta conectada con líneas de Cada actividad esta conectada con líneas de conexión a la siguiente actividad en un orden, conexión a la siguiente actividad en un orden, las líneas de conexión son referenciadas como las líneas de conexión son referenciadas como transiciones.transiciones.

Parse XML Parse XML filefile

Translate to Translate to HTMLHTML

Render HTML in Render HTML in browserbrowser

Start stateStart state

ActivityActivity

TransitioTransitionn

Stop stateStop state13/04/23 91F.E.R.D.

Page 92: presentacionumldian12003-120211081114-phpapp01

TransiciónTransición

ActividadActividad

FinFin

InicioInicio

Línea Línea SeparadSeparadoror

BifurcaciónBifurcación

UniónUnión

BifurcaciónBifurcaciónsolo 2 de 3 solo 2 de 3 necesitan ser necesitan ser completadascompletadas

22

[condición1] [condición1] [condición 2][condición 2]

RamificaciónRamificación

Mezcla (merge)Mezcla (merge)

13/04/23 92F.E.R.D.

Page 93: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de ActividadActividad

p=o.getNextProdup=o.getNextProduct()ct()

o.putOnBackOrder(o.putOnBackOrder(p)p)

n=inventory.getCuonn=inventory.getCuont(p)t(p)

Inventory.setCount(p,nInventory.setCount(p,n-1)-1)

[o.hasMoreProducts()]

elseelse

elseelse [n>0]

BranchingBranching and and LooopingLoooping

ConditióConditiónn

Ramificación Ramificación (Branch)(Branch)

13/04/23

93

F.E.R.D.

Page 94: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/2394

F.E.R.D.

Page 95: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/2395

F.E.R.D.

Page 96: presentacionumldian12003-120211081114-phpapp01

• Un Diagrama de Componentes Un Diagrama de Componentes representa cómo un sistema de representa cómo un sistema de software es dividido en software es dividido en componentes y muestra las componentes y muestra las dependencias entre estos dependencias entre estos componentes. componentes.

• Los Diagramas de Los Diagramas de Componentes prevalecen en el Componentes prevalecen en el campo de la arquitectura de campo de la arquitectura de software pero pueden ser software pero pueden ser usados para modelar y usados para modelar y documentar cualquier documentar cualquier arquitectura del sistema.arquitectura del sistema.

Diagramas de Diagramas de ComponentesComponentes

• Los componentes físicos Los componentes físicos incluyen archivos, cabeceras, incluyen archivos, cabeceras, bibliotecas compartidas, módulos, bibliotecas compartidas, módulos, ejecutables, o paquetes.ejecutables, o paquetes.

• En él se situarán librerías, En él se situarán librerías, tablas, archivos, ejecutables y tablas, archivos, ejecutables y documentos que formen parte del documentos que formen parte del sistema.sistema.

• Uno de los usos principales es Uno de los usos principales es que puede servir para ver qué que puede servir para ver qué componentes pueden compartirse componentes pueden compartirse entre sistemas o entre las entre sistemas o entre las diferentes partes de un sistema.diferentes partes de un sistema.

13/04/23 96F.E.R.D.

Page 97: presentacionumldian12003-120211081114-phpapp01

Un Diagrama de Componentes representa los componentes que Un Diagrama de Componentes representa los componentes que componen una aplicación, sistema o empresa. Los componentes, componen una aplicación, sistema o empresa. Los componentes, sus relaciones, interacciones y sus interfaces públicas.sus relaciones, interacciones y sus interfaces públicas.

Diagramas de Diagramas de ComponentesComponentes

ComponeComponentente

a) Icono genéricoa) Icono genérico b) Icono que b) Icono que representa un representa un archivo fuentearchivo fuente

c) Icono que c) Icono que representa un archivo representa un archivo ejecutableejecutable

Applet.java Calculator.jar

13/04/2397

F.E.R.D.

Page 98: presentacionumldian12003-120211081114-phpapp01

Diagramas de Diagramas de ComponentesComponentes

Calculator.jar

CalcApplet.class CalcGUI.class CalcModel.class

CalcApplet.java CalcGUI.java CalcModel.java

Calculator.html

{versión =2.1}{versión =2.1}{versión =1.3}{versión =1.3}{versión =1.0}{versión =1.0}

En la figura se En la figura se muestran las muestran las dependencias del dependencias del empaquetamiento de empaquetamiento de una pagina HTML que una pagina HTML que contiene un applet. contiene un applet.

Un ejemplo de Diagrama de Un ejemplo de Diagrama de componentescomponentes

13/04/2398

F.E.R.D.

Page 99: presentacionumldian12003-120211081114-phpapp01

Miden el grado por el cual las clases dentro de un sistema Miden el grado por el cual las clases dentro de un sistema dependen una de otra.dependen una de otra.

Son una consideración importante en la etapa de diseño de un Son una consideración importante en la etapa de diseño de un proyecto por que ayudan a separar las clases dentro de proyecto por que ayudan a separar las clases dentro de componentes.componentes.

Cohesion:Cohesion: Mide cómo una clase o grupo de clases contribuyen a un mismo Mide cómo una clase o grupo de clases contribuyen a un mismo propósito dentro del sistema, es la medida de dependencias entre propósito dentro del sistema, es la medida de dependencias entre clases o componentes.clases o componentes.

Coupling:Coupling: Mide como dos o mas clases, grupos de clases, paquetes de Mide como dos o mas clases, grupos de clases, paquetes de componentes lógicos o físicos están unos con otros.componentes lógicos o físicos están unos con otros.

Cohesion y CouplingCohesion y Coupling

13/04/23 99F.E.R.D.

Page 100: presentacionumldian12003-120211081114-phpapp01

Driver Mechanic

• Un grupo de clases que Un grupo de clases que completamente satisfacen completamente satisfacen un simple propósito dentro un simple propósito dentro de un sistema de un sistema ((high high coehesion)coehesion)

• Multiples asociaciones Multiples asociaciones dentro del grupo dentro del grupo (high (high coupling).coupling).

• Cuando dos o mas clases Cuando dos o mas clases que no estan relacionadas que no estan relacionadas con el mismo propocito con el mismo propocito tienen una tienen una (low cohesion). (low cohesion).

• Cuando no hay Cuando no hay asociación en un asociación en un Diagrama de Clases Diagrama de Clases (Low (Low coupling)coupling)..

1..5*1..5*

Team raceNo MeetingMeeting

Car

Diagrama de Clases que modela un sistema para Carreras de AutomovilismoDiagrama de Clases que modela un sistema para Carreras de Automovilismo

Spectator

datdatee

Race RaceSchedule

0..*0..*

1..*1..*

1..*1..*1..*1..*

2..*2..*

Cohesion y Cohesion y CouplingCoupling

13/04/23 100F.E.R.D.

Page 101: presentacionumldian12003-120211081114-phpapp01

Driver Mechanic

1..5*1..5*

Team raceNo MeetingMeeting

Car

Diagrama de Clases mostrando áreas de alta CohesiónDiagrama de Clases mostrando áreas de alta Cohesión

Spectator

datdatee

Race RaceSchedule

0..*0..*

1..*1..*

1..*1..*1..*1..*

2..*2..*

Cohesion y Cohesion y CouplingCoupling

Las líneas rojas no son notación UML

13/04/23 101F.E.R.D.

Page 102: presentacionumldian12003-120211081114-phpapp01

Los componentes son grupos de clases que representan el sistema.Los componentes son grupos de clases que representan el sistema. Como grupos los componentes son responsables de la diferentes Como grupos los componentes son responsables de la diferentes operaciones dentro del sistema.operaciones dentro del sistema. Los componentes se identifican usando las técnicas de Cohesion y Los componentes se identifican usando las técnicas de Cohesion y Coupling.Coupling. Los grupos de clases que muestran alta Cohesión y alto Coupling Los grupos de clases que muestran alta Cohesión y alto Coupling conforman los componentes del sistema.conforman los componentes del sistema. Cada tipo de componente debe tener un nombre en el diagrama.Cada tipo de componente debe tener un nombre en el diagrama.

ComponentesComponentes

ComponentComponentee

instance:Component

NNotación UML para un otación UML para un ComponenteComponente

13/04/23 102

Page 103: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de ComponentesComponentes

:Team:Team :Spectator:Spectator

RaceMeetinRaceMeetingg

Diagrama de Componentes de sistema para Carreras de AutomovilismoDiagrama de Componentes de sistema para Carreras de Automovilismo

13/04/23 103F.E.R.D.

Page 104: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de componentescomponentes:Team:Team

Diagrama de Componentes de sistema para Carreras de AutomovilismoDiagrama de Componentes de sistema para Carreras de Automovilismo

DriverDriver

DriverDriver

MechanicMechanic

TeamTeam

CarCar

:Spectator:Spectator

SpectatorSpectator

:RaceMeteeing:RaceMeteeing

MeetingMeeting

RaceScheduleRaceScheduleRaceRace

Diagrama de Diagrama de componentes más componentes más completo donde se completo donde se muestran las clases muestran las clases componentescomponentes

13/04/23104

F.E.R.D.

Page 105: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/23105

F.E.R.D.

Page 106: presentacionumldian12003-120211081114-phpapp01

UML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y DiagramasUML Vistas y Diagramas

Vista EstructuralVista Estructural

• Diagramas de clasesDiagramas de clases• Diagramas de ObjetosDiagramas de Objetos

Vista de la Vista de la ImplementaciónImplementación• Diagramas de ComponentesDiagramas de Componentes

Vista de Comportamiento• Diagramas de SecuenciaDiagramas de Secuencia

• Diagramas de Diagramas de ColaboraciónColaboración• Diagramas de EstadoDiagramas de Estado• Diagramas de ActividadDiagramas de Actividad

Vista Ambiente

• Diagramas de DespliegueDiagramas de Despliegue

Vista de UsuarioVista de Usuario• Diagramas Casos de UsoDiagramas Casos de Uso

13/04/23106

F.E.R.D.

Page 107: presentacionumldian12003-120211081114-phpapp01

Un Diagrama de Despliegue representa :Un Diagrama de Despliegue representa : La La redred de recursos de procesamiento y la configuración de los de recursos de procesamiento y la configuración de los componentes de software en cada elemento físico.componentes de software en cada elemento físico.

Un Diagrama de Despliegue esta compuesto de:Un Diagrama de Despliegue esta compuesto de:• Nodos de hardware Nodos de hardware • Componentes de software Componentes de software • Dependencias de softwareDependencias de software• Relaciones de comunicación.Relaciones de comunicación.

Un Diagrama de Despliegue muestra: Un Diagrama de Despliegue muestra: Como las capa lógicas de la arquitectura de una aplicación están Como las capa lógicas de la arquitectura de una aplicación están configuradas dentro de una red física.configuradas dentro de una red física.

Diagramas de Despliegue Diagramas de Despliegue (Deployment)(Deployment)

13/04/23 107F.E.R.D.

Page 108: presentacionumldian12003-120211081114-phpapp01

Los Diagramas de Despliegue modelan soluciones de naturaliza Los Diagramas de Despliegue modelan soluciones de naturaliza distribuida. distribuida.

Su Notación:Su Notación:• Es una caja de tres dimensiones, una caja para cada Es una caja de tres dimensiones, una caja para cada plataformaplataforma• Las plataformas se unen con líneas que representan la red de Las plataformas se unen con líneas que representan la red de comunicaciones que permiten a los componentes del sistema comunicaciones que permiten a los componentes del sistema comunicarse.comunicarse.

• Las línea pueden ser etiquetadas con el protocolo de red que Las línea pueden ser etiquetadas con el protocolo de red que será usado para la comunicación.será usado para la comunicación.

• Las cajas pueden tener un nombre para mostrar que Las cajas pueden tener un nombre para mostrar que plataforma esta representando.plataforma esta representando.

Diagramas de Despliegue Diagramas de Despliegue (Deployment)(Deployment)

13/04/23 108F.E.R.D.

Page 109: presentacionumldian12003-120211081114-phpapp01

Diagramas de Despliegue Diagramas de Despliegue (Deployment)(Deployment)

Client Server

DataBaseNetworkPrinter

Diagrama de Despliegue para un sistema cliente/servidorDiagrama de Despliegue para un sistema cliente/servidor

TCP/IP

**

** • Las misma marcas de Las misma marcas de multiplicidad que se multiplicidad que se usan en los Diagramas usan en los Diagramas de Clases pueden de Clases pueden usarse para como las usarse para como las maquinas de cada tipo maquinas de cada tipo son permitidas en el son permitidas en el sistemasistema

13/04/23109

F.E.R.D.

Page 110: presentacionumldian12003-120211081114-phpapp01

Diagramas de Despliegue (Deployment)Diagramas de Despliegue (Deployment)

Client:PC/Windows7Client:PC/Windows7WebServer: SunEK33/Linux Ubunto

PrinterPrinter

Ejemplo de Diagrama de Despliegue Ejemplo de Diagrama de Despliegue

TCP/IP

instance:Component

nodo físiconodo físico Nombre del Nombre del nodonodo

Tipo de nodo Tipo de nodo Relación de Relación de comunicacionecomunicacioness

pa

ralle

l po

rtp

ara

llel p

ort

110

browserbrowser HTTPDHTTPDHTMLHTMLFormForm

ISPISPPagePage

BeanBean

Page 111: presentacionumldian12003-120211081114-phpapp01

Ejemplo de una documentación UMLEjemplo de una documentación UML

Patrón de diseño J2EE -Transfer Object Patrón de diseño J2EE -Transfer Object

Problema:Problema:Se desean transferir múltiples elementos de datos sobre Se desean transferir múltiples elementos de datos sobre una capauna capa

Se obliga:Se obliga:• A que los clientes accedan componentes en otras capas A que los clientes accedan componentes en otras capas para recuperar y actualizar datospara recuperar y actualizar datos• Reducir requerimientos remotos a través de la red Reducir requerimientos remotos a través de la red • Se requiere abolir la degradación del performance de la Se requiere abolir la degradación del performance de la red causada por aplicaciones que tienen un alto trafico de red causada por aplicaciones que tienen un alto trafico de redred

Page 112: presentacionumldian12003-120211081114-phpapp01

Solución: Solución: Usar el patrón de diseño Usar el patrón de diseño Transfer ObjectTransfer Object para manejar para manejar

múltiples elementos de datos a través de una capa. múltiples elementos de datos a través de una capa.

Diagrama de Diagrama de ClasesClases

Page 113: presentacionumldian12003-120211081114-phpapp01

Diagrama de Diagrama de SecuenciaSecuencia

Page 114: presentacionumldian12003-120211081114-phpapp01

Estrategias:Estrategias:• Estrategia tener un Transfer Object (objeto de transporte) Estrategia tener un Transfer Object (objeto de transporte) actualizableactualizable• Estrategia tener múltiples Transfer ObjectsEstrategia tener múltiples Transfer Objects• Estrategia tener una entidad que hereda un Transfer Estrategia tener una entidad que hereda un Transfer Object Object

Consecuencias:Consecuencias:• Reduce el trafico de la red Reduce el trafico de la red • Simplifica el objeto remoto y la interface remota Simplifica el objeto remoto y la interface remota • Transfiere más datos en pocas llamadas remotasTransfiere más datos en pocas llamadas remotas• Reduce la duplicación de códigoReduce la duplicación de código• Introduce el uso de transfer objetosIntroduce el uso de transfer objetos• Incrementa complejidad propia para sincronización y Incrementa complejidad propia para sincronización y control de versionescontrol de versiones

Page 115: presentacionumldian12003-120211081114-phpapp01

Herramientas Herramientas UML UML

• Rational Rose (Rational Rose (www.rational.com) de IBM) de IBM

• TogetherSoft Control Center, Borland (TogetherSoft Control Center, Borland (http://www.borland.com/together/index.html))

• ArgoUML (free software) (http://argouml.tigris.org/ ) ArgoUML (free software) (http://argouml.tigris.org/ ) OpenSource; escrito en java OpenSource; escrito en java

• BOUML (free software) (BOUML (free software) (http://bouml.free.fr, , http://bouml.sourceforge.net), software no comercial. ), software no comercial. OpenSource; OpenSource;

• Otras Otras ((http://www.objectsbydesign.com/tools/umltools_byCompany.html ) )

Page 116: presentacionumldian12003-120211081114-phpapp01

1. UML Distilled:UML Distilled: A Brief Guide to the Standard Object Modeling Language A Brief Guide to the Standard Object Modeling LanguageMartin FowlerMartin Fowler, Kendall Scott

2. Object Oriented Application Analysis and Desing for Java Technology (UML)

OO-26 de Sun Microsystems

3. Gravy Booch,James Rumbaugh, Ivar Jaconson, The Unified Modeling Language User Guide. Addison-Wealey Plublishing

4. Practical UML --- A Hands-On Introduction for Developers http://www.togethersoft.com/services/practical_guides/umlonlinecourse/

5. Software Engineering Principles and Practice. Second Edition; Hans van Vliet.5. http://www-inst.eecs.berkeley.edu/~cs169/

Recursos AdicionalesRecursos Adicionales

Page 117: presentacionumldian12003-120211081114-phpapp01

FINAL DE LA FINAL DE LA PRESENTACIONPRESENTACION

Gracias por su asistencia