Object oriented software build framework mechanism

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000

Reexamination Certificate

active

06298476

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to data processing systems and, more specifically, to object-oriented programming systems and processes.
2. Description of the Related Art
Software development requires writing source code comprising lines of computer programming written in a suitable programming language and assembling executable code generated from the source code into a software product that can be loaded into computer memory and executed. The step of assembling executable code is referred to as a software build process. As part of the software build process, source input comprising source code and control information is processed by a compiler or similar utility control program. The compiled or otherwise processed code comprises executable control program output data. The executable output data can then be loaded onto a system and accessed by system users so the underlying application can be used.
There are many situations for which it might be necessary to develop a new software product that must be built. Development of a new computer hardware system, for example, might require development of new software to run on it. The new software must be written and built. Modern software products can comprise thousands of programming sub-parts or modules and any one of those modules might be changed. For example, new features might be added to existing software products by adding a new module or changing an existing module. If any one of the constituent source parts of a software product is changed, then the entire software product likely will have to be rebuilt.
Many of the processing steps involved in the software build process are similar across different system platforms or installations. The primary steps involved in a software build include assembling all the modules that make up a software product, checking each module to determine if the module is out-of-date or for any other reason must be re-built, compiling or otherwise processing each of the modules that must be re-built, and assembling all the built and re-built modules into a complete, executable software product.
There presently is no structured build processor that is sufficiently flexible and adaptable to permit re-use across different system installations and platforms. For example, a software product that is built for use with a computer system from the International Business Machines Corporation (IBM Corporation) computer processor product called “AS/400” might have to be re-built for each different system configuration. Such building potentially involves a system administrator processing each one of several hundred software modules to assemble the executable code making up the software product. Similarly, if a new hardware system is developed, it might be necessary to re-build a software product on the new hardware, even if previously existing source code can be used. This wastes resources. It would be advantageous if a software build processor could carry out the software build process for multiple versions of a software product, automatically detecting the portions of the software product that require building and then building only those portions. In this way, the amount of processing necessary for carrying out a software build would be reduced.
From the discussion above, it should be apparent that there is a need for a software build system that provides more automatic building of software products and re-use of built software. The present invention satisfies this need.
SUMMARY OF THE INVENTION
In accordance with the present invention, a reusable object oriented (OO) framework for use with object oriented programming computer systems comprises a software build system that responds to a user request for a software build process by detecting modules that make up a software product, examining each module to determine if it is up-to-date, and automatically updating any modules that require processing. The OO framework can be reused and extended to implement a wide variety of different software build systems. The framework defines some object relationships as core relationships, which cannot be changed, and defines other object relationships as extensible relationships, which can be specified by the framework user. Software build systems can be customized using the framework so they can accommodate a wide variety of operating systems, processing requirements, and conditions. In this way, the core structure of the framework serves as a basis for developing a software build system.
The framework includes a software object of a class called “Product” that comprises a software product to be processed and built. An instance of the Product is comprised of multiple software build objects called “Object”. Each Object in turn contains a list of source objects that are a kind of object class called BldSrc (Build Source). The BldSrc objects specify a different aspect of the software product and specify desired object processing. Each of the software build objects in a Product's Object list is examined to determine if all of the is BldSrc objects is current. If any one of the software build objects is not current, the Object is re-built. If all the BldSrc objects are current, the re-building step is skipped. Each of the software build Objects making up a Product is automatically examined and processed. Thus, the framework provides a reusable software build system that automatically and efficiently builds software products.
In one aspect of the invention, each software build Object in a Product includes a core framework operation called process( ) that receives as input the BldSrc build source objects and implements processing to build the associated software build Object. For example, a process( ) operation for a FORTRAN-language Object would comprise a FORTRAN compiler, a process( ) operation for a Pascal-language Object would comprise a Pascal compiler, and so forth. The process( ) operation is a core operation in that the input parameters to the operation and the output produced are fixed types of objects. Each Object also includes operations to update attributes that keep track of whether any of the BldSrc objects in a software build Object are out-of-date and require re-building. Such operations automatically examine each BldSrc object, determine if re-building is required, initiate re-building of an affected Object, and update the attributes to indicate that the BldSrc objects of the re-built Object are up-to-date.
In another aspect of the invention, the framework is implemented in a computer system that supports an object oriented programming environment such that the software build Objects that make up a software Product are extensible classes that are implemented, or instantiated, when a user initiates a software build process. The relationships between these extensible classes, as supported by the computer system, are core relationships in that they are not modifiable by the build system user. Thus, the software build Objects are modifiable by the user in that the user can specify the attributes of the software build Objects that make up the software Product to be built, so long as the structure (in terms of component objects) is consistent with the core operations defined by the framework.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiment, which illustrates, by way of example, the principles of the invention.


REFERENCES:
patent: 4558413 (1985-12-01), Schmidt et al.
patent: 4943932 (1990-07-01), Lark et al.
patent: 5057996 (1991-10-01), Cuter et al.
patent: 5101364 (1992-03-01), Davenport et al.
patent: 5119475 (1992-06-01), Smith et al.
patent: 5181162 (1993-01-01), Smith et al.
patent: 5182807 (1993-01-01), Mizuse et al.
patent: 5195172 (1993-03-01), Elad et al.
patent: 5226161 (1993-07-01), Khoyi et al.
patent: 5247693 (1993-09-01), Bristol
patent: 5249270 (1993-09-01), Stewart et al.
patent: 5257384 (1993-10-01), Farrand et al.
patent: 5261080 (1993-11-01), Kho

LandOfFree

Say what you really think

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

Rating

Object oriented software build framework mechanism does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Object oriented software build framework mechanism, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object oriented software build framework mechanism will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2583337

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