0% found this document useful (0 votes)
1K views

Software Engineering Cheat Sheet

This document provides descriptions and examples of common software engineering concepts. It defines software engineering as the systematic application of engineering approaches to software development. It also defines other key terms like software architecture, design patterns, throttling, circuit breaker, API, and API-first architecture. For each term, it provides a conceptual definition, real-world illustration, and discussion of relevance to software engineering practices.

Uploaded by

fikri Firmansyah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

Software Engineering Cheat Sheet

This document provides descriptions and examples of common software engineering concepts. It defines software engineering as the systematic application of engineering approaches to software development. It also defines other key terms like software architecture, design patterns, throttling, circuit breaker, API, and API-first architecture. For each term, it provides a conceptual definition, real-world illustration, and discussion of relevance to software engineering practices.

Uploaded by

fikri Firmansyah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Software Cheat Sheet

Description Real world


Term Concept Illustration Relevance to Ki
/Analogy Example

• Software systems will


always require support and
development
The systematic • Good practices include: What is Software
Software application of engineering Click to view Engineering and Its
coding standards, version
engineering approaches to the control, containerisation, illustration Importance In Our
development of software common templates & Daily Life
patterns, code reviews,
continual refactoring,
automate / codify everything

• Provides a base for re-use of


elements and decisions
• Supports early design
decisions that impact a The top 5 software
system’s development, architecture
Software The structure of an deployment, and
Click to view
patterns: How
architecture information system maintenance life illustration
to make the
• Facilitates communication right choice
with stakeholders
• Helps in risk management
and cost reduction

Prototype pattern
(type of creational
design pattern) can
be used to clone
an object – e.g. in
the development
A general, reusable • Can be transformed directly
of an online game,
solution (i.e. formalised into source or machine code
prototype pattern
Software best practices) to a • Not a finished design Click to view can be used to
design commonly occurring illustration
• 3 key types: creational, replicate the layout
patterns problem within a
structural & behavioural of the maze map
given context in
and allow tweaking
software design
of the objects
within (e.g.
objects e.g. doors,
rooms, passages)
for different
game stages

Throttling is
• Used to allow a service to often used on
maintain a steady pace or Black Friday by
A design pattern in which
slow down rate of traffic eCommerce
a throttle is placed in
when e.g. process multiple Click to view sites to continue
front of a target service
Throttling
or process to control the
customer requests, counter illustration functioning and
denial-of-service attacks, meet any service
rate at which data flow
control infrastructure level agreements
into the target
expenses by enforcing rates in place in
of usage response to surge
in demand
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

A firm uses
a third-party
A design pattern in which • Used to check the weather API for its
the number of recent availability of an external intranet and the
operation failures are service, detect failures API is experiencing
monitored, then this and prevent them from outage. The
Circuit Click to view
information is used to happening constantly circuit breaker
breaker illustration
decide whether to allow will return ‘Service
• Mimics the states of an
the operation to proceed Unavailable’ on the
electric circuit breaker
or immediately return intranet, or even
an exception switch to another
functioning third-
party weather API

• Allows one piece of software


to interact with another Google utilises
A connection (i.e. piece of software APIs to display
software interface) Click to view e.g. weather data
API between computers • Simplifies programming by from user search
abstracting the underlying illustration
or between computer queries on Google
programs implementation and only Search
exposing objects or actions
the developer needs

• An API-first architecture Etsy switched to an


enables creation of API-first approach
ecosystems of applications after the common
The process of developing that are modular and challenge of
a software interface reusable — which is ideal implanting their
API that exposes backend
Click to view logic twice – code
for microservices illustration
architecture data and application that was built for
functionality for use in • Benefits include decoupling the website had to
new applications dependencies, fast growth be rebuilt in their
through scalability, earlier API to be used
validation through by iOS &
feedback etc. Android apps

Uber used to hold


• Usually comprises of a its user interface,
client-side user interface, a business layer
Traditional way of server side-application, and and data access
Click to view
Monolith building applications as a a database layer all in one
illustration
single and indivisible unit • Best suited for small team, single monolithic
simple application, repository, which
quick launch gave rise to major
scaling challenges

• Units carry out every Netflix successfully


application process as a switched from
monolithic
• separate service
architecture to
• All services have their own microservices
logic and the database as to help its move
Arrangement of well as perform the specific Click to view to the Cloud
Microservices applications as a functions
illustration as it scaled its
collection of loosely-
• Offer benefits such as services. Today
coupled units
increasing scalability, Netflix has 1000+
flexibility, agility etc. microservices that
helps overcome
• Best suited for complex and
scaling challenges
scalable applications
and service
outages.
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

• Used to gradually migrate


