O'Reilly logo

Essential Skills for the Agile Developer: A Guide to Better Programming and Design by Amir Kolsky, Ken Pugh, Scott Bain, Alan Shalloway

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required