A system that evolves over time is called a complex system. Software is also a complex system, in the sense that it evolves over a period of time. To efficiently develop such software, we need a software process model that can handle evolutionary changes. Clearly conventional software models like the linear sequential model aren't enough, so we have evolutionary software process models. The key factor in these types of models is that they are iterative. Evolutionary software process models are well suited for the development of object oriented systems.
In this articles we will be discussing the following evolutionary software process models:
1. The Incremental model
2. The Spiral model
3. The WINWIN Spiral model
4. The Concurrent Development model
The Incremental model:
This model combines the concepts of the linear model with the concept of iteration. It delivers the software in small parts called "increments." The first increment is called the "core product." It is the basic product meeting the requirements without any added frills. The successive increments then add to the functionality of the product.
For example, in a security suite, the core product may include an anti-virus, a firewall and an encryption tool. The next increment could add a spyware removal tool. The next could add a
SPAM blocker and documentation, and so on. The incremental model is particularly useful in the case of tight deadlines. It is also used when human resource is a constraint.
The Spiral model:
The spiral model is similar to the incremental model, in the sense that it also combines the elements of the linear model with iteration. But the graphical representation is of a spiral nature and is divided into a number of framework activities called task regions.
Common task regions include:
(1) Customer communication
(2) Planning
(3) Risk analysis
(4) Engineering
(5) Construction and release
(6) Customer evaluation
Each task region in turn consists of a number of task sets. The advantage of this type of model is that both the developer and the customer are better able to understand the concept of software evolution, thus leading to a better final product. The disadvantage of such a model is that it requires expertise in the field of risk assessment for the project to be successful.
The WINWIN Spiral model:
This model is similar to the above mentioned spiral model except that in this, instead of a single customer communication activity, three sub-activities are derived, these being:
(i) Identification of stakeholders
(ii) Determination of their 'win' condition
(iii) Negotiation
Negotiation is the key here. Successful negotiation results in the "win" for both parties - the customer and the development team. Both try to maintain a balance between functionality and ease of development. In addition, during the process, there are three milestones called anchor points:
(1) Life cycle objectives
(2) Life cycle architecture
(3) Initial operational capability
The Concurrent Development model:
It is also sometimes called "Concurrent Engineering." It consists of the technical activities, tasks and their associated states. This model defines the events that generate transition from one development state to the next. The various states are as follows:
(1) Under development
(2) Under review
(3) Awaiting changes
(4) Under revision
(5) Baselined
(6) Done
This model is often used in the development of client/server applications.
This article was originally published by CyberArmy.net in the CyberArmy Library.
|
|