GENIE LOGICIEL Documentable précédé par un doc de conception
Lisibilité et clarté écrit proprement
Génie Logiciel Portabilité fonctionnel sur plusieurs machines et
indépendant de son environnement d’exécution
Génie civil Progs informatiques Extensibilité ajout de nouvelles fonctionnalités(flexible)
Art de construction Documentation Réutilisabilité des parties pour d’autres logiciels =
Interopérabilité et coulabilité interagir en synergie
Discipline méthodes, techniques et outils
Traçabilité le suivi d’un produit aux diff stades
Basée sur le savoir théorique
Testabilité et vérifiabilité le soumettre à une épreuve de
Le savoir-faire compétence, ressource humaine
confirmation de la tâche à exécuter
Le faire savoir communication
Pour produire développement, réalisation SCRUM
De façon industrielle travail d’équipe, méthodologie Ce cadre méthodologique agile
révolutionne la manière dont on gère un
Des logiciels les produits projet
Il permet de délivrer et de modifier un
De qualité au meilleur prix qualité/prix
projet, un produit ou une fonctionnalité
très rapidement
FACTEUR DE QUALITE DE LOGICIEL Basée sur des rôles, composée de 6 à 10
personnes :
- Développeurs
Critères externes Critères internes
- Testeurs
- Architectes
EXTERNES : - Product owner : le chef de produit
représentent le client, il définit les
spécifications fonctionnelles et établit
Fiabilité conformité de ses spécifications
la liste des priorités de ce qu'il faut
Robustesse, sureté stable et disponible développer.c'est aussi le product
owner qui valide les fonctionnalités
Efficacité bon usage en termes de mémoire et temps - Scrum master : est garant du respect
d’exécution des processus scrum il s'assure d'une
bonne communication entre les
Convivialité, utilisabilité facile et agréable à utiliser membres de l'équipe
Documentable tuto ou un manuel utilisateur User Story Product Backlog Sprint Backlog
Ergonomique adaptable aux conditions de travail et User Story : capturer les besoins et les
d’utilisateur fonctionnalités souhaitées du point de
vue de l'utilisateur
Sécurité absence du danger et la garantie offerte
Product Backlog : une liste dynamique et
Adéquation et validité conformité au maquettage et but priorisée de toutes les fonctionnalités, les
exigences, les améliorations et les
Intégrité aptitude à protéger le code et les données corrections qui doivent être réalisées sur
un produit
INETRNES :
Sprint Backlog : contient les tâches CASCADE :
spécifiques qui doivent être accomplies Se divise en étapes
pour atteindre les objectifs du sprint Entre 2 étapes se trouvent une validation
Sprint Planning Meeting : permet On commence une activité qu’après avoir
également de clarifier les exigences, de terminé celle qui précède
discuter des dépendances et des En cas d'erreur découverte lors des tests,
contraintes, et de définir les critères il est nécessaire de retourner à la phase
d'acceptation pour chaque élément du de programmation
product backlog sélectionné Avantages :
Sprint Meeting Review : l'équipe de - Structure claire
développement présente les éléments Inconvénients :
terminés du sprint backlog, en mettant - Détection tardive des erreurs (cout
l'accent sur les fonctionnalités élevé)
développées et les objectifs atteints. Les
participants peuvent interagir avec le
produit, poser des questions et fournir
des commentaires
GESTION DES EXIGENCES
Recueil des données Analyse des besoins Spécification des exigences
Collecte des besoins
- Questionnaires EN V :
- Sondages
- Interviews Composé de 3 phases
- Brainstorming - Conception
Filtrage des besoins - Réalisation
- Elimination d’ambiguïté, - Validation
incohérences et incomplétude Enchaînement séquentiel (modèle en
cascade) de gauche à droite, les résultats
Cahier de spécification des besoins ou cahier de des étapes de départ sont utilisés par les
charge étapes d’arrivée
Avantages :
CYCLE DE VIE LOGICIEL - Détection précoce des erreurs
Inconvénients :
Ensemble des étapes qui composent le
- Faible flexibilité aux changements
processus de développement et
d’utilisation du logiciel
Modèle de cycle de vie : servent de guide pour
structurer et gérer efficacement les projets, en
s'assurant que toutes les activités nécessaires sont
prises en compte et exécutées de manière
appropriée pour atteindre les objectifs fixés
On a 2 familles de modèles
Itérative et Linéaire
Incrémentale
Prototypage Cascade
Spirale En V
Incrémental
PAR PROTOTYPAGE : - Modèle complet, complexe et général
Inconvénients :
Enchaîner les développements de - Difficile à appliquer
prototypes et à les soumettre pour
validation/remarque au client
Avantages :
- Le client participe activement dans le
développement du produit
Inconvénients :
- Temps et couts supplémentaires
LES ME THODES
Lourde Agile
UP Scrum
RUP
2TUP
INCREMENTAL :
Processus Unifié
Développer des applications en étendant
Caractéristiques :
PROGRESSIVEMENT ses fonctionnalités.
Permet d’éviter de TOUT CONCEVOIR, de - Piloté par les cas d’utilisation
TOUT TESTER - Itératif et incrémental
Extension successive à partir d’un produit
- Centré sur l’architecture
- Orienté risques
« Noyau » du logiciel
Composants :
Avantages :
4 phases :
- Les intégrations sont progressives - Etude d’opportunité
Inconvénients : - Elaboration
- Risque de fonctionnalités inachevées - Construction
- Transition
5 activités :
- Expression des besoins
- Analyse
- Conception
- Implémentation
- Test
EN SPIRAL :
Développement itératif (prototypes)
Avantages :
CONCEPTION :
RUP (Rational Unified Process)
ARCHITECTURE GLOBALE Niveaux
Est une instance/implémentation de UP
ARCHITECTURE DETAILLEE conceptuels
Artéfact : élément d’information utilisé lors d’une
activité de développement logiciel PATRONS D’ARCHITECTURE
Activité : opération exécutée au sein d’un état
Modèle en couches :
Rôle : comportement et responsabilité d’un ensemble 3 couches :
de personnes
- Présentation (IHM)
- Applicative
2TUP (2 Track Unified Process) - Infrastructure
5 couches :
Branche fonctionnelle : Capture les besoins
- IHM
fonctionnels
- Logique applicative
Branche technique : Capitalise un savoir-faire
technique et/ou des contraintes techniques - Métier
Phase de réalisation : Réunir les deux branches, - Accès donnés
permettant de mener une conception applicative - Infrastructure
Modèle MVC :
- Model
Agile - Controller
4 valeurs : - View
- Priorité aux personnes et aux interactions sur les
procédures et les outils ARCHITECTURE PHYSIQUE
- Priorité aux applications fonctionnelles sur une 1-NIVEAU : couches situées sur la même machine
documentation pléthorique
- Priorité à la collaboration avec le client sur la 2-NIVEAUX : séparées sur 2 sites (serveur et postes)
négociation de contrat
- Priorité à l'acceptation du changement sur la
planification
QUALITE DE LA CONCEPTION
12 principes :
ARCHITECTURALE
1. Priorité à la satisfaction du client
2. Accueillir favorablement les changements de Critères de qualité :
besoins - Faible couplage
3. Livrer fréquemment des logiciels opérationnels - Forte cohésion
4. Collaboration étroite entre les parties
prenantes PATRONS DE CONCEPTION
5. Construire des projets autour de personnes
motivés.
6. Conversation face à face
De création De De
7. Logiciel opérationnel comme principale
structure comportement
mesure de progrès Factory Adapter Command
8. Maintenir un rythme de développement Builder Bridge Iterator
soutenable Prototype Composite Observer
9. Excellence technique et conception Singleton Facade State
10. La simplicité Factory method Proxy Template
11. Les équipes autoorganisées method
12. Réflexion et adaptation régulières Problèmes liés au non-respect des critères
de qualités :
- Difficulté de maintenabilité
ARCHITECTURE ET CONCEPTION DE
- Difficulté de réutilisabilité
LOGICIELS
- Problème de performance
Logique Physique
GESTION DE CONFIGURATION des violations d’accès mémoire ou erreurs
de gestion d’exception
LOGICIELLE
Discipline de gestion qui vise à contrôler Fuite de mémoire :
et gérer les éléments constitutifs d'un
Dysfonctionnement dans les opérations
logiciel tout au long de son cycle de vie.
d'allocation de mémoire. La quantité de
Elle comprend la gestion des versions, la
mémoire utilisée par le logiciel défaillant
gestion des modifications, la traçabilité
va en augmentant continuellement et
des composants, la gestion des baselines
gêne le déroulement des autres logiciels
(lignes de base), et la gestion de la
et les entraîne à des dysfonctionnements
documentation associée
Les principes de base : Vulnérabilité :
- La journalisation :
Controller les modifications Faiblesse dans un système informatique
apportées à chaque fichier ou permettant à un attaquant de porter
composant atteinte à l'intégrité de ce système, c'est-
- La gestion des versions : à-dire à son fonctionnement normal, à la
Gérer les changements confidentialité et l'intégrité des données
▪ Num de version : qu'il contient. On parle aussi de faille de
modification majeure sécurité informatique.
▪ Num de révision : ajout Faute de segmentation :
de fonctionnalités
▪ Num de correction : Dysfonctionnement dans des opérations
correction des fautes de manipulations de pointeurs ou
- La gestion des conflits d'adresses mémoire.
Optimiste : chaque développeur
Buffer Overflow :
travaille à son rythme (en cas de
conflit intervention manuelle) Le comportement de l'ordinateur devient
Pessimiste : utilisation de lock imprévisible à cause du Dépassement de
Architecture centralisée : tampon ou débordement est un bug par
- Tout passe par le serveur (nœuds) lequel un processus, lors de l'écriture dans
Architecture décentralisée : un tampon, écrit à l'extérieur de l'espace
- Chacun travaille à son rythme de alloué au tampon, écrasant ainsi des
manière indépendante informations nécessaires au processus.
TESTS ET VALIDATION Deadlock ou inter blocage :
Tester c’est exécuter le programme dans Un mécanisme de prévention provoque
l’intention d’y trouver des anomalies ou l'annulation de l'opération lorsque la
des défauts durée d'attente dépasse le délai
Le test logiciel est le maillon principal dans admissible
la chaîne d’assurance qualité produit Dysfonctionnement durant lequel
plusieurs processus s'attendent
ANOMALIES L OGICIELLES mutuellement, c'est à dire qu'ils attendent
Bug : chacun que l'autre libère les ressources
qu'il utilise pour poursuivre.
Dysfonctionnement causé par un défaut
de conception ou de réalisation METHODES DE TE STS
Crash applicatif ou Deny of Service: Méthode boite noire : fonctionnement externe
(fonctionnalités)
Logiciel cesse de fonctionner d’une
manière inattendue et abrupte à cause
Méthode boite blanche : fonctionnement interne
(code)
Méthode boite grise : combinaison des deux
approches (externe et interne)
TYPES DE TESTS
Test nominal : données volontairement
valides
Test de robustesse : données
volontairement invalides
Test unitaire : tester les fonctions ou les
modules du code par les programmeurs
Test d’intégration : valider le bon
fonctionnement d’une ou plusieurs
parties
Test de non-régression : tests liés au
changement
Test d’administration : se focaliser sur les
aspects d’administration
Test de sécurité : détecter les
instructions et les failles de sécurité