Software Engineering
Module-1
Software Process and Agile development
Introduction to Software Engineering
• Software engineering is an engineering
discipline that is concerned with all aspects of
software production from the early stages of
system specification through to maintaining
the system after it has gone into use.
• In this definition, there are two key phrases:
1. Engineering discipline: Engineers make things
work. They apply theories, methods, and tools
where these are appropriate.
2. All aspects of software production: Software
engineering is not just concerned with the
technical processes of software development.
Software engineering is important for two
reasons:
1. More and more, individuals and society rely
on advanced software systems. It helps users
to produce reliable and trustworthy systems
economically and quickly.
2. It is usually cheaper, in the long run, to use
software engineering methods and techniques
for software systems rather than just write the
programs as if it was a personal programming
project.
SOFTWARE PROCESSES
• A software process is a set of related activities
that leads to the production of a software
product.
• These activities may involve the development
of software from scratch in a standard
programming language like Java or C.
Contd..
4 activities that are fundamental to software engineering:
1. Software Specification: The functionality of the
software and constraints on its operation must be
defined.
2. Software Design and Implementation: The software to
meet the specification must be produced
3. Software Validation: The software must be validated
to ensure that it does what the customer wants.
4. Software Evolution: The software must evolve to meet
changing customer needs.