Contract-Java - design by contract in Java - Contract-Java - Francisco, Pedro Filipe do Amaral Goucha (2013)
A programação por contrato é uma metodologia de programação que implementa mecanismos de correcção de forma bem adaptada à programação orientada por objectos, facilitando a construção de software correto e robusto, permitindo também a sua documentação e especificação e a construção de programas tolerantes a falhas. No entanto, ao contrário da programação orientada por objectos, a programação por contrato tem uma difusão bastante reduzida. Uma das razões para tal facto é a quase completa ausência de suporte para a metodologia na grande maioria das linguagens de programação usadas actualmente, nas quais se inclui a linguagem Java. Apesar de existirem algumas ferramentas para tentar suprir essa omissão da linguagem Java, são aproximações incompletas que não permitem usufruir de todas as vantagens e capacidades da programação por contrato. Neste trabalho pretende-se definir quais as características necessárias numa linguagem de modo a permitir a implementação completa da metodologia, avaliando as falhas que as ferramentas existentes possuem e, de seguida, definir e construir uma nova linguagem, “Contract-Java”, definida como uma extensão da linguagem Java, que permita usar a programação por contrato na sua totalidade.