컴퓨터 과학 분야에서는 엔진이라는 용어를 사용하여 일반적인 소프트웨어 모듈(예: 위에서 언급한 라이브러리, SDK 또는 객체)보다 더 복잡한 규모의 소프트웨어 구성요소의 정신 모델을 제공한다. 소프트웨어 모듈은 다른 모듈에 의해 요청될 때까지 정적인 상태를 유지한다. 호출에 응답하여 컴퓨터의 명령 포인터가 호출된 모듈의 코드를 추적하기 시작한다. 소프트웨어 모듈은 튜링 기계로, 이 기계에 포함된 알고리즘을 기반으로 상태를 변경한다.

이와는 대조적으로, 소프트웨어 엔진의 정신 모델은 시동과 정지할 수 있는 기계식 엔진이며, 일정 시간 동안 공회전할 수 있다. 소프트웨어 엔진의 예로는 관계형 데이터베이스 엔진, 워크플로우 엔진, 추론 엔진 및 검색 엔진이 있다. 소프트웨어 엔진의 일반적인 특징은 엔진이 처리하는 실제 데이터의 모델을 제공하는 메타데이터이다. 소프트웨어 모듈은 데이터를 엔진에 전달하고, 엔진은 메타데이터 모델을 사용하여 데이터를 다른 상태로 변환한다.

소프트웨어 엔진의 또 다른 특징은 최적의 성능을 위해 소프트웨어 엔진을 튜닝하는 능력이다. 이와는 대조적으로 소프트웨어 모듈은 다시 작성해야만 "조정"할 수 있다.

데이터 과학에서 개발자는 스트리밍 엔진이나 헤비듀티 어플리케이션의 요구사항인 데이터를 변환하는 데이터 변환 엔진과 같은 데이터 서비스 엔진을 사용할 수 있다.

여러 엔진 예로는 오디오, 비디오, 이미지 헤비 프로세싱 엔진과 많은 시각적 최적화가 필요한 할리우드 영화의 전문 독점 렌더링 엔진이 있고, 바니쉬 엔진과 같은 API로 이루어진 엔진도 존재한다.
호출에 의해 동적인 상태로 변환되는 소프트웨어 구성요소는?
소프트웨어 모듈