Chapitre 1 Introduction 1.1 LE LOGICIEL 1.1.1. L’importance du logiciel Beaucou
Chapitre 1 Introduction 1.1 LE LOGICIEL 1.1.1. L’importance du logiciel Beaucoup d’aspects de notre quotidien ne peuvent être imaginés aujourd’hui sans logiciel. C’est le cas entre autres des domaines du transport, du commerce, des communications, de la médecine, des finances ou des loisirs. Cette omniprésence du logiciel fait que nos vies et le fonctionnement de nos sociétés dépendent fortement de sa qualité. Les erreurs logicielles peuvent causer de vrais désastres, économiques ou sanitaires. Un exemple emblématique est l’explosion de la première fusée Ariane 5 en 1996, qui a coûté plus d’un demi-milliard de dollars, à cause du dépassement de capacité d’une variable lors d’un calcul. Dans un registre différent, tout le monde se souvient de la grande peur du « bug de l’an 2000 » et de son coût astronomique, estimé entre 300 et 5000 milliards de dollars ! 1.1.2. La diversité du logiciel Il existe une grande variété de logiciels et de nombreuses manières de les classer. Une première différenciation oppose les logiciels « génériques », ou progiciels, qui sont vendus en grand nombre comme des produits de consommation, aux logiciels « spécifiques » qui sont développés pour un contexte et un client particulier. Une seconde différenciation repose sur la nature de la dépendance entre les logiciels et leurs environnements. Elle distingue trois classes : 2 1 • Introduction – les logiciels « autonomes » (standalone), comme les traitements de texte, les logiciels de calcul ou les jeux, – les logiciels qui gèrent des processus (process support), aussi bien industriels que de gestion, – les logiciels « embarqués » dans des systèmes (embedded), comme dans les transports, la téléphonie ou les satellites. Dans cette dernière classe, on a coutume de parler plutôt de « développement système » que de « développement logiciel », car les problématiques matérielles et logicielles y sont indissociables. Une troisième différenciation sépare les logiciels isolés des « lignes de produits logiciels ». Celles-ci regroupent une famille de logiciels présentant de fortes similarités et un même domaine d’application, comme des applications pour téléphones mobiles. Elles sont développées à partir d’éléments réutilisables (assets) qui peuvent être des exigences, des modèles, des codes (composants), des plans de tests, etc. Dans les grandes organisations, on particularise souvent ce qu’on appelle les « logiciels du patrimoine » (legacy software). Ce sont les applications les plus anciennes, complexes et peu documentées, auxquelles on touche le moins possible tant qu’elles remplissent correctement leurs fonctions en général vitales pour l’organisation. Enfin les « logiciels web », ou « applications web », sont souvent considérés comme une catégorie à part. Ce sont des logiciels hébergés sur un serveur web et manipulables via les réseaux, Internet ou réseaux locaux, grâce à un navigateur web. On peut citer comme particularités notables : – les accès concurrents qu’ils subissent, avec une charge difficilement prédictible, – leurs exigences élevées de performance, de disponibilité et de sécurité, – la prédominance des données par rapport aux traitements, – leurs besoins fréquents d’évolution, – l’importance de l’ergonomie et de l’esthétique dans leur conception. On comprend que la notion de qualité et les exigences qui s’y attachent peuvent varier considérablement pour toute cette diversité de logiciels. 1.1.3. La complexité du logiciel Techniquement, le terme « logiciel » désigne un riche ensemble d’artefacts incluant : – des codes sources et des exécutables, – des programmes et des données de test, – des fichiers de configuration, – des documentations « externes » à destination des utilisateurs, – des documentations « internes » à destination de l’équipe de développement, etc. 1.2 Le développement logiciel 3 1.2 LE DÉVELOPPEMENT LOGICIEL 1.2.1. Les acteurs du développement Le développement logiciel est une activité intellectuelle à forte composante humaine (human- intensive). En 2013, le secteur du conseil, des études et des services informatiques en France comptait 575 000 emplois, hors fonction publique d’État. Pendant le développement d’un logiciel, outre les membres de l’équipe de développement proprement dite, les autres acteurs à considérer sont le client (l’investisseur), les utilisateurs finaux et d’éventuels sous-traitants. 1.2.2. Les contextes du développement Le logiciel peut être développé dans plusieurs contextes assez différents. – Chez des éditeurs de logiciels qui commercialisent les progiciels qu’ils développent. – Dans des Sociétés de service en ingénierie informatique (SSII), également nommées Entreprises de services du numérique (ESN), qui répondent aux besoins d’externalisation des projets informatiques, en développant des logiciels pour le compte de leurs clients. – En interne, dans des organisations de toutes natures, entreprises, administrations et associations. – Sur Internet, au moins en partie par des développeurs bénévoles, pour les logiciels libres. 1.2.3. Les activités du développement Schématiquement, le développement logiciel consiste à transformer une idée ou un besoin en un logiciel fonctionnel. L’idée est produite par un client ou maître d’ouvrage (MOA). Le logiciel correspondant est développé par un fournisseur ou maître d’œuvre (MOE), puis exploité par des utilisateurs finaux. Lorsqu’il s’agit d’entités on parle de Maîtrise d’ouvrage (MOA) et de Maîtrise d’œuvre (MOE). La MOA peut être assistée en externe et en interne, souvent par d’anciens informaticiens ayant une bonne pratique de la conduite des projets : on parle de MOAD, pour maîtrise d’ouvrage déléguée. FIGURE 1.1 Le développement logiciel Comme cela sera détaillé dans la suite de l’ouvrage, le développement logiciel comprend en amont une phase centrée sur les besoins (ou exigences). Il s’agit pour toutes les parties prenantes d’un projet informatique de s’accorder sur l’ensemble des besoins auxquels devra répondre le système ou logiciel à construire. Le terme d’« ingénierie des besoins » ou « ingénierie des exigences » (requirements engineering) caractérise toutes les activités liées 4 1 • Introduction à la gestion des besoins, y compris celles qui se poursuivent tout au long du développement, comme la gestion des évolutions des besoins et de leur traçabilité. Le présent ouvrage est plus précisément centré sur les phases en amont du développement, à savoir le recueil, l’analyse, la spécification, la revue et le classement par priorités des besoins, qui précèdent la conception du logiciel. Cet ensemble d’activités est désigné dans la suite de l’ouvrage par l’expression « analyse des besoins » ou encore plus simplement par le terme « analyse ». Comme la manière de conduire une analyse dépend fortement du style de développement suivi, l’ouvrage commence par une description en profondeur des différents styles et processus de développement logiciel. FIGURE 1.2 Les thèmes principaux de l’ouvrage 1.3 LA QUALITÉ DU LOGICIEL La notion de « qualité du logiciel » n’est pas simple à définir car elle est multiforme et dépend du point de vue adopté, client ou fournisseur. Pour le client, le logiciel doit répondre à ses besoins (adéquation), être efficace, facile d’apprentissage et d’utilisation (ergonomie), être fiable, robuste et sûr, être peu coûteux et livré dans les délais. Pour le fournisseur, le coût et la durée du développement sont généralement primordiaux, de même que la facilité d’extension, de maintenance, d’adaptation et d’évolution, ainsi que la portabilité et l’interopérabilité. Il est important de ne pas confondre les termes qui caractérisent les différentes formes de qualité. La signification des plus courants d’entre eux est rappelée dans le tableau suivant. Terme français Terme anglais Signification Disponibilité Availability Capacité à délivrer le service attendu Fiabilité Reliability Capacité à maintenir la continuité du service attendu Sécurité Security Absence de conséquences catastrophiques Sûreté Safety Protection contre les actions illicites Intégrité Integrity Absence de d’altérations inapropriées Confidentialité Confidentiality Absence de divulgations non autorisées Maintenabilité Maintainability Aptitude aux réparations et aux évolutions 1.4 La « crise du logiciel » 5 On résume parfois la variété de ce qui est attendu d’un logiciel par le sigle CQFD, pour Coûts, Qualité, Fonctionnalités, Délais. Cette vision simplifiée est suffisante pour montrer les tensions qui peuvent exister entre les principaux critères. Idéalement, il faudrait pouvoir faire du logiciel « chic et pas cher » (F élevé et C faible), ce qui n’est pas simple, et de le faire « vite et bien » (D faible et Q élevé), ce qui n’est également pas évident ! Comme cela a déjà été évoqué, tous ces critères sont bien entendu à pondérer en fonction du type de logiciel à développer : du logiciel critique pour la sécurité (safety critical), dont les défaillances peuvent avoir des conséquences désastreuses en termes humains, économiques ou environnementaux, jusqu’au logiciel « jetable », beaucoup moins exigeant. 1.4 LA « CRISE DU LOGICIEL » 1.4.1. Le constat L’expression « crise du logiciel » est employée depuis la fin des années 1960 pour rendre compte de toutes les difficultés associées à sa production : délais de livraison et budgets non respectés, non-satisfaction de certains besoins des clients ou utilisateurs, difficultés d’utilisation et de maintenance, etc. De nombreuses études rendent compte de ce phénomène en classant les développements en trois grandes catégories : – Succès : quand le logiciel est livré à temps, sans dépassement de budget et avec toutes les fonctionnalités initialement prévues. – Mitigé : quand le logiciel est livré et opérationnel, mais avec moins de fonctionnalités qu’attendu ou un dépassement notable de budget ou des délais. – Échec : quand le logiciel est uploads/Management/ chapitre-i-ingenierie-logiciel.pdf
Documents similaires
-
19
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 08, 2023
- Catégorie Management
- Langue French
- Taille du fichier 0.2343MB