• Nenhum resultado encontrado

Extração de Modelos de Comportamento de Software

N/A
N/A
Protected

Academic year: 2021

Share "Extração de Modelos de Comportamento de Software"

Copied!
49
0
0

Texto

(1)

Extra¸c˜ao de Modelos de Comportamento de Software

Extra¸c˜

ao de Modelos de

Comportamento de Software

Lucio Mauro Duarte

lmduarte@inf.ufrgs.br

Grupo de VV & T

Instituto de Inform´

atica

Universidade Federal do Rio Grande do Sul

Workshop-Escola de Inform´

atica Te´

orica 2013

15/10/2013

(2)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Importˆancia do Software

O que ´

e software?

”Um programa de computador, a

documenta¸

ao

sobre o seu

modo de opera¸c˜

ao e os dados de configura¸

ao exigidos para que

ele funcione corretamente.” [Sommerville 2004]

(3)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Importˆancia do Software

(4)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Importˆancia do Software

Software n˜

ao ´

e importante se...

(5)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Importˆancia do Software

Software n˜

ao ´

e importante se...

(6)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Desenvolvimento de Software

Desenvolvimento de Software

Em geral

1

An´

alise (requisitos, especifica¸

ao)

2

Projeto (modelagem)

3

Valida¸

ao (software ´

e o correto?) e

Verifica¸

ao (software est´

a correto?)

4

Implementa¸

ao

5

Testes

(7)

Extra¸c˜ao 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 algum

defeito durante o desenvolvimento

Devido a limita¸

oes de or¸

camento e tempo, maioria dos

sistemas de software s˜

ao postos em uso ainda com

defeitos

Logo, h´

a grande probabilidade de o software que usamos

estar defeituoso!!!

(8)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Desenvolvimento de Software

Software correto ´

e poss´ıvel?

Nem sempre ´

e poss´ıvel garantir corre¸c˜

ao total

´

E poss´ıvel, sim, aumentar a

confian¸

ca

na corre¸

ao

(9)

Extra¸c˜ao de Modelos de Comportamento de Software Software

Desenvolvimento de Software

Software correto ´

e poss´ıvel?

Nem sempre ´

e poss´ıvel garantir corre¸

ao total

´

E poss´ıvel, sim, aumentar a

confian¸

ca

na corre¸

ao

(10)

Extra¸c˜ao de Modelos de Comportamento de Software Verifica¸c˜ao de Software Verifica¸c˜ao de Modelos

Principais Abordagens

Teste de Software

Verifica¸c˜

ao Formal

An´

alise Est´

atica

Prova de Teoremas

(11)

Extra¸c˜ao de Modelos de Comportamento de Software Verifica¸c˜ao de Software

Verifica¸c˜ao de Modelos

Verifica¸c˜

ao de Modelos

Totalmente autom´

atica ⇒ tecnologia ”push-button”

Explora¸c˜

ao completa do espa¸

co de estados

Gera¸c˜

ao de contraexemplo

Tem sido usada com sucesso tanto no ˆ

ambito acadˆ

emico

quanto por grandes empresas:

Intel

IBM

Microsoft

Boeing

NASA

...

(12)

Extra¸c˜ao de Modelos de Comportamento de Software Verifica¸c˜ao de Software

Processo de Verifica¸c˜ao

Processo de Verifica¸c˜

ao

Etapas segundo [Clarke et al. 1999]:

1

Especifica¸

ao (requisitos ⇒ propriedades)

2

Modelagem

(13)

Extra¸c˜ao de Modelos de Comportamento de Software Verifica¸c˜ao de Software

Processo de Verifica¸c˜ao

Resultados da Verifica¸c˜

ao

Se verifica¸c˜

ao indicar viola¸

ao das propriedades

1

Gera¸

ao do contraexemplo

2

Realizar altera¸c˜

oes

3

Refazer verifica¸c˜

ao

Processo termina quando n˜

ao houver mais viola¸

oes

detectadas

(14)

Extra¸c˜ao de Modelos de Comportamento de Software Verifica¸c˜ao de Software Processo de Verifica¸c˜ao

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

. . .

(15)

Extra¸c˜ao de Modelos de Comportamento de Software Modelos

(16)

Extra¸c˜ao de Modelos de Comportamento de Software Modelos

Modelos de Software

ao descri¸c˜

oes abstratas de algum aspecto de um software

Podem ser de diversos tipos, baseados em diversas

