As my understanding, secret view key and address can be derived from secret spend key. Or my understanding is wrong ?
Secret view key can usually be derived from secret spend key. It is only the case if you generate a wallet this way. It does not have to be this way. The address can be derived from both secret keys. Asking the address too introduces a way to spot errors when entering the data. If the address does not match what the secret keys generated, then you know you made a mistake in the inputs.