A Comparison Between Evolutionary and
Prototype Model
Aditi Thakur
Department of Computer Science, Baddi University of Emerging Sciences and Technology
ABSTRACT: In this paper, I have examined a number of
methods for describing or modelinghow software systems are developed. It begins with background and definitions of traditionalsoftware life cycle models that dominate most textbook discussions and current software development practices. Software systems come and go through a series of passages that account for their inception, initial development, productive operation, upkeep, and retirement from one generation to another.This research paper is
based on the existing research article and analysis of increment model.
Keywords: Software Management Processes, SoftwareDevelopment, Development Models, Software Development LifeCycle, Comparison between five models of Software Engineering.
1. INTRODUCTION
In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, makingthe life cyclea“multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each modulepasses through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.
Incremental model in software engineering is a one which combines the elements of waterfall model which are then
applied in an iterative manner. It basically delivers a series of releases called increments which provide progressively more functionality for the client as each increment is delivered.
The incremental build model is a method of software development where the product is designed, implemented and tested incrementally (a little more is added each time) until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements. This model combines the elements of the waterfall model with the iterative philosophy of prototyping.
2. INCREMENTAL MODEL:
In incremental model the whole requirement is divided into various builds. Multiple development cycles take place
here, making the life cycle a “multi-waterfall”
cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release.
Incremental model in software engineering is a one which combines the elements of waterfall model which are then applied in an iterative manner. It basically delivers a series of releases called increments which provide progressively more functionality for the client as each increment is delivered. In this each successive version of product is fully functioning software capable of performing more useful work then the previous version. In this initial product model or skeleton is refined into increasing levels of capability by adding new functionalities in successive version.
The incremental process models are effective the incremental build model is a method of software development where the product is designed, implemented and tested incrementally until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements.
The incremental model combines elements of the linear sequential model with the iterative philosophy of
prototyping. Referring to the fig. here, the incremental model applies linear sequences in a staggered fashion as calendar time progresses.
Incremental development deals with delivering the system broken down into increments with each increment delivering part of the required functionality, rather than a single delivery date. User requirements are prioritized and the highest priority requirements are included in early increments.
Each linear sequence produces a deliverable “increment”
of the software. For example, word-processing software developed using the incremental paradigm might deliver basic file management, editing and document production capabilities in the second increment; spelling and grammar
checking in the third increment; and advanced page layout
capability in the fourth increment.
Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
58
others unknown) remain undelivered.
As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. Once the development of an increment is underway, the requirements are frozen though requirements so that later increments can continue to evolve. Customer value can be delivered with each increment so system functionality is
available earlier in the development process. Early increments act as a prototype to help draw out requirements for later increments. This therefore results in a lower risk of overall project failure.Although this model lacks process visibility and offers poor structure to the project because of the ad-hoc manner of development, the Author would recommend this model over the Waterfall method. The Author prefers this model because of the
“Throw-away prototyping”feature of this model.
1.2 DIAGRAM OF INCREMENTAL LIFE CYCLE
MODEL:-This model combines the elements of the waterfall model with the iterative philosophy of prototyping.Increment process model are effective in situations where requirements are defined precisely and there is no
confusion about the functionality of the final product. In this after every cycle, a useable product is given to customer. These models are popular particularly when we have to quickly deliver a limited functionality system.
Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
58
others unknown) remain undelivered.
As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. Once the development of an increment is underway, the requirements are frozen though requirements so that later increments can continue to evolve. Customer value can be delivered with each increment so system functionality is
available earlier in the development process. Early increments act as a prototype to help draw out requirements for later increments. This therefore results in a lower risk of overall project failure.Although this model lacks process visibility and offers poor structure to the project because of the ad-hoc manner of development, the Author would recommend this model over the Waterfall method. The Author prefers this model because of the
“Throw-away prototyping”feature of this model.
1.2 DIAGRAM OF INCREMENTAL LIFE CYCLE
MODEL:-This model combines the elements of the waterfall model with the iterative philosophy of prototyping.Increment process model are effective in situations where requirements are defined precisely and there is no
confusion about the functionality of the final product. In this after every cycle, a useable product is given to customer. These models are popular particularly when we have to quickly deliver a limited functionality system.
Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
58
others unknown) remain undelivered.
As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. Once the development of an increment is underway, the requirements are frozen though requirements so that later increments can continue to evolve. Customer value can be delivered with each increment so system functionality is
available earlier in the development process. Early increments act as a prototype to help draw out requirements for later increments. This therefore results in a lower risk of overall project failure.Although this model lacks process visibility and offers poor structure to the project because of the ad-hoc manner of development, the Author would recommend this model over the Waterfall method. The Author prefers this model because of the
“Throw-away prototyping”feature of this model.
1.2 DIAGRAM OF INCREMENTAL LIFE CYCLE
MODEL:-This model combines the elements of the waterfall model with the iterative philosophy of prototyping.Increment process model are effective in situations where requirements are defined precisely and there is no
Incremental development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.Any difficulty in design, coding and testing a modification should signal the need for redesign or re-coding. Modifications should fit easily into isolated and easy-to-find modules. If they do not, some redesign is possibly needed.
IT’S
BASICALLY:- Then apply waterfall model into each increment.
The system put into production when first increment is delivered.
As time passes additional increments are completed and added to working system.
Phases on each increment are sequential.
Divide overall projects into number of increments
1.3 DIAGRAM (INCREMENTAL BUILD MODEL
As from the diagram you can see that there are 5 phases (tasks) which are carried out in each increment. The first increment is often a core product where the basic requirements are addressed and the supplementary features are added in the next increments. The core product is used and evaluated by the client. Once the core product is evaluated by the client there is plan development for the next increment. Thus in every increment the needs of the client are kept in mind and more features and functions are added and the core product is updated. This process continues till the complete product is produced.The increments earlier to the main increment are called as
“stripped down” versions of the final product. These increments form a base for customer evaluation. On this basis client can suggest new requirements if required.If there are less number of employees to work on theproject. Incremental development model is very useful to complete the project before the deadline. In a project early increments can be done with less number of people. In case if the core product is well-defined and understood more employees can be added if needed in the future increments. One of the benefits of Incremental process model is that it can be planned to manage technical risks.
1.3.1
MERITS:- Initial product delivery is faster.
Lower initial delivery cost.
Core product is developed first i.e. main functionality is added in the first increment.
After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration.
With each release a new feature is added to the product.
Customer can respond to feature and review the product.
Risk of changing requirement is reduced
Work load is less. Prototypes are very visual, hence no ambiguities
Generates working software quickly and early during the software life cycle.
It is easier to test and debug during a smaller iteration.In this model customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Happier customers since you help them define requirements
Flexibility in modifying requirements.
1.3.2
DEMERITS:- It is difficult to divide the problem into several functional units which can be incrementally implemented and delivered.
This model is used especially when customer prefers to receive the product is increments to be able to start using different features.
Needs good planning and design. Incremental development slices the system functionality
into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.Any difficulty in design, coding and testing a modification should signal the need for redesign or re-coding. Modifications should fit easily into isolated and easy-to-find modules. If they do not, some redesign is possibly needed.
IT’S
BASICALLY:- Then apply waterfall model into each increment.
The system put into production when first increment is delivered.
As time passes additional increments are completed and added to working system.
Phases on each increment are sequential.
Divide overall projects into number of increments
1.3 DIAGRAM (INCREMENTAL BUILD MODEL
As from the diagram you can see that there are 5 phases (tasks) which are carried out in each increment. The first increment is often a core product where the basic requirements are addressed and the supplementary features are added in the next increments. The core product is used and evaluated by the client. Once the core product is evaluated by the client there is plan development for the next increment. Thus in every increment the needs of the client are kept in mind and more features and functions are added and the core product is updated. This process continues till the complete product is produced.The increments earlier to the main increment are called as
“stripped down” versions of the final product. These increments form a base for customer evaluation. On this basis client can suggest new requirements if required.If there are less number of employees to work on theproject. Incremental development model is very useful to complete the project before the deadline. In a project early increments can be done with less number of people. In case if the core product is well-defined and understood more employees can be added if needed in the future increments. One of the benefits of Incremental process model is that it can be planned to manage technical risks.
1.3.1
MERITS:- Initial product delivery is faster.
Lower initial delivery cost.
Core product is developed first i.e. main functionality is added in the first increment.
After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration.
With each release a new feature is added to the product.
Customer can respond to feature and review the product.
Risk of changing requirement is reduced
Work load is less. Prototypes are very visual, hence no ambiguities
Generates working software quickly and early during the software life cycle.
It is easier to test and debug during a smaller iteration.In this model customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Happier customers since you help them define requirements
Flexibility in modifying requirements.
1.3.2
DEMERITS:- It is difficult to divide the problem into several functional units which can be incrementally implemented and delivered.
This model is used especially when customer prefers to receive the product is increments to be able to start using different features.
Needs good planning and design. Incremental development slices the system functionality
into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.Any difficulty in design, coding and testing a modification should signal the need for redesign or re-coding. Modifications should fit easily into isolated and easy-to-find modules. If they do not, some redesign is possibly needed.
IT’S
BASICALLY:- Then apply waterfall model into each increment.
The system put into production when first increment is delivered.
As time passes additional increments are completed and added to working system.
Phases on each increment are sequential.
Divide overall projects into number of increments
1.3 DIAGRAM (INCREMENTAL BUILD MODEL
As from the diagram you can see that there are 5 phases (tasks) which are carried out in each increment. The first increment is often a core product where the basic requirements are addressed and the supplementary features are added in the next increments. The core product is used and evaluated by the client. Once the core product is evaluated by the client there is plan development for the next increment. Thus in every increment the needs of the client are kept in mind and more features and functions are added and the core product is updated. This process continues till the complete product is produced.The increments earlier to the main increment are called as
“stripped down” versions of the final product. These increments form a base for customer evaluation. On this basis client can suggest new requirements if required.If there are less number of employees to work on theproject. Incremental development model is very useful to complete the project before the deadline. In a project early increments can be done with less number of people. In case if the core product is well-defined and understood more employees can be added if needed in the future increments. One of the benefits of Incremental process model is that it can be planned to manage technical risks.
1.3.1
MERITS:- Initial product delivery is faster.
Lower initial delivery cost.
Core product is developed first i.e. main functionality is added in the first increment.
After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration.
With each release a new feature is added to the product.
Customer can respond to feature and review the product.
Risk of changing requirement is reduced
Work load is less. Prototypes are very visual, hence no ambiguities
Generates working software quickly and early during the software life cycle.
It is easier to test and debug during a smaller iteration.In this model customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Happier customers since you help them define requirements
Flexibility in modifying requirements.
1.3.2
DEMERITS:- It is difficult to divide the problem into several functional units which can be incrementally implemented and delivered.
This model is used especially when customer prefers to receive the product is increments to be able to start using different features.
Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
60
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Total cost is higher than waterfall.
Requires good analysis.
Resulting cost may exceed the cost of the organization.
Each phase of an iteration is rigid and do not overlap each other.
1.4 WHEN TO USE INCREMENTAL
MODEL:- This model can be used when the requirements of the complete system are clearly defined and understood.
Major requirements must be defined; however, some details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
There are some high risk features and goals.
2. SPIRAL MODEL
The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping. [1] The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects. It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.
Spiral model is also called as meta-model because in a way it comprises of other models of SDLC. Both waterfall and prototype models are used in it. [2]
The spiral model, also known as the spiral lifecycle model, is a systems development lifecycle (SDLC) model used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. [3]
Each loop of spiral model represents a phase of software process. This model is much more flexible than any other model, since exact number of phases through which project is developed is not fixed in this model.
The radial dimension of model represents cumulative costs. Each path around spiral is indicative and increased costs. Angular dimension represent progress made in completing each cycle. Each loop of spiral from X-axis clockwise through angel 360 which represents one phase.
One phase is split roughly into four sectors of major activities:
PLANNING: - Determination of objective,
constraints and alternatives.
RISK ANALYSIS: - Analyze alternative and attempt to identify and resolve risk involved.
DEVELOPMENT: - Product development and testing product.
ASSESSMENT: - Customer evaluation. [4]
The spiral model follows creation of a series of prototypes for refining the understanding of the requirements. The kind of approach is best suited to projects that are not at all clearly defined and a clear solution is yet to be arrived at. This model provides an opportunity to build various prototypes to understand the problem better and slowly arrive at a solution using the prototypes iteratively. The project starts with prototypes and ends with prototypes being developed into fully functional systems. It allows for a lot of flexibility from a customer and changing requirements perspective. [5]
2.1 Use of the QuadrantsFirst quadrant (Objective Setting):-During the first quadrant, it is needed to identify
the objectives of the phase.
Examine the risks associated with these objectives.
Second Quadrant (Risk Assessment and
Reduction):-Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
60
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Total cost is higher than waterfall.
Requires good analysis.
Resulting cost may exceed the cost of the organization.
Each phase of an iteration is rigid and do not overlap each other.
1.4 WHEN TO USE INCREMENTAL
MODEL:- This model can be used when the requirements of the complete system are clearly defined and understood.
Major requirements must be defined; however, some details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
There are some high risk features and goals.
2. SPIRAL MODEL
The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping. [1] The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects. It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.
Spiral model is also called as meta-model because in a way it comprises of other models of SDLC. Both waterfall and prototype models are used in it. [2]
The spiral model, also known as the spiral lifecycle model, is a systems development lifecycle (SDLC) model used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. [3]
Each loop of spiral model represents a phase of software process. This model is much more flexible than any other model, since exact number of phases through which project is developed is not fixed in this model.
The radial dimension of model represents cumulative costs. Each path around spiral is indicative and increased costs. Angular dimension represent progress made in completing each cycle. Each loop of spiral from X-axis clockwise through angel 360 which represents one phase.
One phase is split roughly into four sectors of major activities:
PLANNING: - Determination of objective,
constraints and alternatives.
RISK ANALYSIS: - Analyze alternative and attempt to identify and resolve risk involved.
DEVELOPMENT: - Product development and testing product.
ASSESSMENT: - Customer evaluation. [4]
The spiral model follows creation of a series of prototypes for refining the understanding of the requirements. The kind of approach is best suited to projects that are not at all clearly defined and a clear solution is yet to be arrived at. This model provides an opportunity to build various prototypes to understand the problem better and slowly arrive at a solution using the prototypes iteratively. The project starts with prototypes and ends with prototypes being developed into fully functional systems. It allows for a lot of flexibility from a customer and changing requirements perspective. [5]
2.1 Use of the QuadrantsFirst quadrant (Objective Setting):-During the first quadrant, it is needed to identify
the objectives of the phase.
Examine the risks associated with these objectives.
Second Quadrant (Risk Assessment and
Reduction):-Volume 2, Spl. Issue 2 (2015) e-ISSN: 1694-2329 | p-ISSN: 1694-2345
BUEST, Baddi
RIEECE-2015
60
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Total cost is higher than waterfall.
Requires good analysis.
Resulting cost may exceed the cost of the organization.
Each phase of an iteration is rigid and do not overlap each other.
1.4 WHEN TO USE INCREMENTAL
MODEL:- This model can be used when the requirements of the complete system are clearly defined and understood.
Major requirements must be defined; however, some details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
There are some high risk features and goals.
2. SPIRAL MODEL
The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping. [1] The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects. It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.
Spiral model is also called as meta-model because in a way it comprises of other models of SDLC. Both waterfall and prototype models are used in it. [2]
The spiral model, also known as the spiral lifecycle model, is a systems development lifecycle (SDLC) model used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. [3]
Each loop of spiral model represents a phase of software process. This model is much more flexible than any other model, since exact number of phases through which project is developed is not fixed in this model.
The radial dimension of model represents cumulative costs. Each path around spiral is indicative and increased costs. Angular dimension represent progress made in completing each cycle. Each loop of spiral from X-axis clockwise through angel 360 which represents one phase.
One phase is split roughly into four sectors of major activities:
PLANNING: - Determination of objective,
constraints and alternatives.
RISK ANALYSIS: - Analyze alternative and attempt to identify and resolve risk involved.
DEVELOPMENT: - Product development and testing product.
ASSESSMENT: - Customer evaluation. [4]
The spiral model follows creation of a series of prototypes for refining the understanding of the requirements. The kind of approach is best suited to projects that are not at all clearly defined and a clear solution is yet to be arrived at. This model provides an opportunity to build various prototypes to understand the problem better and slowly arrive at a solution using the prototypes iteratively. The project starts with prototypes and ends with prototypes being developed into fully functional systems. It allows for a lot of flexibility from a customer and changing requirements perspective. [5]
2.1 Use of the QuadrantsFirst quadrant (Objective Setting):-During the first quadrant, it is needed to identify
the objectives of the phase.
Examine the risks associated with these objectives.
Reduction):- Detailed analysis is carried outfor each identified project risk.
Steps are taken to reduce the risks. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.
Third Quadrant (Development and
Validation):- Develop and validate the next level of the product after resolving the identified risks.
Fourth Quadrant (Review and
Planning):- Review the results achieved so far with the customer and plan the next iteration around the spiral.
Progressively more complete version of the software gets built with each iteration around the spiral. [6]
2.3 Merits of Spiral
model:- High amount of risk analysis hence, avoidance of Risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle. [7]
It is suitable for high risk projects, where business needs may be unstable.
Project estimates in terms of schedule, cost etc become more and more realistic as the project moves forward and loops in spiral get completed.
Changes can be introduced later in the life cycle as
well. And coping with these changes isn’t a very
big headache for the project manager.
Spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of project.[8]
2.4 Demerits of Spiral model:- Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk
analysis phase.
Doesn’t work well for smaller projects.[9]
Cost involved in this model is usually high.
It is a complicated approach especially for projects with a clear SRS.
Skills required, to evaluate and review project from time to time, need expertise.
Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.
It is not suitable for low risk projects. Amount of documentation required in intermediate stages makes management of project very complex affair.[10]
3. When to use Spiral model
When costs and risk evaluation is important For medium to high-risk projects
Long-term project commitment unwise because of potential changes to economic priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration).[11]
4. CONCLUSION AND FUTURE WORK
1. There are many existing models for developing systems for different sizes of projects and requirements.
2. These models were established between 1970 and 1999.
3. Waterfall model and spiral model are used commonly in developing systems.
4. Each model has advantages and disadvantages for the development of systems, so each model tries to eliminate the disadvantages of the previous model.
Finally, some topics can be suggested for future works:
1. Suggesting a model to simulate advantages that are found in different models to software process management.
2. Making a comparison between the suggested model and the previous software processes management models.
3. Applying the suggested model to many projects to ensure of its suitability and documentation to explain its mechanical work. [12]
REFERENCES 1. en.wikipedia.org/wiki/spiral_model. 2.www.answer4u.com/2011/12/spiralmodel.
3.searchsoftwarequality.techtarger.com/definition/spiral_model. 4.3rdedition k.k.agrawal,yogeshsingh(new age international publisher).
5.careeride.com/testing-spiralmodel-model.aspx. 6.Spiral atic.mil/cgi_bin/getTRDoc?AP=ADA382590. 7. istbexamcertification.com.
8.ianswer4u.com.
9. istbexamcertification.com. 10. ianswer4u.com.