0% found this document useful (0 votes)
14 views23 pages

Devops UNIT 1

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)
14 views23 pages

Devops UNIT 1

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/ 23

DEPARTMENT

OF
CSE(AIML,CS,DS)
DEVOPS MATERIAL

NAME OF THE STUDENT:


HALLTICKET NO:
BRANCH:

Prepared by:G.JEEVANA MANIKANTA M.TECH (CSE)


R20 - DEVOPS DEPARTMENT OF CSE(AIML,CS,DS)

UNIT I

Phases of Software Development life cycle. Values and principles of agile software

development.

Software Development life cycle

Software Development Life Cycle (SDLC) is a process used by the software industry to
design, develop and test high quality software’s. The SDLC aims to produce a high-quality
software that meets or exceeds customer expectations, reaches completion within times
and cost estimates.

 SDLC is the acronym of Software Development Life Cycle.


 It is also called as Software Development Process.
 SDLC is a framework defining tasks performed at each step in the software
development process.
 ISO/IEC 12207 is an international standard for software life-cycle processes. It aims
to be the standard that defines all the tasks required for developing and maintaining
software.

What is SDLC?

SDLC is a process followed for a software project, within a software organization. It


consists of a detailed plan describing how to develop, maintain, replace and alter or
enhance specific software.

The life cycle defines a methodology for improving the quality of software and the overall
development process.

The following figure is a graphical representation of the various stages of a typical SDLC.

[Type here] [Type here] [Type here]


R20 - DEVOPS

Stage1: Planning and requirement analysis

 Requirement Analysis is the most important and necessary stage in SDLC.


 The senior members of the team perform it with inputs from all the stakeholders and
domain experts or SMEs in the industry.
 Planning for the quality assurance requirements and identifications of the risks
associated with the projects is also done at this stage.
 Business analyst and Project organizer set up a meeting with the client to gather all
the data like what the customer wants to build, who will be the end user, what is the
objective of the product. Before creating a product, a core understanding or
knowledge of the product is very necessary.

Stage2: Defining Requirements

 Once the requirement analysis is done, the next stage is to certainly represent and
document the software requirements and get them accepted from the project
stakeholders.
 This is accomplished through "SRS"- Software Requirement Specification
document which contains all the product requirements to be constructed and
developed during the project life cycle.

Page | 2
Stage3: Designing the Software

The next phase is about to bring down all the knowledge of requirements, analysis, and
design of the software project. This phase is the product of the last two, like inputs from
the customer and requirement gathering.

Stage4: Developing the project

In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow the
coding guidelines described by their management and programming tools like compilers,
interpreters, debuggers, etc. are used to develop and implement the code.

Stage5: Testing

 After the code is generated, it is tested against the requirements to make sure that
the products are solving the needs addressed and gathered during the requirements
stage.
 During this stage, unit testing, integration testing, system testing, acceptance testing
are done.

Stage6: Deployment

 Once the software is certified, and no bugs or errors are stated, then it is deployed.
 Then based on the assessment, the software may be released as it is or with
suggested enhancement in the object segment.
 After the software is deployed, then its maintenance begins.

Stage7: Maintenance

 Once when the client starts using the developed systems, then the real issues come
up and requirements to be solved from time to time.
 This procedure where the care is taken for the developed product is known
as maintenance.

Page | 3
R-20 DEVOPS Department of AIML,CS,DS

Software Development Life Cycle Models

A software life cycle model is a descriptive representation of the software development


cycle. SDLC models might have a different approach but the basic phases and activity
remain the same for all the models.

1) Waterfall Model

Waterfall model is the very first model that is used in SDLC. It is also known as the linear
sequential model.

In this model, the outcome of one phase is the input for the next phase. Development of the
next phase starts only when the previous phase is complete.

 First, Requirement gathering and analysis is done. Once the requirement is freeze
then only the System Design can start. Herein, the SRS document created is the
output for the Requirement phase and it acts as an input for the System Design.
 In System Design Software architecture and Design, documents which act as an
input for the next phase are created i.e. Implementation and coding.
 In the Implementation phase, coding is done and the software developed is the input
for the next phase i.e. testing.
 In the testing phase, the developed code is tested thoroughly to detect the defects in
the software. Defects are logged into the defect tracking tool and are retested once
fixed. Bug logging, Retest, Regression testing goes on until the time the software is
in go-live state.
 In the Deployment phase, the developed code is moved into production after the
sign off is given by the customer.
 Any issues in the production environment are resolved by the developers which
come under maintenance.

