Abstract

The new era of information and the needs of our society require continuous change in software and technology. Changes are produced very quickly and software systems require evolving at the same velocity, which implies that the decision-making process of software architectures should be (semi-)automated to satisfy changing needs and to avoid wrong decisions. This issue is critical since suboptimal architecture design decisions may lead to high cost and poor software quality. Therefore, systematic and (semi-)automated mechanisms that help software architects during the decision-making process are required. Architectural patterns are one of the most important features of software applications, but the same pattern can be implemented in different ways, leaving to results of different quality. When an application requires to evolve, knowledge extracted from similar applications is useful for driving decisions, since quality pattern implementations can be reproduced in similar applications to improve specific quality attributes. Therefore, clustering methods are especially suitable for classifying similar pattern implementations. In this paper, we apply a novel unsupervised clustering technique, based on the well-known artificial neural network model Self-Organizing Maps, to classify Model-View-Controller (MVC) pattern from a quality point of view. Software quality is analyzed by 24 metrics organized into the categories of Count/Size, Maintainability, Duplications, Complexity, and Design Quality. The main goal of this work is twofold: to identify the quality features that establish the similarity of MVC applications without software architect bias, and to classify MVC applications by means of Self-Organizing Maps based on quality metrics. To that end, this work performs an exploratory study by conducting two analyses with a dataset of 87 Java MVC applications characterized by the 24 metrics and two attributes that describe the technology dimension of the application. The stated findings provide a knowledge base that can help in the decision-making process for the architecture of Java MVC applications.

Highlights

  • Nowadays, software evolution is a critical aspect of software engineering today [1], [2], since changes are continuous and they have to be performed very quickly due to the trend of software companies adopting agile methodologies [3] or DevOps [4], [5], or caused by new business and technology market requirements

  • The decision-making process is the main driver of the software architecture design [6], since software architectures are conceived as a set of design decisions (DD) [7]

  • We address a new domain of application of self-organizing maps (SOM), software engineering, and in particular software architectures

Read more

Summary

Introduction

Software evolution is a critical aspect of software engineering today [1], [2], since changes are continuous and they have to be performed very quickly due to the trend of software companies adopting agile methodologies [3] or DevOps [4], [5], or caused by new business and technology market requirements This scenario implies that the decision-making process should be automated in order to satisfy changing needs and to avoid wrong decisions. Criteria or contexts affect the architecture style, patterns, technologies or implementations and different combinations thereof lead to differences in software architecture quality This fact makes the architecture decision-making process a multi-criteria decision problem with the goal of improving certain quality attributes [8]. The architectural reasoning led by DD knowledge supports software architects to make better requirement-driven decisions about evolution [28]–[30]

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call