0% found this document useful (0 votes)
12 views13 pages

Overview of Software Process Models

The document discusses different process models for software development including: 1. The waterfall model which defines sequential phases from requirements to deployment without overlap. 2. Evolutionary process models like prototyping and the spiral model which produce increasingly complete versions of software through iterative cycles. 3. The incremental model which delivers software in small pieces that build on previous increments to provide growing functionality over time.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views13 pages

Overview of Software Process Models

The document discusses different process models for software development including: 1. The waterfall model which defines sequential phases from requirements to deployment without overlap. 2. Evolutionary process models like prototyping and the spiral model which produce increasingly complete versions of software through iterative cycles. 3. The incremental model which delivers software in small pieces that build on previous increments to provide growing functionality over time.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Process Models

Prescriptive process models define a prescribed set of process elements


and a predictable process workflow.

Prescriptive process models are sometimes referred to as “traditional”


process models.

1. Waterfall Model (or Classical/Linear Model)

The waterfall model sometimes called as classical life cycle, suggests a


systematic sequential approach that begins with customer specifications of
requirements and progresses through planning, modeling, construction,
and deployment phases.

The waterfall model is the oldest paradigm for software engineering. When
requirements are well defined and reasonably stable it leads to a linear
fashion. The waterfall model considers that one phase starts after the
completion of the previous phase. That is the output of one phase will act
as input for the next phase. The phases do not overlap with each other in
the waterfall model.

The phases of the waterfall model can be seen in the below diagram:
Let’s see each of them clearly:

1. Communication
Before any technical work can commence, it is critically important to
communicate and collaborate with customers and other stakeholders.
The intent is to understand the stakeholders’ objectives for the project
and gather the requirements that help define software features and
functions.

2. Planning
Any complicated journey can be simplified by using maps. A software
project is a complicated journey and the planning activity creates a
map that guides the team as well as simplifies the software project
journey.

A map also called a software project plan defines the software


engineering work by describing the:
a. Technical tasks to be conducted
b. The risks that are likely
c. The resources that will be required
d. The work products to be produced
e. The work schedule

3. Modeling
Modeling in simple terms means creating a design before
approaching the bigger task. In terms of software engineering, a
software engineer does the same thing by creating models to better
understand requirements and the design that will achieve those
requirements.
4. Construction
After the design is ready we need to build the project based on the
design. The construction activity combines code generation(manual
or automated) using any desired programming language and testing
that is required to uncover all errors present in the code or the
system.

5. Deployment
In the deployment phase, the complete software or partially
completed software needs to be delivered to the customer who
evaluates the delivered product and gives their feedback.

Advantages:

1. The model is simple and easy to understand.


2. Phases in this model are processed one at a time.
3. Each stage of the model is clearly defined.
4. Process, action, and results are well documented.
5. One of the most systemic methods for software development.
6. Being the oldest, this is one of the time-tested models.

Disadvantages:

1. Difficult to define all the requirements at the beginning of the project.


2. The model is not suitable for accommodating any change.
3. It doesn’t have any proper mechanism for error correction.
4. A working version of the system is not seen until late in the project’s
life.
5. It does not scale up well to large projects.
6. Real projects are rarely sequential.
Examples (or Application Areas):

1. Human Resource Management System (HRMS)


2. Inventory System
3. Customer Relationship System (CRM)
4. Supply Chain Management System
5. Point of Sales (PoS)

2. V Model

A variation of the waterfall model depicts the relationship of quality


assurance actions to the actions associated with communication,
modeling, and early code construction activities.

The team first moves down the left side of the V to refine the problem
requirements.

Once code is generated, the team moves up the right side of the V,
performing a series of tests that validate each of the models created as the
team moved down the left side.
3. Incremental Model

The incremental model delivers a series of releases, called increments,


that provide progressively more functionality for the customer as each
increment is delivered.
Delivers software in small but usable pieces, each piece builds on pieces
already delivered

First Increment is often core product


● Includes basic requirement
● Many supplementary features (known & unknown) remain
undelivered

A plan of the next increment is prepared


● Modifications of the first increment
● Additional features of the first increment

The incremental model applies linear sequences in a staggered fashion as


calendar time progresses. Each linear sequence produces deliverable
“increments” of the software.

Example:

For example, word-processing software developed using the incremental


paradigm might deliver basic file management, editing, and document
production functions in the first increment; more sophisticated 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. It should be noted that the process flow
for any increment can incorporate the prototyping paradigm discussed in
the next subsection.

The incremental model focuses more on the delivery of operation products


