Académique Documents
Professionnel Documents
Culture Documents
com
Génie logiciel
Didacticiel
Apprentissage tout simplement facile
A propos du tutoriel
Public
Ce tutoriel est conçu pour les lecteurs poursuivant une formation en développement de logiciels
domaine et tous les lecteurs enthousiastes.
Conditions préalables
Ce tutoriel est conçu et développé pour les débutants absolus. Cependant, une connaissance des
systèmes logiciels, du processus de développement de logiciels et des principes fondamentaux de
l'informatique serait bénéfique.
Tout le contenu et les graphiques publiés dans cet e-book sont la propriété de Tutotorials Point (I)
Pvt. Il est interdit à l'utilisateur de cet e-book de réutiliser, conserver, copier, distribuer ou republier
tout ou partie du contenu de cet e-book de quelque manière que ce soit sans le consentement écrit
de l'éditeur.
Nous nous efforçons de mettre à jour le contenu de notre site Web et de nos tutoriels aussi rapidement et aussi
précisément que possible, cependant, le contenu peut contenir des inexactitudes ou des erreurs. Point Tutoriels (
JE)Pvt. Ltd. ne fournit aucune garantie concernant l'exactitude, l'actualité ou l'exhaustivité de notre site Web ou
de son contenu, y compris ce didacticiel. Si vous découvrez des erreurs sur notre site Web ou dans ce tutoriel,
veuillez nous en informer àcontact@tutorialspoint.com
Table des matières
TUTORIEL D'INGÉNIERIE LOGICIELLE .................................................. ..............................................JE
je
Gestion de projet................................................................ .................................................. .......................17
SLOGICIELMGESTIONUNCTIVITÉS.................................................. .................................................. ..17
PPROJETPLANNER.................................................. .................................................. ..................................17
SSE DÉBROUILLERMGESTION.................................................. .................................................. .......................17
PPROJETESTIMATION.................................................. .................................................. .......................18
PPROJETESTIMATIONJTECHNIQUES.................................................. .................................................. ......19
Technique de décomposition .................................................. .................................................. ...........19
Technique d'estimation empirique .................................................. .................................................. ...19
PPROJETSPLANIFICATION.................................................. .................................................. .......................20
RGESTION DES ESOURCES.................................................. .................................................. ....................20
PPROJETRISKMGESTION.................................................. .................................................. ..............21
Processus de gestion des risques .................................................. .................................................. ...........21
PPROJETEXÉCUTION ETMSURVEILLANCE.................................................. .................................................. 21
PPROJETCCOMMUNICATIONMGESTION.................................................. .............................................22
CCONFIGURATIONMGESTION.................................................. .................................................. .........23
Ligne de base .................................................. .................................................. .......................................23
Le contrôle des changements................................................ .................................................. ................................23
PPROJETMGESTIONJOOLS.................................................. .................................................. ...........24
Diagramme de Gantt ................................................ .................................................. ..................................24
Diagramme PERT .................................................. .................................................. ....................................25
Histogramme des ressources .................................................. .................................................. .......................25
Analyse du chemin critique .................................................................. .................................................. .......................26
ii
LES BASES DE LA CONCEPTION DU LOGICIEL .................................................. .................................................. ........ 36
SLOGICIELDSIGNATURELNIVEAUX.................................................. .................................................. ................36
MODULARISATION.................................................. .................................................. .............................37
CMONNAIE.................................................. .................................................. ..................................37
Exemple................................................. .................................................. .......................................37
COUBLAGE ETCOHESION.................................................. .................................................. ................38
COHESION.................................................. .................................................. .............................................38
COUBLAGE.................................................. .................................................. .......................................39
DSIGNATUREVÉRIFICATION.................................................. .................................................. .......................39
iii
gRAPHIQUEtuSÉRjeINTERFACE.................................................. .................................................. ...............60
Éléments de l'interface graphique .................................................. .................................................. ..............................60
Composants de l'interface graphique spécifiques à l'application .................................. ...............................................61
tuSÉRjeINTERFACEDSIGNATUREUNCTIVITÉS.................................................. .................................................. .....62
IUG IMISE EN ŒUVREJOOLS.................................................. .................................................. .............64
Exemple................................................. .................................................. .......................................64
tuSÉRjeINTERFACEgRÈGLES ANCIENNES.................................................. .................................................. ..........64
iv
Facteurs du monde réel affectant les coûts de maintenance .................................. ................................88
Facteurs finaux du logiciel affectant le coût de maintenance .................................. ................................89
MENTRETIENUNCTIVITÉS.................................................. .................................................. ................89
SLOGICIELRE-INGÉNIERIE.................................................. .................................................. ...............90
Processus de réingénierie .................................................. .................................................. ..................91
Ingénierie inverse .................................................. .................................................. .......................92
Restructuration du programme .................................................. .................................................. ................92
Ingénierie avancée .................................................................. .................................................. ....................92
CRÉUTILISATION DES COMPOSANTS.................................................. .................................................. ....................93
Exemple................................................. .................................................. .......................................93
Processus de réutilisation .................................................. .................................................. ..............................93
v
Tutoriel de génie logiciel
Présentation du logiciel
1
Comprenons ce que signifie le génie logiciel. Le terme est composé de deux mots, logiciel
et ingénierie.
Logicielest plus qu'un simple code de programme. Un programme est un code exécutable,
qui sert à des fins de calcul. Le logiciel est considéré comme une collection de code de
programmation exécutable, de bibliothèques associées et de documentations. Le logiciel,
lorsqu'il est conçu pour une exigence spécifique, est appeléproduit logiciel.
Ingénieried'autre part, il s'agit de développer des produits, en utilisant des principes et des
méthodes scientifiques bien définis.
Définitions
L'IEEE définit le génie logiciel comme suit :
1
Tutoriel de génie logiciel
Évolution du logiciel
Le processus de développement d'un produit logiciel à l'aide de principes et de méthodes
d'ingénierie logicielle est appeléÉvolution du logiciel.Cela comprend le développement
initial du logiciel, sa maintenance et ses mises à jour, jusqu'à ce que le produit logiciel
souhaité soit développé et réponde aux exigences attendues.
L'évolution commence à partir du processus de collecte des exigences. Après quoi, les
développeurs créent un prototype du logiciel prévu et le montrent aux utilisateurs pour obtenir
leurs commentaires au début du développement du produit logiciel. Les utilisateurs suggèrent
des modifications, sur lesquelles plusieurs mises à jour et maintenance consécutives continuent
également de changer. Ce processus passe au logiciel d'origine, jusqu'à ce que le logiciel
souhaité soit réalisé.
Même une fois que l'utilisateur a le logiciel souhaité en main, l'évolution de la technologie
et l'évolution des exigences obligent le produit logiciel à changer en conséquence. Recréer
un logiciel à partir de zéro et répondre individuellement à l'exigence est
2
Tutoriel de génie logiciel
pas faisable. La seule solution réalisable et économique consiste à mettre à jour le logiciel
existant afin qu'il corresponde aux dernières exigences.
1.Type statique (type S) -Il s'agit d'un logiciel qui fonctionne strictement selon des
spécifications et solutions. La solution et la méthode pour y parvenir, les deux sont
immédiatement comprises avant le codage. Le logiciel de type s est le moins sujet
aux modifications, c'est donc le plus simple de tous. Par exemple, un programme de
calculatrice pour le calcul mathématique.
2.Type pratique (type P) -Il s'agit d'un logiciel avec une collection deprocédures. Ceci
est défini par exactement ce que les procédures peuvent faire. Dans ce logiciel, les
spécifications peuvent être décrites mais la solution n'est évidemment pas
instantanée. Par exemple, un logiciel de jeu.
3.Type intégré (type E) -Ce logiciel fonctionne étroitement comme l'exigence du monde
réelenvironnement. Ce logiciel a un haut degré d'évolution car il y a divers
changements dans les lois, les taxes, etc. dans les situations du monde réel. Par
exemple, un logiciel de trading en ligne.
1.Changement continu -Un système logiciel de type E doit continuer à s'adapter aux
changements du monde réel, sinon il devient progressivement moins utile.
2.Complexité croissante -Au fur et à mesure qu'un système logiciel de type E évolue, sa complexité
tend à augmenter à moins que des travaux ne soient effectués pour le maintenir ou le réduire.
3
Tutoriel de génie logiciel
5.Réduction de la qualité -Un système logiciel de type E perd en qualité s'il n'est pas
rigoureusement entretenu et adapté à un environnement opérationnel changeant.
rétroaction multi-boucles et multi-niveaux et doivent être traités comme tels pour être
modifiés ou améliorés avec succès.
système évolutif de type E est invariant pendant toute la durée de vie du produit.
Paradigmes logiciels
Les paradigmes logiciels font référence aux méthodes et aux étapes suivies lors de la
conception du logiciel. De nombreuses méthodes sont proposées et mises en œuvre. Mais,
nous devons voir où se situent ces paradigmes dans le concept de génie logiciel. Ceux-ci
peuvent être combinés en différentes catégories, bien que chacun d'eux soit contenu l'un
dans l'autre :
Le paradigme de programmation est un sous-ensemble du paradigme de conception logicielle qui est en outre un sous-
4
Tutoriel de génie logiciel
- La programmation
- Conception
- Entretien
- La programmation
Paradigme de programmation
Ce paradigme est étroitement lié à l'aspect programmation du développement logiciel. Ceci
comprend -
- Codage
- Essai
- L'intégration
- Gros logiciel -Il est plus facile de construire un mur qu'une maison ou un bâtiment, de même, à
mesure que la taille du logiciel devient grande, l'ingénierie doit prendre des mesures pour lui
donner un processus scientifique.
- Évolutivité-Si le processus logiciel n'était pas basé sur des concepts scientifiques et
techniques, il serait plus facile de recréer un nouveau logiciel que de mettre à l'échelle
un logiciel existant.
5
Tutoriel de génie logiciel
- Opérationnel
- De transition
- Entretien
Un logiciel bien conçu et conçu doit avoir les caractéristiques suivantes :
Opérationnel
Cela nous indique dans quelle mesure le logiciel fonctionne dans les opérations. Il peut être mesuré sur :
- Budget
- Convivialité
- Efficacité
- Exactitude
- Fonctionnalité
- Fiabilité
- Sécurité
- Sécurité
De transition
Cet aspect est important lorsque le logiciel est déplacé d'une plate-forme à une autre :
- Portabilité
- Interopérabilité
- Réutilisabilité
- Adaptabilité
Entretien
Cet aspect explique dans quelle mesure le logiciel a les capacités de se maintenir dans un
environnement en constante évolution :
- Modularité
- Maintenabilité
- La flexibilité
- Évolutivité
6
Tutoriel de génie logiciel
En bref, le génie logiciel est une branche de l'informatique, qui utilise des concepts
d'ingénierie bien définis nécessaires pour produire des produits logiciels efficaces,
durables, évolutifs, dans le budget et dans les délais.
7
Tutoriel de génie logiciel
Activités SDLC
SDLC fournit une série d'étapes à suivre pour concevoir et développer efficacement un
produit logiciel. Le cadre SDLC comprend les étapes suivantes :
Communication
Il s'agit de la première étape où l'utilisateur initie la demande d'un produit logiciel souhaité.
L'utilisateur contacte le fournisseur de services et tente de négocier les conditions, soumet
la demande par écrit à l'organisation prestataire de services.
8
Tutoriel de génie logiciel
- base de données ou
Étude de faisabilité
Après la collecte des exigences, l'équipe propose un plan approximatif du processus
logiciel. À cette étape, l'équipe analyse si un logiciel peut être conçu pour répondre à toutes
les exigences de l'utilisateur et s'il existe une possibilité que le logiciel ne soit plus utile. Il
est également analysé si le projet est financièrement, pratiquement et technologiquement
faisable pour l'organisation. Il existe de nombreux algorithmes disponibles, qui aident les
développeurs à conclure la faisabilité d'un projet logiciel.
L'analyse du système
À cette étape, les développeurs décident d'une feuille de route de leur plan et essaient de
proposer le meilleur modèle logiciel adapté au projet. L'analyse du système comprend la
compréhension des limites du produit logiciel, l'apprentissage préalable des problèmes liés au
système ou des modifications à apporter aux systèmes existants, l'identification et la résolution
de l'impact du projet sur l'organisation et le personnel, etc. L'équipe de projet analyse la portée
du projet et planifie le calendrier et ressources en conséquence.
Conception de logiciels
La prochaine étape consiste à apporter toute la connaissance des exigences et de l'analyse sur le bureau et
à concevoir le produit logiciel. Les entrées des utilisateurs et les informations recueillies lors de la phase de
collecte des exigences sont les entrées de cette étape. Le résultat de cette étape se présente sous la forme
de deux conceptions ; conception logique et conception physique. Les ingénieurs produisent des méta-
données et des dictionnaires de données, des diagrammes logiques, des diagrammes de flux de données
et, dans certains cas, des pseudo-codes.
Codage
Cette étape est également appelée phase de programmation. La mise en œuvre de la conception de
logiciels commence par l'écriture de code de programme dans le langage de programmation
approprié et le développement efficace de programmes exécutables sans erreur.
Essai
Une estimation indique que 50% de l'ensemble du processus de développement logiciel devrait être
testé. Les erreurs peuvent ruiner le logiciel du niveau critique à sa propre suppression. Les tests
logiciels sont effectués pendant le codage par les développeurs et des tests approfondis sont
effectués par des experts en test à différents niveaux de code tels que les tests de modules,
9
Tutoriel de génie logiciel
test de programme, test de produit, test en interne et test du produit chez l'utilisateur. La
découverte précoce des erreurs et leur résolution sont la clé d'un logiciel fiable.
L'intégration
Le logiciel peut devoir être intégré aux bibliothèques, bases de données et autres
programmes. Cette étape de SDLC est impliquée dans l'intégration de logiciels avec des
entités du monde extérieur.
Mise en œuvre
Cela signifie installer le logiciel sur les machines des utilisateurs. Parfois, le logiciel nécessite des
configurations post-installation côté utilisateur. Le logiciel est testé pour la portabilité et
l'adaptabilité et les problèmes liés à l'intégration sont résolus lors de la mise en œuvre.
Opération et maintenance
Cette phase confirme le fonctionnement du logiciel en termes de plus d'efficacité et moins
d'erreurs. Si nécessaire, les utilisateurs sont formés ou aidés avec la documentation sur la façon
d'utiliser le logiciel et comment maintenir le logiciel opérationnel. Le logiciel est maintenu en
temps opportun en mettant à jour le code en fonction des modifications apportées à
l'environnement ou à la technologie de l'utilisateur final. Cette phase peut être confrontée à des
défis liés à des bogues cachés et à des problèmes réels non identifiés.
Modèle de cascade
Le modèle en cascade est le modèle le plus simple du paradigme de développement logiciel. Toutes les
phases de SDLC fonctionneront les unes après les autres de manière linéaire. Autrement dit, lorsque la
première phase est terminée, seule la deuxième phase commencera et ainsi de suite.
dix
Tutoriel de génie logiciel
Ce modèle suppose que tout est réalisé et s'est déroulé parfaitement comme prévu à l'étape
précédente et qu'il n'est pas nécessaire de penser aux problèmes passés qui pourraient survenir
à la phase suivante. Ce modèle ne fonctionne pas correctement s'il reste des problèmes à
l'étape précédente. La nature séquentielle du modèle ne nous permet pas de revenir en arrière
et d'annuler ou de refaire nos actions.
Ce modèle est le mieux adapté lorsque les développeurs ont déjà conçu et développé des
logiciels similaires dans le passé et connaissent tous ses domaines.
Modèle itératif
Ce modèle dirige le processus de développement logiciel par itérations. Il projette le processus
de développement de manière cyclique en répétant chaque étape après chaque cycle du
processus SDLC.
Le logiciel est d'abord développé à très petite échelle et toutes les étapes sont suivies et
prises en considération. Ensuite, à chaque itération suivante, davantage de fonctionnalités
et de modules sont conçus, codés, testés et ajoutés au logiciel. Chaque cycle produit un
logiciel, qui est complet en lui-même et a plus de fonctionnalités et de capacités que celui
du précédent.
Après chaque itération, l'équipe de direction peut travailler sur la gestion des risques et
préparer la prochaine itération. Parce qu'un cycle comprend une petite partie de l'ensemble
11
Tutoriel de génie logiciel
processus logiciel, il est plus facile de gérer le processus de développement mais il consomme plus
de ressources.
Modèle en spirale
Le modèle en spirale est une combinaison du modèle itératif et du modèle SDLC. Cela peut être
considéré comme si vous choisissiez un modèle SDLC et que vous le combiniez avec un processus
cyclique (modèle itératif).
Ce modèle tient compte du risque, qui passe souvent inaperçu par la plupart des autres
modèles. Le modèle commence par déterminer les objectifs et les contraintes du logiciel au
début d'une itération. La phase suivante consiste à prototyper le logiciel. Cela inclut l'analyse des
risques. Ensuite, un modèle SDLC standard est utilisé pour créer le logiciel. Dans la quatrième
phase du plan de la prochaine itération est préparé.
V-modèle
L'inconvénient majeur du modèle en cascade est que nous ne passons à l'étape suivante que lorsque la
précédente est terminée et qu'il n'y avait aucune chance de revenir en arrière si quelque chose est
12
Tutoriel de génie logiciel
trouvée erronée dans les étapes ultérieures. V-Model fournit des moyens de tester le logiciel à
chaque étape de manière inverse.
À chaque étape, des plans de test et des cas de test sont créés pour vérifier et valider le
produit en fonction des exigences de cette étape. Par exemple, dans la phase de collecte
des exigences, l'équipe de test prépare tous les cas de test en correspondance avec les
exigences. Plus tard, lorsque le produit est développé et prêt à être testé, les cas de test de
cette étape vérifient la validité du logiciel par rapport aux exigences de cette étape.
13
Tutoriel de génie logiciel
Pour ce modèle, très peu de planification est nécessaire. Il ne suit aucun processus, ou
parfois le client n'est pas sûr des exigences et des besoins futurs. Les exigences d'entrée
sont donc arbitraires.
Ce modèle n'est pas adapté aux grands projets logiciels mais bon pour l'apprentissage et
l'expérimentation.
14
Tutoriel de génie logiciel
- Création de logiciels
- Gestion de projet logiciel
Un projet est une tâche bien définie, qui est un ensemble de plusieurs opérations effectuées dans le
but d'atteindre un objectif (par exemple, le développement et la livraison de logiciels). Un Projet peut
être caractérisé comme :
- Chaque projet peut avoir un objectif unique et distinct. Le projet n'est pas
- Le projet se termine lorsque son objectif est atteint. Il s'agit donc d'une phase
temporaire dans la vie d'une organisation.
Projet logiciel
Un projet logiciel est la procédure complète de développement logiciel, de la collecte des
exigences aux tests et à la maintenance, réalisée conformément aux méthodologies
d'exécution, dans une période de temps spécifiée pour obtenir le produit logiciel prévu.
15
Tutoriel de génie logiciel
risque dans le développement logiciel, il est donc essentiel de gérer efficacement les projets
logiciels.
L'image ci-dessus montre les triples contraintes pour les projets logiciels. C'est un élément
essentiel de l'organisation logicielle pour fournir un produit de qualité, en maintenant le coût
dans les limites du budget du client et en livrant le projet comme prévu. Plusieurs facteurs,
internes et externes, peuvent avoir un impact sur ce triangle à triple contrainte. Chacun de ces
trois facteurs peut avoir un impact important sur les deux autres.
Par conséquent, la gestion de projet logiciel est essentielle pour intégrer les besoins des
utilisateurs ainsi que les contraintes de budget et de temps.
- hiérarchique etc.
16
Tutoriel de génie logiciel
Gestion de projet
- Définition et mise en place de la portée du projet
- à chaque phase
- Prendre les mesures nécessaires pour éviter ou sortir des problèmes Agir
- Planification de projet
- Gestion de la portée
- Estimation du projet
Planification de projet
La planification du projet logiciel est une tâche qui est effectuée avant le démarrage effectif de
la production du logiciel. Il est là pour la production de logiciels mais n'implique aucune activité
concrète ayant un lien direct avec la production de logiciels ; il s'agit plutôt d'un ensemble de
processus multiples, ce qui facilite la production de logiciels. La planification du projet peut
inclure les éléments suivants :
Gestion de la portée
Il définit la portée du projet ; cela inclut toutes les activités, le processus doit être fait pour
créer un produit logiciel livrable. La gestion de la portée est essentielle car elle crée les
limites du projet en définissant clairement ce qui serait fait dans le projet et ce qui ne serait
pas fait. Cela permet au projet de contenir des tâches limitées et quantifiables, qui peuvent
facilement être documentées et évitent ainsi les dépassements de coûts et de temps.
- Définir le périmètre
17
Tutoriel de génie logiciel
- Vérifier la portée
- Contrôler le périmètre en incorporant des modifications au périmètre
Estimation du projet
Pour une gestion efficace, une estimation précise des différentes mesures est indispensable.
Avec une estimation correcte, les responsables peuvent gérer et contrôler le projet de manière
plus efficace et efficiente.
La taille du logiciel peut être estimée soit en termes de KLOC (Kilo Line of Code) soit en
calculant le nombre de points de fonction dans le logiciel. Les lignes de code dépendent
des pratiques de codage. Les points de fonction varient selon l'exigence de l'utilisateur
ou du logiciel.
- Estimation de l'effort
- Estimation du temps
Une fois la taille et les efforts estimés, le temps nécessaire pour produire le logiciel
peut être estimé. Les efforts requis sont séparés en sous-catégories selon les
spécifications des exigences et l'interdépendance des divers composants du
logiciel. Les tâches logicielles sont divisées en tâches, activités ou événements plus
petits par Work Breakthrough Structure (WBS). Les tâches sont planifiées au jour le
jour ou en mois calendaires.
La somme du temps nécessaire pour accomplir toutes les tâches en heures ou en jours correspond au
- Estimation du coût
18
Tutoriel de génie logiciel
Cela pourrait être considéré comme le plus difficile de tous car il dépend de plus d'éléments
que n'importe lequel des précédents. Pour estimer le coût du projet, il est nécessaire de
prendre en compte -
- Taille du logiciel
- Qualité du logiciel
- Matériel
- Logiciels ou outils supplémentaires, licences, etc. Personnel
- Déplacements impliqués
- Communication
- Formation et accompagnement
Le chef de projet peut estimer les facteurs énumérés à l'aide de deux techniques largement
reconnues -
Technique de décomposition
Cette technique considère le logiciel comme un produit de diverses compositions.
-Modèle Putnam
Ce modèle est fait par Lawrence H. Putnam, qui est basé sur la distribution de fréquence
de Norden (courbe de Rayleigh). Le modèle Putnam cartographie le temps et les efforts
requis avec la taille du logiciel.
- COCOMO
19
Tutoriel de génie logiciel
COCOMO signifie Constructive Cost Model, développé par Barry W. Boehm. Il divise
le produit logiciel en trois catégories de logiciels : organiques, semi-détachés et
embarqués.
Planification du projet
La planification de projet dans un projet fait référence à la feuille de route de toutes les activités
à effectuer dans un ordre spécifié et dans les délais impartis à chaque activité. Les chefs de
projet ont tendance à définir diverses tâches et jalons de projet, puis à les organiser en tenant
compte de divers facteurs. Ils recherchent des tâches comme dans le chemin critique dans le
calendrier, qui doivent être complétées de manière spécifique (en raison de l'interdépendance
des tâches) et strictement dans le temps imparti. La disposition des tâches qui se trouve hors du
chemin critique est moins susceptible d'avoir un impact sur tout le calendrier du projet.
Les ressources sont disponibles en quantité limitée et restent dans l'organisation en tant que pool
d'actifs. Le manque de ressources entrave le développement du projet et celui-ci peut prendre du
retard sur le calendrier. L'allocation de ressources supplémentaires augmente les coûts de
développement en fin de compte. Il est donc nécessaire d'estimer et d'allouer des ressources
adéquates pour le projet.
20
Tutoriel de génie logiciel
- Identification -Prenez note de tous les risques possibles qui peuvent survenir dans le cadre du
projet.
- Gérer -Analyser la probabilité d'occurrence des risques à différentes phases. Faites un plan
pour éviter ou faire face aux risques. Essayez de minimiser leurs effets secondaires.
- Moniteur -Surveillez de près les risques potentiels et leurs premiers symptômes. Surveillez
également les mesures efficaces prises pour les atténuer ou les éviter.
L'exécution doit être surveillée afin de vérifier si tout se déroule conformément au plan. La
surveillance consiste à observer pour vérifier la probabilité d'un risque et à prendre des
mesures pour faire face au risque ou signaler l'état de diverses tâches.
21
Tutoriel de génie logiciel
- Suivi d'activité -Toutes les activités planifiées dans une tâche peuvent être
surveillées au jour le jour. Lorsque toutes les activités d'une tâche sont terminées,
elle est considérée comme terminée.
- Rapports d'état -Les rapports contiennent l'état des activités et des tâches réalisées
dans un délai donné, généralement une semaine. Le statut peut être marqué
comme terminé, en attente ou en cours, etc.
- Liste de vérification des jalons -Chaque projet est divisé en plusieurs phases où les
principales tâches sont exécutées (jalons) en fonction des phases du SDLC. Cette liste de
contrôle des jalons est préparée toutes les quelques semaines et rapporte l'état des
jalons.
- Fermeture-À la fin de chaque événement majeur, à la fin d'une phase de SDLC ou à la fin du projet
lui-même, une clôture administrative est officiellement annoncée pour informer chaque partie
prenante en envoyant un courrier électronique, en distribuant une copie papier du document ou
par tout autre moyen de communication efficace.
22
Tutoriel de génie logiciel
Gestion de la configuration
La gestion de la configuration est un processus de suivi et de contrôle des modifications
apportées au logiciel en termes d'exigences, de conception, de fonctions et de développement
du produit.
L'IEEE le définit comme "le processus d'identification et de définition des éléments du système, de contrôle
du changement de ces éléments tout au long de leur cycle de vie, d'enregistrement et de rapport de l'état
des éléments et des demandes de modification, et de vérification de l'exhaustivité et de l'exactitude des
éléments".
Généralement, une fois que le SRS est finalisé, il y a moins de chances que l'utilisateur demande des
modifications. S'ils se produisent, les changements ne sont traités qu'avec l'approbation préalable de la
haute direction, car il existe une possibilité de dépassement des coûts et des délais.
Ligne de base
Une phase de SDLC est supposée terminée si elle est basée sur la ligne de base, c'est-à-dire que la ligne de
base est une mesure qui définit l'intégralité d'une phase. Une phase est initialisée lorsque toutes les
activités qui s'y rapportent sont terminées et bien documentées. Si ce n'était pas la phase finale, sa sortie
serait utilisée dans la prochaine phase immédiate.
Le contrôle des modifications est une fonction de la gestion de la configuration, qui garantit que toutes les
modifications apportées au système logiciel sont cohérentes et conformes aux règles et réglementations
organisationnelles.
23
Tutoriel de génie logiciel
- Contrôle-Si le changement éventuel affecte trop d'entités dans le système ou s'il est
inévitable, il est obligatoire d'obtenir l'approbation des hautes autorités avant que le
changement ne soit intégré au système. Il est décidé si le changement vaut la peine
d'être incorporé ou non. Si ce n'est pas le cas, la demande de modification est
formellement refusée.
- Fermer la demande-Le changement est vérifié pour une mise en œuvre correcte et une
fusion avec le reste du système. Ce changement nouvellement incorporé dans le logiciel
est correctement documenté et la demande est officiellement fermée.
Il existe des outils disponibles qui aident à une gestion de projet efficace. Quelques-uns
sont décrits : -
Diagramme de Gantt
Le diagramme de Gantt a été conçu par Henry Gantt (1917). Il représente le calendrier du projet par
rapport aux périodes de temps. Il s'agit d'un graphique à barres horizontales avec des barres représentant
les activités et le temps prévu pour les activités du projet.
24
Tutoriel de génie logiciel
Graphique PERT
Le diagramme PERT (Program Evaluation & Review Technique) est un outil qui représente le projet sous
forme de diagramme de réseau. Il est capable de représenter graphiquement les principaux événements
du projet de manière parallèle et consécutive. Les événements, qui se produisent les uns après les autres,
montrent la dépendance du dernier événement par rapport au précédent.
Les événements sont affichés sous forme de nœuds numérotés. Ils sont reliés par des flèches
étiquetées décrivant la séquence des tâches dans le projet.
(généralement du personnel qualifié) nécessaires au fil du temps pour un événement (ou une phase) du projet.
25
Tutoriel de génie logiciel
Les événements sont organisés en fonction de leur heure de début la plus précoce possible. Le chemin entre le
nœud de début et le nœud de fin est un chemin critique qui ne peut pas être réduit davantage et tous les
événements doivent être exécutés dans le même ordre.
26
Tutoriel de génie logiciel
Logiciels requis
4
Les exigences logicielles sont la description des caractéristiques et des fonctionnalités du
système cible. Les exigences traduisent les attentes des utilisateurs vis-à-vis du produit
logiciel. Les exigences peuvent être évidentes ou cachées, connues ou inconnues,
attendues ou inattendues du point de vue du client.
- Étude de faisabilité
Étude de faisabilité
Lorsque le client approche l'organisation pour faire développer le produit souhaité, il a une
idée approximative de toutes les fonctions que le logiciel doit exécuter et de toutes les
fonctionnalités attendues du logiciel.
En se référant à ces informations, les analystes effectuent une étude détaillée pour déterminer si le
système souhaité et ses fonctionnalités sont réalisables à développer.
Cette étude de faisabilité est axée sur l'objectif de l'organisation. Cette étude analyse si le
produit logiciel peut être matérialisé de manière pratique en termes de mise en œuvre, de
contribution du projet à l'organisation, de contraintes de coûts, et selon les valeurs et les
objectifs de l'organisation. Il explore les aspects techniques de la
91
Tutoriel de génie logiciel
Le résultat de cette phase devrait être un rapport d'étude de faisabilité qui devrait contenir
des commentaires et des recommandations adéquats pour la direction quant à savoir si le
projet doit être entrepris ou non.
SRS définit comment le logiciel prévu interagira avec le matériel, les interfaces externes, la
vitesse de fonctionnement, le temps de réponse du système, la portabilité du logiciel sur
diverses plates-formes, la maintenabilité, la vitesse de récupération après un crash, la sécurité,
la qualité, les limitations, etc.
Les exigences reçues du client sont écrites en langage naturel. Il est de la responsabilité de
l'analyste système de documenter les exigences dans un langage technique afin qu'elles
puissent être comprises et utilisées par l'équipe de développement logiciel.
- Les exigences techniques sont exprimées dans un langage structuré, qui est utilisé au
sein de l'organisation.
28
Tutoriel de génie logiciel
en coût s'il n'est pas étouffé dans l'œuf. Les exigences peuvent être vérifiées par rapport aux conditions
suivantes -
- Rassemblement des exigences -Les développeurs discutent avec le client et les utilisateurs
finaux et connaissent leurs attentes vis-à-vis du logiciel.
- Négociation & discussion -Si les exigences sont ambiguës ou s'il y a des conflits
dans les exigences des différentes parties prenantes, cela est alors négocié et
discuté avec les parties prenantes. Les exigences peuvent alors être hiérarchisées et
raisonnablement compromises.
Les exigences émanent de diverses parties prenantes. Pour lever l'ambiguïté et les
conflits, ils sont discutés pour plus de clarté et d'exactitude. Les exigences irréalistes
sont raisonnablement compromises.
Il existe différentes façons de découvrir les exigences. Certains d'entre eux sont expliqués ci-
dessous :
29
Tutoriel de génie logiciel
Entrevues
Les entretiens sont un moyen solide pour recueillir les exigences. L'organisation peut mener
plusieurs types d'entretiens tels que :
- Entretiens oraux
- Entretiens écrits
- Entrevues de groupe qui ont lieu entre des groupes de participants. Ils aident à
découvrir toute exigence manquante car de nombreuses personnes sont impliquées.
Enquêtes
L'organisation peut mener des enquêtes auprès de diverses parties prenantes en les
interrogeant sur leurs attentes et leurs exigences vis-à-vis du système à venir.
Questionnaires
Un document avec un ensemble prédéfini de questions objectives et d'options respectives est
remis à toutes les parties prenantes pour réponse, qui sont collectées et compilées.
Une lacune de cette technique est que si une option pour un problème n'est pas mentionnée dans le
questionnaire, le problème peut être laissé sans surveillance.
Analyse de domaine
Chaque logiciel appartient à une catégorie de domaine. Les personnes expertes dans le domaine peuvent
être d'une grande aide pour analyser les exigences générales et spécifiques.
Réflexion
Un débat informel a lieu entre les différentes parties prenantes et toutes leurs contributions sont
enregistrées pour une analyse plus approfondie des besoins.
30
Tutoriel de génie logiciel
Prototypage
Le prototypage consiste à créer une interface utilisateur sans ajouter de fonctionnalités détaillées
permettant à l'utilisateur d'interpréter les fonctionnalités du produit logiciel prévu. Cela aide à
donner une meilleure idée des besoins. S'il n'y a pas de logiciel installé chez le client pour la référence
du développeur et que le client n'est pas conscient de ses propres exigences, le développeur crée un
prototype basé sur les exigences initialement mentionnées. Le prototype est montré au client et les
commentaires sont notés. Les commentaires des clients servent d'entrée pour la collecte des
exigences.
Observation
Une équipe d'experts visite l'organisation ou le lieu de travail du client. Ils observent le
fonctionnement réel des systèmes installés existants. Ils observent le flux de travail chez le
client et comment les problèmes d'exécution sont traités. L'équipe elle-même tire quelques
conclusions qui aident à formuler les exigences attendues du logiciel.
- Clair
- Correct
- Cohérent
- Cohérent
- Compréhensible
- Modifiable
- Vérifiable
- Prioritaire
- Non ambigu
- Traçable
- Source crédible
Logiciels requis
Nous devrions essayer de comprendre quel type d'exigences peuvent survenir dans la
phase d'élicitation des exigences et quels types d'exigences sont attendus du système
logiciel.
31
Tutoriel de génie logiciel
De manière générale, les exigences logicielles doivent être classées en deux catégories :
Exigences fonctionnelles
Les exigences liées à l'aspect fonctionnel du logiciel entrent dans cette catégorie.
Ils définissent les fonctions et les fonctionnalités dans et depuis le système logiciel.
EXEMPLES -
- Option de recherche donnée à l'utilisateur pour effectuer une recherche à partir de diverses factures.
- Les utilisateurs peuvent être divisés en groupes et les groupes peuvent recevoir des droits distincts.
- Sécurité
- Enregistrement
- Stockage
- Configuration
- Performance
- Coût
- Interopérabilité
- La flexibilité
- Accessibilité
Les exigences sont classées logiquement comme :
- Doit avoir:Le logiciel ne peut pas être dit opérationnel sans eux.
- Pourrais avoir:Le logiciel peut toujours fonctionner correctement avec ces exigences.
32
Tutoriel de génie logiciel
Lors du développement d'un logiciel, le "must have" doit être mis en œuvre, le "devrait avoir" est un sujet de
débat avec les parties prenantes et de négation, tandis que le "pourrait avoir" et la "liste de souhaits" peuvent
être conservés pour les mises à jour logicielles.
- facile à utiliser
- réponse rapide
- gérer efficacement les erreurs opérationnelles en fournissant
L'acceptation par l'utilisateur dépend principalement de la façon dont l'utilisateur peut utiliser le
logiciel. L'interface utilisateur est le seul moyen pour les utilisateurs de percevoir le système. Un
système logiciel performant doit également être équipé d'une interface utilisateur attrayante, claire,
cohérente et réactive. Sinon, les fonctionnalités du système logiciel ne peuvent pas être utilisées de
manière pratique. Un système est dit bon s'il fournit les moyens de l'utiliser efficacement. Les
exigences de l'interface utilisateur sont brièvement mentionnées ci-dessous -
- Présentation du contenu
- Navigation facile
- Interface simplifiée
- Sensible
- Éléments d'interface utilisateur cohérents
- Mécanisme de rétroaction
33
Tutoriel de génie logiciel
- Validation de l'exigence
- Coordination avec les clients pour hiérarchiser les exigences et lever l'ambiguïté
- Finalisation des critères d'acceptation avec le client et les autres parties prenantes
Software Metrics fournit des mesures pour divers aspects du processus logiciel et du
produit logiciel.
Les mesures logicielles sont des exigences fondamentales du génie logiciel. Ils aident non
seulement à contrôler le processus de développement logiciel, mais également à maintenir
l'excellente qualité du produit final.
Selon Tom DeMarco, un (ingénieur logiciel), "Vous ne pouvez pas contrôler ce que vous ne pouvez
pas mesurer." Par ses propos, il est très clair à quel point les mesures logicielles sont importantes.
34
Tutoriel de génie logiciel
- Métriques de processus -Dans les différentes phases de SDLC, les méthodes et outils
utilisés, les normes de l'entreprise et la performance du développement sont des métriques
de processus logiciels.
- Métriques des ressources -L'effort, le temps et les diverses ressources utilisées représentent des
métriques pour la mesure des ressources.
35
Tutoriel de génie logiciel
Pour évaluer les besoins des utilisateurs, un document SRS (Software Requirement Specification)
est créé alors que pour le codage et la mise en œuvre, il est nécessaire d'avoir des exigences
plus spécifiques et détaillées en termes de logiciel. La sortie de ce processus peut être
directement utilisée dans l'implémentation dans les langages de programmation.
La conception de logiciels est la première étape du SDLC (Software Design Life Cycle), qui
déplace la concentration du domaine du problème au domaine de la solution. Il essaie de
spécifier comment remplir les exigences mentionnées dans SRS.
91
Tutoriel de génie logiciel
Modularisation
La modularisation est une technique permettant de diviser un système logiciel en plusieurs modules
discrets et indépendants, censés être capables d'effectuer des tâches de manière indépendante. Ces
modules peuvent fonctionner comme des constructions de base pour l'ensemble du logiciel. Les
concepteurs ont tendance à concevoir des modules tels qu'ils puissent être exécutés et/ou compilés
séparément et indépendamment.
Avantage de la modularisation :
Concurrence
À l'époque, tous les logiciels sont censés être exécutés de manière séquentielle. Par exécution
séquentielle, nous entendons que l'instruction codée sera exécutée l'une après l'autre, ce qui
implique qu'une seule partie du programme est activée à un instant donné. Supposons qu'un
logiciel comporte plusieurs modules, alors un seul de tous les modules peut être trouvé actif à
tout moment de l'exécution.
Il est nécessaire que les programmeurs et les concepteurs reconnaissent ces modules, qui
peuvent être exécutés en parallèle.
Exemple
La fonction de vérification orthographique du traitement de texte est un module logiciel qui s'exécute
parallèlement au traitement de texte lui-même.
37
Tutoriel de génie logiciel
Couplage et Cohésion
Lorsqu'un logiciel est modularisé, ses tâches sont divisées en plusieurs modules en fonction de
certaines caractéristiques. Comme nous le savons, les modules sont des ensembles
d'instructions assemblées afin de réaliser certaines tâches. Ils sont cependant considérés
comme une seule entité mais peuvent se référer les uns aux autres pour travailler ensemble. Il
existe des mesures par lesquelles la qualité d'une conception de modules et leur interaction
entre eux peuvent être mesurées. Ces mesures sont appelées couplage et cohésion.
Cohésion
La cohésion est une mesure qui définit le degré d'intra-fiabilité au sein des éléments d'un
module. Plus la cohésion est grande, meilleure est la conception du programme.
- Cohésion fortuite -Il s'agit d'une cohésion non planifiée et aléatoire, qui pourrait
résulter de la division du programme en modules plus petits dans un souci de
modularisation. Parce qu'il n'est pas planifié, il peut semer la confusion chez les
programmeurs et n'est généralement pas accepté.
- Cohésion logique -Lorsque des éléments catégorisés logiquement sont rassemblés dans un
module, cela s'appelle la cohésion logique.
- Cohésion procédurale -Lorsque des éléments de module sont regroupés, qui sont
exécutés séquentiellement afin d'effectuer une tâche, on parle de cohésion
procédurale.
- Cohésion séquentielle -Lorsque des éléments de module sont regroupés parce que
la sortie d'un élément sert d'entrée à un autre et ainsi de suite, on parle de cohésion
séquentielle.
- Cohésion fonctionnelle -Il est considéré comme le plus haut degré de cohésion, et
il est très attendu. Les éléments de module en cohésion fonctionnelle sont
regroupés car ils contribuent tous à une même fonction bien définie. Il peut
également être réutilisé.
38
Tutoriel de génie logiciel
Couplage
Le couplage est une mesure qui définit le niveau d'interdépendance entre les modules d'un
programme. Il indique à quel niveau les modules interfèrent et interagissent les uns avec les
autres. Plus le couplage est faible, meilleur est le programme.
Vérification de la conception
Le résultat du processus de conception de logiciels est une documentation de conception, des pseudo-codes, des
diagrammes logiques détaillés, des diagrammes de processus et une description détaillée de toutes les
exigences fonctionnelles ou non fonctionnelles.
La phase suivante, qui est la mise en œuvre du logiciel, dépend de tous les extrants
mentionnés ci-dessus.
Il devient alors nécessaire de vérifier la sortie avant de passer à la phase suivante. Plus une
erreur est détectée tôt, mieux elle est ou elle pourrait ne pas être détectée avant le test du
produit. Si les résultats de la phase de conception sont sous forme de notation formelle,
leurs outils de vérification associés doivent être utilisés, sinon une revue de conception
approfondie peut être utilisée pour la vérification et la validation.
Grâce à une approche de vérification structurée, les examinateurs peuvent détecter les défauts qui pourraient
être causés par l'omission de certaines conditions. Une bonne revue de conception est importante pour une
bonne conception, précision et qualité du logiciel.
39
Tutoriel de génie logiciel
40
Tutoriel de génie logiciel
Analyse de logiciels et
Outils de conception 6
L'analyse et la conception de logiciels comprennent toutes les activités qui contribuent à la
transformation de la spécification des exigences en mise en œuvre. Les spécifications des
exigences spécifient toutes les attentes fonctionnelles et non fonctionnelles du logiciel. Ces
spécifications d'exigences se présentent sous la forme de documents lisibles et
compréhensibles par l'homme, auxquels un ordinateur n'a rien à voir.
Voyons quelques outils d'analyse et de conception utilisés par les concepteurs de logiciels :
Le diagramme de flux de données (DFD) est une représentation graphique du flux de données dans
un système d'information. Il est capable de représenter le flux de données entrant, le flux de
données sortant et les données stockées. Le DFD ne mentionne rien sur la façon dont les données
circulent dans le système.
Il existe une différence importante entre DFD et Flowchart. L'organigramme décrit le flux de contrôle
dans les modules de programme. Les DFD décrivent le flux de données dans le système à différents
niveaux. Il ne contient aucun élément de contrôle ou de branche.
Types de DFD
Les diagrammes de flux de données sont soit logiques, soit physiques.
- DFD physique-Ce type de DFD montre comment le flux de données est réellement
implémenté dans le système. Il est plus spécifique et proche de la mise en œuvre.
Composants DFD
DFD peut représenter la source, la destination, le stockage et le flux de données à l'aide de
l'ensemble de composants suivant :
91
Tutoriel de génie logiciel
- Entités-Les entités sont des sources et des destinations de données d'information. Les
entités sont représentées par des rectangles avec leurs noms respectifs.
- Processus-Les activités et les actions entreprises sur les données sont représentées par des cercles ou
des rectangles à bords arrondis.
- Flux de données-Le mouvement des données est indiqué par des flèches pointues. Le
mouvement des données est indiqué à partir de la base de la flèche comme source vers la tête de
la flèche comme destination.
Niveaux de DFD
- Niveau 0-Le niveau d'abstraction le plus élevé DFD est connu sous le nom de DFD de niveau 0, qui décrit
l'ensemble du système d'information sous la forme d'un diagramme masquant tous les détails sous-
jacents. Les DFD de niveau 0 sont également appelés DFD de niveau contextuel.
- Niveau 1-Le DFD de niveau 0 est divisé en DFD de niveau 1 plus spécifiques. Le DFD de
niveau 1 décrit les modules de base du système et le flux de données entre les différents
modules. Le niveau 1 DFD mentionne également les processus de base et les sources
d'information.
42