프런트엔드와 백엔드
소프트웨어 공학에서 프론트 엔드와 백엔드라는 용어는 소프트웨어의 presentation layer (프론트 엔드)과 data access layer (백엔드) 또는 물리구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미한다. 클라이언트 - 서버 모델에서 클라이언트는 일반적으로 프런트 엔드로 간주되며 서버에서 실제로 presentation 작업이 수행되는 경우에도 일반적으로 서버가 백 엔드로 간주된다.
소프트웨어 설계
소프트웨어 설계(Software design)는 소프트웨어 해결책을 위한 문제해결과 계획 과정이다. 소프트웨어의 목적과 명세가 결정되면 개발자가 설계 하거나 설계자를 고용하여 해결책을 위한 계획을 개발하도록 한다. 저수준 요소와 알고리즘 구현 문제, 그리고 구조에 대한 조망이 포함된다.