Software engineering, known as SE, is the development, design, maintenance and documentation of software by applying practices and various technologies from fields such as computer science, engineering, application domains, project management, digital asset management and interface design.
The conception, development and verification of a software system is what software engineering is all about. It is necessary to identify, define, realize and verify the resultant softwares required characteristics. Necessary testing is required for attributes such as reliability, functionality, testability, maintainability, ease of use, availability and portability. In software engineering, software can be verified to meet these requirements by having design and technical specifications prepared and implemented correctly. The characteristics of the software development process are also important in software engineering. Development itself, development duration and risks in software development are examples of such characteristics.
A computer uses software as part of its system that allows the hardware to operate properly. Software can be system software or application software....