0% ont trouvé ce document utile (0 vote)
22 vues7 pages

Chapitre 1

Le chapitre introduit le Génie Logiciel (GL) en définissant ses objectifs, le cycle de vie d'un logiciel et les critères de qualité d'un logiciel. Il décrit les différentes étapes du cycle de vie, de l'étude d'opportunité à la maintenance, en soulignant l'importance de la spécification, de la conception, du codage et des tests. Enfin, il aborde les concepts de cohésion et de couplage pour garantir une conception maintenable.

Transféré par

6hsdzntfnq
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues7 pages

Chapitre 1

Le chapitre introduit le Génie Logiciel (GL) en définissant ses objectifs, le cycle de vie d'un logiciel et les critères de qualité d'un logiciel. Il décrit les différentes étapes du cycle de vie, de l'étude d'opportunité à la maintenance, en soulignant l'importance de la spécification, de la conception, du codage et des tests. Enfin, il aborde les concepts de cohésion et de couplage pour garantir une conception maintenable.

Transféré par

6hsdzntfnq
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

Objectifs du chapitre :

 Connaitre l’objectif du module


 Définir : GL et logiciel
 Comprendre le cycle de vie d’un logiciel
 Connaitre les différents modèles de cycle de vie

I-1 Définitions

 Le terme Génie Logiciel (en anglais software engineering) désigne l’ensemble des méthodes, des
techniques et outils concourant à la production d’un logiciel, au delà de la seule activité de
programmation.

 Le génie logiciel est donc l’art de spécifier, de concevoir, de réaliser, et de faire évoluer, avec des
moyens et dans des délais raisonnables, des programmes, des documentations et des procédures de
qualité en vue d’utiliser un ordinateur pour résoudre certains problèmes.

I-2 Qu’est ce qu’un logiciel ?

Par logiciel on n’entend pas seulement l’ensemble des programmes informatiques (du code)
associés à une application ou à un produit, mais également un certain nombre de documents se rapportant
à ces programmes et nécessaires à leur installation, utilisation, développement et maintenance :
spécification, schémas conceptuels, jeux de tests, mode d’emploi, etc.

Qualité exigée d’un logiciel

Si le génie logiciel est l’art de produire de bons logiciels, il est par conséquent nécessaire de fixer les
critères de qualité d’un logiciel.

 La validité : C’est l’aptitude d’un produit logiciel à remplir exactement ses fonctions, définies
par le cahier des charges et les spécifications.
 La fiabilité (ou robustesse) : C’est l’aptitude d’un produit logiciel à fonctionner dans des
conditions anormales (quelque soit l’entrée par exemple).
 L’extensibilité : C’est la facilité avec laquelle un logiciel se prête à une modification ou à une
extension des fonctions qui lui sont demandées.
 La réutilisabilité : C’est l’aptitude d’un logiciel à être réutilisé, en tout ou en partie, dans de
nouvelles applications.
 La compatibilité : C’est la facilité avec laquelle un logiciel peut être combiné avec d’autres
logiciels.
 L’efficacité : On dit d’un logiciel qu’il est efficace s’il utilise les ressources d’une manière
optimale (comme la mémoire).
 L’intégrité : C’est l’aptitude d’un logiciel à protéger son code et ses données contre des accès non
autorisé.
 La facilité d’emploi : Elle est liée à la facilité d’apprentissage, d’utilisation, d’interprétation des
erreurs et de rattrapage en cas d’erreur d’utilisation.
 La maintenabilité : Elle correspond au degré de facilité de la maintenance d’un produit logiciel.

Chargé de module : Dr BELAGRA


1
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

I-3 Cycle de vie d’un logiciel

I-3-1 Définition

Le cycle de vie du logiciel est la période de temps s’étalant du début à la fin du processus du
logiciel. Il commence donc avec la proposition ou la décision de développer un logiciel et se termine avec
sa mise hors service.
Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de maîtriser la qualité du produit, les
délais de sa réalisation et les coûts associés.

I-3-2 Étapes du cycle de vie

