Especificação de Software
Linguagens de Especificação
Seegmüller
Linguagem de implementação != linguagem de especificação
Lowry
divergência das linguagens se deve à falta de boas técnicas de otimização
Feldman
processo descritivo
linguagem de programação
x
descrição de estados
X*X = z
Perlis
questões de programação giram em torno de uma linguagem
facilita a vida dos desenvolvedores
Falkoff
Há espaço para duas linguagens
linguagem formal de programação
linguagem natural
Schwartz:
Definição de dados separado dos procedimentos
Linguagens de Implementação
Afetam engenharia de software
definem nossos raciocínios
Wirth
Objeção principal de Linguagens de implementação que são distantes do hardware (alto nível)
Longe das realidades das maquinas
Não muito eficientes
Linguagens que refletem propriedades do hardware
Podem desenvolver programa eficientes
LPs devem Encontrar um meio-termo
Mais próxima possivel da maquina, mas independente dela
Dijskstra
Naturalidade X Eficiencia das LP
maior naturalidade não significa menor eficiencia
Falkoff
Mudança de ponto de vista
Menos dependente de usuario, maior eficiencia
Preconceito com LPs simples
Simplicidade afasta programadores
Acham que eles podem desenvolver uma LP própria
Definição de um sistema
Possíveis passos
1. Descrição informal do sistema
2. Listar funções e objetos externos
3. Formalizar a descrição
4. Remover contradições e minimizar complexidade
se o resultado é insatisfatório, retorne para 1
5.Definir primeiras implementação
Usar uma linguagem de especificação de software (SSL)
6.Colocar as implementações em modulos
7. Simular os módulos implementados
Se não satifatorio,redefinir os modulos, volte para 6
8. refinamento da implementação
9. simular o novo refinamento
retornar a passos de implementação de módulo e refinamento se não satisfatório
10. tomar último refinamento como especificação da implementação do sistema
Refutações
Engeli
Não funciona para sistemas grandes
Desnecessário para pequenos sistemas
Oestreicher:
Impossibilidade de voltar ao passo 1 caso necessario
Scalzi:
Necessita descrição completa do sistema antes de implementar