Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed ArchitecturesMark Richards5