An adaptive antenna array or a smart antenna is named a software antenna because it can form a desired antenna pattern and adaptively control it if an appropriate set of antenna weights is provided and updated in software. It can be a typical tool for realizing a software radio. An adaptive antenna array can be considered an adaptive filter in space and time domains for radio communications, so the communication theory can be generalized from a conventional time domain into both space and time domains. This article introduces a spatial and temporal communication theory based on an adaptive antenna array, such as spatial and temporal channel modeling, equalization, optimum detection for single-user and multi-user CDMA, precoding in transmitter, and joint optimization of both transmitter and receiver. Such spatial and temporal processing promises significant improvement of performance against multipath fading in mobile radio communications.