Software engineering is the process of analyzing user needs and designing, constructing, and testing end user applications that will satisfy some pre defined conditions.
Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product. Engineering on the other hand, is all about developing products, using welldefined, scientific principles and methods.
Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product.
Fritz Bauer, a German computer scientist, defines software engineering as:
“Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and work efficiently on real machines.”