Chapter 8. Behavioral Modeling
Allocating responsibilities to our classes may be the single most important activity we perform as developers.
In the previous chapter, we identified some high-level classes and packages that compose our system. However, we didn't identify any of the class responsibilities. Behavioral modeling is the process of allocating responsibilities to these classes. It's the most important activity we perform throughout the lifecycle because the behavior dictates our system's structure.
Unfortunately, many development efforts tend to move directly from requirements to structural modeling, skipping the modeling of behavior. This approach is flawed because we haven't consciously determined the responsibilities of our classes. ...