View
1.890
Download
0
Category
Preview:
DESCRIPTION
Emmanuel HUGONNET
Citation preview
B6
Soigner sa schizophrénie MOA/MOEVoyage au pays des spécifications exécutables
Emmanuel HUGONNET
lundi 12 octobre 2009
agiletour.org/fr/at2009_geneve.html
Soigner sa schizophrénieMOA / MOE
Voyage autour des spécifications exécutables
Rémy Sanlaville
Expert Senior en Ingénierie Logicielle Orange Labs
remy.sanlaville@orange-ftgroup.com
Emmanuel Hugonnet
Architecture J2EE
Silverpeas
emmanuel.hugonnet@silverpeas.com
Hervé Lourdin
Architecte Sénior / Coach agile
OCTO Technology
hlourdin@octo.com
Contrat de la sessionCe que vous verrez dans cette session
• Une introduction aux spécifications exécutables ?• A quoi ca sert, pourquoi c'est utile…
• Vivre un exemple basé sur la fonctionnalité d'authentification• Un panorama du domaine
• outils existants : approches, les avantages et inconvénients• les père fondateurs
Ce que vous ne verrez pas dans cette session• Une démonstration des outils
• cf. session Coding Dojo - Kata sur le pilotage par les tests d'acceptances (ATDD)
• Une solution magique à tous vos problèmes
Double PersonnalitéDouble Audience
"Stakeholders are the people whose life you touch with your software"Dan North
MOA MOE
Deux hémisphères
Architecture
Technique
Artisanat
Bien faireCe qu’il faut faire
Idées
Métier
Valeur
MOA MOE
Un problème de communication
MOE
exprime
Client
délivre
comprend
décrit
MOA
Insatisfaction
Gaspillage
Besoin Couvert
Communication
Fonctionnalités et leur utilisationpour un logiciel
Source CHAOS
CommunicationDéfinition de "terminé"
MOA MOE
ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson
Ensemble tout devient possible
Atelier de spécifications
Bug Bash copyright by Hans Bjordahl — www.bugbash.net
ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson
External Domain Specific Language
Given …
When …
Then …
Un Langage Commun
Spécifier par l’exemple
Les histoires d’utilisateur sont décrites au travers d’exemples : les scénarii
Les utilisateurs doivent utiliser des mots de passe sécurisés(une chaine de caractères dont la taille est comprise entre 8 et 20Et qui contiennent au moins une lettre, un chiffre et un caractère spécial)
Atelier de SpécificationsDiscussion
Que ce passe t'il si un utilisateur entre un mot de Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ?passe non sécurisé ?
Pouvez vous me donner des exemples de mots dePouvez vous me donner des exemples de mots depasse sécurisés et non sécurisés ?passe sécurisés et non sécurisés ?
Quels sont les caractères spéciaux ?Quels sont les caractères spéciaux ?
Comment prend on en compte les espaces ?Comment prend on en compte les espaces ?Que fait on pour les mots de passe basés sur un Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme dictionnaire avec une substitution simple comme ‘p@ssw0rd’ ?‘p@ssw0rd’ ?Comment gère t on les comptes existants ?Comment gère t on les comptes existants ?Comment savoir que cette fonction est "terminée" ?Comment savoir que cette fonction est "terminée" ?
Atelier de spécificationsDiscussion
Que ce passe t'il si un utilisateur entre un mot de Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ?passe non sécurisé ?
Pouvez vous me donner des exemples de mots de Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ?passe sécurisés et non sécurisés ?
Quels sont les caractères spéciaux ?Quels sont les caractères spéciaux ?
Comment prend on en compte les espaces ?Comment prend on en compte les espaces ?
Que fait on pour les mots de passe basés sur un Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme dictionnaire avec une substitution simple comme ‘p@ssw0rd’?”‘p@ssw0rd’?”
Comment gère t on les comptes existants ? Comment gère t on les comptes existants ?
Comment savoir que cette fonction est "terminée" ?Comment savoir que cette fonction est "terminée" ?
Les scénarii
Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe sécuriséAlors le message 'SUCCESS' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors le message 'Hello $login' apparait
Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe non sécuriséAlors le message 'FAILURE' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors il n'y parvient pas et le message 'FAILURE' apparait
Exemples
• Exemples de mots de passe sécurisé– p@ssw0rd– d1ction n@ire– dictionnaire_01
• Exemples de mots de passe non sécurisés– Trop court: p@sw0r– Trop long: dictionnaire_01_ dictionnaire_01– Sans chiffre: p@ssword– …
L’information circule
ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson
Scénarii Distillés
Exemples
ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson
Développer
ATDD / BDD : bien faire ce que je dois faire
Le métier pilote le développement
TDD : bien faire les choses
Émergence du design
On commence au Rouge
Il manque la Fixture
Fixture: code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)
Ecriture de la Fixture
Prêt à Développer
Première Etape
TDD – Ecriture du Test
TDD – Ecriture du Code
Vérification Fonctionnelle
Fonctionnalité Terminée
Les exemples permettent de prouver "scientifiquement" la théorie du développeur
Les tests d'acceptance sont le scanner du projet
Enfin les tests : l’exploration
Aspect Technologique
Aspect MétierS
up
po
rt d
u D
éve
lop
pe
me
nt
Critiq
ue
du
Pr o
du
it
Tests ExploratoiresTe
sts d
'Accepta
nce
Tests
Unita
ires
et d'In
tégra
tion
Disponibilité
Scalabilité
Sécurité …*ité
Rendre les spécifications exécutables
Différentes approches– Proche du code
• JBehave, Rspec, Easyb…
– Format moins technique• Wiki : Fitnesse/SLIM, GreenPepper…• HTML : Concordion, Robotframework…
– De nouveaux outils en cours de maturation• Twist, JBehave 2…
Les Pères Fondateurs
• JBehave : Dan North, Chris Matt• Test Driven Development: Kent Beck• FIT: Ward Cunningham• Example Driven Development: Brian
Marick• User Stories: Mike Cohn• Domain Driven Design: Eric Evans• Test Obsessed: Elisabeth Hendrickson
Bilan
Une meilleure communication entre les différents acteurs du projet
• Discuss : tous ensemble• Distill : définition par l'exemple• Develop : pilotage par l'exemple - "FAIT"• Demo : Validation
Bref, une seule équipe
Emergence d'une nouvelle génération d'outils pour relever de nouveaux défis
• Intégration au cycle de vie du projet (SCM)• Facilité de prise en main par la MOA• Meilleure Intégration avec les outils de développement• Rapports plus complets (couverture des exigences, évolution dans le temps…)
Perspectives
5 doigts : ExcellenteSuper c'est exactement ce qu'il me fallait !
4 doigts : BonneTrès intéressant,
3 doigts : Juste MoyenneIntéressant, sans plus. Je n’ai pas perdu mon temps.
2 doigts : UtileBof ! J'ai perdu du temps.
1 doigt : Inutile Je n'ai rien appris. J’ai vraiment perdu mon temps
ROTI (Return On Time Invested)
merci aux sponsors !
Recommended