KEMBAR78
Process Models | PDF | Software Development Process | Software Prototyping
0% found this document useful (0 votes)
29 views30 pages

Process Models

The document discusses various software development life cycle (SDLC) models, primarily focusing on the Waterfall Model and the Spiral Model. The Waterfall Model is a sequential approach with clearly defined phases, emphasizing documentation and quality control, while the Spiral Model combines iterative processes with risk management, making it suitable for complex projects. Additionally, the Prototyping Model is highlighted for its flexibility and early customer feedback, although it comes with challenges such as cost and documentation issues.

Uploaded by

Samiksha Kalake
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)
29 views30 pages

Process Models

The document discusses various software development life cycle (SDLC) models, primarily focusing on the Waterfall Model and the Spiral Model. The Waterfall Model is a sequential approach with clearly defined phases, emphasizing documentation and quality control, while the Spiral Model combines iterative processes with risk management, making it suitable for complex projects. Additionally, the Prototyping Model is highlighted for its flexibility and early customer feedback, although it comes with challenges such as cost and documentation issues.

Uploaded by

Samiksha Kalake
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
You are on page 1/ 30

Chapter 2

References:

The Waterfall Model is a classic and sequential approach to software


development, where each phase must be completed before moving on to
the next. It is called the "Waterfall" model because the development
process flows downward, like a waterfall, through several phases.

Phases of the Waterfall Model:

1. Requirement Analysis:
○ In this phase, all project requirements are gathered and
documented.
2. System Design:
○ Based on the requirements, the system architecture and design
are created.
3. Implementation:
○ The actual coding of the software takes place in this phase.
4. Integration and Testing:
○ Once coding is completed, the system is tested to identify
defects or bugs.
5. Deployment:
○ The software is deployed into the real environment, or released
to the customer.
6. Maintenance:
○ After deployment, the software may need maintenance to fix
issues, make updates, or adapt to new environments.

Diagram of the Waterfall Model:


Features of the SDLC Waterfall Model
1. Sequential Approach: The waterfall model involves a sequential

approach to software development, where each phase of the

project is completed before moving on to the next one.

2. Document-Driven: The waterfall model relies heavily on

documentation to ensure that the project is well-defined and the

project team is working towards a clear set of goals.

3. Quality Control: The waterfall model places a high emphasis on

quality control and testing at each phase of the project, to ensure

that the final product meets the requirements and expectations of

the stakeholders.
4. Rigorous Planning: The waterfall model involves a rigorous

planning process, where the project scope, timelines, and

deliverables are carefully defined and monitored throughout the

project lifecycle.

Importance of SDLC Waterfall Model


1. Clarity and Simplicity: The linear form of the Waterfall Model

offers a simple and unambiguous foundation for project

development.

2. Clearly Defined Phases: The Waterfall Model’s phases each have

unique inputs and outputs, guaranteeing a planned development

with obvious checkpoints.

3. Documentation: A focus on thorough documentation helps with

software comprehension, upkeep, and future growth.

4. Stability in Requirements: Suitable for projects when the

requirements are clear and steady, reducing modifications as the

project progresses.

5. Resource Optimization: It encourages effective task-focused

work without continuously changing contexts by allocating

resources according to project phases.

6. Relevance for Small Projects: Economical for modest projects

with simple specifications and minimal complexity.


Advantages of the SDLC Waterfall Model
The classical waterfall model is an idealistic model for software
development. It is very simple, so it can be considered the basis for other
software development life cycle models. Below are some of the major
advantages of this SDLC model.

● Easy to Understand: The Classical Waterfall Model is very

simple and easy to understand.

● Individual Processing: Phases in the Classical Waterfall model

are processed one at a time.

● Properly Defined: In the classical waterfall model, each stage in

the model is clearly defined.

● Clear Milestones: The classical Waterfall model has very clear

and well-understood milestones.

● Properly Documented: Processes, actions, and results are very

well documented.

● Reinforces Good Habits: The Classical Waterfall Model

reinforces good habits like define-before-design and

design-before-code.

● Working: Classical Waterfall Model works well for smaller

projects and projects where requirements are well understood.

Disadvantages of the SDLC Waterfall Model


The Classical Waterfall Model suffers from various shortcomings we can’t
use it in real projects, but we use other software development lifecycle
models which are based on the classical waterfall model. Below are some
major drawbacks of this model.

● No Feedback Path: In the classical waterfall model evolution of

software from one phase to another phase is like a waterfall. It

assumes that no error is ever committed by developers during any

phase. Therefore, it does not incorporate any mechanism for error

