Change detection is a common operation/module in remote sensing packages like ENVI or Orfeo toolbox. It usually involves raster data (satellite images for example).
How is the comparison done? With what tools? I feel that the
description is not complete. Or something is missing.
Change detection is done by comparing two raster images that were taken at different times but which cover the same area. As the images cover the same area, the images overlay each other. Imagine two grids stacked on top of each other.
It is then a matter of comparing whether the value of a pixel in the new raster is the same as the value of the pixel in the old raster. Pixels that have changed are then marked. The output is usually a raster that covers the same extents as the two images with the changed areas highlighted. It's a simplification of course but you get the idea :)
Where or in which books can I find more information about Change
Detection?
You can start with these documents
What tools should I use to perform such an analysis using the data in a shapefile? (only open-source please)
You can try out Opticks. It has a change detection plugin.
This is an interesting problem. I think that you should give a bit more details about the kind of changes you are looking for.
If you are going to work on "unsupervised" change detection, not having common bands may be a problem. However, I think that the MSS has some bands in common with the other sensors. You can manually select common bands and work on their multivariate difference to detect changes. An histogram match between them may be necessary to have the no change distribution at 0 mean distribution. Or at least subtract the mean from both images should help.
Otherwise, you can compute NDVI from each image and compare again their difference. You don't need to train a classifier for that, but just compute a normalized difference between the NIR and Red channels. This should give some information about the vegetation changes, not sure about other kind of changes.
Ideally, you can stack the difference of the NDVI to the difference in common spectral channels, run a clustering algorithm on the stack of differences and manually intepret each cluster spatially.
Another solution is to obtain a land cover classification map from each image by training a supervised classifier (for instance using the MLC as you mentioned) and then compare the map layers to obtain a transition matrix and map. However, this is prone to errors, since classification maps are obtained independently and temporal dependencies completely disregarded.
If you are not restricted to the ArcGIS environment but you can implement your own code, there exist some very interesting method that allow to transform the images prior to change detection. Their transformation maps the images into comparable spaces, and you can perform change detection in that space. In this case, reflectance values are transformed into a unitless value, but if you aim at obtaining a simple change map, this should not be a problem. One of these approach is called Multivariate Alteration Detection, by AA Nielsen and M Canty. The method works pretty well, in particular if the input images are too spectrally dissimilar. And it is supereasy to implement (basically 5 lines of matlab). I think Nielsen also provide codes for that on its personal webpage. There also exist some more complex extensions. EDIT yes they do http://www.imm.dtu.dk/~alan/software.html
Best Answer
The general name for the operation that will allow you to compare two classified images is cross tabulation or what is sometimes called a contingency table. This will allow you to calculate change in class values. In the SAGA toolbox of QGIS there is a tool called Cross-classification and tabulation that will perform this operation.