SlideShare une entreprise Scribd logo
1  sur  13
UXDA : une architecture
logicielle pilotée par
l'eXpérience Utilisateur
Human Talks Lyon – Octobre 2013 – Hébergé par La Cordée
Clément Bouillier - @clem_bouillier
Qui suis-je ?
Architecte/chef de projet/consultant mais avant tout
ARTISAN DEVELOPPEUR
> Twitter : @clem_bouillier
Membre actif des groupes suivants
> DevLyon : groupe de développeurs partageant une vision de
l’informatique créant de la valeur  http://devlyon.fr
> MUG Lyon : groupe de passionnés de technologies en
environnement Microsoft sur Lyon
> Fier d’être développeur : groupe visant à promouvoir le métier
de développeur en France  http://fierdetredeveloppeur.org/
10 minutes pour aller plus loin
1. Limites des applications CRUD et d’une architecture 3-tiers « type »
2. Des applications plus proches des utilisateurs avec la démarche UX
3. Des pistes pour une architecture « UX friendly » (UXDA ?)
Applications CRUD
Create
Read
Update
Delete
CRUD
INSERT
SELECT
UPDATE
DELETE
SGBDR
=> Un objet cible => Une table
Je vais demander à l’utilisateur
quels concepts il manipule, et pif
paf pouf, je lui fais table pour et
une IHM CRUD associée
Applications CRUD
Create
Read
Update
Delete
CRUD
WTF ?!? Pourquoi dois-je
m’adapter à un outil qui était
sensé m’aider ?
L’intention utilisateur est perdue
via des applications CRUD
Une application métier n’est-elle
pas plus qu’un éditeur amélioré
de base de données ?
Architecture en couche type
Présentation/IHM
Objets
métier
Services
métier
Accès aux données
CRUD sur les objets métier
Objets métier POCO/POJO/POPO = DTO
=> utilisé entre les couches présentation et métier => ne
refléte pas les intentions utilisateurs
=> anémiques (peu d’encapsulation)
=> bien souvent construit à partir de la base de données
=> voire complètement dépendant de la BDD si pattern
Active Record
Services métier = Transaction Script, ayant la fâcheuse tendance à enfler
=> peu de séparation des responsabilités, de cohérence entre méthodes…
=> une dépendance très forte sur la base de données
Démarche UX (User eXperience) et agilité
UX est une démarche de conception visant à se
concentrer sur les usages de l’utilisateur
=> modéliser les usages plus que les concepts
Des pratiques agiles s’inspirent de l’UX
=> exemple : format User Voice avec Personas
pour décrire une User Story
=> pourquoi l’utilisateur utilise l’application ?
Pourquoi ne pas fonder notre architecture sur toutes ces
informations ?
L’architecture en oignon (Onion Architecture)
UXDA : une architecture « UX friendly »
1) Introspection des usages des utilisateurs
=> appropriation de l’Ubiquituous Language (DDD)
2) Une architecture en oignon représentant le métier
=> Pattern Command pour chaque cas d’usage (User Story) = lien
entre les couches présentation et métier + périmètre de transaction
=> S’applique à un objet Domain Model non anémique =
encapsule la cohérence des données internes
=> Un Domain Event est levé lorsque => découplage de la
persistance
Exemple de code
Exemples de code tiré de http://mikehadlow.blogspot.fr/2010/09/separation-of-concerns-with-domain.html
Quelques pratiques complémentaires…
BDD : cette pratique va dans le même sens, cf. vidéo Emilien Pecoul des
Human Talks de mai 2013
Nombreuses pratiques autour de la POO : SRP (Single Responsability
Principle), Dependency Inversion, Law of Demeter…pour structurer son code
de manière à le rendre maintenable et évolutif
CQRS : séparation des responsabilités Command/Query = 2 modèles
(agrégation de ressources => bcp d’autres depuis)
Event Sourcing : et si on se passait de SGBDR ? ;)
MERCI
ROTI ?
Coding Dojo sur le sujet => rejoignez-nous
Pour aller plus loin sur les principes de POO et
les métriques associées, RDV au MUG Lyon le
24 octobre 2013 à Sciences U
Références
Martin Fowler : Pattern of Enterprise Application Architecture (Domain
Model, Transaction Script, Query Object…)
Jeffrey Palermo : Onion Architecture + les 3 parties suivantes
Udi Dahan : Domain Events