correction.

● Difficult to accommodate Change Requests: This model

assumes that all the customer requirements can be completely

and correctly defined at the beginning of the project, but the

customer’s requirements keep on changing with time. It is difficult

to accommodate any change requests after the requirements

specification phase is complete.

● No Overlapping of Phases: This model recommends that a new

phase can start only after the completion of the previous phase.

But in real projects, this can’t be maintained. To increase efficiency

and reduce cost, phases may overlap.

● Limited Flexibility: The Waterfall Model is a rigid and linear

approach to software development, which means that it is not

well-suited for projects with changing or uncertain requirements.


Once a phase has been completed, it is difficult to make changes

or go back to a previous phase.

● Limited Stakeholder Involvement: The Waterfall Model is a

structured and sequential approach, which means that

stakeholders are typically involved in the early phases of the

project (requirements gathering and analysis) but may not be

involved in the later phases (implementation, testing, and

deployment).

● Late Defect Detection: In the Waterfall Model, testing is typically

done toward the end of the development process. This means

that defects may not be discovered until late in the development

process, which can be expensive and time-consuming to fix.

● Lengthy Development Cycle: The Waterfall Model can result in a

lengthy development cycle, as each phase must be completed

before moving on to the next. This can result in delays and

increased costs if requirements change or new issues arise.

When to Use the SDLC Waterfall Model?


Here are some cases where the use of the Waterfall Model is best suited:

Well-understood Requirements: Before beginning development,

there are precise, reliable, and thoroughly documented requirements

available.
Very Little Changes Expected: During development, very little

adjustments or expansions to the project’s scope are anticipated.

Small to Medium-Sized Projects: Ideal for more manageable

projects with a clear development path and little complexity.

Predictable: Projects that are predictable, low-risk, and able to be

addressed early in the development life cycle are those that have

known, controllable risks.

Regulatory Compliance is Critical: Circumstances in which

paperwork is of utmost importance and stringent regulatory

compliance is required.

Client Prefers a Linear and Sequential Approach: This situation

describes the client’s preference for a linear and sequential approach

to project development.

Limited Resources: Projects with limited resources can benefit from

a set-up strategy, which enables targeted resource allocation.

Spiral Model:
The Spiral Model is one of the most important Software

Development Life Cycle models. The Spiral Model is a combination

of the waterfall model and the iterative model. It provides support

for Risk Handling. The Spiral Model was first proposed by Barry

Boehm. This article focuses on discussing the Spiral Model in detail.

The Spiral Model is a Software Development Life Cycle (SDLC) model

that provides a systematic and iterative approach to software

development. In its diagrammatic representation, looks like a spiral with

many loops. The exact number of loops of the spiral is unknown and can

vary from project to project. Each loop of the spiral is called a phase of the

software development process.

Some Key Points regarding the phase of a Spiral Model:

1. The exact number of phases needed to develop the product can

be varied by the project manager depending upon the project

risks.

2. As the project manager dynamically determines the number of

phases, the project manager has an important role in developing a

product using the spiral model.


3. It is based on the idea of a spiral, with each iteration of the spiral

representing a complete software development cycle, from

requirements gathering and analysis to design, implementation,

testing, and maintenance.

What Are the Phases of the Spiral Model?

The Spiral Model is a risk-driven model, meaning that the focus is on

managing risk through multiple iterations of the software development

process. It consists of the following phases:

1. Objectives Defined: In first phase of the spiral model we clarify

what the project aims to achieve, including functional and

non-functional requirements.

2. Risk Analysis: In the risk analysis phase, the risks associated with

the project are identified and evaluated.

3. Engineering: In the engineering phase, the software is developed

based on the requirements gathered in the previous iteration.

4. Evaluation: In the evaluation phase, the software is evaluated to

determine if it meets the customer’s requirements and if it is of

high quality.

5. Planning: The next iteration of the spiral begins with a new

planning phase, based on the results of the evaluation.


The Spiral Model is often used for complex and large software

development projects, as it allows for a more flexible and adaptable

approach to software development. It is also well-suited to projects with

significant uncertainty or high levels of risk.

1. Objectives determination and identify alternative solutions:

Requirements are gathered from the customers and the objectives

are identified, elaborated, and analyzed at the start of every

phase. Then alternative solutions possible for the phase are

proposed in this quadrant.

2. Identify and resolve Risks: During the second quadrant, all the

possible solutions are evaluated to select the best possible

solution. Then the risks associated with that solution are


identified and the risks are resolved using the best possible

