Full-3D Seismic Waveform Inversion: Theory, Software and Practice