SEG 3501 Module 2 Techniques dlicitation SEG 3

  • Slides: 104
Download presentation
SEG 3501 - Module 2 Techniques d’élicitation «SEG 3 501» D. Am u. Otta

SEG 3501 - Module 2 Techniques d’élicitation «SEG 3 501» D. Am u. Otta yot wa

Paroles sages… « Je sais que vous croyez que vous avez compris ce que

Paroles sages… « Je sais que vous croyez que vous avez compris ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous rendez compte que ce que vous avez entendu n'est pas ce que je voulais dire… » Robert Mc. Closkey, Porte-parole, US State Department «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 2

Techniques d’élicitation • Analyse de systèmes existants ― Étude de documentation existante ― Observation

Techniques d’élicitation • Analyse de systèmes existants ― Étude de documentation existante ― Observation de tâches ― Ethnographie • Analyse de discours • Entrevues • Questionnaires • Remue-méninge • Sessions Joint Application Design (JAD) • Ateliers de domaine ou de conception • Prototypage • Système pilote • Cas d’usage et scénarios • Analyse de risques «SEG 3 501» D. Am u. Otta yot wa • Voir aussi: http: //www. slideshare. net/hayriyesakarya/ elicitation-procedures-10618009 Module 2 : Élicitation des exigences 3

Comparaison de quelques approches «SEG 3 501» D. Am u. Otta yot wa Voir

Comparaison de quelques approches «SEG 3 501» D. Am u. Otta yot wa Voir aussi cette intro et comparison de Ying Chen : http: //www. umsl. edu/~ycnx 6/ Module 2 : Élicitation des exigences 4

Analyse de systèmes existants «SEG 3 501» D. Am u. Otta yot wa Module

Analyse de systèmes existants «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 5

Analyse de systèmes existants • Lors de la conception d’une version « nouvelle et

Analyse de systèmes existants • Lors de la conception d’une version « nouvelle et améliorée » d’un système existant. • Important de savoir: «SEG 3 501» ― Ce qui est utilisé, ce qui ne l’est pas, ce qui manque ― Ce qui fonctionne, ce qui ne fonctionne pas ― Comment le système est utilisé, comment était-il supposé être utilisé, de quelle nouvelle façons voulons-nous qu’il soit utilisé D. Am u. Otta yot wa Module 2 : Élicitation des exigences 6

Analyse de systèmes existants • Pourquoi analyser un système existant? «SEG 3 501» ―

Analyse de systèmes existants • Pourquoi analyser un système existant? «SEG 3 501» ― Les utilisateurs peuvent perdre leurs illusions face à un nouveau système s’il est trop différent ou s’il ne fait pas ce qu’ils veulent (risque de nostalgie…) ― Pour prendre en considération les vraies habitudes utilisateurs, les activités fréquentes, et l’importance relative des tâches et services ― Pour découvrir des améliorations possibles ― Pour découvrir quelles fonctionnalités patrimoniales (legacy) doivent rester ou partir. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 7

Analyse de systèmes existants 1. Étudiez la documentation disponible: guides d’utilisation, doc de conception,

Analyse de systèmes existants 1. Étudiez la documentation disponible: guides d’utilisation, doc de conception, mémos internes, historique des changements, etc. ―Bien entendu, la doc est souvent périmée, mal écrite, incorrecte… mais c’est un début! 2. Observations: allez sur le terrain et observez les « spécialistes dans la brume » … «SEG 3 501» • Idéalement, vous êtes un observateur silencieux, du moins au début. Sinon, vous risquez d’avoir une vision biaisée de ce qui est généralement fait. • Plus tard, vous pouvez poser des questions OU passer des gens en entrevue OU utiliser des questionnaires… D. Am u. Otta yot wa Module 2 : Élicitation des exigences 8

Analyse de systèmes existants 3. Questionnaires: basés sur ce que vous savez maintenant. Utiles

Analyse de systèmes existants 3. Questionnaires: basés sur ce que vous savez maintenant. Utiles pour: ―Répondre aux questions demandant une comparaison ou une corroboration (confirmation) ―Obtenir certaines statistiques d’un grand nombre d’utilisateurs, par exemple: – « À quelle fréquence utilisez-vous la fonction X? » – « Quels sont les trois fonctionnalités que vous aimeriez le plus avoir? » 4. Entrevues: après s’être fait une bonne idée de ce qu’il y a à faire, quelquestions méritent probablement des réponses détaillées. «SEG 3 501» ―Vous ne perdrez pas votre temps ni celui des autres, mais le tout demande du travail et de la préparation! D. Am u. Otta yot wa Module 2 : Élicitation des exigences 9

Analyse ethnographique «SEG 3 501» D. Am u. Otta yot wa Module 2 :

Analyse ethnographique «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 10

Analyse ethnographique • Veut dire littéralement « écrire la culture » • Cherche essentiellement

Analyse ethnographique • Veut dire littéralement « écrire la culture » • Cherche essentiellement à découvrir les facteurs humains/sociaux d’un système. ― Des études ont démontré que le travail est souvent plus riche et complexe que ce qui est suggéré par des modèles simples dérivés d’entrevues. • Il existe des scientifiques sociaux spécialement formés dans l’observation et l’analyse du travail • La découverte se fait par observation et analyse; les travailleurs ne se font pas demander d’expliquer ce qu’ils font. • Façon instructive de découvrir ces facteurs ― Par exemple, que fait un technicien nucléaire pendant la journée? À quoi ressemble son espace de travail? «SEG 3 501» D. Am u. Otta yot wa • Façon un peu moins utile pour les facteurs politiques ― Les travailleurs sont conscients de la présence d’un observateur extérieur. Module 2 : Élicitation des exigences 11

 « Ethnographie focalisée » [Sommerville, chap. 5] • Sommerville et al. étaient impliqués

« Ethnographie focalisée » [Sommerville, chap. 5] • Sommerville et al. étaient impliqués dans un projet où ils devaient éliciter les exigences d’un système de contrôle de trafic aérien. Ils ont observé les contrôleurs aériens en action avec un système existant. • Ils ont fait quelques observations surprenantes: ― Les contrôleurs placent souvent des avions sur des chemins potentiellement conflictuels avec l’intention de les corriger plus tard ― Le système actuel génère une alarme audible quand il y a un conflit possible ― Les contrôleurs ferment ces alarmes parce qu’ils étaient importunés par ces avertissements factices constants… • Morale incorrecte: ― Les contrôleurs n’aiment pas les alarmes audibles parce qu’ils les ferment. • Observation plus juste: «SEG 3 501» D. Am u. Otta yot wa ― Les contrôleurs n’aiment pas être traités comme des idiots! ― Trop de fausses alarmes (en général: des false positives) Module 2 : Élicitation des exigences 12

