Software Engineering is the design of useful programs under one or both of the following conditions: 1. More than one person is involved in the construction and/or use of the program, and 2. More than one version of the program will be produced.