strategy. At the end of this quadrant, the Prototype is built for the

best possible solution.

3. Develop the next version of the Product: During the third

quadrant, the identified features are developed and verified

through testing. At the end of the third quadrant, the next version

of the software is available.

4. Review and plan for the next Phase: In the fourth quadrant, the

Customers evaluate the so-far developed version of the software.

In the end, planning for the next phase is started.

Advantages of the Spiral Model


Below are some advantages of the Spiral Model.

1. Risk Handling: The projects with many unknown risks that occur

as the development proceeds, in that case, Spiral Model is the

best development model to follow due to the risk analysis and

risk handling at every phase.

2. Good for large projects: It is recommended to use the Spiral

Model in large and complex projects.

3. Flexibility in Requirements: Change requests in the

Requirements at a later phase can be incorporated accurately by

using this model.


4. Customer Satisfaction: Customers can see the development of

the product at the early phase of the software development and

thus, they habituated with the system by using it before

completion of the total product.

5. Iterative and Incremental Approach: The Spiral Model provides

an iterative and incremental approach to software development,

allowing for flexibility and adaptability in response to changing

requirements or unexpected events.

6. Emphasis on Risk Management: The Spiral Model places a

strong emphasis on risk management, which helps to minimize

the impact of uncertainty and risk on the software development

process.

7. Improved Communication: The Spiral Model provides for regular

evaluations and reviews, which can improve communication

between the customer and the development team.

8. Improved Quality: The Spiral Model allows for multiple iterations

of the software development process, which can result in

improved software quality and reliability.

Disadvantages of the Spiral Model


Below are some main disadvantages of the spiral model.
1. Complex: The Spiral Model is much more complex than other

SDLC models.

2. Expensive: Spiral Model is not suitable for small projects as it is

expensive.

3. Too much dependability on Risk Analysis: The successful

completion of the project is very much dependent on Risk

Analysis. Without very highly experienced experts, it is going to

be a failure to develop a project using this model.

4. Difficulty in time management: As the number of phases is

unknown at the start of the project, time estimation is very

difficult.

5. Complexity: The Spiral Model can be complex, as it involves

multiple iterations of the software development process.

6. Time-Consuming: The Spiral Model can be time-consuming, as it

requires multiple evaluations and reviews.

7. Resource Intensive: The Spiral Model can be resource-intensive,

as it requires a significant investment in planning, risk analysis,

and evaluations.

When To Use the Spiral Model?


1. When a project is vast in software engineering, a spiral model is

utilized.
2. A spiral approach is utilized when frequent releases are

necessary.

3. When it is appropriate to create a prototype

4. When evaluating risks and costs is crucial

5. The spiral approach is beneficial for projects with moderate to

high risk.

6. The SDLC’s spiral model is helpful when requirements are

complicated and ambiguous.

7. If modifications are possible at any moment

8. When committing to a long-term project is impractical owing to

shifting economic priorities.

Prototyping Model
Prototyping is defined as the process of developing a working replication
of a product or system that has to be engineered. It offers a small-scale
facsimile of the end product and is used for obtaining customer feedback.
Steps of Prototyping Model
Step 1: Requirement Gathering and Analysis: This is the initial step in
designing a prototype model. In this phase, users are asked about what
they expect or what they want from the system.

Step 2: Quick Design: This is the second step in the Prototyping Model.
This model covers the basic design of the requirement through which a
quick overview can be easily described.

Step 3: Build a Prototype: This step helps in building an actual prototype


from the knowledge gained from prototype design.

Step 4: Initial User Evaluation: This step describes the preliminary testing
where the investigation of the performance model occurs, as the customer
will tell the strengths and weaknesses of the design, which was sent to
the developer.
Step 5: Refining Prototype: If any feedback is given by the user, then
improving the client’s response to feedback and suggestions, the final
system is approved.

Step 6: Implement Product and Maintain: This is the final step in the
phase of the Prototyping Model where the final system is tested and
distributed to production, here the program is run regularly to prevent
failures.

Advantages of Prototyping Model


● The customers get to see the partial product early in the life cycle.

This ensures a greater level of customer satisfaction and comfort.


● New requirements can be easily accommodated as there is scope

for refinement.

● Missing functionalities can be easily figured out.

● Errors can be detected much earlier thereby saving a lot of effort

and cost, besides enhancing the quality of the software.

● The developed prototype can be reused by the developer for

more complicated projects in the future.

● Flexibility in design.

● Early feedback from customers and stakeholders can help guide

the development process and ensure that the final product meets

their needs and expectations.

