15 research outputs found
HEDGEHOG: Automatic Verification of Design Patterns in Java
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
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
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
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
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
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
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
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