from research to startup: experiences in interoperability arie van deursen leon moonen 23 january...

22
From Research to Startup: Experiences in Interoperability Arie van Deursen Leon Moonen 23 January 2001

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

From Research to Startup: Experiences in Interoperability

Arie van DeursenLeon Moonen23 January 2001

2

The ASF+SDF Experience

Describe language: SDF: abstract + concrete syntax ASF: language processors

Generate tools Parser, pretty printer, structure editor Type checker, evaluator, transformer …

Meta-Environment

Bergstra, Heering, KlintAlg. Specification,

1989

Van Deursen, Heering, KlintLanguage Prototyping, 1996

Klint, TOSEM 1993

3

(Meta) Environment Architecture

Heterogeneous tools

P1P2

P3Pn

msg msg

msg

…transeditorparser pp

evaldo

ack-event value eventAnnotated terms

ToolBus coordination architecture

Bergstra, Klint, SCP, 1998

4

Independent Tools

Size matters: use sharing to deflate large data

Format wars hard to avoid AsFix 1, 2, and 1.5. (AsFix = local AST representation

format) Installing independent tools

requires appropriate bundling

5

Agreeing on Grammars

Abstract syntax ~ schema. Tools for one language share grammar?

Different tasks require different variations Evolving grammars implies divergence Our best attempt: a grammar base

Set of reference grammars. Maturity levels indicate stability/immutability

www.program-transformation.org/xt/

6

Talking to Industry

Discuss maintenance problems with ABN AMRO Bank Software house Roccade

Use language technology as basis for reverse and re-engineering research

Goal: Strengthen generic technology Start with Cobol instantiation

7

Dealing with Data Flow

Many data flow problems reimplemented for different languages

Dhal Framework: map languages to common representation

variable definitions and usescontrol flow (structured & unstructured)

framework performs control flow normalization

generic data flow solutions on Dhal

Re-useDFA library

Multi-languagesystems

8

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualisation

9

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

Tools used: SDF, jasfix, grok, MySQL, concept, dot, Tcl/Tk

Wired by perl/make Pragmatic, fine for research

10

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

Cobol Grammar:• Reused & modified• Other tools out of sync

11

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

ICSE99, IWPC2000

12

Spinning Off

Software Improvement Group (SIG): Documentation Generation Program Transformation Strategic Consultancy

Mission: Help companies with their legacy problems Transfer of CWI reengineering technology

Employees: 2000, 2001, 2002: 4, 8, 16

13

DocGen

Analyze Cobol system and redocument it using hypertext and graphs.

Operational characteristics: Processing 50.000.000 lines of code ASP: operate via Internet On-site installation No bugs please

ICSM 1999,WCRE 2000

14

DocGen Architecture

Mainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

15

Analysis Interoperability

Mainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

• Source + key properties• Island grammars• Use 3d party parser?

16

Query/view Interoperability

Mainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

Metric toolsGraph visualization

Clustering tools

17

The DocGen Data Model

callcommentscontrolflowcopycopyrecordcreated

sourceInfosourcesubsystemssummarieswords

entitiesflatfileInfoflatfileOpsflatFileRecor

dsparameters

Evolve data model as we get along

18

Data Model Conversion

Customer request: Reuse DocGen data for other tool set Extend DocGen with data from this tool set Exchange through XML

Planned approach: Describe source and target model Generate reader & visitor for source data Refine visitor to construct target data

19

Presentation

Describe structure of pages Using a grammar JJForester generates Java classes +

visitors Composing a page:

Construct abstract structure Use visitor to emit HTML

(You want XML? Specialize visitor)

20

Summary: Experience Report

ToolBus-based cooperation Grammar-based data exchange Collect reference grammars Benefit from code generation DHAL data flow framework DocGen Cobol data model Open up tools with jdbc, http, JavaDoc

21

Discussion (I)

Systematic interoperability is not for free: Opening up tools and adhering to

standards takes effort Standards may evolve What is the reward? Who gets the reward?

Start with bilateral cooperations

22

Discussion (II)

Encourage explicit schemas: Collect and discuss the schemas we use Distribute schemas (Susan’s zoo) Sooner or later they may get reused, or

even refactored into a reference schema. Strengthen communication

Use on line forum a la wiki?(lightweight collaborative web discussion

forum)