Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
© C. Kolski
Génie Logiciel et
Interaction Homme-Machine
Christophe KolskiProfesseur en Informatique
Laboratoire d’Automatique, Mécanique et Informatique, industrielles et Humaines (LAMIH)
Département Informatique
Université Polytechnique Hauts-de-France
https://www.uphf.fr/LAMIH/en/membre?id=kolski_christophe
© C. Kolski
Plan
- Introduction sur le Génie Logiciel et l’Interaction Homme-Machine, briques de
base méthodologiques
- UML
- Méthodes agiles avec SCRUM
- Modèles de base en Interaction Homme-Machine
- Conclusion
© C. Kolski
Génie LogicielGénie Logiciel (GL) :
- Science de l'ingénieur, terme apparu en 1968 (Department of Defense (DoD)
- Définitions :
“Ensemble des activités de conception et de mise en oeuvre des produits et des procédures
tendant à rationaliser la production de logiciel et son suivi" (Arrêté ministériel du 30/12/1983)
"Ensemble des procédures, méthodes, langages, ateliers, imposés ou préconisés par les normes
adaptées à l'environnement d'utilisation, afin de favoriser la production et la maintenance de
composants logiciels de qualité" (JAULENT, 1990)
- Objectifs :
Logiciels sûrs, conviviaux (ergonomiques), évolutifs, économiques ; produire
logiciels de qualité (normes ISO, AFNOR, IEEE), “faire bien dès la première fois”
- Rigueur dans les démarches de travail ; analyser, concevoir puis réaliser et tester
(importance des cycles de vie, des méthodes) ; vers des approches incrémentales, itératives, agiles
- Lectures conseillées en GL (cf. B.U.) :
SOMMERVILLE (1994 et éditions récentes), PRINZ (2005), GAUDEL et al. (1996),
STROHMEIER et BUCHS (1996), GUSTAFSON (2003)…
Ressource : SWEBOK, Guide to the Software Engineering Body of Knowledge (2014)
© C. Kolski
- Interaction homme-machine : discipline consacrée à la conception, la mise en œuvre et à
l’évaluation des systèmes informatiques interactifs destinés à des utilisateurs, ainsi qu’à l’étude des
principaux phénomènes qui les entourent (SIGCHI Curriculum Development Group, 1992)
Interface de l’Application
Contrôleur de
DialoguePrésentation
Utilisateur
Application
Système Interactif
Tâche 0
Tâche 1
par
Tâche 2
alt
seq
Tâche11
Tâche12
Tâche13
Action1
Action2
Modèle
de
Seeheim
…- Associations en IHM :
Au niveau international : ACM SIGCHI http://sigchi.org
Au niveau national : AFIHM http://www.afihm.org
Interaction Homme-Machine
© C. Kolski
IHM et Conception centrée utilisateur
- Conception centrée utilisateur (User-centered design) (NORMAN, 1986) ; selon (ISO 13407) :
► UCD : conception basée sur l’humain, conception ergonomique, basée sur l’utilisabilité…
► UCD : approche plaçant l’utilisateur au centre du processus de développement
► UCD : collection de techniques, méthodes, outils, procédures et processus pour la conception de
produits et systèmes utilisables
► UCD : pratique de conception d’un produit que l’utilisateur peut utiliser ; nécessite usage,
opération, service, tâche
Guider le développement par les besoins des utilisateurs plutôt que par les possibilités technologiques
Théorie de l’action
de NORMAN (1986)
© C. Kolski
Eléments méthodologiques en Génie Logiciel (cycles de vie)
- Modèle en cascade avec retour (Waterfall, BOEHM, 1981), importance de la
documentation :
- Retours arrières limités seulement à la phase
immédiatement antérieure, contrôle imposé à
la fin de chaque étape, stabilisation rapide du
produit (nécessité d’en avoir une vision précise)
Spécification
Validat ion
Faisabilit é, cahier des charges
Validat ion
Conception
Vérif ication
Conception dét aillée
Vérif ication
Codage
T ests unitaires
Int égration
Vérif ication
Exploit at ion Maintenance
Revalidation
Documentation
Mise en œuvre
T est
Rem : puisque modèle
générique, rien
d’explicite sur l’IHM
© C. Kolski
- Modèle en V : chaque étape de conception prévoit une étape d'évaluation/validation
(plan, moyens, méthodes) ; préconisé par les organismes de qualité
Spécification fonctionnelle
Conception préliminaire
Conception détaillée
Codage du logiciel
Tests unitaires
Intégration et Tests
d'Intégration
Recette
Spéc
ific
atio
nC
once
pti
on
Val
idat
ion
Réa
lisa
tion
Orientation, faisabilité des
besoins
Exploitation, maintenance
Eléments méthodologiques en Génie Logiciel (cycles de vie)
- stabilisation rapide du produit (nécessité d’en avoir une vision précise)
Rem : idem, puisque
modèle générique, rien
d’explicite sur l’IHM
© C. Kolski
- Modèle Spirale (BOEHM et al., 1984) : axé sur l'analyse du risque, processus itératif
► Quand l’image du produit visé n’est pas claire a priori
analyse du risque prototype
1
prototype 2
prototype 3
prototype opérationnel
simulation, modèles, évaluations
analyse du risque
analyse du risque
analyse du risque
concept de la miss ion
Evaluer les alternatives, identifier , résoudre les risques
planification de l'analyse et du cycle de
vie
Déterminer les objectifs, les alternatives , les contraintes
Planifier les phases suivantes
spécification du logiciel
validationplan de développement
conception du logiciel
validation de la conception et vérification
conception détaillée
codagetes ts uni-
taires
intégration et tes ts
tes ts de recette
implémentation
Développer, vérifier le produit du niveau suivant
plan d'intégration et
de tests
Progression au travers des étapes
Coûts cumulés
Eléments méthodologiques en Génie Logiciel (cycles de vie)
Influence sur le
modèle agile
(cf. plus loin)
Rem : idée de
prototype (au sens
large, incluant les
maquettes)
© C. Kolski
Eléments méthodologiques en Génie Logiciel (cycles de vie)
- Prépondérance actuellement des méthodes agiles (cf. partie 3)
Backlog : liste de fonctionnalités, user stories…
© C. Kolski
Les méthodes du GL : qu’est-ce qu’une méthode ?
- Doit comprendre :
► Démarche : processus opératoire grâce auquel s'effectue le travail de modélisation, de
description, de réalisation, d'évaluation du système
- basée sur un cycle de vie
► Des modèles : ensemble de concepts et de règles pour les
utiliser, destiné soit à expliquer et construire la représentation des
phénomènes organisationnels, soit à expliquer et représenter les
éléments qui composent le logiciel et leurs relations
- Aspects textuels et graphiques
► Des langages : ensemble de constructions permettant de décrire formellement les
spécifications d'un système
► Des outils : supports de la démarche (documentation, évaluation,
simulation, conception, réalisation...)
- Supports logiciels, Ateliers de Génie Logiciel (AGL)
© C. Kolski
Les classes de méthodes du GL existantes
- Méthodes "cartésiennes“ :
► Pour étudier un phénomène, le diviser en éléments simples, étudier ces éléments, les
réunir et les synthétiser“ (décomposition descendante, approche fonctionnelle,
structurée ; premières méthodes (60/70), SASD, SA_RT, SADT…
- Méthodes "systémiques“ :
► Approche systémique de l'organisation, de l’entreprise : insertion d'un SI dans celle-
ci : MERISE, REMORA...
- Méthodes “formelles“ :
► Processus : vu comme une séquence d'étapes qui transforment graduellement, par
affinements successifs, une spécification en une réalisation ; notations et
vérifications mathématiques formelles : B, VDM, Z...
- Méthodes "objets“ (ou “orientées objets”) :
► De la POO à l'AOO et la COO ; engouement actuellement, nombreuses
méthodes (OMT, Objectory, OOA/OOD...) puis convergence : UML
- Méthodes “agiles“ (VICKOFF, 2005) :
► Adaptation au changement, développement rapide, prise en compte des nouvelles
architectures et technologies : RAD, XP (Extreme Programming), SCRUM…
© C. Kolski
Qualité du Logiciel(actuellement)
- Evolution de ISO/IEC 9126 : ISO 25000, Software engineering – Software product
Quality Requirements and Evaluation (SQuaRE), 2005, révisée en 2014)
Adéquation
fonctionnelle
Performance Compatibilité Fiabilité Sécurité Maintenabilité PortabilitéFacilité
d’utilisation
(utilisabilité)
Applicable à un produit logiciel ou un système intégrant un logiciel
© C. Kolski
Traduction provenant de :
https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel
© C. Kolski
Qualité du Logiciel(actuellement)
- Evolution de ISO/IEC 9126 : ISO 25000, Software engineering – Software product Quality
Requirements and Evaluation (SQuaRE), 2005, révisée en 2014) (suite)
Caractérise l’impact qu’a un produit (logiciel ou système) sur des acteurs (stakeholders). Ceci
est déterminé par la qualité du logiciel, du matériel et de l’environnement opérationnel, ainsi
que par les caractéristiques des utilisateurs, des tâches et de l’environnement social
© C. Kolski
Traduction provenant de :
https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel
© C. Kolski
- Définitions (BRANGIER et BARCENILLA, 2003) :
► Affordance d’un produit : renvoie à sa capacité à être compris et utilisé sans avoir besoin
d’information supplémentaire.
► Apprenabilité : facilité d’apprentissage appréciée lors de la première confrontation au produit ou
après une période d’inactivité.
► Efficacité : représente ce qui produit l’effet attendu par l’utilisateur. Elle concerne la précision ou
degré d’achèvement selon lesquels l’utilisateur atteint des objectifs spécifiés (ISO 9241, 1998).
► Efficience : la capacité de produire une tâche donnée avec le minimum d’efforts ; plus l’effort est
faible, plus l’efficience est élevée. Elle concerne le rapport entre les ressources dépensées et la
précision et le degré d’achèvement selon lequel l’utilisateur atteint des objectifs spécifiés
(ISO 9241-11, 1998).
► Ingénierie de l’utilisabilité : processus de conception permettant de définir l’utilisabilité d’un
produit quantitativement et prédictivement.
► Satisfaction : se réfère au niveau de confort ressenti par l’utilisateur lorsqu’il utilise un objet
technique. C’est une évaluation subjective provenant d’une comparaison entre ce que l’acte d’usage
apporte à l’individu et ce qu’il s’attend à recevoir.
► Utilisabilité : dans son acceptation la plus large, désigne la « facilité d’apprentissage » et la
« facilité d’utilisation » d’un produit, service ou système technique. C’est le « degré selon lequel un
produit peut être utilisé, par des utilisateurs identifiés, pour atteindre des buts définis avec efficacité,
efficience et satisfaction, dans un contexte d’utilisation spécifié » (ISO 9241-11, 1998).
Critères pour la conception et l’évaluation (sous l’angle de l’IHM)
© C. Kolski
Critères pour la conception et l’évaluation (sous l’angle de l’IHM)
- Expérience utilisateur (ou UX pour User eXperience):
Tentative de qualification du résultat (bénéfice) et du ressenti de l'utilisateur
(expérience) lors d'une manipulation (utilisation provisoire ou récurrente) d'un objet
fonctionnel ou d'une interface utilisateur de manière heuristique par un ensemble de
facteurs.
Sous entend un impact émotionnel
cumulé à un bénéfice rationnel ;
viser à créer une expérience agréable
The User Experience Honeycomb
http://semanticstudios.com/publications/semantics/000029.php
© C. Kolski
Contribution à la communication et la qualité par la
modélisation et la documentation
- Quel que soit le cycle de vie utilisé :
Importance de la documentation à chaque étape (bibliothécaire du projet)
Comprendre les besoins des utilisateurs ; être proche d’eux ; importance des démarches
participatives ; utiliser des supports de dialogue (importance de la modélisation !)
Bibliothécaire du projet
Dialogue entre les
différents intervenants
Autres intervenants
(graphistes, ergonomes…)
Experts
du domaine
Décideurs
Utilisateurs
Informaticiens
(Analystes, concepteurs,
programmeurs, testeurs…)Modèles du GL (ex. UML) et de
l’IHM) (tâches, profils utilisateur…) :
contribution à une base de travail
commune dans un projet
© C. Kolski
Bibliographie
GAUDEL M.C., MARRE B., SCHLIENGER F., BERNOT G. (1996). Précis de génie logiciel.
Editions Masson, Paris.
GUSTAFSON D. (2003). Génie Logiciel. Collection Schaum's, Paris : EdiScience.
PRINZ J. (2005). Le génie logiciel. Collection Que sais-je ?, Paris, Presses Universitaires de France.
SOMMERVILLE I. (1994). Le génie logiciel, 4ème édition, Addison-Wesley.
STROHMEIER A., BUCHS D. (1996). Génie logiciel : principes, méthodes et techniques. Presses
Polytechniques et Universitaires Romandes, Lausanne.
SWEBOK, Guide to the Software Engineering Body of Kowledge V3.0 (2014), IEEE.
VICKOFF J.P. (2005). Estimation et architecture des développements agiles. Editions Hermes-
Lavoisier, Paris.