Pattern-oriented software architecture for dummies