Training Software Engineers for Qualitative Evaluation of Software Architecture

by   Ritu Kapur, et al.

A software architect uses quality requirements to design the architecture of a system. However, it is essential to ensure that the system's final architectural design achieves the standard quality requirements. The existing architectural evaluation frameworks require basic skills and experience for practical usage, which novice software architects lack. We propose a framework that enables novice software architects to infer the system's quality requirements and tactics using the software architectural block-line diagram. The framework takes an image as input, extracts various components and connections, and maps them to viable architectural patterns, followed by identifying the system's corresponding quality attributes (QAs) and tactics. The framework includes a specifically trained machine learning model based on image processing and semantic similarity methods to assist software architects in evaluating a given design by a) evaluating an input architectural design based on the architectural patterns present in it, b) lists out the strengths and weaknesses of the design in terms of QAs, c) recommends the necessary architectural tactics that can be embedded in the design to achieve the lacking QAs. To train our framework, we developed a dataset of 2,035 architectural images from fourteen architectural patterns such as Client-Server, Microservices, and Model View Controller, available at The framework achieves a Correct Recognition Rate of 98.71 We evaluated the proposed framework's effectiveness and usefulness by using controlled and experimental groups, in which the experimental group performed approximately 150 performed as a part of the Masters of Computer Science course in an Engineering Institution.


page 1

page 2

page 3

page 4


Where and What do Software Architects blog? An Exploratory Study on Architectural Knowledge in Blogs, and their Relevance to Design Steps

Software engineers share their architectural knowledge (AK) in different...

Capturing Software Architecture Knowledge for Pattern-Driven Design

Context: Software architecture is a knowledge-intensive field. One mecha...

Design techniques for a seamless information system architecture

The paper discusses design techniques for a seamless architecture of inf...

A Threat Modeling Framework for Evaluating Computing Platforms Against Architectural Attacks

software component misuse a privileged relationship with the hardware to...

A Qualitative Study of Architectural Design Issues in DevOps

Software architecture is critical in succeeding with DevOps. However, de...

APR: Architectural Pattern Recommender

This paper proposes Architectural Pattern Recommender (APR) system which...

Synergizing Domain Expertise with Self-Awareness in Software Systems: A Patternized Architecture Guideline

Architectural patterns provide a reusable architectural solution for com...

Please sign up or login with your details

Forgot password? Click here to reset