Pattern-Oriented Software