Matrice de confusion ? «SEG 3 501» [http: //en. wikipedia. org/wiki/Sensitivity_and_specificity] D. Am u.

Matrice de confusion ? «SEG 3 501» [http: //en. wikipedia. org/wiki/Sensitivity_and_specificity] D. Am u. Otta yot wa Module 2 : Élicitation des exigences 13

Ethnographie: En résumé «SEG 3 501» D. Am u. Otta • Les facteurs sociaux,

Ethnographie: En résumé «SEG 3 501» D. Am u. Otta • Les facteurs sociaux, humains, et politiques sont souvent très importants. • Plus d’études et d’exemples réels sont nécessaires! • Ce n’est pas toujours très scientifique, mais il faut bien adresser ces problèmes d’une façon quelconque… • Voilà un autre exemple du manque d’attention donné au côté humain/social en informatique. yot wa Module 2 : Élicitation des exigences 14

Entrevues «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation

Entrevues «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 15

Entrevue • Demande de la préparation et une bonne gestion de la communication ―

Entrevue • Demande de la préparation et une bonne gestion de la communication ― Il faut atteindre ses objectifs d’entrevue sans pour autant prévenir l’exploration de pistes prometteuses. • Idéalement, passer en entrevue autant de parties prenantes que possible • Clé: poser des questions orientées vers le problème «SEG 3 501» D. Am u. Otta ― L’emphase prématuré sur des détails ou des solutions risque de faire manquer les vraies exigences utilisateurs. Par exemple, comparez: – Désirez-vous Word 2010, Excel 2010, ou les deux? – Désirez-vous faire du traitement de texte, des calculs, ou les deux yot wa Module 2 : Élicitation des exigences 16

Entrevue: Objectifs et processus • Trois objectifs principaux: ―Découvrir l’information de façon précise et

Entrevue: Objectifs et processus • Trois objectifs principaux: ―Découvrir l’information de façon précise et efficace ―Documenter l’information servant à la modélisation et l’analyse des exigences ―Rassurer l’interlocuteur que sa compréhension du sujet a été entendue, explorée, et prise en considération • Processus ―Planification et préparation ―Session d’entrevue ―Consolidation de l’information ―Suivi «SEG 3 501» • Plusieurs stratégies de questionnement D. Am u. Otta yot wa Module 2 : Élicitation des exigences 17

Entrevue: Planification et préparation • Définir les objectifs de l’entrevue • Acquérir le bagage

Entrevue: Planification et préparation • Définir les objectifs de l’entrevue • Acquérir le bagage de connaissances nécessaires pour mener une entrevue efficace ―Sur le domaine (vocabulaire, problèmes…), mais aussi sur l’interlocuteur (tâches, attitude…) • Préparer les questions à l’avance, par sujet • Organiser votre environnement d’entrevue «SEG 3 501» ―Déterminer comment les notes d’élicitation seront prises (manuellement, audio, vidéo, par qui, etc. ) D. Am u. Otta yot wa Module 2 : Élicitation des exigences 18

Entrevue: Session • Mettez votre interlocuteur à l’aise et en confiance ― Soyez à

Entrevue: Session • Mettez votre interlocuteur à l’aise et en confiance ― Soyez à l’écoute, ajustez-vous à votre interlocuteur • Vous avez vos objectifs ― Soyez tenace, mais flexible! • Passez en entrevue plusieurs personnes à la fois «SEG 3 501» D. Am u. Otta yot wa ― Création de synergie! Les interlocuteurs vont commenter et compléter les commentaires des autres. ― La réponse du groupe pourrait être meilleure que la somme des réponses individuelles! ― Exemple: « Contez-moi 10 blagues chacun » – Vous risqueriez de geler sans pouvoir en dire une seule… – En groupe nous pourrions en sortir des centaines (la plupart vous étant connues), les blagues évoquées stimulant votre mémoire et vous permettant de vous rappeler d’autres blagues. – Les gens connaissent bien des blagues mais peuvent difficilement s’en souvenir lorsqu’on leur demande. • Détectez les aspects politiques ― Peuvent influencer le dit et le non dit… Module 2 : Élicitation des exigences 19

Entrevue: Notes d’élicitation • Il faut les réviser et les compléter après l’entrevue ―

Entrevue: Notes d’élicitation • Il faut les réviser et les compléter après l’entrevue ― Important de le faire assez rapidement, car la mémoire oublie vite! • Identifier les incohérences et les reprendre dans une autre entrevue si nécessaire ― Ou par courriel… • Conservez bien tous les schémas, diagrammes, modèles générés lors des discussions • Vous êtes en d’apprentissage, donc soyez précis «SEG 3 501» D. Am u. Otta yot wa ― ― Faites attention à la terminologie Utilisez celle du client Identifiez les synonymes, en choisir un seul par concept Définissez un glossaire au besoin • Remerciez les participants (p. ex. , par courriel) et gardez la porte ouverte à des communications ultérieures Module 2 : Élicitation des exigences 20

Entrevue: Erreurs typiques • Ne pas parler à toutes les bonnes personnes ― Besoin

Entrevue: Erreurs typiques • Ne pas parler à toutes les bonnes personnes ― Besoin de tous les points de vue pertinents • Poser des questions directes trop tôt ― Pour un système de transport, avoir demandé « De combien de chevaux-vapeur avez-vous besoin » (direct) au lieu de « Combien de passagers? Sur quelle distance? En combien de temps? » (indirect) • Ne faire des entrevue qu’avec une seule personne à la fois • Dans les entrevues de groupe, laisser une personne dominer la discussion • Supposer que les besoins mentionnés sont corrects! ― Souvent, les gens ne savent pas quoi manger et demandent « la même chose qu’elle » ! ― Besoin de séparer ce qui est demandé de ce dont ils ont besoin «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 21

Entrevue: Erreurs typiques • N’essayez pas de convaincre vos intervenants que vous êtes intelligent

Entrevue: Erreurs typiques • N’essayez pas de convaincre vos intervenants que vous êtes intelligent ! Ce n’est pas le bon endroit. • Démontrez plutôt à chaque opportunité que vous pensez que l’intervenant est intelligent. • Contrastez ces deux exemples: Mes ascenseurs sont trop lents. Je vois. Expliquez-moi pourquoi vous sentez qu’ils «SEG 3 sont lents. 501» D. Am u. Otta yot wa Alan M. Davis – Just enough requirements management, 2006 Je ne pense pas. Je crois que vous avez un problème de débit, pas de vitesse. 22

Entrevue: Questions de démarrage • Ces questions sont indépendantes du contexte et cherchent à

Entrevue: Questions de démarrage • Ces questions sont indépendantes du contexte et cherchent à réduire la portée [Weinberg] • Identifier le client, les buts, les bénéfices «SEG 3 501» ― Qui est (réellement) derrière la demande pour ce système? ― Qui va l’utiliser? Volontairement? Différents types d’utilisateurs? ― Quel est le bénéfice (économique) potentiel d’une solution qui fonctionne? ― Y a-t-il une solution existante disponible (d’une autre source)? D. Am u. Otta yot wa Module 2 : Élicitation des exigences 23

Entrevue: Questions de démarrage • Quand en avez-vous besoin? ― Pouvez-vous prioriser vos besoins?

Entrevue: Questions de démarrage • Quand en avez-vous besoin? ― Pouvez-vous prioriser vos besoins? ― Quelles sont vos contraintes de temps, de budget, de ressources (humaines ou autres)? ― Quelles sont les livrables/échéances attendues? «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 24

Entrevue: Questions de démarrage • Questions de calibrage (lors de la planification) ― Êtes-vous

Entrevue: Questions de démarrage • Questions de calibrage (lors de la planification) ― Êtes-vous la bonne personne pour répondre à ces questions? ― Vos réponses sont-elles « officielles » ? Sinon, qui pourrait les donner? ― Ces questions sont-elles pertinentes au problème tel que vous le concevez? ― Y a-t-il trop de questions? Sont-elles au bon niveau de détail? ― Y a-t-il une autre personne à qui je devrais parler? ― Y a-t-il d’autres questions que je devrais vous poser? ― Avez-vous des questions? «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 25

Entrevue: Questions de démarrage • Questions qui ne peuvent pas être demandées directement… allez-y

Entrevue: Questions de démarrage • Questions qui ne peuvent pas être demandées directement… allez-y indirectement! «SEG 3 501» D. Am u. Otta yot wa ― Êtes-vous opposé au système? ― Tentez-vous de prévenir ou de retarder l’arrivée du système? ― Tentez-vous de vous créer un rôle plus important? ― Vous sentez-vous menacé par le système proposé? ― Tentez-vous de préserver votre emploi (ou celui d’un collègue)? Module 2 : Élicitation des exigences 26

Entrevue: Questions spécifiques • Aspects fonctionnels «SEG 3 501» ― Qu’est-ce que le système

Entrevue: Questions spécifiques • Aspects fonctionnels «SEG 3 501» ― Qu’est-ce que le système va faire? Quand le fera-t-il? ― Y a-t-il plusieurs modes d’opération? ― Quels types de calculs et de transformations de données doivent être faites? ― Quelles-sont les réponses appropriées à un stimulus? ― Quel devrait-être les formats de données en entrée et en sortie? ― Y a-t-il des données qui doivent être préservées pour une période de temps? D. Am u. Otta yot wa Module 2 : Élicitation des exigences 27

Entrevue: Questions spécifiques • Contraintes de conception «SEG 3 501» D. Am u. Otta

Entrevue: Questions spécifiques • Contraintes de conception «SEG 3 501» D. Am u. Otta yot wa ― Environnement physique – Où mettre l’équipement? Un ou plusieurs endroits? – Restrictions quant à la température, l’humidité, la taille, la consommation, le refroidissement…? – Contraintes sur les langages de programmation à cause de composant existants? ― Interfaces – Les données viennent de un ou plusieurs autres systèmes? – Les sorties vont vers un ou plusieurs autres systèmes? – Des restrictions/directives sur le formatage et l’emmagasinage des données? ― Normes et standards – Y a-t-il des normes ou standards pertinents pour le système? ― Lois, politiques et règlements – Y a-t-il des lois, politiques ou règlements applicables? Module 2 : Élicitation des exigences 28

Entrevue: Questions spécifiques • Contraintes de performance ― Vitesse d’exécution, temps de réponse, débit,

Entrevue: Questions spécifiques • Contraintes de performance ― Vitesse d’exécution, temps de réponse, débit, utilisation de ressources? ― Quantité de données à traiter/emmagasiner? ― Fréquences d’envois, de traitements, et autres utilisations? • Contraintes de sécurité «SEG 3 501» D. Am u. Otta ― L’accès au système ou à l’information doit-il être contrôlé? ― Les données d’un utilisateur doivent-elles être isolées des autres utilisateur? ― Les programmes d’un utilisateur doivent-ils être isolés par rapport aux autres programmes sur un système d’exploitation? ― Devrait-on prendre des précautions contre le vol, les attaques, et le vandalisme? yot wa Module 2 : Élicitation des exigences 29

Entrevue: Questions spécifiques • Fiabilité et disponibilité ― Le système doit-il détecter et isoler

Entrevue: Questions spécifiques • Fiabilité et disponibilité ― Le système doit-il détecter et isoler les fautes? ― Quel devrait-être le temps moyen permis entre pannes, et le temps maximum de reprise après panne? ― Les copies de sûreté doivent être prises à quelle fréquence, en combien de copies, et placées dans combien d’endroits? ― Précautions contre le feu, l’eau, les pannes…? ― Vitesse d’exécution, temps de réponse, débit, utilisation de ressources? • Maintenabilité «SEG 3 501» ― Maintenance pour corriger les erreurs ou aussi pour améliorer le système? ― De quelle façon le système pourra-t-il évoluer? ― Avec combien d’efforts un nouveau service pourra-t-il être ajouté? ― Avec combien d’efforts le système pourra-t-il être porté sur une plateforme différente? D. Am u. Otta yot wa Module 2 : Élicitation des exigences 30

Entrevue: Questions spécifiques • Précision et exactitude ― Avec quelle degré d’exactitude et avec

Entrevue: Questions spécifiques • Précision et exactitude ― Avec quelle degré d’exactitude et avec quelle précision les calculs devront-ils être effectués? • Convivialité et facteurs humains «SEG 3 501» ― Quelle type de formation sera requis pour chaque type d’utilisateurs? ― Quel degré de simplicité est-il désirable d’avoir pour qu’un utilisateur puisse comprendre et utiliser le système? ― À quel point devra-t-il être difficile de mal utiliser le système? D. Am u. Otta yot wa Module 2 : Élicitation des exigences 31

Encore sur les entrevues • Attention aux questions sans réponses… ― Comment attachez-vous vos

Encore sur les entrevues • Attention aux questions sans réponses… ― Comment attachez-vous vos lacets? • Voir aussi cet intéressant vidéo: ― http: //www. youtube. com/watch? v=2 WBef 84 bodc «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 32

“Ignorance is a bliss” [The Matrix, 1999] «SEG 3 501» D. Am u. Otta

“Ignorance is a bliss” [The Matrix, 1999] «SEG 3 501» D. Am u. Otta yot wa • Selon Dan Berry, l’ignorance d’un domaine est une bonne chose! • L’ignorance (et non la stupidité!) permet d’exposer certaines hypothèses et certains faits implicites. • Berry suggère même qu’un jour les ingénieurs en exigences vont annoncer leurs domaines d’ignorance (plutôt que leurs domaines d’expertise) pour se trouver des emplois! • En fait, une équipe composée d’experts et d’ignorants est une bonne chose Ali Niknafs, Daniel M. Berry: An industrial case study of the impact of domain ignorance on the effectiveness of requirements idea generation during requirements elicitation. RE 2013: 279 -283 Module 2 : Élicitation des exigences 33

Questionnaires «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation

Questionnaires «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 34

Questionnaires et sondages • Quelques avantages: ― ― Intéressants pour rejoindre plusieurs personnes Asynchrones,

Questionnaires et sondages • Quelques avantages: ― ― Intéressants pour rejoindre plusieurs personnes Asynchrones, à distance, et peuvent être courts Peu coûteux Répondants peuvent être anonymes • Défis: «SEG 3 501» ― Temps de préparation! ― Choix de questions ouvertes et fermées (peu flexibles) ― Choix de réponses et échelles (nominales, intervalles, Likert…); éviter les tendances centristes! ― Statistiques significatives (analyse) ― Validité des questions (biais, ambiguïtés) ― Répétition et ordre des questions ― Déterminer les bons participants à inviter (biais, fraude) ― S’assurer que les personnes répondent à tout (épuisement, pas d’intérêt)! D. Am u. Otta yot wa Module 2 : Élicitation des exigences 35

Types de questions à considérer • Informations démographiques (de classification) ― ge, pays, emploi…

Types de questions à considérer • Informations démographiques (de classification) ― ge, pays, emploi… Pour analyse sous plusieurs angles ― Attention aux risques de ré-identification si le sondage est anonyme • Questions attitudinales ― Que pensez-vous de…? Êtes-vous en accord avec…? ― Échelle de 4 -6 valeurs (sans neutre) ou 5 -7 valeurs (avec neutre) 1. Fortement en accord 2. Un peu en accord 3. Ni en accord ni en désaccord (indécis) 4. Un peu en désaccord 5. Fortement en désaccord • Questions supplémentaires ouvertes ― Peuvent être instructives, mais qualitatives «SEG 3 501» D. Am u. Otta yot wa • Questions optionnelles / alternatives, par population • Questions redondantes, pour robustesse… Module 2 : Élicitation des exigences 36

Analyse à considérer… à l’avance! • Le sondage sera-t-il répété (avant/après pour comparaison)? •

Analyse à considérer… à l’avance! • Le sondage sera-t-il répété (avant/après pour comparaison)? • Prévoir le type d’analyse (statistique), p. ex. : «SEG 3 501» • Signification statistique? http: //en. wikipedia. org/wiki/Statistical_significance • Testez votre questionnaire et votre analyse sur un petit groupe! • Voir aussi cet important vidéo sur les sondages et questionnaires: http: //www. youtube. com/watch? v=r. Sw. VZJT 9 j 1 c D. Am u. Otta yot wa Module 2 : Élicitation des exigences 37

Remue-méninges «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation

Remue-méninges «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 38

Remue-méninges • Pour inventer une meilleure façon de faire, essayez une séance de remueméninges

Remue-méninges • Pour inventer une meilleure façon de faire, essayez une séance de remueméninges (brainstorming)! • Élément de surprise: il faut que les intervenant voient quelque chose qu’il ont toujours voulu sans le savoir! • Cette approche est très utile très tôt dans le processus d’I. E. : «SEG 3 501» D. Am u. Otta ― Quand vous aventurez en terre inconnue ― Quand vous avez peu d’expérience ― Quand l’innovation est importante yot wa Module 2 : Élicitation des exigences 39

Remue-méninges • Quand vous n’avez pas d’idée, ou encore trop d’idées, assoyez-vous et faites

Remue-méninges • Quand vous n’avez pas d’idée, ou encore trop d’idées, assoyez-vous et faites remuer tout ça… mais en suivant certaines règles de bases. • Cette approche est composée de deux activités principales: ― Génération d’idées (la tempête) ― Élagage (éliminations) d’idées pour en arriver à une liste finale (le calme) • Qui participe? «SEG 3 501» ― Experts du domaine, développeurs, utilisateurs… à peu près n’importe quelle partie prenante. ― Souvent, les compagnies de développement de logiciel vont avoir une « personne à idées » qui va présider ou participer à ce genre de séance, sans aller plus loin dans le projet. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 40

Remue-méninges • Vous devez d’abord désigner deux personnes différentes qui vont jouer des rôles

Remue-méninges • Vous devez d’abord désigner deux personnes différentes qui vont jouer des rôles particuliers: «SEG 3 501» D. Am u. Otta yot wa 1. Scribe ― Son rôle est d’écrire toutes les idées. ― Peu aussi contribuer aux idées. ― Peut demander des questions de clarification (dans la partie I), mais sans critiquer. 2. Modérateur/leader On rencontre ici deux écoles de pensée: 1. Agent de circulation: Va imposer certaines règles pour maintenir l’ordre, sans vraiment aller plus loin. 2. Agent provocateur: Joue un plus grand rôle de leader, arrive préparé avec des idées et les suggère pour démarrer la discussion. Peut aussi cher des variations ou des combinaisons d’autres suggestions. Ce n’est cependant pas une personne-je-sais-tout! Agit aussi comme agent de circulation. Module 2 : Élicitation des exigences 41

Partie I: la tempête • Son but est de générer autant d’idées que possible.

Partie I: la tempête • Son but est de générer autant d’idées que possible. • Choisissez un thème ou un titre provocateur. • On cherche ici la quantité, et non nécessairement la qualité. • Chercher à combiner certaines idées déjà mentionnées. • Aucune critique ni aucun débat n’est permis ici! On ne veut pas freiner les participants. • Les participants doivent comprendre que rien de ce qu’ils disent ne pourra par la suite être retenu contre eux. • Le scribe prend note de toutes les idées où tous peuvent voir (tableau, feuilles affichées sur un mur, etc. ) • « Wild is good » ! Sentez-vous à l’aise d’être glorieusement dans les patates! «SEG 3 501» ― Les participants ne doivent PAS s’autocensurer ni prendre trop de temps pour considérer si une idée est pratique ou non. Laissez-vous aller! ― La liste originale ne doit pas circuler hors de la réunion. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 42

Partie II: le calme • Faites le tour de la liste et expliquez les

Partie II: le calme • Faites le tour de la liste et expliquez les idées plus clairement. • Catégorisez-les en « peut-être » et « non » par une méthode de consensus définie préalablement. ― Consensus informel, 50% + 1 vs « majorité claire » , encan Hollandais, qui a droit de veto, … ― http: //en. wikipedia. org/wiki/Dutch_auction • Attention au temps et aux gens! ― Les réunions (surtout si elles sont de nature créative ou technique) tendent à perdre de leur efficacité après 90120 minutes. Prenez des pauses et recommencez plus tard. ― Attention de ne pas (trop) froisser de participants! «SEG 3 501» D. Am u. Otta yot wa • Réviser, consolidez, combinez, clarifiez, améliorez • Triez la liste par priorités d’une façon quelconque, et sélectionnez l’idée gagnante. Module 2 : Élicitation des exigences 43

Élagage • Il y a quelques façon courantes d’éliminer certaines idées. Par exemple: 1.

Élagage • Il y a quelques façon courantes d’éliminer certaines idées. Par exemple: 1. Vote avec seuil 2. Mélange d’idées 3. Budget «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 44

Élagage: vote avec seuil • Chaque personne a droit de voter jusqu’à n fois.

Élagage: vote avec seuil • Chaque personne a droit de voter jusqu’à n fois. • Conservez les idées qui ont plus de m votes. • Utilisez des tours de scrutins multiple où n est de plus en plus petit. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 45

Élagage: mélange d’idées • Appliquez des critères d’acceptation (qui sont souvent ignorés dans la

Élagage: mélange d’idées • Appliquez des critères d’acceptation (qui sont souvent ignorés dans la première étape) aux idées. • Triez les idées acceptées • Sélectionnez les k meilleures pour un vote. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 46

Élagage: approche par budget • Donnez aux participants X$ à dépenser sur les idées

Élagage: approche par budget • Donnez aux participants X$ à dépenser sur les idées • Que pouvez-vous offrir? «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 47

Remue-méninges • Avec beaucoup de bonnes idées, outrageuses et, voire, farfelues, le remueméninges peut

Remue-méninges • Avec beaucoup de bonnes idées, outrageuses et, voire, farfelues, le remueméninges peut être vraiment très amusant! • Le plaisir stimule et motive les gens à bien performer! «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 48

Remue-méninges - outils • Peut être fait par courriel, mais un bon modérateur/leader est

Remue-méninges - outils • Peut être fait par courriel, mais un bon modérateur/leader est nécessaire pour ― Prévenir les flingueurs (flamers) d’entrer en jeu ― Prévenir la concurrence critique (race conditions); le courriel est un mécanisme de communication asynchrone. ― Faire attention à ne pas trop entrer dans les détails. • Des outils de collaboration sont aussi envisageables «SEG 3 501» D. Am u. Otta ― TWiki et bien d’autres plus appropriés tels que Brain. Storm et Idea. Fisher yot wa Module 2 : Élicitation des exigences 49

Sessions JAD «SEG 3 501» D. Am u. Otta yot wa Module 2 :

Sessions JAD «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 50

Aperçu: Sessions (ou séances) JAD • JAD — Joint Application Design • Développé par

Aperçu: Sessions (ou séances) JAD • JAD — Joint Application Design • Développé par IBM dans les années 1970, avec beaucoup d’histoires à succès • Un peu comme un remue-méninges structuré, dans le style IBM (structures, rôles, formulaires…) • Deux étapes principales, trois phases chacune et six rôles à combler «SEG 3 501» D. Am u. Otta • Peuvent durer quelques jours! yot wa Module 2 : Élicitation des exigences 51

Sessions JAD: Rôles 1. Dirigeant de session ― Organisateur, facilitateur, expert JAD, enthousiaste, affable,

Sessions JAD: Rôles 1. Dirigeant de session ― Organisateur, facilitateur, expert JAD, enthousiaste, affable, donne le ton 2. Analyste ― Scribe++, produit la documentation officielle, développeur expérimenté qui a une vue globale, bon philosophe/écrivain 3. Promoteur exécutif «SEG 3 501» D. Am u. Otta ― Gestionnaire qui a la responsabilité ultime du produit, donne une vue stratégique des buts et pratiques de l’entreprise, prend des décisions exécutives si nécessaire yot wa Module 2 : Élicitation des exigences 52

Sessions JAD: Rôles 4. Représentants des utilisateurs ― Sélection d’utilisateurs et gestionnaires savants, arrivent

Sessions JAD: Rôles 4. Représentants des utilisateurs ― Sélection d’utilisateurs et gestionnaires savants, arrivent préparés avec suggestions et aperçus des besoins, vont faire du remue-méninges et réviser les documents JAD 5. Représentants du département d’informatique ― Experts sur les TI, aident les utilisateurs à voir grand, savent ce qui est facile/difficile et cher/bon marché, donnent surtout de l’information 6. Spécialistes «SEG 3 501» ― Experts techniques sur un sujet précis tels que la sécurité, le domaine d’application, la loi, les interfaces utilisateurs, etc. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 53

Sessions JAD: Étape de planification 1. Personnalisation «SEG 3 501» D. Am u. Otta

Sessions JAD: Étape de planification 1. Personnalisation «SEG 3 501» D. Am u. Otta yot wa ― La préparation est essentielle, ce n’est pas une session informelle ― Le promoteur exécutif choisi les participants ― Le dirigeant et le promoteur exécutif se familiarisent avec le problème/domaine/client, et identifient les points contentieux et la portée de la session ― On libère les agendas des participants pour la session ― Le matériel pour la session est préparé (tableau de conférence, Power. Point, marqueurs, pizza…) Module 2 : Élicitation des exigences 54

Sessions JAD: Étape de planification 2. Session ― Le dirigeant accueille les participants, présente

Sessions JAD: Étape de planification 2. Session ― Le dirigeant accueille les participants, présente les tâches à discuter, établit les règles et le contexte pour a discussion (what’s in, what’s out), et fait des suggestions initiales ― Remue-méninges! ― Évaluation des suggestions et accord 3. Synthèse «SEG 3 501» D. Am u. Otta ― L’analyste documente les suggestions retenues avec les formulaires JAD, de même que leurs raisons d’être et leurs justifications ― Tous les participants révisent le document pour corrections ― Le promoteur exécutif signe le tout. yot wa Module 2 : Élicitation des exigences 55

Défis des remue-méninges et sessions JAD • Groupes artificiels de participants, avec gens peu

Défis des remue-méninges et sessions JAD • Groupes artificiels de participants, avec gens peu confortables • “Groupthink” • Réponses superficielles à des problèmes techniques • Biais et dominance «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 56

Prototypage «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation

Prototypage «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 57

Prototypage • Le prototypage peut prendre plusieurs formes, mais il est très utile pendant

Prototypage • Le prototypage peut prendre plusieurs formes, mais il est très utile pendant l’élicitation car il encourage la participation et l’atteinte d’une compréhension mutuelle: ―Je le saurais quand je le verrai ―Je le saurais quand je ne le verrai pas • Le prototypage permet aussi de découvrir des fonctionnalités, de discuter des interfaces utilisateurs et de convivialité, et d’établir des priorités. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 58

Prototypage: Deux catégories • Prototypage évolutif ― Un prototype initial est conçu et raffiné

Prototypage: Deux catégories • Prototypage évolutif ― Un prototype initial est conçu et raffiné en plusieurs étapes successives pour devenir le produit final ― But: livrer aux utilisateurs un système fonctionnel. Ce type de développement commence par les exigences les mieux comprises. ― Ne sera pas étudié ici… • Prototypage jetable «SEG 3 501» D. Am u. Otta yot wa ― Un prototype plus ou moins fidèle est conçu afin d’éliciter les exigence, puis est jeté. ― But: dériver/valider les exigences du système. Le processus débute avec les exigences les moins bien comprises! ― Le système est conçu avec un autre processus de développement. Module 2 : Élicitation des exigences 59

Prototypage: Techniques variées • Les techniques de prototypage varient beaucoup selon le but du

Prototypage: Techniques variées • Les techniques de prototypage varient beaucoup selon le but du prototype (évolutif ou jetable) et le degré de fidélité voulu: ―Prototypes papier (voir http: //www. paperprototyping. com/ ) ―Esquisses d’écrans (mock-ups) ―Prototypes interactifs (p. ex. Flash/Shockwave) ―Modèles (exécutables) ―Systèmes pilotes ―… «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 60

Prototypage: Fidélité (1) • La fidélité représente jusqu’à quel point le prototype est réel

Prototypage: Fidélité (1) • La fidélité représente jusqu’à quel point le prototype est réel et (surtout) réactif. • Pour les prototypes jetables, la fidélité peut varier. • Prototypes à haute fidélité «SEG 3 501» ― Applications qui « fonctionnent » ; vous appuyez sur un bouton et quelque chose se produit. Implique souvent de la programmation ou de la modélisation dans un langage exécutable. ― Avantages: Offrent une bonne compréhension des fonctionnalités, diminuent les risques de conception. ― Inconvénients: Prennent du temps à construire, parfois difficiles à changer, faux sens de sécurité, incitent souvent à se concentrer sur les détails plutôt que sur les buts et les aspects importants. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 61

Prototypage: Fidélité (2) • Prototypes à basse fidélité ― Qui ne « fonctionnent »

Prototypage: Fidélité (2) • Prototypes à basse fidélité ― Qui ne « fonctionnent » pas, qui sont statiques. ― Avantages: Faciles et rapides à construire, excellents pour les interfaces, offre la chance de faire participer les utilisateurs avant que le codage ne commence, encouragent la créativité. ― Inconvénients: Ne couvrent pas tous les aspects des interfaces, ne sont pas interactifs, peuvent paraître non -professionnels aux yeux de certaines partie prenantes (soupir!). «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 62

Cas d’usage et scénarios «SEG 3 501» D. Am u. Otta yot wa Module

Cas d’usage et scénarios «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 63

Cas d’usage (Jacobson) • Un cas d’usage est une séquence typique d’actions qu’entreprend un

Cas d’usage (Jacobson) • Un cas d’usage est une séquence typique d’actions qu’entreprend un utilisateur afin d’accomplir une tâche donnée ― L’objectif d’une analyse de cas est de modéliser le système … du point de vue de la façon par laquelle l’utilisateur interagit avec le système … afin d’accomplir ses objectifs ― Un modèle des cas d'usage consiste en – un ensemble de cas d'usage – une description ou un diagramme expliquant comment ils sont inter-reliés «SEG 3 501» D. Am u. Otta • Synonymes ― Cas d’utilisation, cas-type d’utilisation, use case… yot wa Module 2 : Élicitation des exigences 64

Cas d’usage • En général, un cas d'usage doit couvrir l’ensemble des étapes à

Cas d’usage • En général, un cas d'usage doit couvrir l’ensemble des étapes à suivre dans l’accomplissement d’une tâche donnée • Le cas d'usage doit décrire l’interaction de l’utilisateur avec le système ― et non les opérations que doit réaliser le système. «SEG 3 501» D. Am u. Otta yot wa • Le cas d'usage devrait être écrit, dans la mesure du possible, d’une façon indépendante de toute interface utilisateur • Le cas d'usage peut contenir des variations du scénario primaire (alternatives et exceptions) • Il ne faut pas oublier les cas de mésusage… Module 2 : Élicitation des exigences 65

Alternatives et exceptions • Alternative: ― Sous-cas d’usage qui satisfait le but visé mais

Alternatives et exceptions • Alternative: ― Sous-cas d’usage qui satisfait le but visé mais à l’aide d’une séquence d’étapes différente ― Exemple avec un consensus comme but: – Cas d’usage principal: vote en une session – Cas d’usage alternatif: vote en plusieurs sessions • Exception: «SEG 3 501» D. Am u. Otta ― Sous-cas d’usage qui traite les conditions du cas principal et des cas alternatifs qui diffèrent de la norme et des cas déjà couverts ― Exemple avec un consensus comme but: – Cas d’usage exceptionnel: quoi faire avec une personne non-inscrite qui veut voter yot wa Module 2 : Élicitation des exigences 66

Scénarios • Un scénario (selon UML) est une instance d’un cas -type ― Il

Scénarios • Un scénario (selon UML) est une instance d’un cas -type ― Il exprime une occurrence spécifique d’un cas-type – un acteur spécifique. . . – à un moment spécifique. . . – avec des données spécifiques • Il peut donc y avoir une multitude de scénarios générés à partir d’un cas d’usage ― Chacun d’eux pouvant mener à un ou plusieurs cas de tests «SEG 3 501» • Mais attention: le terme scénario est souvent utilisé de façon très générique… D. Am u. Otta yot wa Module 2 : Élicitation des exigences 67

Types de scénarios (en général) • Scénario « tel quel » (as-is): ― Utilisé

Types de scénarios (en général) • Scénario « tel quel » (as-is): ― Utilisé pour décrire une situation courante, surtout dans des projets de rétro-ingénierie. L’utilisateur décrit le système. • Scénario visionnaire: ― Utilisé pour décrire un système futur, surtout dans des projets nouveaux ou de réingénierie. ― Peut rarement se faire par l’utilisateur seul ou par le développeur seul. • Scénario d’évaluation: ― Tâche utilisateur avec laquelle le système va être évalué. • Scénario de formation: ― Instructions étape-par-étape qui guident un novice sur l’utilisation d’un système. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 68

Rôle des scénarios dans le développement Requirements Elicitation Requirements Analysis Expressed in Terms Of

Rôle des scénarios dans le développement Requirements Elicitation Requirements Analysis Expressed in Terms Of System Design Structured By Object Design Implementation Implemented By Realized By Verified By class. . . Use Case Model «SEG 3 501» D. Am u. Otta yot wa Application Domain Objects Sub. Systems Testing Solution Domain Objects Source Code ? class. . ? Test Cases [Tiré de Bruegge et Dutoit, OOSE] Module 2 : Élicitation des exigences 69

Scénarios et développement • Guident l’élicitation, l’analyse et la conception ― Il existe de

Scénarios et développement • Guident l’élicitation, l’analyse et la conception ― Il existe de nombreuses approches « orientées scénarios » . Par exemple, des approches agiles utilisent des histoires (scénarios) pour générer directement les tests qui guideront la conception du logiciel et sa vérification. «SEG 3 501» • Les développeurs sont souvent incapables de parler directement aux utilisateurs • Les scénarios offrent un écho valable de la « voix du consommateur » D. Am u. Otta yot wa Module 2 : Élicitation des exigences 70

Représentation des scénarios • Approches très variées… «SEG 3 501» ― Texte (informel, structuré),

Représentation des scénarios • Approches très variées… «SEG 3 501» ― Texte (informel, structuré), diagrammes (états, séquence…), vidéo, animations, bandes dessinées, scénarimage (storyboard), atelier collaboratif (en se passant le micro ou la balle…), etc. ― Il y a des notation spécialisés telles que UML (diagrammes de séquence, d’activité, de cas d’usage, d’interactions, de collaboration), les Message Sequence Charts, les Live Sequence Charts, et les Use Case Maps. D. Am u. Otta yot wa Module 2 : Élicitation des exigences 71

Représentation des scénarios • Différentes représentations peuvent être utiles dans des situations spécifiques ―Par

Représentation des scénarios • Différentes représentations peuvent être utiles dans des situations spécifiques ―Par exemple, les scénarimages, souvent utilisés dans la conception de films, sont très peuvent décrire des situations, des rôles, et des séquences de tâches de façon rapide, compacte, et polyglotte. [I. Alexander] «SEG 3 501» D. Am u. Otta yot wa • Quelques approches orientées-scénarios sont très idéologiques, voire dogmatiques Module 2 : Élicitation des exigences 72

Modélisation avec UML Cas d’usage <<extend>> Reserve Facility Généralisation Register Member Handle Waiting List

Modélisation avec UML Cas d’usage <<extend>> Reserve Facility Généralisation Register Member Handle Waiting List <<include>> Customer Hotel Counter Staff Reserve Room Check In Customer Check Room Details <<include>> Point d’extension Acteur <<extend>> Member Earn and Redeem Credits «SEG 3 501» D. Am u. Otta yot wa Check Out Customer Mais: où sont donc les cas d’usage? Module 2 : Élicitation des exigences 73

Comment décrire un cas d’usage? «SEG 3 501» Plusieurs gabarits existent, mais on rencontre

Comment décrire un cas d’usage? «SEG 3 501» Plusieurs gabarits existent, mais on rencontre souvent un sous-ensemble des items suivants: - Identifiant: Étiquette unique et référençable - Nom: Appellation courte et descriptive, indépendante de la structure ou de l’implémentation (souvent de la forme verbe-objet) - But: Expliquer ce que les acteurs veulent accomplir - Préconditions: Décrire l’état requis du système avant l’exécution de ce cas d’usage - Postconditions: Décrire l’état du système après l’exécution de ce cas d’usage (garanties minimales) D. Am u. Otta yot wa Module 2 : Élicitation des exigences 74

Comment décrire un cas d’usage? «SEG 3 501» D. Am u. Otta - Acteurs:

Comment décrire un cas d’usage? «SEG 3 501» D. Am u. Otta - Acteurs: Énumérer les acteurs impliqués. On peut distinguer l’acteur principal des simples participants. - Références: Autre cas d’usage apparentés (relations semblables à celles diagrammes) - Déroulement: Décrire chacune des étapes, avec texte, une colonne, ou plusieurs colonnes - Exigences: Couvertes, fonctionnelles ou non - Auteur: Qui a découvert le cas d’usage yot wa Module 2 : Élicitation des exigences 75

Description des événements • Plusieurs formes disponibles «SEG 3 501» ― Narrative: paragraphe qui

Description des événements • Plusieurs formes disponibles «SEG 3 501» ― Narrative: paragraphe qui se concentre sur le scénario primaire ou quelques scénarios – Forme préférée des partie prenantes lors des tous premiers contacts ― Colonne simple: séquence linéaire (séquence principales et alternatives) ― Colonnes multiples: une colonne par acteur – Forme qui permet d’avoir une vue plus détaillée – On utilise parfois des diagrammes de séquence D. Am u. Otta yot wa Module 2 : Élicitation des exigences 76

Forme narrative A User inserts a card in the Card reader slot. The System

Forme narrative A User inserts a card in the Card reader slot. The System asks for a personal identification number (PIN). The User enters a PIN. After checking that the user identification valid, the System asks the user to chose an operation. . . «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 77

Forme à une colonne linéaire 1. A User inserts a card in the Card

Forme à une colonne linéaire 1. A User inserts a card in the Card reader slot. 2. The system asks for a personal identification number (PIN). 3. The User enters a PIN. 4. The System checks that the user identification is valid. 5. The System asks the user to chose an operation 1. a The Card is not valid 1. a. 1. The System ejects the Card 4. a The User identification is not valid «SEG 3 501» 4. a. 1 The System ejects the Card D. Am u. Otta yot wa Module 2 : Élicitation des exigences 78

Forme à plusieurs colonnes (une par acteur) «SEG 3 501» D. Am u. Otta

Forme à plusieurs colonnes (une par acteur) «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 79

Documenter des cas d’usage • Cas d’usage essentiels (Constantine & Lockwood) ― Abstrait, indépendant

Documenter des cas d’usage • Cas d’usage essentiels (Constantine & Lockwood) ― Abstrait, indépendant de la technologie/implémentation ― Définit très tôt ― p. ex. : Le Client s’identifie • Cas d’usage concret: ― Dépendant de la technologie/implémentation ― p. ex. : Le Client insère sa carte. Le Client entre son NIP. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 80

Exemple de généralisation, d’extension et d’inclusion «SEG 3 501» D. Am u. Otta yot

Exemple de généralisation, d’extension et d’inclusion «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 81

Inclusions • Sert à décrire les points communs contenus dans plusieurs cas d'usage différents

Inclusions • Sert à décrire les points communs contenus dans plusieurs cas d'usage différents • Sont donc inclus dans d’autres cas d'usage ―Même des cas d'usage très différents peuvent partager un certain nombre d’actions identiques (réutilisation) ―Permet d’éviter la répétition de ces détails dans chacun des cas d'usage (cohérence) ―Semblables à des procédures «SEG 3 501» • Représente l’exécution d’une tâche de plus bas niveau pour accomplir un but aussi de plus bas niveau • Le point d’inclusion est spécifié dans le cas d’usage de base D. Am u. Otta yot wa Module 2 : Élicitation des exigences 82

Extensions • Souvent utilisées afin de spécifier des interactions optionnelles tenant compte des cas

Extensions • Souvent utilisées afin de spécifier des interactions optionnelles tenant compte des cas exceptionnels • En créant ainsi un cas d’usage d’extension, la description principale peut demeurer simple ― Le cas de base peut toujours être exécuté sans la partie étendue. «SEG 3 501» • Le cas d’usage de base contient des crochets pouvant être étendus. • Attention: sémantique obscure dans UML 1 D. Am u. Otta yot wa Module 2 : Élicitation des exigences 83

Généralisations • Similaire aux super-classes dans les diagrammes de classes • Un cas-type généralisé

Généralisations • Similaire aux super-classes dans les diagrammes de classes • Un cas-type généralisé représente plusieurs cas d'usage similaires • La spécialisation d’un cas-type fournit les détails spécifiques relatifs à un de ces cas d'usage similaires • La généralisation s’applique aussi aux acteurs (utilisation plus fréquente) «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 84

Développement de cas d’usage • Une approche itérative, où on améliore le modèle au

Développement de cas d’usage • Une approche itérative, où on améliore le modèle au fur et à mesure que notre compréhension progresse: 1. 2. 3. 4. 5. 6. Approximez la portée et les frontières du système Identifiez les acteurs Identifiez les cas d’usage Identifier les préconditions Définir le scénario de base (primaire) Définir les scénarios secondaires • Alternatives et exceptions 7. Structurez le diagramme de cas d’usage «SEG 3 501» D. Am u. Otta • Identification des points communs (inclusion) et variantes (extensions) yot wa Module 2 : Élicitation des exigences 85

Développement de cas d’usage • Approche alternative de Ham et Larman: ― Identifiez les

Développement de cas d’usage • Approche alternative de Ham et Larman: ― Identifiez les événements externes auxquels le système doit répondre, et reliez-les aux acteurs participants et à des cas d’usage spécifiques. ― Exprimez les processus d’affaires en termes de scénarios spécifiques, généralisez les scénarios en cas d’utilisation, et identifiez les acteurs impliqués dans chaque cas d’usage. ― Dérivez des cas d’usage probables à partir d’exigences fonctionnelles existantes. Si une quelconque exigence n’est liée à aucun cas d’usage, demandez-vous si vous avez vraiment besoin d’elle. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 86

Développement de cas d’usage • Souvent l’un des cas d'usage (ou même quelques-uns) peut

Développement de cas d’usage • Souvent l’un des cas d'usage (ou même quelques-uns) peut être identifié comme central au système ― Le système peut alors être conçu autour de ce cas-type particulier • Il existe d’autre raisons de se concentrer sur un cas d’usage en particulier: «SEG 3 501» D. Am u. Otta ― Certains cas d'usage présentent un risque élevé dont la réalisation peut-être problématique ― Certain cas d'usage présentent une valeur commerciale ou politique importante yot wa Module 2 : Élicitation des exigences 87

Acteurs • Un acteur spécifie un rôle qu’une entité externe adopte lorsqu’elle interagit directement

Acteurs • Un acteur spécifie un rôle qu’une entité externe adopte lorsqu’elle interagit directement avec votre système [Lauesen] • On rencontre des personnes dans certains rôles, et des systèmes et autres entités comportementales dans d’autres rôles. • Types d’acteurs ― Primaire: initie un cas d’usage (utilisateurs avec buts; autre système qui surveille le système discuté…) ― Secondaire (de support): offre des services au système; interagit avec le système une fois un cas d’usage déclenché. • Les personnes/choses peuvent jouer des rôles multiples simultanément ou sur une période de temps. • Un cas d’usage est toujours déclenché par un seul acteur. «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 88

Découverte d’acteurs • Qui interagit avec le système? ― Qu’est-ce qui utilise le système?

Découverte d’acteurs • Qui interagit avec le système? ― Qu’est-ce qui utilise le système? • Dans quel but? • Quels rôles jouent-ils? ― ― ― «SEG 3 501» D. Am u. Otta Qui installe le système? Qui démarre/arrête le système? Qui entretient le système? Qui fournit et demande de l’information au système? Y a-t-il des événements qui arrivent à des moments précis (répétitifs)? • Pouvons-nous généraliser certains acteurs (héritage)? yot wa Module 2 : Élicitation des exigences 89

Acteurs: Nomenclature • Choisissez leurs noms avec soin: «SEG 3 501» D. Am u.

Acteurs: Nomenclature • Choisissez leurs noms avec soin: «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 90

Outils • Plusieurs outils UML supportent les diagrammes de cas d’usage, sans vraiment bien

Outils • Plusieurs outils UML supportent les diagrammes de cas d’usage, sans vraiment bien supporter les cas d’usage eux-mêmes • L’outil UCEd (Prof. Somé) permet de décrire et de valider des cas d’utilisations «SEG 3 501» ― Et même de les fusionner, de les simuler, et d’en générer des machines à états finis! ― http: //www. site. uottawa. ca/~ssome/Use_Case _Editor_UCEd. html D. Am u. Otta yot wa Module 2 : Élicitation des exigences 91

Édition de scénarios avec UCEd Use Case model edition area Use Case description edition

Édition de scénarios avec UCEd Use Case model edition area Use Case description edition area Use Case model (use case, extend, include, actor…) Use Case description «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 92

Mésusage: Ne soyez pas négatifs, mais… • Comme les scouts, soyez toujours prêts! ―

Mésusage: Ne soyez pas négatifs, mais… • Comme les scouts, soyez toujours prêts! ― En affaires, certaines personnes aimeraient vous voir échouer… ― Il y a plusieurs imprévus dans tout projet ― Les systèmes ouverts sont susceptibles aux menaces de toutes parts ― Les logiciels contiennent toutes sortes de bogues «SEG 3 501» • Rappelez-vous ce que dit la Loi de Murphy… D. Am u. Otta yot wa Module 2 : Élicitation des exigences 93

Penser à des scénarios négatifs? • Un scénario négatif est un scénario dont le

Penser à des scénarios négatifs? • Un scénario négatif est un scénario dont le but ― Est indésirable par l’organisation en question ― Est désiré par un agent hostile (pas nécessairement humain) • Il peut être payant de les considérer ― Vous pouvez prévoir des solutions à l’avance ou… «SEG 3 501» ― Attendre qu’il soit trop tard pour réagir… D. Am u. Otta yot wa Module 2 : Élicitation des exigences 94

Cas de mésusage threatens Conduire l’auto Voler l’auto Voleur • Proposé par Sindre et

Cas de mésusage threatens Conduire l’auto Voler l’auto Voleur • Proposé par Sindre et Opdahl (2000) ― Décrit un cas d’usage contre lequel un système devrait se protéger ― Son but est de menacer le système ― Il y a des applications évidentes du côté sécurité et analyse de risques «SEG 3 501» D. Am u. Otta yot wa • Son més-acteur est un agent hostile • Les couleurs de l’ellipse sont inversées Module 2 : Élicitation des exigences 95

Une approche Mini. Max pour la sécurité • Tel une partie d’échecs… ― Le

Une approche Mini. Max pour la sécurité • Tel une partie d’échecs… ― Le meilleur mouvement des Blancs est de trouver le meilleur mouvement des Noirs et de le contrer. «SEG 3 501» D. Am u. Otta yot wa • Relations de menace (threatens) et d’atténuation (mitigates) Module 2 : Élicitation des exigences 96

Création de cas de mésusage: Étape 1 • Qui sont les més-acteurs, qui désirent:

Création de cas de mésusage: Étape 1 • Qui sont les més-acteurs, qui désirent: ― Nuire intentionnellement au système, à ses parties prenantes, ou à ses ressources ou ― Atteindre des buts incompatibles avec ceux du système. Compétiteur, Escroc, … «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 97

Création de cas de mésusage: Étape 2 • De quelle façon un més-acteur va-t-il

Création de cas de mésusage: Étape 2 • De quelle façon un més-acteur va-t-il nuire ou menacer le système et ses fonctionnalités «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 98

Création de cas de mésusage: Étape 3 • Réponse aux menaces: Comment ces dernières

Création de cas de mésusage: Étape 3 • Réponse aux menaces: Comment ces dernières peuvent-elle être neutralisées ou amoindries? ― Nouveaux cas d’usages, en inclusion ou extension «SEG 3 501» D. Am u. Otta yot wa Module 2 : Élicitation des exigences 99

Bénéfices et risques des cas de mésusage • Bénéfices ― Élicitation d’exigences de sécurité

Bénéfices et risques des cas de mésusage • Bénéfices ― Élicitation d’exigences de sécurité et de sûreté ― Identification d’exceptions, de compromis ― Documentation de justifications • Risques «SEG 3 501» D. Am u. Otta yot wa ― Risque de sombrer dans la conception prématurée de solutions lors de l’étape 3 (atténuation) ― Il faut autant que possible trouver les exigences nécessaires à l’atténuation des risques Module 2 : Élicitation des exigences 100

Outil: Scenario Plus (DOORS) Sabotage threatens Access the Services threatens includes threatens Service User

Outil: Scenario Plus (DOORS) Sabotage threatens Access the Services threatens includes threatens Service User includes. Loosely Control threatens conflicts with Rogue Employee aggravates Frustrated by Controls mitigates Service User aggravates Denial-of-Service Attack aggravates Security Officer Control Strictly mitigates includes Intrude into System Hacker includes Log Access Attempts includes mitigates includes Brute-Force Password Attack includes Operate Firewall mitigates Attack Unblocked Ports Recognize Users mitigates Impersonate Users «SEG 3 501» Use Cases for 'Web Portal Security' D. Am u. Otta yot wa Module 2 : Élicitation des exigences 101

Conseils sur les cas d’usage • Attention de ne pas sur-spécifier le comportement ―

Conseils sur les cas d’usage • Attention de ne pas sur-spécifier le comportement ― Gardez-le court et simple ― Le cas primaire devrait sur une page • Mettez l’emphase sur le quoi plutôt que sur le comment ― Surtout le comportement externe visible ― Est-ce que l’ordre de certains événements n’a pas d’importance? – Ex: l’ordre d’entrée de certaines données ― Évitez de discuter de l’interface utilisateur • Attention aussi de ne pas sous-spécifier! «SEG 3 501» ― Variations du cas primaire, exceptions ― Assurez-vous de couvrir les entrées, valides et invalides D. Am u. Otta yot wa Module 2 : Élicitation des exigences 102

Conseils sur les cas d’usage • Gardez les noms et les données à un

Conseils sur les cas d’usage • Gardez les noms et les données à un niveau abstrait souhaitable pour le client ― Noms évocateurs • Pensez aux cas d’usages avant de penser au diagramme ― La description textuelle est plus importante • Restez conservateur «SEG 3 501» D. Am u. Otta yot wa ― Évitez les décompositions fonctionnelles (profondes) avec les inclusions ― Évitez les extensions à profusion ― Ne tentez pas de tout décrire – Il y a tellement de variations et de choses qui peuvent aller mal! – La spécification d’exigences est là pour ça! Module 2 : Élicitation des exigences 103

En résumé • Bénéfices des scénarios ― ― Toutes les parties prenantes peuvent les

En résumé • Bénéfices des scénarios ― ― Toutes les parties prenantes peuvent les comprendre Reflètent souvent les exigences utilisateur essentielles Distinguent le comportement normal des exceptions Les scénarios sont souvent une vraie mine d’or pour clarifier les exigences – Scénario informel du client (paragraphe) – Formulation plus détaillée (compréhension de l’analyste) – Validation auprès du client, et ajustements ― Règle certains problèmes de synonymes, d’omission et d’incohérence • Désavantages des scénarios «SEG 3 501» ― Le passage à l’échelle est parfois difficile pour les systèmes complexes ― Mais plus encore, voir What's Wrong with Use Cases (de Stephen Ferg). À lire obligatoirement (sur TWiki). D. Am u. Otta yot wa Module 2 : Élicitation des exigences 104