← Back to Patent Explorer
US6339776B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Dynamic semi-structured repository for mining software and software-related information

Assignee: International Business Machines Corp
•
Filing: 1999-10-04
•
Granted: 2002-01-15
•
Expires: 2019-10-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Homayoun Dayani-Fard
  • 👤 Igor Jurisica

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 23:55
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/70; G06F8/74; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99935; Y10S707/99936; Y10S707/99941; Y10S707/99943; Y10S707/99944; Y10S707/99945

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 83 words
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.
Claim 2
Dependent Claim 83 words
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.
Claim 3
Dependent Claim 16 words
The reverse engineering system of claim 1 further comprising means for updating said constructed semi-structured forms.
Claim 4
Dependent Claim 15 words
The reverse engineering system of claim 2 further comprising means for updating said derived representations.
Claim 5
Dependent Claim 35 words
The reverse engineering system as claimed in claim 3 further including: relational database means for storing said extracted information; and relational query means for querying said extracted information being stored in said relational database means.
Claim 6
Dependent Claim 24 words
The reverse engineering system as claimed in claim 3 further including an interface for interfacing external tools to provide access to said extracted information.
Claim 7
Dependent Claim 23 words
The reverse engineering system as claimed in claim 5 further including a knowledge subsystem for storing definitional data related to said extracted information.
Claim 8
Dependent Claim 26 words
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.
Claim 9
Dependent Claim 27 words
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.
Claim 10
Dependent Claim 34 words
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.
Claim 11
Dependent Claim 21 words
The reverse engineering system of claim 9 wherein said description files include change history data of said program source code files.
Claim 12
Dependent Claim 21 words
The reverse engineering system as claimed in claim 10 wherein said means for constructing semi-structured forms comprises a graph-based data repository.
Claim 13
Dependent Claim 18 words
The reverse engineering system as claimed in claim 11 further including means for searching said graph-based data repository.
Claim 14
Dependent Claim 27 words
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.
Claim 15
Dependent Claim 27 words
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.
Claim 16
Dependent Claim 29 words
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.
Claim 17
Dependent Claim 24 words
The reverse engineering system as claimed in claim 15 further including means for creating another level of abstract models on top of said views.
Claim 18
Independent Claim 76 words
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.
Claim 19
Independent Claim 76 words
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.
Claim 20
Dependent Claim 14 words
The method of claim 17 further comprising the step of updating said constructed representations.
Claim 21
Dependent Claim 14 words
The method of claim 18 further comprising the step of updating said derived representations.
Claim 22
Dependent Claim 32 words
The method of claim 17 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.
Claim 23
Dependent Claim 19 words
The method of claim 20 wherein said description files include change history data of said program source code files.
Claim 24
Dependent Claim 19 words
The method as claimed in claim 21 wherein said step of constructing semi-structured forms comprises a graph-based data repository.
Claim 25
Dependent Claim 29 words
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.
Claim 26
Dependent Claim 29 words
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.
Claim 27
Dependent Claim 20 words
The method as claimed in claim 21 further including the step of constructing said semi-structured forms in a relational database.
Claim 28
Dependent Claim 24 words
The method as claimed in claim 25 further including the step of performing relational queries on said extracted information contained in said relational database.
Claim 29
Dependent Claim 31 words
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.
Claim 30
Dependent Claim 61 words
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 .

References Cited (Backward Citations)

US5592668A Cited
US5862382A Cited
US5913214A Cited
US5999938A Cited
US5960425A Cited
US5978790A Cited
US6076087A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-01-14 2005-07-16 2006-01-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-01-14 2009-07-16 2010-01-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-01-14 2013-07-16 2014-01-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag