Académique Documents
Professionnel Documents
Culture Documents
Modélisation de Processus de
developpement logiciel
Plan
Développement Agile des Logiciels
3
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.1 Définitions
4
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.1 Définitions
5
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.2 Les taches de génie logiciel Spécification : Cette étape consiste à
capturer et à documenter les besoins du
Le génie logiciel englobe les tâches suivantes : logiciel, y compris les spécifications
fonctionnelles et techniques. Un cahier
des charges est souvent créé pour définir
clairement les objectifs du projet.
Conception : À partir des spécifications,
cette phase implique l'analyse des
besoins, la modélisation de l'architecture,
la définition des modules et des
interfaces, ainsi que la conception des
algorithmes qui seront utilisés dans le
logiciel.
6
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.2 Les taches de génie logiciel
Implémentation : C'est la phase de
développement réel, où le code
Le génie logiciel englobe les tâches suivantes :
source du logiciel est écrit en utilisant
le langage de programmation choisi.
Les concepts de conception sont
transformés en code exécutable.
Intégration : Cette étape consiste à
assembler les différentes parties du
logiciel pour former une application
fonctionnelle cohérente. Les modules
développés individuellement sont
combinés et testés ensemble.
7
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.2 Les taches de génie logiciel Documentation : La création de
documentation est cruciale pour aider
les utilisateurs et les développeurs à
Le génie logiciel englobe les tâches suivantes :
comprendre le fonctionnement du
logiciel. Cela peut inclure des manuels
d'utilisation, des aides en ligne et des
guides techniques.
Vérification : Les tests sont effectués
pour s'assurer que le logiciel
fonctionne correctement. Les tests
fonctionnels, les tests de fiabilité et
les tests de sûreté sont parmi les
types de tests couramment effectués.
8
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
Validation : Cette étape consiste à vérifier que
1.2 Les taches de génie logiciel
le logiciel répond aux exigences définies dans le
cahier des charges. La recette du logiciel est
Le génie logiciel englobe les tâches suivantes : effectuée pour s'assurer de sa conformité.
Déploiement : Une fois que le logiciel a passé
avec succès les tests de validation, il est livré,
installé sur les systèmes des utilisateurs finaux
et les utilisateurs sont formés à son utilisation.
Maintenance : La maintenance continue du
logiciel est nécessaire pour apporter des
corrections aux bugs, des mises à jour de
sécurité et des améliorations en réponse aux
besoins changeants des utilisateurs.
9
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.2 Les taches de génie logiciel
10
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.3 Avantages
11
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.3 Avantages
Gestion du projet améliorée : Le génie logiciel propose des cadres de gestion de projet,
tels que le modèle en cascade, qui aident à planifier, organiser et contrôler efficacement
les projets de développement logiciel.
Réduction des coûts : Bien que les coûts initiaux de développement logiciel puissent
être élevés, le génie logiciel contribue à réduire les coûts de maintenance et de
correction des erreurs à long terme.
Meilleure gestion des risques : En identifiant et en évaluant les risques dès le début du
projet, le génie logiciel permet de prendre des mesures pour les atténuer, ce qui réduit
la probabilité d'échec du projet.
Satisfaction client : En développant des logiciels de meilleure qualité qui répondent aux
besoins des utilisateurs finaux, le génie logiciel contribue à la satisfaction des clients et
des utilisateurs.
Évolutivité : Les logiciels conçus en suivant des principes d'ingénierie logicielle sont
généralement plus évolutifs, ce qui signifie qu'ils peuvent être adaptés pour prendre en
charge de nouvelles fonctionnalités et des besoins changeants
14
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4 Evolution logicielle
15
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4 Evolution logicielle
L'évolution débute par la phase de collecte des exigences, suivie par la création d'un
prototype du logiciel prévu, qui est présenté aux utilisateurs pour recueillir leurs
commentaires dès les premières étapes du développement. Les utilisateurs proposent
des modifications, et de multiples mises à jour et maintenances successives permettent
au logiciel de continuer à évoluer. Ce processus s'applique au logiciel initial jusqu'à ce
que le logiciel désiré soit achevé.
16
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4 Evolution logicielle
17
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.1 Lois d'évolution du logiciel
Selon Meir Lehman, les lois d'évolution des logiciels sont classifiées en trois catégories
distinctes.
18
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.1 Lois d'évolution du logiciel
Type S (pour "statique") : C'est un logiciel qui opère conformément à des spécifications
et des solutions clairement définies. Les solutions et les méthodes pour atteindre ces
objectifs sont parfaitement compréhensibles avant même de commencer la phase de
codage. Les logiciels de type S sont moins sujets aux modifications, ce qui les rend plus
simples. Par exemple, un programme de calculatrice utilisé pour des calculs
mathématiques.
19
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.1 Lois d'évolution du logiciel
Type P (pour "pratique") : Il s'agit d'un logiciel composé d'un ensemble de procédures
dont les capacités sont clairement définies. Dans ce type de logiciel, les spécifications
peuvent être énoncées, mais la solution n'est pas immédiatement évidente. Par
exemple, un logiciel de jeu.
20
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.1 Lois d'évolution du logiciel
21
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.2 Évolution du logiciel de type E
Meir Lehman a formulé huit principes régissant l'évolution des logiciels de type E :
22
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.2 Évolution du logiciel de type E
23
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.2 Évolution du logiciel de type E
Réduction de la Qualité - La qualité d'un système logiciel de type E tend à diminuer avec
le temps, à moins d'une maintenance rigoureuse et d'adaptations aux évolutions de
l'environnement opérationnel.
24
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.4.2 Évolution du logiciel de type E
25
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
Il est à noter que le paradigme de la
1.5. Les paradigmes logiciels programmation est un sous-ensemble du
paradigme de conception de logiciels, qui est
en outre un sous-ensemble du paradigme de
développement logiciel.
Les paradigmes logiciels font référence aux
méthodes et aux étapes qui sont prises lors de
la conception du logiciel. Il existe de
nombreuses méthodes proposées et sont en
cours de réalisation, mais nous avons besoin de
voir où se situent ces paradigmes dans le 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 :
26
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.5.1. Paradigme de développement logiciel
Ce paradigme est connu sous le nom de paradigmes d'ingénierie logicielle, où tous les
concepts d'ingénierie relatifs au développement de logiciels sont appliqués. Il comprend
diverses recherches et la collecte des exigences qui aident le produit logiciel à construire. Ce
paradigme fait partie du développement logiciel et inclut : Le rassemblement des besoins ; la
Conception des logiciels et la planification des tâches.
27
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.5.2. Paradigme de conception
28
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.6. Besoin du Génie Logiciel
Les besoins du génie logiciel est dû au taux de changement plus élevé des besoins des
utilisateurs et de l'environnement sur lequel le logiciel fonctionne :
29
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.6. Besoin du Génie Logiciel
Les besoins du génie logiciel est dû au taux de changement plus élevé des besoins des
utilisateurs et de l'environnement sur lequel le logiciel fonctionne :
30
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.6. Besoin du Génie Logiciel
33
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.6. Besoin du Génie Logiciel
34
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7. Caractéristiques d'un bon logiciel
35
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.1. Critères généraux
Les critères généraux sont essentiellement des principes et des repères permettant d'évaluer,
d'estimer et de vérifier régulièrement si le processus de développement d'un logiciel répond
aux différentes propriétés spécifiées. Cette catégorie peut être subdivisée en trois aspects
distincts :
Aspect Opérationnel : Cet aspect mesure dans quelle mesure le logiciel fonctionne
efficacement dans les opérations. Ces opérations peuvent être évaluées à travers divers
paramètres tels que le budget, l'efficacité, la précision, les fonctionnalités, la fiabilité et la
sécurité.
36
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logicil
1.7.1. Critères généraux
Aspect Transitionnel : Ce volet prend de l'importance lorsque le logiciel est déplacé d'une
plate-forme à une autre. Il englobe des considérations telles que la portabilité,
l'interopérabilité, la réutilisation et l'adaptabilité.
Aspect Maintenance : Cet aspect explique comment un logiciel a la capacité de se
maintenir dans une infrastructure et environnement en constante évolution:
maintenabilité, modularité, Flexibilité et Évolutivité.
le génie logiciel est une branche de l'informatique, qui utilise des concepts d'ingénierie bien
définis pour produire des produits logiciels efficaces, durables, évolutifs, économiques et
ponctuels.
37
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.2. Critères externes
Les critères externes expriment ce qu’est un bon logiciel du point de vue des utilisateurs. Un
logiciel de qualité doit être :
38
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
Ergonomie est une étude quantitative
1.7.2. Critères externes et qualitative du travail dans une
entreprise, visant à améliorer les
conditions de travail et à accroitre la
productivité.
Efficacité : (Le logiciel fait-il bon usage de ses
ressources, en terme d’espace mémoire, et
temps d’exécution)
Convivialité et Utilisabilité : (Est-il facile et
agréable à utiliser)
Documentable : (accompagné d’un manuel
utilisateur, ou d’un tutoriel).
Ergonomique : L’architecture du logiciel doit
particulièrement être adaptée aux conditions
de travail de l’utilisateur
39
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.2. Critères externes
40
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.3. Critères internes
Les critères de qualité internes expriment ce qu’est un bon logiciel du point de vue du
développeur. Ces critères sont essentiellement liés à la maintenance d’un logiciel. Un bon
logiciel doit être facile à maintenir, et pour cela doit être :
41
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.3. Critères internes
42
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.7.3. Critères internes
• LOGICIELS GENERIQUES
• LOGICIELS SPECIFIQUES
44
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.8. CATEGORIES DE LOGICIELS
LOGICIELS GENERIQUES : c’est sont des logiciels qui vendus comme les produits
courants sur le marché informatique. Dans cette catégorie, on en distingue autant :
Logiciels amateurs : Il s’agit de logiciels développés par des « amateurs» (par
exemple par des gens passionnés ou des étudiants qui apprennent à programmer).
Bref, ce sont des logiciels sans impact économique significatif sur l’ensemble.
Logiciels « jetables » ou « consommables » : Il s’agit de logiciels comme par
exemple les logiciels des traitements de texte ou les tableurs pour les entreprises.
Ces logiciels ne coûtent pas très cher, et peuvent être remplacés facilement au sein
d’une entreprise sans engendrer des risques majeurs. Ils sont souvent largement
diffusés.
45
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.8. CATEGORIES DE LOGICIELS
46
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.9. ENJEUX DU GENIE LOGICIEL
Un enjeu peut être considéré comme un ensemble des risques encourus par un
développeur pour en mise en œuvre d’un logiciel. Le génie logiciel vise à rationaliser et
à optimiser le processus de production d'un logiciel. Les enjeux associés sont multiples :
47
Développeur d’Applications Web & Mobile M. Hamidi
1. Introduction au génie logiciel
1.9. ENJEUX DU GENIE LOGICIEL
48
Développeur d’Applications Web & Mobile M. Hamidi