Lecture # 1
What is Software? And Engineering
Software is more than just a program code. A
program is an executable code, which serves some
computational purpose. Software is considered to
be collection of executable programming code,
associated libraries and documentations. Software,
when made for a specific requirement is
called software product.
Engineering on the other hand, is all about
developing products, using well-defined, scientific
principles and methods.
• Software engineering is an engineering
branch associated with development of
software product using well-defined scientific
principles, methods and procedures. The
outcome of software engineering is an
efficient and reliable software product.
Definitions
• Software engineering is the establishment and
use of sound engineering principles in order to
obtain economically software that is reliable
and work efficiently on real machines
What is the generic process model in
software development?
The generic process model is an abstraction of the
software development process. It is used in most
software since it provides a base for them.
The generic process model encompasses the
following five steps:
• Communication
• Planning
• Modelling
• Construction
• Deployment
Communication
• In this step, we communicate with the clients
and end-users.
• We discuss the requirements of the project
with the users.
• The users give suggestions on the project. If
any changes are difficult to implement, we
work on alternative ideas.
Planning
In this step, we plan the steps for project
development. After completing the final
discussion, we report on the project.
• Planning plays a key role in the software
development process.
• We discuss the risks involved in the project.
Modelling
In this step, we create a model to understand
the project in the real world. We showcase the
model to all the developers. If changes are
required, we implement them in this step.
• We develop a practical model to get a better
understanding of the project.
Construction
In this step, we follow a procedure to develop
the final product.
• If any code is required for the project
development, we implement it in this phase.
• We also test the project in this phase.
Deployment
In this phase, we submit the project to the
clients for their feedback and add any missing
requirements.
• We get the client feedback.
• Depending on the feedback form, we make
the appropriate changes.