Object Structures: Building Object-Oriented Software Components With Eiffel (Addison-Wesley Eiffel in Practice Series)