5 ELEMENTOS ESSENCIAIS PARA DESENVOLVIMENTO DE SOFTWARES