Sunteți pe pagina 1din 27

Universidad Peruana de Ciencias Aplicadas

Arquitectura de Software

Diagrama de máquinas de estado


Diagrama de máquinas de estado

© Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a


la Universidad Peruana de Ciencias Aplicadas. Queda terminantemente prohibida la
reproducción, puesta a disposición del público y en general cualquier otra forma de
explotación de toda o parte de la misma. La utilización no autorizada de esta obra, así
como los perjuicios ocasionados en los derechos de propiedad intelectual e industrial
de la Universidad Peruana de Ciencias Aplicadas., darán lugar al ejercicio de las
acciones que legalmente le correspondan y, en su caso, a las responsabilidades que de
dicho ejercicio se deriven.

2
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado

Índice del tema

Introducción al curso ..................................................................................................................................... 5


Logros de aprendizaje .................................................................................................................................. 6
1. ¿Qué es el Diagrama de Máquinas de Estado (DME)? ................................................................................ 7
¿Qué es un DME? ........................................................................................................................ 7
¿Para qué se usa un DME? ............................................................................................................ 7
¿Cuándo comenzar a hacer los DME? ............................................................................................ 7
No olvides que… ......................................................................................................................... 7
2. Elementos básicos del DME .................................................................................................................... 8
¿Cuáles son los elementos básicos de un DME?.............................................................................. 8
¿Qué es un estado? ....................................................................................................................... 8
¿Cómo se representa un estado? .................................................................................................... 9
¿Cómo se pueden reconocer los estados? ....................................................................................... 9
Ejemplo Clase Curso: ............................................................................................................... 9
Ejemplos de dos clases: .......................................................................................................... 10
Estados especiales ...................................................................................................................... 10
Estados y eventos ....................................................................................................................... 11
¿Qué es una transición? .............................................................................................................. 11
¿Cómo se documenta una transición? ........................................................................................... 12
Transiciones con condición de restricción .................................................................................... 12
Transiciones con métodos ........................................................................................................... 12
Ejemplo de transiciones con métodos....................................................................................... 13
¿Qué es una actividad? ............................................................................................................... 13
Ejemplo: ............................................................................................................................... 14
Ejemplo de actividades con eventos enviados a otra clase: ......................................................... 14
No olvides que… ....................................................................................................................... 14
Ejercicio .................................................................................................................................... 15
Solución ................................................................................................................................ 15
3. Elementos especiales del DME .............................................................................................................. 16
¿Qué otros elementos se pueden representar en un DME? .............................................................. 16
Estados especiales ...................................................................................................................... 16
Estados compuestos ................................................................................................................... 17
Ejemplo de un DME sin estados compuestos ............................................................................ 17
Ejemplo de un DME con estados compuestos ........................................................................... 17
Estado ortogonal ........................................................................................................................ 18
Estado sub máquina.................................................................................................................... 19
Historia ..................................................................................................................................... 19
Modalidades de la característica de la historia............................................................................... 19
Ejemplo ................................................................................................................................ 19
Ejercicio del uso de la historia ..................................................................................................... 20

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.

Los distintos niveles de abstracción de la funcionalidad de los sistemas están asociados


ala estructura, funcionamiento e interacción entre las partes del software,formando
aspectos generales sobre los que se puedan resolver los problemas.

La arquitectura del software aporta un conjunto de patrones y abstracciones coherentes


que proporcionan el marco de referencia necesario para guiar la construcción del
software de un sistema de información.

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.

También se espera que, al término de la asignatura el estudiante sustente, con


responsabilidad, la arquitectura y el diseño de un sistema concreto y de mediana escala,
que sea factible de ser implementado y mantenido en el tiempo.

Para lograr estas competencias, en el curso, se imparten conocimientos teóricos a través


del aula virtual y herramientas de la web 2.0 y se busca, de manera práctica, que los
estudiantes conozcan y apliquen los distintos tipos de arquitecturas de software,las
mejores prácticas de modelado de sistemas y como éstos se aplican a lo largo del
proceso de desarrollo del software, para tomar decisiones técnicas relevantes
quegaranticen el mejor desempeño, reuso, robustez, portabilidad, flexibilidad,
escalabilidad y mantenimiento de los sistemas.

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

