Software processes are
complex and, like all intellectual and creative processes, rely on people
making decisions and judgements. Because of the need
for judgement and creativity, attempts to automate software processes have met
with limited success.
Computer-aided
software engineering (CASE) tools can support some process activities. However, there is no
possibility, at least in the next few years, of more extensive automation where
software takes over creative design from the engineers involved in the software
process.
Although there are
many software processes, some fundamental activities are common to all software
processes:
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.
We at Odyssey a
software development company based in Delhi and professional programming
website feels that one reason the effectiveness of CASE tools is limited is
because of the immense diversity of software processes.
There is no ideal
process, and many organisations have developed their own approach to software
development. Processes have evolved
to exploit the capabilities of the people in an organisation and the specific
characteristics of the systems that are being developed. For some systems, such
as critical systems, a very structured development process is required. For
business systems, with rapidly changing requirements, a flexible, agile process
is likely to be more effective.