1. A method executed by a computer for developing software capable of performing a task, the task comprising a task step required to perform the task, the task step having a resultant effect and determining one or more changes in business entities, wherein the method comprises: recording a use case comprising one or more scenarios, the or each scenario comprising one or more further steps, wherein the use case is a representation of the task step associated with determining the one or more changes in the business entities; recording a refinement relationship between the task step and the use case, the refinement relationship having an associated justification stating how the task step is realized by the use case; recording the scenario or one of the scenarios as a main success scenario such that a resultant effect of the main success scenario is the same as the resultant effect of the task step; determining that the resultant effect of the task step is the same as the resultant effect of the main success scenario by using one or more justifications; and qualifying the use case by removing context-specific information, wherein context-specific information includes one or more attributes of the use case that are associated with an environment in which the use case is used.