A software component that adds a specific feature to an existing computer program.