19
© C. Kolski Génie Logiciel et Interaction Homme-Machine Christophe Kolski Professeur 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

Génie Logiciel et Interaction Homme-Machine

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Génie Logiciel et Interaction Homme-Machine

© 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

Page 2: Génie Logiciel et Interaction Homme-Machine

© 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

Page 3: Génie Logiciel et Interaction Homme-Machine

© 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)

Page 4: Génie Logiciel et Interaction Homme-Machine

© 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

Page 5: Génie Logiciel et 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)

Page 6: Génie Logiciel et Interaction Homme-Machine

© 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

Page 7: Génie Logiciel et Interaction Homme-Machine

© 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

Page 8: Génie Logiciel et Interaction Homme-Machine

© 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)

Page 9: Génie Logiciel et Interaction Homme-Machine

© 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…

Page 10: Génie Logiciel et Interaction Homme-Machine

© 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)

Page 11: Génie Logiciel et Interaction Homme-Machine

© 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…

Page 12: Génie Logiciel et Interaction Homme-Machine

© 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

Page 13: Génie Logiciel et Interaction Homme-Machine

© C. Kolski

Traduction provenant de :

https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel

Page 14: Génie Logiciel et Interaction Homme-Machine

© 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

Page 15: Génie Logiciel et Interaction Homme-Machine

© C. Kolski

Traduction provenant de :

https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel

Page 16: Génie Logiciel et Interaction Homme-Machine

© 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)

Page 17: Génie Logiciel et Interaction Homme-Machine

© 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

Page 18: Génie Logiciel et Interaction Homme-Machine

© 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

Page 19: Génie Logiciel et Interaction Homme-Machine

© 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.