The economies of all developed nations are dependent on software. More and more systems are controlled by software. Software engineering is concerned with theories, methods and tools for professional software development. Software engineering is an engineering discipline which is concerned with all aspects of software production. System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process.