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

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

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

Saved successfully!

Ooh no, something went wrong!