Capítulo 10 Especificações Formais Baseado nos slides Traduzidos por Jacinta Pereira em 2007.1 do livro do Sommerville de 2000 Revisado e modificado por Rossana Andrade em 2009.1 Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 1
Especificação Formal Técnicas para a especificação nãoambígua do software Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 2
Objetivos Explicar porque a especificação formal ajuda a descobrir problemas nos requisitos de sistema Descrever o uso de técnicas algébricas e baseadas em modelo Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 3
Tópicos Especificação formal no processo de software Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 4
Métodos formais Especificação formal faz parte de uma coleção mais genérica de técnicas que são conhecidas como métodos formais Esses métodos são todos baseados em representação matemática e análise de software Os métodos formais incluem Especificação formal Análise e prova da especificação Desenvolvimento transformacional Verificação do programa Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 5
Aceitação dos métodos formais Métodos formais não se tornaram técnicas principais de desenvolvimento de software como havia sido previsto Outras técnicas de engenharia de software obtiveram mais sucesso no aumento da qualidade do sistema. Dessa forma, a necessidade de métodos formais foi reduzida Mudanças do mercado fizeram com que o tempo de produção, ao invés de um software com poucos erros, se tornasse o fator principal. Métodos formais não diminuem o tempo de produção O escopo dos métodos formais é limitado. Eles nem sempre se encaixam bem com a especificação e análise de interfaces de usuários e interação Métodos formais são difíceis de aplicar em grandes sistemas Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 6
Uso de métodos formais Métodos formais têm aplicabilidade prática limitada Seu principal benefício é o de reduzir o número de erros no sistema. Dessa forma, sua área principal de aplicabilidade é em sistemas críticos Nesta área, o uso de métodos formais é mais eficiente em custo-benefício Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 7
Especificação no processo de software Especificação e design são inseparavelmente interligados. O projeto arquitetônico é essencial para estruturar uma especificação. Especificações formais são expressas em notação matemática com vocabulário, sintaxe e semântica precisamente definidos Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 8
Especificação e projeto: cascata Increasing contractor involvement Decreasing client involvement Requirements Requirements Architectural Software High-level definition specification design specification design Specification Design Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 9
Especificação e projeto: iterativo Requirements specification Formal specification Requirements definition High-le vel design System modelling Ar chitectural design Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 10
Especificação técnica Abordagem algébrica O sistema é especificado em relação às suas operações e seus relacionamentos Abordagem baseada em um modelo O sistema é especificado em relação a um modelo de estado que é construído através de construtores matemáticos como conjuntos e seqüências. As operações são definidas pela modificação no estado do sistema Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 11
Linguagens de especificação formal Sequential Algebraic Larch (Guttag, Horning et al., 1985; Guttag, Horning et al., 1993), OBJ (Futatsugi, Goguen et al., 1985) Model-based Z (Spiv ey, 1992) VDM (Jones, 1980) B (W ordsworth, 1996) Concurrent Lotos (Bolognesi and Brinksm a, 1987), CSP (Hoare, 1985) Petri Nets (Peterson, 1981) Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 12
Uso da especificação formal A especificação formal envolve o investimento de mais esforço nas fases iniciais do desenvolvimento do software Isso reduz os erros de requisitos, já que força uma análise detalhada dos requisitos Incompletude e inconsistência podem ser descobertas e resolvidas Dessa forma, há economia, já que a quantidade de trabalho a ser refeito devido a problemas nos requisitos é reduzida Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 13
Custos do Desenvolvimento com especificação formal Especificação Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 14
Pontos - Chave Especificação de sistema formal complementa as técnicas de especificação informal Especificações formais são precisas e não- ambíguas. Removem áreas de dúvidas na especificação Especificação formal força uma análise dos requisitos de sistema em um estágio inicial. Corrigir os erros nesta fase é mais barato que modificar um sistema entregue Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 15
Pontos-Chave Técnicas de especificação formal são mais aplicáveis no desenvolvimento de sistemas críticos e normas técnicas. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 9 Slide 16