User Tools

Site Tools


This is an old revision of the document!


SAD stands for Software Architectural Defects and is our implementation of DETEX, following the DECOR method to specify and identify occurrences of anti-patterns in PADL models. A paper introducing DETEX and DECOR has been published by Moha, Guéhéneuc, Duchien, and Le Meur and can be used as reference.

Anti-patterns Definition

Names Definitions
AntiSingleton TBD
BaseClassKnowsDerivedClass TBD
BaseClassShouldBeAbstract TBD
Blob The Blob (also called God class) corresponds to a large controller class that depends on data stored in surrounding data classes. A large class declares many fields and methods with a low cohesion. A controller class monopolises most of the processing done by a system, takes most of the decisions, and closely directs the processing of other classes. Controller classes can be identified using suspicious names such as Process, Control, Manage, System, and so on. A data class contains only data and performs no processing on these data. It is composed of highly cohesive fields and accessors.
ClassDataShouldBePrivate TBD
ComplexClass TBD

methods. |

LargeClass TBD
LazyClass TBD
LongMethod TBD
LongParameterList TBD
ManyFieldAttributesButNotComplex TBD
MessageChains TBD
RefusedParentBequest TBD

suggest procedural programming. Spaghetti Code does not exploit and prevents the use of object-orientation mechanisms, polymorphism and inheritance. |

SpeculativeGenerality TBD

because it exposes a high complexity to address all foreseeable needs of a part of a system, whereas the Blob is a singleton monopolising all processing and data of a system. Thus, several Swiss Army Knives may exist in a system, for example utility classes. |

TraditionBreaker TBD

Anti-patterns Identification

sad.1390376062.txt.gz · Last modified: 2017/09/06 01:54 (external edit)