The world cannot operate without software. Industries are controlled by software systems, as the functioning of financial systems, scientific labs, infrastructures and utilities, games, film, television, and so on depend on it. A software is a computer program along with the associated documents and the configuration data that make these programs operate correctly.
Software engineering is an engineering discipline that is applied to the development of software in a systematic approach (called a software process). It is the application of theories, methods, and tools to design build a software that meets the specifications efficiently, cost-effectively, and ensuring quality.
It is not only concerned with the technical process of building a software, it also includes activities to manage the project, develop tools, methods and theories that support the software production. Different methods and techniques of software engineering are appropriate for different types of systems. For example, games should be developed using series of prototypes, while critical control systems require a complete analyzable specification to be developed.
The job of a software engineer is difficult. It has to maintain balance between different people involved, such as:
Users don’t know what to expect exactly from the software. The concern is always about the ease of use and response time.
Developers are more technically inclined people so they think more of database terms, Design and functionality, etc.
They are concerned with return on their
investment, and meeting the schedule.