Il existe de nombreux modèles de cycle de vie, les plus courants comportent les phases suivantes :
a) Étude d’opportunité (par des économistes en général)
b) Définition et analyse des besoins, spécification (par le commanditaire et des
informaticiens)
c) Conception architecturale et élaboration des tests d’intégration
d) Conception détaillée et élaboration des tests unitaires
e) Codage (production du code source)
f) Tests unitaires et d’intégration
g) Implantation chez le commanditaire, essais avec les utilisateurs et validation
h) Formation des utilisateurs, utilisation, maintenance, évolution

Remarque : Ces étapes ne doivent pas être vues comme se succédant les unes aux autres de façon
linéaire.
Il y a en général (toujours) des retours sur les phases précédentes, en particulier si les tests ne réussissent
pas ou si les besoins évoluent.

a) Étude d’opportunité ou étude préalable

L'étude d'opportunité, aussi appelée étude préalable, est une phase cruciale dans le processus de
développement d'un logiciel. Elle vise à déterminer si un projet est faisable, rentable et pertinent avant
d'entamer le développement.

Objectif : Évaluer si le projet mérite d'être poursuivi en analysant les besoins, les risques, les coûts, les
bénéfices, et les impacts potentiels. L'étude d'opportunité permet de prendre une décision éclairée sur le
lancement ou non du projet.

Les composantes typiques de l'étude sont :

 Analyse des besoins : Identification des problèmes à résoudre et des attentes des utilisateurs.
 Étude du marché : Analyse de la concurrence et des alternatives existantes.
 Évaluation des coûts et bénéfices
 Analyse des risques : Identification des obstacles et des défis potentiels.
 Impact sur l'organisation : Étude des changements organisationnels requis.

Chargé de module : Dr BELAGRA


2
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

Exemple : Création d'une application mobile pour une banque

b) Analyse (Spécification) : contrat entre client et fournisseur

Lors de la phase d’analyse, également appelée phase de spécification ou spécification des


exigences, on analyse les besoins de l’utilisateur ou du système englobant et on définit ce que le logiciel
devra faire : les fonctionnalités, les contraintes et les critères de qualité. Le résultat de la phase
d’analyse est consigné dans un document appelé cahier des charges du logiciel.

Objectif : Traduire les besoins identifiés lors de l'analyse en spécifications détaillées et compréhensibles,
tant pour les développeurs que pour les parties prenantes.

Types de spécifications

 Spécifications fonctionnelles : Ce que le logiciel doit faire.


Exemples : fonctionnalités de l'application, interactions utilisateur, calculs spécifiques.
 Spécifications non fonctionnelles : Les contraintes de qualité, telles que les performances, la
sécurité, la compatibilité, l'évolutivité.
 Spécifications techniques : Les aspects techniques liés à l'infrastructure, la base de données, les
langages de programmation, etc.

Cahier des charges : Le cahier des charges sert de guide tout au long du projet pour s'assurer que le
produit final correspond aux attentes. Il sert de base contractuelle entre le client et le prestataire,
garantissant que le produit final correspond aux exigences établies.
Les besoins changent inévitablement. Le cahier des charges doit donc être conçu de manière à être
facilement modifiable.

c) La conception du logiciel : contrat liant les membres de l'équipe

La phase d’analyse est suivie de la phase de conception, généralement décomposée en deux phases
successives :
 Conception générale (préliminaire)

C’est l'étape où l'architecture globale du système est définie. Il s'agit de déterminer les grandes lignes
de la solution sans entrer dans les détails de l'implémentation.
L’objectif de cette étape est d’Identifier les principales composantes du système, leur rôle et leurs
interactions.
 Identifier les principales fonctionnalités nécessaires à l'application.
 Définir l'architecture globale de l'application.
 Prendre des décisions technologiques générales (plateformes, langages de programmation,
etc.).
 Spécifier les interfaces entre les différents modules de l'application.

Le résultat de cette démarche est un document de conception générale.

Chargé de module : Dr BELAGRA


3
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

 Conception détaillée

La conception détaillée affine la conception générale. Elle commence par décomposer les entités
découvertes lors de la conception générale en entités plus élémentaires. Cette décomposition doit être
poursuivie jusqu’au niveau où les entités sont faciles à implémenter et à tester, c’est-à-dire correspondent
à des composants logiciels élémentaires.