● Prototyping can be used to test and validate design decisions,

allowing for adjustments to be made before significant resources

are invested in development.

● Prototyping can help reduce the risk of project failure by

identifying potential issues and addressing them early in the

process.

● Prototyping can facilitate communication and collaboration

among team members and stakeholders, improving overall

project efficiency and effectiveness.


● Prototyping can help bridge the gap between technical and

non-technical stakeholders by providing a tangible representation

of the product.

Disadvantages of the Prototyping Model


● Costly concerning time as well as money.

● There may be too much variation in requirements each time the

prototype is evaluated by the customer.

● Poor Documentation due to continuously changing customer

requirements.

● It is very difficult for developers to accommodate all the changes

demanded by the customer.

● There is uncertainty in determining the number of iterations that

would be required before the prototype is finally accepted by the

customer.

● After seeing an early prototype, the customers sometimes

demand the actual product to be delivered soon.

● Developers in a hurry to build prototypes may end up with

sub-optimal solutions.

● The customer might lose interest in the product if he/she is not

satisfied with the initial prototype.


● The prototype may not be scalable to meet the future needs of

the customer.

● The prototype may not accurately represent the final product due

to limited functionality or incomplete features.

● The focus on prototype development may shift away from the

final product, leading to delays in the development process.

● The prototype may give a false sense of completion, leading to

the premature release of the product.

● The prototype may not consider technical feasibility and

scalability issues that can arise during the final product

development.

● The prototype may be developed using different tools and

technologies, leading to additional training and maintenance

costs.

● The prototype may not reflect the actual business requirements of

the customer, leading to dissatisfaction with the final product.

Applications of Prototyping Model


● The Prototyping Model should be used when the requirements of

the product are not clearly understood or are unstable.

● The prototyping model can also be used if requirements are

changing quickly.
● This model can be successfully used for developing user

interfaces, high-technology software-intensive systems, and

systems with complex algorithms and interfaces.

● The prototyping Model is also a very good choice to demonstrate

the technical feasibility of the product.

Incremental Process Model


The Incremental Process Model is also known as the Successive version
model. This article focuses on discussing the Incremental Process Model in
detail.
What is the Incremental Process Model?
First, a simple working system implementing only a few basic features is
built and then that is delivered to the customer. Then thereafter many
successive iterations/ versions are implemented and delivered to the
customer until the desired system is released.
When to use the Incremental Process Model
1. Funding Schedule, Risk, Program Complexity, or need for early

realization of benefits.

2. When Requirements are known up-front.

3. When Projects have lengthy development schedules.

4. Projects with new Technology.

● Error Reduction (core modules are used by the customer

from the beginning of the phase and then these are

tested thoroughly).

● Uses divide and conquer for a breakdown of tasks.

● Lowers initial delivery cost.

● Incremental Resource Deployment.


5. Requires good planning and design.

6. The total cost is not lower.

7. Well-defined module interfaces are required.

Characteristics of Incremental Process Model


1. System development is divided into several smaller projects.

2. To create a final complete system, partial systems are constructed

one after the other.

3. Priority requirements are addressed first.

4. The requirements for that increment are frozen once they are

created.

Advantages of the Incremental Process Model


1. Prepares the software fast.

2. Clients have a clear idea of the project.

3. Changes are easy to implement.

4. Provides risk handling support, because of its iterations.

5. Adjusting the criteria and scope is flexible and less costly.

6. Comparing this model to others, it is less expensive.

7. The identification of errors is simple.

Disadvantages of the Incremental Process Model


1. A good team and proper planned execution are required.
2. Because of its continuous iterations the cost increases.

3. Issues may arise from the system design if all needs are not

gathered upfront throughout the program lifecycle.

4. Every iteration step is distinct and does not flow into the next.

5. It takes a lot of time and effort to fix an issue in one unit if it needs

to be corrected in all the units.

What is Extreme Programming (XP)?


Basic Principles of Extreme programming
● Coding: The concept of coding which is used in the XP model is

slightly different from traditional coding. Here, the coding activity

includes drawing diagrams (modeling) that will be transformed

into code, scripting a web-based system, and choosing among

several alternative solutions.

● Testing: The XP model gives high importance to testing and

considers it to be the primary factor in developing fault-free

software.

● Listening: The developers need to carefully listen to the

customers if they have to develop good quality software.

Sometimes programmers may not have the depth knowledge of

the system to be developed. So, the programmers should

understand properly the functionality of the system and they have

to listen to the customers.

● Designing: Without a proper design, a system implementation

