Intellectual Frontiers

US7039898B2: Computer System For Performing Reusable Software Application Development From A Set Of Declarative Executable Specifications

In plain language

Reusable Software Development with Declarative Executable Specifications

Discover declarable executable specifications for reusable software development. Create efficient applications with code reusability, testing, and security.

Drawings

11 sheets as filed; open one to see it at full size. A figure drawn across its sheet is turned to read upright.

What the drawings show
  • The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment(s) of the invention with reference to the drawings, in which:
  • FIG. 1 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 2 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 3 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 4 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 5 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 6 is a system diagram illustrating a preferred embodiment of the present invention;
  • FIG. 7 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 8 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 9 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 10 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 11 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 12 is a flow diagram illustrating a preferred method of the present invention;
  • FIG. 13 is a flow diagram illustrating a preferred method of the present invention; and
  • FIG. 14 is a system diagram according to the present invention.

Abstract

A computer system executing a method for performing reusable software application development comprises integrating a data processing system, providing a set of keywords and attributes, and declaring a set of executable specifications using the keywords and attributes, further comprising generating a program code, instantiating an object code, generating a testable functionality result, generating at least one unit test, generating an implementation documentation output, generating a performance statistics output, and generating a project metrics in the data processing system. The step of providing a set of keywords and attributes comprises generating a set of user interface forms, fields, and validation rules, generating a library of structured query language statements, generating a library of rules for generating dynamic structured query language statements, generating one of a web browser report, a file-based report, and a portable document format report, generating a library of security rules and permission statements, and generating database schemata.

The problem it addresses

1. Field of the Invention

The present invention generally relates to reusable software application development systems and methods, and more particularly to a computer system for performing reusable software application development from a set of declarative executable specifications.

2. Description of the Related Art

For several years computer software applications have been written to improve the productivity of individuals inside an enterprise, such as a company or firm. Even from the early days of computers, software applications have been developed to provide faster payroll processing, improved record-keeping, management of sales, and increase the speed of research and development. With these so-called internal applications in place for decades, studies indicate that enterprises have been able to significantly improve employee productivity.

The rest of the background

Moreover, since the advent and widespread use of the Internet and the World Wide Web (“the Web”), there has been a desire by the management in these enterprises to extend their internal application functionality and technology infrastructure to external parties, such as their customers, partners, vendors, suppliers, and other constituents. For example, instead of a salesperson taking an order over the telephone and then entering that order into the internal company sales software application, enterprises are now allowing their own constituents to create orders directly into their internal applications by allowing access to the enterprise's systems through the Web. This is called extending the enterprise.

Over time, enterprises have discovered that the more they extend their internal infrastructures to external parties, the better return on their investment of their infrastructure. Furthermore, extending the enterprise now refers to the rapid creation of simple or complex applications that connect to legacy and existing systems and allow customers, suppliers, vendors, partners, and all constituents to transact business with an enterprise at reduced cost by directly accessing an enterprise's internal computer system(s). This form of application development, which is referred to as an Internet or Web development, has new engineering challenges including security, quality, and maintenance. Developments in Internet software have surfaced in several different areas ranging from on-line shopping and banking to collaborative research and instant messaging. Web-based tools have helped to partially bridge the gap between the Web pages of the early Web and sophisticated Internet-based applications. However, while significant progress has been made in the development of Internet applications, conventional application development tools for the Internet still have many shortcomings, especially for the mission-critical use that most Web applications are now deployed.

Moreover, existing development environments and languages treat the problem domains of specifications, design, testing, coding, runtime evaluation, and implementation documentation separately. With conventional tools, prototyping, creating functional specifications, design, testing, coding, execution, and documentation are usually performed by different groups from different disciplines within an enterprise. However, by failing to provide a unified system and methodology from which a single set of declarative commands can create specifications, documentation, testable components, and executable code, conventional systems often require more work to be performed, utilizing more experienced and higher number of human resources, and often resulting in multi-component software integration that produces lower quality software. While existing development environments provide for some reuse within an application, they simply fail to allow for reuse across applications and projects. For instance, some components can be shared and reused within an application in these conventional environments. However, across projects, reusing the same components becomes difficult or impossible due to the design of conventional development environments and architectures.

While the conventional development processes once provided a valuable system of creating multi-components of business systems, there remains a need for a new automated reusable software application development system which provides a uniform framework for describing the various components or facets of business systems using simple declarative constructs that even inexperienced programmers can create and yet achieve quality attributes of systems that senior level architects and engineers often produce.

Summary of the invention

