Modeling task knowledge to support software development

One of the main reasons why the development of software does not meet the client's need is the lack of understanding of the software's real objective, and consequently, the tasks it should perform and how they should be performed. With this assumption, we have defined a structure to represent the task knowledge which supports software engineers in understanding problems starting from the understanding of the tasks which comprise these problems. This structure combines task ontologies and problem solving methods, providing the developer with the necessary task knowledge to guide him throughout the development process. This article shows how task knowledge is defined and used to help the development of software, presenting as an example, use cases modeling.