SlideShare una empresa de Scribd logo
1 de 20
Evolución tecnoLÓGICA
 Lenguaje de restricciones de objetos. 
 Lenguaje formal 
 Basado en teoria de conjuntos y logica 
 Creado por steve cook y john daniels
 Es fuertemente tipado 
 Compatible 100% con uml 
 No tiene efectos laterales, solo consulta el estado del modelo no 
define su estructura. 
 Sus expresiones no son ejecutables 
 Solo evaluan y analizan.
 DRESDEN OCL TOOLKIT 
 USE 
 MDT/OCL DE ECLIPSE
 Lenguaje de consulta de modelos 
 Especificar invariantes y restricciones de integridad sobre las clases 
y los tipos de un modelo de clases uml 
 Especificar pre y poscondiciones de las operaciones 
 Describir guardas en las maquinas de estado 
 Especificar conjuntos de destinatarios de los mensajes y acciones de 
uml 
 Especificar restricciones en las operaciones 
 Especificar las reglas de derivacion de atributos y cuerpos de las 
operaciones
 Expresan las condiciones que deben cumplir los metamodelos. 
 Son conocidas como invariantes. 
 Pueden ser definidas de entrada o salida
 Es una restricción de uno o mas valores, o parte de ellos, en un 
modelo o sistema orientado a objetos. 
 Es formulada a nivel de clases. 
 Su semántica es aplicada a nivel de objeto.
 Es una constraint que obliga a que un objeto tome un valor 
verdadero para completar su desarrollo. 
 Representan reglas para producir objetos o realizar tareas base en 
los sistemas orientados a objetos. 
 context <classifier> 
 inv [<constraint name>]: <boolean OCL expression>
 La hora de inicio no debe ser mayor a la de término. 
 context Reunión inv: self.horaFinalizacion > self.horaInicio 
 Un equipo solo puede ser formado por mayores de edad.
 Es una restricción que especifica la aplicación y efecto de una 
operación. 
 Son agregadas a las operaciones en los diagramas de clases 
 Buscan completar de mejor forma la especificación de un sistema
 Deben ser verdaderas para permitir la ejecución de ciertos métodos. 
 context <classifier> :: <operation> (<parameters>) pre 
[<constraint name>]: <boolean OCL expression> 
 Ejemplo: 
 Se puede agregar horas para cambiar el bloque de inicio y término 
de una reunión. 
 context Reunion::cambiar(d:integer) pre: self.confirmada=false
 Debe ser verdadera después de la ejecución de un método. 
 Indican el camino que deben seguir los efectos si son ejecutados. 
 context <classifier>::<operation> (<parameters>) context 
<classifier>::<operation> (<parameters>) post [<constraint 
name>]: <Boolean OCL expression> 
 Ejemplo: 
 context Reunion::duracion():Integer post: resultado= self.horaFinalizacion 
– self.horaInicio 
 context Reunion::confirmar() post: self.confirmada = true 
 context Meeting::shift(d:Integer) post: start = start@pre +d and end = 
end@pre + d
 Son expresiones booleanas 
 Librería estándar: 
 Tipos básicos : boolean, integer, real, string. 
 Colecciones: 
 Collection 
 Set 
 Ordered Set 
 Bag 
 Sequence
 DataType. 
 Tipo Clase: 
 Clasificadores 
 Generalizadores 
 Atributos 
 Métodos 
 Expresiones de navegaciones 
 Enumeraciones
 Los roles finales de las relaciones son utilizados para navegar de un 
objeto a otro dentro del modelo. 
 Los navegadores deben ser tratados como atributos. 
 Los tipos de navegadores son: 
 Definidos por el usuario (cuando la cardinalidad es uno) 
 Colección (cuando es mayor a uno)
 Establecer que los moderadores son solo personas de genero 
femenino. 
 context Reunion inv: self.moderador.genero = Genero::femenino 
 Una reunión debe tener mínimo 2 integrantes. 
 context Reunion inv: self -> collect(participantes) -> size()>=2
 Operaciones booleanas 
 If..else ..Endif 
 Operaciones de conjuntos. 
 Operaciones de iteración 
 Any, collect, exists, forall, isUnique, one, select, reject, sortedBy
 Una reunión de equipo ha sido organizado para todo el equipo. 
 context ReunionEquipo: inv: participantes -> forAll(Equipo=self.para) 
 Opine: 
 context ReuniónEquipo::numeroParticipantes():Integer post: 
result=reuniones->size() 
 context MiembroEquipo::numeroConfirmados():Integer post: 
result=reuniones -> select( confirmado)->size()
 Descargue el documento. Tarea OCL desde la plataforma. 
 Construya en grupo (3 int.) las siguientes restricciones en OCL: 
 Solo se pueden añadir unidades físicas al carrito si el numero de 
unidades solicitadas no sobrepasa el stock actual. 
 Una vez que se confirma la venta se debe ejecutar la operación 
decrementar stock. 
 Cada vez que se compra un producto del tipo “descargable” se 
