There are so many models designed for the development of the
software systems or applications and a good tester needs to have knowledge of
every software development model in order to decide for the best development
model for building his/ her project.
Types of Software Development Models
There are so many software development
models available today like:
1. Waterfall development model
2. Spiral development model
3. Iterative and incremental development model
4. Agile development model
5. Code and fix development model
6. CMMI
7. ISO 9000
8. B – methods
9. Petri nets
10. Automated theorem proving
11. RAISE
12. VDM
13. Z notation
14. Chaos model
15. Extreme programming
16. ICONIX
17. Incremental funding technology
18. Software prototyping
19. Rational unified process
20. V model
21. Service oriented modelling
22. Evolutionary development model
23. Adaptive development model
This article has been written to discuss about the last two
development models i.e., the evolutionary model and the adaptive model of
software development. The water fall model is viable even today for the
software products whose features do not change with time.
But what about the
software applications whose features have to be redefined every now and then??
The waterfall model does not hold to be appropriate.
About Evolutionary Development Model
- Under the evolutionary
development model, the whole development cycle is broken down in to smaller
waterfall models which can be incremented and the software product is
accessible by the users when each cycle ends.
- Based on this product the users
provide their feedback based on which the development plan for the next stage
is created.
- These incremental cycles can take up to 3 – 4 weeks and continue
till the shipping of the software product.
- The business results as well as the
internal and marketing operations are also benefited by the evolutionary
development model if it is performed well.
- The best benefit of the business
being a huge reduction in the associated risks like:
- Missing scheduled deadlines
- Wrong set of features
- Poor quality
- Unusable products and so on.
- Since the whole development process is broken down in to
smaller ones, these risks become easily manageable.
- Apart from this the
evolutionary development helps in reducing the cost budget by the means of
disciplined and structured avenue for doing the experimentation.
- The
evolutionary development model has also been praised for the below mentioned
matters:
- Production of software systems
and applications that fit the market requirements and needs of the users
better.
- Early deliveries in the
marketing development.
- Facilitation of the demonstration
and the documentation.
With the constant feedback from the users in an evolutionary
development model the team members are constantly motivated and encouraged. Now
let us move to the other development model i.e., the adaptive development model
that we had to discuss.
About Adaptive Development Model
- In contrast to the evolutionary development model, the
adaptive development model consists of shorter iterations, frequent releases of
the working and useful softwares and continuous integration. - For an adaptive
software development model the agile iterative approach is followed however no
perspective set of rules has been defined.
- Instead a couple of practices and principles
have been identified.
- The adaptive development model has been inherited from
the RAP or rapid application development.
- This model is another attempt to
replace the waterfall cycle with a development process that consists of
speculative, collaborative and learning cycles.
- ASD is just the development
process and is quite dynamic so as to provide adaptation to the state of
project emergent in need.
- Below mentioned are some of its characteristics:
- Mission focused
- Feature based
- Iterative
- Time boxed
- Risk driven
- Change tolerant