A piece of software that enhances another software application and usually cannot be run independently.