with each increment.

Advantages:

1. Rigid nature of the sequential approach.


2. This method is great to help when an organization is low on staffing.
3. Generate working software quickly and early during the software life
cycle.
4. More flexible – less costly to change scope and requirements.
5. Easier to test and debug during a small iteration.
6. Easier to manage risk because risky pieces are identified and
handled during their iteration.
7. Each increment is an easily managed milestone.

Disadvantages:

1. This model could be time-consuming.


2. Each phase of an increment is rigid and does not overlap each other.
3. Problems may arise in system architecture; all the requirements are
not gathered up during the entire software life cycle.
3. Evolutionary Process Model

Evolutionary process models produce an increasingly more complete


version of the software with each iteration. A limited version must be
introduced to meet competitive or business pressure.

“Evolutionary models are iterative.”

Evolutionary models are:


1. Prototyping
2. Spiral Model
3. Concurrent Development Model

Prototyping:

Usually, objectives defined by the customer are general but do not have
details like input, processing, or output requirement. The developer may be
unsure of the efficiency of an algorithm, adaptability of the operating system
or the form of human-machine interaction should take. In such scenarios, a
prototyping paradigm may offer the best approach.

It can be used as a standalone process model. The Prototyping model


assists software engineers and customers in better understanding what is
to be built when the requirement is fuzzy.
Prototyping starts with communication, between a customer and software
engineer to define the overall objective, identify requirements and make a
boundary.

Going ahead, planning quickly and modeling (software layout visible to the
customers/end-user) occurs.

Quick design leads to prototype construction.

The prototype is deployed and evaluated by the customer/user.


Feedback from customer/end-user will refine requirements and that is how
iteration occurs during the prototype to satisfy the needs of the customer.

Prototyping Advantages:

1. Customer/End-user gets a feel for the actual system


2. The developer gets to build something immediately.
3. New requirements can be easily accommodated as there is scope for
refinement.
4. Missing functionalities can be easily figured out.
5. The developed prototype can be reused by the developer for more
complicated projects in the future.

Prototyping Disadvantages:

1. The customer cries foul and demands that “a few fixes” be applied to
make the prototype a working product, due to that software quality
suffers as a result.

2. To make the prototype work we compromise with the programming


language, operating system and sometimes even use inefficient
algorithms. After a time, we may become comfortable with these
choices and forget all the reasons why they were inappropriate. The
less-than-ideal choice has now become an integral part of the
system.

3. Customer and developer both must agree that the prototype is built to
serve as a mechanism for defining requirements.
Spiral Model

The spiral model is an evolutionary software process model that couples


the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model. It provides the potential for rapid
development of increasingly more complete versions of the software.

The spiral model can be adapted to apply throughout the entire life cycle of
an application, from concept development to maintenance.

It has two main distinguishing features.

One is a cyclic approach for incrementally growing a system’s degree of


definition and implementation while decreasing its degree of risk.

The other is a set of anchor point milestones for ensuring stakeholder


commitment to feasible and mutually satisfactory system solutions.

During early iterations, the release might be a model or prototype. During


later iterations, increasingly more complete versions of the engineered
system are produced.

Risk is considered as each revolution is made.


Anchor point milestones—a combination of work products and conditions
that are attained along the path of the spiral— are noted for each
evolutionary pass.
Cost and schedule are adjusted based on feedback derived from the
customer after delivery. The spiral model is a realistic approach to the
development of large-scale systems and software.

The evolutionary process begins in a clockwise direction, beginning at the


center of risk. The first circuit around the spiral might result in the
development of a product specification. Subsequently, develop a prototype
and then a progressively more sophisticated version of the software. Unlike
other process models that end when software is delivered, the spiral model
can be adapted to apply throughout the life of the computer software.
Advantages:

1. It is a realistic approach for developing a large-scale system.


2. The high amount of risk analysis.
3. Good for large and mission-critical projects.
4. Software is produced early in the software life cycle.

Disadvantages:
1. It is not widely used and can be a bit costly to use.
2. Risk analysis requires highly specific expertise.
3. The project’s success is highly dependent on the risk analysis phase.
4. Doesn’t work well for smaller projects.
5. It demands considerable risk assessment expertise and relies on this
expertise for success.
6. It may be difficult to convince customers that the evolutionary
approach is controllable.

Common questions

Powered by AI

