SDLC
SDLC
SDLC
-
Methodologies
Contents
-
SDLC -
SCM Fucs)
scrume -
Sprint/Events/roles/pillars virtualization - docker
, scaling Verticetal
-
Agile Containerization
-
-
Testing
-
Container Orchestration
-
↑
-
G
j O
Pre-requisites
-
§ Basic Linux knowledge
-
Net
v Java Node +
§ Any Development Platforms
-
>
-
§ Software is considered to be collection of executable programming code, associated libraries and documentations
- -
§ Engineering
-
-
§ All about developing products using well defined principles, methods and procedures
I packages
rI
-
Compiler
- Website
-war
-
bundle ,
,
-
windows application
-
.
msi ,
exe
.. linux application
-
. deb .. upm
drug
frameworks - android app
·
-
aple gab ,
-
iOS app
- -
ipa
What is Software Engineering?
§ Software engineering is an engineering branch associated with development of software product using well-defined
scientific principles, methods and procedures
-
§ The application of a systematic, disciplined , quantifiable approach to the development, operation and maintenance of
software
- -
---
§ Establishment and use of sound engineering principles in order to obtain software that is reliable and work efficiently on
real machines
-
§ The process of developing a software product using software engineering principles and methods
-
Software Types
-
§ Application Software
-
· Photoshop ,
office [word ,
Excel ...
]
§ Engineering/Scientific Software : AutoCAD ,
Catia ,
Matlab
-
§ Embedded Software
-
: RTOS
§ AI Software
-
: Chat GPT ,
Bard ,
Gemini
.
told apps]
-
§ Web/Mobile Software
-
Why SE is important
-
§ Decreases time
-
Characteristics of good software features e
quality
-
§ A software product can be judged by what it offers and how well it can be used
-
§ Operational
-
§ Transactional
-
§ Maintenance
-
Operational >
- functional (logical)
-
-
§ Efficiently: Software should efficiently use the storage and space computation power memory
- - ,
§ Correctness: Software should provide all the functionalities correctly without having any bug/issue
- - -
§ -
Dependability: Software should contain all the dependencies in its package
- -
* **§ Security: Software should keep the data safe from any external threat
-
security
confidential [hidden] - encryption
-
Integrity
- a valid user must get information uploaded -What user knows - password
-
A -Authentication e
validating user
[user name & Password] >
-
CFA--what user has
e opp (Sms email)
,
↳ horizontal
scaling
Transitional
-
§ This
-
aspect is important when the software is moved from one platform to another
§ Can be measured on -
§ Portability: If the software can perform the same operations on different environments and platforms, that shows its Portability
-
§ Reusability: If on doing slight modifications to the code of the software, we can use it for a different purpose, then it is reusable
-
# ↳
-
-exeod
client
>
-
E
I
I
- CPU-2x
↓
Xeon
...
ST
F CPU - 8X Xeo
... ST
Vertical
scaling Verticeatal -
upgrading/degrading hardware
- CONS
-
- downtime is required
·
-
FI stagingEnvironment
AIS-Elastic LB
#
tester
-
pre-production
High Availability
Environment
·
production
·
-
Environment
I HAPROXY - Round Robin
SI
load balances
- 19 .
myserver
20 21
.
. 22
. Com
end user
Maintenance
-
§ Briefs about how well a software has the capabilities to maintain itself in the ever-changing environment
-
§ Can be measured on
§ Maintainability: The software should be easy to maintain by any user
----
§ Flexibility: The software should be flexible to any changes made to it
-
§ Extensibility: There should not be any problem with the software on increasing the number of functions performed by it
- - -
=>
+ Software
SDP Development Process
Software Development
-
Life Cycle
-
-
Overview
-
the intended software product
②
-
§ Is a framework defining tasks performed at each step in the software development Defining
-
process
-
§ Consists of detailed plan (stages) of describing how to develop, test, deploy and
-
-
⑤ Testing
-
⑧ Deployment
-
Registere igin . .
the customer, the sales department, market surveys and domain Defining
experts in the industry
- -
-
>
-
subjectHates Export (SME)
§ This information is then used to plan the basic project approach and
- Designing
to conduct product feasibility study in the economical, operational
and technical areas
- -
Building
-
the risks associated with the project is also done in the planning
-
stage
-
Testing
-
Defining Requirements
-
§ Once the requirement analysis is done the next step is to clearly define and document the
-
Planning
product requirements and get them approved from the customer or the market analysts
-
SRS
§ This is done through an SRS (Software Requirement Specification) document which
Defining
-
consists of all the product requirements to be designed and developed during the project life
---
-
-
cycle
-
Designing
#
El Building
ja
&
Developers
-
§ Based on the requirements specified in SRS, usually more than one design approach
Defining
-
§ This DDS is reviewed by all the important stakeholders and based on various ③ Designing
parameters as risk assessment, product robustness, design modularity, budget and
-
-
----
time constraints, the best design approach is selected for the product
-
-
§ A design approach clearly defines all the architectural modules of the product along
-
Building
with its communication and data flow representation with the external and third
-
§ The internal design of all the modules of the proposed architecture should be clearly
defined with the minutest of the details in DDS
#m
architecture
-
Deployment
- client serves
peer
to pees
schema
-
-
color scheme use
>
- monolithic -
-
- micro-services
Building or Developing the Product
-
§ In this stage of SDLC the actual development starts and the product is
--
Planning
-
built + SRS
§ The programming code is generated as per DDS during this stage Defining
--
- - ④ Building
debuggers, etc. are used to generate the code -
§ This stage is usually a subset of all the stages as in the modern SDLC models Planning
-
§ The testing activities are mostly involved in all the stages of SDLC
- &
§ However, this stage refers to the testing only stage of the product where product
- Defining
defects are reported, tracked, fixed and retested, until the product reaches the quality
-
Designing
Verification vs Validation
.
developes tester
Building
well tested product
⑤ Testing
Deployment
Deployment in the Market and Maintenance
-
-
-
-Ie
formally in the appropriate market
- staging pre-production
,
, prod
§ Sometimes product deployment happens in stages as per the business
- Defining
strategy of that organization
-
§ The product may first be released in a limited segment and tested in the
- Designing
real business environment (UAT- User acceptance testing)
-
§ After the product is released in the market, its maintenance is done for
--
Testing
the existing customer base
-
Website - cloud
mobile ⑳ Deployment
- -
store
Apple App
je-android-Google
ios -
play store
Amazon ,
Samsung,
Xiomi
SDLC Models
§ There are various software development life cycle models defined and designed which are followed during the software
- - -
development process
-
§ Models
§ Waterfall Model
-
j
--
§ Iterative Model ⑳
-
§ Spiral Model
-
§ V-Model
-
§ Agile Model ③ * * * *
-
Waterfall Model
O
- 0
o o
Requirement Specification
-
: Planning + defining 000
System Design : designing Producte
&
-
Design Implementation
- coding
-
System Deployment : deployment
Software Maintenance
-
Waterfall Model – Procs and Cons
§ Simple and easy to understand and use § No working software is produced until late during the life
§ Easy to manage due to the rigidity of the model cycle
§ High amounts of risk and uncertainty
§ Each phase has specific deliverables and a review process
§ Not a good model for complex and object-oriented projects
§ Phases are processed and completed one at a time
§ Poor model for long and ongoing projects
§ Works well for smaller projects where requirements are very
well understood § Not suitable for the projects where requirements are at a
moderate to high risk of changing. So, risk and uncertainty
§ Clearly defined stages
is high with this process model
§ Well understood milestones
§ It is difficult to measure progress within stages
§ Easy to arrange tasks
§ Cannot accommodate changing requirements
§ Process and results are well documented
§ Adjusting scope during the life cycle can end a project
§ Integration is done as a "big-bang. at the very end, which
doesn't allow identifying any technological or business
bottleneck or challenges early
Iterative Model
-
e-commerce
D
testing
-
- >
-
-
users -
testing
"
v >
-
-
products >
-
-
cart >
- -
-
orders
Iterative Model Pros and Cons
§ Some working functionality can be developed quickly and § More resources may be required
early in the life cycle
§ Although cost of change is lesser, but it is not very suitable
§ Results are obtained early and periodically for changing requirements
§ Parallel development can be planned § More management attention is required
§ Progress can be measured
§ System architecture or design issues may arise because not
§ Less costly to change the scope/requirements all requirements are gathered in the beginning of the entire
§ Testing and debugging during smaller iteration is easy life cycle
§ Risks are identified and resolved during iteration; and each § Defining increments may require definition of the complete
iteration is an easily managed milestone system
§ Easier to manage risk - High risk part is done first § Not suitable for smaller projects
§ With every increment, operational product is delivered § Management complexity is more
§ Issues, challenges and risks identified from each increment § End of project may not be known which is a risk
can be utilized/applied to the next increment
§ Risk analysis is better § Highly skilled resources are required for risk analysis
§ It supports changing requirements § Projects progress is highly dependent upon the risk analysis
phase
§ Initial Operating time is less
active-changing
-
-
Agile Methodologies
-
-
Agile Development
-
↓
Feedback Planning
-
- -
Release
- Agile -
Designing
deployment
-
-
Testing
-
Development
m e m
- rules/promises
Agile Manifesto
-
§ In February 2001, at the Snowbird resort in Utah, 17 software developers met to discuss lightweight development methods
-
§ The
-
outcome of their meeting was the following Agile Manifesto for software development
§ We
-
are uncovering better ways of developing - software by doing it and helping others do it
§ Through this work, we have come to value
- -
§ Highest priority is given to satisfy the requirements of customers through early and continuous delivery of valuable software
§ Welcome Change
-
--
* **
§ Deliver a working software frequently, ranging from a few weeks to a few months, considering shorter time-scale
§ Collaboration
-
* **
-
§ Business people and developers must work together during the entire life of a project
§ Motivation
-
-
§ Face-to-face conversation is the most efficient and effective method of conveying information to and within a development team
Principles of Agile Manifesto
§ Measure the Progress as per the Working Software
§ Working software is the key and it should be the primary measure of progress
§ Maintain Constant Pace
§ Agile processes aim towards sustainable development
§ The business, the developers, and the users should be able to maintain a constant pace with the project
§ Monitoring
§ Pay regular attention to technical excellence and good design to enhance agility
§ Simplicity
§ Keep things simple and use simple terms to measure the work that is not completed
§ Self-organized Teams
§ An agile team should be self-organized and should not depend heavily on other teams because the best architectures, requirements,
and designs emerge from self-organized teams
§ Review the Work Regularly
§ Review the work done at regular intervals so that the team can reflect on how to become more effective and adjust its behavior
accordingly
Agile Methodologies
-
-
§ Scrum * * *↓
-
-
§ Crystal Clear
-
§ Extreme Programming
-
· Kanban
What is Scrum ?
- ↑ was a
§ Scrum isn't a process, it's a framework that facilitates processes amongst other things
Enhancements/features
- -
§ Management framework with far reaching abilities to control and manage the iterations and increments in all project types
-
§ The framework is made up of a Scrum team, individual roles, events, artefacts, and rules
----
Scrum Principles
§ Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
§ Welcome changing requirements, even late in development
§ Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter
timescale
§ Business people and developers must work together daily throughout the project
§ Build projects around motivated individuals
§ The most efficient and effective method of conveying information to and within a development team is face-to-face
conversation
§ Working software is the primary measure of progress
§ Agile processes promote sustainable development
§ Continuous attention to technical excellence and good design enhances agility
§ Simplicity, the art of maximizing the amount of work not done, is essential
§ The best architectures, requirements, and designs emerge from self-organizing teams
§ At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
Scrum Pillars
-
-
All parts of the process should be transparent, open, and honest for everyone to see
-
Transparency
- Everything that is worked on during a sprint can be inspected by the team to
-
make sure that it is achieving what it needs to.
-
-
things
-
aren't going according to plan, the team will need to
change up what they're doing to fix this as quickly as possible
-
Adaptation
-
Scrum Values
-
&
Event 1 to 4 week
te g
Focus Focus on the sprint and its goal
-
-
Commitment
--
Commitment to the team and sprint goal
Respect, for each other by helping people to learn the things that you're good at, and not judging the
Respect - -
Be open and honest and let people know what you're struggling with challenges and problems that
Openness -
- are stopping you from achieving success
-
How scrum pillars help us? >
- Sprint Goal
-
Self-organization • This results in healthier shared ownership among the team members
-
• It is also an innovative and creative environment which is conducive to growth
-
Collaboration • Essential principle which focuses collaborative work
Event
- Sprint
• Defines how time is a limiting constraint in Scrum method
Time-boxing
-
• Daily Sprint planning and Review Meetings
• Emphasizes how to manage changes better and build products which satisfy customer needs
Iterative Development
-
• Defines the organization's responsibilities regarding iterative development
Scrum Roles >
- customer/client
IeVsuser
-
-
• Job to understand and engage with the stakeholders to understand what needs to be done and
Product create that backlog
--
Owner
-
↳s pending
-
-
• Helps the entire team achieve the scrum goals and work within scrum
Scrum
-
-
• Support the product owner with their responsibilities in terms of managing the backlog as well as,
-
Master supporting the development team
-
-
• The people who are creating the product or service and delivering done increments at the end of
each sprint
- -
Dev Team -
- -
• Includes developers, tester, writers, graphics artists and others
-
Dev =
Developer + Testers + Vi/UX designer
Strum team
-
II
Det
- product owner >
- client side
↳ PMP
ima
>
- Deu Team
nam
- -
>
- coder
= > Developers
>
- Team Leader of team
=>
&
>
- testers
timeline Hohrs
-commerce of a
sprint : week =
Fash
-
-
tice
a
user Sprint
Benews
-
- Story
#
blacklog &&
I
&
registrationser tabled)
-
-
API-BK
2012 Create an C
40 has
③ Create
-
a
Registration Page -
FR
story 3
↳
20hr-D Integrate the API
product
hohr create a Login Page - FR Story & & 5
backlog
Lohr Integrate the API
#11I sprint 3
-
product
-
-
order
cart
:
- ML
Scrum Artifacts
-
stories stories
Collection
gall collection
g Enhancement or a new
- -
• it should probably be about between four and eight hours
-
daily standup
- [avary day]
• This is a very short time-boxed event
Daily Scrum -
-
• Usually only lasting no more than 15 minutes
-
Sprint
-
• It is really the beating heart of scrum and all the scrum events take place in it
-
Agile vs traditional models
§&
Jira – https://www.atlassian.com/software/jira/
-
* * H
§ Clarizen – https://www.clarizen.com/
-
§ GitScrum – https://site.gitscrum.com/
-