Paradoxes of software architecture