Domain Driven Design
Méthodologies
Préambule
De nos jours, la conception logicielle est au centre des débats. Elle met en oeuvre un ensemble d'activité à partir d'une demande d'informatisation d'un processus. En général, elle est composée de 3 grandes étapes :
- Phase d'analyse ou phase d'études
- Phase de développement
- Phase de livraison
La phase d'analyse consiste à la récupération des besoins du client. On établit les exigences fonctionnelles et techniques du logiciel. C'est dans cette phase que va s'écrire les spécifications du projet et que l'architecture logicielle doit se définir On utilisera alors les techniques de modélisation. Il en découle la description des bases de données éventuelles à créer et les programmes à écrire et la manière dont tout cela va être intégré.
La phase de développement met en oeuvre la transformation des spécifications en programme. En plus de l'écriture du code, les tests unitaires auront aussi leurs importance pour garantir la qualité du logiciel produit.
La phase de livraison comprends l'intégration des différents modules logiciels ainsi que la validation des éxigences fonctionnelles avec le client (recette). Il ne faudra evidemment pas oublier la documentation du code pour la maintenance du logiciel.
Cycle en V
Le modèle du cycle en V (en comparaison avec les méthodes dites Agile) est un modèle conceptuel de gestion de projet
imaginé suite au problème de réactivité du modèle en cascade. Il permet, en cas d'anomalie, de limiter un retour aux étapes précédentes.
Les phases de la partie montante
doivent renvoyer de l'information sur les phases en vis-à-vis lorsque des défauts sont détectés, afin d'améliorer le logiciel.

Méthodes agiles
Les méthodes agiles sont des groupes de pratiques de projets de développement en informatique (conception de logiciel), pouvant s'appliquer à divers types de projets.
Elles ont pour dénominateur commun l'Agile manifesto.
Les méthodes agiles sont basées sur 4 valeurs fondamentales :
- Les individus et leurs interactions plus que les processus et les outils
- Du logiciel qui fonctionne plus qu’une documentation exhaustive
- La collaboration avec les clients plus que la négociation contractuelle
- L’adaptation au changement plus que le suivi d’un plan
Une approche dite « traditionnelle » attend généralement du client une expression détaillée et validée du besoin en entrée de réalisation, laissant peu de place au changement. La réalisation dure le temps qu’il faut et le rendez vous est repris avec le client pour la recette. Cet effet tunnel peut être très néfaste et conflictuel, on constate souvent un déphasage entre le besoin initial et l’application réalisée.
L’approche Agile propose au contraire de réduire considérablement voire complètement cet effet tunnel en donnant davantage de visibilité, en impliquant le client du début à la fin du projet et en adoptant un processus de développement itératif et incrémental. Elle considère que le besoin ne peut être figé et propose au contraire de s’adapter aux changements de ce dernier.
Parmi les méthodes agiles les plus utilées, on retrouve :
- Scrum
- Extreme Programming
- 2TUP