Engineering Approach To Develop Software.: Systematic Collection of Past Experience
Engineering Approach To Develop Software.: Systematic Collection of Past Experience
Engineering?
Engineering approach to develop
software.
Building Construction Analogy.
Systematic collection of past
experience:
techniques,
methodologies,
guidelines.
1
Software Crisis
Software products:
fail to meet user requirements.
frequently crash.
expensive.
difficult to alter, debug, and
enhance.
often delivered late.
use resources non-optimally.
2
Factors contributing to the
software crisis
Larger problems,
Lack of adequate training in
software engineering,
Increasing skill shortage,
Low productivity improvements.
3
Programs versus Software
Products
4
Object-Oriented Design (80s)
Object-oriented technique:
natural objects (such as employees,
pay-roll-register, etc.) occurring in a
problem are first identified.
Relationships among objects:
such as composition, reference, and
inheritance are determined.
5
Evolution of Other Software
Engineering Techniques
life cycle models,
specification techniques,
project management techniques,
testing techniques,
debugging techniques,
quality assurance techniques,
software measurement techniques,
CASE tools, etc.
6
Differences between the exploratory
style and modern software
development practices
7
Differences between the exploratory
style and modern software
development practices
8
Differences between the exploratory
style and modern software
development practices (CONT.)
In exploratory style,
errors are detected only during
testing,
Now,
focus is on detecting as many
errors as possible in each phase
of development.
9
Differences between the exploratory
style and modern software
development practices (CONT.)
During all stages of development
process:
Periodic reviews are being carried out
Software testing has become
systematic:
standard testing techniques are
available.
10
Differences between the exploratory
style and modern software
development practices (CONT.)
11
Life Cycle Model
A software life cycle model (or process
model):
a descriptive and diagrammatic model of
software life cycle:
identifies all the activities required for product
development,
establishes a precedence ordering among the
different activities,
Divides life cycle into phases.
12
Why Model Life Cycle ?
A written description:
forms a common understanding of
activities among the software
developers.
helps in identifying inconsistencies,
redundancies in the development
process.
13
Why Model Life Cycle ?
14
Life Cycle Model (CONT.)
15
Life Cycle Model (CONT.)
16
Life Cycle Model (CONT.)
17
Life Cycle Model (CONT.)
18
Life Cycle Model (CONT.)
19
Life Cycle Model (CONT.)