Ce cours est un plagit du cours donnés par Anastasiya Basanets
Anastasiya.Basanets@collegeahuntsic.qc.ca
Il y a une excellente source pour mettre de l'ordre dans ce tas de kakashka: https://neverworkintheory.org/
Beaucoup de types différents de logiciels :
Chaque logiciel est développé en utilisant une approche différente, qui demande réflexion!
On ne programme pas de la même manière un jeu vidéo et un électrocardiogramme.
Livraison: Pression du marché (ex.: sortir pour Noel, pour une plateforme, pour devancer la compétition).
Impact d'un bogue: On fera un correctif (« patch »).
Livraison: Préférable d’être en retard que de livrer un produit dangereux.
Impact d'un bogue: Dommages aux personnes
On ne programme pas de la même manière un jeu vidéo et un électrocardiogramme.
Priorités du développement: Découvrir les besoins des clients, trouver des solutions, implémenter, et valider que cela correspond aux besoins, etc.
Priorités de la maintenance: Corriger les bogues, fermer les failles de sécurité, identifier des besoins émergents, assurer que l'architecture reste saine, etc.
Ainsi, dans un projet typique, entre 60% et 80% de l’effort consacré au logiciel a lieu après la livraison, soit avec la correction des bogues et la maintenance.
Le développement doit donc produire un logiciel maintenable, en plus de 4 défis majeurs.
| Discipline | Exemple d’activités |
|---|---|
| Exigences | Définition du problème Définition des exigences (spécifications) |
| Conception | Conception architecturale Conception détaillée |
| Implémentation | Codage et débogage Tests unitaires Intégration et tests d’intégration |
| Tests | Tests boîtes blanche (vérification) Tests boîte noire (validation) |
| Déploiement | Période de rodage (ajustement post-livraison) Maintenance corrective (correction bogues) Maintenance perfective (ajout de fonctionnalités) |

Pourquoi est-il important de penser à la maintenance du logiciel avant de commencer le développement ?
Un logiciel n'est pas comme un bâtiment : il ne peut pas s'effondrer et tuer une personne. En conséquence, il est normal que les logiciels soient moins stables que les bâtiments
Vrai
Faux
Processus de développement logiciel: Ensemble d'activités, de documents et des compétences nécessaires pour la réalisation d'un produit. Approche adaptée au contexte.
Cycle de vie: Vue de très haut niveau décrivant l'ordre dans lequel les disciplines sont effectuées.
Activités: Élément de travail. Décrit les tâches qui réalisent les artéfacts.
Artéfacts: Élément d’information. Généralement un document, mais peut être un courriel, ou même un échange verbal.
Rôle: Décrit les compétences requises pour faire une activité. Les responsables assignées à un rôle sont responsables des artéfacts produit par l’activité.
Faisable si toutes les informations requises sont disponibles au début du projet.
Avantages:
Cascade peut être approprié lorsque:
*** Un changement mineur peut avoir des répercussions à travers tout le projet.
V : Activités de développement.
W, X : Ajout des activités d'assurance-qualité.
Itérations (cycles rapides) de production d’un produit fonctionnel. Les itérations sont indépendantes les unes des autres. Généralement, une itération dure entre 2 à 6 semaines. Une portion des exigences est connue au préalable.
Avantages
Désavantages
Servent à définir le travail à faire : budget, échéancier, contrat avec les clients.
Servent de base a la conception: document d'architecture permettant la création du code.
Servent à définir les tests d'acceptation.
Une simple formulation du problème sur quelques pages. Problème décrit du point de vue des utilisateurs (décrit leurs besoins).
Besoin ≠ Exigence
n.b.: "technical problems" ne fait meme pas parti du top 5
construire le plus rapidement possible
Évite de construire des choses innnutile
Force d'avoir un produit rapidement
https://medium.com/@coachjennie/the-freedom-of-building-the-plane-while-flying-it-96dd2d899656
Pis 1 000 000 de résultats sur google
https://neverworkintheory.org/