In view of the foregoing, and other drawbacks and disadvantages of the conventional systems, the present invention has been devised, and it is an object of the present invention, to provide an automated system and method for performing reusable software application development. It is another object of the present invention to provide a business-oriented computer software system comprising multi-components or facets including forms, dialogs, fields, validation rules, static structured query language statements (SQL), dynamic structured query language statements, security roles and permissions, value sources, data sources, database schemata, reports, navigation, and personalization.

It is yet another object of the present invention to provide a unified system of processing, testing, and documenting these facets. Still another object of the present invention is to provide a computer system and method for automatically generating and processing software code, object instantiations, testable functionality, and implementation documentation from a single set of declarative executable specifications. Yet another object of the present invention is to provide a computer system that allows a software application developer the ability to declare a single set of executable specifications and receive full unit tests, implementation documentation, and end-user application code from the set of specifications. Another object of the present invention is to provide a computer system for performing software application development that allows the executable specifications to be reused across several projects.

In order to attain the objects suggested above, there is provided, according to one aspect of the invention, a computer system for performing reusable software application development comprising a multi-component architecture, which comprises data, wherein the multi-component architecture further comprises a relational database server operatively connected to an application server, a presentation component operatively connected to the application server, an application component operatively connected to the application server, a data component operatively connected to the application server, a security and personalization component operatively connected to the presentation component, the application component, and the data component, and wherein the computer system also comprises an administration console operatively connected to the presentation component, the application component, and the data component, wherein the administration console comprises the security and personalization component, and wherein the security and personalization component restricts access to the data.

The full summary

The multi-component architecture further comprises declarable executable specifications, wherein the declarable executable specifications further comprise a set of keywords and attributes used to declare the executable specifications. Moreover, the presentation component comprises an extensible application framework comprising at least one application program interface, wherein the application program interface automates form building engines, data state machine engines, queries engines, reporting engines, templating engines, access control engines, project configuration engines, rule processing engines, and metrics engines.

Additionally, the application component comprises an extensible information framework of libraries, wherein the libraries comprise reusable tables, columns, and indexes. Furthermore, the data component creates a plurality of database object classes, wherein the data component comprises data types, table types, tables, and enumerations. Moreover, the administration console responds to operator commands enabling an operator to access the data and the declarable executable specifications.

Additionally, there is provided, according to the present invention, a method for performing reusable software application development, wherein the method comprises integrating a data processing system, providing a set of keywords and attributes in the data processing system, and declaring a set of executable specifications using the set of keywords and attributes. The step of declaring a set of executable specifications comprises generating a program code in the data processing system, instantiating an object code in the data processing system, generating a testable functionality result in the data processing system, generating at least one unit test case in the data processing system, generating an implementation documentation output in the data processing system, generating a performance statistics output in the data processing system, and generating a project metrics in the data processing system.

The step of providing a set of keywords and attributes comprises generating a set of user interface forms, fields, and validation rules, wherein the method enables an operator to describe components of a presentation and interface by receiving input from a user. Furthermore, the step of providing a set of keywords and attributes comprises generating a library of structured query language statements, and generating a library of rules for generating dynamic structured query language statements, wherein the method enables an operator to describe database access components by retrieving data from a data storage device, wherein the data storage device is coupled to the data processing system, and wherein the method enables the operator to describe database access rules and user interface components that connect to the data storage device by retrieving the data from the data storage device and presenting the data to a user.

Additionally, the step of providing a set of keywords and attributes comprises generating one of a web browser report, a file-based report, and a portable document format report, wherein the method enables an operator to describe database interface components by displaying data to a user. Also, the step of providing a set of keywords and attributes comprises generating a library of security rules and permission statements, wherein the method enables an operator to describe authorization and authentication components of an application. Finally, the step of providing a set of keywords and attributes comprises generating database schemata, wherein the database schemata comprises data types, table types, tables, and enumerations, wherein the method enables an operator to describe database structure components by storing application data.

Additionally, according to the present invention, a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform the above-described method for performing reusable software application development is disclosed.

There are several benefits of the present invention. First, the present invention provides an automated system and method for performing reusable software application development. Second, the present invention provides a business-oriented computer software system comprising multi-components or facets including forms, dialogs, fields, validation rules, static structured query language statements, dynamic structured query language statements, security roles and permissions, value sources, data sources, database schemata, reports, navigation, and personalization. Another benefit of the present invention is that it provides a unified system of processing, testing, and documenting these facets.

Yet another benefit of the present invention is that it provides a computer system and method for automatically generating and processing software code, object instantiations, testable functionality, and implementation documentation from a single set of declarative executable specifications. Still another benefit of the present invention is that it provides a computer system that allows a software application developer the ability to declare a single set of executable specifications and receive full unit tests, implementation documentation, and end-user application code from the set of specifications. Another benefit of the present invention is that it provides a computer system for performing software application development that allows the executable specifications to be reused across several projects.

