Object oriented programming in Eiffel - Thomas, Pete (Addison-Wesley, 1997)