abstra¸

oes e servirem a diferentes prop´

ositos:

Diagrama de Classes

Control Flow Graph (CFG)

Data Flow Graph (DFG)

Message Sequence Chart (MSC)

Rede de Petri

Cadeias de Markov

Rede de Autˆ

omatos Estoc´

asticos

Gram´

aticas de Grafos

Kripke Structure

Labelled Transition Systems (LTS)

...

(17)

Extra¸c˜ao 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)

oes (LTS)

(18)

Extra¸c˜ao de Modelos de Comportamento de Software Modelos

Aplica¸c˜

ao de Verifica¸c˜

ao de Modelos

Quest˜

oes:

De onde vem o

modelo

a ser verificado?

Como garantir que este

modelo

ser´

a corretamente

(19)

Extra¸c˜ao de Modelos de Comportamento de Software Modelos

(20)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos Constru¸c˜ao de Modelos

Constru¸c˜

ao de Modelos

Ideal

Autom´

atica

acil e r´

apida

Requisito essencial: Modelo deve ser uma representa¸

ao

fiel

do sistema

Modelo M ´

e

completo

se inclui todos os comportamentos

realiz´

aveis do programa Prog

L(Prog ) ⊆ L(M)

Modelo M ´

e

correto

se inclui somente comportamentos

realiz´

aveis do programa Prog

(21)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Constru¸c˜ao de Modelos

Extra¸c˜

ao de Modelos

Processo de se obter um modelo (de comportamento) a

partir de um software existente [Holzmann & Smith 1999]

Possibilita a gera¸

ao autom´

atica do modelo

Modelo gerado descreve o comportamento implementado

pelo software, dado um n´ıvel de abstra¸

ao

Esbarra no

problema de constru¸

ao de modelos

[Corbett et al.

2000]

(22)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos Abordagens

Exemplo

1

p u b l i c

c l a s s

E d i t o r {

2

p r i v a t e

b o o l e a n isOpen ;

3

p r i v a t e

b o o l e a n i s S a v e d ;

4 5

p u b l i c

E d i t o r

( ) {

6

i n t

cmd = −1;

7

i s O p e n = f a l s e ;

8

i s S a v e d = t r u e ;

9 10

w h i l e ( cmd != 4 ) {

11

cmd = r e a d C m d ( ) ;

12

s w i t c h ( cmd ) {

13

c a s e

0 :

i f ( ! isOpen )

14

n a m e = o p e n ( ) ;

15

b r e a k ;

16

c a s e

1 :

i f ( isOpen )

17

e d i t ( n a m e ) ;

18

b r e a k ;

19

c a s e

2 :

i f ( isOpen )

20

p r i n t ( n a m e ) ;

21

b r e a k ;

22

c a s e

3 :

i f ( ! i s S a v e d )

23

s a v e ( n a m e ) ;

24

b r e a k ;

25

c a s e

4 : exit ( name ) ;

26

}

27

}

28

}

29

. . .

30

v o i d exit ( String n ) {

31

i f

( ! i s S a v e d ) {

32

i n t

opt = r e a d O p t ( ) ;

33

i f

( opt == 0 )

34

s a v e ( n ) ;

35

}

36

i f

( isOpen ) close ( n ) ;

37

}

38

. . .

39

}

(23)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Est´

atica

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 false false false false false false false 0 1 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 false false false false false false false 0 1 2 3 4

(24)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Est´

atica (cont.)

Comportamento completo do sistema

Alguns comportamentos irrealiz´

aveis ⇒

falsos positivos

Requer acesso ao c´

odigo fonte

Exemplos:

Bandera [Corbett et al. 2000]

Java PathFinder [Havelund et al. 2000]

SLAM [Ball & Rajamani 2002]

(25)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Est´

atica (cont.)

opicos Relacionados:

Execu¸

ao Simb´

olica [King 1976]

Slicing [Corbett et al. 2000]

Counterexample-Guided Abstraction Refinement (CEGAR)

[Kroening et al. 2004]

(26)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Dinˆ

amica

Trace:

open edit save print edit edit print save print edit exit save close

q0

open

q1

edit

q2

q3

q4

q6

edit

print

print

save

save

close

q5

exit

edit

save

q0

open

q1

edit

q2

q3

q4

q6

q6

edit

print

print

save

save

close

q5

exit

edit

save

(27)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Dinˆ

amica (cont.)

Extra¸c˜

