lenguaje unificado de modelado
Embed Size (px)
DESCRIPTION
Lenguaje Unificado de Modelado. AGENDA. Introducción Diagramas UML Clasificación Diagramas de Estructura Diagramas de Comportamiento Vista y Diagramas Elementos Generales Vista de Usuario Diagramas de casos de Uso Escenarios de los Casos de Uso. Vista Estructural - PowerPoint PPT PresentationTRANSCRIPT

Lenguaje Unificado de
Modelado

• 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

• 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

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

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

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 .

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

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.

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.

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.

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

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.

DIAGRAMAS UML DIAGRAMAS UML

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

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

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

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

• 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

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
20/04/23 19F.E.R.D.

• 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

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.
20/04/23 21F.E.R.D.

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)

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

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

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

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

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

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

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
20/04/23 29F.E.R.D.

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
20/04/23 30F.E.R.D.

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.
20/04/23 31F.E.R.D.

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
20/04/23 32F.E.R.D.

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
20/04/23 33F.E.R.D.

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.
20/04/23 34F.E.R.D.

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. …………………
20/04/23 35F.E.R.D.

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.
20/04/23 36F.E.R.D.

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
20/04/23 37F.E.R.D.

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
20/04/23 38F.E.R.D.

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
20/04/23 39F.E.R.D.
Vista EstructuralVista Estructural

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
20/04/23 40F.E.R.D.

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.
20/04/23 41F.E.R.D.

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
20/04/23 42F.E.R.D.

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
20/04/23 43F.E.R.D.

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:
20/04/23 44F.E.R.D.

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
20/04/23 45F.E.R.D.

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
20/04/23 46F.E.R.D.

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
20/04/23 47
F.E.R.D.

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
20/04/23 48F.E.R.D.

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
20/04/23 49F.E.R.D.

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 Banco20/04/23 50F.E.R.D.

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
20/04/23 51F.E.R.D.

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.
20/04/23 52F.E.R.D.

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
20/04/23 53F.E.R.D.

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()
20/04/23 54F.E.R.D.

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
20/04/23 55F.E.R.D.

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
20/04/23 56F.E.R.D.

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
20/04/23 57F.E.R.D.

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 Reflexiva20/04/23
58F.E.R.D.

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
20/04/23 59F.E.R.D.

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
20/04/23 60F.E.R.D.

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()
20/04/23 61F.E.R.D.

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()
20/04/23 62F.E.R.D.

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()
20/04/23 63F.E.R.D.

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
20/04/2364
F.E.R.D.

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
20/04/2365
F.E.R.D.

• 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:
20/04/23 66F.E.R.D.
Modelo Dinámico Modelo Dinámico

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.
20/04/23 67F.E.R.D.

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.
20/04/23 68F.E.R.D.

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
20/04/23 69F.E.R.D.

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
20/04/2370
F.E.R.D.

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.
20/04/23 71F.E.R.D.

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
20/04/2372F.E.R.D.

20/04/23 73F.E.R.D.
Ejemplo de Ejemplo de Diagrama de Diagrama de SecuenciaSecuencia

Ejemplo de Ejemplo de Diagrama Diagrama de de SecuenciaSecuencia
20/04/23 74F.E.R.D.

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

• 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:
20/04/2376
F.E.R.D.
Modelo Dinámico Modelo Dinámico

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
20/04/23 77F.E.R.D.

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.
20/04/23 78F.E.R.D.

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.
20/04/23 79F.E.R.D.

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
20/04/2380

• 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:
20/04/23 81F.E.R.D.

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.
20/04/23 82F.E.R.D.

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
20/04/23 83F.E.R.D.

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..
20/04/23 84F.E.R.D.

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.20/04/23 85F.E.R.D.

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.20/04/23 86
F.E.R.D.

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
20/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.

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
20/04/2388
F.E.R.D.

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
20/04/2389
F.E.R.D.

• 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:
20/04/2390
F.E.R.D.

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 state20/04/23 91F.E.R.D.

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)
20/04/23 92F.E.R.D.

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)
20/04/23
93
F.E.R.D.

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
20/04/2394
F.E.R.D.

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
20/04/2395
F.E.R.D.

• 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.
20/04/23 96F.E.R.D.

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
20/04/2397
F.E.R.D.

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
20/04/2398
F.E.R.D.

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
20/04/23 99F.E.R.D.

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
20/04/23 100F.E.R.D.

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
20/04/23 101F.E.R.D.

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
20/04/23 102

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
20/04/23 103F.E.R.D.

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
20/04/23104
F.E.R.D.

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
20/04/23105
F.E.R.D.

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
20/04/23106
F.E.R.D.

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)
20/04/23 107F.E.R.D.

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)
20/04/23 108F.E.R.D.

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
20/04/23109
F.E.R.D.

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

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

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

Diagrama de Diagrama de SecuenciaSecuencia

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

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

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

FINAL DE LA FINAL DE LA PRESENTACIONPRESENTACION
Gracias por su asistencia