0% found this document useful (0 votes)
6 views9 pages

UNIT-4 CC

The document discusses various software process models applicable to cloud computing, including the Waterfall, V, Incremental, Spiral, and Agile models. Each model outlines distinct phases of software development, emphasizing structured approaches to requirements analysis, design, implementation, testing, and deployment. Additionally, it highlights how cloud computing enhances Agile processes through rapid provisioning, scalability, collaboration, continuous integration, and cost-effectiveness.

Uploaded by

Tech Coder
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)
6 views9 pages

UNIT-4 CC

The document discusses various software process models applicable to cloud computing, including the Waterfall, V, Incremental, Spiral, and Agile models. Each model outlines distinct phases of software development, emphasizing structured approaches to requirements analysis, design, implementation, testing, and deployment. Additionally, it highlights how cloud computing enhances Agile processes through rapid provisioning, scalability, collaboration, continuous integration, and cost-effectiveness.

Uploaded by

Tech Coder
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/ 9

UNIT-4 (Software Development in Cloud)

Software Process Model-


Software process models are used to describe the stages involved in developing,
deploying, and maintaining software applications on the cloud. The process
models provide a structured approach to software development, with each stage
building on the previous one.
There are several software process models that can be used in cloud computing,
including the Waterfall model, V model, incremental Model, Spiral Model, Agile
Model.
Waterfall model-
The Waterfall model is a traditional software development process that is often
used in cloud computing. In this model, the development process is divided into
sequential stages, with each stage building on the previous one. The stages
include requirements gathering, design, implementation, testing, and deployment.
the Waterfall model can be used to develop software applications that are
intended to be deployed and run on the cloud. The model can help ensure that the
software is thoroughly tested and meets the requirements of the cloud
environment.
Requirements- Potential requirements, deadlines and guidelines for the project
are analyzed and placed into a formal requirements document, also called
a functional specification. This stage of development defines and plans the
project without mentioning specific processes.
1. Analysis. The system specifications are analyzed to generate product
models and business logic to guide production. This is also when financial
and technical resources are audited for feasibility.
2. Design. A design specification document is created to outline technical
design requirements, such as the programming language, hardware, data
sources, architecture and services.
3. Coding and implementation. The source code is developed using the
models, logic and requirement specifications designated in the prior
phases. Typically, the system is coded in smaller components, or units,
before being put together.
4. Testing. This is when quality assurance, unit, system and beta tests
identify issues that must be resolved. This may cause a forced repeat of the
coding stage for debugging. If the system passes integration and testing,
the waterfall continues forward.
5. Operation and deployment. The product or application is deemed fully
functional and is deployed to a live environment.
6. Maintenance. Corrective, adaptive and perfective maintenance is carried
out indefinitely to improve, update and enhance the product and its
functionality. This could include releasing patch updates and new versions.
V model-
The V model is a software development process that is commonly used in cloud
computing. The V model is similar to the Waterfall model, but with a greater
emphasis on testing.
In the V model, the development process is divided into two main branches:
1.The left-hand branch represents the planning and design phases.
2.The right-hand branch represents the testing and validation phases.
The two branches are connected by a series of testing stages, with each testing
stage corresponding to a specific development stage.
Verification: It involves a static analysis method (review) done without
executing code. It is the process of evaluation of the product development process
to find whether specified requirements meet.

Validation: It involves dynamic analysis method (functional, non-functional),


testing is done by executing code. Validation is the process to classify the
software after the completion of the development process to determine whether
the software meets the customer expectations and requirements.

There are the various phases of Verification Phase of V-model:

1. Requirement analysis: This is the first step where product requirements


understood from the customer's side. This phase contains detailed
communication to understand customer's expectations and exact
requirements.
2. System Design: In this stage system engineers analyze and interpret the
business of the proposed system by studying the user requirements
document.
3. Architecture Design: The baseline in selecting the architecture is that it
should understand all which typically consists of the list of modules, brief
functionality of each module, their interface relationships, dependencies,
database tables, architecture diagrams, technology detail, etc. The
integration testing model is carried out in a particular phase.
Coding Phase: After designing, the coding phase is started. Based on the
requirements, a suitable programming language is decided. There are some
guidelines and standards for coding. Before checking in the repository, the
final build is optimized for better performance, and the code goes through
many code reviews to check the performance.

There are the various phases of Validation Phase of V-model:

1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed
during the module design phase. These UTPs are executed to eliminate
errors at code level or unit level. A unit is the smallest entity which can
independently exist, e.g., a program module. Unit testing verifies that the
smallest entity can function correctly when isolated from the rest of the
codes/ units.
2. Integration Testing: Integration Test Plans are developed during the
Architectural Design Phase. These tests verify that groups created and
tested independently can coexist and communicate among themselves.
3. System Testing: System Tests Plans are developed during System Design
Phase. Unlike Unit and Integration Test Plans, System Tests Plans are
composed by the client’s business team. System Test ensures that
expectations from an application developer are met.

Incremental Model-

Incremental Model is a process of software development where requirements


divided into multiple standalone modules of the software development cycle. In
this model, each module goes through the requirements, design, implementation
and testing phases. Every subsequent release of the module adds function to the
previous release. The process continues until the complete system achieved.

The various phases of incremental model are as follows:

1. Requirement analysis: In the first phase of the incremental model, the


product analysis expertise identifies the requirements. And the system
functional requirements are understood by the requirement analysis team. To
develop the software under the incremental model, this phase performs a crucial
role.

2. Design & Development: In this phase of the Incremental model of SDLC,


the design of the system functionality and the development method are finished
with success. When software develops new practicality, the incremental model
uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the performance
of each existing function as well as additional functionality. In the testing phase,
the various methods are used to test the behaviour of each task.

4. Implementation: Implementation phase enables the coding phase of the


development system. It involves the final coding that design in the designing
and development phase and tests the functionality in the testing phase. After
completion of this phase, the number of the product working is enhanced and
upgraded up to the final system product.

Spiral Model-

Spiral Model is a risk-driven software development process model. It is a


combination of waterfall model and iterative model. Spiral Model helps to adopt
software development elements of multiple process models for the software
project based on unique risk patterns ensuring efficient development process.

1. Planning- The first phase of the Spiral Model is the planning phase,
where the scope of the project is determined and a plan is created for the
next iteration of the spiral.
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.

Agile Model-

The meaning of Agile is swift or versatile."Agile model" refers to a software


development approach based on iterative development. Agile methods break
tasks into smaller iterations, or parts do not directly involve long term planning.
The project scope and requirements are laid down at the beginning of the
development process. Plans regarding the number of iterations, the duration and
the scope of each iteration are clearly defined in advance.

Phases of Agile Model-

1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
1. Requirements gathering: In this phase, you must define the requirements.
You should explain business opportunities and plan the time and effort needed to
build the project. Based on this information, you can evaluate technical and
economic feasibility.

2. Design the requirements: When you have identified the project, work with
stakeholders to define requirements. You can use the user flow diagram or the
high-level UML diagram to show the work of new features and show how it will
apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work
begins. Designers and developers start working on their project, which aims to
deploy a working product. The product will undergo various stages of
improvement, so it includes simple, minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.

5. Deployment: In this phase, the team issues a product for the user's work
environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the
team receives feedback about the product and works through the feedback.

How cloud meets Agile process-

Cloud computing and Agile processes are two distinct but complementary
concepts that can be effectively combined to enhance software development and
delivery. Here are some ways that cloud computing meets agile processes:

1. Rapid Provisioning: Cloud computing provides developers with the


ability to rapidly provision computing resources like servers, databases,
and storage. This allows agile teams to quickly set up environments for
development, testing, and deployment without the need for significant
upfront investment in hardware.
2. Scalability: Cloud computing allows developers to scale up or down the
computing resources needed for their applications as required. This is
particularly important for agile teams that prioritize flexibility and
adaptability in their development process.
3. Collaboration: Cloud computing can facilitate collaboration between
team members working on the same project, regardless of their physical
location. Agile teams can use cloud-based collaboration tools like project
management software, version control systems, and communication
platforms to work together more effectively.
4. Continuous Integration and Delivery: Cloud computing provides the
infrastructure necessary to implement continuous integration and delivery
(CI/CD) practices, which are central to Agile development. CI/CD
involves automating the build, testing, and deployment processes, allowing
teams to deliver new features and fixes quickly and with high quality.
5. Cost-effectiveness: Cloud computing can help agile teams save money by
avoiding the need to purchase and maintain their own hardware and
infrastructure. Cloud services are often billed on a pay-per-use basis, which
can help keep costs under control.

Cloud Aware software development using SaaS and PaaS technology-

Cloud aware software development refers to the process of building software


applications using cloud computing technology such as SaaS (Software as a
Service) and PaaS (Platform as a Service).

SaaS allows developers to build software applications that are hosted and
delivered over the internet, eliminating the need for local hardware and
infrastructure. This allows for faster development, deployment, and scaling of
applications.

PaaS, on the other hand, provides developers with a complete platform for
building, deploying, and managing applications without having to worry about
the underlying infrastructure. PaaS providers offer a wide range of services such
as web servers, databases, and development tools, making it easier for developers
to build and deploy their applications.

Here are some key benefits of using SaaS and PaaS for cloud aware software
development:

1. Increased agility: SaaS and PaaS allow developers to quickly build, test,
and deploy applications, reducing the time-to-market.
2. Scalability: SaaS and PaaS offer the ability to scale applications
horizontally or vertically, enabling them to handle increasing workloads
and user demand without requiring significant investment in hardware or
infrastructure.
3. Lower costs: With SaaS and PaaS, developers can avoid the capital
expenses associated with building and maintaining on-premise
infrastructure. They also typically pay only for the resources they use,
making it a cost-effective solution.
4. Improved collaboration: SaaS and PaaS enable teams to work together in
a more collaborative manner, with all team members having access to the
same resources and tools.
5. Increased security: SaaS and PaaS providers typically offer high levels of
security, including encryption, regular backups, and other measures to
protect data.

You might also like