extra˘c~ao de modelos de comportamento de...
TRANSCRIPT
![Page 1: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/1.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos deComportamento de Software
Lucio Mauro [email protected]
Grupo de VV & TInstituto de Informatica
Universidade Federal do Rio Grande do Sul
Workshop-Escola de Informatica Teorica 201315/10/2013
![Page 2: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/2.jpg)
Extracao de Modelos de Comportamento de Software
Software
Importancia do Software
O que e software?
”Um programa de computador, a documentacao sobre o seumodo de operacao e os dados de configuracao exigidos para queele funcione corretamente.” [Sommerville 2004]
![Page 3: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/3.jpg)
Extracao de Modelos de Comportamento de Software
Software
Importancia do Software
Software na Vida Cotidiana
![Page 4: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/4.jpg)
Extracao de Modelos de Comportamento de Software
Software
Importancia do Software
Software nao e importante se...
Voce viaja assim:
![Page 5: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/5.jpg)
Extracao de Modelos de Comportamento de Software
Software
Importancia do Software
Software nao e importante se...
E usa um computador deste modelo:
![Page 6: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/6.jpg)
Extracao de Modelos de Comportamento de Software
Software
Desenvolvimento de Software
Desenvolvimento de Software
Em geral
1 Analise (requisitos, especificacao)
2 Projeto (modelagem)
3 Validacao (software e o correto?) eVerificacao (software esta correto?)
4 Implementacao
5 Testes
6 Manutencao (correcao de erros e inclusao de modificacoes)
![Page 7: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/7.jpg)
Extracao de Modelos de Comportamento de Software
Software
Desenvolvimento de Software
Comportamento Incorreto
E possıvel afirmar-se que:
Quase todas as partes de um software apresentam algumdefeito durante o desenvolvimento
Devido a limitacoes de orcamento e tempo, maioria dossistemas de software sao postos em uso ainda comdefeitos
Logo, ha grande probabilidade de o software que usamosestar defeituoso!!!
![Page 8: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/8.jpg)
Extracao de Modelos de Comportamento de Software
Software
Desenvolvimento de Software
Software correto e possıvel?
Nem sempre e possıvel garantir correcao total
E possıvel, sim, aumentar a confianca na correcao
Desenvolvimento rigoroso com o uso de tecnicas de verificacao
![Page 9: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/9.jpg)
Extracao de Modelos de Comportamento de Software
Software
Desenvolvimento de Software
Software correto e possıvel?
Nem sempre e possıvel garantir correcao total
E possıvel, sim, aumentar a confianca na correcao
Desenvolvimento rigoroso com o uso de tecnicas de verificacao
![Page 10: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/10.jpg)
Extracao de Modelos de Comportamento de Software
Verificacao de Software
Verificacao de Modelos
Principais Abordagens
Teste de Software
Verificacao Formal
Analise Estatica
Prova de Teoremas
Verificacao de Modelos
![Page 11: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/11.jpg)
Extracao de Modelos de Comportamento de Software
Verificacao de Software
Verificacao de Modelos
Verificacao de Modelos
Totalmente automatica ⇒ tecnologia ”push-button”
Exploracao completa do espaco de estados
Geracao de contraexemplo
Tem sido usada com sucesso tanto no ambito academicoquanto por grandes empresas:
IntelIBMMicrosoftBoeingNASA...
![Page 12: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/12.jpg)
Extracao de Modelos de Comportamento de Software
Verificacao de Software
Processo de Verificacao
Processo de Verificacao
Etapas segundo [Clarke et al. 1999]:
1 Especificacao (requisitos ⇒ propriedades)
2 Modelagem
3 Verificacao (Modelo respeita as propriedades do sistema?)
![Page 13: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/13.jpg)
Extracao de Modelos de Comportamento de Software
Verificacao de Software
Processo de Verificacao
Resultados da Verificacao
Se verificacao indicar violacao das propriedades
1 Geracao do contraexemplo
2 Realizar alteracoes
3 Refazer verificacao
Processo termina quando nao houver mais violacoesdetectadas
![Page 14: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/14.jpg)
Extracao de Modelos de Comportamento de Software
Verificacao de Software
Processo de Verificacao
Ferramentas
Spin
http://spinroot.com/spin/whatispin.html
SMV
http://embedded.eecs.berkeley.edu/Alumni/kenmcmil/smv/
LTSA
http://www.doc.ic.ac.uk/ltsa
. . .
![Page 15: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/15.jpg)
Extracao de Modelos de Comportamento de Software
Modelos
O que e um Modelo?
![Page 16: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/16.jpg)
Extracao de Modelos de Comportamento de Software
Modelos
Modelos de Software
Sao descricoes abstratas de algum aspecto de um software
Podem ser de diversos tipos, baseados em diversasabstracoes e servirem a diferentes propositos:
Diagrama de ClassesControl Flow Graph (CFG)Data Flow Graph (DFG)Message Sequence Chart (MSC)Rede de PetriCadeias de MarkovRede de Automatos EstocasticosGramaticas de GrafosKripke StructureLabelled Transition Systems (LTS)...
![Page 17: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/17.jpg)
Extracao de Modelos de Comportamento de Software
Modelos
Modelos de Comportamento
Foco em modelos de comportamento
Descrevem o comportamento esperado do software
Podem ser baseados em:
Estados (Kripke Structure)
Acoes (LTS)
Estados e Acoes (LKS)
![Page 18: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/18.jpg)
Extracao de Modelos de Comportamento de Software
Modelos
Aplicacao de Verificacao de Modelos
Questoes:
De onde vem o modelo a ser verificado?
Como garantir que este modelo sera corretamenteimplementado?
![Page 19: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/19.jpg)
Extracao de Modelos de Comportamento de Software
Modelos
Codigo X Modelo
![Page 20: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/20.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Construcao de Modelos
Construcao de Modelos
Ideal
Automatica
Facil e rapida
Requisito essencial: Modelo deve ser uma representacao fieldo sistema
Modelo M e completo se inclui todos os comportamentosrealizaveis do programa ProgL(Prog) ⊆ L(M)
Modelo M e correto se inclui somente comportamentosrealizaveis do programa ProgL(M) ⊆ L(Prog)
![Page 21: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/21.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Construcao de Modelos
Extracao de Modelos
Processo de se obter um modelo (de comportamento) apartir de um software existente [Holzmann & Smith 1999]
Possibilita a geracao automatica do modelo
Modelo gerado descreve o comportamento implementadopelo software, dado um nıvel de abstracao
Esbarra no problema de construcao de modelos [Corbett et al.2000]
![Page 22: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/22.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Exemplo
1 p u b l i c c l a s s Editor {2 p r i v a t e boolean isOpen ;3 p r i v a t e boolean isSaved ;4
5 p u b l i c Editor ( ) {6 i n t cmd = −1;7 isOpen = f a l s e ;8 isSaved = t r u e ;9
10 w h i l e ( cmd != 4){11 cmd = readCmd ( ) ;12 s w i t c h ( cmd ) {13 case 0 : i f ( ! isOpen )14 name = open ( ) ;15 break ;16 case 1 : i f ( isOpen )17 edit ( name ) ;18 break ;19 case 2 : i f ( isOpen )20 print ( name ) ;
21 break ;22 case 3 : i f ( ! isSaved )23 save ( name ) ;24 break ;25 case 4 : exit ( name ) ;26 }27 }28 }29 . . .30 v o i d exit ( String n ) {31 i f ( ! isSaved ) {32 i n t opt = readOpt ( ) ;33 i f ( opt == 0)34 save ( n ) ;35 }36 i f ( isOpen ) close ( n ) ;37 }38 . . .39 }
![Page 23: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/23.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Estatica
Enter
cmd!=4
readCmd()
cmd
!isOpen isOpen isOpen !isSaved
!isSaved
opt==0
open() edit() print() save()
exit()
readCmd()
save()
close()
Enter
Return
Return
isOpen
true true
true true
false
true true
true
true
falsefalsefalse
false
false
false
false
01 2 3 4
Enter
cmd!=4
readCmd()
cmd
!isOpen isOpen isOpen !isSaved
!isSaved
opt==0
open() edit() print() save()
exit()
readCmd()
save()
close()
Enter
Return
Return
isOpen
true true
true true
false
true true
true
true
falsefalsefalse
false
false
false
false
01 2 3 4
![Page 24: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/24.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Estatica (cont.)
Comportamento completo do sistema
Alguns comportamentos irrealizaveis ⇒ falsos positivos
Requer acesso ao codigo fonte
Exemplos:
Bandera [Corbett et al. 2000]
Java PathFinder [Havelund et al. 2000]
SLAM [Ball & Rajamani 2002]
BLAST [Henzinger et al. 2002]
![Page 25: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/25.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Estatica (cont.)
Topicos Relacionados:
Execucao Simbolica [King 1976]
Slicing [Corbett et al. 2000]
Counterexample-Guided Abstraction Refinement (CEGAR)[Kroening et al. 2004]
![Page 26: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/26.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Dinamica
Trace: open edit save print edit edit print save print edit exit save close
q0 q1 q2 q4q3 q6open edit
edit
printsave
save
close
q5
exit
edit
save
q0 q1 q2 q4q3 q6q6open edit
edit
printsave
save
close
q5
exit
edit
save
![Page 27: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/27.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Dinamica (cont.)
Extracao estilo ”caixa preta”
Contem somente comportamentos reais
Requer processo de inferencia ⇒ possıvel inclusao decomportamentos invalidos
Nao ha garantia de modelo completo
Exemplos:
Grammar Inference [Cook & Wolf 1998]
GK-Tail [Lorenzolli et al. 2006]
![Page 28: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/28.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Dinamica (cont.)
Topicos Relacionados:
Aprendizado de automatos [Angluin 1987]
Analise Estatıstica [Cook & Wolf 1998]
Analise Parametrizada [Lorenzolli et al. 2006]
![Page 29: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/29.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Hıbrida
Trace: open edit save print edit edit print save print edit exit save close
open
edit
save
exit save close
0 1 2 E
![Page 30: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/30.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Hıbrida (cont.)
Combina comportamentos reais com informacoes da estruturado codigo
Correcao e garantida pelo apoio na informacao estatica
Completude depende dos comportamentos observados
Exemplos:
Daikon & ESC/Java [Nimmer & Ernst 2002]
LTSE [Duarte et al. 2006]
![Page 31: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/31.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem Hıbrida (cont.)
Topicos Relacionados:
Inferencia dinamica + analise estatica [Nimmer & Ernst 2002]
Contextos [Duarte et al. 2006]
![Page 32: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/32.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Abordagem de Modelo Implıcito
Nao ha geracao de um modelo ”manipulavel”
Runtime monitoring
Exploracao do espaco de estados pode nao ser completa
Exemplo:
Verisoft [Godefroid 2003]
![Page 33: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/33.jpg)
Extracao de Modelos de Comportamento de Software
Extracao de Modelos
Abordagens
Topicos
Abstracao de construcoes de linguagens modernas (ADT,excecoes, heranca, aspectos, inner classes, etc.)
Refinamento de modelos
Analise de concorrencia
Modelos completos com respeito a algum criterio (cobertura,propriedade, etc.)
![Page 34: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/34.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Grupo de VV & T
Grupo de pesquisa do INF/UFRGS dedicado a pesquisa emValidacao, Verificacao e Teste de Sistemas Computacionais
Integrantes:
Profa. Dra. Leila RibeiroProfa. Dra. Erika CotaProf. Dr. Rodrigo MachadoProf. Dr. Lucio Mauro Duarte
Colaboracoes em projetos com pesquisadores da UFPel,UNIPAMPA e PUCRS
Mais informacoes:
https://wiki.inf.ufrgs.br/Verites (em construcao)
![Page 35: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/35.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Extracao de modelos LTS baseados em contextos [Duarte etal. 2008]
Contextos combinam informacoes de controle de fluxo cominformacoes sobre valores de atributos e cadeias de chamadasde metodos
Permite combinacao segura de rastros de execucao, inclusivecom possibilidade de comportamentos extras
Independente de linguagem (regras de anotacao)
Suporte a sistemas concorrentes
Completude depende dos rastros utilizados
![Page 36: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/36.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Trace: open edit save print edit edit print save print edit exit save close
open
edit
save
exit save close
0 1 2 E
open edit
print edit
save
exit save close
0 1 2 3 4 E
![Page 37: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/37.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Combinacao de Verificacao de Modelos e Teste de Software[Duarte 2011]
Abordagem incremental para garantir um modelo completo
Uso de casos de teste para guiar a extracao do modelo (e.g.,baseado em uma propriedade - Property-Oriented Testing - ouem um criterio de cobertura)
Modelo criado usado para gerar novos casos de teste(Model-Based Testing)
![Page 38: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/38.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Test
Cases
ImplementationTesting
Results
Behaviour
Model
Verification
Results
produce
construct
verify
generate
execute
modify
![Page 39: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/39.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Trace: open edit save print edit edit print save print edit exit save close
open
edit
exit close
edit
exit
save save
close
0 1 2 E 4 5
![Page 40: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/40.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Extracao de modelos em Gramaticas de Grafos [Oliveira et al.2013]
Adaptacao da abordagem de extracao de LTS
Mudanca de paradigma, visto que GG e baseada em estados(dados) e nao em acoes
![Page 41: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/41.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Extracao de modelos quantitativos
Possibilidade de extrair modelos que possam ser usados paraanalises quantitativas, tais como Redes de AutomatosEstocasticos
![Page 42: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/42.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos no Grupo de VV & T (cont.)
Verificacao de implementacoes de sistemas
Uso do modelo extraıdo para comparacao com um modelo daespecificacao
Analise de equivalencia para identificar possıveis discrepancias
![Page 43: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/43.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Referencias
Angluin, D. ”Learning regular sets from queries and counterexamples”, Inf.Comput., Academic Press, Inc., n,75, 1987.
Ball, T. & Rajamani, S. K. ”The SLAM Project: Debugging System Softwarevia Static Analysis”, POPL, 2002.
Clarke, E. M.; Grumberg, O. & Peled, D. A. ”Model Checking”, The MIT Press,1999.
Cook, J. E. & Wolf, A. L. ”Discovering Models of Software Processes fromEvent-Based Data”, 1998.
Corbett, J. C. et al. ”Bandera: extracting finite-state models from Javasource code”, ICSE, 2000.
Duarte, L. M.; Kramer, J. & Uchitel, S. ”Model Extraction Using ContextInformation”, MoDELS, 2006.
Duarte, L.; Kramer, J. & Uchitel, S. ”Towards Faithful Model Extraction Basedon Contexts”, FASE, 2008.
Duarte, L. ”Integrating Software Testing and Model Checking Through ModelExtraction”, SBMF : short papers, 2011.
Godefroid, P. ”Software Model Checking: The Verisoft Approach”, Bell
Laboratories, Lucent Technologies, 2003.
![Page 44: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/44.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Referencias (cont.)
Havelund, K. & Pressburger, T. ”Model checking JAVA programs using JavaPathFinder”, Springer-Verlag, n.2, 2000.
Henzinger, T.; Jahla, R.; Majumdar, R. & Sutre, G. ”Lazy Abstraction”, POPL,2002.
Holzmann, G. & Smith, M. ”A Practical Method for Verifying Event-DrivenSoftware”, ICSE, 1999.
King, J. ”Symbolic Execution and Program Testing”, Communications of theACM, n. 19, 1976.
Kroening, D. et al. ”Counterexample Guided Abstraction Refinement viaProgram Execution”, LNCS 3308, 2004.
Lorenzoli, D.; Mariani, L. & Pezze, M. ”Inferring State-Based BehaviorModels”, WODA, 2006.
Nimmer, J. & Ernst, M. Automatic Generation of Program Specifications”,ISTTA, 2002.
Sommerville, I. ”Software Engineering”, Addison-Wesley, 2004.
![Page 45: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/45.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Extracao de Modelos deComportamento de Software
Lucio Mauro [email protected]
Grupo de VV & TInstituto de Informatica
Universidade Federal do Rio Grande do Sul
Workshop-Escola de Informatica Teorica 201315/10/2013
![Page 46: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/46.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Contexto
![Page 47: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/47.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Visao Geral
![Page 48: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/48.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Identificacao de Contextos
Trace: [open edit save print edit edit print save print edit exit save close]
REP_ENTER : ( cmd !=4)# t r u e#{f a l s e , t r u e}SEL_ENTER : ( cmd)#0#{ f a l s e , t r u e}SEL_ENTER : ( ! isOpen)# t r u e#{f a l s e , t r u e}MET_ENTER : open#t r u e#{f a l s e , t r u e}MET_END
SEL_END
SEL_END
REP_END
REP_ENTER : ( cmd !=4)# t r u e#{t rue , t r u e}SEL_ENTER : ( cmd)#1#{t rue , t r u e}SEL_ENTER : ( isOpen)# t r u e#{t rue , t r u e}MET_ENTER : edit#t r u e#{t rue , t r u e}MET_END
SEL_END
SEL_END
REP_END
REP_ENTER : ( cmd !=4)# t r u e#{t rue , f a l s e}. . .
Contexto Pred. Val. Estado
0 - T {}0.1 (cmd!=4) T {F,T}0.1.1 (cmd) 0 {F,T}0.1.1.1 (!isOpen) T {F,T}0.1.1.1.1 open T {F,T}0.2 (cmd!=4) T {T,T}0.2.1 (cmd) 1 {T,T}0.2.1.1 (isOpen) T {T,T}0.2.1.1.1 edit T {T,T}0.3 (cmd!=4) T {T,F}... .... ... {...}
![Page 49: Extra˘c~ao de Modelos de Comportamento de Softwarewp.ufpel.edu.br/weit/files/2013/03/LucioDuarte-weit2013.pdfExtra˘c~ao de Modelos de Comportamento de Software Software Import^ancia](https://reader031.vdocuments.pub/reader031/viewer/2022022803/5c833dc109d3f2173c8d0d7c/html5/thumbnails/49.jpg)
Extracao de Modelos de Comportamento de Software
Grupo de VV & T - INF/UFRGS
Geracao de FSP
Rastro: [open edit save print edit edit print save print edit exit save close]
#0
#0.1
#0.1.1
#0.1.1.1
#0.1.1.1.1
open
#0.2
#0.2.1
#0.2.1.1
#0.2.1.1.1
edit
#0.3
#0.3.1
#0.3.1.1
#0.3.1.1.1
save
#0.2
...
Editor = P0,
P0 = (open -> P1),
P1 = (
|print -> P1),
P2 = (save -> P1
|edit -> P2
|print -> P2
|exit -> P3),
P3 = (save -> P4),
P4 = (close -> END).
edit -> P2,