Friday, May 16, 2008

Five Point Agenda for Software Development

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.

No comments: