프런트엔드와 백엔드
소프트웨어 공학에서 프론트 엔드와 백엔드라는 용어는 소프트웨어의 presentation layer (프론트 엔드)과 data access layer (백엔드) 또는 물리구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미한다. 클라이언트 - 서버 모델에서 클라이언트는 일반적으로 프런트 엔드로 간주되며 서버에서 실제로 presentation 작업이 수행되는 경우에도 일반적으로 서버가 백 엔드로 간주된다.
리버스 엔지니어링
리버스 엔지니어링의 기원은 상업적 또는 군사적으로 하드웨어를 분석한 것에서 시작되었다. 목적은 원본 생산의 절차에 관한 지식이 거의 없는 상태에서, 최종 제품을 가지고 디자인 결정과정을 추론하는 것이다. 같은 기술이 레거시 소프트웨어 시스템을 응용하기 위해 현재 연구되고 있는데, 산업이나 국방이 아니고, 오류, 미완성, 접근 불가인 문서를 수정하기 위함이다.소프트웨어 리버스 엔지니어링을 위해 IDA Pro나 OllyDbg 등의 도구들이 사용된다. 이 도구들은 어셈블리 언어들을 분석하기 쉽게 하도록 분석하는 기능과 코드를 변형하는 기능등을 제공한다.