What is the difference between firmware, BIOS and software

Firmware
Firmware is a combination of persistent memory, program code, and the data stored in it. Typical examples of devices containing firmware are embedded systems such as traffic lights, consumer appliances, digital clocks, computers, computer peripherals, mobile phones, and digital cameras. The firmware contained in these devices provides the control program for the device.
BIOS
BIOS is the specific name for the motherboard firmware in older PCs. New computers these days have a technical and somewhat different type of Firmware called UEFI or EFI. BIOS is an acronym for Basic Input/Output System and is also known as System BIOS, ROM BIOS, or PC BIOS. It is a type of firmware used during the boot (power on/boot) process in IBM PC compatible computers. BIOS firmware is built into PCs, and it’s the first software they run when they’re turned on.
Software
Software is virtual, so it can be copied, changed, and destroyed. It is often stored in memory that is easily accessible and even user replaceable. But in the case of firmware, the memory it stores is often embedded in the device and not user-replaceable. This is done deliberately to prevent any tampering or removal as it is critical to the device’s operation and can cause serious consequences if removed.
The software is often updated and therefore the information stored in it is often modified/altered with each application run. In contrast, firmware doesn’t change much unless you change settings very often. There is also very little or no requirement to change the firmware of a device.