Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Especificação Formal
• Técnicas para a especificação não ambígua de
software
• Objectivos
– Explicar o lugar da especificação formal de software no processo de
software
– Explicar quando a utilização de especificação formal é vantajosa d
ponto de vista dos custos
– Descrever o modelo de processo baseado na transformação das
especificações formais num sistema executável
Engenharia de Software
1
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Especificação no Processo de Software
• A especificação e a concepção estão
inextrincavelmente interligados
• A concepção arquitectural é essencial para
estruturar a especificação
• As especificações formais são expressas em notação
matemática com vocabulário definido com precisão,
sintaxe e semânticas
Engenharia de Software
2
1
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Especificação e Concepção
Increasing contractor involvement
Decreasing client involvement
Requirements
definition
Requirements
specification
Architectural
design
Software
specification
High-level
design
Specification
Design
Engenharia de Software
3
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Especificação no Processo de Sofware
Requirements
specification
Formal
specification
Requirements
definition
High-level
design
System
modelling
Engenharia de Software
Architectural
design
4
2
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Especificação Formal em Avaliação
• As técnicas formais não são largamente utilizadas
no desenvolvimento de software à escala industrial
• Dada a relevância da matemática em outras
disciplinas ligadas à engenharia, porquê esta
situação?
Engenharia de Software
5
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
O Porquê da sua não Utilização?
• Conservadorismo inerente da gestão. É difícil de demonstrar
as vantagens da especificação formal de uma forma
objectiva
• Muitos engenheiros não têm treino nas matemáticas
discretas necessárias à especificação formal
• Os clientes do sistema podem ser relutantes em financiar as
actividades de especificação
• Algumas classes de software (particularmente sistemas
interactivos e sistemas concorrentes) são difíceis de
especificar utilizando técnicas correntes
Engenharia de Software
6
3
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
O Porquê da sua não Utilização?
• Há uma ignorância em larga escala da aplicabilidade das
especificações formais
• Há pouco suporte de ferramentas disponíveis para notações
formais
• Alguns cientistas da computação que são familiares com
métodos formais têm falta de conhecimento dos problemas
do mundo real aos quais eles podem ser aplicados e então
empregam a técnica em sistemas não reais, de que não se
encontra aplicabilidade.
Engenharia de Software
7
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Vantagens da Especificação Formal
• Proporciona discernimento nos requisitos de software e sua
concepção
• As especificações formais podem ser analisadas
matematicamente e a consistência e a perfeição aliada à
integralidade da especificação demonstrada. Pode ser
possível provar que a implementação corresponde à
especificação
• As especificações formais podem ser utilizadas para guiar o
pessoal encarregado dos testes dos componentes na
identificação dos casos de teste apropriados
• As especificações formais podem ser processadas utilizando
ferramentas de software. Pode ser possível animar
especificação para proporcionar um protótipo do software
Engenharia de Software
8
4
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Sete mitos do métodos formais
• Software perfeito resulta dos métodos formais
– Sem sentido - a especificação formal é um modelo do mundo real e pode
incorporar incompreensões, erros e omissões. Contudo, uma abordagem formal é
efectiva dado que faz com que os erros de especificação sejam mais fáceis de
detectar e podem constituir uma base não ambígua para concepção do sistema.
• Métodos formais significam proporcionar programas
– Especificar formalmente um sistema é valioso sem verificação formal do
programa dado que força uma análise detalhada prematura no processo de
desenvolvimento
• Métodos formais só podem ser justificados em sistemas onde
a segurança é um factor critico
– A experiência industrial sugere que os custos de desenvolvimento para todas as
classes de sistemas diminuem se for utilizada a especificação formal
Engenharia de Software
9
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Sete mitos do métodos formais
• Métodos formais são para matemáticos
– Sem sentido . Só matemática simples é necessária.
• Métodos formais aumentam os custos de desenvolvimento
– Não provado. Contudo, o padrão de custos é alterado, com mais custo em
fases iniciais do processo de software.
• Os clientes não podem compreender as especificações
formais
– Podem, se as especificações estiverem parafraseadas em linguagem
natural ou por animação de especificações.
• Métodos formais só foram ainda utilizados em sistemas
triviais
– Há agora muitos exemplos publicados de experiências com métodos
formais em sistemas não triviais.
Engenharia de Software
10
5
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
O Veredicto!
• As razões invocadas para a não utilização de métodos e
especificações formais são fracas e de natureza não técnica.
• Contudo, há boas razões para a não utilização desses
métodos, derivadas das alterações havidas no mercado e da
prática em engenharia de software
– A migração para sistemas interactivos. As técnicas de especificação
formal não abrangem de forma efectiva especificação com interface
gráfica
– O sucesso de métodos de engenharia de software no processo de
concepção e desenvolvimento. O investimento em outras técnicas de
engenharia de software pode revelar-se mais vantajosa do ponto de vista
relação custos-proveitos
Engenharia de Software
11
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Utilização dos Métodos Formais
• Estes métodos não deverão ser largamente utilizados num
futuro previsível. De igual forma não se revelarão vantajosos
na relação custos-proveitos para a maioria de classes de
sistemas (ex. sistemas interactivos e de negócio)
• Tornar-se-ão a abordagem normal ao desenvolvimento de
sistemas onde a segurança, fiabilidade sejam críticos e na
definição de standards, eu devem ser não ambíguos e
precisos
• Isto irá alterar o padrão de custos ao longo do processo do
software
Engenharia de Software
12
6
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Custos de Desenvolvimento com Especificação Formal
Cost
Validation
Design and
Implementation
Validation
Design and
Implementation
Specification
Specification
Without formal
specification
With formal
specification
Engenharia de Software
13
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Abordagens de Especificações Formais
• Abordagem algébrica
– O sistema é descrito em termos das operações e os seus relacionamentos
• Abordagem baseada em modelos
– Um modelo para o sistema actua como uma especificação. Este modelo é
construído utilizando entidades matemáticas bem conhecidas tais como
conjuntos e sequências
Engenharia de Software
14
7
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Linguagens de Especificação Formal
Algebraic
Model-based
Sequential
Larch (Guttag et al., 1985) ,
OBJ (Futatsugi et al., 1985)
Z (Spivey, 1989)
VDM (Jones, 1980)
Concurrent
Lotos (Bolognesi and
Brinksma, 1987),
CSP (Hoare, 1985)
Petri Nets (Peterson, 1981)
Engenharia de Software
15
Instituto Superior Politécnico de VISEU
Escola Superior de Tecnologia
Pontos Chave
• A especificação formal do sistema complementa as técnicas informais de
especificação
• As especificações formais são precisas e não ambíguas. Eliminam áreas
de dúvida numa especificação
• A especificação formal força a uma análise dos requisitos do sistema
numa fase prematura. A correcção dos erros nessa fase é mais barato do
que modificar um sistema já entregue
• As técnicas de especificação formal não são vantajosas do ponto de vista
da relação custos-proveitos, no desenvolvimento de sistemas interactivos.
São mais aplicáveis no desenvolvimento de sistemas de segurança crítica
e standards.
Engenharia de Software
16
8
Download

Especificação Formal - Escola Superior de Tecnologia