5 research outputs found

    A Formal Descriptive Semantics of UML

    Get PDF
    This paper proposes a novel approach to the formal definition of UML semantics. We distinguish descriptive semantics from functional seman-tics of modelling languages. The former defines which system is an instance of a model while the later defines the basic concepts underlying the models. In this paper, the descriptive semantics of class diagram, interaction diagram and state machine diagram are defined by first order logic formulas. A translation tool is implemented and integrated with the theorem prover SPASS to enable auto-mated reasoning about models. The formalisation and reasoning of models is then applied to model consistency checking

    Formalising design patterns in predicate logic

    Get PDF
    Design patterns are traditionally outlined in an informal manner. If they could be formalised, we could derive tools that automatically recognise design patterns and refactor designs and code. Our approach is to deploy predicate logic to specify conditions on the class diagrams that describe design patterns. The structure of class diagrams is itself described with a novel meta-notation that can be used for defining any graphical modelling language. As a result, the constraints, while based on UML, are highly readable and have much expressive power. This enables us not only to recognise design patterns in legacy code, but also to reason about them at the design stage, such as showing one pattern to be a special case of another. The paper discusses our specification of the original 23 design patterns and presents a representative sample of some of them

    Formal specification of the variants and behavioural features of design patterns

    Get PDF
    The formal specification of design patterns is widely recognized as being vital to their effective and correct use in software development. It can clarify the concepts underlying patterns, eliminate ambiguity and thereby lay a solid foundation for tool support. This paper further advances a formal meta-modelling approach that uses first order predicate logic to specify design patterns. In particular, it specifies both structural and behavioural features of design patterns and systematically captures the variants in a well-structured format. The paper reports a case study involving the formal specification of all 23 patterns in the Gang of Four catalog. It demonstrates that the approach improves the accuracy of pattern specifications by covering variations and clarifying the ambiguous parts of informal descriptions

    An Algebra of Design Patterns

    Get PDF
    In a pattern-oriented software design process, design decisions are made by selecting and instanti- ating appropriate patterns, and composing them together. In our previous work, we enabled these decisions to be formalised by dening a set of operators on patterns with which instantiations and compositions can be represented. In this paper, we investigate the algebraic properties of these operators. We provide and prove a complete set of algebraic laws so that equivalence between pattern expressions can be proven. Furthermore, we dene an always-terminating normalisation of pattern expressions to a canonical form, which is unique modulo equivalence in rst-order logic. By a case study, the pattern-oriented design of an extensible request-handling framework, we demonstrate two practical applications of the algebraic framework. Firstly, we can prove the correctness of a nished design with respect to the design decisions made and the formal specication of the patterns. Secondly, we can even derive the design from these components

    On UML statechart with variabilities

    Get PDF
    El uso de m茅todos formales para el dise帽o de software contribuye a la confiabilidad y robustez del sistema a construir. A medida que los sistemas se vuelven complejos, el enfoque formal es esencial, debido a que permite la demostrabilidad y verificabilidad del dise帽o. El dise帽o formal es un proceso que comienza con la etapa de especificaci贸n, en la cual el sistema es de nido utilizando un lenguaje de modelado; luego la etapa de verificaci贸n, en la cual el sistema es analizado mediante un enfoque de correcci贸n basado en pruebas formales utilizando herramientas matem谩 ticas y, por 煤ltimo, la etapa de implementaci贸n, en la cual la especificaci贸n se convierte en c贸digo ejecutable. El Lenguaje de Modelado Unificado (UML por sus siglas en ingl茅s) es un lenguaje espec铆fico ampliamente utilizado en la industria y la academia. Desafortunadamente, carece de una sem谩ntica formal que permita el desarrollo de modelos utilizando un enfoque de correcci贸n basado en pruebas formales. Este trabajo se centra en la especificaci贸n formal de familias de sistemas, y, en particular, en la sem谩n- tica de m谩quinas de estados de UML (UML Statecharts) con variabilidades y sus aplicaciones a l铆neas de productos de software. La principal contribuci贸n es la definici贸n de un formalismo que permite modelar el comportamiento de una familia de sistemas. Tal comportamiento se describe utilizando UML Statecharts en combinaci贸n con Diagramas de funcionalidades (Feature Diagrams), con el fin de representar las funcionalidades comunes y variantes de una familia. Para ello se define una relaci贸n de orden entre los UML Statecharts, que representa el hecho de que un statechart posee una estructura mas rica que otro. Luego se defi ne con precisi贸n la forma de combinar diferentes extensiones de un mismo statechart. Utilizando estos conceptos, es posible definir el efecto que cada funcionalidad tiene en los productos en los cuales se encuentra presente.Estas definiciones proporcionan una forma muy simple de obtener la especificaci贸n del comportamiento de un producto de la l铆nea como la combinaci贸n de los UML Statecharts que implementan todas las funcionalidades presentes en un producto en particular. Mas a煤n, se prueba que la relaci贸n de extensi贸n propuesta constituye un refinamiento de comportamiento. El presente enfoque se compara con el estado del arte y se estudia su aplicaci贸n pr谩ctica con el n de visualizar sus bene cios y posibles debilidades. Adicionalmente, con el fin de comprobar la adecuaci贸n de la propuesta, una gran parte de las ideas fueron implementadas en un prototipo utilizando Prolog
    corecore