what is the difference between includes and extends?
Include, one cannot live without the other. The use case must include another use case. For example when you create an order you always must verify name etc.
Extend, one can live without the other only some instances the use case will extend to another use case to do some stuff. For example, you can create an order but if the order is for a new customer you possible have to do additional check which you do not have to do for existing customers. In that case you can have an extend use case.
Hope this helps.
I totally agree with.
Just to add difference in one line. Include relation-ship is mandatory and extend is an optional.
Sometimes extend relation-ship is also used when already there exists a use case and there is some change request for it. So rather than changing the existing use case, some extension points are identified and new use case is written to provide the new functionality. This is again very rare depending upon the requirement.