100 likes | 230 Vues
This report delves into the complexities of legacy systems, highlighting the challenges faced by maintenance teams due to lost technical knowledge. It discusses the importance of automatic extraction and the role of manual documentation in preserving system understanding. The report also covers techniques such as lexical analysis, type inference for COBOL, and object identification, emphasizing the need for robust tooling infrastructure. By analyzing legacy sources and generating documentation, this approach aims to facilitate language migrations and improve system comprehension.
E N D
Understanding Legacy Systems Arie van Deursen Tobias Kuipers Leon Moonen ETAPS 99
Tooling Infrastructure Lexical Analysis Report Generator Legacy Sources Repository Syntax Analysis Cluster Analysis Data flow Analysis Visuali- zation Filter & Abstract ETAPS 99
Redocumentation • Contents decided by maintenance team. • Technical system knowledge lost! • Automatic extraction • Manual: additional docs, overviews • Training, changes, estimates, ... ETAPS 99
Understanding Variables • 100 Kloc Cobol: • 25,000 different variables! • Cobol variable declarations: • Aggregation + byte representation • No types! ETAPS 99
Type Inference for COBOL • Give each variable unique primitive type • Infer type-equiv. and subtype relations • x + y, x == y, x := y, literals, ... • DB operations, calls, copybooks • Partial order of equivalence classes O’Callahan ‘97: C Henglein ‘99: Y2K WCRE’98, IWPC’99 ETAPS 99
Applications • Y2K & Euro • Constant (de)propagation • Program-level documentation • System-level signatures • Language migrations • Object identification ETAPS 99
Object Identification • Legacy data structures • attributes • Legacy functionality • methods Select Domain Concepts Combination: Candidate classes! Persistent data types Progrs low fan in/out ETAPS 99
Concept Analysis • Concept (I, F ): • maximal set of items I I • sharing set of features F F • From feature tableT I F • generate all concepts • Lattice: (I1, F1)(I2, F2 ) I1 I2 Siff/Reps’97 Lindig/Snelting’97 IWPC’98, ICSE’99 ETAPS 99
Many fields Progr. nrs Concept Fields One field ETAPS 99
System Understanding • Analysis of legacy sources • Select good parts • Filter out hopeless elements • Combine & present in novel ways • Tool support rather than automation ETAPS 99