Software development relies heavily on manual processes for transforming requirements into software artifacts such as models, source code, or test cases. Requirements are the starting point for these transformations, and they are typically written in natural language. However, hardly any automated tools exist that translate natural language texts into software artifacts. We propose to adapt recent advances in natural language processing and semantic technologies to generate UML models, test cases, and perhaps even source code, from natural language input. Though earlier efforts in automatic programming had limited success, we are now in a situation where extracting meaning from text has made substantial progress. For example, encouraging results for generating UML models from textual requirements have been achieved. It might even be possible to generate executable test cases. An intermediate step would be to generate tests from API documentation (which would also be a useful capability in itself). An even greater advance would be to automate rote coding. In all of these cases, entirely new classes of software tools would be needed to extract and process the semantics inherent in natural language texts, augment them with tacit knowledge from ontologies and domain models, and, where necessary, ask humans to clarify ambiguities. Though speculative, a determined, long-term effort in translating text to software could automate and accelerate software development to an unprecedented degree.
Mendeley saves you time finding and organizing research
Choose a citation style from the tabs below