Agradecimentos ___________________________________________________________________________ Ao meu orientador, prof. Claudio Fabiano Motta Toledo, meus sinceros agradecimentos pelo empenho e dedicação demonstrados, com sua orientação descobri minha vocação para a pesquisa científica. A todos os professores pelo entusiasmo no qual ministraram as disciplinas cursadas, pois contribuíram diretamente para minha formação. Ao meu amigo e colega de república, Maurício Acconcia Dias, por sua amizade presente, pelo interesse que teve em meu trabalho e sugestões dadas, onde muitas ideias surgiram de nossas conversas. Agradeço ao meu irmão e melhor amigo Jesimar da Silva Arantes por estar sempre por perto e compartilhar tudo que aprende comigo. Aos colegas do Laboratório de Computação Reconfigurável, onde passei a maior parte do tempo durante o desenvolvimento deste trabalho. Agradeço a FAPESP pelo apoio financeiro concedido, sem o qual não seria possível a realização deste trabalho. viii ix ___________________________________________________________________________ Resumo ___________________________________________________________________________ O presente documento tem por objetivo apresentar o desenvolvimento de uma ferramenta computacional para auxiliar profissionais da área de otimização na implementação de métodos e resolução de problemas. O projeto foi desenvolvido como tema de dissertação no Programa de Mestrado em Ciência da Computação e Matemática Computacional do ICMC/USP. A ferramenta pode ser enquadrada como um ambiente de desenvolvimento (framework) e será chamada de ProOF-Professional Optimization Framework. O ProOF tem como foco principal nortear a implementação computacional de métodos variados para problemas de otimização, utilizando como paradigma a programação orientada a objetos. Esse framework incorpora as principais características encontradas por outras ferramentas propostas na literatura. Além disso, procura facilitar a implementação de métodos e resolução de problemas ao permitir alto reuso de códigos, dar suporte a geração de códigos em diferentes linguagens de programação e gerar uma Graphical User Interface (GUI) automática para parametrização dos métodos inseridos pelo usuário. Alguns trabalhos publicados recentemente utilizaram versões em desenvolvimento do ProOF e serão citados como estudo de caso para atestar a robustez do framework proposto. Por fim, uma comparação será realizada entre o ProOF e outros frameworks existentes na literatura.