Contenu connexe

En vedette

Frances ( la paz)
Frances ( la paz)Frances ( la paz)
Frances ( la paz)Libro_28
 
13. en momentos así
13. en momentos así13. en momentos así
13. en momentos asícamaleonon
 
Torres jimena viajes
Torres jimena viajesTorres jimena viajes
Torres jimena viajesJimena Torres
 
Diapo new york et canada
Diapo new york et canadaDiapo new york et canada
Diapo new york et canadaedjouldem
 
Proyectos interesantes
Proyectos interesantesProyectos interesantes
Proyectos interesantesEsdiMaestrazgo
 
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015Remy EXELMANS
 
Article e-commerce magazine 3-3-2014
Article e-commerce magazine 3-3-2014Article e-commerce magazine 3-3-2014
Article e-commerce magazine 3-3-2014Logicités
 
Torres jimena opciones_windows
Torres jimena opciones_windowsTorres jimena opciones_windows
Torres jimena opciones_windowsJimena Torres
 
Algunas fotos
Algunas fotosAlgunas fotos
Algunas fotosedjouldem
 
Idea de negocio ing rabuck 02
Idea de negocio ing rabuck 02Idea de negocio ing rabuck 02
Idea de negocio ing rabuck 02Gilberto Rabuck
 
Présentation sur les carriere
Présentation sur les carrierePrésentation sur les carriere
Présentation sur les carriereryangood256
 
E portafolio claudia hernandez_52490726_83_pptx
E portafolio claudia hernandez_52490726_83_pptxE portafolio claudia hernandez_52490726_83_pptx
E portafolio claudia hernandez_52490726_83_pptxclapaherza
 

En vedette (16)

Frances ( la paz)
Frances ( la paz)Frances ( la paz)
Frances ( la paz)
 
Dios estará en todos los templos
Dios estará en todos los templosDios estará en todos los templos
Dios estará en todos los templos
 
13. en momentos así
13. en momentos así13. en momentos así
13. en momentos así
 
Manuallife360
Manuallife360Manuallife360
Manuallife360
 
Torres jimena viajes
Torres jimena viajesTorres jimena viajes
Torres jimena viajes
 
Diapo new york et canada
Diapo new york et canadaDiapo new york et canada
Diapo new york et canada
 
Proyectos interesantes
Proyectos interesantesProyectos interesantes
Proyectos interesantes
 
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015
Ateliers WEB 2.0 NEXA Ile de la Réunion - Juin 2015
 
Article e-commerce magazine 3-3-2014
Article e-commerce magazine 3-3-2014Article e-commerce magazine 3-3-2014
Article e-commerce magazine 3-3-2014
 
Recetario culinaria
Recetario culinariaRecetario culinaria
Recetario culinaria
 
Torres jimena opciones_windows
Torres jimena opciones_windowsTorres jimena opciones_windows
Torres jimena opciones_windows
 
Algunas fotos
Algunas fotosAlgunas fotos
Algunas fotos
 
Idea de negocio ing rabuck 02
Idea de negocio ing rabuck 02Idea de negocio ing rabuck 02
Idea de negocio ing rabuck 02
 
Présentation sur les carriere
Présentation sur les carrierePrésentation sur les carriere
Présentation sur les carriere
 
E portafolio claudia hernandez_52490726_83_pptx
E portafolio claudia hernandez_52490726_83_pptxE portafolio claudia hernandez_52490726_83_pptx
E portafolio claudia hernandez_52490726_83_pptx
 
Lideres mundiales
Lideres mundialesLideres mundiales
Lideres mundiales
 

Similaire à 20131008 - uxda - human talk

[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!Alexandre Touret
 
Mtl apptalks ux mobile et ucd - janvier 2014
Mtl apptalks   ux mobile et ucd - janvier 2014Mtl apptalks   ux mobile et ucd - janvier 2014
Mtl apptalks ux mobile et ucd - janvier 2014Loic Nunez
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
AZEO Interview croisée : Moderniser le développement des applications
AZEO Interview croisée : Moderniser le développement des applicationsAZEO Interview croisée : Moderniser le développement des applications
AZEO Interview croisée : Moderniser le développement des applicationsAZEO
 
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...Microsoft
 
Que pensez-vous de designer de Microsoft
 Que pensez-vous de designer de Microsoft  Que pensez-vous de designer de Microsoft
Que pensez-vous de designer de Microsoft Erol GIRAUDY
 
Symposium uxdesign
Symposium uxdesignSymposium uxdesign
Symposium uxdesignVersusmind
 
Engagez vos utilisateurs
Engagez vos utilisateursEngagez vos utilisateurs
Engagez vos utilisateursSimon Bédard
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursStéphanie Hertrich
 
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016Anaël ICHANE
 
Cours tic complet
Cours tic completCours tic complet
Cours tic completsofixiito
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System SARL
 

Similaire à 20131008 - uxda - human talk (20)

[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
 
Mtl apptalks ux mobile et ucd - janvier 2014
Mtl apptalks   ux mobile et ucd - janvier 2014Mtl apptalks   ux mobile et ucd - janvier 2014
Mtl apptalks ux mobile et ucd - janvier 2014
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
AZEO Interview croisée : Moderniser le développement des applications
AZEO Interview croisée : Moderniser le développement des applicationsAZEO Interview croisée : Moderniser le développement des applications
AZEO Interview croisée : Moderniser le développement des applications
 
Android201710 avrilcours3
Android201710 avrilcours3Android201710 avrilcours3
Android201710 avrilcours3
 
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
De l’ergonomie aux bonnes méthodes de développement de vos applications Windo...
 
Plasticitérecherche2015 2
Plasticitérecherche2015 2Plasticitérecherche2015 2
Plasticitérecherche2015 2
 
Que pensez-vous de designer de Microsoft
 Que pensez-vous de designer de Microsoft  Que pensez-vous de designer de Microsoft
Que pensez-vous de designer de Microsoft
 
Symposium uxdesign
Symposium uxdesignSymposium uxdesign
Symposium uxdesign
 
Engagez vos utilisateurs
Engagez vos utilisateursEngagez vos utilisateurs
Engagez vos utilisateurs
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des Entrepreneurs
 
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016
Mon processus de design en tant que PO sans UX designer - Agile Tour Lille 2016
 
Cours tic complet
Cours tic completCours tic complet
Cours tic complet
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Strasbourg2010 damy
Strasbourg2010 damyStrasbourg2010 damy
Strasbourg2010 damy
 
Interactivite@ledna
Interactivite@lednaInteractivite@ledna
Interactivite@ledna
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
 

Plus de Clement Bouillier

EventStorming Agile Tour Aix-Marseille
EventStorming Agile Tour Aix-MarseilleEventStorming Agile Tour Aix-Marseille
EventStorming Agile Tour Aix-MarseilleClement Bouillier
 
20141021 - Coding dojo EventSourcing
20141021 - Coding dojo EventSourcing20141021 - Coding dojo EventSourcing
20141021 - Coding dojo EventSourcingClement Bouillier
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyonClement Bouillier
 
20131210 - Hacker l’agilité - Human Talks Lyon
20131210 - Hacker l’agilité - Human Talks Lyon20131210 - Hacker l’agilité - Human Talks Lyon
20131210 - Hacker l’agilité - Human Talks LyonClement Bouillier
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 

Plus de Clement Bouillier (6)

EventStorming Agile Tour Aix-Marseille
EventStorming Agile Tour Aix-MarseilleEventStorming Agile Tour Aix-Marseille
EventStorming Agile Tour Aix-Marseille
 
20141021 - Coding dojo EventSourcing
20141021 - Coding dojo EventSourcing20141021 - Coding dojo EventSourcing
20141021 - Coding dojo EventSourcing
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon
 
20131214 - gdcr 2013 - lyon
20131214 - gdcr 2013 - lyon20131214 - gdcr 2013 - lyon
20131214 - gdcr 2013 - lyon
 
20131210 - Hacker l’agilité - Human Talks Lyon
20131210 - Hacker l’agilité - Human Talks Lyon20131210 - Hacker l’agilité - Human Talks Lyon
20131210 - Hacker l’agilité - Human Talks Lyon
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 

20131008 - uxda - human talk

  • 1. UXDA : une architecture logicielle pilotée par l'eXpérience Utilisateur Human Talks Lyon – Octobre 2013 – Hébergé par La Cordée Clément Bouillier - @clem_bouillier
  • 2. Qui suis-je ? Architecte/chef de projet/consultant mais avant tout ARTISAN DEVELOPPEUR > Twitter : @clem_bouillier Membre actif des groupes suivants > DevLyon : groupe de développeurs partageant une vision de l’informatique créant de la valeur  http://devlyon.fr > MUG Lyon : groupe de passionnés de technologies en environnement Microsoft sur Lyon > Fier d’être développeur : groupe visant à promouvoir le métier de développeur en France  http://fierdetredeveloppeur.org/
  • 3. 10 minutes pour aller plus loin 1. Limites des applications CRUD et d’une architecture 3-tiers « type » 2. Des applications plus proches des utilisateurs avec la démarche UX 3. Des pistes pour une architecture « UX friendly » (UXDA ?)
  • 4. Applications CRUD Create Read Update Delete CRUD INSERT SELECT UPDATE DELETE SGBDR => Un objet cible => Une table Je vais demander à l’utilisateur quels concepts il manipule, et pif paf pouf, je lui fais table pour et une IHM CRUD associée
  • 5. Applications CRUD Create Read Update Delete CRUD WTF ?!? Pourquoi dois-je m’adapter à un outil qui était sensé m’aider ? L’intention utilisateur est perdue via des applications CRUD Une application métier n’est-elle pas plus qu’un éditeur amélioré de base de données ?
  • 6. Architecture en couche type Présentation/IHM Objets métier Services métier Accès aux données CRUD sur les objets métier Objets métier POCO/POJO/POPO = DTO => utilisé entre les couches présentation et métier => ne refléte pas les intentions utilisateurs => anémiques (peu d’encapsulation) => bien souvent construit à partir de la base de données => voire complètement dépendant de la BDD si pattern Active Record Services métier = Transaction Script, ayant la fâcheuse tendance à enfler => peu de séparation des responsabilités, de cohérence entre méthodes… => une dépendance très forte sur la base de données
  • 7. Démarche UX (User eXperience) et agilité UX est une démarche de conception visant à se concentrer sur les usages de l’utilisateur => modéliser les usages plus que les concepts Des pratiques agiles s’inspirent de l’UX => exemple : format User Voice avec Personas pour décrire une User Story => pourquoi l’utilisateur utilise l’application ? Pourquoi ne pas fonder notre architecture sur toutes ces informations ?
  • 8. L’architecture en oignon (Onion Architecture)
  • 9. UXDA : une architecture « UX friendly » 1) Introspection des usages des utilisateurs => appropriation de l’Ubiquituous Language (DDD) 2) Une architecture en oignon représentant le métier => Pattern Command pour chaque cas d’usage (User Story) = lien entre les couches présentation et métier + périmètre de transaction => S’applique à un objet Domain Model non anémique = encapsule la cohérence des données internes => Un Domain Event est levé lorsque => découplage de la persistance
  • 10. Exemple de code Exemples de code tiré de http://mikehadlow.blogspot.fr/2010/09/separation-of-concerns-with-domain.html
  • 11. Quelques pratiques complémentaires… BDD : cette pratique va dans le même sens, cf. vidéo Emilien Pecoul des Human Talks de mai 2013 Nombreuses pratiques autour de la POO : SRP (Single Responsability Principle), Dependency Inversion, Law of Demeter…pour structurer son code de manière à le rendre maintenable et évolutif CQRS : séparation des responsabilités Command/Query = 2 modèles (agrégation de ressources => bcp d’autres depuis) Event Sourcing : et si on se passait de SGBDR ? ;)
  • 12. MERCI ROTI ? Coding Dojo sur le sujet => rejoignez-nous Pour aller plus loin sur les principes de POO et les métriques associées, RDV au MUG Lyon le 24 octobre 2013 à Sciences U
  • 13. Références Martin Fowler : Pattern of Enterprise Application Architecture (Domain Model, Transaction Script, Query Object…) Jeffrey Palermo : Onion Architecture + les 3 parties suivantes Udi Dahan : Domain Events