ao estilo ”caixa preta”

Cont´

em somente comportamentos reais

Requer processo de inferˆ

encia ⇒ poss´ıvel inclus˜

ao de

comportamentos inv´

alidos

ao h´

a garantia de modelo completo

Exemplos:

Grammar Inference [Cook & Wolf 1998]

GK-Tail [Lorenzolli et al. 2006]

(28)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem Dinˆ

amica (cont.)

opicos Relacionados:

Aprendizado de autˆ

omatos [Angluin 1987]

An´

alise Estat´ıstica [Cook & Wolf 1998]

(29)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem H´ıbrida

Trace:

open edit save print edit edit print save print edit exit save close

open

edit

save

print

exit

save

close

(30)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem H´ıbrida (cont.)

Combina

comportamentos reais

com informa¸

oes da

estrutura

do c´

odigo

Corre¸c˜

ao ´

e garantida

pelo apoio na informa¸

ao est´

atica

Completude depende dos comportamentos observados

Exemplos:

Daikon & ESC/Java [Nimmer & Ernst 2002]

LTSE [Duarte et al. 2006]

(31)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem H´ıbrida (cont.)

opicos Relacionados:

Inferˆ

encia dinˆ

amica + an´

alise est´

atica [Nimmer & Ernst 2002]

Contextos [Duarte et al. 2006]

(32)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

Abordagem de Modelo Impl´ıcito

ao h´

a gera¸

ao de um modelo ”manipul´

avel”

Runtime monitoring

Explora¸

ao do espa¸

co de estados pode n˜

ao ser completa

Exemplo:

(33)

Extra¸c˜ao de Modelos de Comportamento de Software Extra¸c˜ao de Modelos

Abordagens

opicos

Abstra¸

ao de constru¸c˜

oes de linguagens modernas (ADT,

exce¸c˜

oes, heran¸ca, aspectos, inner classes, etc.)

Refinamento de modelos

An´

alise de concorrˆ

encia

Modelos completos com respeito a algum crit´

erio (cobertura,

propriedade, etc.)

(34)

Extra¸c˜ao 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 em

Valida¸c˜

ao, Verifica¸c˜

ao e Teste de Sistemas Computacionais

Integrantes:

Profa. Dra. Leila Ribeiro

Profa. Dra. ´

Erika Cota

Prof. Dr. Rodrigo Machado

Prof. Dr. Lucio Mauro Duarte

Colabora¸

oes em projetos com pesquisadores da UFPel,

UNIPAMPA e PUCRS

Mais informa¸c˜

oes:

(35)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Extra¸c˜

ao de modelos LTS baseados em contextos [Duarte et

al. 2008]

Contextos combinam informa¸c˜

oes de controle de fluxo com

informa¸

oes sobre valores de atributos e cadeias de chamadas

de m´

etodos

Permite combina¸

ao segura de rastros de execu¸

ao, inclusive

com possibilidade de comportamentos extras

Independente de linguagem (regras de anota¸

ao)

Suporte a sistemas concorrentes

(36)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao 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

print

exit

save

close

0

1

2

E

open

edit

print

edit

print

save

exit

save

close

(37)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Combina¸

ao de Verifica¸c˜

ao de Modelos e Teste de Software

[Duarte 2011]

Abordagem incremental para garantir um

modelo completo

Uso de casos de teste para guiar a extra¸

ao do modelo (e.g.,

baseado em uma propriedade - Property-Oriented Testing - ou

em um crit´

erio de cobertura)

Modelo criado usado para gerar novos casos de teste

(Model-Based Testing )

(38)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Test

Cases

Implementation

Testing

Results

Behaviour

Model

Verification

Results

produce

construct

verify

generate

execute

modify

(39)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Trace:

open edit save print edit edit print save print edit exit save close

open

edit

print

exit

close

edit

print

exit

save

save

close

0

1

2

E

4

5

(40)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Extra¸c˜

ao de modelos em Gram´

aticas de Grafos [Oliveira et al.

2013]

Adapta¸

ao da abordagem de extra¸

ao de LTS

Mudan¸

ca de paradigma, visto que GG ´

e baseada em estados

(41)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Extra¸c˜

ao de modelos quantitativos

Possibilidade de extrair modelos que possam ser usados para

an´

alises quantitativas, tais como Redes de Autˆ

omatos

(42)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos no Grupo de VV & T (cont.)

Verifica¸c˜

ao de implementa¸

