|
With day to day modernization, our
systems are becoming more complex in nature. It is true for software
also. Compare today’s software with the software developed 20 years
back. There is a huge difference in appearance, features, ease of
use, robustness and many more things. In our early days, normal
practices of software development with Waterfall life cycle was
followed. Intense requirement analysis followed by architectural
design, coding, testing phases and finally deployment of the product
was carried out.
This development practice had its
drawbacks. It was found that requirements were changing with the
course of time and it became difficult to make changes in the design
at later stages. Integration problems were also encountered at final
stages of the development life cycle. Due to ambiguous communication
among the user and the development team the development deviated
from the actual user requirement. The total management of the
software development process was hard to maintain.
Finally it was
realized that software development methodologies that could help to
overcome all these kinds of anomalies should be chosen. There
should be a common language that should be used for communication
among different parties. After carrying out studies in latest trends
in software engineering the strength of other methodologies for
software development was realized. Importance of CASE tools in
software management during the entire development life cycle is also
realized.
The CASE tools like
Rational Rose® are being used nowadays very effectively for software
development process. The CASE tool uses the Unified Modeling
Language (UML) for visualizing, specifying, constructing and
documenting the artifacts of a software.
The five point
agenda that most of the CASE tools recommend is discussed below.
1.
Iterative Development
The software should be developed
incrementally in an iterative fashion. Each iteration results in an
executable release. In iterative development, it is very easy to
handle requirement changes even at the later stages.
2.
Requirements Management
Requirements are
managed systematically so that finding, documenting, organizing, and
tracking a system's changing requirements becomes easy. This can be
done manually or using CASE tools.
3.
Use of
Component architecture
The component based architecture must be used to
reduce the effective size and complexity of the solution. The
reusable components not only helps in fast development of the
software but also increases robustness.
4.
Visual Modeling using UML
The modeling of the
software should be done using UML notations which helps in
visualizing, specifying, constructing, and document the structure
and behavior of a system's architecture. The use of UML keeps the
end user, software architect, software developer etc. on the same
platform. UML is the common language. Everybody must talk in UML.
5.
Continuously Verify Quality
The quality must be
verified in every iteration. It helps in the detection of
inconsistencies present in the software design.
These five points
agenda can be used in managing and controlling the entire software
development process. Practicing these guidelines enhances our
capabilities day by day.
|