System and method for developing reusable flexible and...

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

Reexamination Certificate

active

06370682

ABSTRACT:

DESCRIPTION OF THE INVENTION
1. Field of the Invention
The present invention relates to the development of modular software. Specifically, this invention is related to the development of software that is flexible and platform independent so that it can be reused without manually reworking. This invention is embodied in a system, method and a computer program product for a software model that uses components; and in a system, method and a computer program product that is used for converting a given software component that is flexible, reusable and platform-independent into a target specific executable form.
2. Background
Software that is created for a specific application often needs to be implemented over a wide range of hardware platforms. These hardware platforms often differ in their performance, electrical rating and several other parameters. It is infeasible to develop separate software for each hardware platform. Therefore, platform independence plays a critical role in enhanced usability of software. Control software that caters to variable speed drives is a good example of a software application that needs to be platform independent.
A possible solution to this problem would be to develop hardware that can operate at all ranges of operation. However, it is economically unfeasible to develop such a hardware platform that operates in all required performance ranges and electrical ratings. A complete hardware platform unit (including signaling electronics, mechanical parts, power electronics) at a lower performance class is cheaper to produce than only the signal electronics for a unit with a higher performance class. Additionally, different processors that function at different performance levels and electrical ratings are required. Further, either fixed point or floating point arithmetic needs to be used depending on the performance requirements. Combining operations at different performance ratings, therefore, would be excessively expensive.
In spite of having a range of hardware platforms, a vast majority of software functions need to be implemented across the entire range of hardware platforms. For example, variable speed drive signal processing software has to be implemented across the entire range of drive hardware platforms. In order for functions to be applicable across a range of hardware platforms, an important precondition is that these functions have to be similar. Therefore, software that implements these functions also has to be similar.
It should be noted that as better hardware platforms are developed, the functions implemented by a given piece of software need to have a larger scope. Such a large scope is required to service the resulting improved functionality. In our example related to high-speed drives, the functional scope of the software rises continuously with the performance requirements. Also, functions that could hitherto be employed only in high-performance equipment are now increasingly migrating to lower performance levels. For example, previously, multitasking could only be performed by a workstation. Presently, personal computers offer the capability to perform multitasking. Further, short product life of two to three years is normal in software development. Therefore, software has to be designed to be flexible enough to effectively support upgrades, technology enhancement and innovations. Clearly, development time and costs can be saved by re-use of the software.
Presently, software that implements a specific function across a range of hardware platforms is produced separately for each target system using a high-level language (generally C) and assembler. The target-system-specific characteristics are included in the software right from the beginning of software development. Porting such software to platforms other than that which the software was originally designed for becomes very difficult. Further, the additional changes made to the software for porting it to other platforms requires additional testing. This additional testing adds to the overall cost.
However, conventional systems that use components (e.g. SIMADYN D, SIMATIC) are not platform-independent. In such systems, porting to target hardware platforms other than that for which the software was created is still complex.
It should be noted virtual machines are normally not used in real-time systems, such as variable speed drives. This is because virtual machines require substantially more computing power and processing time.
SUMMARY OF THE PRESENT INVENTION
It is an object of the present invention to overcome the above-mentioned problems in porting software across multiple hardware platforms and to produce a clearly structured, easily maintainable software, whose capability is not affected even at high levels of complexity.
It is a specific object of the present invention to provide a system, method and a computer program product for developing software that is flexible and reusable across several hardware platforms. It is another object of the present invention to provide a system, method and computer program product for converting modular and system independent software into a target platform specific software in the form of an executable code.
In order to achieve the above-mentioned objects, there is provided a software system comprising one or more software components, an operating system connected to said one or more software components, said operating system controlling said one or more software components, each of said one or more software components having a limited functional scope and processing input data to form new output data, wherein each of said one or more software components is independent of other software components and produced in a reusable platform independent fashion, and wherein application software is created by graphically linking a subset of said one or more software components.
Preferably said one or more software components each perform a specific function, wherein said one or more software components further comprise parameters, a plurality of variables, input data and output data, wherein said variables can only be changed, if a component associated with a variable to be changed is called, wherein the parameters and the variables are stored in an area assigned to each said one or more software components and are completely encapsulated within each said one or more software components, said input and output data being used for bringing new data to and from the components.
Still preferably said component is initialized before being called for the first time.
Preferably each of said one or more software components is created by instantiating one or more platform independent software component types, each of said one or more software component types further comprises an interface file and a body file, wherein said interface file contains a definition of all said input data and output data and a definition of all local variables and information required for graphics configuration of each of said one or more software components, wherein said body is broken into individual segments, said individual segments reserving memory space for a sub-function associated with a corresponding component.
Preferably said software components can be connected together in a graphical way using a graphical interface program.
Another aspect of the present invention is a system for generating a target platform-specific software component from a platform-independent software component type, said component type comprising an interface and a body, said system comprising a component generator; an initialization file; a control file; and a script file, wherein said component generator further comprises a database; a controller; an analyser, and a synthesizer. Said analyser prepares necessary data and stores said necessary data in the database using data in the interface. Said synthesizer uses the stored data in the database and creates executable and compilable program code, wherein data in said control file is used to control operations of the analyser and synthesizer.
Preferab

LandOfFree

Say what you really think

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

Rating

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

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

Rate now

     

Profile ID: LFUS-PAI-O-2902565

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