Contenu principal

Utiliser la hiérarchie d’état pour concevoir des états complexes à plusieurs niveaux

Pour gérer les états complexes à plusieurs niveaux, utilisez la hiérarchie dans votre diagramme Stateflow®. Grâce à la hiérarchie, vous pouvez représenter plusieurs niveaux de sous-composants dans un système.

Exemple de hiérarchie d’états

Par exemple, ce diagramme possède trois niveaux de hiérarchie. Dessiner un état à l’intérieur des limites d’un autre état indique que l’état intérieur est un sous-état (ou child) de l’état extérieur (ou super-état). L’état extérieur est le parent de l’état intérieur.

Chart the contains three levels of hierarchy.

Dans cet exemple, le diagramme est le parent de l’état Car_done. L’état Car_done est l’état parent des états Car_made et Car_shipped. L’état Car_made est aussi le parent des états Parts_assembled et Painted. On peut aussi dire que les états Parts_assembled et Painted sont « enfants » de l’état Car_made.

Pour représenter textuellement la hiérarchie Stateflow, utilisez une barre oblique (/) pour représenter le diagramme et utilisez un point (.) pour séparer chaque niveau dans la hiérarchie des états. La liste suivante est une représentation textuelle de la hiérarchie des objets dans l’exemple précédent :

  • /Car_done

  • /Car_done.Car_made

  • /Car_done.Car_shipped

  • /Car_done.Car_made.Parts_assembled

  • /Car_done.Car_made.Painted

Créer des sous-états et des super-états

Un sous-état est un état qui ne peut être actif que quand un autre état, appelé son parent, est actif. Les états qui ont des sous-états sont appelés super-états. Pour créer un sous-état, cliquez sur l’outil State (État) et faites glisser le nouvel état dans l’état qui deviendra le super-état. Un diagramme Stateflow crée le sous-état dans l’état parent spécifié. Vous pouvez imbriquer des états de cette façon à l’infini. Pour changer la filiation d’un sous-état, faites-le glisser depuis son parent actuel dans le diagramme et déposez-le dans son nouveau parent.

Remarque

Un état parent doit être assez grand graphiquement pour accueillir tous ses sous-états. Vous devrez peut-être redimensionner un état parent avant d’y faire glisser un nouveau sous-état. Vous pourrez éviter le besoin d’un état de grande taille graphique en déclarant un super-état comme étant un sous-diagramme. Consultez Encapsulate Modal Logic by Using Subcharts pour plus de précisions.

Objets qu’un état peut contenir

Les états peuvent contenir tous les autres objets Stateflow. La notation du diagramme Stateflow supporte la représentation de la hiérarchie des objets graphiques dans les diagrammes Stateflow avec contenance. Un état est un super-état s’il contient d’autres états. Un état est un sous-état s’il est contenu dans un autre état. Un état qui n’est ni un super-état ni un sous-état d’un autre état est un état dont le parent est le diagramme Stateflow lui-même.

Les états peuvent également contenir des objets non graphiques de données, d’événements et de messages. La hiérarchie de cette contenance apparaît dans le Model Explorer. Vous définissez la contenance des données, des événements et des messages en spécifiant l’objet parent.

Voir aussi

Rubriques