This shows you the differences between two versions of the page.
sad [2014/01/22 07:27] yann |
sad [2017/09/06 01:54] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== SAD ====== | ||
- | |||
- | 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 [[http://www.ptidej.net/publications/Author/MOHA-N.php|Moha, Guéhéneuc, Duchien, and Le Meur]] and can be used as reference. | ||
- | |||
- | ===== Anti-patterns Definition ===== | ||
- | |||
- | ^ Names ^ Definitions ^ | ||
- | | AntiSingleton | | | ||
- | | BaseClassKnowsDerivedClass || | ||
- | | BaseClassShouldBeAbstract || | ||
- | | 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 || | ||
- | | ComplexClass || | ||
- | | FunctionalDecomposition || | ||
- | | LargeClass || | ||
- | | LazyClass || | ||
- | | LongMethod || | ||
- | | LongParameterList || | ||
- | | ManyFieldAttributesButNotComplex || | ||
- | | MessageChains || | ||
- | | RefusedParentBequest || | ||
- | | SpaghettiCode || | ||
- | | SpeculativeGenerality || | ||
- | | SwissArmyKnife || | ||
- | | TraditionBreaker || | ||
- | |||
- | ===== Anti-patterns Identification ===== | ||