Chapter 1
Object-Oriented Design
In software development, design is often considered the step that comes before programming. This isn’t true; in reality, analysis, programming, and design tend to overlap, combine, and interweave. Throughout this book, we’ll be covering a mixture of design and programming issues without trying to parse the two into separate buckets. One of the advantages of a language such as Python is its ability to express the design clearly.
In this chapter, we will talk a little about how we can move from a good idea toward writing software. We’ll create some design artifacts — such as diagrams — that can help clarify our thinking before we start writing code. We’ll cover the following topics:
-
What object-oriented means
-
The difference between object-oriented design and object-oriented programming
-
Some basic principles of object-oriented design
-
Basic Unified Modeling Language (UML) and when it isn’t evil