IP Library Granted Patent US 8,972,928
Granted Patent B2
US 8,972,928 · App. 13/221,595 · Granted Mar 3, 2015

System and method for generating application code

Inventor: Thomas J. Weigert (Lake Barrington, IL)
Assignee: UniqueSoft, LLC
G06F11/3684G06F8/10G06F8/355
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,972,928
App. No.
13/221,595
Granted
Mar 3, 2015
Kind
B2
Abstract

A system includes a requirements unit, an implementation unit, and a testing unit. The requirements unit generates application requirements from inputted requirements and parameters and output them in accordance with a system communication protocol. The implementation unit generates application code based on the application requirements, the parameters, and feedback and outputs the application code in accordance with the system communication protocol. The testing unit tests the application code based on the application requirements and the parameters to produce the feedback.

Claims (130)

1. A system comprises:

one or more computing entities, wherein a computing entity of the one or more computing entities includes a processing module, memory, and a network connection, wherein the one or more computing entities supports a requirements unit, an implementation unit, and a testing unit that collectively operate to iteratively generate and test application code based on application requirements until final application code is generated;

the requirements unit is operably coupled to:

generate the application requirements from inputted requirements and parameters; and

output the application requirements in accordance with a system communication protocol;

the implementation unit is operably coupled to:

receive the application requirements in accordance with the system communication protocol;

receive the parameters;

iteratively generate the application code based on the application requirements, the parameters, and feedback until the final application code is generated;

output the application code in accordance with the system communication protocol; and

the testing unit is operably coupled to:

receive the application requirements in accordance with the system communication protocol;

receive the parameters;

receive the application code in accordance with the system communication protocol; and

iteratively test the application code based on the application requirements and the parameters to produce the feedback.

2. The system of claim 1 , wherein the system communication protocol comprises at least one of:

a data content protocol that includes at least one of:

an output definition for one or more of the requirements unit, the implementation unit, and the testing unit;

an input definition for the one or more of the requirements unit, the implementation unit, and the testing unit;

correlation of an output of the one or more of the requirements unit, the implementation unit, and the testing unit to an input of another one of the one or more of the requirements unit, the implementation unit, and the testing unit;

a communication protocol that includes:

a common communication protocol for communications between the requirements unit, the implementation unit, and the testing unit; or

a distributed communication protocol for communications between the requirements unit, the implementation unit, and the testing unit.

3. The system of claim 2 , wherein at least one of the requirements unit, the implementation unit, and the testing unit further comprises at least one of:

a protocol conversion module operable to:

convert an output from one data content protocol to another data content protocol;

convert an input from the other data content protocol to the one data content protocol; and

a protocol negotiation module operable to negotiate at least one of the data content protocol and the communication protocol.

4. The system of claim 1 , wherein the application requirements comprises:

a plurality of application system state transitions, wherein an application system state transition of the plurality of application system state transitions includes a standardized format for identifying one or more pre-conditions, one or more actions, and one or more post-conditions.

5. The system of claim 1 , wherein the requirements unit comprises:

a requirements conversion module operably coupled to generate the application requirements based on the inputted requirements and verification feedback;

a verification module operably coupled to verify the generating of the application requirements is consistent with valid system states and correctness criteria to produce one or more verification results; and

an analysis module operably coupled to compare the one or more verification results with one or more verification thresholds to produce the verification feedback.

6. The system of claim 1 , wherein the implementation unit comprises:

one or more transformation modules operable to:

for one or more of the application requirements in accordance with one or more of the parameters;

select one or more implementation tools in accordance with a current generating of the application code to produce a selected implementation tool set; and

iteratively or incrementally apply the selected implementation tool set to generate a current implementation of the application code based on corresponding feedback of the feedback.

7. The system of claim 6 , wherein the one or more transformation modules is further operable to:

for each iteratively or incrementally application of the selected implementation tool set, utilize a result of a previous application of the selected implementation tool set to generate a new intermediate result of the current implementation of the application code.

