PHASES OF
SOFTWARE DEVELOPMENT:
Note:
If analysis and design done properly, modification and maintenance require less
effort. The success of the software project depends upon the efficiency of
analysis and design phase.
Since software is abstract in nature, there are
very few rules for development. In most of the cases we have only guidelines.
To develop efficient software we required a lot of planning activities. Software
development is multi-step and group activity.
Following are the major steps used in software
development:
I.
Problem definition
II.
Analysis
III.
Design
IV.
Coding
V.
Testing and Debugging
VI.
Implementation
VII.
Modification & Maintenance
It is called “System Development Life Cycle” (SDLC)
model of software development. It also called water-fall model.
I.
Problem Definition – The problem is
precisely defined first then domain of the problem is fixed. So two things are
to be decided in problem definition phase:
(a) What is to be done?
(b) How much is to be done?
The definition can be decided. The
definition is the brief description of the problem.
II.
Analysis
– The main task of analysis phase is “information gathering”. The detail
information of the domain for which we are developing the software is
collected.
It
may require following activities-
(a) Interviewing the person involved.
(b) Question / Answer.
(c) Documents
reading.
(d) Observation monitoring etc.
Every
information is kept in writing. Moreover, above information is converted in to
more formal, figurative of diagrammatic approach.
The
tools are:
·
ER Diagram [Entity Relationship Diagram].
·
Data Flow Diagram [D. F. D.].
·
Condition table.
·
System flow chart.
Where:
o
ER Diagram represents various entities involved
in the system and their inter-relationship.
o
Data Flow Diagram represents data-stores and
flow of data from one store to another.
o
Condition table represents various conditions
and their associative actions in the form of two-dimensional matrix.
o
Flow chart represents major step to be perform.
III.
Design –
The designing process, we define the steps to be performed. In analysis, the
major activity is of modularization. It means the breaking of big tasks into
smaller one. The breaking process continues till the maintainable module is
reached. In modulation the related steps are kept together and independent
steps are separated.
Another important task is database
designing. It requires normalization, key selection decision, functional
dependences etc. The database is the most important part for the user because
the complete data is kept in the database. The database requires proper backup
and recovery techniques.
IV.
Coding –
The programming environment is selected according to the requirement. We convert tools prepared in the analysis
and design phase into the programming language. Coding requires less expertise
and less experience as compare to analysis and design.
V.
Testing
and Debugging – Testing is to identify errors in our program. Debugging
means:
·
To identify the position of errors.
·
To remove the error.
The
testing is done on the basis of already available input an manually processed
output data. We have the old input and corresponding output. The input data is
fed in our software. Its output is compared with the output available. If there
is a mismatch, there are errors in our program.
Now
test cases are prepared to find out the errors. The test cases should be such
that, they should be able to exploit each and every path in the flow diagram.
The position of errors is identified. The errors should be removed in such a
way, so that further errors are not introduced.
Note: Testing is the most uncertain phase from
the point of view of effort and time.
·
If
analysis and design is proper, testing requires less time and efforts.
·
Testing
only show the present of defects it does not show the absence of defects.
VI.
Implementation
– The software prepared at developer site is installed at client site. The
developer should keep in1 mind the hardware and software configuration at the
client site.
VII.
Modification
and Maintenance – Some uncovered errors are reported by the user. These
errors must be removed. Moreover, there are changes in the user’s working
environment. The user requests the changes in the software according to his
changing needs. The developer modifies the software.
No comments:
Post a Comment