1. ¿Qué es el Diagrama de Máquinas de Estado


(DME)?
¿Qué es un DME?
Un diagrama de máquinas de estados describe los diferentes estados en que un
elemento de software puede estar y las posibles transiciones entre dichos estados.

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

¿Para qué se usa un DME?


Como los objetos de una clase tienen:
 Comportamiento (hacen) y
 Estado (conocen)
…y también algunos objetos pueden hacer cosas más complicadas que otros…
El DME se usa para comprender el comportamiento y los estados de este tipo de objetos
tan variados y complejos.

¿Cuándo comenzar a hacer los DME?


Durante la segunda iteración del análisis y diseño concentrándose inicialmente en las
clases cuyo comportamiento es complejo y dinámico.

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

2. Elementos básicos del DME


¿Cuáles son los elementos básicos de un DME?
Como puedes observar en el diagrama los elementos básicos de un DME son:
 El estado (que se representa por un rectángulo con las aristas redondeadas)
 La transición (que se representa por una flecha documentada)
 La actividad (que son acciones que se representan al interior de un estado)

Fuente: Elaboración propia

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

¿Cómo se representa un estado?


Un estado se representa con un rectángulo con las aristas redondeadas
El nombre del estado va en el interior del mismo.

Nombre
de
Estado

¿Cómo se pueden reconocer los estados?


Los estados de un objeto se pueden distinguir por el valor de ciertos atributos.

Ejemplo Clase Curso:


En el ejemplo está representada la Clase Curso que tiene como atributo el número de
estudiantes.
A la derecha está un objeto de la clase Curso, de nombre Inglés01 y cuyo número de
estudiantes es igual a 7.
Ahora bien, si tomamos en cuenta la regla: “El número máximo de estudiantes por
curso es 10”.
Definimos en consecuencia, dos estados: Abierto si el número de estudiantes es menor
que 10 y Cerrado si el número de estudiantes es igual a 10.
Entonces…¿en qué estado está el objeto curso Inglés01?
El objeto de la clase curso, Inglés01 que actualmente tiene 7 estudiantes, está en el
estado abierto.

9
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado

Ejemplos de dos clases:


En este ejemplo presentamos dos clases: Profesor y Curso. Se sabe que “un profesor
puede estar dictando muchos cursos o ninguno”.
De acuerdo a la relación entre las clases Profesor y Curso, podemos definir dos estados
de la clase Profesor:

- “Enseñando”...si existe un vínculo con algún curso.


- “En licencia”...cuando no existe ésta asociación.

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.

¿Qué es una transición?


Ahora si podemos definir qué es una transición
Una transición es el cambio que se produce de un estado origen a uno sucesor como
resultado de ciertos estímulos o eventos.
 OJO: El estado sucesor puede posiblemente ser el estado origen.
Una transición tiene lugar en respuesta a un evento.
Se representa por una flecha que va de un estado origen a otro sucesor
En el diagrama ejemplo:
El evento Adicionar un estudiante hace que el objeto curso transite varias veces sobre
el estado Abierto hasta que el cupo del curso esté lleno.

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.

¿Cómo se documenta una transición?


Las transiciones pueden ser etiquetadas con la siguiente estructura: evento [condición
de restricción][/método(s)]
(se lee: el evento va primero, seguido de la condición de restricción entre corchetes y los
métodos)
De los cuales son importantes incluir el evento y/o la condición de restricción para
entender el cambio de estado.
El método es opcional.

Transiciones con condición de restricción


A continuación veremos el ejemplo de una transición con condición de restricción
 Una condición de restricción (en inglés guard condition) es una expresión
booleana que permite que una transición ocurra sólo si dicha condición es
verdadera.
En el ejemplo, un curso pasará del estado Abierto al estado de Registro Completo si se
da el evento de Cerrar Registro y la condición de que el número de estudiantes es mayor
o igual a 3 sea verdadera.
Cerrar registro [nroEstudiantes>=3]