oes de sistemas

Uso do modelo extra´ıdo para compara¸

ao com um modelo da

especifica¸

ao

(43)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Referˆ

encias

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 Software

via 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 from

Event-Based Data”, 1998.

Corbett, J. C. et al. ”Bandera: extracting finite-state models from Java

source code”, ICSE, 2000.

Duarte, L. M.; Kramer, J. & Uchitel, S. ”Model Extraction Using Context

Information”, MoDELS, 2006.

Duarte, L.; Kramer, J. & Uchitel, S. ”Towards Faithful Model Extraction Based

on Contexts”, FASE, 2008.

Duarte, L. ”Integrating Software Testing and Model Checking Through Model

Extraction”, SBMF : short papers, 2011.

Godefroid, P. ”Software Model Checking: The Verisoft Approach”, Bell

Laboratories, Lucent Technologies, 2003.

(44)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Referˆ

encias (cont.)

Havelund, K. & Pressburger, T. ”Model checking JAVA programs using Java

PathFinder”, 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-Driven

Software”, ICSE, 1999.

King, J. ”Symbolic Execution and Program Testing”, Communications of the

ACM, n. 19, 1976.

Kroening, D. et al. ”Counterexample Guided Abstraction Refinement via

Program Execution”, LNCS 3308, 2004.

Lorenzoli, D.; Mariani, L. & Pezz`

e, M. ”Inferring State-Based Behavior

Models”, WODA, 2006.

Nimmer, J. & Ernst, M. Automatic Generation of Program Specifications”,

ISTTA, 2002.

(45)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Extra¸c˜

ao de Modelos de

Comportamento de Software

Lucio Mauro Duarte

lmduarte@inf.ufrgs.br

Grupo de VV & T

Instituto de Inform´

atica

Universidade Federal do Rio Grande do Sul

Workshop-Escola de Inform´

atica Te´

orica 2013

15/10/2013

(46)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

(47)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

(48)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Identifica¸c˜

ao de Contextos

Trace:

[open edit save print edit edit print save print edit exit save close]

R E P _ E N T E R : ( cmd !=4)# t r u e#{f a l s e , t r u e } S E L _ E N T E R : ( cmd)#0#{ f a l s e , t r u e } S E L _ E N T E R : ( ! i s O p e n)# t r u e#{f a l s e , t r u e } M E T _ E N T E R : o p e n#t r u e#{f a l s e , t r u e } M E T _ E N D S E L _ E N D S E L _ E N D R E P _ E N D R E P _ E N T E R : ( cmd !=4)# t r u e#{t r u e , t r u e } S E L _ E N T E R : ( cmd)#1#{ t r u e , t r u e } S E L _ E N T E R : ( i s O p e n)# t r u e#{t r u e , t r u e } M E T _ E N T E R : e d i t#t r u e#{t r u e , t r u e } M E T _ E N D S E L _ E N D S E L _ E N D R E P _ E N D R E P _ E N T E R : ( cmd !=4)# t r u e#{t r u e , 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} ... .... ... {...}

(49)

Extra¸c˜ao de Modelos de Comportamento de Software Grupo de VV & T - INF/UFRGS

Gera¸c˜

ao 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,

Referências

Documentos relacionados

As taxas de aeroporto, segurança e combustivel no valor de € 68 estão incluídas nos preços acima indicados, sujeitas às alterações legais até à emissão dos bilhetes *

1) O mapeamento de vestígios físicos e biológicos evidenciou que a Florestas da Tijuca já foi intensamente utilizada e grande parte de sua cobertura florestal já passou

Em geral, os blocos intertravados de concreto das marcas avaliadas deixaram a desejar em qualidade, pois a maioria dos resultados obtidos nos ensaios, principalmente nos

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

3.2 Objetivos específicos a utilizar técnicas de sensoriamento remoto para determinar índices de vegetação e avaliar a dinâmica da cobertura vegetal no Alto Ipanema ao longo dos anos

Professor André: A questão da robótica na licenciatura eu tive uma introdução mas foi bem rápida, não foi bem detalhada não, mas a questão de trabalhar na escola foi quando chegou

Os desfechos pesquisados foram o impacto do diabetes mellitus tipo 1 sobre a qualidade de vida de crianças e adolescentes com esse problema e os principais

tratando do ambiente escolar, quando a criança se desvincula do seio familiar para inserir na escola ela já trás consigo um referencial de aprendizagem referente aos