On peut à cette étape utiliser le langage UML (Unified Modeling Language) pour la conception
détaillée d'une application. UML est un langage de modélisation standardisé qui permet de représenter
visuellement les différentes parties d'un système logiciel et leurs interactions. Il est particulièrement utile
pour illustrer la structure et le comportement des modules, ainsi que les relations entre eux.

Avantages d'utiliser UML pour la conception détaillée

 Visualisation claire : Les diagrammes UML offrent une représentation visuelle des éléments du
système et de leurs interactions, ce qui facilite la compréhension.
 Communication facile : Les diagrammes UML sont des standards que les équipes de
développement, d'architecture et de gestion de projet peuvent facilement comprendre et utiliser
pour communiquer.
 Documentation structurée : Les diagrammes peuvent servir de documentation du système,
aidant à la maintenance et à l'évolution du logiciel.

Qualité d’une conception

La composante la plus importante de la qualité d’une conception est la maintenabilité. C’est en


maximisant la cohésion à l’intérieur des composants et en minimisant le couplage entre ces composants
que l’on parviendra à une conception maintenable.

Cohésion

La cohésion mesure dans quelle mesure les éléments d'un module ou d'une classe sont liés entre eux. Un
module est dit cohérent lorsque ses composants travaillent ensemble pour réaliser une seule tâche ou un
groupe de tâches étroitement liées. Plus la cohésion est élevée, plus le module est considéré comme de
qualité.

Types de cohésion

1. Cohésion fonctionnelle : Tous les éléments d'un module sont nécessaires pour réaliser une seule
tâche.
2. Cohésion séquentielle : Les éléments d'un module sont liés par des dépendances dans le flux de
données.
3. Cohésion communicative : Les éléments d'un module partagent des données.

Chargé de module : Dr BELAGRA


4
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

Couplage

Le couplage mesure le degré d'interdépendance entre les différents modules ou classes. Un système avec
un couplage faible est considéré comme de meilleure qualité car les modules peuvent être modifiés,
testés et maintenus indépendamment les uns des autres.

Types de couplage

1. Couplage de contenu : Un module accède directement aux données internes d'un autre module.
2. Couplage commun : Deux modules utilisent des données globales partagées.
3. Couplage de contrôle : Un module passe des informations de contrôle à un autre module.
4. Couplage de données : Un module utilise uniquement les données passées par un autre module.

d) Implémentation

Après la conception détaillée, on peut passer à la phase d’implémentation, également appelée phase de
construction, phase de réalisation ou phase de codage. Lors de cette phase, la conception détaillée est
traduite dans un langage de programmation.
La phase d'implémentation comprend plusieurs aspects essentiels pour assurer la qualité et la robustesse
du produit final.
 Réutilisation
La réutilisation consiste à utiliser des composants, du code ou des bibliothèques existants pour accélérer
le développement et réduire les erreurs. Cela permet également de se concentrer sur les parties uniques de
l’application.

 Gestion des configurations

La gestion des configurations concerne le suivi et la gestion des versions des différents composants et
paramètres de l'application (paramètres et variables qui influencent le comportement de l’application dans
différents contextes).

 Développement hôte-cible

Le développement hôte-cible se réfère à la pratique de développer et tester le code sur un environnement


(le système hôte) différent de l'environnement de production (le système cible). Cette méthode est
courante pour des applications mobiles, où le code est souvent développé sur des ordinateurs avant d'être
testé sur des appareils mobiles réels.

Chargé de module : Dr BELAGRA


5
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

e) Test unitaire

