A software component that encapsulates a system component (a procedure, a program,
a file, an API) in order to transform its interface with its environment. For
instance, a wrapper associated with a legacy program can give the latter an objectoriented
interface.