Modelado de objetos con UML - Facultad de Ciencias...

28
Modelado de objetos con UML José Vicente Núñez Zuleta ([email protected], [email protected]) Líder de desarrollo para El Diario El Universal División de Nuevos Medios

Transcript of Modelado de objetos con UML - Facultad de Ciencias...

Modelado de objetos con UML

José Vicente Núñez Zuleta ([email protected],[email protected])

Líder de desarrollo para El Diario El UniversalDivisión de Nuevos Medios

Puntos a tratar

!¿Qué es UML?!Tipos de diagramas.!Problema: Un sistema de pruebas en línea.!Casos de uso.!Paquetes.!Diagramas de clases.!Diagramas de interacción y secuencia.!Diagrama de transición de estado.

Puntos a tratar

!Diagrama de actividades.!Diagrama de despliegue.

¿Qué es UML?

!UML es la respuesta de la OMG (Object ManagmentGroup) para definir una notación estándar para elmodelado de aplicaciones construidas mediante objetos.!Es el sucesor natural de notaciones de métodos de Booch,

OMT (Object Modelgin Languaje) y OOSE (ObjectOriented Software Engineering).! En vez de tener una guerra de métodos y notaciones, se

busca un estándar (Jim Rumbaugh y Grady Booch finalesdel 1994. Luego se une Iban Jacobson).!UML es una notación, no una metodología.

Tipos de diagramas en UML!Diagramas de caso de uso: representan las funciones

del sistema desde el punto de vista del usuario.!Diagramas de actividades: representan el

comportamiento de una operación en términos deacciones.!Diagramas de clases: representan la estructura

estática en términos de clases y relaciones.!Diagramas de colaboración: que son una

representación espacial de los objetos, enlaces einteracciones.!Diagramas de componentes: representan bloques

físicos de una aplicación.

Tipos de diagramas en UML

!Diagramas de componentes: representan eldespliegue de los componentes sobre losdispositivos materiales.!Los diagramas de estados - transiciones:

representan el comportamiento de una clase entérminos de estados.!Los diagramas de secuencia: que son una

representación temporal de los objetos y susinteracciones.

Tipos de diagramas en UML

!Diagramas de componentes: representan eldespliegue de los componentes sobre losdispositivos materiales.!Los diagramas de estados - transiciones:

representan el comportamiento de una clase entérminos de estados.!Los diagramas de secuencia: que son una

representación temporal de los objetos y susinteracciones.

Problema: sistema de pruebas en línea!Se desea que los usuarios del sitio

"depresivos.com" puedan expresar su opinión pormedio de encuestas interactivas. La aplicacióndebe permitir lo siguiente:

