Os desafios enfrentados no desenvolvimento de software aumentam a cada dia. O surgimento de novas linguagens de programação, o custo de treinamento técnico de pessoas e a maior complexidade dos requisitos de negócios são algumas características da engenharia de software atualmente.