..humans organize knowledge into sets of interrelated concepts ... concepts can be modeled as objects quite adequately...objects can be organized into inheritance and containment hierarchies which capture the relationships between the corresponding concepts ... A domain is defined as an area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area [UML1.0], i.e. an area of expertise. ... 1. A concern is a domain used as a decomposition criterion for a system or another domain with that concern. Concerns can be used during analysis, design, implementation, and refactoring. 2. An aspect is a partial specification of a concept or a set of concepts with respect to a concern. ... The concerns used in decomposition should yield aspects which are loosely coupled, (nearly) orthogonal, and highly declarative.
At the end of the paper a table compares different domain engineering technologies. (Beyond Objects: Generative Programming, Czarnecki, Eisenecker, and Steyaert)