In software engineering, the terms frontend and backend refer to the separation of concerns between the presentation layer (frontend) and the data access layer (backend) of a piece of software, or physical infrastructure or hardware. In the client-server model, the client is usually considered the frontend and the server is usually considered the backend, even if some presentation work is actually done on the server itself.