Voy a ir agregando ejercicios resueltos de UML y OCL en los siguientes días (Hasta el 30/07).
Pueden encontrar nuevos ejercicios del práctico 3 (OCL) en :
http://cafkaa.blogspot.com/2009/07/ocl-ejercicios-resueltos.html
y del práctico 6 (DCD y Patrones de Diseño) en:
http://cafkaa.blogspot.com/2009/07/patrones-de-diseno-ejercicios-resueltos.html
Suerte!!
martes, 28 de julio de 2009
lunes, 6 de julio de 2009
Patrones de Diseño - Ejercicios resueltos
Práctico 6
Ejercicio 1 ¡Nuevo!
Continuacion de Ejercicio 1 del Practico 5
Continuacion de Ejercicio 2 del Practico 5
-----------------------------------------------------------------------
Solución ¿?
-------------------------------------------------------------------
Ejercicio 1 ¡Nuevo!
Continuacion de Ejercicio 1 del Practico 5
Continuacion de Ejercicio 2 del Practico 5
-----------------------------------------------------------------------
Solución ¿?
-------------------------------------------------------------------
Etiquetas:
Patrones de Diseño - Ejercicios resueltos
domingo, 5 de julio de 2009
Diagramas de Comunicación - Ejercicios resueltos
Práctico 5
Nota: Estoy trabajando con Visual Paradigm y por algún motivo inserta el "muñequito" al principio de los diagramas de comunicación. Será por la equivalencia semántica con los DSSs. Hagamos de cuenta que no está porque no se cómo sacarlo.
Nota: Estoy trabajando con Visual Paradigm y por algún motivo inserta el "muñequito" al principio de los diagramas de comunicación. Será por la equivalencia semántica con los DSSs. Hagamos de cuenta que no está porque no se cómo sacarlo.
sábado, 4 de julio de 2009
DSS - Ejercicios Resueltos
Práctico 4
a) i) context Vehiculo inv:
Vehiculo.allInstances()->isUnique(matricula)
ii) context Vehiculo inv:
self.dueñoActual->notEmpty() implies
self.dueñoAnterior->select (p | p.ci = self.dueñoActual.ci)->isEmpty()
Nota: Si no tiene dueño anterior, self.dueñoAnterior es una colección vacía; el select sobre una colección vacía, está definido (no es un error hacer select sobre una colección vacía), y da otra colección vacía; y el ->isEmpty() da true.
Otra forma para la parte b)
context Vehiculo inv:
self.dueñoActual->notEmpty() implies
self.dueñoAnterior->excludes (self.dueñoActual)
d)
a)
b)
d)
a)
b)
Si se agregan más vehículos al sistema cambia el modelo de dominio y en el DSS sólo cambia el data type: se modifica el enumerado que contiene los tipos de vehículos y se agregan los atributos específicos del vehículo agregado (en caso que los tenga).
¿Esto es una alternativa?
El siguiente ejercicio fue copiado en clase:
b)
a) i) context Vehiculo inv:
Vehiculo.allInstances()->isUnique(matricula)
ii) context Vehiculo inv:
self.dueñoActual->notEmpty() implies
self.dueñoAnterior->select (p | p.ci = self.dueñoActual.ci)->isEmpty()
Nota: Si no tiene dueño anterior, self.dueñoAnterior es una colección vacía; el select sobre una colección vacía, está definido (no es un error hacer select sobre una colección vacía), y da otra colección vacía; y el ->isEmpty() da true.
Otra forma para la parte b)
context Vehiculo inv:
self.dueñoActual->notEmpty() implies
self.dueñoAnterior->excludes (self.dueñoActual)
d)
a)
b)
d)
a)
b)
Si se agregan más vehículos al sistema cambia el modelo de dominio y en el DSS sólo cambia el data type: se modifica el enumerado que contiene los tipos de vehículos y se agregan los atributos específicos del vehículo agregado (en caso que los tenga).
¿Esto es una alternativa?
El siguiente ejercicio fue copiado en clase:
b)
Suscribirse a:
Entradas (Atom)