Definition:
Software development approach in which the description of the architecture is the heart and central concern of the process. The use of this approach permits the (abstract) architectural description to be checked, refined and designed in order to obtain more concrete descriptions that will be executed.
Further Reading
Book : The Unified modeling Language user guide by Grady Booch, James Rumbaugh and Ivar Jacobson