Domotique, IOT : découvrez les dernières tendances pour une société toujours plus moderne

Domotique, IOT : découvrez les dernières tendances pour une société toujours plus moderne

L’avancée permanente de notre mode de vie et de nos habitudes de consommation ne cesse de faire naître en nous de nouveaux besoins. Afin de satisfaire ceux-ci, nous développons chaque jour de nouvelles solutions intelligentes qui s’adaptent parfaitement à nos réalités.

La domotique : pour des maisons toujours plus ergonomiques

Cela ne vous a sans doute pas échappé : les maisons connectées et contrôlables à distance, le contrôle intelligent de la consommation électrique, les alertes de présence au domicile, l’extinction automatique de l’éclairage, le verrouillage automatique des portes, etc. Ces termes ne vous sont plus étrangers. Vous les avez probablement déjà expérimentés chez un parent, un ami ou en avez déjà entendu parler. Toutes ces tâches, autrefois faites manuellement, sont aujourd’hui complètement automatisées grâce à la domotique. Et ce, dans le but de vous apporter le maximum de contrôle (sécurité et gestion de la consommation énergétique notamment) et de facilité (confort) grâce à la technologie.

Le IoT ou le monde des objets connectés

Si le terme iot ne vous évoque rien, c’est probablement parce qu’il est un anglicisme signifiant littéralement « Internet des Objets ». Ce terme regroupe l’ensemble de nos objets du quotidien que nous connectons à Internet. Vous l’aurez compris, cela va de la plus petite enceinte connectée aux caméras de surveillance dans les rues. Et cela dans le but d’optimiser et de faciliter le traitement des informations entre machines avec le minimum d’interventions humaines. Ainsi, les machines communiquant entre elles prennent des décisions permettant d’améliorer notre quotidien. Cela est particulièrement utile dans les industries et dans les grandes chaînes de production où l’automatisation de processus apporte un gain de temps considérable.

IoT et Big Data : une relation forte

Saviez-vous que chaque fois que vous interagissez avec du matériel connecté, vous générez des données ? Effectuer une recherche sur Internet, aller sur un réseau social, écouter de la musique sont autant de moyens aujourd’hui de générer des données. Autant vous le dire, nous produisons des quantités colossales de données chaque jour. Ce sont ces données produites qu’on désigne par le terme « big data ». L’analyse et le traitement de ces données est un enjeu majeur de technologie.

Quel est le processus de transformation digitale en France ?

Quel est le processus de transformation digitale en France ?

Environ 86% des Français utilisent internet en 2021. Cela témoigne de son rôle clé dans le fonctionnement de la société. Face à ce constat implacable, les entreprises ont dû prendre le tournant du numérique. Néanmoins, ce processus de transformation digitale connaît des fortunes diverses. Comment le décrire ?

Un processus enclenché qui se développe à grande vitesse

La transformation digitale est une réalité et une tendance marquée. Chaque année, des milliers d’entreprises débarquent sur la toile pour conquérir de nouveaux clients. Elles tentent ainsi de séduire une partie des acheteurs en ligne qui sont près de 40 millions en France. De même, près de 40 millions de Français sont présents sur les réseaux sociaux.

Un Français passe en moyenne plus de 2h40 par jour sur internet et près d’une heure 40 sur les réseaux sociaux. Youtube est le réseau social le plus utilisé, suivi de près par Facebook puis par Instagram. En ce sens, avoir une forte présence sur internet pour une entreprise est une nécessité. Cela lui permet de s’exposer à un public large et nombreux et de booster ses ventes. De plus, elle peut promouvoir ses produits sur les réseaux sociaux.

Une transformation digitale inégale

Toutefois, tout le monde n’est pas touché autant par cette forte tendance. En 2020, moins d’un tiers des TPE considéraient en faire partie. Une très large majorité des PME (environ 70%) déclarent ne pas avoir d’outils digitaux efficaces. Les ETI, quant à elles, sont beaucoup plus incluses dans cette tendance. Elles sont plus de 4 sur 5 à être engagées dans ce processus. Cela leur bénéficie puisqu’elles voient leurs chiffres s’envoler et gagnent en visibilité ainsi qu’en efficacité opérationnelle.

On le constate, la transformation digitale gagne du terrain. Néanmoins, elle concerne plus les grandes que les petites et moyennes entreprises.

Développement de logiciels critiques

Introduction au Développement de logiciels critiques

A l’issue de la présentation technique de Jean-Pierre ROSEN, expert en langage Ada, les enseignements de base pour développer un logiciel critique ont été tirés :

Qu’est-ce qu’un logiciel critique ?

Un logiciel est qualifié de « critique » si une panne peut avoir des conséquences graves (mort, accident, dégâts matériels, humains, financiers  ou environnementaux graves).  Les logiciels critiques sont présents dans de nombreux domaines comme l’aviation, le ferroviaire, l’automobile, le nucléaire, le médical et bien d’autres secteurs encore.

Compte tenu des conséquences possibles d’un défaut, les méthodes utilisées dans d’autres domaines qui acceptent un certain taux d’erreur ne sont pas acceptables. C’est pourquoi des standards, des processus, et des méthodes spécifiques aux logiciels critiques ont été développés.

Attention : les contraintes portent sur la sécurité (safety en anglais), et ne doivent pas être confondues avec celles portant sur la sûreté, c’est-à-dire qui concernent la résistance à des attaques malveillantes (security en anglais).

Selon les cas, les exigences en matière de sécurité s’appuieront soit sur le seul risque, soit sur un risque pondéré par sa probabilité, selon ce que l’on appelle une matrice de criticité.

