In this article, an application domain perspective is applied to softw
are reuse. An application domain is represented by a family of systems
that have some features in common and others that differentiate them.
A domain model is a problem-oriented architecture that captures the s
imilarities and variations of the family of systems that compose the a
pplication domain. Because the application domain requirements capture
the composite features of the members of the family, they are categor
ized as kernel (required by all family members) or optional (required
by some family members). It is the optional features that determine th
e characteristics of a given target system. The relationship between t
he domain requirements and the object types in the domain model are ca
ptured by means of feature/object dependencies, which define the objec
t types and prerequisite features needed to support a given feature. S
oftware architectures are reused by selecting those features required
in a target system and then tailoring the domain model, subject to the
appropriate feature/object dependencey constraints, to generate the t
arget system specification.