Abierto
Abierto Registro Completo
Registro Completo

Transiciones con métodos


Qué es un método?

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

Ejemplo de transiciones con métodos


En este ejemplo:
Cuando se da el evento Abrir curso se ejecuta el método Inicializar el número de
estudiantes en cero.
Cuando se da el evento Adicionar estudiante y el atributo número de estudiantes es
igual a 10 se lanza el método Crear Reporte de la clase Reporte Curso y el objeto Curso
transita de Abierto a Cerrado.

¿Qué es una actividad?


El último elemento básico del DME es la actividad.
Una actividad es una operación que ocurre con el estado.
 Se documenta dentro del estado
 Una actividad puede: ejecutarse una sola vez al inicio de estado o al término del
mismo (se utilizan los prefijos entry o exit) o puede ejecutarse durante la

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

Ejemplo de actividades con eventos enviados a otra clase:


Actividades con eventos enviados a otra clase:
 Una actividad puede también enviar un evento a otra clase para que ésta ejecute
un método.
En la figura, mientras el curso está en el estado Eliminado se ejecuta la actividad de
lanzar el método Eliminar Estudiante de la clase Matricula Curso, una o varias veces.

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

 La transición, que es documentada con un evento, condición de restricción y


opcionalmente uno o varios métodos.
 La actividad, que es una acción o tarea ejecutada:
o A la entrada o salida de un estado
o Durante la permanencia del objeto en un estado determinado.

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.

3. Elementos especiales del DME


¿Qué otros elementos se pueden representar en un DME?
En la versión UML 2.x hay nuevos elementos que se pueden representar en un DME.
Revisaremos: los estados especiales, la historia, los puntos de entrada y salida y los
pseudo estados (elección, unión y término)

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.

Ejemplo de un DME sin estados compuestos


DME de la clase Curso sin súper estados.
En este diagrama que ya habíamos revisado anteriormente, es confuso determinar
cuando se dan los estados Cancelado, Cerrado y Registro Completado porque de por
medio está el proceso de matrícula.

Ejemplo de un DME con estados compuestos


Al crear el super estado En Registro se separa el DME en tres momentos:

17
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado

 Antes del proceso de matrícula: Aquí ocurre el estado Inicializado


 Durante el proceso de matrícula: Ocurren los estados En Programación, Abierto
y Cerrado.
 Después del proceso de matrícula: Ocurren los estados Registro Completado y
Cancelado.

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

Estado sub máquina


Un estado sub máquina es semánticamente equivalente a un estado compuesto.
La diferencia es que está asociado a otro diagrama de máquinas de estado.
 En un primer diagrama está la sub máquina
 En un segundo diagrama se muestran los sub estados
En el ejemplo la sub máquina Procesando una Orden da una idea de que sus sub estados
están ocultos y que figuran en un DME anexo.

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)

Modalidades de la característica de la historia


La historia superficial solo guarda el último subestado de un primer nivel de
anidamiento. Se representa con una letra H encerrada en un círculo.
La historia profunda guarda el último subestado de anidamiento o nivel ilimitado. Se
representa con una letra H seguida de un asterisco, ambos dentro de un circulo.

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.

Ejercicio del uso de la historia


Efectuar el DME de una clase Interfaz conociendo lo siguiente:
En el sistema de matrícula, la clase formulario RegistroCursos hace lo siguiente:
 Acepta cursos regulares.

20
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado

 Acepta cursos electivos.


El usuario puede dejar el formulario RegistroCurso en cualquier momento.
El usuario puede suspender una sesión por un máximo de 30 minutos mientras está
seleccionando cursos.
El formulario RegistroCursos es salvado después que todos los cursos han sido
seleccionados.
El formulario RegistroCursos es sometido a procesamiento después de haber sido
salvado.

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

Puntos de entrada y salida