La phase d’implémentation est suivie de la phase de test. Durant cette phase, les composants du logiciel sont
évalués et intégrés, et le logiciel lui-même est évalué pour déterminer s’il satisfait la spécification élaborée lors de
la phase d’analyse.
Le test est une activité importante dont le but est d’arriver à un produit « zéro défaut »
Le test est l’exécution ou l’évaluation d’un système ou d’un composant, par des moyens manuels ou automatiques,
pour vérifier qu’il répond à ses spécifications ou identifier les différences entre les résultats attendus et les résultats
obtenus.
Lors des tests unitaires (unit test), on évalue chaque composant individuellement pour s’assurer qu’il est conforme
à la conception détaillée. Si ce n’est déjà fait, il faut élaborer pour chaque composant un jeu de données de tests.
Il faut ensuite exécuter le composant avec ce jeu, comparer les résultats obtenus aux résultats attendus, et consigner
le tout dans le document des tests unitaires. S’il s’avère qu’un composant comporte des erreurs, il est renvoyé à son
auteur, qui devra diagnostiquer la cause de l’erreur puis corriger le composant. Le test unitaire de ce composant est
alors à reprendre.

f) Intégration et test d’intégration

Après avoir effectué avec succès les tests unitaires de tous les composants, on peut procéder à leur
assemblage, qui est effectué pendant la phase d’intégration. Pendant cette phase, on vérifie également la
bonne facture des composants assemblés, ce qu’on appelle le test d’intégration. On peut donc distinguer
les actions suivantes :
 construire par assemblage un composant à partir de composants plus petits ;
 exécuter les tests pour le composant assemblé et enregistrer les résultats ;
 comparer les résultats obtenus aux résultats attendus ;
 si le composant n’est pas conforme, engager la procédure de modification ;
 si le composant est conforme, rédiger les comptes-rendus du test d’intégration et archiver sur
support informatique les sources, objets compilés, images exécutables, les jeux de tests et leurs
résultats.

g) Installation

Après avoir intégré le logiciel, on peut l’installer dans son environnement d’exploitation, ou dans un
environnement qui simule cet environnement d’exploitation, et le tester pour s’assurer qu’il se comporte
comme requis dans la spécification élaborée lors de la phase d’analyse.
Cette phase s’appelle la phase d’installation. Les tests effectués durant cette phase prennent des noms
variés selon leur nature. On parle parfois de validation. Si l’on veut insister sur le fait que ces tests
doivent préparer la décision du mandant d’accepter ou non le logiciel, on utilise les termes test
d’acceptance, test de recette ou test de réception. Enfin, s’il s’agit de montrer le comportement et les
performances du logiciel dans son environnement d’exploitation réel, le terme test d’exploitation est
d’usage.

Chargé de module : Dr BELAGRA


6
Module GL (Génie Logiciel) Chapitre I : Introduction au GL 3MI

h) Maintenance

Le logiciel est maintenant employé dans son environnement opérationnel, son comportement est surveillé
et, si nécessaire, il est modifié. Cette dernière activité s’appelle la maintenance du logiciel (software
maintenance).
Il peut être nécessaire de modifier le logiciel pour corriger des défauts, pour améliorer ses performances
ou autres caractéristiques, pour adapter le logiciel à un nouvel environnement ou pour répondre à des
nouveaux besoins ou à des besoins modifiés. On peut donc distinguer entre la maintenance corrective, la
maintenance perfective et la maintenance adaptative. Sauf pour des corrections mineures, du genre
dépannage, la maintenance exige en fait que le cycle de développement soit réappliqué, en général sous
une forme simplifiée.
 Maintenance corrective
– Corriger les erreurs : défauts d’utilisabilité, de fiabilité...
– Identifier la défaillance, le fonctionnement
– Localiser la partie du code responsable
– Corriger et estimer l’impact d’une modification
– Les coûts de correction augmentent exponentiellement avec le délai de détection
– Corriger et estimer l’impact d’une modification
– La maintenance corrective donne lieu à de nouvelles livraisons
 Maintenance adaptative
– Ajuster le logiciel pour qu’il continue à remplir son rôle compte tenu du l’évolution des environnements
d’exécution
– Ex : changement de SGBD, de machine, de taux de TVA, an 2000, euro...
 Maintenance perfective, d’extension
– Accroître/améliorer les possibilités du logiciel
– Ex : les services offerts, l’interface utilisateur, les performances...
– Donne lieu à de nouvelles versions

Chargé de module : Dr BELAGRA


7

Vous aimerez peut-être aussi