Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed ArchitecturesNeal Ford5