jQAssistant: A QA Tool for Definition and Validation of Software Architecture Rules

Ulm University

BA Abschlussvortrag, Robien Baldrich, Ort: O27/545, Datum: 18.12.2018, Zeit: 11:00 Uhr

One main problem in software development is technical debt, meaning anything that delays or stops development. This is often caused by imprecise or missing software architecture. Static software architecture defines not only a project’s structure, but also relationships and responsibilities of the structural elements. While many approaches exist for documenting static software architecture, there is no formalised and standardised technique to do it. With continously growing and aging software, code can become confusing and turn into a big ball of mud, straying from the defined architecture. Although many approaches to correct this problem have been made, there is still a need for an automatised process to check for derivations and cyclic dependencies. The jQAssistant a QA tool for defintion and validation of software architecture, is one approach to fullfill
the need for automatised compliance checking. This thesis focuses on two parts: the definition of static software architecture rules and the automatised compliance check from the start of development. The documentation shall be easily accessible, human readable and also flexible for adjustments. Because
of the abundance of different project structures, this thesis focuses on an
exemplary Java web application. Using custom annotations, the architecture is integrated within the code, using predefined and application based annotations. The automatised compliance check is accomplished with jQAssistant.