existing monolith (that
cannot deliver the desired
scalability or speed of Homeaway
development required applied the
A way of migrating legacy
for the product) into a strangler pattern
system incrementally
microservices application Click to view in its migration
Strangler by replacing existing
illustration to the cloud,
pattern functionalities with new • Identified modules within unlocking data
applications and services the monolith application at rest and
in a phased approach are placed behind an API accelerating
gateway or load balance to migration
direct traffic for that specific
functionality to the proper
“migrated” microservice

By moving from a
waterfall delivery
model to a
DevOps approach
(e.g. organising
A set of practices that squads around
combines software • Complementary with Agile value, moving
development and IT software development to continuous
operations, aiming • Benefits include improved Click to view planning and a
DevOps to shorten system deployment frequency, single backlog of
illustration
development life cycle faster time to market, and work), Nordstrom
and provide continuous lower failure rate of saw its bugs
delivery with high new releases decrease and
software quality throughput
increase, and
increased its
releases from
twice per year
to monthly

• Helps eliminate silos


originating at the data level Uber leverages
• Streamlines design, end-to-end
An automated, process-
development, and DataOps to
oriented methodology,
maintenance of applications encourage
used by analytic and data Click to view
based on data and data iterative
DataOps teams, to improve the illustration
analytics development
quality and reduce the
of models and
cycle time of • Improves data management democratising
data analytics and product development access to data and
• Coordinates improvements tools across teams
with business goals

• Helps bring machine


The process of taking learning workflows to Google Cloud
an experimental production by opening enables building
Machine Learning model bottlenecks and moving of a MLOps
into a production system. siloes between data science environment
The word is a compound Click to view through services
MLOps and operations teams
of “Machine Learning” illustration including Google
and the continuous • Enables reproducibility Kubernetes
development practice of models & predictions, Engine, Kubeflow
of DevOps in the monitoring, governance Pipelines,
software field & compliance, scalability, and more
collaboration, and more
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

• Focuses on measuring
reliability, responding to
unreliability, and reducing SRE is adopted
A discipline that risky & manual work by large web
incorporates aspects of
• Also a work model that companies that
Site reliability software engineering and Click to view
can either be executed by require reliability
engineering applies that to operations illustration
internal teams or provided as they scale,
(SRE) whose goals are to create
within an as-a-service model including Google,
ultra-scalable and highly
• Helps gain greater visibility Dropbox, Airbnb
reliable software systems
into service health, quantify and Netflix
cost of downtime, optimise
incident response, and more

• A well-defined measure/ Storage systems


A measure of the service metric of ‘good enough‘ will typically
Service level Click to view
level provided by a service quality of service measure latency,
indicator (SLI) illustration
provider to a customer • Forms the basis of SLO durability and
availability

• E.g. 99.9%
A means of measuring • It is the individual promises of APIs will
the performance of to customers of what to respond
the Service Provider expect, and goals that the within 3s
Service level
and are outlined as IT & DevOps teams need to Click to view
objective • E.g. Application
(SLO)
a way of avoiding achieve illustration will be available
disputes between the
• Forms the basis of SLA 99.9% of
two parties based on
the time
misunderstanding

A firm to looking to
use Google’s Cloud
Part of a contract which Storage Services
defines exactly what signs a Cloud
Service level Click to view
services a service provider • A set of SLOs with-generally Storage SLA to
agreement illustration
will provide and the financial consequences ensure it receives
(SLA)
required level or standard the SLOs outlines
for those services or is eligible to
receive pre-agreed
financial credits

A framework that
• Pyramid structure to
groups software tests Agile teams should
indicate quantity of each
into buckets of different use the Testing
type of test (from bottom to Click to view
Test pyramid granularity. Also gives an Pyramid as a guide
idea of how many tests
top – unit tests, integration illustration to streamline the
tests, system tests, function,
should be in each of these testing process
UAT, UI tests)
groups.
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

Software development
process relying on • Consists of developers only By implementing
software requirements and is performed in cycles TDD, ING’s
being converted to test
• Leverages test first and Financing Invoices
Test-driven cases before software Click to view
automation project was able
development is fully developed, and illustration
• Benefits include faster time to reduce number
(TDD) tracking all software
to market, higher code of errors, shorten
development by
quality, detailed project delivery cycle and
repeatedly testing the
documentation, and more lower costs by 20%
software against all
test cases

• It encourages teams to use


conversation and concrete
examples to formalise a
shared understanding of
how the application should
behave.
• BDD Syntax:
By implementing
• GIVEN is your setup; for BDD, a global
example, “GIVEN the investment bank
Behaviour- credit card is valid” Click to view
Data stored in its native was able to reduce
driven illustration
format and not processed • WHEN is your action; testing time from
development
until it is used for example, “WHEN I days to minutes
(BDD)
request $50” and reduce defect
rate from 35%
• THEN is your assertion;
to 4%
for example, “THEN
the ATM should
dispense $50”
• Benefits include lower
costs, strong collaboration,
meeting user needs
and more

