Modeling Design Patterns for Semi-Automatic Reuse in System Design

Author(s):  
Galia Shlezinger ◽  
Iris Reinhartz-Berger ◽  
Dov Dori

Design patterns provide reusable solutions for recurring design problems. They constitute an important tool for improving software quality. However, correct usage of design patterns depends to a large extent on the designer. Design patterns often include models that describe the suggested solutions, while other aspects of the patterns are neglected or described informally only in text. Furthermore, design pattern solutions are usually described in an object-oriented fashion that is too close to the implementation, masking the essence of and motivation behind a particular design pattern. We suggest an approach to modeling the different aspects of design patterns and semi-automatically utilizing these models to improve software design. Evaluating our approach on commonly used design patterns and a case study of an automatic application for composing, taking, checking, and grading analysis and design exams, we found that the suggested approach successfully locates the main design problems modeled by the selected design patterns.

2010 ◽  
Vol 21 (1) ◽  
pp. 29-57 ◽  
Author(s):  
Galia Shlezinger ◽  
Iris Reinhartz-Berger ◽  
Dov Dori

Design patterns provide reusable solutions for recurring design problems. They constitute an important tool for improving software quality. However, correct usage of design patterns depends to a large extent on the designer. Design patterns often include models that describe the suggested solutions, while other aspects of the patterns are neglected or described informally only in text. Furthermore, design pattern solutions are usually described in an object-oriented fashion that is too close to the implementation, masking the essence of and motivation behind a particular design pattern. We suggest an approach to modeling the different aspects of design patterns and semi-automatically utilizing these models to improve software design. Evaluating our approach on commonly used design patterns and a case study of an automatic application for composing, taking, checking, and grading analysis and design exams, we found that the suggested approach successfully locates the main design problems modeled by the selected design patterns.


2011 ◽  
Vol 8 (1) ◽  
pp. 41-72
Author(s):  
Peter Kajsa ◽  
Lubomir Majtas ◽  
Pavol Navrat

Design patterns provide an especially effective way to improve the quality of a software system design as they provide abstracted, generalized and verified solutions of non-trivial design problems that occur repeatedly. The paper presents a method of design pattern instantiation support based on the key principles of both MDD and MDA. The method allows specification of the pattern instance occurrence via the semantic extension of UML directly on the context. The rest of the pattern instantiation is automated by model transformations of the specified pattern instances to lower levels of abstraction. Such approach enables the use of higher levels of abstraction in the modeling of patterns. Moreover, the model transformations are driven by models of patterns besides the instance specification, and thus the approach provides very useful ways how to determine and control the results of transformations. The method is not limited to design pattern support only, it also provides a framework for the addition of support for custom model structures which are often created in models mechanically.


Author(s):  
Toufik Taibi

A Design pattern describes a set of proven solutions for a set of recurring design problems that occur within a context. As such, reusing patterns improves both quality and time-to-market of software projects. Currently, most patterns are specified in an informal fashion, which gives rise to ambiguity, and limits tool support and correct usage. This chapter describes balanced pattern specification language (BPSL), a language intended to accurately describe patterns in order to allow rigorous reasoning about them. BPSL incorporates the formal specification of both structural and behavioral aspects of patterns. Moreover, it can formalize pattern composition and instances of patterns (possible implementations of a given pattern).


Author(s):  
Youmna Bassiouny ◽  
Rimon Elias ◽  
Philipp Paulsen

Computational design takes a computer science view of design, applying both the science and art of computational approaches and methodologies to design problems. This article proposes to convert design methodologies studied by designers into rule-based computational design software and help them by providing suggestions for designs to build upon given a set of primitive shapes and geometrical rules. iPattern is a pattern-making software dedicated to designers to generate innovative design patterns that can be used in a decorative manner. They may be applied on wallpapers, carpets, fabric textiles, three-dimensional lanterns, tableware, etc. The purpose is to create a modern pattern design collection that adds a new essence to the place. In order to generate creative design patterns, primitive shapes and geometrical rules are used. The generated design pattern is constructed based on the grid of the Flower of Life of the sacred geometry or similar grids constructed using primitive shapes (rectangles, squares and triangles) combined in the layout of the Flower of Life.


Author(s):  
Yann-Gaël Gueheneuc ◽  
Jean-Yves Guyomarc’h ◽  
Khashayar Khosravi ◽  
Hourari Sahraoui

Software quality models link internal attributes of programs with external quality characteristics. They help in understanding relationships among internal attributes and between internal attributes and quality characteristics. Object-oriented software quality models usually use metrics on classes (such as number of methods) or on relationships between classes (for example coupling) to measure internal attributes of programs. However, the quality of object-oriented programs does not depend on classes solely: it depends on the organisation of classes also. We propose an approach to build quality models using patterns to consider program architectures. We justify the use of patterns to build quality models, describe the advantages and limitations of such an approach, and introduce a first case study in building and in applying a quality model using design patterns on the JHotDraw, JUnit, and Lexi programs. We conclude on the advantages of using patterns to build software quality models and on the difficulty of doing so.


