Goals: Maximize the reusability and the correctness of the code by using consolidated patterns

Target: Developers with a good knowledge of an object oriented language