object PersonRecord components: Name and Age and Address; description: (* The PersonRecord class contains components that are common to all personnel in the database. *); end PersonRecord; object StaffEmployee extends PersonRecord components: HourlyWage and EmploymentStatus; operations: ; description: (* A StaffEmployee is distinguished by HourlyWage and EmploymentStatus components. *); end StaffEmployee; object SalariedEmployee extends PersonRecord components: Salary and Step; end SalariedEmployee; object Programmer extends SalariedEmployee description: (* A Programmer is now just an extends SalariedEmployee, from which in inherits components Salary and Step components. *); end Programmer; object Manager extends SalariedEmployee components: Supervisees; description: (* A Manager inherits Salary and Step components. It specializes with Supervisees. *); end Manager; object Supervisees components: (StaffEmployee or SalariedEmployee)*; description: (* This is the list of people that a manager supervises. *); end Supervisees;