12.07.2015 Views

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CAPÍTULO 3. JML - JAVA MODELING LANGUAGE 43Expressões JML Significadoinvariant E 1 ;invarianteconstraint E 1 ;constraintrequires E 1 ;pré-condiçãoensures E 1 ;pós-condiçãosignals (Exception) E 1 pós-condição excepcionalassignable α ;variáveis que podem ser modificadas\old(α) ;valor de estado inicial de α\result ;define o valor a ser retornado\forallD; E 1 (opt); E 2 ; ∀ D • E 1 ⇒ E 2\existsD; E 1 (opt); E 2 ; ∃ D • E 1 ⇒ E 2Tabela 3.2: Algumas Expressões JML.public abstract class Invariant {01 boolean[] b;02 //@ invariant b != null && b.length == 6;0304 //@ assignable b;05 Invariant() {06 b = new boolean[6];07 }08 }3.2.1 Cláusula invariantFigura 3.2: Exemplo de Invariante [21].Em JML, a declaração de um invariante (ver Seção 3.1.1) é feita através da palavra reservadainvariant. Todo invariante é predicado, como apresentado na gramática abaixo.invariant ::= invariant-keyword predicate ;invariant-keyword ::= invariantAs propriedades do invariante devem ser satisfeitas em todos os estados do objeto.Um estado é válido em um objeto o se este estado pode ocorrer em algum momento daexecução do programa [21], por exemplo, após a execução do construtor da classe e, antese depois da execução dos métodos.No exemplo da Figura 3.2, a variável b tem visibilidade default, podendo ser acessadapela especificação JML. A declaração do invariante define que para todos os estados doobjeto a variável b não é nula (null) e que o tamanho do array é de exatamente 6 posições.Pode-se perceber que no construtor da classe nunhum parâmetro é passado, contudo, ovalor do tamanho de b é 6.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!