Ocl object constraint language
Download
1 / 16

OCL (Object Constraint Language) - PowerPoint PPT Presentation


  • 192 Views
  • Uploaded on

OCL (Object Constraint Language). Juan Casas Cuevas Mercedes Arenas Fernández. Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia. Introducción.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'OCL (Object Constraint Language)' - ewa


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ocl object constraint language

OCL (Object Constraint Language)

Juan Casas Cuevas

Mercedes Arenas Fernández

Laboratorio de Sistemas de Información

Facultad de Informática

Universidad Politécnica de Valencia


Introducci n
Introducción

  • UML (Unified Modeling Language) es un lenguaje para especificar, construir, visualizar y documentar los objetos de un sistema software.

  • No está lo suficientemente refinado.

  • No permite p.e. describir restricciones adicionales sobre los objetos modelo.


Introducci n1
Introducción

  • OCL (Object Constraint Language) es un lenguaje notacional (subconjunto de UML estándar), que permite escribir restricciones sobre modelos de objetos.

  • Estas restricciones rigen el aspecto de un objeto individual.


Introducci n2
Introducción

  • Características de OCL:

    • Lenguaje de expresiones:

      • Cuando se evalúa una expresión OCL, simplemente devuelve un valor.

    • Lenguaje de modelos:

      • Lenguaje de modelos y no de programación.

    • Lenguaje formal


Operadores de uml

Tipo

de Operaciones

operandos

Real =, +, -, *, /, abs, floor, max, min, <, >, <=, >=

Integer =, +, -, *, /, abs, div, mod, max, min

Boolean =, or, xor, and, not, implies, if-then- else

String =, size, concat, toUpper, toLower, substring

Enumeration =, <>

Operadores de UML


Concordancia de tipos

Tipo Concuerda con / Es un subtipo de

Set(T) Collection(T)

Sequence(T) Collection(T)

Bag(T) Collection(T)

Integer Real

Concordancia de tipos


Reglas de precedencia
Reglas de precedencia

  • @pre

  • punto y operaciones flecha: '.' y '->'

  • operadores unitarios 'not' y menos '-'

  • '*' y '/'

  • '+' y el operador binario '-'

  • 'if-then-else-endif'

  • '<','>','<=','>='

  • '=','<>'

  • 'and','or', y 'xor'

  • 'implies'



Conexi n con el metamodelo uml
Conexión con el metamodelo UML

  • Self : se usa para referirse a la instancia contextual.

  • Invariantes: restricción estereotipada como <<invariante>>. Por ejemplo:

    context Company inv enoughEmployees: Self.numberofEmployees > 50


Conexi n con el metamodelo uml1
Conexión con el metamodelo UML

  • Pre y Post-condiciones: se corresponden con los estereotipos <<precondicion>> y <<postcondicion>>, respectivamente.

    context Typename::OperationName

    (param1:Type1,...):ReturnType

    post: result = 5000


Conexi n con el metamodelo uml2
Conexión con el metamodelo UML

  • Let: Define una variable que es una subexpresión usada varias veces en una R.I.

    context Person inv:

    let income : Integer =self.job.salary sum in

    if isUnemployed then income < 100

    else income >=100

    endif


Conexi n con el metamodelo uml3
Conexión con el metamodelo UML

  • Propiedades predefinidas de los objetos:

    • OclIsTypeOf (t : OclType) : Boolean

    • OclIsKingOf (t : OclType) : Boolean

    • OclInState (s : OclState) : Boolean

    • OclisNew : Boolean

    • OclAsType (t : OclType) : instance of OclType


Conexi n con el metamodelo uml4
Conexión con el metamodelo UML

  • Allinstances: Su resultado es el conjunto de todas las instancias del tipo existente en un momento dado.

  • Tipo Collection:supertipo abstracto para todos los tipos de colección en OCL. Tres tipos: Set, Sequence y Bag.


Paquete est ndar ocl
Paquete estándar OCL

  • Cada modelo UML que usa como lenguaje de restricción OCL contiene un paquete estándar denominado “UML_OCL”.

  • Cada tipo OCL puede extenderse con nuevas características.


Conclusiones
Conclusiones

  • OCL no es tan expresivo como el CRT está incompleto como lenguaje de consulta de B.D.

  • Es más fácil encontrar los errores en fases más tempranas del proyecto.


Conclusiones1
Conclusiones

  • La combinación de UML y OCL mejorará definitivamente el proceso de desarrollo software e incrementará la calidad del software desarrollado.

  • Algunos autores han sugerido reemplazarlo por otro lenguaje bien formado como el EER.