Page | 4

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Advantages of the Waterfall Model:

 Waterfall model is the simple model which can be easily understood and is the one
in which all the phases are done step by step.
 Deliverables of each phase are well defined, and this leads to no complexity and
makes the project easily manageable.

Disadvantages of Waterfall model:

 Waterfall model is time-consuming & cannot be used in the short duration projects
as in this model a new phase cannot be started until the ongoing phase is completed.
 Waterfall model cannot be used for the projects which have uncertain requirement
or wherein the requirement keeps on changing as this model expects the requirement
to be clear in the requirement gathering and analysis phase itself and any change in
the later stages would lead to cost higher as the changes would be required in all the
phases.

Page | 5

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

2) V-Shaped Model

V- Model is also known as Verification and Validation Model. In this model Verification
& Validation goes hand in hand i.e. development and testing goes parallel. V model and
waterfall model are the same except that the test planning and testing start at an early stage
in V-Model.

(A) Verification Phase:

(i) Requirement Analysis: In this phase, all the required information is gathered &
analyzed. Verification activities include reviewing the requirements.

(ii) System Design: Once the requirement is clear, a system is designed i.e.
architecture, components of the product are created and documented in a design document.

(iii) High-Level Design: High-level design defines the architecture/design of modules.


It defines the functionality between the two modules.

(iv) Low-Level Design: Low-level Design defines the architecture/design of


individual components.

(v) Coding: Code development is done in this phase.

Page | 6

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

(B) Validation Phase:

(i) Unit Testing: Unit testing is performed using the unit test cases that are designed and is
done in the Low-level design phase. Unit testing is performed by the developer itself. It is
performed on individual components which lead to early defect detection.

(ii) Integration Testing: Integration testing is performed using integration test cases in
High- level Design phase. Integration testing is the testing that is done on integrated
modules. It is performed by testers.

(iii) System Testing: System testing is performed in the System Design phase. In this
phase, the complete system is tested i.e. the entire system functionality is tested.

(iv) Acceptance Testing: Acceptance testing is associated with the Requirement Analysis
phase and is done in the customer’s environment.

Advantages of V – Model:

 It is a simple and easily understandable model.


 V –model approach is good for smaller projects wherein the requirement is defined
and it freezes in the early stage.
 It is a systematic and disciplined model which results in a high-quality product.

Disadvantages of V-Model:

 V-shaped model is not good for ongoing projects.


 Requirement change at the later stage would cost too high.

Page | 7

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

3) Prototype Model

The prototype model is a model in which the prototype is developed prior to the actual
software.

Prototype models have limited functional capabilities and inefficient performance when
compared to the actual software. Dummy functions are used to create prototypes. This is a
valuable mechanism for understanding the customers’ needs.

Software prototypes are built prior to the actual software to get valuable feedback from the
customer. Feedbacks are implemented and the prototype is again reviewed by the customer
for any change. This process goes on until the model is accepted by the customer.

Once the requirement gathering is done, the quick design is created and the prototype
which is presented to the customer for evaluation is built.

Customer feedback and the refined requirement is used to modify the prototype and is
again presented to the customer for evaluation. Once the customer approves the prototype,
it is used as a requirement for building the actual software. The actual software is build
using the Waterfall model approach.

Advantages of Prototype Model:

 Prototype model reduces the cost and time of development as the defects are found
much earlier.

Page | 8

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

 Missing feature or functionality or a change in requirement can be identified in


the evaluation phase and can be implemented in the refined prototype.
 Involvement of a customer from the initial stage reduces any confusion in
the requirement or understanding of any functionality.

Disadvantages of Prototype Model:

Since the customer is involved in every phase, the customer can change the requirement of
the end product which increases the complexity of the scope and may increase the delivery
time of the product.

Page | 9

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

4) Spiral Model

The Spiral Model includes iterative and prototype approach.

Spiral model phases are followed in the iterations. The loops in the model represent the
phase of the SDLC process i.e. the innermost loop is of requirement gathering & analysis
which follows the Planning, Risk analysis, development, and evaluation. Next loop is
Designing followed by Implementation & then testing.

Spiral Model has four phases:

 Planning
 Risk Analysis
 Engineering
 Evaluation

Page | 10

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

(i) Planning:

The planning phase includes requirement gathering wherein all the required information is
gathered from the customer and is documented. Software requirement specification
document is created for the next phase.

(ii) Risk Analysis:

In this phase, the best solution is selected for the risks involved and analysis is done by
building the prototype.

For Example, the risk involved in accessing the data from a remote database can be that
the data access rate might be too slow. The risk can be resolved by building a prototype of
the data access subsystem.