Les fondamentaux du développement d’un logiciel critique

Deux aspects sont fondamentaux pour s’assurer qu’un logiciel exécute correctement la fonctionnalité demandée : d’abord,  s’assurer que l’intention est correcte en définissant clairement les exigences et en les vérifiant selon un processus rigoureux. Ensuite, il faut s’assurer que le code corresponde bien avec l’intention. Ceci demande d’assurer la traçabilité entre le code et la conception, de s’assurer de la lisibilité et de la compréhensibilité du développement , de tester le logiciel par rapport aux exigences, et d’utiliser les outils (vérifications, preuves) fournis par le langage.

Comme pour des véhicules, les mesures de sécurité se répartissent en deux classes :

  • La sécurité active qui permet de prévenir l’accident (typage fort, vérifications et preuves du programme).
  • La sécurité passive qui permet de minimiser les conséquences de l’accident (programmation défensive, traitement d’exceptions, mode dégradé).

Standards et certification

Plusieurs normes portant sur les logiciels critiques ont été mises en place selon le domaine d’application. La plus ancienne concerne les logiciels « aviation », et a servi de base aux autres normes : la fameuse DO-178B/ ED-12B, DO-178C. Dans le domaine ferroviaire, c’est la norme EN-50128 qui s’applique. D’autres standards sont  applicables pour l’automobile, les systèmes militaires et spatiaux, le nucléaire et le médical. Les différentes normes imposent des contraintes différentes pour tenir compte des différences dans les domaines d’application, mais toutes concernent principalement les processus à mettre en œuvre.

Il ne suffit pas que le logiciel soit correct. Il faut être capable de prouver que le logiciel est correct. Tout logiciel critique doit se faire certifier (exigence légale) et le certificateur doit être une organisation indépendante. Le bon déroulement de la certification est la responsabilité de l’équipe de sécurité, qui est, elle, interne à la société conceptrice du logiciel.

L’indépendance doit être garantie entre la conception et le développement du logiciel critique. Elle est également requise entre la vérification et les tests afin de repérer toute faille pouvant porter atteinte à la sécurité du logiciel.

En outre, le certificateur doit avoir l’autorité d’arrêter le projet. Quant aux hauts degrés de criticité, le certificateur ne doit pas dépendre hiérarchiquement du chef de projet.

Tests, et au-delà

Bien entendu, les logiciels doivent être testés. Les tests sont fondés sur les exigences : toute exigence doit être testée, mais réciproquement tout test doit correspondre à une exigence. Selon le niveau de criticité, diverses formes de tests de couverture sont exigés : couverture d’instructions, couverture de décisions, couverture de conditions, MC/DC (Modified Condition/Decision Coverage). Plus la couverture est exigeante, plus le nombre de tests requis (et donc le coût) augmente.

Mais si les tests permettent de montrer que le logiciel fonctionne dans certains cas, ils ne peuvent garantir l’absence de défauts dans tous les cas. L’étape suivante qui se développe actuellement est l’utilisation de techniques de preuve de programme au moyen de langages formels.

Pour en savoir plus, rendez-vous sur :

Nous vous proposons des solutions autour du système d’information, système expert, embarqué et édition de logiciels,  nous permettant de répondre à la plupart des exigences du marché. 

Machine Learning ou Deep Learning ?

Machine Learning ou Deep Learning ?

L’intelligence artificielle est rendue possible par plusieurs concepts. Les deux plus importants sont le Machine Learning en ce qui concerne l’apprentissage automatique et le Deep Learning en ce qui concerne l’apprentissage profond. Bien qu’il s’agisse de deux méthodes différentes, ces deux termes sont souvent confondus.

Qu’est-ce que le machine learning ?

C’est une technologie connue pour son ancienneté et sa simplicité. Cette technologie est déployée par le biais d’un système algorithmique qui s’adapte automatiquement en fonction des retours faits par l’utilisateur. En termes simples, la machine apprend sans programmation. Une condition essentielle pour sa mise en œuvre est l’existence de données organisées. Ensuite, la structuration et la catégorisation des données serviront à alimenter le système. Cela lui permettra d’assimiler la classification de nouvelles données similaires. Sur cette base, le système effectue ensuite des actions.

Petit point sur le deep learning ?

Appartenant à la grande famille de l’apprentissage, le Deep Learning s’appuie sur les technologies de réseaux de neurones pour apprendre des fonctionnalités à un niveau supérieur en utilisant les informations fournies. Les données structurées ne sont pas nécessaires pour ce type d’intelligence artificielle. Inspirées du cerveau humain, il s’agit de neurones artificiels organisés en couches où chaque couche contribue à alimenter la couche suivante et permet d’ajuster le modèle mathématique sous-jacent. Les données non structurées ne sont pas un obstacle à son déploiement. Mais il est clair que le Deep learning doit s’appuyer sur un large volume d’informations/ de situations pour être performant dans la détection des similarités.

Quelle est la différence entre les deux ?

La différence entre ces deux technologies d’intelligence artificielle réside dans les résultats produits par les différents algorithmes et les méthodes d’intervention en aval. La première technologie traite des données quantitatives et structurées. Cependant, les retours de prédictions inexactes nécessitent l’intervention d’un ingénieur pour d’éventuels ajustements. En revanche, la seconde, le modèle Deep Learning, dispose d’algorithmes capables de déterminer l’exactitude d’une prédiction sans intervention humaine. Le Deep Learning est aujourd’hui quasiment incontournable dans la reconnaissance de forme, le traitement du langage naturel (NLP), la construction d’un bot ou encore le diagnostic médical.