Abstraction is the key to managing complexity in large software systems.