Uma das grandes vantagens do desenvolvimento Orientado a Objetos é a possibilidade de representar o domÃnio que está sendo modelado de maneira mais próxima do mundo real. No entanto, esta prática não é utilizada com tanta frequência quanto esperado, a maioria dos sistemas construÃdos em linguagens OO como Java ou C# ainda é composto de estrutura de dados e funções como coisas separadas.