What is it?

Software engineering is a field that concerns with the design, development, testing, and maintenance of software applications. The idea is to manage the process of software development as a project, instead of letting each developer write its own code.

In other words, it’s the application of a systematic approach to software development, that is, the application of engineering to software.

Some processes are fundamental to software engineering, and should be done to every software project:

  • Specifications

    All functionality, restrictions, and scope, should be well defined before development.

  • Development

    The software needs to be developed in a way that it complies with the specifications.

  • Validation

    The software needs to be validated before shipping to the user, ensuring that it meets the user’s expectation.

  • Evolution

    The software needs to evolve to meet any changes in the requirements or needs of the user along it’s life cycle.