Author(s):  
Arti Chaturvedi ◽  
Manjari Gupta ◽  
Sanjay Kumar Gupta

Design Pattern Detection is a part of re-engineering process and thus gives significant information to the designer. Detection of design patterns is helpful for improving the software characteristics. Therefore, a reliable design pattern discovery is required. The problem of finding an isomorphic sub-graph is used to solve design pattern detection in past. It is noticed that ordering of vertices of the design pattern saves the time of process. In this paper we are doing ordering of vertices for few design patterns proposed by Gamma, Helm, Johnson, and Vlissides (1995) using an algorithm Greatest Constraint First proposed by Bonnici, Giugno, Pulvirenti, Shasha, and Ferro (2013). After getting this ordering, we use a matching algorithm that uses subgraph isomorphism conditions to check whether a particular design pattern exists in the system design or not (Bonnici et al., 2013). We redefine sub-graph isomorphism conditions in the context of the problem of mining design patterns from the system design.


2021 ◽  
Vol 20 (5s) ◽  
pp. 1-26
Author(s):  
Kyungmin Bae ◽  
Peter Csaba Ölveczky

TTA and PALS are two prominent formal design patterns—with different strengths and weaknesses—for virtually synchronous distributed cyber-physical systems (CPSs). They greatly simplify the design and verification of such systems by allowing us to design and verify their underlying synchronous designs. In this paper we introduce and verify MSYNC as a formal design (and verification) pattern/synchronizer for hierarchical multirate CPSs that generalizes, and combines the advantages of, both TTA and (single-rate and multirate) PALS. We also define an extension of TTA to multirate CPSs as a special case. We show that MSYNC outperforms both TTA and PALS in terms of allowing shorter periods, and illustrate the MSYNC design and verification approach with a case study on a fault-tolerant distributed control system for turning an airplane.


Design Patterns are one of the demonstrated reusable answers for the normally experienced design issues. The identification of design pattern is significant action that underpins re-building procedure and gives insights to the designer. The uncovering of these design patterns help understand the object oriented models clearly by analyzing the relations present in the model. Many design pattern identification approaches have been proposed in past years. These methodologies work upon the behavioral, structural and semantic analysis of the software. Many algorithms were used to recognize design patterns in software. In this paper, we will be extracting an attribute relational matrix from the graph using object oriented approach. The aim of the paper is to discover all the design patterns present in the system design.


2021 ◽  
Vol 3 (2(59)) ◽  
pp. 13-18
Author(s):  
Ruslan Borysov

The object of research is an approach of functionality extension for simulation toolkits based on iFogSim. It is assumed by the native approach that enhancement of functionalities should be achieved by inheriting the fog device class and defining new features in its body. However, this approach makes it impossible to use inherited simulators together and significantly decreases flexibility even when utilizing a single simulator. Another problem related exclusively to iFogSim is a specific communication scheme between application modules, which results in data routing limitations in fog architectures and odd data streams taken into account. This paper introduces an alternative extension approach incorporating a peculiar inheritance scheme which tries to reconsider the standard approach from a behavioral design patterns point of view. The key feature of the suggested approach is an extraction of fog device features from the native class into separate behavioral classes. Meanwhile, the designed inheritance scheme allows to flexibly override and combine behaviors. According to the approach principles the developed simulator extends iFogSim with application modules addressing capabilities solving limitations, along with implementing users’ mobility and dynamic wireless connectivity as it is done in MobFogSim. With the aim to check its correctness, the designed toolkit was validated with the standard for iFogSim case study of «EEG Tractor Beam game» application. The validation included four scenarios. In the first two scenarios the features of users’ mobility and dynamic base station connectivity were validated. And in the next scenarios that utilized address routing the obtained delay and network usage values were compared with theoretically calculated ones. The validation results indicated the correct simulator behavior, and introduced functionalities extension approach, being more complex in comparison with the inative one, can significantly improve flexibility of the simulator


Author(s):  
Jing Dong ◽  
Tu Peng ◽  
Yongtao Sun ◽  
Longji Tang ◽  
Yajing Zhao

Design patterns (Gamma, Helm, Johnson, & Vlissides, 1995) extract good solutions to standard problems in a particular context. Modern software industry has widely adopted design patterns to reuse best practices and improve the quality of software systems. Each design pattern describes a generic piece of design that can be instantiated in different applications. Multiple design patterns can be integrated to solve different design problems. To precisely and unambiguously describe a design pattern, formal specification methods are used. Each design pattern presents extensible design that can evolve after the pattern is applied. While design patterns have been applied in many large systems, pattern-related information is generally not available in source code or even the design model of a software system. Recovering pattern-related information and visualizing it in design diagrams can help to understand the original design decisions and tradeoffs. In this article, we concentrate on the issues related to design pattern instantiation, integration, formalization, evolution, visualization, and discovery. We also discuss the research work addressing these issues.


Sign in / Sign up

Export Citation Format

Share Document