15 research outputs found

    HEDGEHOG: Automatic Verification of Design Patterns in Java

    Get PDF
    Centre for Intelligent Systems and their ApplicationsDesign patterns are widely used by designers and developers for building complex systems in object-oriented programming languages such as Java. However, systems evolve over time, increasing the chance that the pattern in its original form will be broken. To verify that a design pattern has not been broken involves specifying the original intent of the design pattern. Whilst informal descriptions of patterns exist, no formal specifications are available due to differences in implementations between programming languages. This thesis shows that many patterns (implemented in Java) can be verified automatically. Patterns are defined in terms of variants, mini-patterns, and artefacts in a pattern description language called SPINE. These specifications are then processed by HEDGEHOG, an automated proof tool that attempts to prove that Java source code meets these specifications

    Transparent Replication Using Metaprogramming in Cyan

    Full text link
    Replication can be used to increase the availability of a service by creating many operational copies of its data called replicas. Active replication is a form of replication that has strong consistency semantics, easier to reason about and program. However, creating replicated services using active replication still demands from the programmer the knowledge of subtleties of the replication mechanism. In this paper we show how to use the metaprogramming infrastructure of the Cyan language to shield the application programmer from these details, allowing easier creation of fault-tolerant replicated applications through simple annotations.Comment: 8 page

    THE MODEL AND FUNCTION OF QUALITY ASSESSMENT OF IMPLEMENTATION OF DESIGN PATTERNS

    Get PDF
    One of the ways of providing high internal software quality (that is a source code) is using design patterns. The article aims at presenting a suggested model which enables one to assess the quality of implementation of design patterns. The model assumes verification of different aspects of the patterns and a numeric expression of the obtained results. The analysis of the obtained results may show the occurrence of certain problems which are difficult to be identified during code review or testing

    VERIFICATION OF ACCURACY AND COST OF USE METHOS OF QUALITY ASSESSMENT OF IMPLEMENTATION OF DESIGN PATTERNS

    Get PDF
    Professional programmers use many additional tools over the Integrated Development Environment during their work. Very often they are looking for new solutions, while expecting that the new tool will provide accurate results, and the cost of use will fit within the planned budget. The aim of the article is to present the results of two comparative analyzes carried out in terms of accuracy and the cost of using the quality assessment method of implementation of design patterns

    A Survey on Design Pattern Recovery Techniques

    Get PDF
    The evaluation of design pattern recovery techniques and tools is significant as numbers of emergent techniques are presented and used in the past to recover patterns from source code of legacy applications. The problem of very diverse precision and recall values extracted by different pattern recovery techniques and tools on the same examined applications is not investigated thoroughly. It is very desirable to compare features of existing techniques as abundance of techniques supplemented with different tools has been presented in the last decade. We believe that new innovations for this discipline can be based on the empirical evaluation of existing techniques. The selected techniques cover the whole spectrum of state of the art research in design pattern recovery. The major contribution of this paper is a comprehensive discussion on state of the art in design pattern recovery research in the last decade followed by a proposed framework for classification and evaluation of existing design pattern recovery techniques. Finally we listed our observations as lessons learned which hamper design pattern recovery research and these observations can be used for future research directions and guidelines for this discipline

    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

    Code Generation Using Design Patterns

    Get PDF
    Tato práce se zabývá generováním zdrojových kódů aplikací pomocí návrhových vzorů. Práce popisuje problematiku specifikace návrhových vzorů a jejich užití při generování kódů aplikací. Podstatná část práce se věnuje popisu návrhových vzorů, jejich dělení, účelu použití, ale i způsobům specifikace vzorů. Detailně popisuje nejčastěji používané formální specifikace návrhových vzorů, jejich možnosti využití při generování kódu a návrh algoritmu pro vyhledání podobných struktur vzorů ve zdrojovém kódu.This thesis describes code generation using design patterns. It deals with questions of specification of design patterns and their usage in code generation. The main part of thesis follows describtions of design patterns, their categorization, usage purpose and main ways of design patterns definitions. It describes the most often used formal design patterns specifications, their possible usage in code generation and design of algorithm for searching similar structures of patterns in source code in detail.

    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
    corecore