Spiral Model
Spiral Model
Spiral Model
Spiral model is one of the most important Software Development Life Cycle
models, which provides support for Risk Handling. In its diagrammatic
representation, it looks like a spiral with many loops.
The exact number of loops of the spiral is unknown and can vary from project to
project.
The exact number of phases needed to develop the product can be varied by
the project manager depending upon the project risks.
Spiral Model
The spiral model, initially proposed by Boehm, is an evolutionary software process
model that couples the iterative feature of prototyping with the controlled and
systematic aspects of the linear sequential model. It implements the potential for rapid
development of new versions of the software. Using the spiral model, the software is
developed in a series of incremental releases. During the early iterations, the additional
release may be a paper model or prototype. During later iterations, more and more
complete versions of the engineered system are produced.
Objective setting: Each cycle in the spiral starts with the identification of purpose for
that cycle, the various alternatives that are possible for achieving the targets, and the
constraints that exists.
Risk Assessment and reduction: The next phase in the cycle is to calculate these
various alternatives based on the goals and constraints. The focus of evaluation in this
stage is located on the risk perception for the project.
Planning: Finally, the next step is planned. The project is reviewed, and a choice made
whether to continue with a further period of the spiral. If it is determined to keep, plans
are drawn up for the next step of the project.
The development phase depends on the remaining risks. For example, if performance or
user-interface risks are treated more essential than the program development risks, the
next phase may be an evolutionary development that includes developing a more
detailed prototype for solving the risks.
Advantages
o High amount of risk analysis
o Useful for large and mission-critical projects.
Disadvantages
o Can be a costly model to use.
o Risk analysis needed highly particular expertise
o Doesn't work well for smaller projects.
Prototype Model
The prototype model requires that before carrying out the development of actual
software, a working prototype of the system should be built. A prototype is a toy
implementation of the system. A prototype usually turns out to be a very crude version
of the actual system, possible exhibiting limited functional capabilities, low reliability,
and inefficient performance as compared to actual software. In many instances, the
client only has a general view of what is expected from the software product. In such a
scenario where there is an absence of detailed information regarding the input to the
system, the processing needs, and the output requirement, the prototyping model may
be employed.
Steps of Prototype Model
1. Requirement Gathering and Analyst
2. Quick Decision
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement
6. Engineer Product
Types of Prototyping Models
Four types of Prototyping models are:
In this method, a developed prototype will be discarded and will not be a part
of the ultimately accepted prototype. This technique is useful for exploring
ideas and getting instant feedback for customer requirements.
Evolutionary Prototyping
Here, the prototype developed is incrementally refined based on customer's
feedback until it is finally accepted. It helps you to save time as well as effort.
That's because developing a prototype from scratch for every interaction of
the process can sometimes be very frustrating.
This model is helpful for a project which uses a new technology that is not well
understood. It is also used for a complex project where every functionality
must be checked once. It is helpful when the requirement is not stable or not
understood clearly at the initial stage.
Incremental Prototyping
In incremental Prototyping, the final product is decimated into different small
prototypes and developed individually. Eventually, the different prototypes are
merged into a single product. This method is helpful to reduce the feedback
time between the user and the application development team.
Extreme Prototyping:
Extreme prototyping method is mostly used for web development. It is
consists of three sequential phases.
1. Basic prototype with all the existing page is present in the HTML format.
2. You can simulate data process using a prototype services layer.
3. The services are implemented and integrated into the final prototype.
Evolutionary Model
1. The requirements are not clear, and it evolves during the development
cycle.
2. At the initial stage, based on their understanding of the customer’s
requirements, they developed the core modules and functionalities and
delivered them to the customer for feedback.
3. This is called an iteration. In each iteration, they release a working
software after performing integration and level of testings.
4. The development team does not know how much has been completed and
how much needs to be complete in the near future.
5. Picking criteria for the evolutionary model: when the requirements are not
clear.
The ISO 9000 series of standards is based on the assumption that if a proper stage is
followed for production, then good quality products are bound to follow automatically.
The types of industries to which the various ISO standards apply are as follows.
The model defines a five-level evolutionary stage of increasingly organized and consistently
more mature processes.
CMM was developed and is promoted by the Software Engineering Institute (SEI), a research
and development center promote by the U.S. Department of Defense (DOD).
77.2K
Methods of SEICMM
There are two methods of SEICMM:
SEI CMM categorized software development industries into the following five maturity levels.
The various levels of SEI CMM have been designed so that it is easy for an organization to build
its quality system starting from scratch slowly.
Level 1: Initial
The software process is characterized as inconsistent, and occasionally even
chaotic. Defined processes and standard practices that exist are abandoned
during a crisis. Success of the organization majorly depends on an individual
effort, talent, and heroics. The heroes eventually move on to other organizations
taking their wealth of knowledge or lessons learnt with them.
Level 3: Defined
At this level, the methods for both management and development activities are defined and
documented. There is a common organization-wide understanding of operations, roles, and
responsibilities. The ways through defined, the process and product qualities are not measured.
ISO 9000 goals at achieving this level.
Level 4: Managed
At this level, the focus is on software metrics. Two kinds of metrics are composed.
Product metrics measure the features of the product being developed, such as its size,
reliability, time complexity, understandability, etc.
Process metrics follow the effectiveness of the process being used, such as average
defect correction time, productivity, the average number of defects found per hour
inspection, the average number of failures detected during testing per LOC, etc. The
software process and product quality are measured, and quantitative quality
requirements for the product are met. Various tools like Pareto charts, fishbone
diagrams, etc. are used to measure the product and process quality. The process metrics
are used to analyze if a project performed satisfactorily. Thus, the outcome of process
measurements is used to calculate project performance rather than improve the process.
Level 5: Optimizing
At this phase, process and product metrics are collected. Process and product
measurement data are evaluated for continuous process improvement.