scholarly journals Design pattern instantiation directed by concretization and specialization

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):  
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.


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.


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.


2019 ◽  
Vol 142 (1) ◽  
Author(s):  
Saeed Azad ◽  
Michael J. Alexander-Ramos

Abstract Optimization of dynamic engineering systems generally requires problem formulations that account for the coupling between embodiment design and control system design simultaneously. Such formulations are commonly known as combined optimal design and control (co-design) problems, and their application to deterministic systems is well established in the literature through a variety of methods. However, an issue that has not been addressed in the co-design literature is the impact of the inherent uncertainties within a dynamic system on its integrated design solution. Accounting for these uncertainties transforms the standard, deterministic co-design problem into a stochastic one, thus requiring appropriate stochastic optimization approaches for its solution. This paper serves as the starting point for research on stochastic co-design problems by proposing and solving a novel problem formulation based on robust design optimization (RDO) principles. Specifically, a co-design method known as multidisciplinary dynamic system design optimization (MDSDO) is used as the basis for an RDO problem formulation and implementation. The robust objective and inequality constraints are computed per usual as functions of their first-order-approximated means and variances, whereas analysis-based equality constraints are evaluated deterministically at the means of the random decision variables. The proposed stochastic co-design problem formulation is then implemented for two case studies, with the results indicating the importance of the robust approach on the integrated design solutions and performance measures.


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.


2015 ◽  
Vol 61 (4) ◽  
pp. 321-326
Author(s):  
Stefano Cicciarella ◽  
Christian Napoli ◽  
Emiliano Tramontana

Abstract Large software systems need to be modified to remain useful. Changes can be more easily performed when their design has been carefully documented. This paper presents an approach to quickly find design patterns that have been implemented into a software system. The devised solution greatly reduces the performed checks by organising the search for a design pattern as tree traversals, where candidate classes are carefully positioned into trees. By automatically tagging classes with design pattern roles we make it easier for developers to reason with large software systems. Our approach can provide documentation that lets developers understand the role each class is playing, assess the quality of the code, have assistance for refactoring and enhancing the functionalities of the software system.


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 ◽  
pp. 101-109
Author(s):  
Максим Олександрович Бичок ◽  
Ольга Костянтинівна Погудіна

The subject of study in the article is software development processes using design patterns. The aim is to improve the quality of modern software development projects through the use of experience and knowledge, to build software subsystems that are focused on infrastructure and work with an external client. Objectives: to review the methodology, programming paradigms and the possibility of their application at the design and coding stages of the software development life cycle; development of the concept of using design patterns in software design as knowledge available for reuse, propose an approach to the practical implementation of design patterns to node.js projects. The models used are the Composite design pattern, the Chain of responsibility design pattern. The used methodologies are object-oriented programming, as the most common programming paradigm, a unified modeling language UML for displaying the structure of design patterns. The following results are obtained. Modern methodologies and design paradigms are considered, a classification is formed in the form of a tree structure with a division into declarative and imperative subspecies, it is concluded that within the framework of the study we will use an object-oriented methodology as the most common design paradigm. An example of building an information system of the node.js project is considered. Analyzed the main errors that arise when developing and writing code for working with an external client. The elements of the node.js project and the concepts of structuring their relationship with existing design patterns are considered. An example of a practical implementation of a node.js project and its relationship with the Composite and Chain of responsibility design patterns is considered. In this connection, the work provides the structure of these templates. Findings. The scientific novelty of the results obtained is as follows: the model of design patterns was further developed through their use in the concept of building a node.js application, which makes it possible to improve the quality of interaction between the project team and reduce its execution time.


Author(s):  
Bruno Cardoso ◽  
Eduardo Figueiredo

A design pattern is a general reusable solution to a recurring problem in software design. Bad smells are symptoms that may indicate something wrong in the system design or code. Therefore, design patterns and bad smells represent antagonistic structures. They are subject of recurring research and typically appear in software systems. Although design patterns represent good design, their use is often inadequate because their implementation is not always trivial or they may be unnecessarily employed. The inadequate use of design patterns may lead to a bad smell. Therefore, this paper performs an exploratory study in order to identify instances of co-occurrences of design patterns and bad smells. This study is performed over five systems and discovers some co-occurrences between design patterns and bad smells. For instance, we observed the co-occurrences of Command with God Class and Template Method with Duplicated Code. The results of this study make it possible to understand in which situations design patterns are misused or overused and establish guidelines for their better use.


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).


Sign in / Sign up

Export Citation Format

Share Document