Module 2
Module 2
INTRODUCTION TO SOFTWARE
ENGINEERING
INTRODUCTION
• Software Engineering has the objective of
solving the problems by producing good
quality, maintainable software, on time, within
budget.
• To achieve this objective, we have to focus in a
disciplined manner on both the quality of
product and the process used to develop the
product.
• Software Engineering is a systematic
approach to the design, development,
operation, and maintenance of a software
system.
Objectives of Software Engineering:
• Maintainability –
It should be feasible for the software to evolve to meet changing requirements.
• Correctness –
A software product is correct, if the different requirements as specified in the SRS document have been
correctly implemented.
• Reusability –
A software product has good reusability, if the different modules of the product can easily be reused to
develop new products.
• Testability –
Here software facilitates both the establishment of test criteria and the evaluation of the software with
respect to those criteria.
• Reliability –
It is an attribute of software quality. The extent to which a program can be expected to perform its desired
function, over an arbitrary time period.
• Portability –
In this case, software can be transferred from one computer system or environment to another.
• Adaptability –
In this case, software allows differing system constraints and user needs to be satisfied by making changes
to the software.
Definition......
• “The establishment and use of software
Engineering principles in order to obtain
economically developed software that is
reliable and works efficiently on real
machines”.
• “A discipline whose aim is the production of
quality software, software that is developed
on time, within budget, and that satisfies its
requirements”.
Program Versus Software
• Sw is more than program.
• It consists of program, documentation and
procedures used to setup and operate
software system.
Components of Sw systems..
• A program is a set of instructions which is given to a computer
in order to achieve a specific task whereas a software is when a
program is made available for commercial business and is
properly documented along with its licensing.
Software=Program+documentation+licensing.
• A program is one of the stages involved in the development of
the software, whereas a software development usually follows a
life cycle, which involves the feasibility study of the project,
requirement gathering, development of a prototype, system
design, coding and testing.
• User Interface means by which the user and a computer system
interact, in particular the use of input devices and software.
• Software product has a large no of users, it
must be properly designed, carefully
implemented and properly tested.
• Any program is a subset of software and it
becomes software only if documentation and
operating procedure manuals are prepared.
• Program consists of a set of instructions which
is a combination of source code and object
code.
List of Documentation
• Operating procedures consist of instructions
to set up and use the system and instructions
on how to meet the system failure.
Software Process
• The software process is the way in which we
produce software.
• A software process (also knows
as software methodology) is a set of related
activities that leads to the production of
the software.
• These activities may involve
the development of the software from the
scratch, or, modifying an existing system.
Why is it difficult to improve software
process
• Not enough time
• Lack of knowledge
• Wrong motivations
• Insufficient commitment
Software Characteristics
• “It doesnot wear out”.
• Behaviour and nature is quite different than
other products of human life.
The following are the characteristics of software:
• Software does not wear out.
• Software is not manufacture.
• Reusability of components.
• Flexibility of software.
• Maintainability of software.
• Portability of software.
• Reliability of Software.
Product and Process
Product:
What is delivered to the customer.
It may include source code , specification
document, manuals, other documentations
etc.
It is nothing but a set of deliverables only.
Process:
• Is the way in which we produce software.
• It is the collection of activities that lead to a
product.
• Efficient process is required to produce good
quality software.
Software Process Metrices and Product
Metrices
• Software metrices are used to quantitatively
characterise different aspects of software
process or s/w product.
• Process metrics quantify the attributes of s/w
development process and environment.
Eg:
Productivity
Quality
Failure rate
Efficiency etc
• Product metrics are measures for the s/w
product
Eg:
Size
Reliability
Complexity
functionality
Software Life Cycle Models
• A software life cycle model (also termed
process model) is a pictorial and diagrammatic
representation of the software life cycle.
• A life cycle model represents all the methods
required to make a software product transit
through its life cycle stages..
Waterfall Model
• The Waterfall Model was the first Process Model
to be introduced. It is also referred to as a linear-
sequential life cycle model. It is very simple to
understand and use. In a waterfall model, each
phase must be completed before the next phase
can begin and there is no overlapping in the
phases.
• The Waterfall model is the earliest SDLC approach
that was used for software development.
• The waterfall Model illustrates the software
development process in a linear sequential
flow.
• This means that any phase in the development
process begins only if the previous phase is
complete.
• In this waterfall model, the phases do not
overlap
Waterfall Model
Waterfall Model - Design