US5493682A - Object based system for software maintenance - Google Patents

Object based system for software maintenance Download PDF

Info

Publication number
US5493682A
US5493682A US08/329,792 US32979294A US5493682A US 5493682 A US5493682 A US 5493682A US 32979294 A US32979294 A US 32979294A US 5493682 A US5493682 A US 5493682A
Authority
US
United States
Prior art keywords
event
objects
initial
events
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US08/329,792
Inventor
Kristopher L. Tyra
Grant R. Gainey
David P. Zimmerman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US08/329,792 priority Critical patent/US5493682A/en
Application granted granted Critical
Publication of US5493682A publication Critical patent/US5493682A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present invention is directed to apparatus and methods for maintaining computer software objects, and in particular is directed to a system based on object-oriented concepts using objects to represent system components and processes to be applied to those components.
  • Software systems are constructed by creating a number of source code programs that are compiled and linked together to form an executable system.
  • Software maintenance is the process of changing and adapting software to correct errors, or to enhance or change function.
  • Software maintenance includes assuring that the executable software system (the execution version) contains all modifications that have been made to the component source programs.
  • Execution version currency can be assured by recompiling and relinking all components of a software system each time one of the source programs is changed.
  • this technique becomes increasingly impractical.
  • Large software systems such as operating systems software, and significant application programs, may be comprised of hundreds, thousands, or tens of thousands of separate source code programs. These source code programs are interrelated in a manner specified by the software system architecture designer.
  • the interrelationship of the pieces of a software system can be represented as a hierarchical dependency graph. For example, in FIG. 1, the software system called “topone” is based upon three components, first.o, second.o, and third.o. Each of these, in turn, is dependent upon other programs, e.g. first.o is dependent upon first.c and first.h.
  • the dependency network for a software system typically identifies source program modules and intermediate components which are eventually assembled to create the finished software system.
  • the generation of intermediate modules and the final system product is carried out by defined executable processes.
  • the most frequently employed function is compilation, which transforms a source code program into an object code module containing machine language instructions necessary to carry out the steps defined in the source code.
  • the object module in FIG. 1 entitled first.o is created by compiling first.c together with first.h.
  • the second frequently used process is the binding or link editing of object code files to form an executable module.
  • the binding step includes the process necessary to interrelate object code so that references to variables, memory locations, and other factors are fully resolved so the resulting module can be loaded into a computer system and executed.
  • Make uses an acyclic dependency graph specified in a computer file (known as a Makefile). Each node in the graph has a Make rule which is executed to produce a new version of the parent node if any child node has changed.
  • the Make utility while capable of performing software maintenance, suffers from a lack of flexibility and difficulty of use.
  • a large software system would require the specification of a large number of rules.
  • the dependencies and interrelationships of the modules in a Make file is implicit rather than explicit leading to difficulties in interpretation and checking of the files. This leads to difficulties in maintaining the Make file when changes are made to the software architecture and interrelationship.
  • Object-oriented software systems and object-oriented programming languages are being increasingly applied to the solution of large system software problems. Object-oriented approaches are directed to the subdivision of a problem to smaller, more easily managed pieces. Object-oriented languages and systems encourage programming and development in terms of "objects". Objects implement encapsulation by providing a single definition of the data and processes (known as methods) necessary to manage that object.
  • a second feature of object-oriented languages systems is the notion of inheritance. Inheritance allows one object to "inherit” or use the data or methods from another object. In this way, new, more specific objects can be defined by defining only the variances from a more general object definition.
  • Encapsulation of objects requires that object data be manipulated or viewed by the use of one of the object methods.
  • Each object is provided a set of operations providing a visible interface to other objects. Communication between objects is accomplished by message passing where messages conforming to the visible interface specification are accepted and processed by that interface.
  • a message passed to an object is analyzed by the object which itself selects a method by which it will react to that message.
  • Object-oriented concepts allow significant reusability of objects through the concept of instantiation.
  • Instantiation allows a copy or instance of an object to be created from either a generic object description or another object using the principles of inheritance.
  • the particular instance of the object has its own data and is permitted to override particular data in the generic object definition.
  • Inheritance allows an object instance to benefit from hidden data or methods in one or more superior objects.
  • An object which inherits data or methods for more than one object is said to have multiple inheritance.
  • Encapsulation of an object can be shown as in FIG. 2.
  • an object designated 100 contains the data description 110 and functions 112 and 114. The object reacts in response to message 116 which causes a selection of one of the methods 112 or 114 for execution.
  • FIG. 3 illustrates the concept of multiple inheritance.
  • Two objects A and B can be defined at 120, 122 respectively.
  • Object C 124 is shown as inheriting the data and functions from each of the objects A and B and can have its own additional data and methods.
  • Object C is said to be multiply dependent on objects A and B.
  • the object-oriented approach provides an important way to subdivide a large problem such as large software system maintenance.
  • the concepts of encapsulation and inheritance provide a powerful tool for solving such large problems.
  • the present invention is directed to applying object-oriented techniques to the solution of large software maintenance problems.
  • Software systems can be represented as objects which are in turn comprised of a plurality of other objects which, at the lowest level, represent physical source program files.
  • the processes to be applied to the software objects can themselves be defined as methods within the objects.
  • the application of processes to particular source files can be accomplished using a message passing scheme.
  • messages are themselves created as objects having attributes to control the application of processes to system objects. These enhanced messages are known as events in the present system.
  • the present invention includes an object dependency interpreter that analyzes object relationships and assures that events are routed as required by those relationships.
  • the present invention is directed at solving the technical problem of maintaining large software systems comprised of a large number of software components.
  • FIG. 1 is a dependency network showing an example of software component dependencies.
  • FIG. 2 is a schematic diagram of the component object and associated message.
  • FIG. 3 is a schematic representation of object inheritance.
  • FIG. 4 is a block diagram showing the major components of the present system.
  • FIG. 5 is a flow chart showing the processing steps of the object dependency interpreter according to the present invention.
  • the present invention provides a system and method for maintaining software systems based upon defined software objects and events.
  • the system provides an ability to define software objects and events, to create data structures representing the objects, and to interpretatively analyze object dependencies and structures to cause event processes to be applied to software objects as necessary to generate the final software system.
  • Source files 210 contain the definitions of objects and events.
  • Object and event definitions in the preferred embodiment, are created as a series of text files with descriptors providing for the definition of object attributes and methods.
  • the present invention is not limited to the use of text based source files and is equally applicable to object definition files generated through a graphical interface or similar techniques.
  • a software object in the preferred embodiment, includes an object descriptor giving a name to the object and one or more attributes.
  • Object attributes can include assignment of a value to a variable, the specification of object dependencies, the association of an event with an object method, or the definition of the process statements comprising an object method.
  • a dependency list attribute specifies the objects on which the current object depends. For example, an object code object may be dependent upon one or more source code objects or library objects.
  • An object method defines the executable statements which must be processed to create the current software object.
  • the method specifies what must be done with dependent objects and variables in order to create the present object.
  • the method for creating an object code object may involve the compilation of dependent source code files.
  • the methods may be generalized to be able to recognize different types of source code files and apply the appropriate compiler or compiler options as a result of that recognition.
  • Generic objects may be defined for common situations. For example, the creation of an object file for a C language source file requires common compilation steps.
  • a generic object can be defined for any C object code file specifying the necessary object methods. When the system needs to use a generic object, the object is instantiated for the particular object name and attributes are overridden to supply object dependencies, if necessary. Where a convention is followed such that the object code file and the source code file have the same name (e.g. x1.o and x1.c) no attribute replacement is required.
  • the source files also contain object definitions for events.
  • events define the processes to be applied to the software objects.
  • Event names correspond to method names and serve as messages to cause the objects to perform the necessary function.
  • Event definitions according to the present invention include the provision of event conditions and prerequisite events to control the software maintenance process.
  • Event conditions specify software object states that must be satisfied before the event is delivered to a software object.
  • the conditions include: no condition, meaning that no object condition must be met; out of date, meaning that the software object must be out of date with respect to its dependencies; object exists, meaning that the object must be found in the file system; no object exists; and object built, meaning that the object was created by the application of an object method (as opposed to being entered by a human operator).
  • Prerequisite events specify any events that must be delivered to an object before this event may be delivered.
  • event objects are provided with an additional precondition and post-condition which allow testing and error detection if the application of an event to a software object does not create the expected result.
  • additional precondition and post-condition which allow testing and error detection if the application of an event to a software object does not create the expected result.
  • the execution of a compile process for a software object should result in the condition that the object was built by that process. If a post-condition test reveals that the object is not in that condition, an error has occurred and the system should notify the operator.
  • the present invention next includes a parser 220 which parses the source files containing object definitions and event definitions into an intermediate "object assembly" language.
  • the object assembly intermediate language provides a simplified form of object description that can be used to build object data structures in memory.
  • Object assembly in the preferred embodiment, is a series of one-byte operation codes that define the object, its attributes, and conditions. Provision of a standard intermediate language allows the present invention to work with source files parsed by parser 220 or allows the definition of graphical input or different format source files which can be transformed into object assembly language by the application of an appropriate parser.
  • the next component of the present invention is object dependency interpreter engine 230.
  • the object dependency interpreter controls the operation of the system by managing the passing of events to objects and causing the appropriate methods to be executed.
  • the object dependency interpreter is a recursive process that evaluates each software object to determine its dependencies, and ensures that all lower level dependency conditions have been satisfied before the present object is evaluated.
  • the object dependency interpreter also is responsible for instantiating specific instances of generic objects and for managing the inheritance properties between objects.
  • the preferred embodiment uses inheritance to minimize the number of definitions required in the software object definition section.
  • a series of superclasses are defined that contain generic objects with generic dependencies and the methods required to generate that object. These generic objects include the data and methods required to compile different language source programs and to bind the resulting object modules together.
  • the present invention makes use of shared memory and mapped memory files to increase the speed object analysis and access.
  • the object dependency interpreter 230 uses object assembly data to build an object data structure for each of the objects that find the source files 210. This data structure is placed in the mapped memory area of a UNIX-based system.
  • the mapped memory area provides the ability to save the memory area to a permanent disk file 231 and to restore that file to the memory at the same memory address.
  • the ability to restore the data at the same memory address simplifies the process of saving and restoring the file.
  • the object dependency interpreter can continue to work with the object data file in the mapped memory unless source files 210 have been modified. This eliminates the need to operate parser 220 and for object dependency interpreter 230 to build the object data on each location.
  • the object dependency interpreter When interpreting event conditions, the object dependency interpreter must be able to determine the date of last update for source program files. In many prior art systems, this date was checked each time the source program was referenced during software maintenance. This multiple date checking greatly increased the overhead and slowed processing time in such software maintenance systems. In a large software environment containing a large file system and potential of shadowed filed trees, such repetitive date checking is undesirable.
  • the present invention removes this limitation by checking the file status only once displaying the results in memory for any other reference.
  • the software maintenance system operates as follows.
  • a software system architect builds object and event source files 210 using a text editor, a graphic editor, or other known device.
  • the object definitions specify the system software architecture by specifying the dependencies for each module.
  • Event objects are define, including defining all processes to be applied to software objects and conditions for their application.
  • a programmer or operator may wish to use the software maintenance system to create an updated executable version of the system.
  • the operator invokes the software maintenance system and supplies an initial event and an object to which the event is to be applied. It is possible in the preferred embodiment to specify a default event and default initial object with the object and event descriptions.
  • the system first determines whether the object data structure 231 is out of date with respect to the source files 210. If so, parser 220 is activated to parse the source files and pass the resulting object assembly to the object dependency interpreter.
  • the object dependency interpreter is accessed and first builds the revised object data structure. In the preferred embodiment this structure is built in mapped memory. Operation will be described with reference to flow charts shown in FIG. 5.
  • the object dependency interpreter 230 will first attempt to locate the specified object in the object data structure, step 302. Once the object has been located, the interpreter tests to determine whether dependencies exist for that object (304). If dependencies exist, the current object status is saved, for example in a stack (306), and the first dependent object is located, step 302. The locate object step 302 and test for dependencies step 304 are recursively executed until an object with no dependencies is located. This object represents the lowest level or lead node in the object dependency hierarchy.
  • the interpreter next determines the condition of the object (308), for example, whether it is built, exists, or is out of date.
  • the interpreter next tests this object condition against the condition specified in the event descriptor to determine a match (310). If the conditions do not match the event is not delivered to this object and processing continues by attempting to locate the parent object and to continue processing at step 316.
  • the event is to be delivered to the object.
  • Interpreter 230 must determine whether the object definition associates a method with the specified event (312). If no method is associated with the event, the processing continues at step 316. If the method is associated, that method is executed at 314.
  • Step 316 determines whether delivery of the process to a higher level object has been deferred. If so, this object is once again accessed (e.g. removed from the stack) and the test for additional dependencies continues. Execution proceeds recursively in this manner until all dependencies for the highest level object have been satisfied. Finally, the object condition for the highest level event is tested and that highest level object is processed according to the same logic. Since no more objects exist at this point the interpreter exits.
  • Extensions to the preferred embodiment include the ability to build instances of generic objects. This would occur following step 302, when the system, if failing to locate the specific object in the data structure would seek to match the object name with the generic object defined in the data structure and if found, the specific object would be instantiated based upon the generic object. Similarly, when event associations are tested at step 312, the interpreter will search the object for the necessary method, and if not found will check all superclass objects from which the current object may inherit a method or attribute.
  • the object dependency interpreter also has the ability to detect prerequisite events or pre-events defined in the event definition. When the object dependency interpreter detects a pre-event, processing of the current event is suspended and any prerequisite event is first processed. Processing of pre-events is also recursive in that any pre-events for identified pre-events are processed before that event. Processing of each of these events occurs according to the identified steps.
  • the present invention provides significant advantages over the prior art.
  • the use of object structures and object dependency interpreter simplifies both the specification of the objects, events, and dependencies, and provides for rapid processing necessary to maintain the software system.

