Documente Academic
Documente Profesional
Documente Cultură
Arquitectura de Software
2
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
3
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Solución ................................................................................................................................ 21
Puntos de entrada y salida ........................................................................................................... 22
Pseudo estados ........................................................................................................................... 22
Pseudo estado elección ........................................................................................................... 23
Pseudo estado unión ............................................................................................................... 23
Pseudo estado de término........................................................................................................ 24
¿Cómo hacer los diagramas? ....................................................................................................... 24
Ejercicio .................................................................................................................................... 24
Información del Proveedor Postulante ...................................................................................... 25
Información del Proveedor Contratado ..................................................................................... 25
Información del Proveedor en Cartera ...................................................................................... 25
Información del Proveedor en Cancelado ................................................................................. 25
Ejercicio – Solución ................................................................................................................... 25
Conclusiones ............................................................................................................................. 26
Bibliografía .................................................................................................................................................. 27
4
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Introducción al curso
El avance tecnológico en el desarrollo de software en la actualidad está permitiendo no
sólo la inclusión de nuevas herramientas sinotambién la construcción de nuevas
arquitecturas. Los proyectos de sistemas dan cada vez mayor importancia a la
arquitectura del software como la mejor manera de asegurar éxito en los sistemas que
se construyen y su integración al entorno de la plataforma que los soporta.
El curso contribuye a lograr el perfil del egresado con la competencia general de que, al
final del curso, el estudiante fundamenta con proactividad el diseño de alto y bajo nivel
de sistemas de información de alta calidad y confiables en función de los objetivos
estratégicos de la organización.
5
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Logros de aprendizaje
Al finalizar el curso, elestudiantefundamenta unapropuesta de arquitectura y diseño de
sistemasparauna aplicación concreta, según el ciclo de vida del desarrollo del software,
justificando y valorando su robustez, portabilidad, flexibilidad, escalabilidad y mejor
desempeño.
6
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Un elemento de software puede ser una clase, caso de uso, módulo y hasta un
sistema completo.
Muestra el comportamiento dinámico del elemento de software, basándose en su
respuesta a ciertos eventos.
En otras palabras, muestra como el elemento de software reacciona a los eventos
dependiendo del estado en el que se encuentra en un momento dado.
Nos concentraremos en los estados de los objetos de una clase.
En el UML 1.x se le conocía como diagrama de transición de estados (DTE).
No olvides que…
Un DME explora la naturaleza y explica:
El comportamiento dinámico de una clase, actor, caso de uso, subsistema o
componente.
De manera similar puede explicar los cambios de estado de todo un sistema, en
especial, los de tiempo real.
7
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Ahora estudiaremos con profundidad cada uno de los elementos del DME.
Comenzaremos por el elemento principal respondiendo a la pregunta:
¿Qué es un estado?
El estado de un objeto es una de las posibles condiciones en que puede existir.
Abarca todas las propiedades y relaciones del objeto
Que usualmente son estáticas
Mas los valores actuales de cada una de esas propiedades.
Que usualmente son dinámicos
8
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Nombre
de
Estado
9
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Estados especiales
Entre los estados especiales podemos reconocer a dos: el estado inicial y el estado final.
El estado inicial es aquel que se produce cuando un objeto es creado
El estado inicial es mandatorio
Sólo se permite un estado inicial
Se representa con un círculo sólido y con un nombre opcionalmente
El estado final indica el término de la vida de un objeto:
Un estado final es opcional
Puede existir más de un estado final
Se le representa como un círculo vacío con otro círculo relleno en su interior.
10
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Estados y eventos
Antes de pasar a la definición del elemento denominado transición, es conveniente
entender ¿qué es un evento? ¿cuál es la influencia que un evento puede tener sobre los
estados de un objeto?
Un evento es una ocurrencia o suceso que se da en algún punto del tiempo.
Los estados de un objeto varían a través de las respuestas a diferentes eventos.
Ejemplos de eventos:
Adicionar un estudiante a un curso.
Crear un nuevo curso.
11
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Cancelar un curso es un evento que hace que el objeto transite de Abierto a Cancelado.
Abierto
Abierto Registro Completo
Registro Completo
12
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Un método (llamado también efecto) es una operación que está asociada con la
ocurrencia de una transición.
Los nombres de los métodos se muestran en la transición precedidos por un slash
(/).
También es posible que un evento pueda disparar un método de otra clase. Se muestra
como: /^Clase.método
(Se lee slash, seguido del símbolo de potencia, seguido del nombre de la clase unida con
su método por un punto).
13
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
vigencia de un estado una o varias veces hasta que termine o sea interrumpido
por una transición de salida (se utiliza el prefijo do)
Ejemplo:
En la figura se muestran dos tipos de actividad:
En el estado En programación de la clase Curso, la actividad Asignar profesor
tiene el prefijo do porque puede realizarse en cualquier momento mientras un
objeto Curso está en éste estado.-
En el segundo caso cada vez que ocurre el evento Adicionar Estudiante y el
objeto Curso transita sobre el estado Abierto, se ejecuta una sola vez, cada vez
que es retomado el estado Abierto, la actividad Registrar estudiante.
Adicionar Estudiante
Adicionar estudiante /
numEstudiantes = 0
En programación Abierto
do: Asignar profesor entry: Registrar estudiante
Actividad
No olvides que…
Los elementos básicos de un DME son:
El estado
14
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Ejercicio
Hasta el momento hemos encontrado diferentes estados de la clase curso.
¿Puedes reunirlos todos y hacer un solo diagrama?
Solución
Los estados de la clase curso son:
Al momento de crear un curso, éste queda Inicializado. Mientras está en éste
estado se realiza la actividad de iniciar los atributos del curso.
Al ocurrir el evento Programar horarios, el curso queda En Programación.
Durante éste estado ocurre la actividad Asignar profesor al curso.
Cuando ocurre por primera vez la matrícula de un estudiante en el curso con el
evento Adicionar Estudiante, también se inicializa el número de estudiantes en
cero.
El evento adicionar estudiante ocurre cada vez que un estudiante se matricula.
Por cada evento de Adicionar Estudiante se ejecuta una sola vez el registro del
estudiante y se incrementa el número de estudiantes en 1.
Desde este estado pueden ocurrir varios eventos:
o Cancelar Curso que hace que el curso pase a estar en el estado Cancelado.
o Cerrar Curso cuando el número de Estudiantes es igual a 10. Esto es,
cuando se alcanzó el cupo. El nuevo estado del curso será Cerrado.
o Cerrar Registro y se cumple la condición de número de Estudiantes es
menor a 3. El nuevo estado será Cancelado.
o Cerrar Registro y se cumple la condición de número de Estudiantes es
mayor o igual 3. El nuevo estado será Registro Completado
Desde el estado Cerrado también pueden ocurrir dos eventos
o Cancelar curso que hará que el curso pase a estar Cancelado
o Cerrar registro que hará que el curso pase a estar en Registro
Completado.
15
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Es importante que observes las actividades que se dan durante los estados
Cancelado, Cerrado y Registro Completado. Todas ellas se documentan con el
prefijo do.
Así mismo observa que ningún estado está huérfano, es decir, todos tienen una
transición de entrada y una transición de salida.
Estados especiales
Cómo un DME puede ser extenso y complejo…
…en el UML se utilizan otros tipos de estados para representar dicha complejidad.
Estados compuestos o anidados (composite state)
Estados ortogonales (orthogonal state)
Estado sub máquina (submachine state)
16
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Estados compuestos
Los estados anidados o compuestos se usan para simplificar la complejidad de los
diagramas.
Un superestado (o estado compuesto) es un estado que agrupa estados
anidados llamados subestados.
Las transiciones comunes de los subestados se representan al interior del
superestado.
Los superestados por lo general tienen subestados de inicio y fin.
En los estados compuestos se permite cualquier número de niveles de anidamiento.
Los estados compuestos contribuyen a la reducción de la complejidad gráfica,
permitiendo modelar problemas mas largos y complejos.
Cuando un objeto está en un estado compuesto, realmente está en uno de sus sub
estados.
17
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Estado ortogonal
Al igual que el estado compuesto, el estado ortogonal se usa como refinamiento de un
diagrama dado.
La diferencia es que un estado ortogonal representa una concurrencia, es decir que
todos los subestados se activan en conjunto
El ejemplo muestra los sub estados del super estado Frenando de un Carro.
Los sub estados de aplicando frenos delanteros y aplicando frenos posteriores se dan en
paralelo.
18
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Historia
El uso de la característica de la historia indica que se memoriza el último subestado del
objeto antes de que éste abandone su superestado.
De forma tal que el subestado pueda ser retomado si el objeto vuelve al
superestado.
Hay que usar la letra H encerrada en un círculo, para denotar que la característica de la
historia se aplica a un superestado.
Si no se usa la característica de la historia, el subestado inicial siempre será alcanzado,
cuando el superestado se active nuevamente.
En el UML 2.x existen dos modalidades de historia:
Historia superficial (Shallow history)
Historia profunda (Deep history)
Ejemplo
El primer diagrama muestra los estados de la clase lavadora: el super estado compuesto
Operando y el estado simple Apagada.
19
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Dentro del estado Operando que tiene la característica de la historia superficial, existen
los sub estados: Lavando, Enjuagando y Exprimiendo.
En este caso la Historia Superficial (Shallow history) indica que si se corta la energía de
la máquina y luego se reestablece, retomando el super estado Operando, la lavadora
funcionará de acuerdo al último sub estado que tenía antes del corte de energía.
El segundo diagrama muestra un mayor nivel de anidamiento o descomposición de
estados.
De manera similar al primero existen dos estados de la clase lavadora: el super estado
compuesto y el estado simple Apagada.
Dentro del estado Operando ocurren tres sub estados posibles: Lavando, Enjuagando y
Exprimiendo.
La diferencia está en que el subestado Lavando también es compuesto y tiene otros dos
subestados: Aplicando detergente y aplicando quita manchas.
En este caso la Historia Profunda (Deep history) indica que al cortar la energía se
guardará el último sub estado del último nivel de anidamiento de estado compuesto
Operando, para que, cuando sea retomado la máquina se active en el último subestado
guardado, no importando el nivel de anidamiento.
20
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Solución
DME de la clase formulario RegistroCursos
Este ejercicio cumple con la características de la historia.
Existe un super estado En Selección de Curso durante el cual se pueden
seleccionar cursos regulares y cursos electivos
Si el usuario suspende la sesión, el formulario quedará Suspendido.
Si se cumplen los 30 minutos de suspensión y el usuario no ha reactivado su
sesión, el formulario termina su ciclo de vida.
Si en cambio el usuario reactiva su sesión el super estado En Selección de Cursos
será retomado.
Al volver al super estado, la característica de la historia indica que se sabe en que
sub estado se quedó el formulario antes de ser suspendido.
21
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Pseudo estados
Por último estudiaremos los elementos especiales llamados pseudo estados
En el UML 2.x se especifican tres pseudo estados:
Elección (choice)
Unión (junction)
Término (exit)
22
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
23
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Ejercicio
Crear un DME para modelar el comportamiento dinámico de la clase Proveedor que
tiene los siguientes estados:
Postulante, Contratado, En Cartera, Cancelado
24
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Ejercicio – Solución
La solución muestra que el super estado Contratado tiene historia. Luego de la
renovación del contrato se adopta la categoría que tenía el Proveedor antes de que se
terminara su contrato.
Los sub estados Preferencial, Secundario o Socio se dan mientras el proveedor está
contratado y cambian de uno a otro, si se decide, por razones comerciales, cambiar su
condición.
25
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Conclusiones
El DME es un diagrama complementario que sirve para estudiar el
comportamiento de los objetos de una clase y cuando se producen sus cambios
de estado.
Ayuda a comprender porque los estados no pueden ser modelados como
atributos de objetos, sino que se dan por cambios en el entorno.
El objeto sabe en que estado está en un momento dado por el valor de sus
atributo o por la presencia o ausencia de sus relaciones.
26
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado
Bibliografía
Libros:
BASS, Len; CLEMENTS, Paul; KAZMAN, Rick. “Software architecture in practice”. Cap. 1
Papers:
Se encuentran como U1-Papers en el aula virtual
Sitios Web:
http://www.sei.cmu.edu/architecture/
http://www.sednaspace.com/Software%20Architecture%20Evolution.doc
Slide Share
GARCÍA ZAPATA, Sorey Viviana. “Arquitectura de Software”
27
© Universidad Peruana de Ciencias Aplicadas