sad
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sad [2014/01/22 07:46] – yann | sad [2025/01/15 21:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 24: | Line 24: | ||
| | SwissArmyKnife | A complex class that offers a high number of services, for example, a complex class implementing a high number of interfaces. A Swiss Army Knife is different from a Blob, 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. | | | SwissArmyKnife | A complex class that offers a high number of services, for example, a complex class implementing a high number of interfaces. A Swiss Army Knife is different from a Blob, 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 | A class that inherits from a large parent class but that provides little behaviour and without subclasses. | | | TraditionBreaker | A class that inherits from a large parent class but that provides little behaviour and without subclasses. | | ||
| + | |||
| + | ===== Anti-patterns Generation ===== | ||
| + | |||
| + | The generation of code and design smell identification algorithms is straightforward. Class '' | ||
| ===== Anti-patterns Identification ===== | ===== Anti-patterns Identification ===== | ||
| + | Identifying code and design smells using PADL is made easy by the helper class '' | ||
| + | |||
| + | SAD requires [[POM]] to compute various metrics involved in the definitions of the code and design smells. These metrics are referenced by name in the rule cards, for example: | ||
| + | |||
| + | < | ||
| + | RULE_CARD : ComplexClass { | ||
| + | RULE : ComplexClass { UNION LargeClassOnly ComplexClassOnly } ; | ||
| + | RULE : LargeClassOnly { (METRIC: NMD + NAD, VERY_HIGH, 0) } ; | ||
| + | RULE : ComplexClassOnly { (METRIC: McCabe, VERY_HIGH, 20) } ; | ||
| + | }; | ||
| + | </ | ||
sad.1390376810.txt.gz · Last modified: (external edit)