incrementa el numero de descargas. 
 Si el cliente carga nuevamente el mismo producto en el carrito este debe 
actualizarse en stock pero no repetirse. 
 Cada vez que se ingresa un producto nuevo el tipoDeIVA se actualiza 
según el precio del producto.

Más contenido relacionado

La actualidad más candente

Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNstandarman
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoEliseo Castro
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerMarcos Omar Cruz Ortrega
 
Modelado del negocio
Modelado del negocioModelado del negocio
Modelado del negociosullinsan
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datosemnero
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de erroresRonie Martínez
 
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosFundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbujaOscar Mora
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboraciond-draem
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 

La actualidad más candente (20)

Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento Unificado
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson Penker
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Modelado del negocio
Modelado del negocioModelado del negocio
Modelado del negocio
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datos
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
 
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosFundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
 
Interfaz dte dce
Interfaz dte dceInterfaz dte dce
Interfaz dte dce
 
Modelo osi
Modelo   osiModelo   osi
Modelo osi
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
DIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO IDIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO I
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 

Destacado

Investigación formal
Investigación formal Investigación formal
Investigación formal blogclase
 
Metodos Formales
Metodos FormalesMetodos Formales
Metodos Formalestoryneutral
 
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALES
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALESPLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALES
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALESBerritzegune Nagusia
 
You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesPhilip Langer
 
Aplicando Uwe - Un ejemplo didactico
Aplicando Uwe - Un ejemplo didacticoAplicando Uwe - Un ejemplo didactico
Aplicando Uwe - Un ejemplo didacticomillernegro
 
Determinantes artículos
Determinantes artículosDeterminantes artículos
Determinantes artículosamendez1987
 
Conjunto, Relaciones, Funciones y Notacion Z
Conjunto, Relaciones, Funciones y Notacion ZConjunto, Relaciones, Funciones y Notacion Z
Conjunto, Relaciones, Funciones y Notacion Zjunito86
 
Fases del Proceso Unificado
Fases del Proceso UnificadoFases del Proceso Unificado
Fases del Proceso Unificadokatano66
 

Destacado (16)

OCL tutorial
OCL tutorial OCL tutorial
OCL tutorial
 
Metodos formales
Metodos formalesMetodos formales
Metodos formales
 
Metodos formales mareli
Metodos formales   mareliMetodos formales   mareli
Metodos formales mareli
 
Investigación formal
Investigación formal Investigación formal
Investigación formal
 
Lenguaje de especificación
Lenguaje de especificaciónLenguaje de especificación
Lenguaje de especificación
 
Metodos Formales
Metodos FormalesMetodos Formales
Metodos Formales
 
Metodologias formales
Metodologias formalesMetodologias formales
Metodologias formales
 
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALES
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALESPLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALES
PLURILINGÜISMO Y ALUMNOS CON NECESIDADES EDUCATIVAS ESPECIALES
 
Métodos Formales
Métodos FormalesMétodos Formales
Métodos Formales
 
You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
 
Aplicando Uwe - Un ejemplo didactico
Aplicando Uwe - Un ejemplo didacticoAplicando Uwe - Un ejemplo didactico
Aplicando Uwe - Un ejemplo didactico
 
Determinantes artículos
Determinantes artículosDeterminantes artículos
Determinantes artículos
 
Metodología WEB UWE
Metodología WEB UWEMetodología WEB UWE
Metodología WEB UWE
 
Conjunto, Relaciones, Funciones y Notacion Z
Conjunto, Relaciones, Funciones y Notacion ZConjunto, Relaciones, Funciones y Notacion Z
Conjunto, Relaciones, Funciones y Notacion Z
 
Fases del Proceso Unificado
Fases del Proceso UnificadoFases del Proceso Unificado
Fases del Proceso Unificado
 
Teoria de Restricciones
Teoria de RestriccionesTeoria de Restricciones
Teoria de Restricciones
 

Similar a Lenguaje de Restricciones de Objeto

Similar a Lenguaje de Restricciones de Objeto (20)

Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
02401 04-509376nomivkzutz
02401 04-509376nomivkzutz02401 04-509376nomivkzutz
02401 04-509376nomivkzutz
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologias
 
Arquitectura del desarrollo del software
Arquitectura del desarrollo del softwareArquitectura del desarrollo del software
Arquitectura del desarrollo del software
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Manual del Software Arena.
Manual del Software Arena.Manual del Software Arena.
Manual del Software Arena.
 
Diagramacion
DiagramacionDiagramacion
Diagramacion
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente ♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Analisis y Diseño de Sistemas II-1
Analisis y Diseño de Sistemas II-1Analisis y Diseño de Sistemas II-1
Analisis y Diseño de Sistemas II-1
 
Semana8 soft ii
Semana8 soft iiSemana8 soft ii
Semana8 soft ii
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Visual basic
Visual basicVisual basic
Visual basic
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon poo
 

