The software landscape: a visual formalism for programming-in-the-large