8.3 “Good” Design Attributes

We all agree that design is an important activity and should be given ample time and attention so that we can develop a good design. But what are the characteristics of a good design? Immediately, we can hear ourselves throw out some of the following popular terms:

  • Easy to understand

  • Easy to change

  • Easy to reuse

  • Easy to test

  • Easy to integrate

  • Easy to code

In our discussions earlier in this chapter describing Halstead, McCabe, Henry-Kafura, and Card and Glass metrics, we alluded to intramodular and intermodular complexities as a factor that relates to software quality. Is there some more fundamental way to characterize a good design besides listing the different “easy to _____” items? They themselves may not be the ...

Get Essentials of Software Engineering, 5th Edition 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.