Autor(es):
Francisco, Pedro Filipe do Amaral Goucha
Data: 2012
Identificador Persistente: http://hdl.handle.net/10773/11035
Origem: RIA - Repositório Institucional da Universidade de Aveiro
Assunto(s): Engenharia de computadores; Programação orientada para o objecto
Descrição
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. Design by Contract is a programming methodology which implements correction
mechanisms well adapted to object-oriented programming, easing the
construction of correct and robust software, as well as allowing its documentation
and specification and the construction of fault-tolerance programs.
However, unlike object-oriented programming, Design by Contract has a very
low distribution. One of the reasons for such is the lack of support for it
on most programming languages currently in use, in which Java is included.
Although a few tools attempt to workaround such lack of support, they all
present incomplete approaches which do not support all the advantages and
capabilities of Design by Contract.
In this work, we intend to define which characteristics are necessary in order
to fully implement the methodology, evaluating the faults of existing tools
and, afterwards, defining and constructing a new language, “Contract-Java”,
defined as an extension of the Java language, which allows to use Design by
Contract in its entirety. Mestrado em Engenharia de Computadores e Telemática