Incorporating prototyping into the Incremental model enhances its effectiveness by allowing for the exploration and clarification of requirements through early prototypes, which help visualize and refine complex concepts before full-scale development. This integration supports the delivery of refined and functional pieces of software that incorporate user feedback effectively. As each increment can be informed by prototype iterations, the development process becomes more adaptive and responsive to user needs, leading to improved product quality and user satisfaction. It ensures that the foundation laid in early stages is robust, reducing errors and misalignments over successive increments .

The Spiral model's cyclic approach helps in reducing project risks by incorporating repeated iterations that include comprehensive risk assessment and analysis for each development cycle. At each stage or iteration, risks are identified, analyzed, and addressed, which allows for informed decision-making regarding the project's path forward. This proactive risk management minimizes uncertainties and allows for stakeholder feedback, adjustment of scope, and budget allocations within each cycle. By consistently evaluating risk, the model ensures that high-risk elements are identified early, reducing potential negative impacts and increasing the chance of project success .

Advantages of using an Evolutionary Process Model include the ability to produce increasingly complete versions of the software through iterative development, which helps quickly address market demands or competitive pressures by delivering initial workable releases. They provide flexibility to adapt to new requirements and improve product quality over time. However, disadvantages involve the potential for scope creep due to continuous changes and additions, challenges in managing project schedules effectively, and the requirement of effective communication and collaboration throughout iterations to ensure the end product aligns with evolving market and stakeholder needs .

The V Model is beneficial for projects requiring stringent quality assurance because it integrates validation and verification processes alongside each developmental phase. The descending side of the V focuses on defining the problem and planning, while the ascending side is dedicated to testing each product increment. This ensures that every component of the project is tested against its specifications, reducing the risk of defects. However, the V Model can be more resource-intensive and time-consuming due to its emphasis on comprehensive testing. It also introduces constraints of being less adaptable to requirement changes, as changes might require revisiting and modifying multiple phases .

The Incremental model is more advantageous than the Waterfall model in scenarios where software needs to be delivered in stages, allowing for customer feedback and revision between increments. This model supports changes in requirements and is suited for projects where initial core functionality needs to be delivered quickly, and more features can be added progressively. It is particularly beneficial in environments with limited resources, as it allows for development to proceed with available resources while new increments can accommodate new requirements and refinements .

The Prototyping model addresses unclear project requirements by allowing developers to create a preliminary version of the application that stakeholders can interact with. This model facilitates better communication and understanding between customers and developers, enabling the refinement of requirements through feedback loops, thus helping to clarify the objectives and design from the onset. However, pitfalls include the risk of stakeholders mistaking the prototype for the final product, leading to pressure on developers to 'fix' the prototype rather than rebuild according to a proper design. Additionally, the need for quick iterations can lead to technical compromises, where suboptimal decisions during prototyping become ingrained in the final product .

Despite its disadvantages, such as potential quality compromises and stakeholder expectations mismanagement, the iterative nature of evolutionary models like Prototyping can be beneficial for rapidly changing environments. This model enables frequent reassessment and incorporation of user feedback, which helps adapt the software to evolving requirements and technologies. It allows for early detection of errors, enhancing overall quality over time. The flexibility to modify the product continually aligns it more closely with current user needs and competitive market demands, fostering an agile development approach that steadily guides the product toward an innovative solution .

The Spiral model incorporates risk management as a core component of its iterative processes, with risk analysis conducted at every cycle of development. This allows for the identification and mitigation of risks early and throughout the project lifecycle, enhancing adaptability to changes and reducing likelihood of failure. In contrast, the Waterfall model does not inherently focus on risk management; it follows a linear and sequential approach that does not facilitate early identification and resolution of issues, potentially leading to greater risk exposure, especially regarding requirement changes and errors found later in the development process .

The Incremental model is highly effective for projects with limited initial requirements and evolving user needs by emphasizing early delivery of core functionalities and allowing for progressive enhancement with future increments. As initial increments are deployed, real-world usage provides valuable feedback that can guide further development and refinement. This method allows flexibility for adapting to changes without disrupting the entire project, as each increment is self-contained. Moreover, project complexity is manageable, providing interim deliverables and reducing the risk of project delays. Nevertheless, careful planning and prioritization are required to ensure coherent integration of increments and alignment with broad project goals .

The Waterfall model consists of the following primary stages: Communication, Planning, Modeling, Construction, and Deployment. Its sequential nature means that each phase must be completed before the next one begins, which leads to a very structured and rigid process. This structure can be advantageous for projects with well-defined and stable requirements because it ensures thorough documentation and phase separation. However, the model's rigidity poses challenges for projects where requirements are expected to change or evolve over time, making it less suitable for dynamic or exploratory projects .

You might also like