Devops UNIT 1
Devops UNIT 1
OF
CSE(AIML,CS,DS)
DEVOPS MATERIAL
UNIT I
Phases of Software Development life cycle. Values and principles of agile software
development.
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.
What is SDLC?
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.
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.
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
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
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.
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
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.
(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.
Page | 6
(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:
Disadvantages of V-Model:
Page | 7
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.
Prototype model reduces the cost and time of development as the defects are found
much earlier.
Page | 8
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
4) Spiral Model
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.
Planning
Risk Analysis
Engineering
Evaluation
Page | 10
(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.
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.
Page | 11
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.
Inception phase
Elaboration Phase
Construction Phase
Transition 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.
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.
Page | 12
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.
Page | 13
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.
Big Bang models cannot be used for large, ongoing & complex projects.
High risk and uncertainty.
Page | 14
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 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
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
Requirements
Design
Develop
Test
Deploy
Review
Launch
Page | 17
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.
Planning
Analysis
Execution
Wrapping
Closure
Crystal Methodologies
Chartering
Cyclic Delivery
In the delivery process there are at least two cycles which consist of the following pointers:
Wrap up
Time Boxing
MoSCoW Rules
Prototyping
Preproject
Feasibility Study
Business Study
Functional Model Iteration
Design and Build Iteration
Implementation
Post Project
Page | 19
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
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
Agile Principles
The Agile Principles are based on the Agile Manifesto. They can be interpreted as:
Page | 21
Agile Values