Upload
sissy
View
23
Download
0
Embed Size (px)
DESCRIPTION
OCLE Object Constraint Language Environment. Fábio Moura CIn-UFPE. Roteiro. Introdução Projetos Modelos Compilando Especificações OCL Model Checking Geração de Código Java Exemplo. OCLE – Introdução. - PowerPoint PPT Presentation
Citation preview
OCLEObject Constraint Language Environment
Fábio MouraCIn-UFPE
Roteiro
Introdução Projetos Modelos Compilando Especificações OCL Model Checking Geração de Código Java Exemplo
OCLE – Introdução
OCLE foi especialmente projetada e implementada para auxiliar usuários UML no desenvolvimento de expressões OCL
Erros no desenvolvimento dos modelos podem ser facilmente detectados e corrigidos
Permite fácil criação de expressões OCL É uma ferramenta poderosa, de uso muito simples
e intuitivo Permite acesso completo tanto a nível de meta
modelos como de modelos É gratuita !
http://lci.cs.ubbcluj.ro/ocle/index.htm http://www.cin.ufpe.br/~in1006/2005/OCLE
Projetos
Permite o gerenciamento flexível de modelos e especificações OCL Poder ser desenvolvidos em arquivos separados e
posteriormente unidos em um projeto
Um mesmo arquivo OCL ou modelo UML pode ser usado em mais de um projeto OCLE
Um projeto pode conter mais de um modelo UML Um deles deve ser o modelo ativo
A sua criação é opcional A estrutura do projeto ativo é mostrada no
Project panel Contém o Project Browser Mostra os arquivos contendo os componentes do projeto
Projetos
Project Browser
Criando Novos Projetos
Menu Project – New ...
Modelos
OCLE permite a importação de modelos UML realizados usando ferramentas CASE como o Rational Rose A precondição é que estes modelos estejam armazenados
no formado XMI
OCLE também permite a criação de modelos UML dentro de uma interface gráfica e então exportá-los para arquivos XMI
O modelo ativo é mostrado no model browser Completa navegação e representação do modelo Filtragem Edição
Model Browser, Estereótipos e Propriedades
Diagramas Suportados
Use Case Classe Objetos
Diagrama de Classes
Diagrama de Use Case
Diagrama de Objetos
Compilando Especificações OCL
O compilador OCL permite ao usuário checar a corretude da sintaxe e da semântica de expressões OCL
Componente chave de qualquer ferramenta OCL Menu Tools – Compile project specifications Tipos de arquivos com especificações OCL
.ocl – especificações expressas no nível de meta modelo .bcr – especificações expressas no nível de modelo
(restrições de negócio)
Mensagens de Erro
Model Checking
OCLE realiza a checagem do modelo através da avaliação de restrições especificadas pelo usuário em diferentes elementos do modelo
Ajuda a corrigir erro nos modelos e nas especificações OCL
Maneira mais simples de checar o modelo Compile as especificações OCL Menu Tools – Check model Problemas são mostrados no painel Evaluation
Avaliação Local
Característica poderosa do OCLE que permite a avaliação parcial de uma expressão OCL em um determinado contexto
Passos Escolha a regra que deseja avaliar – clique duas vezes em sua
declaração de contexto Um menu popup será mostrado contendo todas as instâncias
possíveis para a classe mencionada na declaração de contexto Selecione uma instância clicando duas vezes sobre ela OCLE automaticamente irá modificar o contexto para todas as
regras Uma vez que o contexto foi escolhido, clique duas vezes em
diferentes partes da expressão escolhida, OCLE irá tentar avaliar a expressão selecionada, mostrando o resultado no painel OCL Output
Dê um duplo clique sobre o estereótipo da expressão (inv) para avaliar a expressão inteira
Geração de Código Java
O principal objetivo do gerador de código é produzir uma aplicação completamente executável a partir do modelo UML e suas especificações OCL associadas
Transforma classes, interfaces e tipos de dados em seu código fonte Java correspondente
Adicionalmente, restrições OCL associadas são transformadas em código executável, integrado ao código do modelo UML, produzindo uma aplicação Java que checa suas próprias restrições
O código Java produzido é compilável, embora não seja completo Uma vez que o código foi gerado, ainda se faz necessário
escrever o corpo dos métodos gerados
Geração de Código Java
Para invocar o gerador de código, use a opção do menu Tools – Generate code ...
ExemploFinance_Business_ClassDiagram
ExemploCódigo Gerado (.java)
. . . public void check_Order_first() {
Enum enumType = Order.this.type; boolean bEquals = enumType.equals(Enum.buy); float fMatchedPrice = Order.this.matchedPrice; float fLimit = Order.this.limit; boolean bLessOrEqual = fMatchedPrice <= fLimit; boolean bImplies = !bEquals || bLessOrEqual; if (!bImplies) { System.err.println("invariant 'first' failed for object
"+Order.this); }
}. . .