System and method for version control for software development -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
     new ** File a Provisional Patent ** 
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
11/24/05 | 105 views | #20050262486 | Prev - Next | USPTO Class 717 | About this Page  717 rss/xml feed  monitor keywords

System and method for version control for software development

USPTO Application #: 20050262486
Title: System and method for version control for software development
Abstract: A method for constructing a software distribution image includes modifying zero or more to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final compiled version of the to-be-compiled components. Modifying one or more not-to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final ready-to-run version of the not-to-be compiled components. Preprocessing each of the zero or more to-be-compiled components to either include or exclude each of the delineated modifications of the to-be-compiled components based on desired characteristics of the software distribution image. Preprocessing each of the one or more not-to-be-compiled components to either include or exclude each of the delineated modifications of the not-to-be-compiled components based on the desired characteristics of the software distribution image to obtain a ready-to-run version of each of the one or more not-to-be-compiled components. Compiling each of the zero or more preprocessed to-be-compiled components to obtain a compiled version of each of the zero or more to-be-compiled components. Assembling each of the one or more ready-to-run components and each of the zero or more compiled components into the software distribution image. (end of abstract)
Agent: Baker Botts L.L.P. - Dallas, TX, US
Inventor: Dmitry Grebenev
USPTO Applicaton #: 20050262486 - Class: 717140000 (USPTO)
Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling Code
The Patent Description & Claims data below is from USPTO Patent Application 20050262486.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords



REFERENCE TO RELATED APPLICATION

[0001] The present application is based on and claims the benefit of provisional application Ser. No. 60/572,554, filed May 19, 2004, the entire contents of which are herein incorporated by reference.

BACKGROUND

[0002] 1. Technical Field

[0003] The present disclosure relates to software development and, more specifically, to a system and method for version control for software development.

[0004] 2. Description of the Related Art

[0005] Software development processes routinely utilize programmers working on medium to large projects to concentrate on a particular area of software development according to their specialization (e.g. different people may be modifying documentation and programming language code). Even if the same programmer modifies several files, temporal inconsistencies in the code repository may exist until the modified files are checked in. In the software production environment, these individual pieces of software are often referred to as "deliverables." When all deliverables have been developed, they may be integrated into a distribution image. The distribution image may include all of the compiled code and related files, such as for example scripts, configuration files, man pages, etc. that come together to form the finished software package. The distribution image may then be distributed to customers and/or sent to a quality assurance (QA) team to verify that the distribution image functions properly.

[0006] However, because deliverables undergo frequent modification and/or update, ensuring complete compatibility amongst deliverables is a constant challenge. Because deliverables may have multiple interdependencies, changes to one deliverable may necessitate subsequent changes to one or more of the other deliverables to settle the interdependencies.

[0007] As each deliverable may undergo frequent revision, matching up the correct versions of deliverables represents a perpetual challenge to software developers. A distribution with one or more mismatched deliverables may be inoperable or may function unpredictably. Such a distribution may be called a broken distribution image. Broken distribution images may be categorized as an inconsistent build, for example where a recently added feature is missing from one or more deliverables, or for example where an old discontinued deliverable is still present in the distribution image, etc.

[0008] Software developers therefore invest substantial time and effort in resolving inconsistent builds and/or in meeting accepted quality standards, for example ISO 9001 compliant development processes. QA departments may be required to direct many scarce resources towards the very time-consuming and tedious task of resolving inconsistent builds. It is therefore desirable to utilize a system and method for automatically ensuring operative builds.

[0009] Presently available techniques for ensuring operative builds may be used to ensure that compiled deliverables are properly matched. For example, ifdef-based preprocessing controls may be used to allow particular features of deliverables to lie dormant within source code and either be included or excluded from the compiled object code depending on whether the particular features are compatible with the current build. In this way it is ensured that each compiled deliverable is compatible with the current build.

[0010] However, software packages are not limited to compiled deliverables. Many non-compiled deliverables such as, for example, scripts, XML, HTML, documents, multi-media files, and the like, are used alone and/or in conjunction with compiled deliverables to form a distribution image. These non-compiled deliverables may also share interdependency with each other and/or compiled deliverables.

[0011] Without some kind of arrangement that excludes work-in-progress files from participating in a build, a build may have to be postponed until some future time when all changes are in. One possible arrangement is to keep backups of files made before modifications have started and using them for builds while their copies are being updated. However, this solution is rather cumbersome and is otherwise disadvantageous.

[0012] It is therefore desirable to utilize a system and method for ensuring the operability of distribution images that may include compiled and/or non-compiled deliverables.

SUMMARY

