Software development process is a sequence of problem and solution descriptions, where the description that solves a problem, stated in another description, becomes the problem of the next stage. The same occurs in the problem space, in the requirements engineering process.
The first main distinction is between the user requirements definition and the system requirements. Both descriptions belong to the problem space and they are simultaneously problem and solution descriptions. The user requirements definition describes how a system can solve a business problem. Therefore, it is the solution for the business problem, but it is also the problem for which the system requirements specification provides a solution. The system requirements specification details the system developers have to implement, and so, it is the problem description that is provided for the software architects and developers.
Interestingly, the business problem is also a solution for a business opportunity. This is also referred as a business case. Although some authors consider the definition of the business case as part of the software development process, it is frequent that the solution for the business case does not required the development of a software artefact. For instance, the business use-case model described in this article may be concretized by a set of organizational procedures and without the need of any information system.