Programming Foundations: Object-Oriented Design. - Chiu Stone, Olivia; Stone, Barron (linkedin.com, 2018)
Good software starts with great design. Get a fun and fresh introduction to object-oriented design and analysis—from defining requirements to diagramming classes.