Phases include:
1. Requirements gathering
2. Software design
Software The phases of work Click to view Software
3. Software development
development involved in producing illustration Development Cycle
cycle software applications 4. Test & integration in more detail
5. Deployment
6. Operationalisation &
maintenance

British Telecom’s
move from
Waterfall
• Typically involves product methodology
A framework utilising owner, scrum master, to Scrum (+ XP)
an agile mindset for dev team enabled it to
developing, delivering,
Scrum and sustaining complex
• Artefacts include product Click to view shorten delivery
backlog, sprint backlog etc. illustration cycle from 12
products, with an initial
• 3 pillars of Scrum: months to 90 days,
emphasis on software
transparency, focus on user
development
inspection, adaption stories that drive
business value
and improved
developer morale.
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

• Works items are


represented visually on a Volvo IT
Kanban board, allowing implemented
team members to see the Kanban to help
state of every piece of overcome poor
work at any time with full efficiency and
A lean method to manage Click to view
transparency and reduce non-standardised
Kanban and improve work across illustration
bottlenecks system of
human systems
work, resulting
• Aims to manage work by in achieving
balancing demands with productivity
available capacity, and by goals and easier
improving the handling of capacity planning
system-level bottlenecks

3 main frameworks:
A number of scaling agile • Scaled Agile Framework
frameworks that look (SAFe) Click to view
Scaled See examples for
to solve the problems
frameworks • Large-scale Scrum (LESS) illustration SAFe, LeSS & DAD
associated with agility
at scale • Disciplined Agile Delivery
(DAD)

Cisco’s
Subscription
• Ensures delivery focuses on Billing Platform
the ‘highest value’ work used to follow
the Waterfall
• Sustains and drives faster
methodology,
A framework for time-to-market, dramatic
but switching to
scaling Agile across the increases in productivity and
SAFe enabled it
enterprise, devolving quality, and improvement in
Scaled Agile Click to view to release often
authority to the team employee engagement
Framework illustration and introduce
level whilst retaining • Advocates regular shared
(SAFe) continuous
oversight and influence planning - programme integration,
from the portfolio and increment (PI) every 12 resulting in 40%
programme levels weeks bring the entire decrease in critical
workforce together to align and major defects,
on vision and plan for the no more overtime
next quarter and product
increment is
delivered on time

• Promotes a simple After adopting


operational structure with LeSS framework
two levels (e.g. removing
A framework for scaling
Level-1 manager
scrum to multiple teams • Avoids any prescriptive
role, emergence
who work together on a implementation guidance,
of ‘line coaches’
single product, requiring instead encouraging any
Large-scale Click to view etc.), J.P. Morgan’s
large structural change to adopting organizations to
Scrum (LeSS Global Core
work as all component, adapt the framework to illustration
Processing
silo, and specialist their specific needs
Technology was
teams must form cross- • Advocates a practical able to reduce
functional teams approach to cross delivery cycle time
team coordination and and improve
dependency management team morale
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example

• Promotes a tactical
approach to scaling
vs wholescale agile A London FinTech
transformation company that
A people-first and
• Promotes the need to adopted the
learning-oriented
consider context over any DAD Framework
Disciplined Agile software delivery
fits all method - requires Click to view increased project
Agile Delivery framework that provides
definition of own custom illustration releases per
(DAD) context-specific
implementation approach month from an
guidance and suits
• It is a hybrid model, which average of 0.25 to
enterprise needs
is formed by a collection of 12.3 and reduced
Lean-Agile methods such as developer turnover
Scrum, Kanban, XP,
and more

• Allows people to move fast


by organising around work Spotify’s tribe
and ownership of the work engineering model
has enabled them
A people-driven, • Involves squads, tribes,
to scale their
autonomous approach chapters, guilds, trio,
Tribe operations when
for scaling Agile that alliances Click to view
engineering demand grew,
model
emphasises the • A decentralised approach illustration helping them
importance of culture nuilt on trust and autonomy achieve their goals
and network – if many different parts of quicker and shift
the enterprise are required the mindsets of
to approve a go live then their people
this model won’t work

• Close to the
system (C,
Go, C++)
• There is no gold standard
A formal language language - choice of • Object-oriented
comprising a set of strings language depends on fit for Click to view (Java, Python)
Programming
that produce various the problem and fit for the illustration • Functional
language
kinds of machine organisation not just in the programming
code output short term but in the (Scala)
long term
• Scripting
(Python,
JavaScript)

• Typically distributed either


through publicly accessible
Computer software that is
source control systems or
released under a license
prepackaged and delivered
in which the copyright
through package managers
holder grants users the Click to view Apache HTTP
Open source • Harness reusable
rights to use, study, illustration Server, Mozilla
software components supported by a
change, and distribute the Firefox, Linux
software and its source wide community base
code to anyone and for • Typically more
any purpose robustly tested

You might also like