Conception au niveau du système. Partie 1. De l'idée au système

Salut tout le monde. J'applique souvent les principes de l'ingénierie système dans mon travail et j'aimerais partager cette approche avec la communauté.

Ingénierie des systèmes - sans normes, mais en termes simples, il s'agit du processus de développement d'un système sous forme de composants assez abstraits, sans référence à des échantillons de dispositifs spécifiques. Au cours de ce processus, les propriétés des composants du système et les connexions entre eux sont établies. De plus, il est nécessaire de rendre le système cohérent et optimal et qu’il réponde aux exigences. Dans ce didacticiel, je montrerai les techniques d'ingénierie des systèmes en utilisant l'exemple de la conception d'un système de contrôle d'accès (ACS) assez simple.

Former l'architecture initiale

Lorsqu’un système, quoi qu’il arrive, commence tout juste à se développer, des rectangles avec des flèches apparaissent dans nos têtes ou sur le papier. De tels rectangles sont composants systèmes. Et les flèches sont connexions entre les composants. Et très souvent, nous n’avons pas le temps de nous asseoir et de réfléchir à la manière dont tous les composants que nous avons définis fonctionneront les uns avec les autres, et à la fin, nous commençons à créer un tas de béquilles, à proposer des conceptions redondantes.

Il est important de rappeler que du point de vue du système et de son architecture, un composant est une chose plutôt abstraite. Par exemple, si notre système dispose d'un microcontrôleur, alors au niveau architectural, il est seulement important pour nous qu'il s'agisse d'un microcontrôleur, et non qu'il s'agisse d'un STM32, d'un Arduino ou d'un Milander. De plus, nous ne savons souvent pas du tout ce qu'il y aura exactement dans le système, et nous nous tournons vers l'ingénierie des systèmes pour développer les exigences en matière d'équipement, de logiciels, etc.

Pour notre exemple avec ACS, nous allons essayer de formuler son objectif. Cela nous aidera à identifier ses composants. Ainsi, la tâche du système de contrôle d'accès est de permettre à un cercle limité de personnes d'entrer dans la pièce. Autrement dit, c'est une serrure intelligente. Par conséquent, nous avons le premier composant – une sorte de dispositif qui verrouille et déverrouille la porte ! Appelons-le Verrou

Comment sait-on qu’une personne peut entrer à l’intérieur ? Nous ne voulons pas mettre un gardien et vérifier les passeports, n’est-ce pas ? Donnons aux gens des cartes spéciales avec des étiquettes RFID, sur lesquelles nous enregistrerons des identifiants uniques ou d'autres données nous permettant d'identifier avec précision une personne. Ensuite, nous aurons besoin d’un appareil capable de lire ces balises. Super, nous avons un composant supplémentaire, Lecteur RFID

Regardons à nouveau ce que nous avons obtenu. Lecteur RFID lit certaines données, le système de contrôle d'accès en fait quelque chose et, sur cette base, quelque chose est contrôlé Verrou. Posons la question suivante : où stocker la liste des personnes ayant des droits d'accès ? Meilleur dans la base de données. Par conséquent, notre système doit être capable d’envoyer des requêtes et de traiter les réponses de la base de données. Nous avons donc un composant supplémentaire - Gestionnaire de DB. Nous avons donc reçu une description extrêmement abstraite, mais suffisante pour commencer, du système. Nous comprenons ce qu'il est censé faire et comment cela fonctionne.

Au lieu d'un morceau de papier, j'utiliserai System Composer, un outil spécial pour modéliser les architectures système dans l'environnement Simulink, et créerai 3 composants. Ci-dessus, j'ai décrit les connexions entre ces composants, connectons-les donc immédiatement :

Conception au niveau du système. Partie 1. De l'idée au système

Extension de l'architecture

Regardons notre diagramme. Il semble que tout va bien, mais en réalité ce n'est pas le cas. Regardez ce système du point de vue de l'utilisateur : l'utilisateur apporte la carte au lecteur et... ? Comment un utilisateur sait-il si l’accès lui est autorisé ou refusé ? Il faut en quelque sorte l'en informer ! Par conséquent, ajoutons un composant supplémentaire - la notification utilisateur, Notifier l'utilisateur:

Conception au niveau du système. Partie 1. De l'idée au système

Passons maintenant à un niveau d'abstraction inférieur. Essayons de décrire certains composants un peu plus en détail. Commençons par le composant Lecteur RFID. Dans notre système, ce composant est responsable de la lecture de l'étiquette RFID. Sa sortie doit contenir certaines données (UID, données utilisateur...). Mais attendez, la RFID, comme le NFC, est avant tout matérielle, pas logicielle ! Par conséquent, nous pouvons supposer que nous disposons séparément de la puce RFID elle-même, qui transmet des données « brutes » à une sorte de préprocesseur. Nous disposons donc d’un matériel abstrait capable de lire les étiquettes RFID et d’un logiciel abstrait capable de convertir les données dans le format dont nous avons besoin. Appelons-les Capteur RFID и Analyseur RFID respectivement. Comment afficher cela dans System Composer ? Vous pouvez supprimer un composant Lecteur RFID et mettre deux composants à la place, mais il vaut mieux ne pas faire ça, sinon on perdrait la lisibilité de l'architecture. Au lieu de cela, entrons dans RFIDReader et ajoutons 2 nouveaux composants :

Conception au niveau du système. Partie 1. De l'idée au système

Très bien, passons maintenant à la notification à l'utilisateur. Comment le système informera-t-il l'utilisateur que l'accès aux locaux lui est refusé ou autorisé ? Une personne perçoit mieux les sons et quelque chose qui clignote. Par conséquent, vous pouvez émettre un certain signal sonore pour que l'utilisateur y prête attention et faire clignoter la LED. Ajoutons les composants appropriés à Notifier l'utilisateur:

Conception au niveau du système. Partie 1. De l'idée au système

Nous avons créé l'architecture de notre système, mais il y a quelque chose qui ne va pas. Quoi? Regardons les noms de connexion. En bus и HorsBus - des noms pas tout à fait normaux qui pourraient aider le développeur. Il faut les renommer :

Conception au niveau du système. Partie 1. De l'idée au système

Nous avons donc examiné comment les méthodes d’ingénierie des systèmes sont appliquées dans l’approximation la plus grossière. La question se pose : pourquoi les utiliser ? Le système est primitif et il semble que le travail effectué soit inutile. Vous pouvez immédiatement écrire du code, concevoir une base de données, écrire des requêtes ou souder. Le problème est que si vous ne réfléchissez pas au système et ne comprenez pas comment ses composants sont connectés les uns aux autres, l'intégration des composants du système prendra beaucoup de temps et sera assez pénible.

Le principal point à retenir de cette partie est :

L'utilisation de méthodes d'ingénierie système et de modélisation d'architecture dans le développement de systèmes permet de réduire les coûts d'intégration des composants et d'améliorer la qualité du système développé.

Source: habr.com

Ajouter un commentaire