Bell, Douglas. Software Engineering: A Programming Approach. Vol. 3. Addison-Wesley, 2000.