System and method for configuring and executing a flexible...

Data processing: software development – installation – and managem – Software program development tool – Code generation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06490719

ABSTRACT:

BACKGROUND
1. Field of Invention
The present invention relates to an improved system and method for configuring and executing a flexible computer program. More specifically, the invention relates to a system and method for specifying and combining a new type of component specification known as a component interface that is used to generate complex object structures and their interactions and that causes these objects to automatically interact according to the information contained in the component interfaces.
2. Description of Prior Art
As computers have become more powerful, software programs have become larger and more complex and, as a result, increasingly difficult to design and program. This is exacerbated in the business world where application programs are highly customized and must be frequently modified.
Unfortunately, once an application program has been created, it is often not easy to modify. Most application programs provide some means for using simple parameters to customize a program at execution time, but these are of limited flexibility. In most cases, modifications to the program logic require changes to the underlying program programming instructions, or source code.
Changes to program source code require great technical skill. Because of the complexity of program source code and the implicit business knowledge that is often buried within it, even the smallest program modification must be exhaustively tested. Furthermore, many business processes are duplicated across several different programs and must be synchronized.
As a result of these difficulties, a professional class of software engineers has emerged, few of who have more than a cursory knowledge of the business environment that the programs support. Meanwhile, very few business experts and program users are also programming experts.
Business requirements are usually communicated by business experts to software engineers for creation of program specifications and generation of programming source code. Since these two groups often “speak different languages”, such communication can be difficult, particularly when subject matter expertise is dispersed across an organization. Such miscommunication is compounded by inadequate documentation that is often dispersed and out of date.
As a result of these problems, many companies experience backlogs in application program development as a result of time spent making minor modifications. This delays the introduction of new business products and processes.
Perhaps the clearest indication of the impact of this can be seen in the so-called “year 2000 problem” which arises from the convention of representing calendar years by their last two digits. As a result, many older application programs will be unable without modification to correctly process dates after the year 2000 . This fairly straightforward problem is easily defined, yet has proven costly and time-consuming to fix.
3. Recent Advances in Prior Art
Various advances have been made in the prior art to improve the software development process. These advances generally fall into one of several categories: i) techniques to assist in the design and documentation process (CASE tools), ii) visual programming tools and source code generators, iii) expert systems, and iv) object oriented programming.
Computer aided software engineering (CASE) design tools allow the software engineer to create visual representations of complex data relationships, data-flows, etc., that are used to generate detailed program specifications and to create documentation. These can then be used by the software engineer to assist in the coding of the computer program. CASE tools are not appropriate for non-technical business experts since they require proficiency with programming logic (such as iteration and conditional branching). Some CASE design tools are designed to aid in the specification of complex data structures and logical programming constructs. CASE Design tools do not eliminate the need to construct programming algorithms, nor do they improve the process by which business experts communicate business requirements to software engineers.
Visual programming tools typically facilitate the creation of the user interface of a program, by generating the source code for such elements as windows, buttons, checkboxes, menus, selection buttons, etc. Sometimes these tools can also be used to generate simple database applications. Visual programming tools can be used by a business expert with some minimal technical training as well as by software engineers. These tools can reduce the time spent on repetitive coding for well-defined objects with simple interfaces. However, since they do not eliminate the need to create the underlying programming logic, they are not suitable for use by non-technical business experts for anything beyond the simplest programs.
Expert systems share some of the objectives of the present invention, but are much more limited in scope. In general, such systems are used simply to abstract very specific and well-defined types of information (such as rules and decision trees) out of the program source code, but cannot address the full range of complex programming logic.
Object oriented programming has emerged as a promising technology that is designed to allow rapid development, implementation and customization of objects. Each new object has certain data attributes and processes or methods that operate on that data. Thus, program instructions are more tightly bound to the data upon which they operate than is the case with traditional programming languages. Data is said to be “encapsulated” by an object and can only be modified by the object methods, which are invoked by sending a message to an object identifying the method and supplying any needed arguments.
Under the object-oriented approach, software engineers design object classes that represent general-purpose templates for executable objects. A computer program is built using source code that creates customized objects from these object classes and that specifies the interactions between the objects. Object classes often represent entities that can be easily described and understood, such as File, Account, Menu, Window, etc.
Object oriented systems have two important properties in addition to encapsulation. “Inheritance” is the ability to derive a new object from an existing object and inherit all properties, including methods and data structure, from the existing object. The new object may have certain unique features that are supplied as overrides or modifications to the existing class. For example, a new subclass needs to specify only the functions and data that distinguish that class from the existing more general class. The ability to override an existing method description enables polymorphism, the ability to have a single message to an object be processed in different ways depending on the object itself. Inheritance and polymorphism create a powerful structure for implementing a new software system. The software developer does not have to develop each piece of a system; he or she need only specify the unique features of the system.
However, the promise of code re-use has proved to be difficult to achieve in practice. In order to use an object in a computer program, its attributes and its interactions with other objects must first be specified. This requires additional programming and can be time-consuming, particularly when these attributes and object iterations are complex. Also, object oriented programming is difficult, even for experienced software engineers. The dynamic nature of an object class cannot be easily understood without careful study of the underlying source code. Also, efficient use of inheritance requires that the programmer become familiar with the methods and data of the parent classes all the way up the class hierarchy for every class being used. Thus, although the object-oriented approach goes some way towards enabling computer programs to be built from pre-built components, it requires a high level of programming expertise.
In sum,

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for configuring and executing a flexible... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for configuring and executing a flexible..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for configuring and executing a flexible... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2994077

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.