Pré/Pós-condições
Segundo Ghezzi (Guezzi e Jazayeri, 1991), pré/pós-condições são um tipo de especificação lógica que mostra como um processo é classificado construindo-se fórmulas lógicas que relacionam as entradas e saídas do processo. A utilização de pré/pós-condições é uma maneira prática de descrever a função de um processo, sem dar informações sobre seu algoritmo. Uma especificação pré/pós é composta de duas partes principais: Pré-Condições e Pós-Condições.
As Pré-condições propõem de uma maneira geral tudo que deve ser verdadeiro antes que o processo (função) inicie, desta forma é possível especificar:
As estradas que devem estar disponíveis, exemplo: pode acontecer um acumulo de fluxos de dados ingressando em um processo, mas somente um é necessário para ativá-lo;
Os relacionamentos entre as entradas, exemplo: pode haver a necessidade de especificar que os fluxos de entrada precisam ter um valor em comum, os códigos das disciplinas que aparecem no fluxo disciplinas oferecidas deve aparecer também no fluxo de informação das disciplinas cadastradas para serem considerados válidos.
Os valores de um elemento de dados, exemplo: um elemento de dados deve estar dentro de um intervalo, tal como a nota do aluno entre 0 e 10.
Os relacionamentos entre depósitos de dados, exemplo: pode ser especificando uma pré-condição que estipula que, para cada numero do aluno do deposito de dados de matriculados, existe o número do aluno no deposito externo, que contém, entre outras coisas, os dados cadastrais dos alunos da universidade.
As funções não devem ser executadas se não se reunirem todas as pré-condições. As descrições das pré-condições que não são utilizadas pelo compilador são de grande utilidade para o programador, elas facilitam a compreensão da forma correta de utilizar o código já predefinido. Estas descrições devem encontrar-se junto do protótipo das funções, de forma a facilitar a compreensão das funções através de uma única consulta aos seus protótipos,