Understanding Legacy Systems

Preview:

DESCRIPTION

Understanding Legacy Systems. Arie van Deursen Tobias Kuipers Leon Moonen. Tooling Infrastructure. Lexical Analysis. Report Generator. Legacy Sources. Repository. Syntax Analysis. Cluster Analysis. Data flow Analysis. Visuali- zation. Filter & Abstract. Redocumentation. - PowerPoint PPT Presentation

Citation preview

ETAPS 99 1

Understanding Legacy Systems

Arie van Deursen

Tobias KuipersLeon Moonen

ETAPS 99 2

Tooling Infrastructure

Legacy Sources

Lexical Analysis

Syntax Analysis

Data flow Analysis

Repository

Report Generator

ClusterAnalysis

Visuali-zation

Filter &Abstract

ETAPS 99 3

Redocumentation

Contents decided by maintenance

team.

Technical system knowledge lost!

Automatic extraction

Manual: additional docs, overviews

Training, changes, estimates, ...

ETAPS 99 4

Understanding Variables

100 Kloc Cobol:

25,000 different variables!

Cobol variable declarations:

Aggregation + byte representation

No types!

ETAPS 99 5

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 6

Applications

Y2K & Euro

Constant (de)propagation

Program-level documentation

System-level signatures

Language migrations

Object identification

ETAPS 99 7

Object Identification

Legacy data structures attributes

Legacy functionality methods

SelectDomainConcepts

Persistent data types

Progrs low fan in/out

Combination:Candidate classes!

ETAPS 99 8

Concept Analysis

Concept (I, F ):

maximal set of items I II

sharing set of features F FF

From feature table T I I FF

generate all concepts

Lattice: (I1, F1) (I2, F2 ) I1 I2

Siff/Reps’97Lindig/Snelting’97IWPC’98, ICSE’99

9ETAPS 99

Concept

Fields

Progr. nrs

One field

Many fields

ETAPS 99 10

System Understanding

Analysis of legacy sources

Select good parts

Filter out hopeless elements

Combine & present in novel ways

Tool support rather than automation

Recommended