Design Smells Flashcards

1
Q

What is meant by the term Design Smells?

A

Design smells are certain structures in the design that indicate
violation of fundamental design principles and negatively impact design quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the different classification of design smells?

A
  • Abstraction
  • Encapsulation
  • Modularization
  • Hierarchy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Define the Principle of Abstraction

A

advocates the simplification of entities
through reduction and generalization: reduction is by elimination of
unnecessary details and generalization is by identification and
specification of common and important characteristics.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Techniques for applying the principle of Abstraction

A
  • Map Domain Entities
  • Ensure coherence and completeness
  • Avoid duplication
  • Provide a crisp conceptual boundary and a unique identity
  • Assign Single and Meaningful Responsibility
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

List the types of Abstraction Smells

A
Missing Abstraction (clumps of data, absence of classes)
Abstraction Imperative (method turned into class)
Incomplete Abstraction (does not support complementary/interrelated methods completely)
Multifaceted Abstraction (has more than one responsibility )
Unnecessary Abstraction ( unnecessary Abstraction gets introduced)
Unutilized Abstraction (Abstraction not used)
Duplicate Abstraction (identical name or implementation of abstraction)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explain the principle of Encapsulation

A

The principle of encapsulation advocates separation of concerns and
information hiding. Hiding implementation details and hiding
variations are two techniques that enable the effective application of
the principle of encapsulation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How do you enable techniques for applying the principle of encapsulation

A
  • Hide implementation details

- Hide variations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Types of Encapsulation Smells

A
  • Deficient Encapsulation : Accessibility of abstraction is more permissive than needed
  • Leaky Encapsulation : Abstraction exposes implementation details( public)
  • Missing Encapsulation : no implementation
  • Unexploited Encapsulation :
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is technical Debt?

A

• Technical debt is the debt that accrues when you knowingly or
unknowingly make wrong or non-optimal design decisions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Describe the types of technical debts

A

• Code debt: Static analysis tool violations and inconsistent coding
style.
• Design debt: Design smells and violations of design rules.
• Test debt: Lack of tests, inadequate test coverage, and improper test
design.
• Documentation debt: No documentation for important concerns,
poor documentation, and outdated documentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How do you manage technical debt?

A

• Knowledge and awareness of the concept of technical debt
• Detection of technical debt
• Repayment of technical debt
• Preventing accumulation of technical debt - by tracking monitoring and
continuous payment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly