Preventing Architectural Degradation in Model-Template-View Applications through Design Problems Detection
Software Architecture, Architectural Pattern, Design Problem, Django, Model-Template-View, SUAP.
The software architecture represents a set of design decisions, often taken before implementing the system, with the goal of achieving desired levels of software quality attributes. An architectural pattern provides a set of specific design decisions applicable to recurrent design problems. Violating these decisions may not only hinder quality attributes, but it may also lead to architectural degradation. The Model-Template-View (MTV) pattern implemented by the Django framework has a set of decisions that promote low coupling and rigorous separation between the parts of an application. However, during the evoution of an applicatoin, design decision may be violated. This way, we investiigate the detection of design problems related to the MTV pattern with the goal of aiding the prevention of architectural degradation in MTV applications. The main contributions of this work are the elaboration of a catalogue of MTV-specific design problems e the implementation of tool for statically detecting these violations. The catalogue and the tool were validated in the context of the Sistema Unificado de Administração Pública (SUAP) developed and maintained by the Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte – IFRN.