Software engineering is the application of engineering principles to complex product, system, and organization problems that are solved through programming.