While developing the software systems, it is often needed to make modifications in earlier development phases or the tasks sets. If the development process is linear or in a straight line from requirements gathering to deployment then the end product will be unrealistic. In such cases, the iterative approach needs to be adopted. The evolutionary process model is iterative model.
Prototyping
- In prototyping model initially the requirement gathering is done.
- Developer and customer define overall objectives; identify areas needing more requirement gathering.
- Then a quick design is prepared. This design represents what will be visible to user in input and output format.
- From the quick design a prototype is prepared. Customer or user evaluates the prototype in order to refine the requirements. Iterative prototype is tuned for satisfying customer requirements. Thus prototype is important to identify the software requirement.
- When working prototype is built, developer use existing program fragments or program generators to throw away the prototype and rebuild the system to high quality.
- Certain classes of mathematical algorithms, subset of command driven systems and other application where results can be easily examined with out real time interaction can be developed using prototyping paradigm
When to choose it?
- Software application that are relatively easy to prototype almost always involve human machine Interaction the prototyping model is suggested.
- A general objective of software is defined but not detailed input, processing or output requirements. Then in such a case prototyping model is suggested.
- When the developer is unsure of the efficiency of an algorithm or the adaptability of an operating system then prototype serves as a better choice.
- In the first version itself, customer often wants "few fixes" rather than rebuilding of the system whereas rebuilding of new system maintains high level of quality.
- The first version may have some compromises.
- Sometimes developer may make implementation compromises to get prototype working quickly. Later on developer may become comfortable with compromises and forget why they are inappropriate.
- This model possess the iterative nature of prototyping model and controlled and systematic approaches of the linear sequential model.
- This model gives efficient development of incremental versions of software. In this model, the software is developed in series of increments.
- The spiral model is divided into a number of framework activities. These framework activities are denoted by task regions.
- Usually there are six tasks regions.
- Spiral model is realistic approach to development of large-scale systems and software. Because customer and developer better understand the problem statement at each evolutionary level. Also risks can be identified or rectified at each such level.
- In the initial pass, product specification is built and in subsequent passes around the spiral the prototype gets developed and then more improved versions of software gets developed.
- During planning phase, the cost and schedule of software can be planned and adjusted based on feedback obtained from customer evaluation.
- In spiral model, project entry point axis is defined. This axis represents starting point for different types of projects.
For instance, concept development project will start at core of spiral and will continue along the spiral path. If the concept has to be developed into actual project then at entry point 2 the product development process starts. Hence entry point 2 is called product development project entry point. The development of the project can be carried out in iterations.
- The task regions can be described as:
- Customer Communication - In this region, it is suggested to establish customer communication.
- Planning - All planning activities are carried out in order to define resources time line and other project related activities.
- Risk analysis - The tasks required to calculate technical and management risks are carried out.
- Engineering - In this task region, tasks required to build one or more representations of applications are carried out.
- Construct and release - All the necessary tasks required to construct, test, install the application are conducted. Some tasks that are required to provide user support are also carried out in this task region.
- Customer Evaluation - Customer's feedback is obtained and based on customer evaluation required tasks are performed and implemented at installation stage.
- In each region, number of work tasks are carried out depending upon the characteristics of project. For a small project relatively small number of work tasks are adopted but for a complex project large number of work tasks can be carried out.
- In spiral model, the software engineering team moves around the spiral in a clockwise direction beginning at the core.
Advantages of spiral model
- Requirement changes can be made at every stage.
- Risks can be identified and rectified before they get problematic.
- It is based on customer communication. If the communication is not proper the the software product that gets developed will not be up to the mark.
- It demands considerable risk assessment. If the risk assessment is done properly then only the successful product can be obtained.
When to choose it?
- When the prototypes for the software functionality are needed.
- When requirements are not very clearly defined or complex.
- When the large or high budget projects need to be developed.
- When the risk assessment is very critical and essential.
- When project is not expected within a specific limited time span.
Concurrent Development Model
- The concurrent development model is also called as concurrent engineering.
- In this model, the framework activities or software development tasks are represented as states.
- The modeling or designing phase of software development can be in one of the states like under development, waiting for modulation, under revision or under review and so on.
- All the software developments activities exist concurrently in this model but these activities can be in various states.
- These states make transitions. That is during modeling, the transition from under development state to waiting for modification state occurs.
- This model basically defines the series of events due to which the transition from one state to another state occurs. This is called triggering. These series of events occur for every software development activity, action or task.
- This model defines various activities that occur concurrently and a network of activities is defined.
- All types of software development can be done using concurrent development model.
- This model provides accurate picture of current of project.
- Each activity or task can be carried out concurrently. Hence this model is an efficient process model
Post Your comments,Views and thoughts Here, Give Us Time To Respond Your Queries