[0013] A method for constructing a software distribution image includes modifying zero or more to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final compiled version of the to-be-compiled components. Modifying one or more not-to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final ready-to-run version of the not-to-be compiled components. Preprocessing each of the zero or more to-be-compiled components to either include or exclude each of the delineated modifications of the to-be-compiled components based on desired characteristics of the software distribution image. Preprocessing each of the one or more not-to-be-compiled components to either include or exclude each of the delineated modifications of the not-to-be-compiled components based on the desired characteristics of the software distribution image to obtain a ready-to-run version of each of the one or more not-to-be-compiled components. Compiling each of the zero or more preprocessed to-be-compiled components to obtain a compiled version of each of the zero or more to-be-compiled components. Assembling each of the one or more ready-to-run components and each of the zero or more compiled components into the software distribution image.

[0014] A system for constructing a software distribution image includes an editor for modifying zero or more to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final compiled version of the to-be-compiled components. An editor for modifying one or more not-to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final ready-to-run version of the not-to-be compiled components. A pre-processing unit for preprocessing each of the zero or more to-be-compiled components to either include or exclude each of the delineated modifications of the to-be-compiled components based on desired characteristics of the software distribution image. A helper script for preprocessing each of the one or more not-to-be-compiled components to either include or exclude each of the delineated modifications of the not-to-be-compiled components based on the desired characteristics of the software distribution image to obtain a ready-to-run version of each of the one or more not-to-be-compiled components. A compiler for compiling each of the zero or more preprocessed to-be-compiled components to obtain a compiled version of each of the zero or more to-be-compiled components. A distribution builder for assembling each of the one or more ready-to-run components and each of the zero or more compiled components into the software distribution image.

[0015] A computer system includes a processor and a computer recording medium including computer executable code executable by the processor for constructing a software distribution image. The computer executable code includes code for modifying zero or more to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final compiled version of the to-be-compiled components. Code for modifying one or more not-to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final ready-to-run version of the not-to-be compiled components. Code for preprocessing each of the zero or more to-be-compiled components to either include or exclude each of the delineated modifications of the to-be-compiled components based on desired characteristics of the software distribution image. Code for preprocessing each of the one or more not-to-be-compiled components to either include or exclude each of the delineated modifications of the not-to-be-compiled components based on the desired characteristics of the software distribution image to obtain a ready-to-run version of each of the one or more not-to-be-compiled components. Code for compiling each of the zero or more preprocessed to-be-compiled components to obtain a compiled version of each of the zero or more to-be-compiled components. Code for assembling each of the one or more ready-to-run components and each of the zero or more compiled components into the software distribution image.

[0016] A computer recording medium including computer executable code for constructing a software distribution image. The computer executable code includes code for modifying zero or more to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final compiled version of the to-be-compiled components. Code for modifying one or more not-to-be-compiled components of the software distribution image using pre-processing instructions to delineate modifications for inclusion or exclusion from a final ready-to-run version of the not-to-be compiled components. Code for preprocessing each of the zero or more to-be-compiled components to either include or exclude each of the delineated modifications of the to-be-compiled components based on desired characteristics of the software distribution image. Code for preprocessing each of the one or more not-to-be-compiled components to either include or exclude each of the delineated modifications of the not-to-be-compiled components based on the desired characteristics of the software distribution image to obtain a ready-to-run version of each of the one or more not-to-be-compiled components. Code for compiling each of the zero or more preprocessed to-be-compiled components to obtain a compiled version of each of the zero or more to-be-compiled components. Code for assembling each of the one or more ready-to-run components and each of the zero or more compiled components into the software distribution image.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] A more complete appreciation of the present disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:

[0018] FIG. 1 is a block diagram showing a system for maintaining version control in software development according to an embodiment of the present disclosure;

[0019] FIG. 2 is a flow chart illustrating a method for maintaining version control in software development according to an embodiment of the present disclosure;

[0020] FIG. 3 is an example of a simple C program and an accompanying startup script represented in multiple forms to illustrate an embodiment of the present disclosure; and

Continue reading...
Full patent description for System and method for version control for software development

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this System and method for version control for software development patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like System and method for version control for software development or other areas of interest.
###


Previous Patent Application:
Duplicate merge avoidance in parallel development of interdependent semi-derived artifacts
Next Patent Application:
System, apparatus, and method for identifying authorization requirements in component-based systems
Industry Class:
Data processing: software development, installation, and management

###

FreshPatents.com Support
Thank you for viewing the System and method for version control for software development patent info.
IP-related news and info


Results in 0.83011 seconds


Other interesting Feshpatents.com categories:
Daimler Chrysler , DirecTV , Exxonmobil Chemical Company , Goodyear , Intel , Kyocera Wireless ,