O projeto orientado a objetos tem como um de seus objetivos a redução, a um mínimo, do número de relações de associação entre classes, o que resulta em diminuição significativa do acoplamento entre os módulos do software. Esse processo é denominado de particionamento funcional.