Abstract

A computer implemented system and method for automatically generating an executable version is based on component objects and events. Object-oriented language concepts of encapsulation, inheritance, and message passing are employed to simplify the specification and execution steps. Software maintenance includes the steps of assembling executable systems from defined component parts such as source code files and object code files. An object definition is provided for each software component containing a specification of its dependency upon other objects and processing methods that must be executed to create that object. An event definition is created for each process that is to be applied to the component objects. The event definition includes a specification of any prerequisite events and conditions for delivery of the event message. An object dependency interpreter is provided to recursively control the passing of events to the objects for action. It ensures that any prerequisite events are first executed and that any objects upon which the current object is dependent are processed before the present object. Inheritance is employed to simplify object definition through the definition of generic objects which the object dependency interpreter instantiates for processing. Mapped memory is used to store an object data structure containing the representation of component objects and event objects. Additional storage is used to retain component object file system status.

Description

This application is a continuation of application Ser. No. 08/100,583, filed Jul. 30, 1993, abandoned, which is a continuation of application Ser. No. 07/644,804, filed Jan. 22, 1991, now abandoned.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is directed to apparatus and methods for maintaining computer software objects, and in particular is directed to a system based on object-oriented concepts using objects to represent system components and processes to be applied to those components.
2. Background and Prior Art
Software systems are constructed by creating a number of source code programs that are compiled and linked together to form an executable system. Software maintenance is the process of changing and adapting software to correct errors, or to enhance or change function. Software maintenance includes assuring that the executable software system (the execution version) contains all modifications that have been made to the component source programs. Execution version currency can be assured by recompiling and relinking all components of a software system each time one of the source programs is changed. However as the size of software systems has grown this technique becomes increasingly impractical.
Large software systems, such as operating systems software, and significant application programs, may be comprised of hundreds, thousands, or tens of thousands of separate source code programs. These source code programs are interrelated in a manner specified by the software system architecture designer. The interrelationship of the pieces of a software system can be represented as a hierarchical dependency graph. For example, in FIG. 1, the software system called "topone" is based upon three components, first.o, second.o, and third.o. Each of these, in turn, is dependent upon other programs, e.g. first.o is dependent upon first.c and first.h.
The dependency network for a software system typically identifies source program modules and intermediate components which are eventually assembled to create the finished software system. The generation of intermediate modules and the final system product is carried out by defined executable processes. The most frequently employed function is compilation, which transforms a source code program into an object code module containing machine language instructions necessary to carry out the steps defined in the source code. For example, the object module in FIG. 1 entitled first.o is created by compiling first.c together with first.h. (This example is based on programs coded in the C language, however, the principles are extensible to any compiled or interpreted language such as FORTRAN, PASCAL, ADA, or to assembly language.) The second frequently used process is the binding or link editing of object code files to form an executable module. The binding step includes the process necessary to interrelate object code so that references to variables, memory locations, and other factors are fully resolved so the resulting module can be loaded into a computer system and executed.
It is desirable in large software systems to perform compilation, binding, and other processes only to the extent required by changes to the source programs or to the software architecture definition defining the relationships between the programs. An attempt to manually perform only the necessary processes is subject to error and omission as the size of software systems grow. Automated tools for software maintenance have been developed to automatically determine the necessary changes and execute the required processes. One such tool is the "make" utility found in UNIX-based systems (UNIX is a trademark of UNIX Systems Laboratories).
Make uses an acyclic dependency graph specified in a computer file (known as a Makefile). Each node in the graph has a Make rule which is executed to produce a new version of the parent node if any child node has changed.
The Make utility, while capable of performing software maintenance, suffers from a lack of flexibility and difficulty of use. A large software system would require the specification of a large number of rules. The dependencies and interrelationships of the modules in a Make file is implicit rather than explicit leading to difficulties in interpretation and checking of the files. This leads to difficulties in maintaining the Make file when changes are made to the software architecture and interrelationship.
A discussion of several other techniques and proposed alternatives is provided in U.S. Pat. No. 4,558,413 to Schmidt et al. The Schmidt et al. system is designed to assemble a software system based upon source programs located in a series of workstation on a local area network. The Schmidt et al. system provides an extension to the Make utility which is claimed to provide more efficient management of large software products in a distributed environment. Schmidt et al., however, still require the specification of the complete architecture (system model) in a descriptor file.
Object-oriented software systems and object-oriented programming languages are being increasingly applied to the solution of large system software problems. Object-oriented approaches are directed to the subdivision of a problem to smaller, more easily managed pieces. Object-oriented languages and systems encourage programming and development in terms of "objects". Objects implement encapsulation by providing a single definition of the data and processes (known as methods) necessary to manage that object.
A second feature of object-oriented languages systems is the notion of inheritance. Inheritance allows one object to "inherit" or use the data or methods from another object. In this way, new, more specific objects can be defined by defining only the variances from a more general object definition.
Encapsulation of objects requires that object data be manipulated or viewed by the use of one of the object methods. Each object is provided a set of operations providing a visible interface to other objects. Communication between objects is accomplished by message passing where messages conforming to the visible interface specification are accepted and processed by that interface. A message passed to an object is analyzed by the object which itself selects a method by which it will react to that message.
Object-oriented concepts allow significant reusability of objects through the concept of instantiation. Instantiation allows a copy or instance of an object to be created from either a generic object description or another object using the principles of inheritance. The particular instance of the object has its own data and is permitted to override particular data in the generic object definition.
Inheritance allows an object instance to benefit from hidden data or methods in one or more superior objects. An object which inherits data or methods for more than one object is said to have multiple inheritance. Encapsulation of an object can be shown as in FIG. 2. Here an object designated 100 contains the data description 110 and functions 112 and 114. The object reacts in response to message 116 which causes a selection of one of the methods 112 or 114 for execution.
FIG. 3 illustrates the concept of multiple inheritance. Two objects A and B can be defined at 120, 122 respectively. Object C 124 is shown as inheriting the data and functions from each of the objects A and B and can have its own additional data and methods. Object C is said to be multiply dependent on objects A and B.
The object-oriented approach provides an important way to subdivide a large problem such as large software system maintenance. The concepts of encapsulation and inheritance provide a powerful tool for solving such large problems.
SUMMARY OF THE INVENTION
The present invention is directed to applying object-oriented techniques to the solution of large software maintenance problems. Software systems can be represented as objects which are in turn comprised of a plurality of other objects which, at the lowest level, represent physical source program files. In addition, the processes to be applied to the software objects can themselves be defined as methods within the objects. The application of processes to particular source files can be accomplished using a message passing scheme. To control the processing, messages are themselves created as objects having attributes to control the application of processes to system objects. These enhanced messages are known as events in the present system. The present invention includes an object dependency interpreter that analyzes object relationships and assures that events are routed as required by those relationships.
Therefore, the present invention is directed at solving the technical problem of maintaining large software systems comprised of a large number of software components.
BRIEF DESCRIPTION OF THE DRAWINGS
The preferred embodiment of the present invention will be described with reference to the following figures.
FIG. 1 is a dependency network showing an example of software component dependencies.
FIG. 2 is a schematic diagram of the component object and associated message.
FIG. 3 is a schematic representation of object inheritance.
FIG. 4 is a block diagram showing the major components of the present system.
FIG. 5 is a flow chart showing the processing steps of the object dependency interpreter according to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention provides a system and method for maintaining software systems based upon defined software objects and events. The system provides an ability to define software objects and events, to create data structures representing the objects, and to interpretatively analyze object dependencies and structures to cause event processes to be applied to software objects as necessary to generate the final software system.
An overview of the system according to the present invention is shown in FIG. 4. Source files 210 contain the definitions of objects and events. Object and event definitions, in the preferred embodiment, are created as a series of text files with descriptors providing for the definition of object attributes and methods. The present invention, however, is not limited to the use of text based source files and is equally applicable to object definition files generated through a graphical interface or similar techniques. A software object, in the preferred embodiment, includes an object descriptor giving a name to the object and one or more attributes. Object attributes can include assignment of a value to a variable, the specification of object dependencies, the association of an event with an object method, or the definition of the process statements comprising an object method. Of particular importance to the present invention is the provision of a dependency list. A dependency list attribute specifies the objects on which the current object depends. For example, an object code object may be dependent upon one or more source code objects or library objects.
An object method defines the executable statements which must be processed to create the current software object. The method specifies what must be done with dependent objects and variables in order to create the present object. Thus, in the above example, the method for creating an object code object may involve the compilation of dependent source code files. The methods may be generalized to be able to recognize different types of source code files and apply the appropriate compiler or compiler options as a result of that recognition.
Generic objects may be defined for common situations. For example, the creation of an object file for a C language source file requires common compilation steps. A generic object can be defined for any C object code file specifying the necessary object methods. When the system needs to use a generic object, the object is instantiated for the particular object name and attributes are overridden to supply object dependencies, if necessary. Where a convention is followed such that the object code file and the source code file have the same name (e.g. x1.o and x1.c) no attribute replacement is required.
The source files also contain object definitions for events. As discussed above, events define the processes to be applied to the software objects. Event names correspond to method names and serve as messages to cause the objects to perform the necessary function. Event definitions according to the present invention include the provision of event conditions and prerequisite events to control the software maintenance process. Event conditions specify software object states that must be satisfied before the event is delivered to a software object. In the preferred embodiment, the conditions include: no condition, meaning that no object condition must be met; out of date, meaning that the software object must be out of date with respect to its dependencies; object exists, meaning that the object must be found in the file system; no object exists; and object built, meaning that the object was created by the application of an object method (as opposed to being entered by a human operator).
Prerequisite events specify any events that must be delivered to an object before this event may be delivered.
In the preferred embodiment, event objects are provided with an additional precondition and post-condition which allow testing and error detection if the application of an event to a software object does not create the expected result. Thus, for example, the execution of a compile process for a software object should result in the condition that the object was built by that process. If a post-condition test reveals that the object is not in that condition, an error has occurred and the system should notify the operator.
The present invention next includes a parser 220 which parses the source files containing object definitions and event definitions into an intermediate "object assembly" language. The object assembly intermediate language provides a simplified form of object description that can be used to build object data structures in memory. Object assembly, in the preferred embodiment, is a series of one-byte operation codes that define the object, its attributes, and conditions. Provision of a standard intermediate language allows the present invention to work with source files parsed by parser 220 or allows the definition of graphical input or different format source files which can be transformed into object assembly language by the application of an appropriate parser.
The next component of the present invention is object dependency interpreter engine 230. The object dependency interpreter controls the operation of the system by managing the passing of events to objects and causing the appropriate methods to be executed. The object dependency interpreter is a recursive process that evaluates each software object to determine its dependencies, and ensures that all lower level dependency conditions have been satisfied before the present object is evaluated. The object dependency interpreter also is responsible for instantiating specific instances of generic objects and for managing the inheritance properties between objects.
The preferred embodiment uses inheritance to minimize the number of definitions required in the software object definition section. A series of superclasses are defined that contain generic objects with generic dependencies and the methods required to generate that object. These generic objects include the data and methods required to compile different language source programs and to bind the resulting object modules together.
The present invention makes use of shared memory and mapped memory files to increase the speed object analysis and access. The object dependency interpreter 230 uses object assembly data to build an object data structure for each of the objects that find the source files 210. This data structure is placed in the mapped memory area of a UNIX-based system. The mapped memory area provides the ability to save the memory area to a permanent disk file 231 and to restore that file to the memory at the same memory address. The ability to restore the data at the same memory address simplifies the process of saving and restoring the file. The object dependency interpreter can continue to work with the object data file in the mapped memory unless source files 210 have been modified. This eliminates the need to operate parser 220 and for object dependency interpreter 230 to build the object data on each location.
When interpreting event conditions, the object dependency interpreter must be able to determine the date of last update for source program files. In many prior art systems, this date was checked each time the source program was referenced during software maintenance. This multiple date checking greatly increased the overhead and slowed processing time in such software maintenance systems. In a large software environment containing a large file system and potential of shadowed filed trees, such repetitive date checking is undesirable. The present invention removes this limitation by checking the file status only once displaying the results in memory for any other reference.
Operation
The software maintenance system according to the present invention operates as follows.
A software system architect builds object and event source files 210 using a text editor, a graphic editor, or other known device. The object definitions specify the system software architecture by specifying the dependencies for each module. Event objects are define, including defining all processes to be applied to software objects and conditions for their application.
After making changes to a source program, a programmer or operator may wish to use the software maintenance system to create an updated executable version of the system. The operator invokes the software maintenance system and supplies an initial event and an object to which the event is to be applied. It is possible in the preferred embodiment to specify a default event and default initial object with the object and event descriptions. The system first determines whether the object data structure 231 is out of date with respect to the source files 210. If so, parser 220 is activated to parse the source files and pass the resulting object assembly to the object dependency interpreter. The object dependency interpreter is accessed and first builds the revised object data structure. In the preferred embodiment this structure is built in mapped memory. Operation will be described with reference to flow charts shown in FIG. 5. The object dependency interpreter 230 will first attempt to locate the specified object in the object data structure, step 302. Once the object has been located, the interpreter tests to determine whether dependencies exist for that object (304). If dependencies exist, the current object status is saved, for example in a stack (306), and the first dependent object is located, step 302. The locate object step 302 and test for dependencies step 304 are recursively executed until an object with no dependencies is located. This object represents the lowest level or lead node in the object dependency hierarchy.
The interpreter next determines the condition of the object (308), for example, whether it is built, exists, or is out of date. The interpreter next tests this object condition against the condition specified in the event descriptor to determine a match (310). If the conditions do not match the event is not delivered to this object and processing continues by attempting to locate the parent object and to continue processing at step 316.
If the object condition matches the event condition, the event is to be delivered to the object. Interpreter 230 must determine whether the object definition associates a method with the specified event (312). If no method is associated with the event, the processing continues at step 316. If the method is associated, that method is executed at 314.
Step 316 determines whether delivery of the process to a higher level object has been deferred. If so, this object is once again accessed (e.g. removed from the stack) and the test for additional dependencies continues. Execution proceeds recursively in this manner until all dependencies for the highest level object have been satisfied. Finally, the object condition for the highest level event is tested and that highest level object is processed according to the same logic. Since no more objects exist at this point the interpreter exits.
Extensions to the preferred embodiment include the ability to build instances of generic objects. This would occur following step 302, when the system, if failing to locate the specific object in the data structure would seek to match the object name with the generic object defined in the data structure and if found, the specific object would be instantiated based upon the generic object. Similarly, when event associations are tested at step 312, the interpreter will search the object for the necessary method, and if not found will check all superclass objects from which the current object may inherit a method or attribute.
The object dependency interpreter also has the ability to detect prerequisite events or pre-events defined in the event definition. When the object dependency interpreter detects a pre-event, processing of the current event is suspended and any prerequisite event is first processed. Processing of pre-events is also recursive in that any pre-events for identified pre-events are processed before that event. Processing of each of these events occurs according to the identified steps.
The preferred embodiment of the present invention has been described above in terms of specific steps and implementations. It will be recognized by those skilled in the art that alternative implementations are possible which will result in functionally equivalent processing. It is therefore intended that the scope of the present invention be limited only by the appended claims.
The present invention provides significant advantages over the prior art. The use of object structures and object dependency interpreter simplifies both the specification of the objects, events, and dependencies, and provides for rapid processing necessary to maintain the software system.

