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
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
Génie Logiciel
Gé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)
- 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 Dialogue
Pré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
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)
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érification Conception dét aillée
Vérification Codage
T ests unitaires Int égration
Vérification
Exploit at ion Maintenance
Revalidation Documentation
Mise en œuvre T est
Rem : puisque modèle générique, rien d’explicite sur l’IHM
- 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écificationConception ValidationRéalisation
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
- 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 mission
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 validation
plan de développement
conception du logiciel
validation de la conception et vérification
conception détaillée codage tests
uni- taires intégration
et tests tests 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)
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…
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)
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…
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é Facilité Fiabilité Sécurité Maintenabilité Portabilité d’utilisation
(utilisabilité)
Applicable à un produit logiciel ou un système intégrant un logiciel
Traduction provenant de :
https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel
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
Traduction provenant de :
https://fr.slideshare.net/PierrePi/exigences-de-qualit-de-systme-logiciel
- 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)
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
© 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
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.