(iii) Engineering:

Once the risk analysis is done, coding and testing are done.

(iv) Evaluation:

Customer evaluates the developed system and plans for the next iteration.

Advantages of Spiral Model:

 Risk Analysis is done extensively using the prototype models.


 Any enhancement or change in the functionality can be done in the next iteration.

Disadvantages of Spiral Model:

 The spiral model is best suited for large projects only.


 The cost can be high as it might take a large number of iterations which can lead to
high time to reach the final product.

Page | 11

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

5) Iterative Incremental Model

The iterative incremental model divides the product into small chunks.

For Example, Feature to be developed in the iteration is decided and implemented. Each
iteration goes through the phases namely Requirement Analysis, Designing, Coding, and
Testing. Detailed planning is not required in iterations.

Once the iteration is completed, a product is verified and is delivered to the customer for
their evaluation and feedback. Customer’s feedback is implemented in the next iteration
along with the newly added feature.

Hence, the product increments in terms of features and once the iterations are completed
the final build holds all the features of the product.

Phases of Iterative & Incremental Development Model:

 Inception phase
 Elaboration Phase
 Construction Phase
 Transition Phase

(i) Inception Phase:

Inception phase includes the requirement and scope of the Project.

(ii) Elaboration Phase:

In the elaboration phase, the working architecture of a product is delivered which covers
the risk identified in the inception phase and also fulfils the non-functional requirements.

(iii) Construction Phase:

In the Construction phase, the architecture is filled in with the code which is ready to be
deployed and is created through analysis, designing, implementation, and testing of the
functional requirement.

(iv) Transition Phase:

In the Transition Phase, the product is deployed in the Production environment.

Page | 12

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Advantages of Iterative & Incremental Model:

 Any change in the requirement can be easily done and would not cost as there is a
scope of incorporating the new requirement in the next iteration.
 Risk is analyzed & identified in the iterations.
 Defects are detected at an early stage.
 As the product is divided into smaller chunks it is easy to manage the product.

Disadvantages of Iterative & Incremental Model:

 Complete requirement and understanding of a product are required to break down


and build incrementally.

Page | 13

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

6) Big Bang Model

Big Bang Model does not have any defined process. Money and efforts are put together as
the input and output come as a developed product which might be or might not be the same
as what the customer needs.

Big Bang Model does not require much planning and scheduling. The developer does the
requirement analysis & coding and develops the product as per his understanding. This
model is used for small projects only. There is no testing team and no formal testing is
done, and this could be a cause for the failure of the project.

Advantages of Big Bang Model:

 It’s a very simple Model.


 Less Planning and scheduling is required.
 The developer has the flexibility to build the software of their own.

Disadvantages of the Big Bang Model:

 Big Bang models cannot be used for large, ongoing & complex projects.
 High risk and uncertainty.

Page | 14

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

7) Agile Model

Agile Model is a combination of the Iterative and incremental model. This model focuses
more on flexibility while developing a product rather than on the requirement.

In Agile, a product is broken into small incremental builds. It is not developed as a


complete product in one go. Each build increments in terms of features. The next build is
built on previous functionality.

In agile iterations are termed as sprints. Each sprint lasts for2-4 weeks. At the end of each
sprint, the product owner verifies the product and after his approval, it is delivered to the
customer.

Customer feedback is taken for improvement and his suggestions and enhancement are
worked on in the next sprint. Testing is done in each sprint to minimize the risk of any
failures.

Page | 15

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Advantages of Agile Model:

 It allows more flexibility to adapt to the changes.


 The new feature can be added easily.
 Customer satisfaction as the feedback and suggestions are taken at every stage.

Disadvantages:

 Lack of documentation.
 Agile needs experienced and highly skilled resources.
 If a customer is not clear about how exactly they want the product to be, then the
project would fail.

Page | 16

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Introduction to Agile Software Development

To understand the concepts of agile in software development it is probably important to


decipher the meaning of the term itself. The best example that comes to my mind is “The
Covid Era” and how the world adapted to it with agility. Within days human civilization
brought about ways to make the best out of the “stuck in a home situation”. This approach
of thinking quickly, come to a solution, and act upon it forms the basis of Agility. In a
matter of a night, schools, colleges, and offices shifted completely from an office space
into the corner of our bedroom with utmost ease.

Agile Software Development can be described as a collection of frameworks. The


Manifesto for Agile Software Development contains the set of values and principles which
define Agile Software Development. These values and principles are incorporated into
particular situations to help figure out the solutions arising in software development.

Agile Software Development Life Cycle

