That would be great when you use Java classes and they lived
up their promises. This would be even more amazing if you know the real purpose
of a Java class why it was used actually. So, if you agree then continue on
reading about iContract and why it is getting so popular over small time period
only.

IContract -
Specifying Class contracts to avoid guesswork

IContract design technique is mainly used to specify class
contracts in order to avoid guesswork. Java application development team
also specifies components as part of component interface. Here, you should know
about your expectations from components and what component exactly expects from
you. Practically, iContract or Design by contract (DBC) is valuable design
technique based on Java programming language.

DBC are Boolean expressions that define state of a software
system. In case, value of Boolean expression comes true then system is working
correctly. If assertions are evaluated to false, software systems are
considered broken. DBC is further divided into three major categories –
Preconditions, Post conditions, and Invariants.

·Preconditions
– It defines conditions that must hold before some method can be executed. It
also includes system state or arguments that need to pass through method.

·Postconditions
- It defines conditions that must hold once method has been executed. It also
includes state of old system, new system, method arguments and its return
value. If post conditions are not followed properly then software may return
bug.

·Invariants
– Invariants should hold conditions that must hold when object method is
invoked. They can be evaluated anytime before or after methods are executed. If
variants are not followed properly then software may return bug.