Pattern-Oriented Software Architecture For Dummies