About software architecture and patterns