Computer
Software engineering is an engineering approach to software development.[1][2][3] 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.[4]
A software engineer applies a software development process,[1][5] which involves defining, implementing, testing, managing, and maintaining software systems and, creating and modifying the development process.