Lenguaje de Restricciones de Objeto

  • 2.  Lenguaje de restricciones de objetos.  Lenguaje formal  Basado en teoria de conjuntos y logica  Creado por steve cook y john daniels
  • 3.  Es fuertemente tipado  Compatible 100% con uml  No tiene efectos laterales, solo consulta el estado del modelo no define su estructura.  Sus expresiones no son ejecutables  Solo evaluan y analizan.
  • 4.  DRESDEN OCL TOOLKIT  USE  MDT/OCL DE ECLIPSE
  • 5.  Lenguaje de consulta de modelos  Especificar invariantes y restricciones de integridad sobre las clases y los tipos de un modelo de clases uml  Especificar pre y poscondiciones de las operaciones  Describir guardas en las maquinas de estado  Especificar conjuntos de destinatarios de los mensajes y acciones de uml  Especificar restricciones en las operaciones  Especificar las reglas de derivacion de atributos y cuerpos de las operaciones
  • 6.  Expresan las condiciones que deben cumplir los metamodelos.  Son conocidas como invariantes.  Pueden ser definidas de entrada o salida
  • 7.  Es una restricción de uno o mas valores, o parte de ellos, en un modelo o sistema orientado a objetos.  Es formulada a nivel de clases.  Su semántica es aplicada a nivel de objeto.
  • 8.  Es una constraint que obliga a que un objeto tome un valor verdadero para completar su desarrollo.  Representan reglas para producir objetos o realizar tareas base en los sistemas orientados a objetos.  context <classifier>  inv [<constraint name>]: <boolean OCL expression>
  • 9.
  • 10.  La hora de inicio no debe ser mayor a la de término.  context Reunión inv: self.horaFinalizacion > self.horaInicio  Un equipo solo puede ser formado por mayores de edad.
  • 11.  Es una restricción que especifica la aplicación y efecto de una operación.  Son agregadas a las operaciones en los diagramas de clases  Buscan completar de mejor forma la especificación de un sistema
  • 12.  Deben ser verdaderas para permitir la ejecución de ciertos métodos.  context <classifier> :: <operation> (<parameters>) pre [<constraint name>]: <boolean OCL expression>  Ejemplo:  Se puede agregar horas para cambiar el bloque de inicio y término de una reunión.  context Reunion::cambiar(d:integer) pre: self.confirmada=false
  • 13.  Debe ser verdadera después de la ejecución de un método.  Indican el camino que deben seguir los efectos si son ejecutados.  context <classifier>::<operation> (<parameters>) context <classifier>::<operation> (<parameters>) post [<constraint name>]: <Boolean OCL expression>  Ejemplo:  context Reunion::duracion():Integer post: resultado= self.horaFinalizacion – self.horaInicio  context Reunion::confirmar() post: self.confirmada = true  context Meeting::shift(d:Integer) post: start = start@pre +d and end = end@pre + d
  • 14.  Son expresiones booleanas  Librería estándar:  Tipos básicos : boolean, integer, real, string.  Colecciones:  Collection  Set  Ordered Set  Bag  Sequence
  • 15.  DataType.  Tipo Clase:  Clasificadores  Generalizadores  Atributos  Métodos  Expresiones de navegaciones  Enumeraciones
  • 16.  Los roles finales de las relaciones son utilizados para navegar de un objeto a otro dentro del modelo.  Los navegadores deben ser tratados como atributos.  Los tipos de navegadores son:  Definidos por el usuario (cuando la cardinalidad es uno)  Colección (cuando es mayor a uno)
  • 17.  Establecer que los moderadores son solo personas de genero femenino.  context Reunion inv: self.moderador.genero = Genero::femenino  Una reunión debe tener mínimo 2 integrantes.  context Reunion inv: self -> collect(participantes) -> size()>=2
  • 18.  Operaciones booleanas  If..else ..Endif  Operaciones de conjuntos.  Operaciones de iteración  Any, collect, exists, forall, isUnique, one, select, reject, sortedBy
  • 19.  Una reunión de equipo ha sido organizado para todo el equipo.  context ReunionEquipo: inv: participantes -> forAll(Equipo=self.para)  Opine:  context ReuniónEquipo::numeroParticipantes():Integer post: result=reuniones->size()  context MiembroEquipo::numeroConfirmados():Integer post: result=reuniones -> select( confirmado)->size()
  • 20.  Descargue el documento. Tarea OCL desde la plataforma.  Construya en grupo (3 int.) las siguientes restricciones en OCL:  Solo se pueden añadir unidades físicas al carrito si el numero de unidades solicitadas no sobrepasa el stock actual.  Una vez que se confirma la venta se debe ejecutar la operación decrementar stock.  Cada vez que se compra un producto del tipo “descargable” se incrementa el numero de descargas.  Si el cliente carga nuevamente el mismo producto en el carrito este debe actualizarse en stock pero no repetirse.  Cada vez que se ingresa un producto nuevo el tipoDeIVA se actualiza según el precio del producto.