Knowledgebase

Separation of Concerns and Boundaries Print

  • softwareengineering, software, guide, howto, solution, zillionkinghost, hosting, support
  • 0

Dividing a system.

WHAT A CONCERN IS

One aspect of what the system does.

WHAT SEPARATION ACHIEVES

Each part can be understood, changed and tested independently.

WHERE TO DRAW BOUNDARIES

Along lines where change occurs together.

WHY

Parts that change together should be together; parts that change independently should be separate.

WHAT COUPLING IS

The degree to which parts depend on each other.

WHAT COHESION IS

The degree to which the contents of a part belong together.

WHAT TO AIM FOR

Low coupling, high cohesion.

WHAT HIGH COUPLING PRODUCES

Changes rippling across the system unpredictably.

WHAT LOW COHESION PRODUCES

Parts containing unrelated things, which nobody can name accurately.

WHAT A GOOD TEST IS

Can you describe what this part does in one sentence, without using "and"?

WHAT TO DEFINE FOR EACH BOUNDARY

A clear interface What crosses it What does not

WHAT TO ENFORCE

The boundaries, with tooling where possible.

WHY

Boundaries not enforced are eroded.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot