Conception au niveau du système. Partie 3: Liaison de System Composer et de la chaîne d'outils MathWorks

Dans les deux premiers parties du didacticiel, nous avons examiné la construction de l'architecture du système et la conception au niveau du système tout en examinant System Composer. L'architecture du système lui-même est excellente, mais vous devez vous assurer qu'il est connecté au système développé. L'absence d'une telle connexion dans les outils traditionnels utilisant SysML ou UML, soit dit en passant, a été la raison de la création de System Composer. Le fait est que de nombreuses entreprises utilisent déjà le paradigme de conception orientée modèle (MOS) pour le développement, et elles ont dû utiliser des outils tiers pour l'ingénierie des systèmes, ce qui n'était pas pratique. System Composer a été créé pour combler cette lacune. Dans cette dernière partie du didacticiel, je montrerai comment utiliser System Composer avec la chaîne d'outils MathWorks pour la conception orientée modèle.

Liaison de l'architecture aux exigences


Tout d'abord, définissons quelles sont les exigences. Les exigences sont ce que le système doit faire. Leurs différences par rapport aux spécifications techniques sont que les exigences sont une description du fonctionnement du système. MATLAB / Simulink dispose d'un outil de gestion des exigences Simulink Requirements. Il vous permet d'importer des exigences à partir de systèmes externes, tels qu'IBM DOORS, et de les écrire dans l'éditeur d'exigences natif. Les exigences elles-mêmes sont stockées dans des fichiers spéciaux avec l'extension * .slreqx. Créez les exigences et enregistrez-les dans le fichier AccessControl.slreqx. Nous formulerons les exigences elles-mêmes à partir du raisonnement de la première partie:

  • La lecture de l'étiquette RFID doit être fournie.
  • Les données récupérées de l'étiquette RFID doivent être transférées vers une base de données externe
  • En fonction de la réponse de la base de données, une interdiction ou une autorisation est générée
  • L'utilisateur doit être informé du statut d'accès
  • Le verrou est déverrouillé en fonction du statut d'accès

Ces exigences ont été créées dans l'Editeur d'exigences, un outil de création d'exigences inclus avec Simulink Requirements et enregistrées dans un fichier. Si vous ouvrez ce fichier dans le modèle lui-même à l'aide de la perspective des exigences, nous verrons ce qui suit:



Pour attacher une exigence à un élément d'architecture, transférez simplement l'exigence à l'élément d'architecture souhaité avec la souris.

Et si les exigences ont changé, comme c'est souvent le cas aux premiers stades de la conception? Comment analyser leur impact sur notre architecture? Heureusement, Simulink Requirements vous permet de suivre les modifications des exigences et marque les éléments architecturaux qui ont été affectés par ces modifications:



Pour analyser la couverture d'une architecture avec des exigences, sous l'onglet Exigences, sélectionnez Partager puis Générer une matrice de traçabilité. Une matrice de traçabilité sera créée qui affiche graphiquement les relations des exigences et des éléments. Cette matrice est un tableau dont les colonnes sont les éléments de l'architecture ou du modèle, les lignes sont les exigences elles-mêmes et les cellules contiennent des notes graphiques sur la relation entre les exigences et les éléments.

Et si vous cliquez sur le bouton Mettre en évidence les liens manquants, les éléments découverts dans la matrice seront surlignés en jaune:



L'analyse de l'exhaustivité des exigences et de leur traçabilité est un processus très important si vous créez un système critique pour la sûreté, peu importe pour un avion, une voiture ou un réacteur nucléaire. Pour de tels systèmes, il ne devrait y avoir aucun élément découvert par les exigences! Si vous êtes intéressé par la façon dont ces systèmes sont développés et comment ils sont développés dans le paradigme MOS, écrivez dans les commentaires, car le sujet est très vaste et long et dépasse le cadre du didacticiel.

Architecture Analytics chez MATLAB


Étant donné que System Composer fait partie de la chaîne d'outils MathWorks, nous pouvons analyser les propriétés de l'architecture, créer des rapports, etc. L'analyse de l'architecture vous permet de calculer le nombre d'heures de travail nécessaires à la mise en œuvre du système, le poids et les dimensions minimales, le TDP, etc. Et si nous effectuons une analyse de manière systématique et non ponctuelle, nous pourrons alors voir la dynamique du développement de notre système, ainsi que trouver des zones à problèmes.