becomes too complex, and very difficult to understand the

solution, thus making maintenance expensive. A good design

results elimination of complex dependencies within a system. So,

effective use of suitable design is emphasized.

● Feedback: One of the most important aspects of the XP model is

to gain feedback to understand the exact customer needs.


Frequent contact with the customer makes the development

effective.

● Simplicity: The main principle of the XP model is to develop a

simple system that will work efficiently in the present time, rather

than trying to build something that would take time and may

never be used. It focuses on some specific features that are

immediately needed, rather than engaging time and effort on

speculations of future requirements.

● Pair Programming: XP encourages pair programming where two

developers work together at the same workstation. This approach

helps in knowledge sharing, reduces errors, and improves code

quality.

● Continuous Integration: In XP, developers integrate their code

into a shared repository several times a day. This helps to detect

and resolve integration issues early on in the development

process.

● Refactoring: XP encourages refactoring, which is the process of

restructuring existing code to make it more efficient and

maintainable. Refactoring helps to keep the codebase clean,

organized, and easy to understand.


● Collective Code Ownership: In XP, there is no individual

ownership of code. Instead, the entire team is responsible for the

codebase. This approach ensures that all team members have a

sense of ownership and responsibility towards the code.

● Planning Game: XP follows a planning game, where the

customer and the development team collaborate to prioritize and

plan development tasks. This approach helps to ensure that the

team is working on the most important features and delivers

value to the customer.

● On-site Customer: XP requires an on-site customer who works

closely with the development team throughout the project. This

approach helps to ensure that the customer’s needs are

understood and met, and also facilitates communication and

feedback.

Applications of Extreme Programming (XP)


Some of the projects that are suitable to develop using the XP model are
given below:

● Small projects: The XP model is very useful in small projects

consisting of small teams as face-to-face meeting is easier to

achieve.
● Projects involving new technology or Research projects: This

type of project faces changing requirements rapidly and technical

problems. So XP model is used to complete this type of project.

● Web development projects: The XP model is well-suited for web

development projects as the development process is iterative and

requires frequent testing to ensure the system meets the

requirements.

● Collaborative projects: The XP model is useful for collaborative

projects that require close collaboration between the

development team and the customer.

● Projects with tight deadlines: The XP model can be used in

projects that have a tight deadline, as it emphasizes simplicity and

iterative development.

● Projects with rapidly changing requirements: The XP model is

designed to handle rapidly changing requirements, making it

suitable for projects where requirements may change frequently.

● Projects where quality is a high priority: The XP model places a

strong emphasis on testing and quality assurance, making it a

suitable approach for projects where quality is a high priority.


1. Planning: The first stage of Extreme Programming is planning.

During this phase, clients define their needs in concise

descriptions known as user stories. The team calculates the effort

required for each story and schedules releases according to

priority and effort.

2. Design: The team creates only the essential design needed for

current user stories, using a common analogy or story to help

everyone understand the overall system architecture and keep the

design straightforward and clear.

3. Coding: Extreme Programming (XP) promotes pair programming

i.e. wo developers work together at one workstation, enhancing

code quality and knowledge sharing. They write tests before


coding to ensure functionality from the start (TDD), and

frequently integrate their code into a shared repository with

automated tests to catch issues early.

4. Testing: Extreme Programming (XP) gives more importance to

testing that consist of both unit tests and acceptance test. Unit

tests, which are automated, check if specific features work

correctly. Acceptance tests, conducted by customers, ensure that

the overall system meets initial requirements. This continuous

testing ensures the software’s quality and alignment with

customer needs.

5. Listening: In the listening phase regular feedback from customers

to ensure the product meets their needs and to adapt to any

changes.

Advantages of Extreme Programming (XP)


● Slipped schedules: Timely delivery is ensured through slipping

timetables and doable development cycles.

● Misunderstanding the business and/or domain − Constant

contact and explanations are ensured by including the client on

the team.
● Canceled projects: Focusing on ongoing customer engagement

guarantees open communication with the consumer and prompt

problem-solving.

● Staff turnover: Teamwork that is focused on cooperation provides

excitement and goodwill. Team spirit is fostered by

multidisciplinary cohesion.

● Costs incurred in changes: Extensive and continuing testing

ensures that the modifications do not impair the functioning of the

system. A functioning system always guarantees that there is

enough time to accommodate changes without impairing ongoing

operations.

● Business changes: Changes are accepted at any moment since

they are seen to be inevitable.

● Production and post-delivery defects: the unit tests to find and

repair bugs as soon as possible.

You might also like