Patent ID: 8386999

Claim:
A method of analyzing a software design comprising: receiving, by a processor, one or more specifications containing one or more design elements; analyzing, by the processor, the one or more specifications to determine all possible design elements for the one or more specifications, wherein analyzing the one or more specifications to determine all possible design elements for the one or more specifications includes, analyzing event triggers associated with one or more process actions included in the one or more specifications, analyzing data captured by the one or more process actions included in the one or more specifications, analyzing rules used by the one or more process actions included in the one or more specifications, analyzing structures related to the one or more process actions included in the one or more specifications, generating combinations of analyzed event triggers, data, process actions, rules, and structures contained in the one or more specifications, identifying the possible design elements from the generated combinations of analyzed event triggers, data, process actions, rules, and structures associated with the event triggers associated with the one or more process actions, identifying the possible design elements from the generated combinations of analyzed event triggers, data, process actions, rules, and structures associated with the data captured by the one or more process actions, identifying the possible design elements from the generated combinations of analyzed event triggers, data, process actions, rules, and structures associated with the rules used by the one or more process actions, identifying the possible design elements from the generated combinations of analyzed event triggers, data, process actions, rules, and structures associated with the structures related to the one or more process actions, and identifying from the possible design elements all the possible design elements for the one or more specifications; identifying, by the processor, one or more design elements not included in the one or more specifications; generating, by the processor, the one or more design elements for the design elements not included in the one or more specifications; and adding, by the processor, the one or more generated design elements to the one or more specifications.