Disons que pour notre ACS, nous voulons calculer le nombre d'heures de travail. Tous les composants ont une propriété Workload commune, et nous devons évidemment additionner les valeurs de ces propriétés. Pour ce faire, créons une instance d'architecture pour l'analyse en cliquant sur le modèle d'analyse, puis sélectionnez le GenericComponent pour l'analyse:



Cliquez ensuite sur le bouton Instancier et obtenez le résultat suivant:



Ici, nous pouvons affecter les valeurs de la propriété Workload à chaque élément et cliquer sur le bouton Mettre à jour pour mettre à jour ces valeurs dans l'architecture elle-même. Et nous n'avons pas besoin de cliquer, car l'instance existe séparément de l'architecture, et nous pouvons jouer avec les valeurs de propriété pour trouver des compromis de projet ou trouver des valeurs de propriété optimales. L'analyse elle-même est effectuée par une fonction distincte créée dans MATLAB. Voici, par exemple, le code de notre fonction «analytique»:

function AccessControl_simple_analytics(instance,varargin)
if instance.isComponent()
workload = 0;    
    for child=instance.Components
        child_workload = child.getValue("GenericComponent.Workload");
        workload = workload + child_workload;
    end
instance.setValue("GenericComponent.Workload",workload);
end
end

Une fois la fonction créée, cliquez sur Analyser et sélectionnez-la dans le menu Sélectionner une fonction. Maintenant, lorsque le bouton Analyser est cliqué, la valeur de la propriété Workload sera additionnée:



il s'agissait d'un exemple extrêmement simple d'analyse d'architecture et dans les tâches réelles de combat et d'analyse, tout le spectre des capacités analytiques MATLAB est utilisé, comme l'ajustement de courbe, l'analyse de régression, etc.

L'essentiel ici est que nous pouvons et devons conduire une analyse systématique de notre architecture afin de développer le projet.

La relation des composants et leur mise en œuvre


Enfin, System Composer n'est pas un outil distinct qui existe séparément de Simulink. Après avoir défini l'architecture, chacun de ses composants peut être lié à un modèle Simulink, tandis que vous pouvez sélectionner un modèle existant ou créer un modèle automatiquement! Cela vous permet d'exécuter des simulations et d'explorer les caractéristiques comportementales du système directement dans System Composer.



Plus important encore, si un modèle est créé à partir d'un composant, les ports d'entrée et de sortie avec les interfaces nécessaires sont automatiquement générés dans le modèle. Il s'agit d'une bagatelle très importante, car l'intégration des composants ralentit généralement en raison de l'incohérence des interfaces des composants, et les interfaces prêtes à l'emploi résolvent ce problème. Chaque modèle généré peut être donné à un artiste spécifique et soyez calme qu'il sera ensuite intégré dans l'architecture

résultats


Au cours de trois articles, j'ai montré les techniques de conception de base au niveau du système. Il est temps de faire le point.

La conception au niveau du système nécessite une analyse assez détaillée de la tâche et nécessite des outils intuitifs. System Composer est un outil facile à apprendre et tire pleinement parti de la méthodologie de conception orientée modèle pour créer et analyser des architectures de système, ainsi que des capacités analytiques de MATLAB.

L'utilisation de System Composer pour une analyse approfondie des décisions de conception nous permet de comprendre la nature des composants et d'identifier les goulots d'étranglement potentiels du système qui se trouveraient autrement aux derniers stades de développement. Diverses méthodes peuvent être utilisées pour l'analyse - de l'analyse du flux de données à l'analyse numérique.

Et, comme vous pouvez le voir, la conception au niveau du système n'est pas du tout effrayante, et les outils qui prennent en charge la conception du système vous y aident.

Vouloir en savoir davantage? Nous avons organisé un webinaire d'introduction sur l'ingénierie des systèmes, et dans le cadre de ce webinaire, je viens de montrer ce tutoriel. Et mon collègue Mikhail Peselnik a expliqué pourquoi l'ingénierie système est absolument nécessaire. Le webinaire lui-même est ici .

All Articles