A software engine is a core component of a complex software system. The word "engine" is a metaphor of a car's engine. Thus a software engine is a complex subsystem; not unlike how a car engine functions. Software engines work in conjunction with other components of a process or system. They typically have an input and an output, and the productivity is usually linear to running speed.
There is no formal guideline for what should be called an engine, but the term has become widespread in the software industry. [1] [2] [3]
In different contexts, software engines can mean different things.