A Notation for Component-Based Design of Java Applications