Method and apparatus for identifying dynamic structure 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, C709S241000

Reexamination Certificate

active

06233729

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 dynamic structure and indirect messaging relationships between processes.
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 procedures call which other software procedures, and dataflow diagrams which show the direct flow of data between software procedures.
Existing tools are generally only capable of capturing relationships between software entities which are very direct such as the above-identified call charts. More generally, existing tools are only capable of capturing the static structure of software. However, in examining software in a static manner, existing tools are not capable of identifying relationships such as containments or indirect messaging relationships between processes.
Processes are very interesting because they determine instantiation of data in software. When a certain data definition is shared between several processes, then at run-time there will exist several independent instances of that data. Each process will potentially have a different instance of the data. How data is shared between processes is dependent on the target operating system.
When looking at any data transfers within software entities, process structure needs to be taken into consideration because the data is potentially instantiated in several processes.
Processes are also important because the actions of different processes can be performed in parallel and on the other hand, all actions of one instance of a process are always performed sequentially. Actions of different processes need to be synchronized, i.e. the software should guarantee that certain interleavings of actions never happen. Processes use the operating system to exchange information and in particular to synchronize themselves.
Thus in a multiprocess system it would be desirable to observe the dynamic structure of the software, i.e. to obtain a view of the software showing relationships at run-time. Existing tools do not have this ability.
A system and method for identifying indirect messaging relationships between static software entities has been described in applicant's copending U.S. application Ser. No. 09/090,954 filed Jun. 5, 1998 hereby incorporated by reference. The system described therein is useful for generating a static view of a system but is incapable of identifying dynamic structure.
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 process structure and relationships between software processes in a manner which hides uninteresting application software and operating system calls.
According to a first broad aspect, the invention provides a method of identifying inter-process indirect messaging relationships in source code in which processes are identified by respective process references from an input consisting of an identification of a plurality of indirect messaging relationships which exist within the source code each consisting of a first procedure using a “send” type procedure and a second procedure using a “receive” type procedure, and a communications object identifier, the method comprising the steps of: for each process reference appearing in the source code, identifying an associated set of procedures which may be used by a process having that process reference; for each indirect messaging relationship: a) identifying a first set of process references consisting of all process references which include the first procedure of the indirect messaging relationship in the respective process reference's associated set of procedures; b)identifying a second set of process references consisting of all process references which include the second procedure of the indirect messaging relationship in the respective process reference's associated set of procedures; and c) extracting all possible pairs of process references including a first process reference from the first set of process references and a second process reference from the second set of process references; wherein each pair of process references extracted identifies a potential inter-process indirect messaging relationship.
According to a second broad aspect, the invention provides a system comprising: source code storage for storing a collection of source code; static structure identification means for identifying a static structured within the collection of source code; indirect messaging relationships identification means for identifying indirect messaging relationships within the collection of source code, each indirect messaging relationship comprising a first procedure performing a “send” type procedure with respect to a respective particular communications object, a second procedure performing a “receive” type procedure with respect to the same particular communications object; process identification means for identifying processes which would come into existence when the collection of source code is run, and for identifying all procedures which might be called in each process; means for identifying inter-process indirect messaging relationships by identifying for each indirect messaging relationship all processes using the first procedure and all processes using the second procedure and forming all possible combinations of one of the processes using the first procedure with one of the processes using the second procedure.


REFERENCES:
patent: 4455619 (1984-06-01), Masui 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: 5442738 (1995-08-01), Chapman et al.
patent: 5513305 (1996-04-01), Maghbouleh
patent: 5592600 (1997-01-01), De Pauw et al.
patent: 5713045 (1998-01-01), Berdahl
patent: 5862382 (1999-01-01), Kataoka
patent: 6061513 (2000-05-01), Scandura
patent: 6131109 (2000-10-01), Ueki et al.
patent: 2144483 (1995-10-01), None
Dillon, “A visual execution model for Ada tasking”, ACM, 1993, pp 311-345.*
Chow et al., “Minimizing register usage penalty at procedure calls”, Proc. of the SIGPLAN '88 Conf. on Prog. Lang. design and implementation, 1988, pp 85-94.*
Harrold et al., “Interprocedural Data flow testing”, ACM, 1989, pp 158-167.*
Jerding et al., “Visualizing Interactions in program execution”, ICSE 97, ACM, 1997, pp 360-370.*
Benkner et al., “High-level management of communication schedules in HPF-like languages”, ICS 98, ACM, 1998, pp 109-116.

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

Method and apparatus for identifying dynamic structure 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 Method and apparatus for identifying dynamic structure and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for identifying dynamic structure and... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2548700

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