Académique Documents
Professionnel Documents
Culture Documents
Conçu par :
Christian BELINGA
Ingénieur Informaticien, Master en SSN Université de
Bourgogne Dijon
Fiche de présentation
1. INTRODUCTION AU GENIE LOGICIEL
5. MOTS CLES : Projets, Agile, Design Thinking, scrum, sprints, Backlog, cycle de v ie
11. CREDITS :
14. ORGANISATION
Le Génie Logiciel est né en Europe dans les années 70. Il a été défini par un
groupe de scientifiques pour répondre à un problème qui devenait de plus en
plus évident : le logiciel n’est pas fiable et il est difficile de réaliser dans des
délais de temps prévus.
Petit e historique :
I. La crise du logicielle
Elle nait dans les années 1970 aux Etats Unis, et est perçue à travers les
symptômes suivants :
Remarque : Une erreur, petite soit -elle peut être dangereuse par exemple pour
la commande en temps réel de l’avion, … D'après le cabinet de conseil en
technologies de l'information Standish Group International, les pannes causées
par des problèmes de logiciel ont coûté en 2000 aux entreprises du monde
entier environ 175 milliards de dollars, soit deux fois plus qu’en 1998 (Le Monde
23/10/01).
II. Le logiciel
Introduction
Contenu
Coût Calendrier
Le chef de projet doit avoir recours à plusieurs méthodes :
Depuis toujours, les projets sont gérés avec la méthode dite classique,
représentée par le schéma ci-après.
SCHEMA
Avec la méthode dite classique, il faut tout bien faire du premier coup,
car elle ne permet pas de retour en arrière. Une décision où un problème
rencontré dans une phase peut remettre en cause partiellement ou
totalement les phases précédentes validées.
Les méthodes dites agiles vont nous permettre de répondre à toutes ces
questions.
Si l’approche agile est nouvelle pour vous, il est important de partir sur de
bonnes bases, c'est -à-dire le terme méthode est trop réducteur pour parler de
cette façon de concevoir, développer et livrer un logiciel. Il s’agit de bien plus
qu’une méthode ; on parle de paradigme agile, de philosophie agile, de
mouvement agile ou d’approche agile.
2. Design Thinking
Mais en quoi consiste réellement le design thinking ? Quels sont ses grands
principes et ses différentes étapes ? Quelles sont ses origines ? Quelles sont ses
plus grands avantages ?
a) Définition
Le Design Thinking est une méthodologie innovante qui permet de transformer
les idées et les projets en actions réelles et en prototypes tangibles. C’est un
modèle de management moderne parfaitement adapté au traitement des
problématiques complexes à l’issue incertaine et caractérisées par des prises
de décision qui impliquent les hommes et engagent l’entreprise.
Le design thinking naît dans les années 50, aux Etats-Unis, lorsque le
publicitaire américain Alex Osborn met au point la technique du «
brainstorming ». L’idée est de réunir son équipe et stimuler sa créativité en lui
faisant brasser différentes idées afin de résoudre un problème en trouvant des
solutions.
Puis, dans les années 70, l’ouvrage Experiences in Visual Thinking est publié
par Robert H. McKim. Celui-ci-développe les différents préceptes du Design
Thinking. Des préceptes qui seront largement développés les années qui
suivent par Peter Rowe qui publie un ouvrage intitulé « Design Thinking » en
1987.
Dans les années 2000, de plus en plus de publication sont faites sur le design
thinking. Des colloques sont également tenus sur le sujet et des cours sont
donnés aux étudiants pour leur apprendre les bases de cette méthode
d’innovation. En 2012, trois écoles de design thinking voient le jour, à Paris, Pékin
et Tokyo.
1. Le Scrum
Dans une gestion de projet de type « Agile », il n’y a plus de chef de projet mais
deux acteurs qui le remplace : Le Product Owner et le ScrumMaster.
a) Le Product Owner
Le Product Owner est le stratège du projet. C’est lui qui a pour mission de définir
les fonctionnalités du produit final. C’est aussi lui qui choisit les dates et
contenus des différentes versions. Il définit les priorités dans les fonctionnalités
et valide ou non les travaux à chaque fin de Sprint. C’est à lui que revient aussi
la responsabilité du retour sur investissement ainsi que l’acceptation ou le rejet
des résultats.
C’est la personne qui représente le client et qui est la plus impliquée dans la
gestion du « backlog de produit ».
b) Le ScrumMaster
a) Le Scrum quotidien
b. Le sprint
Le Scrum est une méthode de gestion itérative. Ces itérations sont appelées «
sprint ». Chaque sprint dure entre 2 et 4 semaines selon la charge de travail,
l’équipe disponible ainsi que le nombre de fonctionnalités voulues à la fin de
cette durée.
Des changements peuvent être appliqués pendant le sprint mais cela va avoir
une incidence sur les itérations suivantes. Chaque itération aboutit à une
version partielle et testable du produit. Cela a pour but, en fin de sprint, de faire
un point sur ce qui a été fait et d’avoir un visuel de l’effet ou de l’interaction
que cela a dans le produit.
En fin d’itération, l’équipe fait une rétrospective avec le ScrumMaster de ce
qui s’est passé pendant le sprint et de ce qu’il y a à faire pour le suivant. De
son côté, le Product Owner se voit présenté une version testable du produit
pour lui montrer l’avancée du projet.
d. La release
Pour optimiser et améliorer la gestion du projet, les sprints sont regroupés en
releases. Chacune est composée de plusieurs sprints. La release représente la
livraison d’une version partielle mais plus avancée qu’à la fin des sprints.
Dans cette phase, le client logiciel et les ingénieurs logiciels se concertent pour
la définition des objectifs et des besoins du futur logiciel. Il s’agit principalement
d’exprimer formellement les besoins du futur logiciel de façon non ambigüe et
de réaliser sa faisabilité. D’un point de vue managérial, cette phase sert aussi
à l’évaluation du coût du logiciel, ainsi qu’à l’élaboration du plan de travail.
L’analyse des besoins définit le contrat entre le client et les ingénieurs logiciels.
2. La conception générale
Elle vise à élaborer les spécifications de la structure du logiciel. Elle se base sur
l’analyse des besoins. Les fonctionnalités retenues ici sont exprimées à travers
des modules ou des unités. Il est important par ailleurs de s’assurer ici que
l’ensemble des fonctionnalités retenues permet de satisfaire les besoins du
logiciel. Les fonctionnalités identifiées dans la conception générale seront plus
explicites dans la phase de conception détaillée.
3. La conception détaillée
Cette phase concerne l’écriture du code logiciel et les premiers tests. Le code
est développé suivant la structuration en modules retenue aux précédentes
étapes et en accord avec les spécifications de la conception détaillée. Une
fois le code des modules terminé, ceux-ci sont testés indépendamment pour
s’assurer qu’ils satisfont les fonctionnalités attendues.
5. L’intégration modulaire
Dans cette phase, les modules développés et testés sont intégrés. Les tests sont
réalisés pour s’assurer que l’ensemble des modules fonctionne correctement.
Il est important dans cette phase de réaliser des tests dans un environnement
proche du futur environnement d’utilisation du logiciel pour éventuellement
identifier certains problèmes.
6. La v alidation et le déploiement
C’est dans cette phase que le logiciel est installé dans son futur environnement
d’utilisation après validation préalable du client. Cette phase introduit aussi la
formation des utilisateurs et est donc l’occasion pour ceux-ci de formuler les
écarts entre les fonctionnalités offertes par le logiciel et celles attendues.
Les bugs et les fautes sont corrigés dans la phase de maintenance corrective.
La maintenance évolutive quant à elle vise certaines fonct ionnalités du
logiciel. La maintenance est généralement très coûteuse pour le client, car elle
débute à la livraison du logiciel et se termine à la fin de son exploitation.
8. Quelques cycles de v ie
• Le client de sait pas ce qu’il veut : ceci est souvent dû au fait que la
nécessité du logiciel ne s’inscrit pas principalement dans les besoins
immédiats du client. C’est le cas d’une entreprise voulant s’approprier
une technologie par pur esprit de mode.
• Le client ne sait pas exprimer ce qu’il veut : ceci est dû à la difficulté pour
le client d’être précis, concret et complet. Sur tous les besoins imprécis,
l’analyste doit suggérer et exprimer au client des exigences beaucoup
plus précises. Ne jamais penser à la place du client.
• Incompréhension entre client et analyste : elle est liée à l’expression des
besoins. C’est le cas des besoins validés par le client et compris
difficilement par l’analyste, qui devrait multiplier les discussions avec le
client afin de capter le sens qu’il donne à chaque besoin.
L’analyse peut être structurée en trois phases :
• Collecte d’information
• Expression des besoins
• Spécification des besoins
a. Collecte d’informations
d. Document d’analyse
Définition
Les problèmes de qualité des logiciels, connus depuis les années 1960, sont par
ailleurs à l’origine du génie logiciel : la science de la création de logiciels, y
compris toutes les difficultés qui y sont liées (respect des coûts, des délais, du
cahier des charges et du niveau de qualité).
a. La capacité fonctionnelle
b. La facilité d’utilisation
Elle porte sur l’effort nécessaire pour apprendre à manipuler le logiciel. E n font
partie la facilité de compréhension, d’apprentissage, d’exploitation et la
robustesse (une utilisation incorrecte n’entraine pas de dysfonctionnement).
c. La fiabilité
Il s’agit de la capacité d’un logiciel à rendre des résultats corrects quelles que
soient les conditions d’exploitation. En fait partie la tolérance de pannes (la
capacité d’un logiciel de fonctionner, même en étant handicapé par la
panne d’un composant).
d. La performance
e. La maintenabilité
Elle porte sur l’effort nécessaire en vue de corriger ou de transformer le logiciel.
En font partie l’extensibilité (le peu d’effort nécessaire pour y ajouter de
nouvelles fonctions).
f. La portabilité
Pour apprécier la qualité d’un logiciel, il est nécessaire qu’il soit évalué sur la
base des éléments suivants :
En fait, les moyens que l’entreprise juge nécessaires pour parvenir à la qualité
souhaitée en matière de SI (systèmes d’information), ses dispositions
s’attachent à définir un cadre de production, de mise en œuvre et
d’exploitation des applications.
En matière de génie logiciel, les ingénieurs et experts ont défini les principes
de qualité d’un logiciel. Nous en comptons sept :
Exemple :
V. Contrôle qualité
Le contrôle qualité d’un logiciel renvoie le plus souvent aux revues de projet :
Revue de projet :
a. Risques
Voisin des virus, un cheval de Troie, aussi appelé Troyen ou Trojan, est un
programme qui, sous les apparences d’un logiciel utile, autorise l’exécution de
commandes sur votre ordinateur depuis un ordinateur distant via internet.
Certains chevaux de Troie, les backdoors, permettent de contrôler à distance
votre ordinateur : après avoir infecté votre machine (lors du téléchargement
d’un fichier ou de l’ouverture d’une pièce jointe), le programme permet,
lorsque vous êtes connecté à Internet, d’avoir un accès libre en lecture, en
écriture ou en suppression à la totalité des fichiers présents sur votre disque dur,
mais également de faire exécuter à votre ordinateur des actions illégales
(attaques de serveurs, intrusion dans des sites sensibles…).
b. Protection
Les adwares sont des spywares qui utilisent les données récoltées (pages web
visitées, essentiellement) pour afficher des publicités ou envoyer des mails
ciblés ; certains sont capables de modifier la page par défaut de votre
navigateur. Les spywares sont généralement inclus dans les logiciels utilitaires :
logiciels P2P, lecteurs médias (DivX) en sont des vecteurs connus.
Les cookies sont également des fichiers qui recueillent des informations sur la
navigation des internautes, mais ils ne servent qu’à faciliter la navigation dans
un site donné ; ils restent en principe stockés sur le disque dur de l’utilisateur et
ne sont pas transmis à des tiers.
b. Protection
Les produits les plus vantés sont les sites pornographiques, les médicaments, le
crédit financier, ou des escroqueries prétendant enrichir rapidement. Une
autre forme de spam, appelée phishing, consiste à tromper le destinataire en
faisant passer le message pour un message de sa banque ou d’un quelconque
service protégé par un mot de passe. Le but est de récupérer les données
personnelles du destinataire en les attirant sur un site factice enregistrant leurs
actions.
b. Protection
Il est difficile, au niveau de l’utilisateur, de lutter contre les spams ; quelques
mesures de prévention sont toutefois possibles :
5. Hoaxes
a. Risques
Il existe de faux virus appelés hoaxes : un hoax se présente en général sous la
forme d’un mail d’alerte contre un nouveau virus ; le message se réclame
souvent d’un fabricant connu d’antivirus ou de matériel informatique, il signale
un fichier dangereux et vous conseille de le détruire, et demande qu’on diffuse
largement l’information. Le but des hoaxes est le simple plaisir, pour leur
concepteur de constater l’affolement et les encombrements provoqués par
leur plaisanterie.
b. Protection
Lors de la réception d’un message douteux de ce type, avant de supprimer un
fichier essentiel de Windows et d’alerter tout votre carnet d’adresse,
renseignez-vous… On peut trouver sur internet des sites d’information sur ces
fausses alertes.
6. Problèmes d’utilisateur
a. Risques
Les utilisateurs eux-mêmes peuvent être à l’origine des pertes de données : par
malveillance ou par maladresse. Documents non enregistrés, effacés ou
perdus lors des manipulations hasardeuses sont sources d’importantes pertes
de temps et d’animosité à l’égard de l’outil informatique.
b. Protection
La protection contre ce risque passe par une connaissance de base du
fonctionnement d’un ordinateur, et en particulier du système de fichiers (notion
d’arborescence, dossier, fichier…). Des habitues efficaces et bien maitrisées
de création et d’enregistrement de documents sont indispensables : création
de documents directement dans un dossier adapté, enregistrement à
intervalles réguliers pendant le travail, la maitrise des opérations
copier/couper/coller limite les risques de fausse manœuvre.
7. Mots de passe
a. Risques
Un certain nombre de ressources sont protégées par mot de passe pour
garantir que leur utilisation reste le fait de personnes autorisées : accès à un
ordinateur, voire à certains dossiers et fichiers, connexion internet, accès à une
boite de messagerie, accès à certaines pages web… Le vol de mot de passe
(par simple lecture s’il est placé à un endroit trop facilement accessible, ou par
devinette s’il est trop simple) permet à un des usagers non autorisés d’accéder
à des outils ou à des données qui ne le concernent pas ; l’usage qu’il peut en
faire serait alors imputé à l’utilisateur dont il a usurpé le mot de passe.
b. Protection
Le caractère relativement peu sensible des données d’une école ne nécessite
pas une politique très contraignante en matière de mots de passe. Cependant
un minimum de sécurité et de confidentialité est recommandé :
• L’accès à un ordinateur de gestion devra être protégé par mot de
passe, puisqu’il contient des données confidentielles sur les élèves.
• Ce mot de passe ne sera pas affiché sur un post -it collé sur l’ordinateur
8. Partage
a. Risque
L’intérêt principal d’un réseau est le partage des ressources : dossiers et fichier,
accès internet, imprimantes… Par défaut, lors de l’installation d’un réseau, rien
n’est partagé, ce qui permet de n’ouvrir à l’accès depuis une autre machine
que les ressources souhaitées en les protégeant éventuellement par mot de
passe. Les risques liés au partage sont de deux types :
9. Sauv egarde
a. Risques
Malgré toutes les protections prises contre les risques évoqués plus haut, il peut
arriver que des données soient perdues ; le temps mis à les créer, la complexité
de leur élaboration, leur caractère vital sont autant de facteurs aggravant de
cette pert e ; c’est pourquoi le recours à des procédures de sauvegarde est
indispensable au moins pour les données essentielles : il s’agit de conserver en
lieu sûr une copie de ces données.
b. Protection
Une sauvegarde n’a de sens que si elle est :
• Rigoureuse : il faut définir précisément les fichiers à sauvegarder. Ceci
suppose une connaissance du système de fichiers de l’ordinateur et une
gestion assez rigoureuse lors de l’enregistrement de vos documents.
• A jour : donc assez fréquente pour sauvegarder la dernière version de
chaque document.
• Récupérable : il s’agit donc d’utiliser un support et un logiciel
appropriés et de les avoir testés avant d’avoir besoin d’une vraie
restauration de données.