Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-06-05
2001-03-20
Powell, Mark R. (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C707S793000
Reexamination Certificate
active
06205576
ABSTRACT:
FIELD OF THE INVENTION
The invention relates to systems and methods for reverse engineering software, and more particularly relates to a method and apparatus for identifying indirect messaging relationships between software entities.
BACKGROUND OF THE INVENTION
There are many tools available today which are capable of producing various types of graphical representations of source code. These include for example call charts which graphically illustrate which software functions call which other software functions, and dataflow diagrams which show the direct flow of data between software functions.
Existing tools are generally only capable of capturing relationships between software entities which are very direct such as the above-identified call and dataflow relationships. In many real time systems, there is operating system (OS) or application layer (AL) involvement in the exchange of data between software entities which tends to obscure the actual nature of the relationship between these entities. Messaging relationships are often examples of such obscured relationships. When a first entity sends a message to a second entity, there is usually no direct function call flow from the first entity to the second entity. Rather, the first entity writes the message by calling an OS or AL service, and this results in a number of OS or AL functions being run to enact the writing of the message. Then, the second entity reads the message by calling another OS or AL service, and this in turn results in a number of OS or AL functions being run to enact the reading of the message. Even while there is clearly a definite relationship between the first and second entity, existing tools are unable to detect or capture this in any meaningful way. This is firstly due to the fact that most of the time OS and AL source code is not available for analysis. This is due secondly to the fact that even if it were possible to use existing tools to view the source code of the OS and AL functions being called, at the highest level of granularity the call flows on either side (read and write) in most cases would not meet. For those cases where they do meet, the hierarchy of OS and AL calls would make it difficult to identify the real nature of the relationship, namely that of a message being passed from the first entity to the second entity.
SUMMARY OF THE INVENTION
It is an object of the invention to obviate or mitigate one or more of the above identified disadvantages.
The invention provides systems and methods for extracting relationships between software entities in a manner which hides uninteresting application software and operating system calls.
According to a first broad aspect, the invention provides a method to be performed on or with the aid of one or more processors for identifying indirect messaging relationships between software entities in source code comprising the steps of: identifying all constructs within the source code which are interface function calls and storing each of these in a record in an indirect messaging table, and including in each record a respective communications object identifier used in the respective interface function call; identifying all pairs of records in the indirect messaging table consisting of a first record relating to a “send” type interface function call and a second record relating to a “receive” type interface function call with both the first and second records containing the same communications object identifier.
According to a second broad aspect, the invention provides an apparatus comprising: means for reading source code files; memory means for storing an indirect messaging table and indirect messaging relationships table; means for identifying all constructs within the source code which are interface function calls and storing each of these in a record in the indirect messaging table, and including in each record a respective communications object identifier used in the respective interface function call; and means for identifying all pairs of records in the indirect messaging table consisting of a first record relating to a “send” type interface function call and a second record relating to a “receive” type interface function call with both the first and second records containing the same communications object identifier and storing for each pair a record in the indirect messaging relationships table.
REFERENCES:
patent: 4455619 (1984-06-01), Masui et al.
patent: 4694396 (1987-09-01), Weisshaar et al.
patent: 4718005 (1988-01-01), Feigenbaum et al.
patent: 4885717 (1989-12-01), Beck et al.
patent: 5187788 (1993-02-01), Marmelstein
patent: 5191646 (1993-03-01), Naito et al.
patent: 5261080 (1993-11-01), Khoyi et al.
patent: 5442738 (1995-08-01), Chapman et al.
patent: 5513305 (1996-04-01), Maghbouleh
patent: 5539909 (1996-07-01), Tanaka et al.
patent: 5592600 (1997-01-01), De Pauw et al.
patent: 5794041 (1998-08-01), Law et al.
patent: 5867664 (1999-02-01), Kosugi et al.
patent: 2144483 (1995-10-01), None
Campara Djenana
Mansurov Nikolai
Rajala Norman
Nguyen-Ba Hoang-Vu Antony
Nortel Networks Limited
Powell Mark R.
LandOfFree
Method and apparatus for identifying indirect messaging... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for identifying indirect messaging..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for identifying indirect messaging... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2488112