Moreover, another benefit of the present invention is that it provides a computer system and methodology which allows application developers to spend time on real features significant to end-users instead of infrastructure issues that are important only to programmers. Furthermore, another benefit of the present invention is that it provides a computer system whereby technical managers can better manage their application development projects by utilizing built-in project management, application documentation, unit-testing, and artifact-generation tools. Additionally, another benefit of the present invention is that most of the user interface and database logic is coded in a declarative style using XML code instead of a programmatic style using Java code, wherein this significantly reduces the amount of code (as much as 50–75% of code can be eliminated), increases reusability of the code, and increases code quality.

Yet another benefit of the present invention is that it provides a computer system, wherein analysts can use the declarative user interface features to create prototypes that can later be completed by programmers, thereby resulting in no more throw-away prototypes, as is common with conventional systems. Still another benefit of the present invention is that it provides a computer system, wherein applications are built by assembling declared user interface (UI) forms/dialogs and database SQL components combined with application-specific business logic using single or multiple distributed application tiers. Another benefit of the present invention is that it provides a feature-rich framework that significantly reduces the time, resources, and cost of producing reusable high-quality data-intensive thin-client applications.

Yet another benefit of the present invention is that it implements common design patterns like Model-View-Controller (MVC) and factories, and the present invention's skins infrastructure allows identical business logic to be used across different user interfaces for a variety of browsers and platforms like handheld computers. Still another benefit of the present invention is that it affords developers much flexibility in their software application development process without having to change the existing code-base.

Independent claims

Claim 1

A computer system for performing reusable software application development, said computer system comprising a multi-component architecture comprising data, wherein said multi-component architecture further comprises: a relational database server operatively connected to an application server; a presentation component operatively connected to said application server; an application component operatively connected to said application server; a data component operatively connected to said application server; a security and personalization component operatively connected to said presentation component, said application component, and said data component; an administration console operatively connected to said presentation component, said application component, and said data component, wherein said administration console comprises said security and personalization component, and wherein said security and personalization component restricts access to said data; and declarable executable specifications operatively connected to said security and personalization component, wherein said declarable executable specifications comprise a set of keywords and attributes used to declare a single set of said executable specifications and receive full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.

Claim 6

A computer-implemented method for performing reusable software application development, said method comprising: integrating a data processing system; providing a set of keywords and attributes in said data processing system; declaring a single set of executable specifications using said set of keywords and attributes; and receiving full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.

Claim 13

A program storage device readable by machine, tangibly embodying a program of instructions executable by said machine to perform a method for performing reusable software application development, said method comprising: integrating a data processing system; providing a set of keywords and attributes in said data processing system; declaring a single set of executable specifications using said set of keywords and attributes; and receiving full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.

