Software design - Braude, Eric J.
UML (the Unified Modeling Language), design patterns, and software component technologies are three new advances that help software engineers create more efficient and effective software designs