High level software design, also called software architecture is the first step to analyze and consider all requirements for a software and attempt to define a structure which is able to fullfill them.
see also http://www.the-software-experts.de/e_dta-sw-design-high-level.htm