BACKGROUND

The present invention relates in general to automated software-design and project-management applications and in particular to the automated generation of requirements.

Project-management, software-design, and similar applications may attempt to automatically generate requirements for a computer program, business process, or other project under development. When these requirements are derived from natural-language statements of user goals or business needs, an application must translate each statement into a form that can be understood by downstream design tools or project-management systems.

When generating requirements for a complex system made up of multiple subsystems, or for a complex project composed of multiple, independently deliverable functions, current automated requirements-generation applications cannot detect when a single natural-language statement mixes or conflates requirements for more than one subsystem or function. A seemingly simple statement of what appears to be a single requirement may in fact couple multiple requirements directed to different subsystems, tasks, or functions. If those multiple requirements are not decoupled, implementation and maintenance costs of the projects or systems under development can be greatly increased.

An “atomic” requirement is an indivisible requirement that contains only one distinct, independent requirement for only one independently deliverable subsystem or function. An atomic requirement cannot be decomposed into component requirements and a requirements document that contains only atomic requirements does not create unnecessary coupling between independent components, functions, modules, or subsystems.

Current design tools and project-management systems do not guarantee that a user's natural-language statement will be translated into atomic requirements. In general, a human administrator, manager, or designer must manually review and split automatically generated requirements in order to ensure that each resulting requirement is an atomic requirement that is orthogonal (that is, functionally independent) of other requirements. The resulting decoupled atomic requirements can then be used by downstream systems to more efficiently direct the design, structure, or topology of the systems, functions, or projects under development.

SUMMARY

Embodiments of the present invention comprise systems, methods, and computer program products for expert-system translation of natural-language input into atomic requirements. An requirements-generation expert system of an automated code-generation application receives a set of natural-language statements that each state one or more requirements of a computer system or business project under development. The system tags words or phrases of each statement in order to identify a part of speech of each tagged word or phrase and extracts from each statement keywords, rules, conditions, and semantic meanings of words tagged as being distinct verbs, nouns, or other semantically meaningful parts of speech. Each statement's verbs are organized into groups of synonyms and each statement's verb groups are each associated with one or more of that statement's keywords. Each statement is categorized as having simple, complex, or compound atomicity, as a function of the number of that statement's keywords, the number of rules and number of verbs, and is assigned a degree of orthogonality as a function of the numbers of that statement's keywords that are associated with each of that statement's groups. Each statement is divided into segments and the above procedure is repeated upon each successive generation of segments until all segments have simple atomicity. The resulting atomic segments are forwarded to downstream computerized systems that use the segments as requirements for the computer system or business project to be developed.

