title: Raffinement
text: # Raffinement
  
  En informatique, le raffinement consiste à détailler la conception pour arriver par itérations à l'implémentation finale. À chaque itération correspond un niveau de granularité de plus en plus fin. Quand cette technique est appliquée au code source, la conception est alors matérialisée par du pseudo-code. Cette technique peut aussi être appliquée au modèle de données.
  
  Cette technique est utilisée par différentes méthodes :
  
  * Approche descendante (stepwise refinement) ;
  * FermaT Transformation System (en) ;
  * Méthode B (1996) ;
  * Méthode de la machine à états abstraits (ASM) ;
  * Prototypage logiciel vertical ;
  * Sous-typage comportemental (behavioral subtyping), voir le principe de substitution de Liskov
  * Microsoft Solutions Framework Process Model.
  
  L'opposée du raffinement est la programmation modulaire.
  
  