Requirements engineering or use case analysis. http://en.wikipedia.org/wiki/Requirements_engineering, http://en.wikipedia.org/wiki/Use-case_analysis

This is not a programming question...