O que são contratos de operação?
No âmbito da programação e ciência da computação, os contratos de operação são uma maneira de especificar ou documentar como uma função específica alterará diferentes elementos dentro de um programa. Diferente de uma interface de programação abstrata (API) ou de um documento de controle de interface, os contratos de operação são usados para ajudar durante a fase de desenvolvimento e modelagem da criação de um aplicativo ou sistema de computador. No nível mais básico, o contrato define quatro recursos da operação, especificamente o nome da operação, quaisquer referências à operação em outras áreas do projeto, quaisquer requisitos de entrada ou estado antes da operação ser executada e o estado da operação. o sistema ou variáveis após a execução da operação. O contrato não define nada específico sobre como a operação funciona internamente e, em vez disso, trata apenas de como o estado de um programa é afetado por seu uso.
Os contratos de operação, em geral, não são criados para todas as operações dentro de um modelo de programa. Em vez disso, eles são reservados para operações que são particularmente complexas ou difíceis de rastrear. Várias linguagens de modelagem de computador, como a UML (Unified Modeling Language), oferecem suporte a contratos de operação e têm maneiras de ajudar a visualizar como o estado de um programa pode mudar após a execução da operação.
As duas primeiras definições necessárias para criar contratos de operação são o nome da operação, que pode ser qualquer coisa, e quaisquer referências cruzadas. Uma referência cruzada é uma lista de outras operações ou áreas de um modelo de programa que usam a operação que está sendo definida ou que a operação utilizará em seu processamento. Isso ajuda a ver como um design geral interage e é especialmente útil para ver como as alterações em uma área do modelo afetarão outras áreas.
Os contratos de operação a seguir definem as pré-condições necessárias para executar a operação. Isso pode exigir que determinadas variáveis sejam carregadas com valores apropriados ou que certas partes do programa estão em um estado específico. Se as pré-condições não forem atendidas quando a operação for executada, a operação não ocorrerá ou poderá falhar completamente. O contrato é usado como uma ferramenta abstrata, portanto as condições prévias geralmente são bastante gerais e envolvem mais o estado do programa do que variáveis específicas.
A parte final dos contratos de operação define quaisquer pós-condições. Pós-condições são uma lista de itens no modelo de programa que foram alterados devido à execução da operação. Isso pode especificar alterações em uma estrutura de dados ou modificações no estado do programa, como mudar o controle para um módulo separado. Através do uso de contratos de operação bem definidos, os programas podem ser modelados e modificados de forma eficaz antes do início da implementação.