The roles of inheritance in software development. - James Matthew Armstrong (1991)