Analyse fonctionnelle

Ludovic Deneuville, Rémi Pépin

Plan

  1. L’analyse fonctionnelle
    • Définition
    • Diagrammes UML
  2. 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 🤖