An Empirical Study of the Effect of Design Patterns on Class Structural Quality

Author(s):  
Liguo Yu ◽  
Srini Ramaswamy

Design patterns are standardized solutions to commonly encountered problems using the object-oriented programming paradigm. Applying design patterns can speed up software development processes through the reuse of tested, proven templates, or development paradigms. Accordingly, design patterns have been widely used in software industry to build modern software programs. However, as different design patterns are introduced to solve different design problems, they are not necessarily superior to alternative solutions, with respect to all aspects of software design. One major concern is that the inappropriate use of design patterns may unnecessarily increase program complexity, such as class structural quality. Theoretical analysis of the effect of design patterns on software complexity has been widely performed. However, little work is reported to empirically study how design patterns might affect class structural quality. This chapter studies six components from five open-source Java projects and empirically investigates if design patterns can affect class structural quality. The chapter finds that pattern-involved classes are more complex than pattern-free classes and recommends the cautious use of design patterns to avoid unnecessary increases in class complexity and decrease in class structural quality.

Author(s):  
Liguo Yu ◽  
Srini Ramaswamy

Design patterns are standardized solutions to commonly encountered problems using the object-oriented programming paradigm. Applying design patterns can speed up software development processes through the reuse of tested, proven templates, or development paradigms. Accordingly, design patterns have been widely used in software industry to build modern software programs. However, as different design patterns are introduced to solve different design problems, they are not necessarily superior to alternative solutions, with respect to all aspects of software design. One major concern is that the inappropriate use of design patterns may unnecessarily increase program complexity, such as class structural quality. Theoretical analysis of the effect of design patterns on software complexity has been widely performed. However, little work is reported to empirically study how design patterns might affect class structural quality. This chapter studies six components from five open-source Java projects and empirically investigates if design patterns can affect class structural quality. The chapter finds that pattern-involved classes are more complex than pattern-free classes and recommends the cautious use of design patterns to avoid unnecessary increases in class complexity and decrease in class structural quality.


Author(s):  
Liguo Yu ◽  
Srini Ramaswamy

Design patterns are standardized solutions to commonly encountered problems using the object-oriented programming paradigm. Applying design patterns can speed up software development processes through the reuse of tested, proven templates, or development paradigms. Accordingly, design patterns have been widely used in software industry to build modern software programs. However, as different design patterns are introduced to solve different design problems, they are not necessarily superior to alternative solutions, with respect to all aspects of software design. One major concern is that the inappropriate use of design patterns may unnecessarily increase program complexity, such as class structural quality. Theoretical analysis of the effect of design patterns on software complexity has been widely performed. However, little work is reported to empirically study how design patterns might affect class structural quality. This chapter studies six components from five open-source Java projects and empirically investigates if design patterns can affect class structural quality. The chapter finds that pattern-involved classes are more complex than pattern-free classes and recommends the cautious use of design patterns to avoid unnecessary increases in class complexity and decrease in class structural quality.


2017 ◽  
Vol 8 (2) ◽  
pp. 53-81
Author(s):  
Liguo Yu ◽  
Yingmei Li ◽  
Srini Ramaswamy

Design patterns are reusable software design solutions to object-oriented programs. Since the initial introduction of the 23 well-known design patterns in 1995, more and more patterns have been identified and utilized in the software industry. The benefits of applying design patterns include reducing development cost, improving code quality, and standardizing the integration and maintenance processes. Therefore, using design patterns is becoming a common practice to build both commercial software and open-source products. Although most design patterns are considered creative solutions to some difficult design problems, not all of them are necessarily the best with respect to all different software quality measures, such as program complexity. This paper studies 13 commonly employed design patterns in software industry. First, these 13 patterns are analyzed theoretically about their design complexity in comparison to the conventional solutions. Second, empirical studies are performed on five open-source Java projects to investigate the correlations between design patterns and class structural quality. Finally, these 13 design patterns are evaluated by software programmers who have experience of using all of them. Overall, this study finds that although some design patterns are considered useful, creative, and significant compared to conventional solutions based on user experience, pattern-involved classes are more complex than pattern-free classes, both theoretically and empirically. The authors accordingly recommend a balanced approach to using design patterns: design quality, cost, development time, and product quality should all be considered, when design patterns are utilized.


2018 ◽  
Vol 8 (3) ◽  
pp. 132-135
Author(s):  
Egemen Tekkanat ◽  
Murat Topaloglu

Planning is a very important stage for developing software. A number of systems have been developed for the planning stage, which is a must for software development. Object-oriented programming plays the most important part technically in those systems. Using object-based programming effectively minimises the time and money spent in terms of software development processes. One of the best ways for this is to use design patterns that are also known as modules or program segments consisting of more than one classes and supporting code reuse in order to solve the problems recurring during the development of the software. The aim of this study is to develop a design patterns modeller to be used in Java programming language to make the software development a planned, secure and upgradable process while shortening the time spent and reducing the costs via good planning. Keywords: Java, object-oriented, design patterns, modelling.


2001 ◽  
Vol 33 (4) ◽  
pp. 68-70 ◽  
Author(s):  
Joseph E. Lang ◽  
Brian R. Bogovich ◽  
Sean C. Barry ◽  
Brian G. Durkin ◽  
Michael R. Katchmar ◽  
...  

Author(s):  
Swaroop S. Vattam ◽  
Michael Helms ◽  
Ashok K. Goel

Biologically inspired engineering design is an approach to design that espouses the adaptation of functions and mechanisms in biological sciences to solve engineering design problems. We have conducted an in situ study of designers engaged in biologically inspired design. Based on this study we develop here a macrocognitive information-processing model of biologically inspired design. We also compare and contrast the model with other information-processing models of analogical design such as TRIZ, case-based design, and design patterns.


i-com ◽  
2018 ◽  
Vol 17 (1) ◽  
pp. 91-98
Author(s):  
Dominick Madden ◽  
Horst Schneider ◽  
Kirstin Kohler

Abstract Design patterns are solutions for common design problems used in a number of fields including architecture, software development and user experience design. We compiled a pattern library for the usage of gesture-enabled interactions between different devices with screens, the so called multiscreen context. This library provides simple and intuitive gestures for connecting and disconnecting devices wirelessly as well as gestures for the exchange of data between these devices, like swiping a document from one’s tablet to the tablets of the surrounding colleagues in the same room. The library is the result of a 2.5 years running project in cooperation with three small and medium companies. We compiled the library by conducting an intense literature survey in parallel with several iterations of practical software projects in the multiscreen context. The literature survey inspired the practice-oriented project work. Being involved in software projects enabled us to identify challenges in the design and implementation of the gesture set. Therefore, we generated valuable insight for a comprehensive description of gestural interactions. With our set of patterns, we aim to support interaction designers to choose the appropriate gesture for their given context. The patterns serve as inspiration by showing the different possibilities but also provide guidance how to design and implement a selected gesture for a given context. They help designing the details of an interaction by breaking it down into its smallest parts. To support the developers of these interactions our pattern descriptions are enriched with an Android library containing lifecycle events and the necessary gesture recognition logic. This paper provides an overview of the pattern library. In addition, the structure and the usage of the library is described in more detail with the means of one sample pattern. The pattern library is openly accessible.


2019 ◽  
Author(s):  
Sabina-Cristiana NECULA ◽  
Cătălin STRÎMBEI

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.


Sign in / Sign up

Export Citation Format

Share Document