Concevoir et développer des systèmes : Différence entre versions
m (1 version) |
m |
||
Ligne 1 : | Ligne 1 : | ||
+ | |||
+ | <div align="right">J.L. Bernaudin [http://www.assopascaline.fr Pasc@line]</div> [[Catégorie:Métiers de l'informatique]] | ||
+ | |||
===Cycle de vie=== | ===Cycle de vie=== | ||
Version actuelle datée du 21 août 2012 à 15:06
Sommaire
Cycle de vie
Un logiciel n’est pas figé. Sa naissance et son évolution s’inscrivent dans le « cycle de vie » du logiciel qui s’articule en étapes successives d’importance et de durée variables selon la nature du sujet :
- Une étude préalable permet en de juger de l’ampleur d’un projet d’informatisation et d’évaluer son opportunité dans le contexte économique de l’entreprise.
- La phase suivante est celle de l’expression des besoins débouchant sur l’élaboration d’un cahier des charges.
- Apartir de celui-ci, seront définies les spécifications détaillées qui serviront de cadre au développement du logiciel.
- On peut alors aborder la phase de développement qui produit du code.
- Commence alors une phase de validation – c’est-à-dire de vérification de la conformité du système aux divers niveaux de spécification – s’appuyant sur des tests plus ou moins poussés selon la démarche d’assurance-qualité retenue.
- Il est alors temps de passer à l’implantation (ou mise en place) du système ou du logiciel.
- La phase finale est celle de la recette qui voit le client apprécier la conformité de ce qui lui est livré à sa commande initiale.
La notion de cycle vient du fait qu’à la fin de chaque phase, les contrôles effectués peuvent conduire à repartir en arrière pour itérer sur tout ou partie des phases précédentes, en raison d’anomalies détectées ou de changement impératifs de spécifications.
Une fois que le système ou le logiciel a fait l’objet d’une recette, il entre en phase de maintenance.
Il est essentiel de noter que cette articulation en étapes s’applique à la vie de n’importe quel logiciel, qu’il s’agisse de la création d’un progiciel, d’une application spécifique, d’un logiciel embarqué ou d’un jeu vidéo…
Développement
Le développement d’un système ou d’un logiciel se fonde sur les principes d’architecture technique retenus et sur les spécifications détaillées, qu’il convient de transformer en code compréhensible par la machine.
Pour développer un logiciel, il va falloir, en utilisant des langages ou interfaces de programmation appropriés, décrire pour la machine les données à manipuler et les règles de traitement à leur appliquer, traitements arithmétiques, logiques ou de transfert vers ou depuis un réseau ou des périphériques. C’est l’objet de la phase de codage ou production de code.
La rédaction de la documentation fait partie du développement.
Les ingénieurs et techniciens en charge de cet ensemble de tâches sont fréquemment désignés sous te terme générique de développeurs.
Implantation (ou mise en service) de systèmes ou de logiciels
Cette phase correspond :
- Au chargement dans la mémoire de la machine :
- Des modules programmés et de leur interfaçage avec le système d’exploitation et ses extensions,
- Des fichiers et bases de données destinés à être stockés localement, par opposition à ceux qui seront accédés par l’intermédiaire d’un réseau,
- De la documentation accessible en ligne.
- Ala prise en mains du système livré dans un environnement réel d’exploitation (on parle également alors de mise en exploitation) :
- utilisateur d’un système individuel représenté par un panel d’utilisateurs ou par le service qualité chez un éditeur de logiciels ;
- service de production informatique dans un environnement d’entreprise.
Maintenance
On distingue deux niveaux de maintenance d’un système, quel qu’il soit :
- La maintenance curative a pour but de corriger des anomalies résiduelles qui ne seraient pas apparues lors de la validation. Le ou les programmes fautifs sont corrigés par application de « patches » (sorte de pansements logiciels substituant des instructions correctes à celles qui créaient la situation d’erreur, ou par diffusion d’une version entièrement remaniée qui doit être implantée à la place de la précédente.
- La maintenance évolutive qui vise à introduire des modifications liées au changement de contexte dans l’entreprise (fusion/acquisition, nouvelles procédures, changements légaux ou règlementaires, etc.) ou à l’évolution des possibilités technologiques.
Pour les logiciels, la gestion de telles mises à jour nécessite une gestion planifiée par versions complètes (configurations logicielles) pour éviter de créer des « monstres » comportant des morceaux de logiciel incohérents.
Les différents matériels en jeu dans les systèmes font eux aussi l’objet d’opérations de maintenance de trois natures, curative, évolutive ou préventive (visant à empêcher une panne de se produire en remplaçant par anticipation des sous-ensembles trop usagés).
Spécification
Une spécification précise dans le détail ce qui est attendu d’une pièce mécanique, d’un produit chimique ou, plus généralement d’un système.
Dans le domaine du numérique, les spécifications découlent de l’analyse détaillée d’un cahier des charges pour préciser le fonctionnement organisationnel d’un processus, c’est à dire le détail des tâches qui vont s’enchaîner. On distinguera les spécifications fonctionnelles qui vont couvrir les besoins fonctionnels et les spécifications techniques qui vont s’attacher à la satisfaction des besoins non fonctionnels.
Dans le cycle de vie d’un projet, la phase de spécification correspond à la rédaction des spécifications à partir du cahier des charges.
Test
Il est essentiel, lorsque l’on écrit un programme informatique, de vérifier qu’il fonctionne correctement.
Les tests sont de deux natures :
- Les tests unitaires, dans lesquels le programme est lancé dans un environnement isolé. Cette validation porta à la fois sur :
- la conformité aux spécifications techniques : le programme doit s’exécuter sans interruption imprévue et respecter d’éventuelles contraintes de temps d’exécution ;
- la conformité aux spécifications fonctionnelles : le programme doit fournir les résultats prévus.
- Les tests d’intégration permettent de s’assurer que l’interaction du programme avec les autres constituants du système d’information ou du logiciel embarqué ne provoque pas d‘anomalies.
Ces tests sont conduits en utilisant des jeux d’essai, ensemble de données représentatives constituées généralement à partir d’extraits de bases de données réelles.
- Les tests de mise en production permettent de s’assurer que le logiciel considéré n’a pas d’influence néfaste sur les applications exploitées au quotidien.