!Que el usuario no pueda votar más de una vez!Debe poder ver el resultado de la votación en tiempo real (implica

un diagnóstico dada la puntuación.!El usuario deberá tener acceso a preguntas con respuesta cerrada

simple en cada prueba.!Adicionalmente se desea que el responsable de la encuesta cuente

con una interfaz que le permita agregar, modificar y eliminar lasencuestas.

!Se debe poder definir la duración de la prueba (fecha de inicio,fecha final).

!El lanzamiento del sitio Web es en dos semanas y se desea contarcon esta funcionalidad.

Casos de uso!Fueron desarrollados por Ivan Jacobson.!Describen bajo forma de acciones y reacciones el

comportamiento del sistema desde el punto devista del usuario.!Los casos de uso se componen de 3 elementos:

actores, sistema y casos de uso.!Los actores son roles que se juegan en el sistema.

Salen de las cosas y personas exteriores a unsistema donde interaccionan con elintercambiando información (entrada y salida).!Los casos de uso son escenarios de interacción de

los actores.!Salen de las tareas del actor, cambios en la

información.

Casos de uso (continuación)

votar en prueba

Votante

obtenerResultado()

Administrador de encuestas

manipular categorías

manipular respuestas

manipular preguntas

manipular encuesta

<<uses>>

<<uses>>

Casos de uso (continuación)Nombre: votar en encuestaNumero: 1.0Autor: José Vicente Núñez Zuleta ([email protected])Última actualización: 25/03/2000Actores: Administrador de encuestasOtros casos de uso referenciados:Precondiciones:Que el usuario no haya votado previamente en esta encuesta.Que la fecha de inicio sea mayor o igual a la fecha actual y la fecha de finalización de la encuesta seamayor o igual a la actual.

Inicialización del caso de uso:El usuario escoge la prueba que desea tomar y es llevado hacia la prueba en línea deseada.Proceso o descripción del caso de uso:El usuario responde a las preguntas de la prueba en línea, pulsa el botón de continuar y es llevado a unapágina en donde se le muestra el resultado de su votación (basado en su puntuación) y cuantas personasha caido dentro de una categoría de resultados dada.Para más detalles ver diagrama de actividades.Terminación del caso de uso:El usuario ve el resultado de la prueba y cuántos han caído por categoría.Post condiciones:Si no ha votado se registra su voto en una categoría.Asuntos sin resolver:Mejoras futuras:

Diagrama de actividades

!Representa el estado de la ejecución de unmecanismo bajo la forma de un desarrollo deetapas agrupadas secuencialmente en ramasparalelas de flujo de control.!Esta destinado a representar casos de uso

(complejos).!El caso de uso está compuesto por actividades

(las cuales tienen transisiones automáticas).!Los flujos de eventos se representan por flechas

punteadas. Las condiciones por un rombo.

Diagrama de actividades

S e ca rg a una encuesta da do el código

inicio

fin

renderizar página con prueba

reponder a cad a una de las preguntas

Calcular resultado de la votación

¿El usuario ya votó?

incrementar conta do r d e voto en categoria adecuada

no

mostrar resultado de la prueba y agrupación de votantes por categoria

si

Diagrama de clases!Revise el enunciado del problema, casos de uso y

escenarios para identificar sustantivos. Cree una lista decantidatos. Incluya objetos físicos y conceptos.!Revise los sustantivos para ver si tienen relevancia con el

problema, así como para ver si están en contexto.!Elimine los sustantivos innecesarios, anote cuáles

sustantivos son atributos (color, tamaño).!Una vez obtenidas las clases candidatas vea como se

relacionan entre sí (tipos de enlaces, roles, multiplicidad).!Defina relaciones avanzadas como agregación o herencia!El diagrama de clase expresa la estructura estática del

sistema en términos de clases y relaciones.!Una clase representa una abstracción de un objeto.!Un clase se representa con un cuadrado dividido en 3

partes.

Diagrama de clases!Se desea que los usuarios del sitio

"depresivos.com" puedan expresar su opinión pormedio de encuestas interactivas. La aplicacióndebe permitir lo siguiente:

!Que el usuario no pueda votar más de una vez.!Debe poder ver el resultado de la votación en tiempo real (implica

un diagnóstico dada la puntuación).!El usuario deberá tener acceso a preguntas con respuesta cerrada

simple en cada prueba.!Adicionalmente se desea que el responsable de la encuesta cuente

con una interfaz que le permita agregar, modificar y eliminar lasencuestas.

!Se debe poder definir la duración de la prueba (fecha de inicio,fecha final).

!El lanzamiento del sitio Web es en dos semanas y se desea contarcon esta funcionalidad.

Diagrama de clases

CategoríanId : LongsTitulo : StringsDescripción : StringnPuntación : Integer

<<entity>>

PruebanId : longsTitulo : StringsDescripcion : StringdFechaInicio : DatedFechaFinal : Date

<<entity>>

oCategorias : Categoría

1..*

oCategorias : Categoría

1..*

PreguntanId : LongsTitulo : String

<<entity>>

oPreguntas : Pregunta1..* oPreguntas : Pregunta1..*

RespuestanId : LongsTitulo : StringnPuntación : Integer

<<entity>>

oRespuesta : Respuesta

1..*

oRespuesta : Respuesta

1..*

ResultadoVotacionsDiagnostico : String

<<entity>>

Diagrama de clase (herencia)

vehiculonombrecostovelocidad

aMotortecnologíaDeInyeccióncombustible

aGaspresiónMáximaDeVapor

Paquetes!Los paquetes ofrecen un mecanismo general para

la partición de los modelos y la agrupación de loselementos de modelado.!No es el comienzo de una descomposición

funcional; es la agrupación de elementos desde elpunto de vista enteramente lógico.!Piense en arquitecturas conocidas.

Diagramas de colaboración

!Muestran las interacciones entre los objetos,insistiendo más en la estructura espacial estáticaque permite la colaboración entre los objetos.!Expresan el contexto de un grupo de objetos (a

través de objetos y enlaces) y la interacción entreestos objetos (por representación de envíos demensajes).

Diagramas de colaboración

: Usuario

: Ascensor

: Cabina : Puerta

: Luz

1: Escoger ascensor

2: Subir

3: Encender

4: Cerrar

Diagramas de secuencia!Muestran las interacciones entre objetos según un

punto de vista temporal. Describe la interacción entreclases.!El contexto de los objetos no se representa de manera

explícita como en los diagramas de colaboración.!La primera utilización corresponde a la documentación

de los casos de uso: se concentra sobre la descripciónde la interacción, a menudo en términos próximos alusuario y sin entrar en detalles próximos de laaplicación.!Identifica cada escenario y clases participantes. Ayuda

a obtener candidatos a mensajes (métodos) de losobjetos.!Se pueden especificar argumentos en los mensajes.

Diagrama de secuencia

instancia : Votante

hojaDeVotación : hojaDeVotacion

instancia : Prueba

instancia : GerenteDePruebas

instancia : votarEncuesta

recuperarPrueba(Long)

renderizar prueba( )

guardarVotoPrueba(Prueba)

recuperarPrueba(Long)

obtenerDiagnóstico( )

getCategoría( )

renderizarResultado( )

Digrama de clases completo

CategoríanId : LongsTitulo : StringsDescripción : StringnPuntación : Integer

setSerial(nElSerial : Long)setTitulo(sTitulo : String)setDescripcion(sLaDescripcion : String)setPuntuacion(nLaPuntuacion : Integer)getSerial() : LonggetTitulo() : StringgetDescripcion() : StringgetPuntuacion() : Integer

<<entity>>

PruebanId : longsTitulo : StringsDescripcion : StringdFechaInicio : DatedFechaFinal : Date

setTitulo(sTitulo : String)setDescripcion(sLaDescripcion : String)setPuntacion(nLaPuntacion : Integer)setFechaInicio(dLaFechaDeInicio : Date)setFechaFinal(dLaFechaFinal : Date)obte nerDiagnóstico() : StringgetCategoría() : CategoríagetTi tu lo() : StringgetDescripcion() : StringgetPuntuacion() : StringgetFechaInicio() : DategetFechaFinal() : DatesetSerial(nElSerial : Long)getSerial() : Long

<<entity>>

oCategorias : Categoría

1..*

oCategorias : Categoría

1..*

PreguntanId : LongsTitulo : String

setSerial(nElSerial : Long)setTitulo(sElTitulo : String)getSerial() : LonggetTitulo() : Long

<<entity>>

oPreguntas : Pregunta1..* oPreguntas : Pregunta1..*

RespuestanId : LongsTitulo : StringnPuntación : Integer

setSerial(nSerial : Long)setTitulo(sElTitulo : String)setPuntuacion(nLaPuntuacion : Integer)getSerial() : LonggetTitulo() : StringgetPuntuacion() : Integer

<<entity>>

oRespuesta : Respuesta

1..*

oRespuesta : Respuesta

1..*

ResultadoVotacion

sDi agnostico : String

<<entity>>

Diagrama de Estados - Transiciones

!Los diagramas de estados - transicionesvisualizan autómatas de estados finitos desde elpunto de vista de los estados y las transiciones.!El comportamiento de los objetos de una clase

pueden describirse por medio de un autómatavinculado a la clase considerada.!Documentan los cambios en la clase a través del

tiempo, y los comportamientos relacionados conesos cambios.!Sólo escoja las clases con un comportamiento

significativo. No todas las clases requieren undiagrama de este tipo.

Diagrama de Estados - Transiciones

cargar página

entry/ Recibir código de encuestado/ Instancia r encuestado/ Cargar código Javascript

Desplegar formulario de la encuesta

entry/ Crear estructuras de datosdo/ Generar contenido dinámico de formularioexit/ Validar datos de la forma

finalizar

Instanciar objetos

Enviar datos a servlet

Diagramas de despliegue

!Muestran la disposición física de los distintosmateriales (los nodos) que entran en composiciónde un sistema y el reparto de los programasejecutables sobre estos materiales.!Cada nodo representa un dispositivo, unidos por

un canal de comunicación.

Diagrama de despliegue

Base de datos

Servlets y JSPWeb server

Fast Ethernet

cliente (browser)

Bibliografía e información de interés

!Página de OMG: http://www.omg.org/uml/!Modelado de objetos con UML. Muller Pierre-

Alain. Eyrolles. 1997.!Analisys and Design for Java OMT OO-225. Sun

Educational Services.!Rational Rose. http://www.rational.com