On an I2C bus a fix slave address is assigned to each I2C slave during the development of the PCB. Typically the I2C address of an I2C slave gets selected by pulling some external pins to high or low level.
SMBus devices support fix addresses, too. Additionally, the SMBus specification defines a different approach, where the slave addresses are assigned dynamically during the runtime. This process is called SMBus ARP. The SMBus master is responsible for assigning the addresses.
The SMBus ARP is supported by the I2C Framework and I2C Studio.