Conception au niveau du système. Partie 2. Architecture détaillée

Dans la première partie du tutoriel, j'ai obtenu l'architecture d'un système de contrôle d'accès. Le résultat obtenu présente déjà des avantages pratiques, mais pas suffisants, car maintenant l'architecture ne prend pas en compte les formats et les types de données et la nature des composants. Dans cette partie du didacticiel, je vais montrer comment concevoir des flux de données dans un système et travailler avec des composants de nature différente.

Interfaces de composants


Regardons à nouveau le système de la première partie. On voit que les composants sont reliés par des flèches. Ces connexions sont encore abstraites et représentent de simples connexions d'informations. Cependant, nous pouvons réduire légèrement le niveau d'abstraction. Considérez la sortie du composant DBHandler .



Ce composant a une sortie AccessStatus. Essayons de le décrire. Ainsi, AccessStatus est un lien contenant des informations sur l'état de l'accès. L'accès peut être accordé ou non. Autrement dit, il s'agit d'une variable booléenne explicite! Indiquons le type de cette sortie. Pour ce faire, dans System Composer, vous devez d'abord créer l' interface appropriée :



Et puis nous indiquons que l'interface créée est affectée au port AccessStatus:



Cette opération doit être effectuée sur tous les ports nécessaires. Nous pouvons résumer et déduire la déclaration suivante:

En créant des interfaces et en les affectant à des ports, nous donnons aux développeurs qui implémenteront le système des instructions précises sur les données que les composants développés utiliseront et les données requises à la sortie.

Un autre avantage de System Composer est sa capacité à visualiser le flux de données à l'aide de vues d'architecture personnalisées, Vues d'architecture . Nous pouvons filtrer notre architecture selon certains critères. Prenons l'exemple de l'interface précédemment créée. Créez une vue de flux de données AccessStatus.

Tout d'abord, cliquez sur Modélisation -> Vues d'architecture . Et puis créez un filtre:



Ici, le nom de la vue est défini et un filtre est créé: sélectionnez tous les composants qui ont une interface nommée AccessStatus . Après avoir cliqué sur le bouton Appliquer, nous obtenons l'image suivante:


Ainsi, l'utilisation de telles représentations est utile pour le développement, car vous pouvez trouver rapidement les composants ou les erreurs nécessaires dans le projet ou le flux de données.

Gestion des composants hétérogènes


Il serait possible de s'arrêter là, car pour le moment nous avons une belle architecture système qui aide à la mise en œuvre. Cependant, il y a un très gros problème - le système se compose de fer, c'est-à-dire de composants physiques et de logiciels. Qu'est-ce que ça veut dire? Cela signifie que le système est hétérogène et nous devons en quelque sorte refléter cette hétérogénéité. System Composer a des fonctionnalités spéciales - ce sont des profils et des stéréotypes. Pour faciliter la compréhension, un stéréotype est une description abstraite d'une classe de composants avec des propriétés, et un profil est une collection de stéréotypes. Un exemple simple - disons que nous avons un stéréotype qui décrit un microcontrôleur. Tout microcontrôleur a des propriétés communes - cœur, TDP, tension d'alimentation, fréquence, etc. Ce sont ces propriétés qui devraient se refléter dans le stéréotype.

Créez un profil et les stéréotypes nécessaires:


Par exemple, j'ai créé le stéréotype de GenericComponent. Voici à quoi ça ressemble:



Plusieurs paramètres sont importants ici:

  1. S'applique à - à quoi le stéréotype s'applique - à un composant, une interface, un port ou une connexion (oui, les connexions elles-mêmes, ces flèches, peuvent également être décrites à l'aide du stéréotype)
  2. Le stéréotype de base est le stéréotype parent. Les stéréotypes héritent des propriétés des stéréotypes parents
  3. Table des propriétés - les propriétés personnalisées sont définies ici. Par exemple, ma propriété s'appelle Workload, c'est-à-dire le travail impliqué dans la mise en œuvre

2 autres stéréotypes de HardwareComponent sont basés sur ce stéréotype - pour le matériel, et SoftwareComponent , pour le logiciel.

Après avoir créé le profil et les stéréotypes, nous les importons dans l'architecture et pouvons commencer à les disperser sur ses éléments:



En conséquence, j'ai obtenu cette image:


Pour plus de clarté, j'ai fait la présentation suivante:


Examinons le mécanisme d'héritage des propriétés des composants en action. Sélectionnez le composant DoorLock et examinez ses propriétés:


La propriété Workload a été héritée de GenericComponent, mais la propriété Cost est spécifique au stéréotype HardwareComponent.

Pour résumer cette partie: L'

architecture détaillée permet une description plus complète du système en cours de développement et d'éviter les incohérences dans les interfaces et l'interaction des composants. L'utilisation de stéréotypes pour les détails aide à comprendre la nature des composants et à obtenir une image plus complète du système en cours de développement.

Dans la prochaine partie du tutoriel, je parlerai de l'intégration de System Composer avec MATLAB, Simulink et l'outil de gestion des exigences, Simulink Requierements.

All Articles