A UML Pattern Language (The Mtp Software Engineering Series)