Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de...

42
Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez Alonso Eduardo A. Sánchez Rodríguez

Transcript of Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de...

Page 1: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Dirección General de Servicios de Cómputo Académico (DGSCA)

Dirección de Sistemas

Modelado de Sistemas con UML

Agosto, 2003

Integrado por: Rebeca Núñez AlonsoEduardo A. Sánchez Rodríguez

Page 2: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de EstadoComportamiento dinámico

MODELADO DE SISTEMAS CON UML

Page 3: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado

Orientación a Objetos = Estructura + Comportamiento

Los diagramas de clase representan la estructura y el comportamiento estático de los objetos.

¿Cómo representamos el comportamiento dinámico?Desde la creación de un objeto hasta su fin

DIAGRAMA DE ESTADOS

El Diagrama de Estados modela el trabajo interno de los objetos

Page 4: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado Un diagrama de transición de estado se usa para mostrar la

historia de vida de una clase dada, los eventos que causan una transición de un estado a otro, y las acciones que resultan de un cambio de estado

El espacio de estado de una clase dada es la numeración de todos los estados posibles de un objeto

El estado de un objeto es una de las condiciones posibles en las que puede existir un objeto

Contiene todas las propiedades del objetoo Usualmente estático

Más los valores actuales de cada una de estas propiedades

o Usualmente dinámico

DIAGRAMA DE ESTADOS

Page 5: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

Representación del Comportamiento

• Modelado del aspecto Dinámico• Interacción

– Comportamiento de una sociedad de objetos

• Máquina de Estados– Comportamiento de un objeto

Page 6: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

Características de una Máquina de Estados

Una máquina de estados bien estructurada es:– Eficiente– Simple– Adaptable– Entendible

Page 7: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

Máquina de Estados

• Representa la secuencia de estados del tiempo de vida de un objeto, suscitados por Eventos– Señales– Operaciones– El paso del Tiempo

Ocurrencia de unEvento

Ejecución deuna Actividad

Dependiendo delEstado Actual

del Objeto

Page 8: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado

numStudents < 10

Open

Le número máximo de alumnos por curso es 10

numStudents > = 10

Closed

numStudents = 7

English101 : CourseCourse

numStudents

Los estados pueden distinguirse por los valores de ciertos atributos

DIAGRAMA DE ESTADOS

Page 9: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado

Professor Course0..*1

Los estados también pueden distinguirse por la existencia de ciertas ligas

Las instancias de la clase Profesor puede tener dos estados:– Impartir cuando existe una liga a un curso– En sabático cuando no existe liga

Estado de un objeto es una de las posibles condiciones en que un objeto puede existir

• propiedades (estático) y sus valores (dinámico)

DIAGRAMA DE ESTADOS

Page 10: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Estado Condición o situación de un objeto durante su tiempo de vida, en

la cual:– Satisface una condición– Realiza alguna actividad– Espera la ocurrencia de un evento

La respuesta es afectada por el pasado.

Un estado se representa como un rectángulo redondeado

DIAGRAMA DE ESTADOS

Rastreando

entry/activarModo(enRastreo)do/rastrea()exit/activarModo(noRastreo)

Page 11: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Un estado representa cierta duración de proceso o intervalo de tiempoUn estado tiene varias partes:

Nombre.- Una cadena de texto que distingue al estado de otros estados; un estado puede ser anónimo, es decir, puede no tener nombre, pero se recomienda nombrar a los estados para indicar su duración.

Acciones de entrada/estancia/salida.- Acciones realizadas al entrar, estar y salir del estado, respectivamente.

Subestados.- Estructura anidada de un estado, que engloba subastados disjuntos (activos secuencialmente) o concurrentes (activos concurrentemente).

DIAGRAMA DE ESTADOS

Rastreando

entry/activarModo(enRastreo)do/rastrea()exit/activarModo(noRastreo)

Page 12: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Transiciones

Una transición representa un cambio de un estado original a un estado sucesor como resultado de algunos estímulos

Open CanceledCancel course

Add student

DIAGRAMA DE ESTADOS

Page 13: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Transición Relación de cambio entre dos estados

Una transición es una relación entre dos estados que indica que un objeto que esté en el primer estado realizará ciertas acciones y entrará en el segundo estado cuando ocurra un evento especificado y se satisfagan unas condiciones determinadas .

DIAGRAMA DE ESTADOS

Adeudo PagadoPagar

Transición

Page 14: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Transición

Una transición cuenta con cinco partes: Estado origen o inicial. Evento de disparo. Condición de Guarda. Acción. Estado destino o final.

DIAGRAMA DE ESTADOS

Page 15: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Estados Inicial y Final

El estado inicial es registrado cuando se crea un objeto Un estado inicial es obligatorio Solo un estado inicial es permitido El estado inicial se representa como un círculo sólido

