dirección general de servicios de cómputo académico (dgsca) dirección de sistemas modelado de...
TRANSCRIPT
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
Diagramas de EstadoComportamiento dinámico
MODELADO DE SISTEMAS CON UML
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
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
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
DIAGRAMA DE ESTADOS
Características de una Máquina de Estados
Una máquina de estados bien estructurada es:– Eficiente– Simple– Adaptable– Entendible
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
Estados Anidados
DIAGRAMA DE ESTADOS
DIAGRAMA DE ESTADOS
Estados Anidados
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
Estados Anidados con Historia (2) DIAGRAMA DE ESTADOS
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
Diagramas de Estado – Ejemplo 1
DIAGRAMA DE ESTADOS
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
Diagramas de Estado – Ejemplo 3
DIAGRAMA DE ESTADOS
Neutral Reversa
Avanzar
Primera Segunda Tercera
Cambiar a R
Cambiar a N
Cambiar a NCambiar a F
Subir Subir
BajarBajar
DIAGRAMA DE ESTADOS
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
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
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
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
¿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
MODELADO DE SISTEMAS CON UML
Bibliografía y Referencias
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.
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.
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/