Você está na página 1de 2

UFCG/CEEI/DSC Exerccios sobre OCL Prof.

Franklin Ramalho Sobre o modelo UML descrito a seguir, apresente, em OCL, as melhores solues para os itens abaixo: (Se necessrio, faa uso dos elementos contidos no modelo).
Pessoa
nome : String / apelido : String casado : Boolean dataNascimento : Data sexo : Sexo calculaTotalRendimentos() : Integer exEsposasRicas() : Set(Pessoa) calculaIdade() : Integer

+gerente 1 +empregado 0..*

+empresaGerenciada

Empresa
no me : String qu antidadeDeEmpregados : Integer ge renteTi poFamili a : Bool ean

0..* +empregador 0..*

+marido 0..1

+esposa

0..1

Emprego
cargo : String salario : Integer dataInicio : Data incorporaGratificacao(grat : Integer)

<<enumeration>>

Sexo feminino masculino

Casamento
terminado : Boolean

1) Especifique o mtodo calculaTotalRendimentos(), da classe Pessoa, que contabiliza a renda mensal (incluindo todos os empregos) de uma pessoa. 2) Especifique o valor do atributo apelido, da classe Pessoa, de acordo com a seguinte regra: Ele deve ter valor igual a chefe para as pessoas que desempenham funo de gerente em alguma empresa; caso contrrio, ele deve ter valor igual a peo. 3) Especifique o clculo acumulativo da idade de todos os funcionrios de uma dada empresa atravs da operao iterate. 4) Especifique as seguintes regras de negcio: (1) Uma pessoa deve ter um atributo chamado idade, do tipo Integer; e (2) Uma pessoa casada deve ter idade maior ou igual que 18 anos. 5) Especifique o mtodo incorporaGratificacao(grat:Integer), da classe Emprego, adicionando uma dada gratificao ao salrio de um empregado. 6) Sabendo-se que um homem pode casar-se mais de uma vez com a mesma mulher, bem como divorciar-se dela mais de uma vez, especifique o mtodo exEsposasRicas(), da classe Pessoa, que deve retornar o conjunto de ex-esposas que recebem um rendimento total maior que 5000. Este mtodo deve ser aplicado apenas para as pessoas do sexo masculino que possuem mais que duas ex-esposas diferentes.

7) Crie um novo atributo para a classe Empresa, identificando o melhorGerente como sendo aquele que tiver mais votos em uma eleio. Caso seja necessrio, expanda o diagrama de classes. 8) Construa um meta-modelo MOF simples para Java e acrescente as seguintes regras de boa formao escritas em OCL: 9) Os nomes dos atributos devem ser nicos 10) em uma atribuio, os tipos das variveis e expresses utilizadas devem ser do mesmo tipo. 11) Java no permite herana mltipla 12) Desvios incondicionais s podem ocorrer em laos 13) Todas as operaes de uma interface devem ser implementadas pela classe que a realiza. 14) Nomes de atributos no podem comear com letra maiscula.

Você também pode gostar