'
Interactions between objects are too often coded in the way messages are exchanged and methods are called, making it difficult to understand and evolve the way components are interconnected without a deeper analysis of the way objects are designed. Yet, most businesses require high levels of reconfigurability of existing services, which suggests that an explicit model of the coordination that is required between system components should be given immediately during domain modeling.
Capitalizing on work in Software Architectures and Coordination Languages, and our experience in the banking industry, this tutorial puts forward the concept of contracts for providing explicit representations of interconnections between objects. Participants will be exposed to a new modeling primitive (contract) that has proved to be highly effective for controlling the complexity of system design and evolution. They will learn how to use it to externalize embedded coordination directives, ending-up with systems that can evolve simply by adding, removing, or replacing interconnections without having to change the other components.
Because the concept is intrinsically language-independent, and an implementation pattern is provided, attendees will be able to put it to practice immediately in their working environments.'