8. The system of claim 1 , wherein the test unit comprises:

a test case generating module operable to generate one or more test cases for a current implementation of the application code based on one or more corresponding application requirements of the application requirements and one or more corresponding parameters of the parameters;

a test execution module operable to:

for an artifact of the current implementation of the application code being tested, convert the one or more test cases into an abstract test case set corresponding to a current level of implementation of the current implementation of the application code; and

stimulate the current implementation of the application code based on the abstract test case set to produce a developing application code response; and

a comparison module operable to:

receive the one or more test cases;

receive the developing application code response;

compare the developing application code response with a desired response of the one or more test cases; and

generate the feedback based on the comparing of the developing application code response with the desired response.

9. The system of claim 8 , wherein the comparison module is further operable to:

determine a behavior deviation of the developing application code response for the desired response;

generate the feedback based on the behavior deviation;

provide the feedback to the implementation unit when the behavior deviation is caused by an implementation error; and

provide the feedback to the requirement unit when the behavior deviation is caused by an application requirement error.

10. A method for execution by a computing entity, wherein the computing entity includes a processing module, memory, and a network connection, the method comprises:

generating, by the computing entity, application requirements from inputted requirements and parameters, wherein the application requirements are in accordance with a system communication protocol;

iteratively generating, by the computing entity, application code based on the application requirements, the parameters, and feedback until final application code is generated, wherein the application code is in accordance with the system communication protocol; and

iteratively testing, by the computing entity, the application code based on the application requirements and the parameters to produce the feedback, wherein the feedback is in accordance with the system communication protocol.

11. The method of claim 10 , wherein the system communication protocol comprises at least one of:

a data content protocol that includes at least one of:

an output definition for one or more of the requirements unit, the implementation unit, and the testing unit;

an input definition for the one or more of the requirements unit, the implementation unit, and the testing unit;

correlation of an output of the one or more of the requirements unit, the implementation unit, and the testing unit to an input of another one of the one or more of the requirements unit, the implementation unit, and the testing unit;

a communication protocol that includes:

a common communication protocol for communications between the requirements unit, the implementation unit, and the testing unit; or

a distributed communication protocol for communications between the requirements unit, the implementation unit, and the testing unit.

12. The method of claim 10 , wherein the application requirements comprises:

a plurality of application system state transitions, wherein an application system state transition of the plurality of application system state transitions includes a standardized format for identifying one or more pre-conditions, one or more actions, and one or more post-conditions.

13. The system of claim 10 , wherein the generating the application requirements comprises:

generating the application requirements based on the inputted requirements and verification feedback;

verifying the generating of the application requirements is consistent with valid system states and correctness criteria to produce one or more verification results; and

comparing the one or more verification results with one or more verification thresholds to produce the verification feedback.

14. The method of claim 10 , wherein the generating the application code comprises:

for one or more of the application requirements and in accordance with one or more of the parameters:

selecting one or more implementation tools in accordance with a current generating of the application code to produce a selected implementation tool set; and

iteratively or incrementally applying the selected implementation tool set to generate a current implementation of the application code based on corresponding feedback of the feedback.

15. The method of claim 14 further comprises:

for each iteratively or incrementally application of the selected implementation tool set, utilizing a result of a previous application of the selected implementation tool set to generate a new intermediate result of the current implementation of the application code.

16. The method of claim 10 , wherein the testing the application code comprises:

generating one or more test cases for a current implementation of the application code based on one or more corresponding application requirements of the application requirements and one or more corresponding parameters of the parameters;

for an artifact of the current implementation of the application code being tested, converting the one or more test cases into an abstract test case set corresponding to a current level of implementation of the current implementation of the application code;

stimulating the current implementation of the application code based on the abstract test case set to produce a developing application code response;

comparing the developing application code response with a desired response of the one or more test cases; and

generating the feedback based on the comparing of the developing application code response with the desired response.

17. The method of claim 16 , wherein the comparing the developing application code response with the desired response further comprises:

