Présentation sur l'architecture logiciel et efficacité de développement des logiciels Métiers.
Cette conférence a été réalisée dans le cadre des Rencontres du Logiciel Métier #1 organisées par la société 2LE et ses partenaires le 23 novembre 2023 à la SIM de Mulhouse.
2. 2023
Sommaire
•Intro : les styles d’architectures
•Qu’est-ce qu’une mauvaise architecture ?
•Architecture et projets logiciels
• La refonte de logiciel
• L’intégration d’un nouveau logiciel dans un écosystème existant
• Start from scratch ?
•Les facteurs clé de succès ?
•Conclusions
4. 2023
If you think good architecture is expensive, try bad architecture.
Brian Foote and Joseph Yoder
Architecture is a hypothesis, that needs to be proven by implementation and
measurement.
Tom Gilb
The only way to go fast, is to go well.
Robert C. Martin
The goal of software architecture is to minimize the human resources required to
build and maintain the required system
Robert C. Martin
5. 2023
Les styles d’architectures logicielle
Architecture en
couches
Architecture
orientée objets
Architecture
client serveur
Modèles
Conceptuels de
Données Bases
de données
relationnelles
Architecture
Web 3 couches
Architecture
orientée agent
Design patterns
Domain-Driven
Design
Micro-services
NoSQL
Architecture
hexagonale
Serverless
Monolithe
modulaire
1970 1980 1990 2000 2010 2020
8. 2023
Les 7 signes d’une architecture bancale
•La rigidité : chaque changement
induit des changements en
cascade
•La fragilité : chaque changement
induit des bugs ailleurs dans le
code
•L’immobilité : le logiciel ne peut
être découpé en composants
réutilisables
9. 2023
Les 7 signes d’une architecture bancale
•La viscosité : faire les choses
correctement coûte plus cher que
de rajouter des verrues
•La complexité inutile : le logiciel
comprend des parties inutiles
•La répétition inutile : le même code
est dupliqué à plusieurs endroits
•L’opacité : le code n’est pas
compréhensible et difficile à lire
12. 2023
La refonte de logiciel
•Les points clés :
• Faire un audit de code pour voir ce qui est récupérable
• Questionner les processus existants : sont-ils encore pertinents ?
• Scripter et tester la reprise des données
• Soigner l’ergonomie et le vocabulaire pour augmenter l’adoption par les
utilisateurs
13. 2023
L’intégration d’un nouveau logiciel dans un
écosystème existant
•Les points clés :
• Réaliser un schéma du Système d’Information avec les technologies utilisées
par chaque outil
• Choisir une architecture qui s’adaptera aux différents flux à mettre en place
• Vérifier les points de blocage potentiels liés à la sécurité interne
14. 2023
Start from scratch ?
•Les points clés :
• Construire une architecture évolutive capable de s’adapter aux idées
successives et aux changements de marché
• Faire simple et efficace pour livrer rapidement une 1ère
version « vendable »
• Réutiliser des composants déjà existants pour limiter les coûts et accélérer les
développements
16. 2023
Les facteurs clé de succès ?
•L’architecture constitue le socle sur lequel le logiciel sera bâti
•Faire les bons choix requiert de l’expérience
•Investir en temps et en argent dans cette 1ère
phase décisive d’un
projet informatique est toujours la bonne décision
17. 2023
Clean Architecture
Caractéristique clé d’une bonne architecture
1. Indépendance / Framework. L’architecture utilise le framework comme un outil mais
n’est pas limité par lui.
2. Testable. ( automatiquement, et sans UI )
3. Indépendance de l’UI. L’interface web peut être remplacé par une interface Cli sans
changer les règles de gestion
4. Indépendance / Base de données.
5. Independent / extérieur . Les règles de gestion ne s’appuie pas sur des informations
externe.