Claims (21)

We claim:
1. An information processing system for managing message passing between objects, said system comprising:
(a) storage means for storing objects and events, each of said objects having one or more object conditions, one or mope attributes, and one or more methods associated therewith, each of said methods having an identifier and specifying operations to be performed by said system, said attributes including a list of zero, one or more dependency objects on which the object depends, each of said events having one or more event conditions associated therewith;
(b) initialization means for starting said system, said initialization means determining an initial object and an initial event;
(c) dependency interpreter means for recursively identifying target objects on which said initial object and identified target objects depends based on said dependency objects, and for delivering said initial event to all of said identified target objects before delivering said event to said initial object; and
(d) delivery means for delivering said initial event to said target objects, said delivery means including:
(1) means for testing the object conditions associated with said target objects to determine whether the event conditions associated with said initial event are satisfied;
(2) means for testing the methods associated with said target objects, if said event conditions are satisfied, to determine whether a method for the event is associated for that object; and
(3) processing means for executing said method if said means for testing locates a method for said event.
2. The system of claim 1 further comprising:
source object storage means for storing source code descriptions of said objects;
event storage means for storing source code descriptions of said events;
parsing means for transforming said object and event source code descriptions into an intermediate language representation; and
data structure means for building said objects and events into a data structure in said storage means.
3. The system of claim 2 wherein said object definitions include generic objects having attributes and methods and wherein said system further comprises:
object instantiation means for identifying a generic object similar to said initial or target object and for generating an instance of said generic object with properties of said initial or target object.
4. The system of claim 3 wherein said instance inherits attributes and methods from said generic object.
5. A system for software maintenance, said system creating a current version of a software object from a plurality of software source files, said system comprising:
(a) event storage means for storing events required to maintain said software object, each of said events having an event identifier and one or more event conditions;
(b) object storage means for storing object definitions defining objects, each of said objects having an object identifier, one or more attributes, one or more object conditions, and one or more methods describing operations to be performed by said system, said attributes including at least one dependency object on which the object depends, wherein said dependency objects represent a software object comprised of zero, one or more dependent objects, or is a reference to a source file;
(c) operator interaction means for identifying an operator selected initial object and initial event;
(d) dependency interpreter means for recursively identifying target objects on which said initial object and its dependency objects depend; and
(e) delivery means for delivering said initial event to said target objects, said delivery means including:
(1) means for testing said target object conditions against said event conditions;
(2) means for testing said target object methods to determine whether said target object has an associated method matching said event, if said event conditions are satisfied; and
(3) processing means for processing said associated method if an associated event is identified.
6. The system of claim 5 wherein said event storage means and said object storage means comprise system random access memory beginning at a first address and wherein said system further comprises:
non-volatile system storage means for copying data in said event storage means and said object storage means to said non-volatile system storage; and
means for copying data from said non-volatile storage to said event storage and said object storage so that said first address remains the same.
7. The system of claim 6 further comprising:
event data entry means for entering event definitions; and
object data entry means for entering object definitions.
8. The system of claim 7 wherein said event data entry means and said object data entry means comprise a text entry system; and wherein said system further comprises:
parsing means for transforming text event and object data into an intermediate language; and
data structure generation means for transforming said intermediate language into said object and event data structure in said random access memory.
9. The system of claim 8 wherein said object definitions include generic objects having attributes and methods and wherein said system further comprises:
object instantiation means for identifying a generic object similar to said initial or target object and for generating an instance of said generic object with properties of said initial or target object.
10. The system of claim 9 wherein said instance inherits attributes and methods from said generic object.
11. The system of claim 5 wherein said events further include prerequisite events that must be applied to objects before said event.
12. The system of claim 5 wherein said event conditions include a delivery condition, a pre-application condition and a post-application condition, wherein failure of said pre-application or post-application conditions causes an error message to be generated.
13. The system of claim 12 wherein the event conditions are one of: object exists, object does not exist, built, out of date, or no condition.
14. A computer implemented method for managing software system versions, where each software version is computer executable code generated from a plurality of computer stored source code modules and object code modules, the method comprising the steps of:
(a) initially, in response to user input:
(1) specifying each source code object in the software system, wherein each source code object includes a list of source code objects on which the object depends and procedural methods describing the procedure for generating the source code object;
(2) specifying a plurality of events to be applied to the source code objects, the events including event conditions that must be satisfied before the event is applied to the source code object;
(3) providing an initial object and an initial event to be applied to the initial object;
(b) for said initial event, automatically:
(1) recursively testing for object dependencies in the initial object dependencies in the initial object and associated objects on which it depends;
(2) testing the source code object description to determine whether a procedural method has been associated with the event, if the object conditions satisfies the event condition;
(3) applying the associated method to the object to generate a new version of the object, if a method is associated with the event; and
(4) repeating steps (b) (1)-(b) (3) for all objects on which the object depends and the initial object until all have been processed.
15. The method of claim 14 further comprising the steps of:
entering computer readable source code files to specify the source objects and events;
parsing the computer readable source code files thereby transforming them to an intermediate language representation; and
building an object data structure in computer storage from the intermediate language representation.
16. The method of claim 14 wherein the steps of specifying source code objects and events is performed by selecting representations from a graphical display and arranging those representations as required to specify the source code objects and events.
17. The method of claim 15 further comprising the steps of:
copying the object data structure to non-volatile storage; and
skipping the parsing and building steps and instead copying the object data structure from non-volatile storage to computer storage if the source code files have not changed between initiations of the system.
18. The method of claim 17 wherein the initial object and initial event are specified by default in the source code object specification and event specification.
19. The system of claim 1 wherein said dependency interpreter means and said delivery means process each of said events beginning with said initial event.
20. The system of claim 5 wherein said dependency interpreter means and said delivery means process each of said events beginning with said initial event.
21. The method of claim 14 wherein steps (b) (1)-(b) (4) are performed for each of said events beginning with said initial event.
US08/329,792 1991-01-22 1994-10-26 Object based system for software maintenance Expired - Fee Related US5493682A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/329,792 US5493682A (en) 1991-01-22 1994-10-26 Object based system for software maintenance

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US64480491A 1991-01-22 1991-01-22
US10058393A 1993-07-30 1993-07-30
US08/329,792 US5493682A (en) 1991-01-22 1994-10-26 Object based system for software maintenance

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10058393A Continuation 1991-01-22 1993-07-30

