Identification and Assessment of Software Design Pattern Violations

06/04/2019
by   Tamer Abdelaziz, et al.
0

The validation of design pattern implementations to identify pattern violations has gained more relevance as part of re-engineering processes in order to preserve, extend, reuse software projects in rapid development environments. If design pattern implementations do not conform to their definitions, they are considered a violation. Software aging and the lack of experience of developers are the origins of design pattern violations. It is important to check the correctness of the design pattern implementations against some predefined characteristics to detect and to correct violations, thus, to reduce costs. Currently, several tools have been developed to detect design pattern instances, but there has been little work done in creating an automated tool to identify and validate design pattern violations. In this paper we propose a Design Pattern Violations Identification and Assessment (DPVIA) tool, which has the ability to identify software design pattern violations and report the conformance score of pattern instance implementations towards a set of predefined characteristics for any design pattern definition whether Gang of Four (GoF) design patterns by Gamma et al[1]; or custom pattern by software developer. Moreover, we have verified the validity of the proposed tool using two evaluation experiments and the results were manually checked. Finally, in order to assess the functionality of the proposed tool, it is evaluated with a data-set containing 5,679,964 Lines of Code among 28,669 in 15 open-source projects, with a large and small size of open-source projects that extensively and systematically employing design patterns, to determine design pattern violations and suggest refactoring solutions, thus keeping costs of software evolution. The results can be used by software architects to develop best practices while using design patterns.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/18/2023

Patterns in Docker Compose Multi-Container Orchestration

Software design patterns present general code solutions to common softwa...
research
10/19/2018

Coming: a Tool for Mining Change Pattern Instances from Git Commits

Software repositories such as Git have become a relevant source of infor...
research
10/09/2020

A Generic Approach to Detect Design Patterns in Model Transformations Using a String-Matching Algorithm

Maintaining software artifacts is among the hardest tasks an engineer fa...
research
01/18/2018

A Formalization for Specifying and Implementing Correct Pull-Stream Modules

Pull-stream is a JavaScript demand-driven functional design pattern base...
research
04/11/2019

Knitting Skeletons: A Computer-Aided Design Tool for Shaping and Patterning of Knitted Garments

This work presents a novel system for simple garment composition and sur...
research
08/16/2022

Don't Reinvent the Wheel: Towards Automatic Replacement of Custom Implementations with APIs

Reusing code is a common practice in software development: It helps deve...
research
12/04/2020

Patterns, anticipation and participatory futures

Patterns embody repeating phenomena, and, as such, they are partly but n...

Please sign up or login with your details

Forgot password? Click here to reset