Otros elementos especiales son los puntos de entrada y salida.
Los puntos de entrada y salida se usan en algunas ocasiones cuando se puede desear no
entrar y salir de un super estado por el estado inicial y final del mismo.
En el diagrama de arriba se muestra un punto de entrada. En el diagrama
correspondiente a una máquina, se puede comenzar el super estado En Actividad por el
primer sub estado Cargándose o en otras condiciones por el segundo sub estado
Disponible. El punto de entrada es representada por un círculo pequeño sin relleno
El diagrama de abajo se corresponde a un punto de salida.En ese diagrama se puede
salir del super estado En Procesamiento por el sub estado Procesando Instrucciones de
una manera normal.
Excepcionalmente, se puede finalizar el super estado En Procesamiento por el sub
estado Leyendo Instrucciones.
El punto de salida se representa con un círculo con una equis en su interior.

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

Pseudo estado elección


El Pseudo estado elección (choice) sirve para mostrar divergencia entre una transición
de entrada y dos o más transiciones de salida. Se representa con un rombo o con un
círculo
En el ejemplo después de que una máquina está evaluando el tipo de mensaje que ha
recibido, sabe si es de voz, texto o fax. Dependiendo de cada tipo de mensaje la máquina
adoptará el estado creando mensaje de voz, si el mensaje fue de voz, o creando mensaje
de texto, si el mensaje fue un texto o creando mensaje de fax si el mensaje fue vía fax.

Pseudo estado unión


El Pseudo estado unión (junction) es usado para juntar múltiples transiciones. Puede
tener una o muchas transiciones de entrada y una o muchas transiciones de salida. Un
condición de restricción (guard) puede ser aplicada a cada transición. Se representa con
una barra de sincronización o un círculo relleno.
En este ejemplo después que la máquina ha recibido una identificación bien por tarjeta
magnética, bien por una entrada de teclado o bien por una huella digital, la máquina se
pondrá en el estado Validando al usuario.

23
© Universidad Peruana de Ciencias Aplicadas
Diagrama de máquinas de estado

Pseudo estado de término


El Pseudo estado de término indica que la línea de vida de un objeto o superestado ha
terminado, abruptamente. Se usa una equis encerrada en un círculo para representarlo.
En este ejemplo se muestra que una máquina que ha estado en actividad, termina su
ciclo de vida al cortase abruptamente la energía (power off).

¿Cómo hacer los diagramas?


Es conveniente….
 Identificar el estado de creación y los posibles estados de fin.
 Luego identificar los posibles estados por los que puede pasar el objeto bajo
estudio.
o Tomar en cuenta que los estados de un objeto varían a través de uno o
muchos casos de uso.
 Después ver las posibles transiciones de un estado a otro.
o Es útil preguntarse ¿cómo el objeto puede salir del estado?
 Si hay dificultades para identificar los estados de una clase o sistema, observar
los posibles estados mediante:
o La evaluación de los valores de atributo.
o La identificación de la cardinalidad de sus relaciones.
o La evaluación de sus operaciones.
o La definición de las reglas para cada estado y
o La identificación de las transacciones válidas entre estados.

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

Información del Proveedor Postulante


 Se realiza una entrevista para determinar la capacidad del posible Proveedor
durante este estado.
 Este estado se termina cuando el proveedor es contratado o se queda en cartera.

Información del Proveedor Contratado


 El estado contratado tiene tres subestados basados en la evaluación comercial:
Preferencial, Secundario y Socio de Negocios.
 La clasificación comercial puede variar en cualquier momento.
 Estas clasificaciones pueden crearse o modificarse cuando se entra/sale de un
subestado.

Información del Proveedor en Cartera


 Este estado es alcanzado cuando el proveedor ha terminado su contrato y queda
en stand-by hasta la renovación.

Información del Proveedor en Cancelado


 Un proveedor puede ser cancelado si es declarado como no confiable por
continuos incumplimientos o por decisión propia no quiere continuar trabajando
con la empresa.
 Se puede alcanzar este estado desde cualquier otro subestado del proveedor
contratado.

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

Para ampliar o complementar los temas desarrollados en este material, te invitamos a


leer la bibliografía que se presenta en pantalla.

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

S-ar putea să vă placă și