software foundations volume 2