Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Utilizar la jerarquía de estados para diseñar complejidad de estado multinivel

Para gestionar complejidad de estado multinivel, aplique jerarquía al gráfico de Stateflow®. Con la jerarquía puede representar varios niveles de subcomponentes de un sistema.

Ejemplo de jerarquía de estados

Por ejemplo, este gráfico tiene tres niveles de jerarquía. Representar un estado dentro de los límites de otro estado indica que el estado interno es un subestado (o estado secundario) del estado externo (o superestado). El estado externo es el elemento principal del estado interno.

Chart the contains three levels of hierarchy.

En este ejemplo, el gráfico es el elemento principal del estado Car_done. El estado Car_done es el elemento principal de los estados Car_made y Car_shipped. El estado Car_made también es el elemento principal de los estados Parts_assembled y Painted. También se puede considerar a los estados Parts_assembled y Painted como estados secundarios del estado Car_made.

Para representar la jerarquía de Stateflow de forma textual, utilice una barra oblicua (/) para representar el gráfico y utilice un punto (.) para separar cada nivel en la jerarquía de estados. La siguiente lista es una representación textual de la jerarquía de los objetos en el ejemplo anterior:

  • /Car_done

  • /Car_done.Car_made

  • /Car_done.Car_shipped

  • /Car_done.Car_made.Parts_assembled

  • /Car_done.Car_made.Painted

Crear subestados y superestados

Un subestado es un estado que solo puede estar activo cuando otro estado, denominado elemento principal, está activo. Los estados que tienen subestados se conocen como superestados. Para crear un subestado, haga clic en la herramienta de estados y arrastre un nuevo estado al estado que desea que sea el superestado. Un gráfico de Stateflow crea el subestado en el estado principal especificado. Puede anidar estados de esta forma a cualquier nivel de profundidad. Para cambiar la relación con respecto al elemento principal de un subestado, arrástrelo desde su elemento principal actual en el gráfico y suéltelo en su nuevo elemento principal.

Nota

Un elemento principal debe ser lo suficientemente grande gráficamente para alojar todos sus subestados. Es posible que necesite cambiar el tamaño de un estado principal antes de arrastrar un nuevo subestado. Para evitar tener un estado con un gran tamaño gráfico puede declarar un superestado como un subgráfico. Para obtener más detalles, consulte Encapsulate Modal Logic by Using Subcharts.

Objetos que puede contener un estado

Los estados pueden contener cualquier otro objeto de Stateflow. La notación gráfica de Stateflow admite la representación de jerarquía de objetos gráficos en gráficos de Stateflow con contención. Un estado es un superestado si contiene otros estados. Un estado es un subestado si está contenido en otro estado. Un estado que no es ni un superestado ni un subestado de otro estado es un estado cuyo elemento principal es el propio gráfico de Stateflow.

Los estados también pueden contener objetos no gráficos de datos, eventos y mensajes. La jerarquía de esta contención aparece en Model Explorer. La contención de datos, eventos y mensajes se define especificando el objeto principal.