11 research outputs found

    a(MDÆ)2: A Model Driven Approach to Multi-Dimensional Separation of Concerns with OCL

    Get PDF
    AbstractA typical activity in the object-oriented software engineering process involves the construction of a class structure in terms of which the system behaviour is to be specified. The behaviour, however, commonly consists of multiple tasks, each of which usually needs only part of the information available in that class structure. Additionally, a different representation of the required information may be appropriate. Therefore, it would be useful to be able to have multiple views on the global class structure, each being suitable for the specification of the behaviour related to a certain task. This paper introduces a(MDÆ)2, a technique to realise such a strategy. It incorporates OCL as a powerful query language and advocates a model driven development process which relieves the developer from the burden of manually writing a considerable amount of tedious and error-prone code

    A constraint language for algebraic term based on rewriting theory

    Get PDF
    A key feature of Model Driven Engineering is the ability to define meta-models, but also constraints that have to be satisfied by their instances. Constraints are expressed in OCL (Object Constraint Language), which became a standard. OCL Constraints offer the possibility to capture properties which cannot be easily encoded in the meta-model. In the programming language community, instead of meta-models, we generally use grammars or algebraic signatures to define the syntax of the programs or abstract syntax trees (AST) we consider. But unfortunately, even when considering rich formalisms such as many-sorted signatures with subtyping or dependent types, they are not expressive enough to encode in a simple way some subsets of terms we want to consider. For instance arithmetic expressions which have at most two levels of plus operator, this includes a, a+b, (a+b)+(b+c), but not a+(b+(c+d)) for instance. There is a need for a constraint language dedicated to tree based data structures such as terms and AST. In this paper we present both a language to express constraints on trees, and a compilation scheme that shows how to translate constraints into an executable formalism based on term rewriting and strategies

    Proceedings of the MoDELS'05 Workshop on Tool Support for OCL and Related Formalisms -- Needs and Trends

    Get PDF
    This Technical Report comprises the final versions of the technical papers presented at the workshop 'Tool Support for OCL and Related Formalisms -- Needs and Trends' held in Montego Bay (Jamaica), October 4, 2005. The workshop was co-located with the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS)

    Implementación de técnicas de evaluación y refinamiento para OCL 2.0 sobre múltiples lenguajes basados en MOF

    Get PDF
    La complejidad de los problemas del mundo real ha llevado a que la construcción de un sistema de software debe ser precedida por la construcción de un modelo, tal como ocurre en otros sistemas ingenieriles. El modelo de un sistema es una representación conceptual obtenida a partir de la identificación, clasificación y abstracción de los elementos que constituyen el problema y su posterior organización en una estructura formal. De esta forma, el modelo de un sistema actúa como una especificación de los requerimientos que el sistema debe satisfacer, proveyendo un medio de comunicación y negociación entre usuarios, clientes, analistas y desarrolladores, así como también un documento de referencia durante la verificación y validación, y durante la evolución del producto. Es de suma importancia expresar el problema claramente y con precisión; pero esta meta es difícil de lograr, los modelos tienden a contener errores, omisiones e inconsistencias porque ellos son el resultado de una actividad compleja y creativa. El modelo del sistema se expresa utilizando un lenguaje de modelado. El éxito de los lenguajes gráficos de modelados como el Unified Modelling Language (UML) son principalmente basado en el uso de construcciones gráficas que transmiten un significado intuitivo. Estos lenguajes son atractivos para los usuarios porque ellos son claros y entendibles. Estas características son vitales ya que el modelo también cumple una función contractual. Sin embargo es fundamental contar con un lenguaje que permita expresar restricciones semánticas adicionales sobre los objetos del modelo, pudiendo obtener modelos más precisos y verificables. OCL es un lenguaje de especificación formal fácil de leer y escribir. Fue definido por la OMG (Object Management Group), permite expresar restricciones semánticas del sistema que no se pueden expresar a partir de una notación gráfica. De esta forma, los diagramas complementados con expresiones OCL son más precisos, su documentación es más clara, se mejora la comunicación entre desarrolladores (evitando errores producidos por malas interpretaciones) y la compresibilidad del sistema en etapas iniciales del desarrollo de software es mayor. Tanto UML como OCL están definidos a través de MOF (Meta Object Facility) una especificación de tecnología estandarizada por OMG en 1997. MOF es un meta-metamodelo que es utilizado para crear metamodelos. OCL puede ser utilizado para cualquier metamodelo que adhiera a MOF. Otras características que son muy importantes para la utilización de los lenguajes de modelado, en sistemas de software complejos, es contar con técnicas de refinamientos, permitiendo un desarrollo por etapas con distintos niveles de abstracción, postergando los detalles del problema en etapas posteriores. En los lenguajes formales como Z [33] es posible demostrar si una especificación dada es un refinamiento de otra especificación, o incluso derivar refinamientos a partir de una determinada especificación. Para poder utilizar mecanismos de refinamientos en UML, es necesario aumentar la precisión de dicho lenguaje de modelado, y definir un marco para expresar la noción de refinamiento. Algunos grupos de investigadores proponen la traducción de UML/OCL en lenguajes formales que soporten mecanismos de refinamientos para disminuir las deficiencias de UML. Esta tesis está organizada de la siguiente manera. En el capitulo 2 se introduce el concepto de MOF y metamodelos. En el capítulo 3 se describe el uso de OCL en modelos basados en MOF. En el capitulo 4 se expone el metamodelo de OCL 2.0. En el capítulo 5 se describe una estrategia de evaluación para las condiciones de refinamientos en modelos UML/OCL. En el capítulo 6 se describe la implementación de la herramienta que asiste al proceso de especificación y evaluación de refinamiento con UML y OCL. En el capitulo 7 se exponen los trabajos relacionados. En el capitulo 8 se expone las conclusiones finales y se citan futuros trabajos.Facultad de Informátic

    Model driven language engineering

    Get PDF
    Modeling is a most important exercise in software engineering and development and one of the current practices is object-oriented (OO) modeling. The Object Management Group (OMG) has defined a standard object-oriented modeling language the Unified Modeling Language (UML). The OMG is not only interested in modeling languages; its primary aim is to enable easy integration of software systems and components using vendor-neutral technologies. This thesis investigates the possibilities for designing and implementing modeling frameworks and transformation languages that operate on models and to explore the validation of source and target models. Specifically, we will focus on OO models used in OMG's Model Driven Architecture (MDA), which can be expressed in terms of UML terms (e.g. classes and associations). The thesis presents the Kent Modeling Framework (KMF), a modeling framework that we developed, and describes how this framework can be used to generate a modeling tool from a model. It then proceeds to describe the customization of the generated code, in particular the definition of methods that allows a rapid and repeatable instantiation of a model. Model validation should include not only checking the well-formedness using OCL constraints, but also the evaluation of model quality. Software metrics are useful means for evaluating the quality of both software development processes and software products. As models are used to drive the entire software development process it is unlikely that high quality software will be obtained using low quality models. The thesis presents a methodology supported by KMF that uses the UML specification to compute the design metrics at an early stage of software development. The thesis presents a transformation language called YATL (Yet Another Transformation Language), which was designed and implemented to support the features provided by OMG's Request For Proposal and the future QVT standard. YATL is a hybrid language (a mix of declarative and imperative constructions) designed to answer the Query/Views/Transformations Request For Proposals issued by OMG and to express model transformations as required by the Model Driven Architecture (MDA) approach. Several examples of model transformations, which have been implemented using YATL and the support provided by KMF, are presented. These experiments investigate different knowledge areas as programming languages, visual diagrams and distributed systems. YATL was used to implement the following transformations: * UML to Java mapping * Spider diagrams to OCL mapping * EDOC to Web ServicesEThOS - Electronic Theses Online ServiceGBUnited Kingdo

    Model driven language engineering

    Get PDF
    Modeling is a most important exercise in software engineering and development and one of the current practices is object-oriented (OO) modeling. The Object Management Group (OMG) has defined a standard object-oriented modeling language the Unified Modeling Language (UML). The OMG is not only interested in modeling languages; its primary aim is to enable easy integration of software systems and components using vendor-neutral technologies. This thesis investigates the possibilities for designing and implementing modeling frameworks and transformation languages that operate on models and to explore the validation of source and target models. Specifically, we will focus on OO models used in OMG's Model Driven Architecture (MDA), which can be expressed in terms of UML terms (e.g. classes and associations). The thesis presents the Kent Modeling Framework (KMF), a modeling framework that we developed, and describes how this framework can be used to generate a modeling tool from a model. It then proceeds to describe the customization of the generated code, in particular the definition of methods that allows a rapid and repeatable instantiation of a model. Model validation should include not only checking the well-formedness using OCL constraints, but also the evaluation of model quality. Software metrics are useful means for evaluating the quality of both software development processes and software products. As models are used to drive the entire software development process it is unlikely that high quality software will be obtained using low quality models. The thesis presents a methodology supported by KMF that uses the UML specification to compute the design metrics at an early stage of software development. The thesis presents a transformation language called YATL (Yet Another Transformation Language), which was designed and implemented to support the features provided by OMG's Request For Proposal and the future QVT standard. YATL is a hybrid language (a mix of declarative and imperative constructions) designed to answer the Query/Views/Transformations Request For Proposals issued by OMG and to express model transformations as required by the Model Driven Architecture (MDA) approach. Several examples of model transformations, which have been implemented using YATL and the support provided by KMF, are presented. These experiments investigate different knowledge areas as programming languages, visual diagrams and distributed systems. YATL was used to implement the following transformations: * UML to Java mapping * Spider diagrams to OCL mapping * EDOC to Web Service

    Aplicação da OCL à especificação do problema de elaboração de horários

    Get PDF
    Um horário bem elaborado é um requisito importante para a boa administração de qualquer instituição de ensino superior. Porém, o grande número de factores envolvidos, como a quantidade de unidades curriculares, a alocação dos docentes e a distribuição dos recursos, torna o problema da criação dos horários muito complexo. A OCL (Object Constraint Language) é uma linguagem que pode ser utilizada para especificar, de forma precisa, elementos que as notações gráficas da UML não são capazes de representar, como, por exemplo, restrições, expressões associadas a atributos derivados, expressões de consulta e definições contratuais de operações. Embora a OCL tenha sido definida com o objectivo de ser uma linguagem de uso mais fácil, se comparada às linguagens formais tradicionais, as especificações produzidas com a OCL podem apresentar problemas de legibilidade e manuseamento. Este trabalho utiliza a OCL para a modelação de uma ferramenta de elaboração e optimização de horários e a conversão delas para SQL através de uma ferramenta de transformação automática baseada em MDA. Com isso, pretende-se testar a capacidade expressiva e robustez da linguagem OCL como forma de validar se um modelo satisfaz ou não um conjunto de restrições, independentemente da forma como ele foi obtido. Ou seja, pretende-se responder à seguinte questão: A OCL pode ser utilizada para definir, de forma precisa e não ambígua, as restrições e a semântica das operações de um modelo?A well-designed timetable is an important prerequisite for the proper administration of any institution of higher education. However, the large number of factors involved, such as the amount of course units, the allocation of teachers and distribution of resources makes the issue of creation of very complex timetable. The OCL (Object Constraint Language) is a language that can be used to specify, precisely, that the elements of the UML graphical notations are not capable of representing, for example, constraints associated with attributes derived expressions, query expressions and definitions of contractual transactions. Although the OCL has been defined in order to be an easier language to use when compared to traditional formal languages, the specifications produced with the OCL can present problems in handling and readability. This work uses OCL for modeling a tool for development and optimization of timetables and their conversion to SQL via an automated transformation tool based on MDA. With this, we intend to test the expressive power and robustness of language OCL in order to validate whether or not a model fits a set of constraints, regardless of how it was obtained. That is, we intend to answer the following question: The OCL can be used to define, precisely and unambiguously, the constraints and semantics of the operations of a model

    Desarrollo de una herramienta para derivación automática de especificaciones OCL a JML

    Get PDF
    UML es un poderoso método para diseñar y documentar sistemas de software. Existen muchas herramientas para asistir en la creación y mantenimiento de los documentos UML. Las más avanzadas incluyen ciertas características que permiten la traducción de modelos UML a código, y viceversa. UML no está lo suficientemente refinado para proveer todos los aspectos relevantes de una especificación, ya que hay ciertas restricciones que no pueden expresarse en el modelo y muchas veces son descriptas en lenguaje natural, pero esto puede resultar en ambigüedades. Para escribir restricciones no ambiguas se han desarrollado lenguajes formales. Uno de ellos es OCL, que permite incrementar la precisión de los modelos UML. Además existe JML para especificar programas escritos en el lenguaje Java. La motivación principal de la tesina es analizar y comparar los lenguajes OCL y JML, para luego definir una traducción entre ambos lenguajes y finalmente desarrollar una herramienta que realice la traducción automáticamente.Tesis dirigida por Claudia Pons y Ricardo Rosenfeld. Grados alcanzados: Licenciado en Sistemas y Licenciado en Informática.Facultad de Informátic

    Desarrollo de una herramienta para derivación automática de especificaciones OCL a JML

    Get PDF
    UML es un poderoso método para diseñar y documentar sistemas de software. Existen muchas herramientas para asistir en la creación y mantenimiento de los documentos UML. Las más avanzadas incluyen ciertas características que permiten la traducción de modelos UML a código, y viceversa. UML no está lo suficientemente refinado para proveer todos los aspectos relevantes de una especificación, ya que hay ciertas restricciones que no pueden expresarse en el modelo y muchas veces son descriptas en lenguaje natural, pero esto puede resultar en ambigüedades. Para escribir restricciones no ambiguas se han desarrollado lenguajes formales. Uno de ellos es OCL, que permite incrementar la precisión de los modelos UML. Además existe JML para especificar programas escritos en el lenguaje Java. La motivación principal de la tesina es analizar y comparar los lenguajes OCL y JML, para luego definir una traducción entre ambos lenguajes y finalmente desarrollar una herramienta que realice la traducción automáticamente.Tesis dirigida por Claudia Pons y Ricardo Rosenfeld. Grados alcanzados: Licenciado en Sistemas y Licenciado en Informática.Facultad de Informátic
    corecore