Concerns arise throughout the software lifecycle, involving formal and informal artifacts of all kinds. Some apply within individual artifacts, but many span multiple artifacts and lifecycle phases. For example, a requirement concern defined in a requirements document spans the architecture, design, code, tests and documentation that address that requirement.
Concerns generally have both intension and extension. The intension embodies the meaning, or intent, such as "the collision-avoidance feature" or "the Linux variant," and might be expressed formally as a query or predicate. Ideally, it is stable even as the software changes. The extension enumerates the software elements that pertain to the concern, which evolve as the software evolves.
![[Main Page]](/wiki/skins/common/images/AOSDWikiLogo.gif)