The different stages of Agile Software Development Life Cycle are:

 Requirements
 Design
 Develop
 Test
 Deploy
 Review
 Launch

Page | 17

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

What are Agile Methodologies?

A few of the popular Agile Methodologies are listed below:

Scrum

As one of the most important Agile Methodologies, Scrum is used to do tasks in a scenario
where teams are involved. The idea of scrum comes from the game of rugby and it helps in
the proper working of smaller teams. The three aspects of scrum can be described as
below:

 Scrum Master helps in building the team, look after sprint meetings and take care
of problems in the path of progress.
 Product Owner helps in building the product backlog. The owner also gives the
most priority to the backlog and ensures that there is delivery after every iteration.
 The Scrum Team looks after their work and completes the sprint.

Extreme Programming

This methodology is helpful when the demand is not stable i.e. the requirement of the
demand is always changing. It can be also used when there is uncertainty regarding the
functionality of the whole system. Thus, with the help of extreme programming, the
product is released in shorter intervals of time thus creating checkpoints and improving
productivity. The aim of extreme programming works with respect to the customer.

The different phases of extreme programming are:

 Planning
 Analysis
 Execution
 Wrapping
 Closure

Crystal Methodologies

The different aspects of Crystal Methodology are:

Chartering

The phases of chartering are:


Page | 18

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

 Forming the development team


 Participating in feasibility analysis
 Bringing a plan on the table
 Making the development methodology better.

Cyclic Delivery

In the delivery process there are at least two cycles which consist of the following pointers:

 The release plan is updated and refined.


 Subsets of requirements are implemented.
 Products delivery to the users
 Project plan is reviewed.

Wrap up

Dynamic Software Development Method (DSDM)

Dynamic Software Development Method follows a Rapid Application Development


approach. In DSDM, the users participate actively and the team has the ability to make
decisions. The different techniques used in DSDM are:

 Time Boxing
 MoSCoW Rules
 Prototyping

The phases of DSDM are

 Preproject
 Feasibility Study
 Business Study
 Functional Model Iteration
 Design and Build Iteration
 Implementation
 Post Project

Page | 19

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Feature Driven Development

As the name suggests, FDD helps in designing and building features.FDD has small phases
where the features are developed. FDD keeps the following in mind while development

 Domain Object Modelling


 Feature Teams
 Inspections
 Regular Builds
 Ownership by the class
 Configuration Management

Lean Software Development

Lean Software Development works to increase the speed of software development


and decreases the cost. The different ste[s of Lean Software Development are:

 Removing Waste
 Increasing Learning
 Delivering early
 An empowered team
 Instiliting integrity
 Optimizing the whole process

Kanban

The Japanese word Kanban refers to a card that has all the information which is required
and done on the product during its process of completion. This method is widely used in
software development.

Page | 20

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Agile Principles

The Agile Principles are based on the Agile Manifesto. They can be interpreted as:

 Satisfy the customer with recurring delivery of software at regular intervals.


 If there are changes in requirements then accept them, even if they arrive late in
the development cycle
 Deliver the software at intervals between 3 weeks to 3 months.
 The developers and the businessmen should work in collaboration.
 Building projects keeping in mind individuals who are highly motivated and
then supporting them to get the work done.
 Using face to face conversation as the most effective way of communication.
 To measure progress the software should be working.
 The development should be sustainable and there should be consistency.
 Technical excellence and a good design help in better agility.
 Simplicity is the key.
 A team which is self-organizing helps to deliver best architecture, design
and requirements.
 The team decides and discusses ways in which the team can be more effective.

Page | 21

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse)


R-20 DEVOPS Department of AIML,CS,DS

Agile Values

The important agile values are:

 Individuals and interactions


Along with the software tools and processes, agile suggests that the people working
in the processes are equally if not more important. A project can be the most
successful if the people working on it are the best suited for it.
 A working software
Working software is more important. It is of utmost importance according to the
agile manifesto to provide the customers with working software than to have piles
and piles of documentation.
 Customer collaboration
Previously there would only be a contract between the customer and the developer.
So after the project would be completed it would be handed over to the customer.
Many times a situation would arise that the product asked for and the product
delivered was not the same. Thus agile insists on continuous delivery so that the
developer and the customer are on the same page and can react to changing market
conditions.
 Responding to change
According to the Agile Manifesto, there might be many phases in software
development when changes can be done to the product. These changes should be
encouraged irrespective of the phase the project is in. This helps in achieving better
goals and revised results.

PREPARED BY:G.JEEVANA MANIKANTA M.Tech(Cse) Page | 22

You might also like