determining a behavior deviation of the developing application code response for the desired response;

generating the feedback based on the behavior deviation;

providing the feedback to the implementation unit when the behavior deviation is caused by an implementation error; and

providing the feedback to the requirement unit when the behavior deviation is caused by an application requirement error.

18. A computing entity comprises:

a processing module, memory, and a network connection;

the network connection is operable to:

receive inputted requirements and parameters; and

the processing module operable to:

generate application requirements from inputted requirements and parameters, wherein the application requirements are in accordance with a system communication protocol;

iteratively generate application code based on the application requirements, the parameters, and feedback until final application code is generated, wherein the application code is in accordance with the system communication protocol; and

iteratively test the application code based on the application requirements and the parameters to produce the feedback, wherein the feedback is in accordance with the system communication protocol.

19. The computing entity of claim 18 , wherein the system communication protocol comprises at least one of:

a data content protocol that includes at least one of:

an output definition for one or more of the requirements unit, the implementation unit, and the testing unit;

an input definition for the one or more of the requirements unit, the implementation unit, and the testing unit;

correlation of an output of the one or more of the requirements unit, the implementation unit, and the testing unit to an input of another one of the one or more of the requirements unit, the implementation unit, and the testing unit;

a communication protocol that includes:

a common communication protocol for communications between the requirements unit, the implementation unit, and the testing unit; or

a distributed communication protocol for communications between the requirements unit, the implementation unit, and the testing unit.

20. The computing entity of claim 18 , wherein the application requirements comprises:

a plurality of application system state transitions, wherein an application system state transition of the plurality of application system state transitions includes a standardized format for identifying one or more pre-conditions, one or more actions, and one or more post-conditions.

21. The computing entity of claim 18 , wherein the processing module generates the application requirements by:

generating the application requirements based on the inputted requirements and verification feedback;

verifying the generating of the application requirements is consistent with valid system states and correctness criteria to produce one or more verification results; and

comparing the one or more verification results with one or more verification thresholds to produce the verification feedback.

22. The computing entity of claim 18 , wherein the processing module generates the application code by:

for one or more of the application requirements and in accordance with one or more of the parameters:

selecting one or more implementation tools in accordance with a current generating of the application code to produce a selected implementation tool set; and

iteratively or incrementally applying the selected implementation tool set to generate a current implementation of the application code based on corresponding feedback of the feedback.

23. The computing entity of claim 18 , wherein the processing module further functions to:

for each iteratively or incrementally application of the selected implementation tool set, utilize a result of a previous application of the selected implementation tool set to generate a new intermediate result of the current implementation of the application code.

24. The computing entity of claim 18 , wherein the processing module tests the application code by:

generating one or more test cases for a current implementation of the application code based on one or more corresponding application requirements of the application requirements and one or more corresponding parameters of the parameters;

for an artifact of the current implementation of the application code being tested, converting the one or more test cases into an abstract test case set corresponding to a current level of implementation of the current implementation of the application code;

stimulating the current implementation of the application code based on the abstract test case set to produce a developing application code response;

comparing the developing application code response with a desired response of the one or more test cases; and

generating the feedback based on the comparing of the developing application code response with the desired response.

25. The computing entity of claim 24 , wherein the processing module compares the developing application code response with the desired response by:

determining a behavior deviation of the developing application code response for the desired response;

generating the feedback based on the behavior deviation;

providing the feedback to the implementation unit when the behavior deviation is caused by an implementation error; and

providing the feedback to the requirement unit when the behavior deviation is caused by an application requirement error.

Assignments (2)
CHANGE OF NAME Recorded Feb 10, 2021
From: UNIQUESOFT, LLC
To: UPDRAFT, LLC
Reel/Frame 055270/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2011
From: WEIGERT, THOMAS J.
To: UNIQUESOFT, LLC
Reel/Frame 026831/0097 →
Continuity (1)
Related Publication 20130055198A1 · Feb 28, 2013