Vous êtes sur la page 1sur 6

GÉNIE 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 =

Discipline  méthodes, techniques et outils Interopérabilité et coulabilité  interagir en synergie

Basée sur le savoir  théorique Traçabilité  le suivi d’un produit aux diff stades

Le savoir-faire  compétence, ressource humaine Testabilité et vérifiabilité  le soumettre à une épreuve de


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
De qualité au meilleur prix  qualité/prix Il permet de délivrer et de modifier un
projet, un produit ou une fonctionnalité
FACTEUR DE QUALITÉ DE LOGICIEL très rapidement
Basée sur des rôles, composée de 6 à 10
personnes :
Critères externes Critères internes - Développeurs
- Testeurs
- Architectes
EXTERNES : - Product owner : le chef de produit
représentent le client, il définit les
Fiabilité  conformité de ses spécifications spécifications fonctionnelles et établit
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
Convivialité, utilisabilité  facile et agréable à utiliser bonne communication entre les
membres de l'équipe
Documentable  tuto ou un manuel utilisateur
User Story  Product Backlog  Sprint Backlog
Ergonomique  adaptable aux conditions de travail et
d’utilisateur User Story : capturer les besoins et les
fonctionnalités souhaitées du point de vue
Sécurité  absence du danger et la garantie offerte de l'utilisateur
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
Incrémentale Linéaire

Prototypage Cascade
Spirale En V
Incrémental

PAR PROTOTYPAGE :
 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 MÉTHODES

Lourde Agile
UP Scrum
RUP
2TUP

INCREMENTAL :
Processus Unifié
 Développer des applications en étendant Caractéristiques :
PROGRESSIVEMENT ses fonctionnalités.
- Piloté par les cas d’utilisation
 Permet d’éviter de TOUT CONCEVOIR, de
- Itératif et incrémental
TOUT TESTER
- Centré sur l’architecture
 Extension successive à partir d’un produit - Orienté risques
« Noyau » du logiciel
Composants :
Avantages :  4 phases :
- Les intégrations sont progressives - Etude d’opportunité
Inconvénients : - Elaboration
- Construction
- Risque de fonctionnalités inachevées
- Transition
 5 activités :
- Expression des besoins
- Analyse
- Conception
- Implémentation
- Test

EN SPIRAL :

 Développement itératif (prototypes)


Avantages :
- Modèle complet, complexe et général RUP (Rational Unified Process)
Inconvénients :  Est une instance/implémentation de UP
Artéfact : élément d’information utilisé lors d’une
activité de développement logiciel
Activité : opération exécutée au sein d’un état
PATRONS D’ARCHITECTURE

 Modèle en couches :
 3 couches :
- Présentation (IHM)
- Applicative
- Infrastructure
ARCHITECTURE PHYSIQUE  5 couches :
2TUP (2 Track Unified Process)
1-NIVEAU : couches situées sur la même machine - IHM
 Branche fonctionnelle : Capture les besoins - Logique applicative
fonctionnels
2-NIVEAUX : séparées sur 2 sites (serveur et postes) - Métier
 Branche technique : Capitalise un savoir-faire
- Accès donnés
technique et/ou des contraintes techniques
 Phase de réalisation : Réunir les deux branches, - Infrastructure
permettant de mener une conception applicative  Modèle MVC :
- Model
- Controller
Agile - View
4 valeurs :
- Priorité aux personnes et aux interactions sur les
procédures et les outils QUALITE DE LA CONCEPTION
- Priorité aux applications fonctionnelles sur une ARCHITECTURALE
documentation pléthorique
- Priorité à la collaboration avec le client sur la
négociation de contrat
- Priorité à l'acceptation du changement sur la
planification
12 principes :
1. Priorité à la satisfaction du client  Critères de qualité :
2. Accueillir favorablement les changements de - Faible couplage
besoins - Forte cohésion
3. Livrer fréquemment des logiciels opérationnels
4. Collaboration étroite entre les parties PATRONS DE CONCEPTION
prenantes
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
Builder Bridge Iterator
8. Maintenir un rythme de développement
Prototype Composite Observer
soutenable
Singleton Facade State
9. Excellence technique et conception Factory method Proxy Template
10. La simplicité method
11. Les équipes autoorganisées
Problèmes liés au non-respect des critères
12. Réflexion et adaptation régulières
de qualités :
- Difficulté de maintenabilité
ARCHITECTURE ET CONCEPTION - Difficulté de réutilisabilité
DE LOGICIELS - Problème de performance

GESTION DE CONFIGURATION
Logique Physique LOGICIELLE
CONCEPTION :

 ARCHITECTURE GLOBALE Niveaux  Discipline de gestion qui vise à contrôler


et gérer les éléments constitutifs d'un
 ARCHITECTURE DÉTAILLÉE conceptuels
logiciel tout au long de son cycle de vie. Dysfonctionnement dans les opérations
Elle comprend la gestion des versions, la d'allocation de mémoire. La quantité de
gestion des modifications, la traçabilité mémoire utilisée par le logiciel défaillant
des composants, la gestion des baselines va en augmentant continuellement et
(lignes de base), et la gestion de la gêne le déroulement des autres logiciels
documentation associée et les entraîne à des dysfonctionnements
 Les principes de base :
- La journalisation : Vulnérabilité :
 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
de fonctionnalités Faute de segmentation :
▪ 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
travaille à son rythme (en cas de Buffer Overflow :
conflit intervention manuelle)
 Pessimiste : utilisation de lock Le comportement de l'ordinateur devient
 Architecture centralisée : imprévisible à cause du Dépassement de
- Tout passe par le serveur (nœuds) tampon ou débordement est un bug par
 Architecture décentralisée : lequel un processus, lors de l'écriture dans
- Chacun travaille à son rythme de un tampon, écrit à l'extérieur de l'espace
manière indépendante alloué au tampon, écrasant ainsi des
informations nécessaires au processus.
TESTS ET VALIDATION
Deadlock ou inter blocage :
Tester c’est exécuter le programme dans
l’intention d’y trouver des anomalies ou Un mécanisme de prévention provoque
des défauts l'annulation de l'opération lorsque la
Le test logiciel est le maillon principal dans durée d'attente dépasse le délai
la chaîne d’assurance qualité produit admissible
Dysfonctionnement durant lequel
ANOMALIES LOGICIELLES plusieurs processus s'attendent
mutuellement, c'est à dire qu'ils attendent
Bug :
chacun que l'autre libère les ressources
Dysfonctionnement causé par un défaut qu'il utilise pour poursuivre.
de conception ou de réalisation
METHODES DE TESTS
Crash applicatif ou Deny of Service:
Méthode boite noire : fonctionnement externe
Logiciel cesse de fonctionner d’une (fonctionnalités)
manière inattendue et abrupte à cause
Méthode boite blanche : fonctionnement interne
des violations d’accès mémoire ou erreurs
(code)
de gestion d’exception
Méthode boite grise : combinaison des deux
Fuite de mémoire :
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é

Vous aimerez peut-être aussi