Automatic software production system
AssigneeSosy, Inc.
InventorsJose Iborra, Oscar Pastor
Life of this patent
Estimating the term…
Abstract
An automated software production system is provided, in which system requirements are captured, converted into a formal specification, and validated for correctness and completeness. In addition, a translator is provided to automatically generate a complete, robust software application based on the validated formal specification, including user-interface code and error handling code.
Claims41
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
(canceled)
A computer-readable medium having stored thereon a data structure comprising:
- a collection of fields that store data entered by a user defining a conceptual model of a computer program that the user wants automatically written by a translator process running on a computer, said conceptual model comprised of:
- an object model data structure which defines a system class architecture comprised of one or more classes of objects defined by user input, each class having attributes the value of which collectively define the state of a system defined by said conceptual model (hereafter the target program);
- a dynamic model data structure which defines valid object life cycles and which interobject communications can be established and defined by user input;
- a functional model data structure which defines the semantics associated with any change of an object state as a consequence of an event occurrence, user input defining data structures which define the class and which variable attribute of said class is affected by which event of that class and how the event affects the value of said variable attribute, said user input also defining a mathematical or logical valuation that defines how said variable attribute's value will be changed when said event happens;
- a presentation model data structure defined by user input and which defines a full user interface defining how users or other processes will be able to interact with the functionality of the target program, said user input defining a set of patterns that specify which services will be available to user of the system and which information about the state of the target program users of the target program will be able to query.
A computer-readable medium having stored thereon computer-readable instructions which, when executed by a computer cause said computer to carry out the following process:
- provide user interface mechanism which allow users to enter user input data, and converting said user input data to data structures which define primitives of a conceptual model comprising an object model comprising one or more classes of objects which have attributes the state of which collectively define the state of the system, and a dynamic model, and a functional model and a presentation model;
- automatically converting said data structures of said conceptual model into statements according to the syntax and semantics of a formal language, said collection of formal language statements defining a formal language specification which defines the functionality of a computer program to be automatically written (hereafter the target program) by a computer executing a translator process, said target program being a full computer program having a user interface specified by data structures comprising said presentation model, and not a prototype which needs additional code, code components, code libraries or any third party software artifact to make said target program a complete and operative computer program, said target program being the full functional equivalent of said conceptual model.
An automated software production tool, comprising:
- a CASE tool for controlling a computer to provide a user interface that provides tools which a user can invoke to create a conceptual model comprised of an object model, a dynamic model, a functional model and a presentation model, said conceptual model being an abstract graphical representation of a solution to a problem wherein said conceptual model will be automatically translated into a computer program which will be able to control a computer to provide said solution of said problem said user is trying to solve, said object model being a graphical model of the objects to be employed in said computer program and defining classes of said objects, said dynamic model specifying valid object life cycles for each object defined in said object model and inter-object communications between objects in response to services, triggers and global transactions, said functional model specifying valuations of objects defining how every event changes an object's state depending upon the arguments of the involved event and the object's current state, and said presentation model being built using tools or icons representing basic patterns in user interfaces and defining a desired user interface behavior for said computer program, and said CASE tool for automatically converting said conceptual model into a formal language specification written in an unambiguous, object-oriented, formal language having predetermined precise rules of grammar, syntax and semantics which are such that said formal specification can be validated to ensure that said formal language specification is an unambiguous, correct and complete statement of said solution of said problem said user is trying to solve;
- a computer-readable medium for storing said formal specification;
- and
- a validator for validating said formal language specification to ensure that said formal language specification is complete and correct, “complete” meaning all the required properties of said conceptual model are defined and have a value, and “correct” meaning the information introduced in the conceptual model by the user complies with said rules of syntax of said formal language and is semantically consistent and not ambiguous, said validator outputting a validated formal language specification of said solution to said problem prior to automatic translation of said validated formal language specification into computer program code.
Dependencies are inferred from the claim text.