Un estado final indica el final de vida de un objeto (la destrucción del objeto).

Un estado final es opcional Puede existir más de un estado final Un estado final se indica con un “ojo”

DIAGRAMA DE ESTADOS

Page 16: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Evento

Especificación de una ocurrencia significativa que tiene una ubicación en el tiempo y el espacio

Ocurrencia de un estímulo que dispara la transición de un estado

DIAGRAMA DE ESTADOS

Page 17: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Evento (2)

– Un evento es la ocurrencia de alguna situación que sucede en un punto del tiempo

• El estado del objeto determina la respuesta a diferentes eventos

– Ejemplo:

• Agregación un alumno a un curso

• Creación de un curso nuevo

DIAGRAMA DE ESTADOS

Page 18: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Condiciones de guarda

Una condición de guarda es una expresión booleana de valores de atributos que permiten una transición solo si la condición es verdadera; si la expresión toma el valor falso, la transición no se dispara y si no hay otra transición que pueda ser disparada por el mismo evento, éste se pierde

Open Registration Complete[ numStudents >= 3 ]

DIAGRAMA DE ESTADOS

Page 19: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Acciones Una acción es una operación que se asocia a una

transición

• Toma una cantidad insignificante de tiempo para completarse.

• Se considera no-interruptible Una computación atómica ejecutable que puede actuar

directamente sobre el objeto asociado a la máquina de estados, e indirectamente sobre otros objetos visibles al objeto.

No vale la pena modelar la estructura del control interno simple.

Las acciones por el general [re-]asignan valores a los atributos.

DIAGRAMA DE ESTADOS

Page 20: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Acciones Las acciones pueden generar otros eventos para

coordinar operaciones. La notación es

“<AlgunNombreDeEvento>/<AlgunNombreDeAcción>” Las acciones especifican un comportamiento en

respuesta a un evento

DIAGRAMA DE ESTADOS

En tránsito EnviadoPaquete enviado/Producir factura

Page 21: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Actividad

Ejecución no-atómica dentro de una maquina de estados.

Produce

– Cambio de Estado

– Regresa un valor

DIAGRAMA DE ESTADOS

Dependiendo delEstado Actual

del Objeto

Ocurrencia de un Evento

Ejecución deuna Actividad

Cambio de Estadodel Objeto

Page 22: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Actividad

Una actividad es una operación que toma tiempo para completarse

Las actividades se asocian con un estado Una actividad

Inicia cuando se introduce el estado Puede ejecutarse hasta el fin o puede ser interrumpida por una

transición que sale

Closed

do: Report course is full

DIAGRAMA DE ESTADOS

Page 23: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado - EjemploaddStudent

Initialize

do: Initialize course object

Unassigned

do: Assign professor to course

Open

entry: Register a student

Closed

do: Report course is full

Canceled

do: Send cancellation notices

addStudent/ numStudents = 0

cancelCourse

RegistrationComplete

do: Generate class roster

cancelCourse

[ numStudents = 10 ]

cancelCourse

[date = end]

registration closed[

numStudents < 3 ]

DIAGRAMA DE ESTADOS

Page 24: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Los estados anidados pueden ser usados para simplificar

diagramas complejos.

Un superestado es un estado que incluye estados anidados, llamados subestados.

Las transiciones comunes de los subestados son representadas en el nivel del superestado.

Cualquier número de niveles de anidación son permitidos.

Los estados anidados pueden llevar a reducciones sustanciales en la complejidad gráfica, permitiendo modelar problemas más largos y complejos.

Estados Anidados

Los diagramas de transición de estado pueden volverse inmanejablemente largos y complejos.

DIAGRAMA DE ESTADOS

Page 25: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Estados Anidados

DIAGRAMA DE ESTADOS

Page 26: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

Estados Anidados

Page 27: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Estados Anidados con Historia (1) Al retornar a un superestado, se entra a subestado visitado

más recientemente (y no al inicial). Se denota con una (con historia). Sin historia se entra siempre a subestado inicial.

 Ejemplo:

En el sistema de registro de cursos, la selección de curso hace lo siguiente:

• Acepta cursos primarios

• Acepta cursos alternativos     

DIAGRAMA DE ESTADOS

Page 28: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Estados Anidados con Historia (2) DIAGRAMA DE ESTADOS

Page 29: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Las opciones son:

El usuario puede renunciar en cualquier momento

El usuario puede suspender una sesión por un máximo de 30 minutos mientras selecciona cursos

El formulario es grabado después de que todos los cursos han sido seleccionados

El formulario es enviado a procesar después de que ha sido grabado

Estados Anidados con Historia (3)

DIAGRAMA DE ESTADOS

Page 30: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado – Ejemplo 1

DIAGRAMA DE ESTADOS

