Point de vue SFIA : Compétences de base en génie logiciel
Compétences de base en génie logiciel
Ce sont les compétences généralement nécessaires aux praticiens en génie logiciel. Notez que toutes les compétences répertoriées ne sont pas requises par tous les ingénieurs logiciels. L'ensemble des compétences requises dépend de la nature de l'organisation employeuse et / ou des rôles et responsabilités spécifiques des ingénieurs logiciels qu'ils emploient.
Définition et gestion des exigences REQM
Élicitation, analyse, spécification et validation des exigences et des contraintes à un niveau permettant le développement et le bon fonctionnement de logiciels, systèmes, processus, produits et services nouveaux ou modifiés. Gestion des exigences pendant tout le cycle de vie (livraison et utilisation) des logiciels, systèmes, processus, produits ou services. Négociation des compromis qui sont à la fois acceptables pour les principales parties intéressées et conformes aux limites budgétaires, techniques, réglementaires et autres. Adoption et adaptation des modèles de cycle de vie pour la gestion des exigences, basés sur le contexte, en sélectionnant une approche prédictive/basée sur le plan ou plus adaptative (itérative et agile) selon le cas.
Conception de systèmes DESN
Conception de systèmes répondant aux exigences spécifiées, compatibles avec les architectures convenues et conformes aux normes de l’entreprise, dans les limites de performance et de faisabilité. Identification et interprétation des concepts pour créer une base pour la construction et la vérification des systèmes. Conception ou sélection des composants. Développement d’un ensemble complet de modèles, propriétés ou caractéristiques détaillés décrits sous une forme permettant leur mise en œuvre. Adoption et adaptation de modèles de cycle de vie pour la conception de systèmes basés sur le contexte du travail, et sélection d’une approche prédictive (axée sur le plan) ou adaptative (itérative/agile).
Conception de logiciels SWDN
Spécification et conception de logiciels pour répondre aux exigences définies conformément aux principes et normes de conception convenus. Définition des logiciels, des composants, des interfaces et des caractéristiques connexes. Identification et interprétation des concepts et modèles pour créer une base aux fins de construction et vérification des logiciels. Évaluation des solutions de rechange et des compromis. Facilitation des décisions de conception respectant les contraintes de conception de systèmes, les normes de conception, la qualité, la faisabilité, l’extensibilité et la maintenabilité. Développement et itération des prototypes/simulations pour permettre des prises de décisions informées. Adoption et adaptation de modèles, outils et techniques pour la conception de logiciels basés sur le contexte du travail, et sélection d’une approche prédictive (axée sur le plan) ou adaptative (itérative/agile).
Programmation/développement de logiciels PROG
Planification, conception, création, modification, vérification, essai et documentation de composants logiciels nouveaux et modifiés, afin d’offrir la valeur convenue aux parties intéressées. Identification, création et application de normes et de processus de sécurité et de développement de logiciels convenus. Adoption et adaptation des modèles de cycle de vie pour le développement de logiciels, basés sur le contexte du travail, et sélection d’une approche prédictive (axée sur le plan) ou adaptative (itérative/agile).
Développement de systèmes embarqués/en temps réel RESD
Définition de l’architecture, conception et développement de logiciels en temps réel, systèmes d’exploitation, outils et systèmes embarqués fiables. Intégration des systèmes informatiques avec une fonction dédiée au sein d’un système mécanique ou électronique plus vaste, souvent avec des contraintes de temps réel, de sûreté, de sécurité et de fiabilité. Cela comprend généralement l’interfaçage avec le matériel, les détecteurs et actionneurs mécaniques pour la surveillance et le contrôle dans des applications telles que celles destinées à l’équipement industriel, automobile, aéronautique, médical, robotique, y compris les dispositifs d’Internet des objets.
Méthodes et outils METL
Définition, adaptation, mise en œuvre, évaluation, mesure, automatisation et amélioration des méthodes et des outils pour soutenir la planification, le développement, les tests, l’exploitation, la gestion et la maintenance des systèmes. Assurance que les méthodes et les outils sont adoptés et utilisés efficacement au sein de toute l’organisation.
Gestion de configuration CFMG
Planification, gestion, contrôle et gouvernance des artefacts et actifs de l’organisation, du projet et des services. Identification, la classification et spécification des éléments de configuration et leurs liens mutuels. Identification de la configuration et de la version des codes sources, logiciels, systèmes, documents et éléments de configuration dépendants du service à des différents moments dans le temps. Contrôle systématique des changements de configuration et maintien de l’intégrité et de la traçabilité de la configuration tout au long du cycle de vie du projet, système ou service. Identification et documentation des caractéristiques physiques et fonctionnelles des éléments de configuration, contrôle des modifications apportées à ces caractéristiques, enregistrement et notification du statut de traitement et d’implémentation du changement. Vérification des éléments de configuration pour déterminer la qualité des données et la conformité aux exigences internes et externes spécifiées.
Tests TEST
Planification, conception, gestion, exécution et rapport des tests, à l’aide des outils et des techniques appropriés et conformément aux normes convenues et aux réglementations spécifiques de l’industrie. Les tests servent à s’assurer que les systèmes, configurations, paquets ou services nouveaux ou modifiés, ainsi que toutes les interfaces, fonctionnent comme spécifié (y compris les exigences de sécurité), et que les risques liés à leur déploiement sont bien compris et documentés. Les tests incluent le processus d’ingénierie, l’utilisation et la mise à jour des logiciels de test (cas de test, scénarios de test, rapports de test, plans de test, etc.) pour mesurer et améliorer la qualité des logiciels testés.
Intégration et construction des systèmes SINT
Planification, exécution et contrôle des activités pour intégrer/construire des composants, sous-systèmes et interfaces destinés à des systèmes, produits ou services opérationnels à livrer aux clients, ou à des fins d’utilisation en interne ou provisoire, par exemple, pour des tests. Développement des capacités organisationnelles pour l’intégration et la construction de systèmes, y compris l’automatisation et l’intégration continues.
Édition et déploiement RELM
Gestion des processus, systèmes et fonctions pour incorporer, construire, tester et déployer les modifications et mises à jour (rassemblées sous forme d’éditions [« releases »]) dans un environnement actif, en établissant ou poursuivant le service spécifié, afin de permettre son transfert contrôlé et efficace à l’équipe de gestion opérationnelle et à la communauté d’utilisateurs. Application de l’automatisation pour améliorer l’efficacité et la qualité des éditions.
Assurance de la qualité QUAS
Processus de s’assurer, par l’entremise d’évaluations et d’examens indépendants, que les méthodes de travail, activités de contrôle de la qualité, processus organisationnels et normes de qualité appropriés sont en place et respectés, et que les meilleures pratiques sont promues dans toute l’organisation. L’assurance qualité rassure l’équipe de gestion interne et les organismes externes, tels que les clients ou organes de réglementation, que les exigences de qualité seront satisfaites. L’assurance qualité peut se rapporter à n’importe quel domaine où des normes de qualité sont appliquées, y compris les produits, données, services et processus commerciaux.
Mesures MEAS
Développement et l’exploitation d’une capacité de mesure pour répondre aux besoins convenus d’information de l’organisation. Planification, mise en œuvre et contrôle des activités pour mesurer les attributs des processus, produits et services dans le but d’évaluer la performance et l’avancement et de fournir des indications et un aperçu des problèmes, questions et risques réels ou potentiels. Identification des exigences, sélection des mesures et des échelles de mesure, établissement des méthodes de collecte et d’analyse des données, définition des valeurs cibles et des seuils. Les mesures peuvent être appliquées à des organisations, des projets, des processus et des produits de travail.
Ingénierie de sécurité SFEN
Application des méthodes appropriées pour assurer la sécurité durant toutes les phases du cycle de vie de développement des systèmes de sécurité, y compris la maintenance et la réutilisation. Cela comprend l’analyse des dangers et des risques, la spécification d’exigences en matière de sécurité, la conception architecturale des systèmes de sécurité, la conception de méthodes formelles, la validation et la vérification de la sécurité et la préparation des cas de sécurité.
Soutien des applications ASUP
Prestation de services de maintenance et de soutien des applications, soit directement auprès des utilisateurs des systèmes, soit à des fonctions de prestation de services. Le soutien comprend généralement l’investigation et la résolution des problèmes, et éventuellement, la surveillance de la performance. La résolution des problèmes peut se faire de plusieurs façons : conseils ou formation des utilisateurs, conception de corrections (permanentes ou temporaires) aux défaillances, implémentation de modifications génériques ou spécifiques au site, mise à jour de la documentation, manipulation des données ou définition d’améliorations. Le soutien requirt généralement une étroite collaboration avec les développeurs du système et/ou des collègues spécialisés dans différents domaines, tels que l’administration de la base de données ou la gestion de réseau.