Software engineering is an engineering discipline that is concerned with all aspects of software production.
Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.
The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution.
Methods are organised ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines.
Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues.
Professional societies publish codes of conduct which set out the standards of behaviour expected of their members.
The first reference to the term "Software Engineering" was in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the perceived "software crisis" at the time.
Software development, a much used and more generic term, does not necessarily subsume the engineering paradigm. The generally accepted concepts of Software Engineering as an engineering discipline have been specified in the Guide to the Software Engineering Body of Knowledge (SWEBOK).
The SWEBOK has become an internationally accepted standard ISO/IEC TR 19759:2005.