Dynamic semi-structured repository for mining software and software-related information
First Claim
1. A reverse engineering system for reverse engineering a software system, said reverse engineering system comprising:
- (a) means for extracting information related to said software system;
(b) means for constructing semi-structured forms of said extracted information based on syntax of said extracted information, wherein said constructed semi-structured forms are constructed views of said extracted information; and
(c) means for deriving representations of said constructed semi-structured forms based on semantics of said extracted information, wherein said derived representations are abstract models of said constructed views.
1 Assignment
0 Petitions
Accused Products
Abstract
A repository-based reverse engineering system for software systems and particularly legacy software systems. The reverse engineering system includes a graph-based data repository which holds data extracted from the source code in the software system. The graph-based data repository holds the data in a semi-structured form. The reverse engineering system includes mechanisms for constructing views on top of the extracted data and mechanisms for creating model abstractions on top of the views. The graph-based data repository provides flexible search and browse capabilities including pattern matching, structural searching, fuzzy and incomplete searching, and similarity-based searching. The system further includes an interface facility for external tools. The repository-based reverse engineering system enables integration of heterogeneous information sources, integration of external visualization and analytical tools, and searching and browsing facilities.
120 Citations
28 Claims
-
1. A reverse engineering system for reverse engineering a software system, said reverse engineering system comprising:
-
(a) means for extracting information related to said software system;
(b) means for constructing semi-structured forms of said extracted information based on syntax of said extracted information, wherein said constructed semi-structured forms are constructed views of said extracted information; and
(c) means for deriving representations of said constructed semi-structured forms based on semantics of said extracted information, wherein said derived representations are abstract models of said constructed views. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
relational database means for storing said extracted information; and
relational query means for querying said extracted information being stored in said relational database means.
-
-
5. The reverse engineering system as claimed in claim 3 further including an interface for interfacing external tools to provide access to said extracted information.
-
6. The reverse engineering system as claimed in claim 5 further including a knowledge subsystem for storing definitional data related to said extracted information.
-
7. The reverse engineering system as claimed in claim 6 further including a trace and replay subsystem for tracing and replaying operations associated with said extracted information.
-
8. The reverse engineering system as claimed in claim 6 further including an information retrieval subsystem comprising a dictionary of labels for use by external information retrieval systems.
-
9. The reverse engineering system of claim 1 wherein said software system comprises:
-
program source code files each written in a programming language; and
description files for describing aspects of said program source code files.
-
-
10. The reverse engineering system of claim 9 wherein said description files include change history data of said program source code files.
-
11. The reverse engineering system as claimed in claim 10 wherein said means for constructing semi-structured forms comprises a graph-based data repository.
-
12. The reverse engineering system as claimed in claim 11 further including means for searching said graph-based data repository.
-
13. The reverse engineering system as claimed in claim 12 wherein said means for searching includes means for performing a regular expression search on said graph-based data repository.
-
14. The reverse engineering system as claimed in claim 13 wherein said means for searching further includes means for performing similarity-based retrieval searches on said graph-based data repository.
-
15. The reverse engineering system as claimed in claim 11 wherein said abstract models comprise one or more views of said extracted information being contained in said graph-based data repository.
-
16. The reverse engineering system as claimed in claim 15 further including means for creating another level of abstract models on top of said views.
-
17. A method for reverse engineering a software system, said method comprising the steps of:
-
(a) extracting information related to said software system;
(b) constructing semi-structured forms of said extracted information based on syntax of said extracted information, wherein said constructed semi-structured forms are constructed views of said extracted information; and
(c) deriving representations of said constructed semi-structured forms based on semantics of said extracted information, wherein said derived representations are abstract models of said constructed views. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
program source code files each written in a programming language; and
description files for describing aspects of said program source code files.
-
-
21. The method of claim 20 wherein said description files include change history data of said program source code files.
-
22. The method as claimed in claim 21 wherein said step of constructing semi-structured forms comprises a graph-based data repository.
-
23. The method as claimed in claim 22 further including the step of searching said graph-based repository, said step of searching including performing a regular expression search or similarity-based search.
-
24. The method as claimed in claim 23 wherein said step of deriving representations comprises constructing one or more views of constructed semi-structured forms contained in said graph-based data repository.
-
25. The method as claimed in claim 21 further including the step of constructing said semi-structured forms in a relational database.
-
26. The method as claimed in claim 25 further including the step of performing relational queries on said extracted information contained in said relational database.
-
27. The method as claimed in claim 26 further including the step of extracting information from said relational queries and storing said extracted information of said relational queries in said graph-based repository.
-
28. Data storage media recorded with a computer program which, in combination with a general purpose computer configured for a system for reverse engineering a software system, said computer being equipped to read into memory and execute program data from the data storage media, constituting a method in accordance with any of claims 17 to 19, and 20 to 27.
Specification