J.M. Armstrong
R.J. Mitchell
University of Newcastle upon Tyne. 1993
For several years software engineers have debated the impact that inheritance mechanisms have on software development. Inheritance can be ignored until coding begins, or it can be used early during analysis to model conceptual abstractions: specifically, IS A relations between classes of entity in a problem domain. Unfortunately, the conceptual structuring relevant to analysis can conflict with the maximization of code reuse. This paper discusses ways of managing this conflict. We review the basic facilities provided by inheritance mechanisms and survey the kinds of things for which they are currently used. We then turn to the issue of legitimating these techniques and make suggestions. The paper concludes with a tentative proposal for the future development of more powerful inheritance mechanisms.