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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CAPÍTULO 3. JML - JAVA MODELING LANGUAGE 4501 public class Person{02 private String name;03 private int weight;0405 public int getWeight() {06 return weight;07 }0809 public void addKgs(int kgs) {10 if (kgs >= 0) {11 weight += kgs;12 }13 }1415 public Person(String n) {16 name = n; weight = 0;17 }18 }Figura 3.4: Implementação da Classe Person (adaptada de [20]).de cada método, não como as variáveis podem ser modificadas. Devido a isto, é possívelutilizar o operador \old() em uma cláusula constraints e não em um invariant.3.2.3 Cláusulas requires e ensuresO primeiro passo para escrever contratos é organizar os comentários de programas demodo a descrever os contratos dos métodos. Isto é, definir o comportamento dos métodosem pré e pós-condições. Em JML as cláusulas requires e ensures representam pré e póscondições,respectivamente. Os métodos são anotados com o objetivo de poder ter umarepresentação do que realmente deve ser implementado na função.Será feita uma descrição informal com o objetivo de expressar o exemplo da Figura3.4. Esse exemplo define uma implementação para a classe Person, que representa umaentidade pessoa, tendo como variáveis o nome e o peso. Como comportamentos, sãodefinidos métodos, o primeiro para recuperar o valor do peso (weight) e o segundo paraadicionar um valor inteiro ao peso. São os métodos getWeight e addKgs, respectivamente,além do construtor da classe Person.O construtor da classe tem um objeto String como parâmetro. Este parâmetro atribuium valor à variável global name. O peso é definido com o valor inicial zero. O métodogetWeight apenas recupera o valor de weight, e o método addKgs adiciona um valor maior