All 19 claims
  1. A computer system for performing reusable software application development, said computer system comprising a multi-component architecture comprising data, wherein said multi-component architecture further comprises: a relational database server operatively connected to an application server; a presentation component operatively connected to said application server; an application component operatively connected to said application server; a data component operatively connected to said application server; a security and personalization component operatively connected to said presentation component, said application component, and said data component; an administration console operatively connected to said presentation component, said application component, and said data component, wherein said administration console comprises said security and personalization component, and wherein said security and personalization component restricts access to said data; and declarable executable specifications operatively connected to said security and personalization component, wherein said declarable executable specifications comprise a set of keywords and attributes used to declare a single set of said executable specifications and receive full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.
  2. The computer system of claim 1 , wherein said presentation component comprises an extensible application framework comprising at least one application program interface, wherein said application program interface automates form building engines, data state machine engines, queries engines, reporting engines, access control engines, templating engines, project configuration engines, rule processing engines, and metrics engines.
  3. The computer system of claim 1 , wherein said application component comprises an extensible information framework of database structure libraries, wherein said libraries comprise reusable tables, columns, and indexes.
  4. The computer system of claim 1 , wherein said data component creates a plurality of database object classes, and wherein said data component comprises data types, table types, tables, and enumerations.
  5. The computer system of claim 1 , wherein said administration console responds to operator commands enabling an operator to access said data and said declarable executable specifications.
  6. A computer-implemented method for performing reusable software application development, said method comprising: integrating a data processing system; providing a set of keywords and attributes in said data processing system; declaring a single set of executable specifications using said set of keywords and attributes; and receiving full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.
  7. The method of claim 6 , wherein said step of declaring a set of executable specifications comprises: generating a program code in said data processing system; instantiating an object code in said data processing system; generating a testable functionality result in said data processing system; generating at least one unit test case in said data processing system; generating implementation documentation output in said data processing system; generating a performance statistics output in said data processing system; and generating a project metrics in said data processing system.
  8. The method of claim 6 , wherein said step of providing a set of keywords and attributes comprises generating a set of user interface forms, fields, and validation rules, and wherein said method enables an operator to describe components of a presentation and interface by receiving input from a user.
  9. The method of claim 6 , wherein said step of providing a set of keywords and attributes comprises: generating a library of structured query language statements; and generating a library of rules for generating dynamic structured query language statements, wherein said method enables an operator to describe database access components by retrieving data from a data storage device, wherein said data storage device is coupled to said data processing system, and wherein said method enables said operator to describe database access rules and user interface components that connect to said data storage device by retrieving said data from said storage device and presenting data to a user.
  10. The method of claim 6 , wherein said step of providing a set of keywords and attributes comprises generating one of a web browser report, a file-based report, and a portable document format report, and wherein said method enables an operator to describe database interface components by displaying data to a user.
  11. The method of claim 6 , wherein said step of providing a set of keywords and attributes comprises generating a library of security rules and permission statements, and wherein said method enables an operator to describe authorization and authentication components of an application.
  12. The method of claim 6 , wherein said step of providing a set of keywords and attributes comprises generating database schemata, wherein said database schemata comprises data types, table types, tables, and enumerations, and wherein said method enables an operator to describe database structure components by storing application data.
  13. A program storage device readable by machine, tangibly embodying a program of instructions executable by said machine to perform a method for performing reusable software application development, said method comprising: integrating a data processing system; providing a set of keywords and attributes in said data processing system; declaring a single set of executable specifications using said set of keywords and attributes; and receiving full unit tests, implementation documentation, and end-user application code from said single set of said executable specifications.
  14. The program storage device of claim 13 , wherein said step of declaring a set of executable specifications comprises: generating a program code in said data processing system; instantiating an object code in said data processing system; generating a testable functionality result in said data processing system; generating at least one unit test case in said data processing system; generating implementation documentation output in said data processing system; generating a performance statistics output in said data processing system; and generating a project metrics in said data processing system.
  15. The program storage device of claim 13 , wherein said step of providing a set of keywords and attributes comprises generating a set of user interface forms, fields, and validation rules, and wherein said method enables an operator to describe components of a presentation and interface by receiving input from a user.
  16. The program storage device of claim 13 , wherein said step of providing a set of keywords and attributes comprises: generating a library of structured query language statements; and generating a library of rules for generating dynamic structured query language statements, wherein said method enables an operator to describe database access components by retrieving data from a data storage device, wherein said data storage device is coupled to said data processing system, and wherein said method enables said operator to describe database access rules and user interface components that connect to said data storage device by retrieving said data from said storage device and presenting data to a user.
  17. The program storage device of claim 13 , wherein said step of providing a set of keywords and attributes comprises generating one of a web browser report, a file-based report, and a portable document format report, and wherein said method enables an operator to describe database interface components by displaying data to a user.
  18. The program storage device of claim 13 , wherein said step of providing a set of keywords and attributes comprises generating a library of security rules and permission statements, and wherein said method enables an operator to describe authorization and authentication components of an application.
  19. The program storage device of claim 13 , wherein said step of providing a set of keywords and attributes comprises generating database schemata, wherein said database schemata comprises data types, table types, tables, and enumerations, and wherein said method enables an operator to describe database structure components by storing application data.

Explained in plain language and in context

Patent summaries

Not offered

This family is expired. Intellectual Frontiers shows it as prior art and reference, and does not offer it for licence or acquisition.

Questions

Is US7039898B2 available for licensing?

No. Its family is expired; Intellectual Frontiers shows it as prior art and reference.

Can US7039898B2 be bought?

No. It is not offered.

What is the status of US7039898B2?

Patent Expired Due to NonPayment of Maintenance Fees Under 37 CFR 1.362 as of 28 May 2018, according to the USPTO record read 27 September 2026.

When does US7039898B2 expire?

11 February 2024. An estimate from Google Patents, read 9 October 2026. Fees, terminal disclaimers and later events can change it, and it is not legal advice.

What does US7039898B2 cover?

A computer system executing a method for performing reusable software application development comprises integrating a data processing system, providing a set of keywords and attributes, and declaring a set of executable specifications using the keywords and attributes, further comprising generating a program code, instantiating an object code, generating a testable functionality result, generating A plain-language summary is at https://www.intellectualfrontiers.com/patent-summaries/reusable-software-development-with-declarative-executable-specifications.

Who invented US7039898B2 and who holds it?

Shahid N. Shah is the inventor. Intellectual Frontiers LLC holds the rights.