Publications (1)

Publication Number Publication Date
US5493682A true US5493682A (en) 1996-02-20

Family

ID=24586399

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/329,792 Expired - Fee Related US5493682A (en) 1991-01-22 1994-10-26 Object based system for software maintenance

Country Status (5)

Country Link
US (1) US5493682A (en)
EP (1) EP0496494A3 (en)
JP (1) JPH0792748B2 (en)
BR (1) BR9200055A (en)
CA (1) CA2059577A1 (en)

Cited By (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997024676A1 (en) * 1995-12-29 1997-07-10 Tele-Communications, Inc. Application and database security and integrity system and method
US5706510A (en) * 1996-03-15 1998-01-06 Hewlett-Packard Company Zymbolic history management system
US5708774A (en) * 1996-07-23 1998-01-13 International Business Machines Corporation Automated testing of software application interfaces, object methods and commands
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5729746A (en) * 1992-12-08 1998-03-17 Leonard; Ricky Jack Computerized interactive tool for developing a software product that provides convergent metrics for estimating the final size of the product throughout the development process using the life-cycle model
US5748929A (en) * 1992-10-05 1998-05-05 International Business Machines Corporation Program storage device and computer program product for interactively managing a distributed database system
US5758349A (en) * 1995-12-27 1998-05-26 International Business Machines Corporation Process and system for run-time inheritance and disinheritance of methods and data
US5787440A (en) * 1994-03-10 1998-07-28 Crossties Software Corp. Object oriented architecture with bidirectional linking of relationships between objects
US5790796A (en) * 1996-06-14 1998-08-04 Symantec Corporation Polymorphic package files to update software components
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
WO1998040807A2 (en) * 1997-02-27 1998-09-17 Siebel Systems, Inc. Migrating to a successive software distribution level
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US5867709A (en) * 1995-10-18 1999-02-02 Kapre Software, Inc. Method and system for reusing customizations to a software product
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
US5974254A (en) * 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US6016498A (en) * 1996-03-04 2000-01-18 Bakke; Stephen Peter Object oriented architecture with bidirectional linking of relationships between objects
US6044377A (en) * 1995-11-07 2000-03-28 Sun Microsystem, Inc. User-defined object type and method of making the object type wherein a file associated with a rule is invoked by accessing the file which generates code at run time
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US6117187A (en) * 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
US6167521A (en) * 1997-08-29 2000-12-26 International Business Machines Corporation Securely downloading and executing code from mutually suspicious authorities
US6182277B1 (en) * 1998-04-15 2001-01-30 Oracle Corporation Methods and apparatus for declarative programming techniques in an object oriented environment
US6226792B1 (en) * 1998-10-14 2001-05-01 Unisys Corporation Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
US6243763B1 (en) 1996-11-12 2001-06-05 International Business Machines Corporation Method for sending a message to a group and the group broadcasts the message to its members or references within an object-oriented system
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US6298476B1 (en) * 1995-12-04 2001-10-02 International Business Machines Corporation Object oriented software build framework mechanism
US20010049682A1 (en) * 1999-01-08 2001-12-06 John K. Vincent System and method for recursive path analysis of dbms procedures
US20020016956A1 (en) * 1995-11-27 2002-02-07 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6351752B1 (en) 1998-07-08 2002-02-26 Ncr Corporation Method and apparatus for detecting changes to a collection of objects
US6370681B1 (en) * 1996-03-19 2002-04-09 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
WO2002063464A2 (en) * 2001-02-07 2002-08-15 Robert Bosch Gmbh Method for the automatic updating of software
US20020144248A1 (en) * 1998-06-19 2002-10-03 Microsoft Corporation Software package management
US20020154176A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation System and method for using shading layers and highlighting to navigate a tree view display
US20030069797A1 (en) * 1997-08-28 2003-04-10 Clfford A. Harrison System and method for computer-aided technician dispatch and communication
US20030088850A1 (en) * 2001-10-12 2003-05-08 Allison David S. Method and apparatus for deriving functions from other functions in a programming language
KR100388486B1 (en) * 2000-12-14 2003-06-25 한국전자통신연구원 Method and apparatus for identifying software components using object relationships and object usages in use cases
WO2003055119A2 (en) * 2001-12-06 2003-07-03 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US20040049565A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for root cause identification and problem determination in distributed systems
US20040046785A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US20040049372A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for dependency-based impact simulation and vulnerability analysis
US20040049365A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US6765597B2 (en) 2001-04-19 2004-07-20 International Business Machines Corporation System and method for using layer bars to indicate levels within non-indented tree view control
US20040181787A1 (en) * 2003-03-10 2004-09-16 Microsoft Corporation Software updating system and method
US20040187103A1 (en) * 2003-03-17 2004-09-23 Wickham Robert T. Software updating system and method
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US20050044544A1 (en) * 1996-04-18 2005-02-24 Microsoft Corporation Methods and systems for obtaining computer software via a network
US20050044541A1 (en) * 1996-12-12 2005-02-24 Microsoft Corporation Automatic software downloading from a computer network
US6898782B1 (en) 1997-10-14 2005-05-24 International Business Machines Corporation Reference-based associations using reference attributes in an object modeling system
US20050144615A1 (en) * 2003-12-29 2005-06-30 Shu-Chuan Chen Modularized custom-developed software package producing method and system
US20050192979A1 (en) * 2004-02-27 2005-09-01 Ibm Corporation Methods and arrangements for ordering changes in computing systems
US20050216923A1 (en) * 2004-03-24 2005-09-29 Krebs Andreas S Object set optimization using dependency information
WO2005103952A1 (en) * 2004-04-23 2005-11-03 Oracle International Corporation Data storage method and system
US20060064681A1 (en) * 2004-09-23 2006-03-23 Robinson Douglas B Method and system for verifying makefile accuracy
US20060129584A1 (en) * 2004-12-15 2006-06-15 Thuvan Hoang Performing an action in response to a file system event
US20060143142A1 (en) * 2003-07-25 2006-06-29 Vasilescu Manuela A O Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, rotation and compression
US20060143177A1 (en) * 2004-12-15 2006-06-29 Oracle International Corporation Comprehensive framework to integrate business logic into a repository
US20070118561A1 (en) * 2005-11-21 2007-05-24 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US20070143358A1 (en) * 2003-06-30 2007-06-21 Sap Aktiengesellschaft Data synchronization system and method
US7290243B1 (en) * 2001-02-28 2007-10-30 Apple Inc. Method and apparatus for application building using build styles
US20080046859A1 (en) * 2006-08-18 2008-02-21 Samantha Pineda Velarde System and method for evaluating adherence to a standardized process
US20080120400A1 (en) * 2006-11-16 2008-05-22 Alexander Keller Systems and Methods for Constructing Relationship Specifications from Component Interactions
US20080127219A1 (en) * 2006-09-15 2008-05-29 Jason Nathaniel Lacombe Enhancement of assured event delivery mechanism to eliminate external xa store requirement
US20080189324A1 (en) * 2006-10-13 2008-08-07 Alexander Keller Systems and methods for expressing temporal relationships spanning lifecycle representations
US20080215528A1 (en) * 1999-08-05 2008-09-04 Eric Sedlar Multi-Model Access To Data
US20080247608A1 (en) * 2004-01-13 2008-10-09 Vasilescu Manuela Alex O Method, System, Storage Medium, and Data Structure for Image Recognition Using Multilinear Independent Component Analysis
US20080276231A1 (en) * 2007-05-03 2008-11-06 Yunwu Huang Method and apparatus for dependency injection by static code generation
US20100011342A1 (en) * 2008-07-09 2010-01-14 International Business Machines Corporation Service interface creation and modification for object-oriented services
US20100037208A1 (en) * 2008-08-07 2010-02-11 International Business Machines Corporation handle based method for side-by-side assemblies in a unix environment
US20110088036A1 (en) * 2009-10-14 2011-04-14 Oracle International Corporation Automated Administration Using Composites of Atomic Operations
US8005929B1 (en) 2009-02-27 2011-08-23 Symantec Operating Corporation Software update checking method
US20110246536A1 (en) * 1994-12-07 2011-10-06 Next Software, Inc. Method and apparatus for mapping objects to multiple tables of a database
US20110252403A1 (en) * 2010-04-13 2011-10-13 International Business Machines Corporation Component relinking in migrations
US8074213B1 (en) 2006-08-11 2011-12-06 Symantec Operating Corporation Automatic software updates for computer systems in an enterprise environment
US8229778B2 (en) 2006-11-16 2012-07-24 International Business Machines Corporation Constructing change plans from component interactions
US8261255B1 (en) 2000-11-07 2012-09-04 International Business Machines Corporation Method, system, and computer program product for maintaining software on a computer system with automatic dependency resolution
US8453141B1 (en) 2009-01-29 2013-05-28 Symantec Corporation High performance install update
US8490054B2 (en) 2011-09-23 2013-07-16 The United States Of America As Represented By The Secretary Of The Army Software and related software tracking during software modification
US20150006349A1 (en) * 2013-06-28 2015-01-01 D. E. Shaw & Co., L.P. Electronic Trading Auction With Orders Interpreted Using Future Information
US20150006350A1 (en) * 2013-06-28 2015-01-01 D.E. Shaw & Co., L.P. Electronic Trading Auction with Randomized Acceptance Phase and Order Execution
US9600767B1 (en) * 2006-10-06 2017-03-21 Hrl Laboratories, Llc System, method, and computer program product for generating a single software code based on a description of a distributed architecture
US10769113B2 (en) 2016-03-25 2020-09-08 Microsoft Technology Licensing, Llc Attribute-based dependency identification for operation ordering

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
CA2128387C (en) * 1993-08-23 1999-12-28 Daniel F. Hurley Method and apparatus for configuring computer programs from available subprograms
JPH07262025A (en) * 1994-03-18 1995-10-13 Fujitsu Ltd Execution control system
US5613063A (en) * 1994-07-01 1997-03-18 Digital Equipment Corporation Method and apparatus for checking validity of memory operations
SE504050C2 (en) 1995-02-28 1996-10-28 Ericsson Telefon Ab L M Network device and method for connecting in a communication system a connection between two points by utilizing a number of connection objects
AU8065698A (en) * 1997-06-13 1998-12-30 True Software, Inc. Systems and methods for scanning and modeling dependencies in software applications
WO2001088697A2 (en) * 2000-05-17 2001-11-22 Adc Telecommunications Israel Ltd. Methods for modularizing network software
US11829751B1 (en) * 2020-12-23 2023-11-28 Synopsys, Inc. System and method for automatically capturing source code and associated artifacts for static analysis

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US4951192A (en) * 1987-06-04 1990-08-21 Apollo Computer, Inc. Device for managing software configurations in parallel in a network
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US5084813A (en) * 1988-04-20 1992-01-28 Kabushiki Kaisha Toshiba Rule based system for synthesizing a program suited for a target system in response to an input target system specification
US5093915A (en) * 1988-11-02 1992-03-03 Xerox Corporation Method for selectively loading bootable fiber to control apparatus based upon the corresponding bootable attributes
US5130924A (en) * 1988-06-30 1992-07-14 International Business Machines Corporation System for defining relationships among document elements including logical relationships of elements in a multi-dimensional tabular specification

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US4951192A (en) * 1987-06-04 1990-08-21 Apollo Computer, Inc. Device for managing software configurations in parallel in a network
US5084813A (en) * 1988-04-20 1992-01-28 Kabushiki Kaisha Toshiba Rule based system for synthesizing a program suited for a target system in response to an input target system specification
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US5130924A (en) * 1988-06-30 1992-07-14 International Business Machines Corporation System for defining relationships among document elements including logical relationships of elements in a multi-dimensional tabular specification
US5093915A (en) * 1988-11-02 1992-03-03 Xerox Corporation Method for selectively loading bootable fiber to control apparatus based upon the corresponding bootable attributes

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
A. Gustavsson, Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey "Maintaining the Evolution of Software Objects in our Integrated Environment".
A. Gustavsson, Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey Maintaining the Evolution of Software Objects in our Integrated Environment . *
E. A. Ballbergen et al., Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey "On the Design of the Amoeba Config. Manager".
E. A. Ballbergen et al., Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey On the Design of the Amoeba Config. Manager . *
Feldman, Stewart J., Software Practice and Experience, vol. 9(4), Apr. 1979, "Make-A Program for Maintaining Computer Programs".
Feldman, Stewart J., Software Practice and Experience, vol. 9(4), Apr. 1979, Make A Program for Maintaining Computer Programs . *
M. Marcus et al., IEEE Comp. Society 2nd Int. Conf. on ADA "DAPSE: Distributed ADA Programming Environment".
M. Marcus et al., IEEE Comp. Society 2nd Int. Conf. on ADA DAPSE: Distributed ADA Programming Environment . *
V. Ambriola et al., Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey "Object Oriented Configuration Control".
V. Ambriola et al., Proceedings of the 2nd Int. Workshop on Software Config. Management, Oct. 24, 1989, Princeton, New Jersey Object Oriented Configuration Control . *

Cited By (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748929A (en) * 1992-10-05 1998-05-05 International Business Machines Corporation Program storage device and computer program product for interactively managing a distributed database system
US5729746A (en) * 1992-12-08 1998-03-17 Leonard; Ricky Jack Computerized interactive tool for developing a software product that provides convergent metrics for estimating the final size of the product throughout the development process using the life-cycle model
US5787440A (en) * 1994-03-10 1998-07-28 Crossties Software Corp. Object oriented architecture with bidirectional linking of relationships between objects
US20110246536A1 (en) * 1994-12-07 2011-10-06 Next Software, Inc. Method and apparatus for mapping objects to multiple tables of a database
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US5867709A (en) * 1995-10-18 1999-02-02 Kapre Software, Inc. Method and system for reusing customizations to a software product
US6044377A (en) * 1995-11-07 2000-03-28 Sun Microsystem, Inc. User-defined object type and method of making the object type wherein a file associated with a rule is invoked by accessing the file which generates code at run time
US7925718B2 (en) 1995-11-27 2011-04-12 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US20110185351A1 (en) * 1995-11-27 2011-07-28 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US20020016956A1 (en) * 1995-11-27 2002-02-07 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US20060155737A1 (en) * 1995-11-27 2006-07-13 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US20060218246A1 (en) * 1995-11-27 2006-09-28 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US8612551B2 (en) 1995-11-27 2013-12-17 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6298476B1 (en) * 1995-12-04 2001-10-02 International Business Machines Corporation Object oriented software build framework mechanism
US6101501A (en) * 1995-12-27 2000-08-08 International Business Machines Corporation Process and system for run-time inheritance and disinheritance of methods and data
US5758349A (en) * 1995-12-27 1998-05-26 International Business Machines Corporation Process and system for run-time inheritance and disinheritance of methods and data
US5966715A (en) * 1995-12-29 1999-10-12 Csg Systems, Inc. Application and database security and integrity system and method
WO1997024676A1 (en) * 1995-12-29 1997-07-10 Tele-Communications, Inc. Application and database security and integrity system and method
US6016498A (en) * 1996-03-04 2000-01-18 Bakke; Stephen Peter Object oriented architecture with bidirectional linking of relationships between objects
US5706510A (en) * 1996-03-15 1998-01-06 Hewlett-Packard Company Zymbolic history management system
US6370681B1 (en) * 1996-03-19 2002-04-09 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US20050044544A1 (en) * 1996-04-18 2005-02-24 Microsoft Corporation Methods and systems for obtaining computer software via a network
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5790796A (en) * 1996-06-14 1998-08-04 Symantec Corporation Polymorphic package files to update software components
US5708774A (en) * 1996-07-23 1998-01-13 International Business Machines Corporation Automated testing of software application interfaces, object methods and commands
US6243763B1 (en) 1996-11-12 2001-06-05 International Business Machines Corporation Method for sending a message to a group and the group broadcasts the message to its members or references within an object-oriented system
US7634772B2 (en) 1996-12-12 2009-12-15 Microsoft Corporation Automatic software downloading from a computer network
US20050044541A1 (en) * 1996-12-12 2005-02-24 Microsoft Corporation Automatic software downloading from a computer network
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US20020129352A1 (en) * 1997-02-27 2002-09-12 Brodersen Robert A. Method and apparatus for upgrading a software application in the presence of user modifications
WO1998040807A3 (en) * 1997-02-27 1999-02-25 Siebel Systems Inc Migrating to a successive software distribution level
WO1998040807A2 (en) * 1997-02-27 1998-09-17 Siebel Systems, Inc. Migrating to a successive software distribution level
US7076778B2 (en) 1997-02-27 2006-07-11 Siebel Systems, Inc. Method and apparatus for upgrading a software application in the presence of user modifications
US6367077B1 (en) 1997-02-27 2002-04-02 Siebel Systems, Inc. Method of upgrading a software application in the presence of user modifications
US20060288344A1 (en) * 1997-02-27 2006-12-21 Siebel Systems, Inc. Method and apparatus for upgrading a software application in the presence of user modifications
US6138270A (en) * 1997-06-06 2000-10-24 National Instruments Corporation System, method and memory medium for detecting differences between graphical programs
US5974254A (en) * 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US20030069797A1 (en) * 1997-08-28 2003-04-10 Clfford A. Harrison System and method for computer-aided technician dispatch and communication
US7725344B2 (en) 1997-08-28 2010-05-25 Csg Systems, Inc. System and method for computer-aided technician dispatch and communication
US6990458B2 (en) 1997-08-28 2006-01-24 Csg Systems, Inc. System and method for computer-aided technician dispatch and communication
US20050094772A1 (en) * 1997-08-28 2005-05-05 Csg Systems, Inc. System and method for computer-aided technician dispatch and communication
US6167521A (en) * 1997-08-29 2000-12-26 International Business Machines Corporation Securely downloading and executing code from mutually suspicious authorities
US6117187A (en) * 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
US6898782B1 (en) 1997-10-14 2005-05-24 International Business Machines Corporation Reference-based associations using reference attributes in an object modeling system
US6182277B1 (en) * 1998-04-15 2001-01-30 Oracle Corporation Methods and apparatus for declarative programming techniques in an object oriented environment
US20020144248A1 (en) * 1998-06-19 2002-10-03 Microsoft Corporation Software package management
US7222341B2 (en) * 1998-06-19 2007-05-22 Microsoft Corporation Method and system for processing software dependencies in management of software packages
US6351752B1 (en) 1998-07-08 2002-02-26 Ncr Corporation Method and apparatus for detecting changes to a collection of objects
US6226792B1 (en) * 1998-10-14 2001-05-01 Unisys Corporation Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
US20010049682A1 (en) * 1999-01-08 2001-12-06 John K. Vincent System and method for recursive path analysis of dbms procedures
US7526468B2 (en) * 1999-01-08 2009-04-28 Computer Associates Think, Inc. System and method for recursive path analysis of DBMS procedures
US20080215528A1 (en) * 1999-08-05 2008-09-04 Eric Sedlar Multi-Model Access To Data
US8335775B1 (en) * 1999-08-05 2012-12-18 Oracle International Corporation Versioning in internet file system
US8065320B2 (en) 1999-08-05 2011-11-22 Oracle International Corporation Multi-model access to data
US8261255B1 (en) 2000-11-07 2012-09-04 International Business Machines Corporation Method, system, and computer program product for maintaining software on a computer system with automatic dependency resolution
KR100388486B1 (en) * 2000-12-14 2003-06-25 한국전자통신연구원 Method and apparatus for identifying software components using object relationships and object usages in use cases
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
WO2002063464A2 (en) * 2001-02-07 2002-08-15 Robert Bosch Gmbh Method for the automatic updating of software
US20050102661A1 (en) * 2001-02-07 2005-05-12 Gerrit De Boer Method for automatic updating of software
WO2002063464A3 (en) * 2001-02-07 2003-02-06 Bosch Gmbh Robert Method for the automatic updating of software
US7424707B2 (en) 2001-02-07 2008-09-09 Robert Bosch Gmbh Method for automatic updating of software
US8010937B2 (en) 2001-02-28 2011-08-30 Apple Inc. Method and apparatus for application building using build styles
US7290243B1 (en) * 2001-02-28 2007-10-30 Apple Inc. Method and apparatus for application building using build styles
US20080077908A1 (en) * 2001-02-28 2008-03-27 Anders Bertelrud Method and apparatus for application building using build styles
US8527937B2 (en) 2001-02-28 2013-09-03 Apple Inc. Method and apparatus for application building using build styles
US6990638B2 (en) 2001-04-19 2006-01-24 International Business Machines Corporation System and method for using shading layers and highlighting to navigate a tree view display
US20020154176A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation System and method for using shading layers and highlighting to navigate a tree view display
US6765597B2 (en) 2001-04-19 2004-07-20 International Business Machines Corporation System and method for using layer bars to indicate levels within non-indented tree view control
US20030088850A1 (en) * 2001-10-12 2003-05-08 Allison David S. Method and apparatus for deriving functions from other functions in a programming language
US7146601B2 (en) * 2001-10-12 2006-12-05 Sun Microsystems, Inc. Method and apparatus for deriving functions from other functions in a programming language
WO2003055119A2 (en) * 2001-12-06 2003-07-03 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US20050210036A1 (en) * 2001-12-06 2005-09-22 Vasilescu Manuela O Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US7603323B2 (en) 2001-12-06 2009-10-13 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis recognition and compression
US20080109474A1 (en) * 2001-12-06 2008-05-08 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis recognition and compression
WO2003055119A3 (en) * 2001-12-06 2003-08-21 Univ New York Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US7280985B2 (en) 2001-12-06 2007-10-09 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US7505872B2 (en) 2002-09-11 2009-03-17 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US7240325B2 (en) 2002-09-11 2007-07-03 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US7334222B2 (en) 2002-09-11 2008-02-19 International Business Machines Corporation Methods and apparatus for dependency-based impact simulation and vulnerability analysis
US20040049365A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US20040049565A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for root cause identification and problem determination in distributed systems
US20040046785A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US7096459B2 (en) 2002-09-11 2006-08-22 International Business Machines Corporation Methods and apparatus for root cause identification and problem determination in distributed systems
US20040049372A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for dependency-based impact simulation and vulnerability analysis
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US20040181787A1 (en) * 2003-03-10 2004-09-16 Microsoft Corporation Software updating system and method
US7555749B2 (en) 2003-03-10 2009-06-30 Microsoft Corporation Software updating system and method
US20040187103A1 (en) * 2003-03-17 2004-09-23 Wickham Robert T. Software updating system and method
US7584467B2 (en) 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
US20070143358A1 (en) * 2003-06-30 2007-06-21 Sap Aktiengesellschaft Data synchronization system and method
US9165047B2 (en) * 2003-06-30 2015-10-20 Sap Se Data synchronization system and method
US7379925B2 (en) 2003-07-25 2008-05-27 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, rotation and compression
US20060143142A1 (en) * 2003-07-25 2006-06-29 Vasilescu Manuela A O Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, rotation and compression
US20050144615A1 (en) * 2003-12-29 2005-06-30 Shu-Chuan Chen Modularized custom-developed software package producing method and system
US20080247608A1 (en) * 2004-01-13 2008-10-09 Vasilescu Manuela Alex O Method, System, Storage Medium, and Data Structure for Image Recognition Using Multilinear Independent Component Analysis
US7693299B2 (en) 2004-01-13 2010-04-06 New York University Method, system, storage medium, and data structure for image recognition using multilinear independent component analysis
US7496912B2 (en) 2004-02-27 2009-02-24 International Business Machines Corporation Methods and arrangements for ordering changes in computing systems
US20050192979A1 (en) * 2004-02-27 2005-09-01 Ibm Corporation Methods and arrangements for ordering changes in computing systems
US20050216923A1 (en) * 2004-03-24 2005-09-29 Krebs Andreas S Object set optimization using dependency information
US7506332B2 (en) * 2004-03-24 2009-03-17 Sap Ag Object set optimization using dependency information
US8798523B2 (en) 2004-03-24 2014-08-05 Sap Ag Object set optimization using dependency information
WO2005103952A1 (en) * 2004-04-23 2005-11-03 Oracle International Corporation Data storage method and system
US20060064681A1 (en) * 2004-09-23 2006-03-23 Robinson Douglas B Method and system for verifying makefile accuracy
US20060143177A1 (en) * 2004-12-15 2006-06-29 Oracle International Corporation Comprehensive framework to integrate business logic into a repository
US7921076B2 (en) 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US8131766B2 (en) 2004-12-15 2012-03-06 Oracle International Corporation Comprehensive framework to integrate business logic into a repository
US20110137963A1 (en) * 2004-12-15 2011-06-09 Oracle International Corporation Performing an action in response to a file system event
US8176007B2 (en) * 2004-12-15 2012-05-08 Oracle International Corporation Performing an action in response to a file system event
US20060129584A1 (en) * 2004-12-15 2006-06-15 Thuvan Hoang Performing an action in response to a file system event
US20070118561A1 (en) * 2005-11-21 2007-05-24 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8949455B2 (en) 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US9898545B2 (en) 2005-11-21 2018-02-20 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8074213B1 (en) 2006-08-11 2011-12-06 Symantec Operating Corporation Automatic software updates for computer systems in an enterprise environment
US8635599B2 (en) * 2006-08-18 2014-01-21 International Business Machines Corporation System and method for evaluating adherence to a standardized process
US20080046859A1 (en) * 2006-08-18 2008-02-21 Samantha Pineda Velarde System and method for evaluating adherence to a standardized process
US7636873B2 (en) 2006-09-15 2009-12-22 International Business Machines Corporation Enhancement of assured event delivery mechanism to eliminate external XA store requirement
US20080127219A1 (en) * 2006-09-15 2008-05-29 Jason Nathaniel Lacombe Enhancement of assured event delivery mechanism to eliminate external xa store requirement
US9600767B1 (en) * 2006-10-06 2017-03-21 Hrl Laboratories, Llc System, method, and computer program product for generating a single software code based on a description of a distributed architecture
US20080189324A1 (en) * 2006-10-13 2008-08-07 Alexander Keller Systems and methods for expressing temporal relationships spanning lifecycle representations
US8819627B2 (en) 2006-10-13 2014-08-26 International Business Machines Corporation Systems and methods for expressing temporal relationships spanning lifecycle representations
US8555247B2 (en) 2006-10-13 2013-10-08 International Business Machines Corporation Systems and methods for expressing temporal relationships spanning lifecycle representations
US20080120400A1 (en) * 2006-11-16 2008-05-22 Alexander Keller Systems and Methods for Constructing Relationship Specifications from Component Interactions
US8229778B2 (en) 2006-11-16 2012-07-24 International Business Machines Corporation Constructing change plans from component interactions
US8037471B2 (en) 2006-11-16 2011-10-11 International Business Machines Corporation Systems and methods for constructing relationship specifications from component interactions
US8515799B2 (en) 2006-11-16 2013-08-20 International Business Machines Corporation Constructing change plans from component interactions
US20080276231A1 (en) * 2007-05-03 2008-11-06 Yunwu Huang Method and apparatus for dependency injection by static code generation
US8745584B2 (en) * 2007-05-03 2014-06-03 International Business Machines Corporation Dependency injection by static code generation
US11144307B2 (en) 2008-07-09 2021-10-12 International Business Machines Corporation Service interface creation and modification for object-oriented services
US20100011342A1 (en) * 2008-07-09 2010-01-14 International Business Machines Corporation Service interface creation and modification for object-oriented services
US9639331B2 (en) * 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US20100037208A1 (en) * 2008-08-07 2010-02-11 International Business Machines Corporation handle based method for side-by-side assemblies in a unix environment
US8291401B2 (en) * 2008-08-07 2012-10-16 International Business Machines Corporation Processing symbols associated with shared assemblies
US8453141B1 (en) 2009-01-29 2013-05-28 Symantec Corporation High performance install update
US8005929B1 (en) 2009-02-27 2011-08-23 Symantec Operating Corporation Software update checking method
US8347294B2 (en) 2009-10-14 2013-01-01 Oracle International Corporation Automated administration using composites of atomic operations
US20110088036A1 (en) * 2009-10-14 2011-04-14 Oracle International Corporation Automated Administration Using Composites of Atomic Operations
US9183037B2 (en) 2009-10-14 2015-11-10 Oracle International Corporation Automated administration using composites of atomic operations
US8677339B2 (en) * 2010-04-13 2014-03-18 International Business Machines Corporation Component relinking in migrations
US20110252403A1 (en) * 2010-04-13 2011-10-13 International Business Machines Corporation Component relinking in migrations
US8490054B2 (en) 2011-09-23 2013-07-16 The United States Of America As Represented By The Secretary Of The Army Software and related software tracking during software modification
US20150006349A1 (en) * 2013-06-28 2015-01-01 D. E. Shaw & Co., L.P. Electronic Trading Auction With Orders Interpreted Using Future Information
US20150006350A1 (en) * 2013-06-28 2015-01-01 D.E. Shaw & Co., L.P. Electronic Trading Auction with Randomized Acceptance Phase and Order Execution
US10769113B2 (en) 2016-03-25 2020-09-08 Microsoft Technology Licensing, Llc Attribute-based dependency identification for operation ordering

Also Published As

Publication number Publication date
EP0496494A3 (en) 1993-05-12
JPH0792748B2 (en) 1995-10-09
EP0496494A2 (en) 1992-07-29
JPH0561683A (en) 1993-03-12
CA2059577A1 (en) 1992-07-23
BR9200055A (en) 1992-09-08

Similar Documents

Publication Publication Date Title
US5493682A (en) Object based system for software maintenance
US5761510A (en) Method for error identification in a program interface
EP0664027B1 (en) Program modeling system
US5758160A (en) Method and apparatus for building a software program using dependencies derived from software component interfaces
Ierusalimschy et al. Lua—an extensible extension language
US5699310A (en) Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
Engels et al. Building integrated software development environments. Part I: tool specification
US6002867A (en) Development system with methods providing visual form inheritance
US8042097B2 (en) Automated semantic-based updates to modified code base
US5860007A (en) Automated software modification facilitator
US6523171B1 (en) Enhanced source code translator from procedural programming language (PPL) to an object oriented programming language (OOPL)
US20060010425A1 (en) Methods and apparatus for automated mangement of software
US20020083415A1 (en) Frame component container
US6961931B2 (en) Dependency specification using target patterns
WO2004036340A2 (en) A method, a language and a system for the definition and implementation of software solutions
US20050065953A1 (en) System and method for changing defined elements in a previously compiled program using a description file
JPH0926873A (en) Method and system for discrimination of class relationship of object-oriented system
Jahnke et al. Rewriting poor design patterns by good design patterns
Schurr et al. Visual programming with graph rewriting systems
Klare Designing a Change-Driven Language for Model Consistency Repair Routines
US7512899B1 (en) Method and apparatus for a unified user interface
DeLine et al. Lessons on converting batch systems to support interaction: Experience report
Masiero et al. Development and instantiation of a generic application generator
Pomberger et al. The Role of Prototyping in Software Development.
WO1994004988A1 (en) Extensible framework for constructing graphical applications

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
FP Lapsed due to failure to pay maintenance fee

Effective date: 20040220

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362