4 Good class design to build the application right
This chapter covers
- When during application development does design occur
- Designing classes well
- UML diagrams to aid class design
- The Design Specification
In chapter 3, we worked with our clients on the functional and nonfunctional requirements to make sure that we’re going to build the right application. Simple textual analysis produced our initial set of classes. In this chapter, we begin to design the classes well to make sure that we’re going to build the application right.
We learned in chapter 1 that design is a disciplined engineering approach to create a solution to a problem. For software development, that means applying good software design techniques to find the best development path to a well-designed application that meets its requirements. We saw in chapter 2 that the development path requires iterations and most likely backtracking.

This chapter discusses where application design fits within the overall development process. It covers some basic guidelines for good class design. Because most applications consist of multiple classes, we’ll also examine how the classes can relate to each other. Chapter 3 introduced UML (Unified Modeling Language) use case diagrams. To document our class design, we’ll use more of these industry-standard diagrams. Finally, a Design Specification pulls together all the design documentation for an application.