Chapter 10. Commonality and Variability Analysis

Most people were taught to do object-oriented analysis and design by finding the nouns and verbs in their problem domain, converting the nouns to classes and the verbs to functions. Unfortunately, this approach does not work well in the real world. It inherently leads to tall class hierarchies or embedded switches/if statements.1 When building software in an iterative manner, you must learn to create and organize objects in a different manner, around the concepts that are present in your problem domain. Design patterns offer examples for doing this. Commonality-Variability Analysis offers a straightforward way to find these concepts.

In this chapter, we explore a technique that will help you identify ...

Get Essential Skills for the Agile Developer: A Guide to Better Programming and Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.