Analyse fonctionnelle
Ludovic Deneuville, Rémi Pépin
Plan
L’analyse fonctionnelle
Définition
Diagrammes UML
L’architecture logicielle
Définition
Séparation des responsabilités
Analyse fonctionnelle
Phases d’un projet
Analyse des besoins
Planification
Conception
Développements
Recette
Déploiement
Maintenance
C’est quoi l’analyse fonctionnelle ?
Première étape de tous les projets
Détermine les fonctions, acteurs du produit pour répondre aux besoins du client
Diagrammes pour échanger avec le client
Priorise les travaux
Les questions à se poser
Quels sont les types d’utilisateurs qui vont utiliser mon application (administrateur, gestionnaire, client…) ?
Quelles sont les fonctionnalités ? Fonctionnalités communes entre les profils ?
Comment fonctionnent les processus de l’application ?
Quels sont les diagrammes à utiliser ?
Les diagrammes UML
Cours de 1A
UML 2.5, Pascal Roques, Eyrolles, Mémento (bibliothèque Ensai)
Questions ?
Architecture logicielle
C’est quoi l’architecture logicielle ?
Le pendant technique de l’analyse fonctionnelle
Maintenant que l’on a le qui et quoi, on détermine le comment
On dessine le code de notre application
Vision macro de notre application (agencement des grandes pièces)
Pourquoi c’est important : parallèle avec l’architecture
Pourquoi c’est important : parallèle avec l’architecture
Pièces, l’installation électrique, l’eau, le gaz, contraintes législatives, s’adapter au terrain…
Besoin de réfléchir comment il faut agencer tout ça dès le début
Si on construit au fil de l’eau, on risque d’avoir une maison incohérente (au mieux)
Ce n’est pas du temps perdu !
Un grand principe : separation of concerns
Les principales couches d’une application
Présentation :
tout ce qui se charge de l’affichage (page web, console, fenêtre)
Métier :
c’est le métier de votre application, sa
plus-value
Persistance :
gère la persistance des données. Base de données ou système de fichiers
Pour votre projet
Présentation :
terminal
Métier :
votre code Python
Persistance :
base de données
Zoom sur la couche métier
Les couches de la couche métier 1/2
DAO
(
Data access object
) :
C’est la partie de votre code qui communique avec la base de données (CM4/TP4)
Service :
Code métier
Manipule des objets métiers pour créer de l’information ou de la valeur
Demande des objets à la couche DAO (TP4)
Appelle les webservices externes (TP3)
Les couches de la couche métier 2/2
Objets métiers :
Couche transversale
Représentent des concepts métiers que votre code va manipuler
Objets avec surtout des attributs et peu de méthodes
Contrôleur :
Récupère les inputs des utilisateurs
Renvoie les données à afficher
Pourquoi séparer en couches ?
Travail en groupe 🦸♀️🧙♂️👨💼👩🔬
Lisibilité du code 📖
Débogages 🐞
Limiter les risques d’erreurs quand on modifie le code (éviter l’assiette de spaghetti) 🍝
Informations à retenir
Passer du temps à réfléchir aux différents modules d’une application n’est pas une perte de temps 🕵️♀️
Diviser en couches permet de travailler en parallèle 🧪🧫📚
Mais il faut encore réfléchir à comment bien coder 🤖