Page 31: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado – Ejemplo 2addStudent

Initialize Register

Unassigned

do: Assign professor to course

Open

entry: Register a student

Unassigned

do: Assign professor to course

Open

Closed Canceled

RegistrationComplete

do: Generate class roster

Add student / numStudents = 0

[ numStudents = 10 ]

cancelCourse

registration closed [date = end]

registration closed[ numStudents < 3 ]

addStudent

do: Report course is closed

DIAGRAMA DE ESTADOS

Page 32: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Diagramas de Estado – Ejemplo 3

DIAGRAMA DE ESTADOS

Page 33: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Neutral Reversa

Avanzar

Primera Segunda Tercera

Cambiar a R

Cambiar a N

Cambiar a NCambiar a F

Subir Subir

BajarBajar

DIAGRAMA DE ESTADOS

Page 34: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

La notación para generalización puede ser usada para estados complejos.

Primera Segunda TerceraSubir Subir

Bajar PalancaBajar Palanca

Transmisión

Reversa Neutral Avance

Presiona N Presiona N

Presiona R Presiona A

Page 35: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

DIAGRAMA DE ESTADOS

La notación de agregación puede ser usada para concurrencia.

Despacho al cliente

Do: Despachar efectivo

Do: Despachar tarjeta

S M

División de control:Inicia dos subestados concurrentes que son independientes

SUnión de control:Ambas acciones deben de terminarse antes de pasar al siguiente estado, sin importar el orden

M

Page 36: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Enfocarse sólo en los objetos que sean interesantes, complejos o de una problemática dinámica.

Considerar la interdependencia entre eventos y objetos.

Buscar cambios en el estado de los objetos causado por las ocurrencias de eventos.

Buscar eventos cuyos efectos son regidos por los estados del objeto.

En sistema de información busca objetos con estados regidos por valores de atributos y ligas entre objetos.

En sistemas en tiempo real busca objetos con estados regidos por el comportamiento.

Aplicar el modelado de estados de manera selectiva.

DIAGRAMA DE ESTADOS

Page 37: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

Cada estado debe tener un predecesor (estado o estado inicial).

Tratar al estado sin un sucesor (estado o estado final) con suspicacia.

Seguir los efectos de un evento de entrada de objeto a objeto a través del sistema para verificar coherencia.

Verificar que los eventos correspondientes a diferentes diagramas de estados sean consistentes.

Cada evento debe tener un emisor y un receptor.

Verificar la consistencia de los diagramas de estados.

DIAGRAMA DE ESTADOS

Page 38: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

¿Todas las actividades y acciones aparecen como operaciones en el diagrama de clases?

El diagrama de clases soporta completamente al diagrama de estados.

o ¿Existen atributos y asociaciones que describen estados?

o ¿Existen atributos y asociaciones que evalúan condiciones de seguridad?

o ¿Hay operaciones públicas para todos los mensajes?

o ¿Hay operaciones privadas para entradas, salidas y acciones internas?

Verificar consistencia entre diagramas dinámicos y de clases.

DIAGRAMA DE ESTADOS

Page 39: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

MODELADO DE SISTEMAS CON UML

Bibliografía y Referencias

Page 40: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

BIBLIOGRAFÍA Y REFERENCIAS

•Orientación a Objetos

Booch, Grady.Análisis y diseño orientado a objetos, 2ª EdiciónMéxico, Addison-Wesley Iberoamericana. 1996.

Jacobson, Ivar.Object oriented software engineering.EE.UU, Addison-Wesley. 1994.

Rumbaugh, James y otros.Object oriented modeling and design.EE.UU, Prentice-Hall. 1991.

Page 41: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

BIBLIOGRAFÍA Y REFERENCIAS

•UML

Booch, Grady.El Lenguaje Unificado de ModeladoEspaña, Addison-Wesley Iberoamericana. 1999.

Booch, Grady.El Lenguaje Unificado de Modelado. Manual de ReferenciaEspaña, Addison-Wesley Iberoamericana. 1999.

Fowler, MartinUML Gota a GotaMéxico, Addison-Wesley, 1999.

Page 42: Dirección General de Servicios de Cómputo Académico (DGSCA) Dirección de Sistemas Modelado de Sistemas con UML Agosto, 2003 Integrado por: Rebeca Núñez.

BIBLIOGRAFÍA Y REFERENCIAS

•Ligas de interés

Objetct Management Grouphttp://www.omg.org/technology/uml/index.htmRational Software Corporationhttp://www.rational.com/umlCetus Links - Object-Orientation

http://www.cetus-links.orgThe Object Agencyhttp://www.toa.comThe Object-Oriented Page

http://www.well.com/user/ritchie/oo.htmlSinan Si Alhir’s Web Site http://home.earthlink.net/~salhir/Object Orientation Tipshttp://ootips.org/