Software engineering is an engineering approach to software development. A practitioner, called a software engineer, applies the engineering design process to develop software. The terms programmer and coder overlap software engineer, but they imply only the construction aspect of typical software engineer workload. Wikipedia