Está en la página 1de 5

Universidad Abierta Interamericana

Metodologa de desarrollo de Sistemas II


Unidad N3
Gua 4.1
Lenguaje de Restriccin de Objetos
Profesor: Lic. Oscar L. Bravo

Alumnos:
Leandro Soloducha
Leandro Moyano

Ao: 2015

Metodologa de Desarrollo de Sistemas II


Gua de aprendizaje 4.1

Unidad 4 Lenguaje de Restriccin de Objetos


Objetivo: definir el lenguaje de restricciones de objetos (OCL) para expresar
restricciones y navegaciones sobre un modelo orientado a objetos.
Palabras claves: ocl, modelo orientado a objetos, navegacin.

Duracin: 6 hs
Preguntas
1) Porqu un modelo grfico (como un diagrama de clases) no es suficiente para
lograr una especificacin precisa y no ambigua?
2) Cules son las ventajas y desventajas de los lenguajes formales?
3) OCL puede utilizarse para escribir lgica de programas?
4) Qu significa que OCL es un lenguaje tipado?
5) Cules son los principales usos de OCL?
6) Qu es un invariante?
7) Dentro del mbito de OCL, qu son las propiedades: atributo y operacin y
extremo de asociacin?
8) Defina formalmente las operaciones sobre colecciones: select

1) (),
forAll
(), exists()
, size
, count
(), isEmpty(), notEmpty()

1)
Ejercicios
A partir del siguiente diagrama de clases, establecer las siguientes restricciones
utilizando OCL:

Avin
+avin
+viaje

Viaje
nroVuelo : Integer
origen : String
destino : String

nroAvin : Integer
horasVuelo : Integer

+avin

+pasajero

*
+viaje

1..*
1..*

TipoAvin

1
+tipo

1..*
+viaje

1..*
serie : String
tipo : String
nroAsientos : Integer
nroTripulantes : Integer

Pasajeros
pasaporte : String
edad : Integer

+tripulante

1) Para cada tipo de avin, el nmero de asientos para tripulantes no puede ser
mayor al nmero de asientos para pasajeros.
2) Los viajes no pueden tener el mismo destino que el origen.
3) La cantidad de horas de vuelo de un avin debe ser menor a 1000.
4) Para aviones del tipo Delta de la serie A, la cantidad de asientos para los
pasajeros debe ser de 40.
5) Los pasajeros de los viajes deben ser mayores de 3 aos y menores de 95.
6) Un viaje debe tener ms de 5 pasajeros.
7) La cantidad de tripulantes de un viaje debe ser menor o igual a la cantidad de
pasajeros.
8) La cantidad de pasajeros de un viaje debe ser menor o igual a la capacidad de
asientos del avin asignado al vuelo.
9) Un avin no puede tener mas de 500 viajes asignados en su vida til si es del
tipo Delta.
10) Para los viajes que tengan asignados aviones con una cantidad de horas de vuelo
superior a 500 hs, la edad de los tripulantes deben ser mayores a 50 aos.

PREGUNTAS
1) Por la necesidad de establecer restricciones adicionales a los objetos y como ampliacin a la
notacin bsica del UML.
2) Ventajas: Son extremadamente simples para utilizar y son eficientes en cuanto a respuesta de lo
solicitado.
Desventajas: Muchas veces estos lenguajes no son suficientes para la resolucin del problema y
carecen de funciones matemticas
3) El OCL no se puede utilizar para desarrollar la lgica de un sistema, dado que no es un lenguaje
de programacin y no se pueden invocar funciones a partir de l.
4) Significa que en el lenguaje OCL cada expresin tiene un tipo, por consiguiente todos los tipos
deben concordar (no es posible comparar enteros con literales)
5) Los principales usos de OCL son:
Especificar modelos precisos y completos a partir de la construccin de modelos UML/OCL
combinados.
Especificar reglas de negocio.
6) Una invariante es una restriccin aplicada al objeto, es decir que cuando est asociada a una
clase, debe ser verdadera para todas las instancias de esa clase, en todo momento.
7) Atributo: Es una propiedad de una clase que es compartida por todos los elementos de esa
clase.
8) Dentro del mbito de OCL:
Operacin: Es una abstraccin de algo que se puede hacer a un objeto y que es compartido por todos
los objetos de la clase.
Extremo de asociacin: Se refiere al nombre de rol, por el cual podemos navegar una asociacin
entre objetos en un diagrama de clases, para poder referirnos a propiedades de otros objetos.
Select(): Especifica un subconjunto de una coleccin. El parmetro de select debe ser una expresin
booleana.
ForAll():La operacin forAll permite especificar expresiones Booleanas, que deben cumplirse para
todos los elementos de la coleccin.
Exists():Busca si en una coleccin hay, al menos, un elemento que cumple cierta condicin.
Size(): Devuelve la cantidad de elementos de la coleccin
Count(): Devuelve la cantidad de veces que aparece el objeto en la coleccin
IsEmpty(): Devuelve si la coleccin es vaca.
NotEmpty(): Devuelve si la coleccin no es vaca.

PRACTICA
1) context tipo de avion inv:
Self.tripulantes <= self.avio.viaje.tripulante Size
2) context viaje inv:
Self.origen < > self.destino
3) context avion inv:
Self.horas de vuelo < 1000
4) contexto tipoavion inv
self.tipo = "delta" and self.serie = "A" and self.nroasientos = 40
5) context viaje inv
self.pasajero -> forall(edad > 3 and edad < 95)
6) context viaje inv:
Self.tripulante size > = 5
7) context viaje inv:
Self.tripulante size ( ) < = self.avion.tipo.nroasiento
8) context viaje inv:
Self.pasajero size ( ) < = self.avion.tipo.nroasiento
9) context avion inv:
Self.viaje size ( ) < 500 and self.tipo.tipo= delta
10) context viaje inv:
Self.avion.horasvuelo > 500 and self.tripulante for all (edad > 500)

También podría gustarte